【THM】web枚举

手工枚举

使用我们的浏览器开发者控制台

包括 Chrome 和 Firefox 在内的现代浏览器在“开发人员工具/控制台”中都有一套工具。我们将讨论Firefox的,但是,Chrome有一个非常相似的套件。该套件包括一系列工具,包括:

  • 查看页面源代码
  • 查找资产
  • 在客户端(我们的浏览器)调试和执行 javascript 等代码

使用键盘上的“F12”,这是启动这套工具的快捷方式。

Gobuster简介

  • 如何在 Kali Linux 上安装 Gobuster
  • 如何使用“dir”模式枚举目录及其几个最有用的选项
  • 如何使用“dns”模式枚举域/子域及其几个最有用的选项
  • 去哪里寻求帮助

安装Gobuster命令        -----》》sudo apt install gobuster

有用的全局标志

Flag             Long Flag        Description

-t             --threads        Number of concurrent threads (default 10) 并发线程数(默认为10)
-v             --verbose        Verbose output 详细输出
-z             --no-progress    Don't display progress 不显示进度
-q             --quiet           Don't print the banner and other noise 不打印横幅和其他杂项
-o             --output         Output file to write results to 写入输出结果到文件

//将线程数更改为64以提高扫描速度,如果不更改线程的数量,Gobuster 可能会有点慢。

gobuster工作模式:

"dir"模式(扫描目录)

dir模式的基本用法介绍:

首先输入gobuster dir,这将告诉Gobuster你想要执行一个目录扫描,而不是其他扫描。
然后分别使用-u和-w选项添加 URL 和 wordlist(字典)。

例子:
gobuster dir -u http://10.10.10.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

注意:
URL 将是Gobuster开始进行查找的基础路径,上面的URL所对应的是服务器所对应的web服务的根目录。
例如,观察Linux系统中的Apache安装默认路径,可知其web服务的根目录是 /var/www/html
因此,如果你有一个“products”目录,并且你想枚举这个目录,你应该把这个URL设置为: http://10.10.10.10/products
你也可以把它想象成 http://example.com/path/to/folder
还要注意,在url中还指定了HTTP协议。这是必需的。

dir模式下的参数

Flag            Long Flag                Description
-c            --cookies                用于请求的cookie
-x            --extensions                要搜索的文件扩展名
-H            --headers            指定HTTP Header请求头 -H 'Header1: val1' -H 'Header2: val2'
-k            --no-tls-validation        跳过 TLS 证书验证(注意: 标志 -k 可以与“ dir”模式和“ vhost”模式一起使用)
-n            --no-status                不打印状态码
-P            --password                用于基础身份认证的密码
-s            --status-codes                白名单状态码
-b            --status-codes-blacklist        黑名单状态码
-U            --username                用于基础身份认证的用户名

 

dns模式的基本用法

首先输入 gobuster dns,这将告诉 Gobuster你想要执行子域名暴破。
然后分别使用-d和-w选项添加目标域名和wordlist(字典)。

例子:
gobuster dns -d mydomain.thm -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt

 

dns模式下的参数

Flag            Long Flag            Description
-c            --show-cname            显示 CNAME 记录(不能与“-i”选项一起使用)
-i            --show-ips            显示 IP 地址
-r            --resolver            使用自定义的 DNS 服务器(格式为 server.com 或 server.com: port)

 

vhost模式的基本用法(虚拟机下的网站,不同于子域名,区别在于IP)

例子:
gobuster vhost -u http://example.com -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt

 

vhost模式的参数和dir模式下一样

 

kali linux下的字典

您将在下面找到默认情况下安装在 Kali Linux 上的有用单词列表。这是截至撰写本文时的最新版本,即 2020.3。任何带有通配符 (*) 字符的内容都表示有多个列表匹配。请记住,其中很多模式可以在模式之间互换。例如,“dir”模式的单词列表(例如来自 dirbuster 目录的单词列表)将包含“admin”、“index”、“about”、“events”等单词。其中很多也可能是子域。尝试使用不同的模式!

    • /usr/share/wordlists/dirbuster/directory-list-2.3-*.txt
    • /usr/share/wordlists/dirbuster/directory-list-1.0.txt
    • /usr/share/wordlists/dirb/big.txt
    • /usr/share/wordlists/dirb/common.txt
    • /usr/share/wordlists/dirb/small.txt
    • /usr/share/wordlists/dirb/extensions_common.txt - 在模糊文件时很有用!

wpscan简介

WPScan 框架能够枚举和研究 WordPress 网站中存在的一些安全漏洞类别 - 包括但不限于:

 

  • 敏感信息泄露(已披露漏洞或CVE的插件和主题安装版本)
  • 路径发现(查找错误配置的文件权限,即wp-config.php)
  • 弱密码策略(密码暴力破解)
  • 默认安装的存在(查找默认文件)
  • 测试Web应用防火墙(常用WAF插件)

手工查询wordPress主题

http://redacted/wp-content/themes/twentytwentyone/assets/如这种themes后面就是主题名称(twentytwentyone) 

WPscan扫描主题的参数

wpscan --url http://cmnatics.playground/ --enumerate t

 

手工查询Plugin插件的原理,由于wordPress。由于它们都位于/wp-content/plugins/pluginname中,因此WPScan可以枚举常见/已知插件。通过阅读WordPress的开发人员文档,我们可以了解“插件自述文件”,以弄清楚WPScan如何确定版本号。简单地说,插件必须有一个“README.txt”文件。此文件包含元信息,例如插件名称,与之兼容的WordPress版本和描述。

 

 

WPscan扫描Plugin插件参数

pscan --url http://cmnatics.playground/ --enumerate p 

 

为用户枚举

我们已经强调WPScan能够执行暴力攻击。虽然我们必须提供一个密码列表,如rockyou.txt,但WPScan为用户枚举的方式很有趣。WordPress 网站使用作者发布帖子。作者实际上是一种用户。

果不其然,这位作者被我们的 WPScan 选中了:

 

WPscan枚举用户

wpscan --url http://cmnatics.playground/ --enumerate u 

执行密码破解

执行密码攻击

在确定 WordPress 安装中可能的用户名列表后,我们可以使用 WPScan 对我们指定的用户名和我们提供的密码列表执行暴力破解技术
简单地说,我们使用用户名枚举的输出来构建一个命令,如下所示:wpscan –-url http://cmnatics.playground –-passwords rockyou.txt –-usernames cmnatic

 

 

调整WPScan的攻击性(以便应对WAF)

 

除非特别指定,否则WPScan在运行时会尽量减少攻击“强度”。(因为对Web服务器的大量请求会触发目标站点的防火墙的拦截功能,从而会导致我们发送的数据被目标服务器所阻塞)
WPScan的低攻击强度意味着可能会有一些插件、主题信息会被我们的扫描操作所遗漏。

我们可以使用--plugins-detection命令并结合攻击性配置参数(passive/aggressive)来调整WPScan的攻击强度

--plugins-detection passive 或者 --plugins-detection aggressive

 

WPscan参数

Flag           Description                                       Full Example
p              枚举插件                                            --enumerate p
t              枚举主题                                            --enumerate t
u              枚举用户                                            --enumerate -u
v              使用WPVulnDB交叉引用漏洞,例如寻找易受攻击的插件(p)      --enumerate vp
aggressive     WPScan攻击性配置                          --plugins-detection aggressive

 

 

Nikto简介

Nikto 最初于 2001 年发布,多年来取得了突飞猛进的发展,由于开源性质和功能丰富,它已被证明是一种非常流行的漏洞扫描器。Nikto 能够对所有类型的 Web 服务器(并且不是特定于应用程序的,例如 WPScan)执行评估。Nikto 可用于发现可能的漏洞,包括:

安装Nikto

kali会内置安装Nikto工具,当然,我们也可以使用以下命令来手动安装以及更新Nikto:
sudo apt update && sudo apt install nikto

 

基本扫描

最基本的扫描可以通过使用 -h 标志并提供 IP 地址或域名作为参数来执行。此扫描类型将检索Web服务器或应用程序(即Apache 2,ApacheTomcat,Jenkins或JBoss)通告的标头,并查找任何敏感文件或目录(即login.php,/admin/等)

nikto -h domain/ip

 

Nikto插件介绍(-Plugin)

一些有趣的Nikto插件包括:
Plugin Name                            Description

apacheusers                        尝试枚举Apache HTTP以验证有效用户身份

cgi                               寻找我们可以利用的CGI脚本

robots                            分析robots.txt文件,该文件的内容将指示我们能够访问哪些网站文件/文件夹

dir_traversal                     尝试执行目录遍历攻击(如LFI)在Linux上查找系统文件,如/etc/passwd
                                     (http://ip_address/application.php?view=../../../../../../../etc/passwd)

基本用法
nikto -h 10.10.10.1 -Plugin apacheuser

 

Nikto的详细扫描(-Display)

 

Argument                Description                            Reasons for Use

1                          显示 Web 服务器提供的任何重定向。             Web 服务器可能希望将我们重新定位到一个特定的文件或目录,因此我们需要相应地调整我们的扫描。


2                     显示收到的任何 Cookie                 应用程序经常使用 Cookie 作为存储数据的手段。
                                    例如,Web 服务器使用会话,其中电子商务站点可以将产品作为 cookie 存储在您的购物篮中。证书也可以存储在 cookie 中。

E                      输出任何错误                           如果扫描没有返回所期望的结果,那么使用这个参数将对调试非常有用。

 

优化Nikto扫描以进行漏洞搜索(-Tuning)

 

Nikto保存扫描结果(-o)

 

posted @ 2023-12-03 22:22  trymonoly  阅读(38)  评论(0编辑  收藏  举报