跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

部分中间人攻击手法简介

精选回复

发布于

## 中间人攻击简介

中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种网络安全攻击。攻击者在通信两端插入恶意节点来监视、篡改或劫持通信流量。

常见的中间人攻击技术包括:

1、ARP欺骗: 攻击者发送ARP欺骗数据包,使受害者误认为攻击者的MAC地址就是目的IP对应的MAC地址,从而将流量引向攻击者。

2. DNS欺骗(DNS Spoofing) : 攻击者篡改DNS服务器的记录,导致受害者在访问该网站时被重定向到攻击者控制的网站。

3. SSL Stripping(SSL Stripping): 攻击者抑制受害者与服务器之间的SSL/TLS加密连接,并利用明文传输窃取信息。

4. WiFi伪装(Evil Twin) :攻击者建立一个类似于普通WiFi的虚假网络,诱导用户连接并获取网络流量。

5. 会话劫持: 攻击者通过获取会话标识符来接管受害者与服务器之间的会话。

## ARP 欺骗

### 简介

ARP欺骗是一种经典的中间人攻击方法。这种攻击方式可以使受害者误认为攻击者的MAC就是网关MAC,从而将所有流量转发到攻击者的主机上。由于ARP协议的限制,这种方式通常用于与内网机器通信时进行地址转换。

原则:

- 地址解析协议,即ARP(地址解析协议),是一种根据IP地址获取物理地址的TCP/IP协议。主机发送信息时,向局域网内的所有主机广播包含目标IP地址的ARP请求,并接收返回消息以确定目标的物理地址。收到返回报文后,将IP地址和物理地址存储在本地ARP缓存中,并保留一定时间。下次请求时直接查询ARP缓存,以节省资源。通俗地说,DNS是域名和IP对应的协议,arp是IP和mac(物理地址)对应的协议。 DNS常用于主机连接外网机器时进行地址转换,而arp则多用于与内网机器通信时进行地址转换。

技术:

- 攻击者使用ARP 欺骗工具发送ARP 响应消息,声称自己的MAC 地址是受害者正在查找的IP 的MAC。

- 收到响应后,受害者将更新其ARP 缓存,并且发往该IP 的流量将发送给攻击者。

效果:

- 攻击者可以窃听通信内容、劫持会话、进行网站钓鱼等攻击。

- 攻击者可以成为“中间人”并控制受害者和服务器之间的通信。

- 如果攻击者同时欺骗受害者和服务器,则可以修改传输数据包的内容。

- 攻击者可以选择仅劫持流量的某些部分,从而使攻击难以检测。

### 网络拓扑

网络拓扑如图:ef3920312da1688b63a45e6e33bc0cfd.png

受害者: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响应包,并声明自己为网关地址(243.2)13b51e5c25c48e64d8344f21b2a5f452.png

这时我们到攻击者的设备上查看arp表,发现网关地址的mac已经被污染到了攻击者的mac 812a073bae29579651d91f7219316bf4.png

### 流量转发与劫持

劫持成功后,受害者的所有流量都会发送给攻击者,但攻击者默认并没有启动流量转发功能,因此受害者将无法访问互联网。

向受害者发送dns 请求d7bf3c3b48417f863d02acf39f4d3b58.png

攻击者在这里可以看到,说明流量成功转移到攻击者主机df536e8d0130d05852961f196d853aa4.png

为了保证受害者在劫持流量的同时能够正常访问互联网,攻击者主机需要开启流量转发功能。

出于安全考虑,Linux系统默认禁止数据包转发。所谓转发是指当主机有多个网卡时,其中一个网卡接收到数据包,并根据数据包的目的IP地址将数据包发送到本机的另一个网卡。网卡根据路由表继续发送数据包。这通常就是路由器的设计目的。

````

su - #更改用户为root并使用root环境变量

echo 1 /proc/sys/net/ipv4/ip_forward #将参数替换为1

````

默认为0,0表示不转发,1表示启用流量转发。

启用流量转发后,再操作受害者访问网页,可以发现可以正常上网,流量被攻击者拦截d38a7a1eceaa6f0b10ec98743e350f9f.png

1ee62b7edd46549e76802117f370862f.png

## DNS 劫持

### 简介

DNS Spoofing的原理、技术和效果如下:

原则:

- DNS(域名系统)用于域名和IP地址之间的解析。 DNS 劫持通过伪造DNS 响应来欺骗受害者。

技术:

- 欺骗受害者的DNS 服务器并向用户发送虚假的域名解析响应。

- 典型的方法是毒害本地网络的DNS 缓存服务器,或者执行ARP 欺骗,成为“中间人”。

- 也可以通过攻击域名注册商或云服务器来实现。

效果:

- 受害者将连接到攻击者指定的错误IP地址。

- 攻击者可以将流量重定向到网络钓鱼站点或恶意服务器。

- 黑客可以中间人方式攻击受害者与服务器的通信。

- 攻击者可以选择目标,例如仅劫持银行或电子邮件服务的域名。

- 攻击者可以记录受害者的在线历史记录

一般来说,当我们有权限控制受害者的dns服务器或dns请求时,就可以进行dns劫持

### 搭建dns服务器

这里可以使用AdGuard搭建dns服务器。创建完成后,关闭过滤规则和dns黑白名单并清除。

https://github.com/AdguardTeam/AdGuardHome

### ARP欺骗下的DNS劫持

假设我们前期已经完成了arp欺骗,成为了中间人。这时候我们已经可以控制受害机器的任何流量了。

从wireshark中可以看出,受害者的默认dns服务器为192.168.243.2 5f274a881c35694a501102fef0b38b42.png

此时我们使用iptables对受害者的流量进行重定向,将其访问端口192.168.243.2:53的流量重定向到攻击者192.168.243.129:53

````

iptables -t nat -A PREROUTING -p udp --dport 53 -d 192.168.243.2 -j DNAT --到目的地192.168.243.129:53

检查nat表和filter表规则是否还存在:

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请求07ba276351cc53fa008efc0c3d88babe.png

劫持指定域名到攻击者服务器69c3e511728d8f1c7d9eaf2c424aa865.png

当然,如果受害者使用https,伪造https站点会导致证书错误22bdd59fd961320a28eff82c61ffcec8.png

###直接修改受害者dns的dns劫持

如果我们控制了受害者网络出口路由器或者自己电脑的权限,就可以将其电脑或者路由器上的DNS修改为我们自己的DNS服务器,从而达到DNS劫持的效果。

## HTTP/HTTPS流量劫持修改

预先注意,这种类型的攻击方法并不完美。在不让受害者信任根证书的情况下,通过中间人攻击解密受害者的https请求时,受害者的浏览器会提示https证书错误。

### 工具准备-mitmproxy

####工具介绍

mitmproxy 是一个交互式中间代理HTTP 和HTTPS 控制台界面。

**功能:**

1.中间人代理:mitmproxy可以用作

2. HTTP/HTTPS代理,实施中间人攻击,拦截并修改流量。

3. 保存完整的HTTP会话以供以后重放和分析

4. 重放HTTP 会话的客户端

5. 重放之前记录的来自服务器的HTTP 响应

6.反向代理模式将流量转发到指定服务器

7. OSX 和Linux 上的透明代理模式

8. 使用Python 对HTTP 流量进行脚本化更改

9. 即时生成SSL/TLS证书以供拦截

#### 工具使用

mitmproxy、mitmdump 和mitmweb 都可以启动mitmproxy。它们提供不同的操作界面,但功能相同,并且都可以加载自定义脚本

mitmproxy 命令启动后,将提供命令行界面。用户可以实时看到发生的请求,通过命令过滤请求,查看请求数据。

`mitmdump` 是mitmproxy 的命令行模式。它提供类似tcpdump 的功能,可帮助您查看、记录和以编程方式转换HTTP 流量。

mitmweb命令启动后,会提供一个Web界面,用户可以看到实时发生的请求,通过GUI交互过滤请求,查看请求数据。这里我们使用mitmweb,在命令行直接输入mitmweb启动de44858d7e3830a053a5afb91d57948c.png

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

````

重定向后,受害者的访问流量可以被我们捕获0f04922d014faa4860abe1e0ee752bb2.png

7f1d178eb90d6260f2f2facf968b1e29.png

还可以拦截请求并修改请求ac5d81dc25c0aa69a5d111c02fa50ab3.png

19cf107035db5191d91174443aab9d39.png

#### 重定向DNS 劫持流量

如果前期DNS劫持完成,那么我们还需要重写待劫持域名的dns 9f87cc71ce833450113e03d613692d79.png

改写后,受害者访问指定域名的流量可被我们劫持97682fee2d4dad039bfb1c8d73fa408b.png

#### 重定向非标准端口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。您应该看到类似以下内容的内容:dfdb0dd6cc87588b355842b84f24f390.png

单击相关图标,按照您平台的设置说明进行操作,然后就可以开始了。

有时,使用快速安装应用程序不是一个选项- 会想到Java 或iOS 模拟器- 或者由于某些其他原因,您只需要手动执行此操作。以下是一些常见平台的手动证书安装文档的指针列表。 mitmproxy CA 证书位于~/.mitmproxy,首次启动mitmproxy 后位于此文件夹位置。271e15dedfcd59ad997b96ceb6fbf800.png

mitmproxy在.mitmproxy目录下创建的文件如下:

- PEM 格式的mitmproxy 证书和私钥。

- mitmproxy-ca-cert.pem PEM 格式的证书。使用它在大多数非Windows 平台上进行分发。

- mitmproxy-ca-cert.p12 PKCS12 格式的证书。对于Windows。

- mitmproxy-ca-cert.cer 与.pem 相同的文件,但某些Android 设备需要扩展名。

####手动导入根证书

双击证书文件导入到本地电脑c465e337a02f9a0406e31bb1caf152dc.png

选择根证书aa34c3ec3fc4383c232bb9f749a61b5e.png

导入成功后,你会发现红锁和提示消失了a04ba711e9ca4980fa04183d7eaf0fd4.png

####从命令行导入根证书

使用powershell直接完成证书导入,无需弹出提示(需要管理员权限)

````

CertUtil -enterprise -f -addstore Root .\\mitmproxy-ca-cert.cer

````

#### 防护措施

不要忽视提醒而强行上网。同时,加强对根证书的管控,不要安装可疑的根证书。

Windows 中的证书存储在注册表中。使用Tinder 等臀部工具来监控和保护相关注册表。

当前用户的证书HKEY_CURRENT_USER\\Software\\Microsoft\\SystemCertificates

本地计算机证书HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\SystemCertificates 转载自先知社区: https://xz.aliyun.com/t/12880?time__1311=mqmhq%2BxjxGx0xCqGNIexOG8DnBROPmQGOCeDalichlgref=https%3A%2F%2Fxz.aliyun.com%2Ftab%2F1%3Fpage%3D4

添加一名作者

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。