利用ARP欺骗进行MITM(中间人攻击)
ARP欺骗主要骑着信息收集得作用,比如可以利用欺骗获取对方流量,从流量分析你认为重要得信息
0X01 了解ARP
Arp协议
ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。
以太网(局域网)进行信息传输时,不是根据IP地址进行通信,因为IP地址是可变的,用于通信是不安全的。然而MAC地址是网卡的硬件地址,一般出厂后就具有唯一性。ARP协议就是将目标IP地址解析成MAC地址进行验证通信。
ARP通信原理
每台主机都会在自己的ARP缓冲区建立一个ARP列表(生命周期二十分钟),用于表示IP地址和MAC地址的对应关系。而这份协议信任以太网所有节点,不检查自己是否接受或发送过请求包,只要收到ARP广播包,他就会把对应得IP-mac更新到自己得缓存表,这就导致我们可以不停的向以太网发送ARP广播包,更i性能ip-mac缓存表
0X02 实验环境:
win10 IP:192.168.0.101 mac:00:f4:8d:18:de:e8
中间人Kali IP:192.168.0.104 mac:00:0c:29:cc:35:6b
ubuntu IP:192.168.0.103 mac:00:0c:29:cc:5d:22
使用工具arpspoof、tcpdump
a) linux因为系统安全,是不支持IP转发的,其配置文件写在/proc/sys/net/ipv4的ip_forward中。默认为0,需要修改为1
echo "1"> /proc/sys/net/ipv4/ip_forward
b) 查看arp攻击前win10和Ubuntu的ARP表中对应的mac地址
win10中ARP表的对应关系
Ubuntu中ARP表的对应关系
c) 使用arpspoof实现双向欺骗
服务通过端口和IP传输数据,IP通过mac地址去寻找对应的机器发送数据
正常情况下首先去寻找win10自身ARP缓冲区中的列表,找到列表里IP对应的mac地址,如果使用arpspoof更新win10的ARP列表,使的Kali的mac地址与Ubuntu的ip地址成一一对应关系,当win10向想要通信的IP地址发送数据的时候,实则是向Kali发送数据,同理欺骗Ubuntu服务器,从而做到双向欺骗
arpspoof –i eth0 –t 192.168.0.101 192.168.0.103 #参数:-i 指Kali所用网卡,-t 表示攻击目标 使用这条语句得作用:告诉192.168.0.101,我(Kali)是192.168.0.103,工具会更新靶机的ARP表,在表里192.168.103这个IP会和Kali的mac地址对应上
arpspoof –i eth0 –t 192.168.0.103 192.168.0.101 #同上
以上两条命令可合并为一条 arpspoof –r 参数
毒化两个主机(目标和主机(host))以捕获两个方向的网络流量。(仅仅在和-t参数一起使用时有效)
arpspoof -i eth0 -t 192.168.11.101 -r 192.168.11.3
d) 在靶机上查看FTP服务器的mac地址
WIN10的ARP表
Ubuntu的ARP表
f) 使用工具tcpdump监听80端口并将所截获数据包导入到1.txt中(如没有1.txt,则自动新建)
tcpdump -X -i eth0 tcp prot 21 > 1.txt
使用WIN10通过浏览器访问Ubuntu,产生如下数据
在文件中查找有用信息,比如user password
g) 结合driftnet和ettercap工具进行进一步攻击