来源:网络 | 2007-9-20 | (有2970人读过)
由于内网无法正常连接网关,远程登陆网关已无法实现。因此一切操作均在网关服务器本地进行。
1.在服务器本地端口抓包 [root@Routed-Server tmp]# tcpdump -nn -i eth1 > error.network tcpdump: listening on eth1 2749 packets received by filter 0 packets dropped by kernel # 将通过eth1端口的包抓下来,存为error.network文件 2.将ARP包截取出来 [root@Routed-Server tmp]# grep ‘arp’ error.network > arp.virus [root@Routed-Server tmp]# ls -l arp.virus -rw-r--r-- 1 root root 6241 Oct 25 10:59 arp.virus # 将所有ARP包截取,另存为文件 3.分析ARP包 [root@Routed-Server tmp]# vi arp.virus ~省略 10:43:26.086278 arp reply 192.168.2.2 is-at 0:14:78:80:d9:e4 10:43:26.181051 arp reply 192.168.2.3 is-at 0:14:78:80:d9:e4 10:43:26.211026 arp reply 192.168.2.11 is-at 0:14:78:80:d9:e4 10:43:26.242212 arp reply 192.168.2.4 is-at 0:14:78:80:d9:e4 10:43:26.304441 arp reply 192.168.2.162 is-at 0:14:78:80:d9:e4 10:43:26.398826 arp reply 192.168.2.167 is-at 0:14:78:80:d9:e4 ~省略 # 问题出来了,可以看到以上几个包括网关IP在内的IP地址都宣称其位于MAC地址 # 为“00:14:78:80;d9:e4”的网卡 4.查看网关(192.168.2.11)的MAC地址 [root@Routed-Server tmp]# ifconfig eth1 |grep -A1 ’HWaddr’ eth1 Link encap:Ethernet HWaddr 00:0A:EB:551:72 inet addr:192.168.2.11 Bcast:192.168.2.255 Mask:255.255.255.0 # 可以看到网关的MAC地址为“00:0A:EB:551:72”,与上面arp-reply包不相符 # 这里基本上可以份析出中毒的机器MAC地址为“00:14:78:80:d9:e4” 5.准确定位中毒机器 知道可能中毒机器的MAC地址,对其定位应该不是件难事。对于小型的网络我们可以对每台机器的MAC地址进行查询. 6.对于大型网络,机器台数超过200台的环境,这样做并不是最高效的办法。由于使用DHCP,这里我想到了DHCP的租约记录。 在/var/lib/dhcp/dhcpd.leases记录中查找MAC地址对应的IP记录 [root@Routed-Server tmp]# vi /var/lib/dhcp/dhcpd.leases ~省略 lease 192.168.2.161 { starts 3 2006/10/25 02:56:22; ends 2 2038/01/19 03:14:06; binding state active; next binding state free; hardware ethernet 00:14:78:80:d9:e4; uid "\001\000\024x\200\331\344"; client-hostname "ABEAAF6E64884EB"; } ~省略 # 在dhcpd.leases文件中,我找到如上记录 # 可以看出MAC地址为“00:14:78:80:d9:e4”的机器,IP地址为192.168.2.161 # 机器名为“ABEAAF6E64884EB” 7.到这里,中毒机器的机器名,IP地址均已查出。 8.在所有的客户机的启动里放上MAC绑定脚本: @echo off ipconfig /all >ipconfig.txt find "Physical Address" ipconfig.txt >UserMac.txt for /f "skip=2 tokens=12" %%M in (UserMac.txt) do set Mac=%%M find "IP Address" ipconfig.txt >UserIP.txt for /f "skip=2 tokens=15" %%N in (UserIP.txt) do set ip=%%N arp -d arp -s %IP% %MAC% arp -s 192.168.2.1 00:E0:4C:D0:F1:6A <-----网关真实MAC地址。 del ipconfig.txt UserMac.txt UserIP.txt @cls @echo. @echo IP、MAC地址已绑定,请按任意键结束... pause >nul exit
9.00 网关建立静态IP/MAC捆绑 打开所有机器,#arp -a,复制粘贴,建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下: 192.168.2.32 08:00:4E:B0:24:47 然后再/etc/rc.d/rc.local最后添加: arp -f 生效即可.
9.0 防范措施 9.1. 建立DHCP服务器 (建议建在网关上,因为DHCP不占用多少CPU,而且ARP欺骗攻击一般总是先攻击网关,我们就是要让他先攻击网关,因为网关这里有监控程序的,网关地址建议选择192.168.10.2 ,把192.168.10.1留空,如果犯罪程序愚蠢的话让他去攻击空地址吧),另外所有客户机的IP地址及其相关主机信息,只能由网关这里取得,网关这里开通DHCP服务,但是要给每个网卡,绑定固定唯一IP地址。一定要保持网内的机器IP/MAC一一对应的关系。这样客户机虽然是DHCP取地址,但每次开机的IP地址都是一样的。 9.2. 建立MAC数据库 把网吧内所有网卡的MAC地址记录下来,每个MAC和IP、地理位置统统装入数据库,以便及时查询备案。 9.3. 网关机器 关闭ARP动态刷新的过程,使用静态路邮,这样的话,即使犯罪嫌疑人使用ARP欺骗攻击网关的话,这样对网关也是没有用的,确保主机安全。 网关建立静态IP/MAC捆绑的方法是: 建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下: 192.168.2.32 08:00:4E:B0:24:47 然后再/etc/rc.d/rc.local最后添加: arp -f 生效即可. 9.4. 网关监听网络安全。 网关上面使用TCPDUMP程序截取每个ARP程序包,弄一个脚本分析软件分析这些ARP协议。ARP欺骗攻击的包一般有以下两个特点,满足之一可视为攻击包报警:第一以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配。或者,ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库 MAC/IP 不匹配。这些统统第一时间报警,查这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道那台机器在发起攻击了。
|