将蜜罐技术应用到内网攻击感知中,一篇硕士论文的研究过程与demo实现,抛砖引玉。计划的系列文章内容分为以下几个部分,按照论文撰写的脉络来讲:
这里说的内网通常指的是局域网或企业内网(通常会通过访问控制技术和互联网相对隔离),随着网络技术和设备的不断发展,内网常见的攻击手段也在不断丰富和变迁,如网络嗅探、拒绝服务(Denial Of Service)、端口扫描、暴力破解、ARP攻击、DNS劫持等,随着网络服务种类的增多,内网的攻击面也在不断扩大[1]。本章节主要介绍当前常见的内网攻击类型,并分析检测的思路。
1)端口扫描
端口扫描是一种攻击初期的信息收集技术,主要用来判断目标主机是否开放相应的端口和服务,通过向目标主机发送端口连接请求,然后根据目标主机的回应信息判断目标对应端口是否开放[19]。
攻击者在进入内网后,为了扩大战果通常会进一步探测内网结构和重要信息资产,因此往往会对内网网段进行端口扫描来判断内网中的网络拓扑以及每台内网主机开放的端口及服务[20]。端口扫描是攻击者进行前期信息收集的有效手段,能快速暴露内网信息资产类型及分布。
常见端口及服务如FTP(21端口)、MySQL(3306端口)、HTTP(80端口)等等,其实企业中有更丰富的应用,比如Rsync、redis、mongodb等,这些服务百度一下就可以搜到相应的介绍,至于常见的企业应用端口和服务可以参考这篇文章 白帽子黑客端口大集合。
通常在扫描到目标系统对应端口开放后,攻击者可能会对需要登陆的服务进行弱口令尝试、未授权访问、暴力破解等,比如对21端口的FTP服务进行反复登录尝试。
2)端口扫描检测思路
端口扫描检测思路相对明确,通常可采用监听本地端口的方式,被动等待连接,可对常用端口和服务进行监听,也可对全端口进行监听。监听对应端口后便可对该端口的连接请求进行检测并对来源和频率进行记录[23]。
说到这里,其实看了几篇论文后,会出现“水平扫描” 与 “垂直扫描” 这两个名词。其实也很容易理解,比如垂直扫描,就是对一个IP扫描一个端口范围,比如1-65535整个端口范围;而水平扫描,指的就是针对某一个端口,比如21端口,扫描一个IP网段,比如从192.168.1.1-192.168.1.255 。
那么问题来了,看下图,在一个局域网内部署两台以上蜜罐终端,比起单台蜜罐终端有哪些实际意义呢?
首先,我这里蜜罐的设计思路,都是被动地等待攻击者来探测和攻击,不会主动发包什么的,我把这叫做“不打扰是我的温柔”,简单说就是“被动式蜜罐”。在这个前提下,如果攻击者对内网进行扫描的话,在内网中部署的蜜罐越多,检测到扫描行为的概率越大,怎么理解呢?
比如192.168.1.1-255这个局域网,我们的蜜罐是192.168.1.90,如果攻击者针对某些端口(如21端口)进行整个网段的水平扫描,那我们的90蜜罐当然能捕获到扫描行为,但是我们不能总假设攻击者会这样做吧,比如有经验的攻击者为了隐蔽,可能只会扫描部分网段,比如高网段或低网段,那岂不是我们部署在192.168.1.90岂不是捕获不到这种扫描行为了,所以,在内网重要信息系统分布区的相邻网址部署多个被动式蜜罐可以提高内网攻击的检测覆盖率。
额外说几点,在内网中部署两台以上的被动式蜜罐,还可以避免单点故障,以及检测蜜罐被控的情况,比如A蜜罐发现B蜜罐有主动扫描的行为,就可以判定这个B蜜罐已经沦陷了。
1)ARP攻击原理和危害
ARP地址解析协议(Address Resolution Protocol)位于TCP/IP四层协议的网络层,负责解析IP地址和MAC地址的对应关系 [24]。
ARP欺骗通常通过在局域网中发送伪造IP地址和MAC地址的ARP应答包对目标进行攻击,在目前主流的基于路由器的局域网中,ARP欺骗攻击同样适用,ARP欺骗攻击可使受害者无法上网,造成拒绝服务,也可通过伪造网关的ARP应答包进行中间人攻击,嗅探内网敏感数据,甚至能获取到内网用户的用户名口令等信息[19]。
ARP欺骗的攻击过程可简要描述如下:
(1)攻击者在局域网段发送构造好的包含虚假IP-MAC对应信息的ARP应答包,使局域网的其他设备认为攻击者的机器是网关,从而充当假网关。
(2)被攻击者的将数据包发送给虚假网关。
(3)假网关(攻击者)分析接收到的数据包,把有价值的数据包记录下来(如邮箱、电商登录数据包)。
(4)假网关(攻击者)再把数据转发给真正的网关,充当中间人。
在内网渗透中可以通过ARP攻击嗅探到管理员的帐号密码等敏感信息。
不知道有没有小伙伴玩过 dSploit 这个无线内网攻击工具(dSploit停更后又出了个 cSploit),它的很多攻击手段就是利用了ARP欺骗,比如通过ARP欺骗,把自己伪造成网关,利用“中间人攻击”的思路可以劫持同一个局域网内别人的Web会话,如看到别人正在浏览的淘宝、唯品会、微博等并能直接操作,我原来也玩过一阵子,是下载的apk安装包装到安卓平板上测试的,给几张截图:
目前很多APP已经通过加强https,校验服务端证书等方式检测和对抗类似的中间人攻击,异常时也会给用户一定的提示。
2) ARP攻击检测思路
ARP欺骗能够成功的关键点在于由于协议本身的特点,当攻击者发送伪造的ARP应答包冒充网关时,被攻击者没有对声称者的MAC地址和IP地址的真实性进行确认[25]。因此,假设局域网内的检测设备,每次启动时,记录当前网关的IP和MAC地址,先假设当前网关可信,并通过一段时间内网关IP和MAC地址对应关系的变化来再次确认。当突然发现ARP协议中声称的网关IP和MAC地址发生变化时,可对新的IP和MAC对应关系的真实性进行判断和确认,从而检测是否遭受了ARP攻击,并记录攻击源的MAC地址。可通过定期读取本地IP-MAC对应表的方式,对局域网内的设备地址和对应关系进行记录,从而及时发现ARP攻击[26]。IP-MAC对应表如下图所示。
需要说明的是,通过”arp -a”命令获取到的IP-MAC对应表并非包括局域网内的全部设备,通常只包括和本机发生过数据通信的主机,但是列表中一定会包含网关,和试图攻击本机的局域网内主机,因此通过此种方法可以获取到需要的IP-MAC对应信息。
1)DNS劫持原理和危害
DNS(Domain Name System)域名服务主要是提供域名到IP地址的映射和转换[27]。在Internet的普及过程中,因为域名比IP更容易记忆,所以Internet的用户通常只会通过域名来访问一个站点,因此DNS服务的作用非常关键 [24]。通常局域网网关会在网络配置中设置可信的DNS服务器地址,但基于现有的路由器网络,由于种种路由器漏洞、弱口令等安全问题,路由器一旦被攻击者控制,攻击者便可通过篡改DNS指向自己控制的可定制的DNS服务器,就能实现区域的网络流量劫持和篡改,窃取敏感信息,甚至通过替换返回流量植入远控木马,从而控制内网计算机,极大危害整个内部网络的安全[28]。
先说如何远程修改人家路由器的DNS,我原来实践过一个思路,就是针对一些老版本的路由器(比如老款的TP-link),利用CSRF漏洞。你假设目标用户家里的路由器默认帐号密码是admin和admin,然后假设默认路由器地址是192.168.1.1,然后你就可以自己搭建个Web页面,然后再页面中嵌入类似如下这句payload(这个payload也是我根据路由器实际修改DNS的数据包构造的,假设想把目标用户的路由器DNS改为16.16.16.16),然后你把自己构造的互联网可访问的Web页面URL发给目标用户(假设构造好的URL为https://sosly.me/luyouqitest.html), 如果他点击了你的URL,页面中的payload就会用你猜测的密码和路由器IP去尝试修改DNS,如果你都猜对了,就能成功修改目标路由器的DNS了:
这个payload的成功关键在与你猜对了用户名密码,和路由器的IP地址,其实很多老版本路由器都有默认的用户名密码和IP地址,小白用户也大都不会改,所以当时这种CSRF攻击成功率还是很高的。如果是猜测用户刚好登陆了自家的路由器的状态,那我们的payload就可以省略猜测用户名密码的部分,当然你也可以多嵌入几个payload猜测不同的密码或路由器IP地址,提高成功率。
目前的路由器大多已经加强了安全机制,比如我买过新款的TP-link,就取消了默认密码设定,让用户首次使用时自己设定初始密码。
DNS劫持示意图下图所示。
DNS劫持的危害属于“人有多大胆,地有多大产”,简单的比如在网页返回包中植入广告,严重的监控你的下载行为进行病毒木马程序的替换,隐蔽点的监控你某款软件的升级行为,然后对升级包进行替换,从而神不知鬼不觉地植入远程控制的木马等等。
2)DNS劫持检测思路
检测DNS的思路主要有两种,首先通过命令”ipconfig -all”或者”ifconfig”可以读取到本地的DNS设置,如下图所示。
需要说明的是,该DNS默认情况下是通过DHCP的方式由网关自动配置,也可以通过本地配置。因此,可以定期读取本地的DNS配置,然后通过建立可信DNS白名单的方式对本地DNS的安全性进行判断。
根据DNS劫持的原理,由于DNS劫持后会对全部或者部分流量进行代理,这种技术一个简单的实现思路,就是不管你请求什么域名,返回的IP地址会统一指向攻击者控制的流量监控和转发服务器的IP地址,然后那个服务器会对经过的流量进行监控和替换,因此通过ping命令,ping若干知名站点,如百度(www.baidu.com)、京东(www.jd.com),若返回IP为当前DNS的IP或某一个相同的IP,则可判断已受到上述这种DNS劫持攻击[29]。
除了上述端口扫描以及暴力破解、ARP攻击、DNS劫持外,内网还可能出现网络嗅探[30]、伪装DHCP服务器[31]、拒绝服务DoS(Denial Of Service) [32]、漏洞扫描[33]等攻击手段,但在以太网网络架构下,随着网关设备、终端操作系统及防护软件的升级,一些内网攻击手段的代价在不断提升,有效性在不断降低,因此本节只重点介绍了当前内网比较常见以及危害较大的端口扫描及暴力破解、ARP攻击、DNS劫持三种内网攻击手段,并对相应的检测思路进行了阐述。另一方面也是因为精力问题没有再进一步扩展。
这些文献大多是论文,通常高校的校园网访问图书馆系统或者一些第三方论文库都可以免费搜索访问。
系列文章,未完待续,看这更新的频率,“不打扰是我的温柔”这种借口我都不好意思说了...
也欢迎关注我的博客:sosly 菜鸟笔记
https://sosly.me