对于 arp 欺骗和 dns 污染的理解
环境:
- 物理机 10.60.5.177
- kali :10.60.5.198
- 网关:10.60.5.254
# ARP 欺骗
# arp 欺骗是什么
地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个 TCP/IP 协议。主机发送信息时将包含目标 IP 地址的 ARP 请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该 IP 地址和物理地址存入本机 ARP 缓存中并保留一定时间,下次请求时直接查询 ARP 缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送 ARP 应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机 ARP 缓存;由此攻击者就可以向某一主机发送伪 ARP 应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个 ARP 欺骗。
arp 欺骗前:
arp 欺骗后:
# arp 欺骗过程:
kali 启动 ettercap
ettercap -G
把受害机添加到 target2,网关添加到 target1
arp poisoning
这样就欺骗完成了。看一下物理机的 arp 表
# DNS 污染
# dns 污染原理
原理解析 | |
我们假设A为用户端,B为DNS服务器,C为A到B链路的一个节点的网络设备(路由器,交换机,网关等等)。然后我们来模拟一次被污染的DNS请求过程。 | |
A向B构建UDP连接,然后,A向B发送查询请求,查询请求内容通常是:“A baidu.com”,这一个数据包经过节点设备C继续前往DNS服务器B;然而在这个过程中,C通过对数据包进行特征分析(远程通讯端口为DNS服务器端口,激发内容关键字检查,检查特定的域名如上述的“baidu.com",以及查询的记录类型"A记录"),从而立刻返回一个错误的解析结果(如返回了"A 123.123.123.123"),众所周知,作为链路上的一个节点,C机器的这个结果必定会先于真正的域名服务器的返回结果到达用户机器A,而我们的DNS解析机制有一个重要的原则,就是只认第一,因此C节点所返回的查询结果就被A机器当作了最终返回结果,用于构建链接。 |
# 过程
重复 arp 欺骗的过程。
修改 /etc/ettercap/eteer.dns 设置一下解析
*.baidu.com A 10.60.5.177
*.baidu.com PTR 10.60.5.177
之后点 plugin 然后 管理插件
双击 dns_spoof
之后再重新启动就行了。
局限性:
- 对于 https 无效
- 对于直接访问 ip 的网站无效
- 对于本地 host 文件有记录的无效