使用arpspoof抵御ARP攻击

嗯嗯,没错,就是arpspoof,一个专门从事arp攻击的工具。
既然是arp攻击工具,那么自然可以为我们自己所用,我们所要做的就是每秒发送NNN个arp包给网关,告知网关正确的arp。
arpspoof被打包在dsniff套装里面了,所以我们需要把整个套装安装,因为套装里面太多好工具了,包括arp、dns、ftp、http等攻击和嗅探工具。
在debian下面,先把源代码包下载回来
#cd /root
#mkdir dsniff
#cd dsniff
#apt-get source dsniff
#cd dsniff-2.4b1+debian
#vi arpspoof.c
找到

        for (;;) {
                arp_send(l, ARPOP_REPLY, NULL, spoof_ip,
                         (target_ip ? (u_int8_t *)&target_mac : NULL),
                         target_ip);
                sleep(2);
        }
        /* NOTREACHED */

其中sleep(2);是表示发送一个数据包后,暂停两秒。我们需要把这个时间改短。因为据说有很变态的攻击程序,每秒发送好几百个arp欺骗包。
因为sleep只能按照秒来设置,并且最低只能设置1秒,所以我们需要用另外一个函数,usleep()。
usleep()用毫微秒(十亿分之一秒)来计算,所以我们根据需要调整,把源代码改成下面的样子

        for (;;) {
                arp_send(l, ARPOP_REPLY, NULL, spoof_ip,
                         (target_ip ? (u_int8_t *)&target_mac : NULL),
                         target_ip);
                usleep(10000);
        }
        /* NOTREACHED */

然后编译源代码并安装
#cd ..
#apt-get build-dep dsniff
#apt-get source -b dsniff
如果编译成功,将会在同目录下面生成一个deb文件,类似dsniff_2.4b1+debian-15_i386.deb
然后我们把这个deb包安装
#dpkg -i dsniff_2.4b1+debian-15_i386.deb
锁住这个包,让这个包无法升级,以免被替换掉

#echo -e "dsniff hold" |dpkg --set-selections

完成后,使用下面的命令行运行
#arpspoof -i eth0 -t 192.168.1.1 192.168.1.100
其中eth0是网卡设备名,-t是网关,192.168.1.100是你机器的IP地址
如果需要放到后台运行,只需要按键盘的ctrl+z暂停程序,然后在命令行输入bg即可。