原文转载自:http://blog.csdn.net/chengxuyuanyonghu/article/details/41017663
1.获取同一网段下所有机器MAC地址的办法
机房有机器中毒,发arp包,通过arpspoof虽然可以,也可以找到中毒机器的mac地址,但在机房设备不足的情况下,很难查到mac地址对应的IP。然后我们可以通过一个循环,使用arping来对整个子网下面的机器发一个包,这样就可以在arp下面查看到相应的mac缓存,进而得到对应的IP地址。
#!/bin/sh
for ((i = 1; i < 254; i++))
do
arping -I eth0 60.191.82.$i -c 1
done
arp -an > mac_table
#arp -vn > mac_table 此命令的输出格式更规整。
脚本跑完后,查看当前目录生成的mac_table。
#arp -a 查找你中毒时网关的MAC地址,并记录下来在mac_table里寻找到相对应的机器,仍后就可以找出那台机器感染了ARP病毒。
附注:arp命令 来自:
arp命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。
语法:arp(选项)(参数)
arp(选项)
-a<主机>:显示arp缓冲区的所有条目;
-H<地址类型>:指定arp指令使用的地址类型;
-d<主机>:从arp缓冲区中删除指定主机的arp条目;
-D:使用指定接口的硬件地址;
-e:以Linux的显示风格显示arp缓冲区中的条目;
-i<接口>:指定要操作arp缓冲区的网络接口;
-s<主机>::设置指定的主机的IP地址与MAC地址的静态映射;
-n:以数字方式显示arp缓冲区中的条目;
-v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息;
-f<文件>:设置主机的IP地址与MAC地址的静态映射。
arp(参数)
主机:查询arp缓冲区中指定主机的arp条目。
实例:
arp -a IP地址 #如果我们有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
arp -d IP地址 #使用该命令能够人工删除一个静态项目。
arp -s IP地址 MAC地址 #人工手动完成IP到MAC的静态绑定。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
永久绑定ip和mac地址的方法:
echo “IP地址 mac地址” >> /etc/ethers
arp -f
#该命令还可以读取文本文件中的ARP记录,其默认文件是/etc/ethers。也就是说,当输入ARP-f的时候,系统就会读取/etc/ethers这个文件,并以其中的项目取代系统当前的ARP记录
2.#提供方案原创者:yk103,在此表示感谢!
先libnet
tar -xvzf libnet.tar.gz
cd libnet
./configure
make
make install
arpoison
tar -xvzf arpoison-0.6.tar.gz
cd arpoison
gcc arpoison.c /usr/lib/libnet.a -o arpoison
mv arpoison /usr/sbin
编写arpDefend.sh脚本.
#!bash
#arpDefend.sh
#yk103
#网关mac地址
GATEWAY_MAC=00:11:BB:A5:D2:40
#目的mac地址
DEST_MAC=ff:ff:ff:ff:ff:ff
#目的ip地址(网段广播地址)
DEST_IP=60.191.82.254
#本地网卡接口
INTERFACE=eth0
#$INTERFACE的mac地址
MY_MAC=00:30:48:33:F0:BA
#$INTERFACE的ip地址
MY_IP=60.191.82.247
#在本机建立静态ip/mac入口 $DEST_IP--$GATEWAY_MAC
arp -s $DEST_IP $GATEWAY_MAC
#发送arp reply ,使$DEST_IP更新$MY_IP的mac地址为$MY_MAC
arpoison -i $INTERFACE -d $DEST_IP -s $MY_IP -t $DEST_MAC -r $MY_MAC 1>/dev/null &
阅读(1789) | 评论(0) | 转发(0) |