▼
更多精彩推荐,请关注我们
▼
高级持续性威胁(Advanced persistent threat)以下简称“APT”。逐渐演化为各种社会工程学攻击与0day漏洞利用的综合体,已成为最严重的网络空间安全威胁之一。
按照kill-chain的理论方法,可以把APT分为7个步骤
1)侦查
2)武器制造
3)武器投递
4)漏洞利用
5)安装恶意程序
6)潜伏控制
7)横向扩散,清除日志
在一系列步骤中,apt攻击非常的隐蔽,传统的安全设备基本不会报警,导致在第一到第五阶段,几乎无法对攻击行为进行检查。在第六阶段的潜伏控制阶段,攻击者基本不会使用传统的cc或者Socket进行通信,http通信方式目前被阻断的几率很大,因为可以通过安全受到进行拦截和限制。目前很多攻击者开始使用更加安全的隐蔽隧道,如dns、icmp、各种协议 over http隧道等,与其他方式相比,隧道的方式隐蔽度较高,因为向dns和icmp等协议是每台主机必须使用的协议,很难进行拦截和阻断,目前高级的APT攻击很多开始使用隐蔽隧道的方式进行数据传输并且已经成为主流技术。
今天咱们站在攻击者的视角,来说一下icmp隧道,欢迎一起交流。
在攻击中,攻击者入侵了一条数据库服务器,当攻击者兴奋的登录控制的系统后,发现该主机对外只开了icmp协议,其他都是禁止访问的。
拓扑图如下:
一、技术实现原理:
IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。
ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。
如下是icmp的结构图,
icmp本身比较简单,有一个字节的类型和一个字节的代码和两个字节的校验码,其他为数据部分,icmp携带的数据部分默认是32字节。而且携带的数据在windows中永远是:abcdefghijklmnopqrstuvwabcdefghi
看了icmp协议的结构,你是不是在想,data数据的内容能否换成我自己想传输的数据呢?这就是icmp隧道的精髓了,icmp隧道就是要替换掉data部分数据。
那我们能否改变这些data填充我们自己的数据呢? 答案是当然是可以的!
在icmp data中的数据进行更改后,目标设备能否解析内容呢,这就需要工具代替系统自身模块了。
二、演示环境需要三台主机
1)内网终端为linux
2)跳板服务器为linux
3)目标服务器为windows
我们所使用的工具为ptunnel
三、具体操作步骤
1、在跳板服务器上安装ptunnel工具
在内网终端主机中
ptunnel -p XX.XX.XX.XX -lp 1092 -da 139.XX.XX.XX -dp 23
四、检测及防御
了解了icmp的工作原理和攻击的实现过程,是不是检测就比较容易了呢,嗯,也是也不是。
检测容易的原因:
1)只要在主机上把icmp禁止就完全可以杜绝icmp隧道了,但是在实际生产环境中需要知道主机是否存活的一个重要依据,所以很难禁止。
2)对所使用的icmp隧道工具进行检查,嗯,这确实是一个好办法,但是实际环境中一般都是攻击者自己写代码制作的工具,这种是没有特征的,所以对工具进行检查只能禁止开源的工具,不能阻止非开源工具
检查复杂的原因:
1)对icmp隧道进行检查,可以使用DPI对数据包的内容进行检查,检查icmp是否符合icmp的标准规范,这样检查的缺陷是对检查设备性能影响特别大,而且误报率非常高。告警多的你怀疑人生。
2)某些厂商,对icmp报文大小进行检查,因为实际的ping数据包大小基本不会超过100字节,某些厂商通过icmp大小进行检查,检查不是这样做的,误报率高的简直可以骂人了。
icmp隧道还没有讲完。下次继续聊聊icmp隧道。
扫一扫关注我们,
更多咨询早知道!
领取专属 10元无门槛券
私享最新 技术干货