概述
在本实验中,您将学习使用 Dirbuster 工具执行目录枚举攻击。
任务
实验室环境
在这个实验室环境中,用户将获得对 Kali GUI 实例的访问权限。可以使用安装在 Kali 上的工具访问 Mutillidae Web 应用程序的实例,网址为 http://demo.ine.local
目标:使用 Dirbuster 执行目录枚举!
指示
使用目录词表: /usr/share/wordlists/dirb/common.txt
工具
该实验室的最佳工具是:
-
Dirbuster
-
网络浏览器
我自己的思路
Dirbuster
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
Dirs found with a 200 response:
/
/ajax/
/webservices/
/webservices/soap/
/webservices/rest/
/classes/
/documentation/
/includes/
/webservices/soap/lib/
/webservices/test/
/images/
/javascript/
/javascript/ddsmoothmenu/
/javascript/jQuery/
/webservices/test/testoutput/
/javascript/jQuery/colorbox/
/javascript/gritter/
/config/
/javascript/jQuery/colorbox/images/
/includes/hints/
/javascript/jQuery/colorbox/images/ie6/
/data/
/index.php/
/passwords/
/phpinfo.php/
/phpmyadmin/
发现了一些惊喜:
1
2
3
4
http://demo.ine.local/phpinfo.php
http://demo.ine.local/data/accounts.xml
http://demo.ine.local/passwords/accounts.txt
http://demo.ine.local/phpmyadmin/
尝试了两次,都是爆破到一半就卡住了,原因不明。
Dirb
1
2
3
4
5
6
7
8
9
10
11
dirb http://demo.ine.local/
dirb http://demo.ine.local/ /usr/share/dirb/wordlists/big.txt
dirb http://demo.ine.local -a "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:101.0) Gecko/20100101 Firefox/101.0"
dirb http://demo.ine.local -p http://127.0.0.1:8080
dirb http://demo.ine.local -p http://127.0.0.1:8080 -c "COOKIE:XYZ"
dirb http://demo.ine.local -p http://127.0.0.1:8080 -u "admin:password"
dirb http://demo.ine.local -z 1000
dirb http://demo.ine.local -S
dirb http://demo.ine.local -X ".php,.bak"
dirb http://demo.ine.local -x extensions.txt -z 1000
dirb http://demo.ine.local -x extensions.txt -o results.txt
访问:http://demo.ine.local/robots.txt
1
2
3
4
5
6
7
8
9
User-agent: *
Disallow: passwords/
Disallow: config.inc
Disallow: classes/
Disallow: javascript/
Disallow: owasp-esapi-php/
Disallow: documentation/
Disallow: phpmyadmin/
Disallow: includes/
解决方案
第 1 步:打开实验室链接以访问 Kali GUI 实例。
第 2 步:检查机器/域是否可达。
命令
1
ping demo.ine.local
1
2
3
4
5
6
7
8
9
10
root@INE:~# ping demo.ine.local
PING demo.ine.local (192.214.149.3) 56(84) bytes of data.
64 bytes from demo.ine.local (192.214.149.3): icmp_seq=1 ttl=64 time=0.085 ms
64 bytes from demo.ine.local (192.214.149.3): icmp_seq=2 ttl=64 time=0.057 ms
64 bytes from demo.ine.local (192.214.149.3): icmp_seq=3 ttl=64 time=0.065 ms
64 bytes from demo.ine.local (192.214.149.3): icmp_seq=4 ttl=64 time=0.065 ms
^C
--- demo.ine.local ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3054ms
rtt min/avg/max/mdev = 0.057/0.068/0.085/0.010 ms
机器可达。
第 3 步:检查机器上打开的端口。
命令
1
nmap demo.ine.local
1
2
3
4
5
6
7
8
9
10
11
root@INE:~# nmap demo.ine.local
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-28 09:05 IST
Nmap scan report for demo.ine.local (192.214.149.3)
Host is up (0.000012s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
80/tcp open http
3306/tcp open mysql
MAC Address: 02:42:C0:D6:95:03 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.31 seconds
在机器上,端口 80 (HTTP) 和 3306 (MySQL) 是开放的。
第 4 步:检查 Kali 机器上存在的接口。
命令
1
ifconfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@INE:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.0.14 netmask 255.255.0.0 broadcast 10.1.255.255
ether 02:42:0a:01:00:0e txqueuelen 0 (Ethernet)
RX packets 5465 bytes 452383 (441.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4369 bytes 2447237 (2.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.214.149.2 netmask 255.255.255.0 broadcast 192.214.149.255
ether 02:42:c0:d6:95:02 txqueuelen 0 (Ethernet)
RX packets 1025 bytes 56014 (54.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1010 bytes 58668 (57.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 19671 bytes 27326619 (26.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19671 bytes 27326619 (26.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
机器上有两个接口(不包括环回接口),即 eth0 和 eth1。
第 5 步:打开网络浏览器并浏览到demo.ine.local。
第 6 步:启动 Dirbuster。
命令
1
dirbuster
第七步:输入目标网址http://demo.ine.local/
,在工作方式中选择自动切换Auto Switch (HEAD and GET)
第 8 步:单击“浏览”按钮选择单词表。
第九步:点击下拉菜单,选择根目录(/)
第十步:选择“usr”目录。
第十一步:点击“share”目录。
第12步:点击“Wordlists”目录。
第13步:点击“dirb”目录。
第 14 步:选择“common.txt”作为词表。
/usr/share/wordlists/dirb/common.txt
词表被选中。
第十五步:点击开始按钮
等待一段时间以显示结果。
第 16 步:单击结果 - 列表视图按钮以查看结果。
第 17 步:单击结果 - 树视图以树格式获取结果。
当前正在运行的线程数为 10
1
Current number of running threads: 10
第 18 步:将线程增加到 30 以更快地获得结果。在“当前线程数”中输入 30。
单击更改按钮。
线程数从 10 修改为 30。
第 19 步:在结果 - 树视图中找到data目录。
注意:如果数据目录不可用,请稍等片刻或增加线程数。
第 20 步:单击下拉按钮以列出数据目录中的内容。
我们可以观察到 account.xml 存在于数据目录中。
第 21 步:右键单击account.xml,然后单击在浏览器中打开
Open in Browser
这将显示存储在此文件中的所有用户名和纯文本密码。
这就是我们如何使用 Dirbuster 来执行目录枚举攻击并发现包含敏感信息的目录/文件!