详解中间人攻击中的流量欺骗与流量劫持总结,黑客技术零基础入门到精通实战教程建议收藏!

张开发
2026/4/29 1:06:11 15 分钟阅读

分享文章

详解中间人攻击中的流量欺骗与流量劫持总结,黑客技术零基础入门到精通实战教程建议收藏!
中间人攻击简介中间人攻击Man-in-the-Middle Attack简称MITM攻击是一种网络安全攻击攻击者通过在通信的两端之间插入恶意节点从而达到监视、篡改或劫持通信流量的效果中间人攻击常见的手法包括:ARP 欺骗(ARP Spoofing):攻击者发送 ARP 欺骗包,让受害者误认为攻击者的 MAC 地址是目的 IP 对应的 MAC 地址,从而将流量导向攻击者。DNS 欺骗(DNS Spoofing):攻击者篡改 DNS 服务器的记录,使受害者访问网站时被重定向到攻击者控制的网站。SSL 压制(SSL Stripping):攻击者压制受害者和服务器之间的 SSL/TLS 加密连接,使用明文传输窃取信息。WiFi 伪装(Evil Twin):攻击者设置一个与正规 WiFi 相似的假冒网络,诱使用户连接,获取网络流量。会话劫持(Session Hijacking):攻击者通过获取会话标识符,接管受害者与服务器之间的会话。ARP欺骗简介ARP欺骗是中间人攻击方式中的一项经典攻击手法该攻击方式可以令受害者错认为攻击者的MAC是网关MAC从而将全部流量转发至攻击者主机。由于ARP协议的限制该手段通常用于内网机器通讯时的地址转换。原理:地址解析协议即ARPAddress ResolutionProtocol是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机并接收返回消息以此确定目标的物理地址收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间下次请求时直接查询ARP缓存以节约资源。通俗的说DNS是域名与IP对应的协议而arp是IP与mac(物理地址)对应的协议DNS常用于主机与外网机器连接时进行地址转换而arp多用于内网机器通信时地址的转换手法:攻击者使用 ARP 欺骗工具发送 ARP 响应报文,声称自己的 MAC 地址是受害者要找的 IP 的 MAC。受害者接收到响应后会更新自己的 ARP 缓存,之后发往该 IP 的流量就会发往攻击者。效果:攻击者可以窃听通信内容,劫持会话,进行网站钓鱼等攻击。攻击者可以成为“中间人”,控制受害者和服务器之间的通信。如果攻击者同时欺骗受害者和服务器,可以修改传输的数据包内容。攻击者可以选择只劫持部分特定的流量,使攻击难以被察觉。网络拓扑网络拓扑如图受害者192.168.243.128 00-0C-29-12-DC-7A攻击者192.168.243.129 00:0c:29:f7:fb:a8提前开启抓包工具对虚拟网卡进行抓包arp欺骗方法使用kali工具命令如下arpspoof -i 网卡接口 -t 目标的内网地址 网关ip执行命令后可以在抓包软件中看出攻击者发出了大量的 arp response 包声明自己为网关地址243.2此时我们再去攻击者设备上查看arp表发现网关地址的mac已经被污染为攻击者的mac流量转发与劫持劫持成功后受害者所有的流量都会发送至攻击者但攻击者默认并没有开始流量转发功能所以会导致受害者无法上网在受害者这里发送dns请求攻击者这里就能看到了说明流量成功的被转移到攻击者主机这里为了能在劫持流量的同时保证受害者正常上网攻击者主机需要开启流量转发功能出于安全考虑Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时其中一块收到数据包根据数据包的目的ip地址将包发往本机另一网卡该网卡根据路由表继续发送数据包。这通常就是路由器所要实现的功能。su - #改变用户为root并使用root环境变量 echo 1 /proc/sys/net/ipv4/ip\_forward #将参数换为1默认为00为不转发1为启用流量转发启用流量转发后再操作受害者访问网页可以发现能正常上网且流量被攻击者截获DNS劫持简介DNS劫持(DNS Spoofing)的原理、手法和效果如下:原理:DNS(域名系统)用于域名与IP地址之间的解析。DNS劫持通过伪造DNS响应欺骗受害者。手法:欺骗受害者的DNS服务器,向用户发送虚假的域名解析响应。典型的手法是中毒本地网络的DNS缓存服务器,或进行ARP欺骗成为中间人。还可以通过攻击域名注册商或云服务器等方式实现。效果:受害者会连接到攻击者指定的错误IP地址。攻击者可以将流量重定向到钓鱼网站或恶意服务器。黑客可以中间人攻击受害者与服务器的通信。攻击者可以选择目标,比如只劫持银行或邮件服务的域名。攻击者可以记录受害者的上网记录总的来说当我们有了控制受害者dns服务器或dns请求的权限时便可进行dns劫持搭建dns服务器这里可以使用AdGuard搭建dns服务器搭建完成后把过滤规则、dns黑白名单关掉清空即可https://github.com/AdguardTeam/AdGuardHomeARP欺骗下的DNS劫持假设前期我们已经完成了arp欺骗成为了中间人这时我们已经可以控制受害者机器任意流量通过wireshark可以看出受害者默认的dns服务器为192.168.243.2此时我们利用iptables对受害者的流量进行重定向将其访问192.168.243.2:53端口的流量重定向至攻击者192.168.243.129:53iptables -t nat -A PREROUTING -p udp --dport 53 -d 192.168.243.2 -j DNAT --to-destination 192.168.243.129:53 检查nat表、过滤表规则是否还存在: iptables -t nat -L iptables -L \# 删除命令 iptables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-port 5353 iptables -t nat -D PREROUTING -p udp --dport 53 -d 8.8.8.8 -j DNAT --to-destination 127.0.0.1:53受害人访问百度可以发现攻击者截获了受害人的dns请求将指定域名劫持至攻击者服务器当然如果受害人使用了https伪造https站点会导致证书错误直接修改受害者dns的dns劫持若我们控制了受害者网络出口路由器或者其本人电脑的权限则可以修改其电脑或路由器上dns为我们自己的dns服务器从而达到dns劫持的效果HTTP/HTTPS流量劫持修改提前说明此类攻击方法并不是完美的在没有让受害者信任根证书的情况下通过中间人攻击解密受害者https请求时会使受害者浏览器提示https证书错误工具准备-mitmproxy工具简介mitmproxy是一个交互式的中间代理 HTTP 和 HTTPS 的控制台界面。特点:中间人(Man-in-the-middle)代理:mitmproxy可以作为一个HTTP/HTTPS代理,实现中间人攻击,拦截和修改流量。保存完整的HTTP会话以供以后重播和分析重放HTTP对话的客户端重播以前记录的服务器的HTTP响应反向代理模式将流量转发到指定的服务器在OSX和Linux上的透明代理模式使用Python对HTTP流量进行脚本化更改用于拦截的SSL / TLS证书即时生成工具使用mitmproxy、mitmdump、mitmweb都可以完成mitmproxy的启动。它们提供了不同的操作界面但功能一致且都可以加载自定义脚本mitmproxy命令启动后会提供一个命令行界面用户可以实时看到发生的请求并通过命令过滤请求查看请求数据。mitmdump是mitmproxy的命令行模式。 它提供了类似tcpdump的功能可帮助你查看记录和以编程方式转换HTTP流量。mitmweb命令启动后会提供一个 web 界面用户可以实时看到发生的请求并通过 GUI 交互来过滤请求查看请求数据。这里我们使用mitmweb直接在命令行输入mitmweb即可启动mitmproxy会默认将8080端口作为http/https流量的监听端口重定向HTTP/HTTPS流量工具已经准备完成下一步是将受害者发往80端口和443端口或发往其他端口的https流量的流量重定向至攻击者的8080端口重定向arp欺骗后流量如果前期完成了arp欺骗劫持了受害者的所有流量则直接通过防火墙修改本机的流量转发规则即可\# 将eth0网卡的所有访问80和443流量转发至8080端口 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080 \# 只转发指定IP的流量 iptables -t nat -A PREROUTING -s 192.168.243.128 -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -A PREROUTING -s 192.168.243.128 -p tcp --dport 443 -j REDIRECT --to-ports 8080重定向后受害者访问流量即可被我们抓获还可以拦截请求修改请求重定向dns劫持流量如果前期完成了DNS劫持那么我们还需要将要劫持的域名进行dns重写重写后受害者访问指定域名的流量就可以被我们劫持重定向非标准80和443端口流量只需要在防火墙配置时修改相应端口即可如iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8443 -j REDIRECT --to-port 8080信任根证书后的流量劫持证书安装只要客户端信任其内置的证书颁发机构Mitmproxy即可即时解密加密的流量。通常这意味着必须在客户端设备上安装mitmproxy CA证书。到目前为止安装mitmproxy证书的最简单方法是使用内置的证书安装应用程序。为此只需启动mitmproxy并使用正确的代理设置配置目标设备。现在启动设备上的浏览器并访问mitm.it。您应该会看到类似以下内容的内容单击相关图标按照所用平台的设置说明进行操作一切顺利。有时无法选择使用快速安装应用程序-想到Java或iOS Simulator-或出于某些其他原因而只需要手动进行操作即可。以下是一些通用平台的手动证书安装文档的指针列表。mitmproxy CA证书位于~/.mitmproxymitmproxy的首次启动后位于该文件夹位置。由mitmproxy在.mitmproxy目录中创建的文件如下mitmproxy PEM格式的证书和私钥。mitmproxy-ca-cert.pem PEM格式的证书。使用它可以在大多数非Windows平台上分发。mitmproxy-ca-cert.p12 PKCS12格式的证书。用于Windows。mitmproxy-ca-cert.cer 与.pem相同的文件但某些Android设备需要扩展名。手动导入根证书双击证书文件导入本地计算机选根证书导入成功后即可发现红锁以及提示消失了命令行导入根证书使用powershell可以直接在没有弹窗提示的情况下完成证书导入需要管理员权限CertUtil \-enterprise \-f \-addstore Root .\\mitmproxy-ca-cert.cer防护措施不忽略提醒强行上网同时加强对根证书的管控不安装可疑的根证书Windows中证书存储于注册表中使用火绒等hips工具做好对相关注册表的监控与防护即可网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取

更多文章