Arp EMP v1.0 - 点击图片查看高清大图
我这两天在忙着写:Arp EMP v1.0,呵呵,我为什么要写这个呢?
这个说来话长,源于这篇文章:嗅探、劫持 3389 端口、远程桌面、rdp 协议的一些经验技巧总结
这个矛盾的缘由,是由于我在文章底部写了一句话(出于礼貌,这句话已经于几天前去掉了):***************************************。
于是乎,这篇文章被转载,紧接着,当天下午,open 本人就看到了,然后在其博客吐槽(几天后,有人在我博客挑衅时我才看到的),内容如下:
地址:http://hi.baidu.com/0x24/blog/item/602c917ae0f71bf22e73b3fc.html
内容:发发唠叨,2012-02-21 23:38,转来转去转到我这里来了.写文章别引用过多我的语言.那货.你就点评下整个过程哪点技术含量不高就得了.还有.坐等那货也能出一款这样的...
文章底下还有他朋友“cnmoker”的吐槽:2012-02-22 13:32 | 回复:他妈的,叫你不要爆。这下拉的自己跟2B一个智商了吧。会写点VB的货都哇哇叫了。
地址:http://hi.baidu.com/artcracker/blog/item/81f02e191a7e841834fa412e.html
这是一篇转载的文章,底下“cnmoker”吐槽:
cnmoker 2012-02-21 23:16 | 回复:如果这篇文章是你自己写的,不是转载的话,我要说,你从上到下的所谓思路全部是零碎的从open口里的来的。要不就是我们说出去,你从别人哪里听到的。有本事可以写一个出来,没本事不用YY。。。就是你这样的货太多了,我们才不愿意共享。
cnmoker 2012-02-21 23:21 | 回复:看了下,原文出自 https://lcx.cc/post/2257/,会点VB的货也敢出来混!擦。口出狂言。
呵呵,在此事件之前,我从来没有听说过 open 是谁,请问:又是如何“从open口里的来的”呢?
再者,“……要不就是我们说出去,你从别人哪里听到的。……”,哥,你这是国家机密吗?
另外,“……会点VB的货也敢出来混!擦。口出狂言。……”,哥会 VB 又怎么了?怎么就口出狂言了!?跟你又有什么关系?
地址:https://lcx.cc/liuyan/index.asp?Number=2257
内容:见,ID:1112、ID:1113
“……OPEN写出这个花了半个月你也许得半年,不要以为自己多牛B。”
事件前因描述完了,所以我花了两天时间写了这个软件,然后又写了这篇文章。
Arp 攻击的由来,以及原理,就不多说了,网上有可查大把的资料,今天我就在这里简单的讲一下单向、双向 Arp 攻击的原理,以及剖析“hijackport + rdpproxy”这个工具的原理。
Arp 攻击讲解起来十分的绕口,数据包绕来绕去的,我尽量以比较通俗的语言、清晰的思路和逻辑,再次讲解一下,内容如下。
首先,什么是 Arp 攻击?
ARP 攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者取得局域网上的数据封包甚至可篡改封包,且可让网络上特定计算机或所有计算机无法正常连接。最早探讨ARP攻击的文章是由Yuri Volobue所写的《ARP与ICMP转向游戏》。
具体原理就不说了,不然又是长篇大论,具体去看:http://baike.baidu.com/view/700129.htm
在这里,大家只需要简单的理解为:通过 Arp 攻击,你可以监听所有通讯数据,或者伪装成另外一台机器,为所欲为。
Arp 欺骗分为两种,一种是双向欺骗,一种是单向欺骗,我都简单的讲一下。
假设现在有三台机器,分别是:
A、网关,IP 地址:192.168.1.1
B、普通客户机,IP 地址:192.168.1.2
C、普通客户机,IP 地址:192.168.1.3
Arp 单向欺骗:
1、掐断 A 与 B 的通讯,实现原理:C 向 A 发送一条 Arp 数据包,内容为:B 的地址是 00:00:00:00:00:00 (一个错误的地址),那么 A 此后向 B 发的数据包都会发到 00,而这个地址是错误的,所以通讯中断了,但是要注意了,这里只是 A --> B 中断了,B --> A 没有中断,所以这个叫单向欺骗。
2、掐断 B 与 A 的通讯,实现原理和第一条一样,如果和第一条一起发,那么 A 和 B 的通讯就完全中断了,即:A <-- × --> B
3、嗅探 A 与 B 的通讯,实现原理:C 向 A 发送一条 Arp 数据包,内容为:B 的地址是 AA:BB:CC:DD:EE:FF (C自己的地址),也就是说,C 对 A 说:我才是 B,于是 A 把向 B 发送的数据都发给 C 了,C 得到数据后就可以为所欲为了,可以直接丢弃,那么通讯中断,也可以再次转发给 B,那么又形成回路,C 当了个中间人,监视 A 和 B 的通讯,此时你就可以用CAIN等任何抓包工具进行本地嗅探了,因为目标机器数据完全从你这你走,任意嗅探。当然你可以不转发所有数据,只转发部分数据,把某些特定协议的数据分离出来,然后单独处理,例如替换、修改(类似 zxarp 等 Arp 工具的插入、劫持数据功能),或者干点其他啥,都行。
4、嗅探 B 与 A 的通讯,同上。
Arp 双向欺骗:
1、将单项欺骗的 1、2 或 3、4 同时做,就是双向欺骗了,很简单。
接下来详细分析 open 的录像内容,内容如下:
没有看过他的录像的朋友,请先去他的网盘下载:http://9780399.ys168.com/ (在:动画演示\hijackportrdpproxy.rar 2,667KB RDP协议安全),以下是他的录像内容详细分析。
首先是测试环境状况:
自己:
IP: 192.168.0.189 --> Mac:00:23:CD:95:17:A1 --> Windows XP (经典主题) 或 Windows 2003
189 在这里是充当一个机房网关的角色,备注中有详细说明。
虚拟机:
IP: 192.168.0.220 --> Mac:00:03:FF:95:17:A1 --> Windows XP
IP: 192.168.0.221 --> Mac:00:03:FF:97:17:A1 --> Windows 2003
第一种:
钓鱼,也就是把要连接方欺骗让其连接到我自己,这时你可以在自己身上安装一个密码记录,记录密码。
命令:hijackport 0 192.168.0.189 192.168.0.221:3389 3389
分析:
1、hijackport 那个 Arp 劫持目标机器,并修改流经数据到本地指定端口的东西。
2、参数 0,这个是网卡编号,指定使用哪个网卡,不解释了……
3、192.168.0.189,被欺骗的“连接方”,到时候会给它发 Arp 欺骗数据包,底下解释。
4、192.168.0.221:3389,要欺骗的机器,底下解释。
5、3389,转发到本地3389端口。
整个功能流程如下:
1、220 对 189 发送 Arp 包,说:我是:221,于是 189 把本来对 221 发送的包都给发到 220 了。
2、220 拿到这些数据包后,将其又转发到本机 3389 端口,形成回路。
3、正常的数据包流程为:189 --> 221
4、被欺骗后的流程为:189 --> 220
5、欺骗完成,实际上这里没有 221 什么事,221 在一边打酱油。
第二种:
基本和第一种一致,只是多了转发、解包的过程,我在这里只写出区别的地方。
命令:hijackport 0 192.168.0.189 192.168.0.221:3389 8080
参数功能一样,不多说了……
区别就在于,这次是转发到本地 8080 端口,然后 8080 端口又监听了一个东西:rdpproxy
rdpproxy 的功能很简单,这个玩意儿就是一个端口转发工具,类似 lcx.exe 的东西,区别就是多了一个解包的过程,解开加密的 rdp 数据包,然后做记录,最后提取密码用。
命令:rdpproxy 8080 192.168.0.221:3389
功能:监听本机 8080 端口,然后把收到的数据全部发到 192.168.0.221:3389,形成回路,完成欺骗。
你也许会问,为什么 221 可以连接,不是被欺骗了吗?
呵呵,这就是关键所在,整个流程压根没 221 什么事,221 只是在打酱油,欺骗的是网关,所以目标机器的 Arp 防火墙是没有任何反应的,因为根本和他无关。
而局域网数据发送是不经过网关的,所以即使网关被欺骗,也不影响局域网内机器互相访问,所以完全是可以连接的,没有任何异常。
PS:这里引申一下,如果是双向欺骗的话,局域网互相访问是需要修改数据包中的源 MAC 地址,然后再发出去的,这个比较复杂抽象,就不多说了。
备注:
为什么说 189 在这里充当一个网关的角色?
以为从外网发来的所有数据,都是从网关处中转,再发给目标机器的,目标向外网发的数据,也是通过网关处中转,再发到外网。
他在这里直接把自己“充当为”网关,向目标机器发数据,实际上和外网发送是一样的,只是为了方便测试。
这个单向 Arp 欺骗的目的就是为了欺骗网关处,让网管把本来从外网发到 221 的数据,发到 220,也就是 220 对网关说:我是 221。
220 拿到 221 的数据后,就可以为所欲为了……
录像内容分析完了,这个工具没有完全发挥单项欺骗的魅力,其实是这样的:
“2、220 拿到这些数据包后,将其又转发到本机 3389 端口,形成回路。”
在这一步中,根本不用转发到本机 3389 端口,直接把原始数据包中的 MAC 地址改成正确的,再发出去,形成回路,你直接就成了中间人了,监视通讯,不需要再转发到本机了。
而且他的方法2中,还单独写了个转发工具进行转发,这其实是完全不需要的……
就到这里吧,不写了,文章也够长了,底下附上“Arp EMP v1.0”的演示录像和下载地址。
Arp EMP v1.0:
单向 Arp 攻击可以突破 Arp 防火墙,只要网关与目标中任何一方没有绑定 MAC,就可以攻击成功!在大多数机房中,网关都是没有绑定 MAC 地址的,可以无视目标防火墙!
而双向 Arp 攻击,需要网关与目标都没有绑定MAC的情况下,才可以成功。这种情况比较少,常见于家庭或公司局域网中。
只要没双绑,横扫局域网!
演示录像:
下载地址:
出于尊敬别人,也给自己留后路,我不打算公开发布,本人的好友,可以私下找我要,多谢大家捧场!
2012-2-27 14:53:49 补充:
留言评论(旧系统):