三步一岗,五步一哨,让你在内网中无计可施,麻麻再也不用担心我的内网了!
现状
这几年来,蜜罐技术一直被人津津乐道,各种各样的蜜罐是层出不穷,开源的,商业的,低交互式,高交互式等等不一而足,具体如何评估各种蜜罐可以参考《开源蜜罐测评报告》一文。蜜网是在蜜罐技术上逐渐发展起来的一个新的概念,又可称为诱捕网络。
蜜网技术实质上仍是一种蜜罐技术,是一种对攻击者进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务以及信息,诱使攻击者对他们进行攻击,减少对实际系统所造成的安全威胁。但与传统的蜜罐技术的差异在于,蜜网构成了一个黑客诱捕网络体系架构,在这个架构中,可以包含一个或多个蜜罐,同时保证网络的高度可控性,以及提供多种工具以方便对攻击信息的采集和分析。比如,默安科技的幻阵,长亭的谛听等等,均已经扩展到了下一代蜜罐或者密网的概念,即除了捕获分析攻击行为外,蜜罐还拥有对攻击者画像的功能,而实质上除了演习行动过程中如能正确溯源到攻击者而有加分的表现外,正常情况下,一般的企业对于此类蜜罐的要求其实不高,且其本质上需要昂贵的部署费用和绝不轻松的部署推广,在拥有大型网络的企业里面,部署的蜜罐探针的数量决定了以后运维的难度,绝不仅仅是一个上了系统就不用管的大型工具;除此之外,内网蜜罐探针的数量也决定了侦测节点分布度,而分布度也决定了内网横向移动侦测点的敏感度。部署少了基本是很难触发而根本毫无建树的。
那么有没有一种便捷的可被快速部署的内网全蜜罐方案呢?当然有,有钱都不是事,恰恰,笔者属于没钱的那种。没钱还要有安全,怎么办?自己整!由此,基于Powershell脚本和Windows环境,我搭建了纯0成本方案的哨兵蜜网,实现在域内所有Windows主机上启用哨兵端口,从而实现全域Windows主机蜜网监控,最极端可以实现一键全域蜜罐方案。虽然是纯预警级别的密网监控,但是0成本还要什么自行车?
有什么用?你想想当公鸡队进到一个母鸡笼子的时候,尝试用它锐利的眼光“鸡视鸡顾“的时候(扫描)突然发现周边怎么这么多的主机全TM的开了服务端口啊。是不是懵了?是不是吓傻了?这是进了鸡窝还是蜂窝啊?到底哪个是母真鸡,哪个是仿真鸡?那我来嗅探下信息看看?Bingo,一旦进行服务嗅探和连接动作,即刻报警。
背景
正常情况下,企业部署的蜜罐方案为如上图所示情况,分别在公网,DMZ和内网办公区域部署三层蜜罐系统。而我们今天仅讨论如何在内网区域变“废”为宝,搭建内网蜜网,而非仅仅几个可怜兮兮的蜜罐。当然,这种方案是属于低交互式蜜罐,是由低交互式蜜罐构成的全蜜罐网,将我们的现行服务器组装成为一个一个的哨兵,从而实现三步一岗,五步一哨,我称之为《哨兵蜜网》。低交互式蜜罐的工作原理其实并不复杂,一旦攻击者突破外网,在某台服务器上进行端口扫描探测,触碰蜜罐诱捕节点,从而将蜜罐流量运入蜜罐服务器,产生报警。恰如下图所示:
请原谅我唏嘘的胡茬子。。。(纯手工出品)
目前大多数蜜罐系统都是上述情况,在各个网段中捆绑某些IP作为蜜罐节点,“守株待兔“般地等待被触发,而启用哨兵蜜网之后,所有主机均为蜜罐,所有端口均被混淆,真真假假,虚虚实实。
在这里,我们为了能快速0成本搭建报警系统,我们采用了开源的Visual Syslog Server,传送门:https://maxbelkov.github.io/visualsyslog/, 简单介绍下,Visual Syslog Server for Windows是一个免费的开源程序,用于接收和查看Syslog消息。当然,如果大家有自己的SYSLOG平台也没有问题,如果能对收集到的SYSLOG日志进行进一步处理的Splunk平台等,那当然更加好,我这里是提出其中一种纯开源免费方案。
之所以使用Visual Syslog Server for Windows,确实是因为其有着良好的品质,可盐可甜,尤其是自带的消息流程处理模块,异常有用,可对我们的SYSLOG日志进行消息处理,比如,触发某条件后,通过消息处理播放异常报警声效或者发送邮件执行程序等等。
具体怎么设置和使用我这里就略过了,基本上属于一装即用的那种,无需赘言。我们先自行安装搭建好Syslog Server平台,供哨兵蜜网收集日志所用。
设计
我们先假设使用Nmap对内网进行存活主机扫描,我们可以看到其中一台目标主机为开了80, 3389的一台服务器
那么,现在尝试在该主机上运行哨兵程序,启用哨兵端口,比如:
我这里开启了21,23,80,1433,3389端口,我们可以看到,其中80和3389已经被系统占用,所以在运行脚本后,80,3389端口因被占用而后台任务自动显示完成状态,不影响目前系统运行业务。
经再次扫描,如下图所示,可以发现已开启新端口,21,23,1433等
尝试用telnet连接21端口,可以看到SYSLOG服务器收到告警日志
在另外一个测试案例里面,连接3306端口服务,触发报警
那么我们来测试下Nmap对蜜网的扫描情况吧,在主机上启用如下端口
- Nmap -sS (TCP SYN 扫描,无报警)
- Nmap -sA (TCP ACK 扫描,无报警)
- Nmap -O (OS检测扫描,无报警)
- Nmap -sT (TCP 连接扫描,报警)
- Nmap -sV (端口服务扫描,报警)
- Nmap -A (全扫描,报警)
如此,对SYN扫描不敏感可以减少大多数的扫描情况,完美地实现了减少误报的目的。有条件的兄弟结合SPLUNK等数据平台即可实现漂亮的数据可视化和报警警告,也可以过滤进一步的误报和组合报警情况!完美!
部署
开头就提过,有很多开源的商业的蜜罐方案也都非常高级,可以实现很多的功能,但是在部署方面却都往往不是那么容易,需要各项资源的调配,而本文的哨兵蜜网在部署方面却有着天然的优势,哨兵程序本体是由PowerShell脚本组成,依赖于Windows服务,优势也很明显,可通过域控进行部署,哨兵程序可以运行在低权限用户下面,PS脚本本身可以进行简单的修改,将端口号,白名单全部硬写入脚本文件本身,再进行一定程度的混淆,比如通过Invoke-Obfuscation脚本进行加密等等。
代码中,本身也可以实现邮件告警,但是一般不建议直接邮件告警,因为邮件系统对于去重和归类的处理实在不咋地,最佳实现方法应该还是属于SPLUNK/ELK/GRAYLOG等方案。
下面我就简单地提供几个部署方案,既然是批处理,Powershell脚本,当然大家可以自行发挥咯。
方案一,最简单的方案,在需要运行的主机上执行哨兵程序部署迷惑端口即可,随关闭而消失,所以可以使用PSEXEC或者其他系统大批量部署到主机上面,甚至可以要求用户手动执行。
方案二,通过计划任务部署定时计划,随开机而启动,不过注意,如果想要后台运行计划任务,需要进行适当调整。如果你是运行在ADMIN权限,那就无所谓,只需要加上延迟执行时间即可。(目的是防止哨兵程序在随系统启动后优先于系统正常服务占用端口)
因为我们考虑设置低权限用户,在本地安全策略里面,添加
设置计划任务的时候,尽量延迟任务时间,最少5分钟以上。
方案三,最简单的方法,也是最傻瓜的方法,一键全域蜜网,聪明的人都猜得到,通过GPO下派执行命令即可,当然为了不让人轻易看到脚本内容,可对脚本进行混淆加密。注意,因为需要保持代码不退出,Powershell执行的时候需要加上参数 -noexit,所以在进行GPO下派执行的时候必须注意运行权限为SYSTEM,所以,担心的朋友需要慎重考虑执行权限和其他方法。
当然,也可以通过启动脚本执行,自启动菜单等等,方法太多了,就不讲了。
如此,傻瓜化的一键全域蜜网就被我们轻松地搭建起来了,所有的Windows主机即刻化为蜜罐系统,有效地弥补了搭建蜜罐繁琐的弊端,从而让哨兵树立于所有的主机上,甚至可以结合蜜账户,蜜SPN等实现多维多角度全方位无死角的蜜网360。
完整代码我已经上传到了【哨兵密网】,有兴趣的童鞋可以自己玩下。
请登录后发表评论
注册