简介
DIRB是一个Web内容扫描程序。它查找现有(和/或隐藏)Web对象。它基本上是通过对Web服务器启动基于字典的攻击并分析响应来实现的。
DIRB附带了一组预先配置的攻击单词列表,方便使用,但您可以使用自定义单词列表。DIRB有时也可以用作经典的CGI扫描仪,但记住的是内容扫描程序而不是漏洞扫描程序。
DIRB的主要目的是帮助进行专业的Web应用程序审计。特别是在安全相关的测试中。它涵盖了经典Web漏洞扫描程序未涵盖的一些漏洞。DIRB查找其他通用CGI扫描仪无法查找的特定Web对象。它不会搜索漏洞,也不会查找可能存在漏洞的Web内容。
参数
1 | root@kali:~# dirb |
dirb用法示例
攻击中,common.txt被设置为目录遍历的默认单词列表
使用字典文件(/usr/share/wordlists/dirb/common.txt)扫描Web服务器(http://192.168.126.130/)以获取目录:
dirb 目标 字典路径
1 | root@kali:/# dirb http://192.168.126.130 /usr/share/wordlists/dirb/common.txt |
枚举具有特定扩展名列表的目录
在很多情况下我们需要在目标服务器上提取特定扩展的目录,然后我们可以使用dirb扫描的-X参数。此参数接受文件扩展名,然后在目标服务器或计算机上搜索给定的扩展文件。
dirb 目标 -X .php
上面的命令将提取与php扩展相关的所有目录路径,如下图所示
1 | root@kali:/# dirb http://192.168.126.130 -X .php |
将输出保存到磁盘
出于记录维护,更好的可读性和未来参考的目的,我们将dirb扫描的输出保存到文件中。为此,我们将使用dirb扫描的参数-o,我们可以在文本文件中保存dirb扫描的输出。
dirb 目标 -o /位置/自定义名称.txt
上面的命令将在枚举目录的桌面上生成.txt文件。
1 | root@kali:/# dirb http://192.168.126.130 -o /root/123.txt |
root@kali:~# cat /root/123.txt
现在我们已经成功执行了命令,现在让我们遍历该位置以确保输出是否已保存在文件上。在这种情况下,我们的输出位置是/root/123.txt。
忽略不必要的状态代码
Status-Code元素是一个3位整数,其中Status-Code的第一个数字定义了响应类,后两个数字没有任何分类角色。在这次攻击中,我们在代码302上使用-N参数,如下所示。
dirb 目标 -N 302
您可以从给定的屏幕截图中了解到dirb扫描忽略的是NOT FOUND代码,即302。
1 | root@kali:~# dirb http://192.168.126.130 -N 302 |
默认工作与警告消息不间断工作
正常dirb扫描期间,一些页面会生成警告; dirb扫描会跳过遇到任何警告的目录。
在进行非常深入和冗长的扫描时,我们希望dirb扫描不要避免这些警告并进行深入扫描,因此我们使用dirb扫描的-w参数。
dirb 目标 -w
您可以观察到突出显示的目录/ dev / shell即使在默认扫描中缺少警告消息之后也会被枚举
1 | root@kali:~# dirb http://192.168.126.130 -w |
速度延迟
在不同场景下工作时,我们遇到的某些环境无法处理由dirb扫描创建的洪水,因此在这些环境中,我们将扫描延迟一段时间非常重要。使用dirb扫描的-z参数可以轻松完成此操作。在此参数中,时间以毫秒为单位提供。就像我们给出的例子中所示,我们给dirb延迟了100秒。
dirb 目标 -z 100
1 | root@kali:~# dirb http://192.168.126.130 -z 100 |
不递归(-r)
默认情况下,dirb扫描以递归方式扫描目录。这意味着它扫描目录,然后遍历该目录以扫描更多子目录。但在某些情况下,如果时间不够,我们会将dirb设置为不递归扫描。这可以使用-r参数来实现。
1 | root@kali:~# dirb http://192.168.126.130 -r |
显示不存在页面
404错误是HTTP状态代码,表示您尝试在网站上访问的页面无法在其服务器上找到。404 Not Found错误消息经常由各个网站自定义。在某些情况下,我们也需要找到404页面,默认情况下dirb会跳过。要查找这些页面,我们将使用-v参数。
dirb 目标 -v
从下面中你可以观察到它还提取了所有那些与404错误相关的目录。
1 | root@kali:~# dirb http://192.168.126.130 -v |
扩展名列表(-X参数)与扩展名标头(-H参数)
通过将-X参数与具有特定扩展名的目标URL(例如.php)一起使用,它枚举所有扩展名为.php的文件或目录,但使用带有特定扩展名的-H参数,例如.php以及目标URL它将枚举用php命名的所有文件或目录,如下面给出的图像所示。
dirb 目标 -H .PHP
1 | root@kali:~# dirb http://192.168.126.130 -H .php |
HTTP AUTHORIZATION(-u用户名:密码)
HTTP身份验证/身份验证机制都基于使用401状态代码和WWW- Authenticate 响应头。最广泛使用的 HTTP身份验证 机制是 Basic。客户端将用户名和密码作为未加密的base64编码文本发送。
因此,为了在dirb的帮助下绕过这种身份验证,我们使用了以下命令:
dirb 目标 -u test:test
结果,它显示了测试的状态码200:目标URL上的测试和授权凭证。
1 | root@kali:~# dirb http://192.168.126.130/admin/admin.asp -u test:test |
代理URL
使用-p选项可以将代理URL用于所有请求,默认情况下它适用于端口1080.正如您所看到的,在Web浏览器中探索目标网络IP时,它会显示“访问禁止错误”,这意味着此网页是在一些代理后面运行。
测试特殊弱势列表
我们可以使用DIRB来测试特定类型的Web技术中的特定易受攻击对象。每种Web技术都有不同的漏洞。他们并非都是一样的。DIRB可以帮助我们查找特定技术特定的特定易受攻击对象。
在Kali,DIRB有特定的单词列表来搜索这些易受攻击的经常隐藏的对象。您可以在以下位置找到它们
1 | root@kali:/# cd /usr/share/dirb/wordlists/vulns/ |
正如您在上面所看到的,每个要测试的特定漏洞都有许多文件列表。如果您的Web服务器是Apache,并且您想测试它,请使用apache.txt
现在,DIRB将使用该Apache列表来查找已知的易受攻击对象。如果它找到任何,那么您可以采取下一步并寻找漏洞,以利用它在Exploit-DB,Metasploit,SecurityFocus或Web上的任何其他许多漏洞利用源。当然,您必须使用与网站中使用的技术相适应的词汇表。例如,如果它是Windows IIS服务器,则应使用iis.txt wordlist。