Web枚举

在执行服务扫描时,我们经常会遇到运行在80和443端口上的Web服务器。Web服务器承载着Web应用程序(有时不止一个),这些应用程序通常提供了一个相当大的攻击面,并且在渗透测试中成为高价值目标。适当的Web枚举至关重要,特别是当组织没有暴露许多服务或者这些服务都已适当修补时。

Gobuster

发现Web应用程序后,总是值得检查一下我们是否能发现Web服务器上任何不打算公开访问的隐藏文件或目录。我们可以使用诸如ffufGoBuster之类的工具来执行这种目录枚举。有时我们会发现隐藏的功能或暴露敏感数据的页面/目录,这些数据可被利用来访问Web应用程序,甚至可以在Web服务器本身上实现远程代码执行。

目录/文件枚举

GoBuster是一个多功能工具,允许执行DNS、vhost和目录暴力破解。该工具具有额外的功能,例如枚举公共AWS S3存储桶。就本模块而言,我们感兴趣的是使用dir开关指定的目录(和文件)暴力破解模式。让我们使用dirb common.txt单词列表运行一个简单的扫描。

 guhusf@htb[/htb]$ gobuster dir -u http://10.10.10.121/ -w /usr/share/seclists/Discovery/Web-Content/common.txt
 ​
 ===============================================================
 Gobuster v3.0.1
 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
 ===============================================================
 [+] Url:           http://10.10.10.121/
 [+] Threads:       10
 [+] Wordlist:       /usr/share/seclists/Discovery/Web-Content/common.txt
 [+] Status codes:   200,204,301,302,307,401,403
 [+] User Agent:     gobuster/3.0.1
 [+] Timeout:       10s
 ===============================================================
 2020/12/11 21:47:25 Starting gobuster
 ===============================================================
 /.hta (Status: 403)
 /.htpasswd (Status: 403)
 /.htaccess (Status: 403)
 /index.php (Status: 200)
 /server-status (Status: 403)
 /wordpress (Status: 301)
 ===============================================================
 2020/12/11 21:47:46 Finished
 ===============================================================

HTTP状态码200表示资源请求成功,而403 HTTP状态码表示我们被禁止访问该资源。301状态码表示我们被重定向了,这并非失败情况。值得我们去熟悉各种HTTP状态码,可以在此处找到。Web Requests Academy模块也更深入地介绍了HTTP状态码。

扫描成功完成,并识别出在/wordpress处有一个WordPress安装。WordPress是最常用的CMS(内容管理系统),具有巨大的潜在攻击面。在这种情况下,在浏览器中访问http://10.10.10.121/wordpress会显示WordPress仍处于设置模式,这将允许我们在服务器上获得远程代码执行(RCE)权限。

wordpress

DNS子域名枚举

子域名上也可能托管着重要资源,例如管理面板或具有可被利用的额外功能的应用程序。我们可以使用GoBuster通过dns标志指定DNS模式来枚举给定域的可用子域名。首先,让我们克隆SecLists GitHub仓库,其中包含许多用于模糊测试和利用的有用列表:

安装SecLists

 guhusf@htb[/htb]$ git clone https://github.com/danielmiessler/SecLists.git
 guhusf@htb[/htb]$ sudo apt install seclists -y

接下来,将一个DNS服务器(如1.1.1.1)添加到/etc/resolv.conf文件中。我们将以inlanefreight.com域为目标,这是一个虚构的货运和物流公司的网站。

 guhusf@htb[/htb]$ gobuster dns -d inlanefreight.com -w /usr/share/SecLists/Discovery/DNS/namelist.txt
 ​
 ===============================================================
 Gobuster v3.0.1
 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
 ===============================================================
 [+] Domain:     inlanefreight.com
 [+] Threads:   10
 [+] Timeout:   1s
 [+] Wordlist:   /usr/share/SecLists/Discovery/DNS/namelist.txt
 ===============================================================
 2020/12/17 23:08:55 Starting gobuster
 ===============================================================
 Found: blog.inlanefreight.com
 Found: customer.inlanefreight.com
 Found: my.inlanefreight.com
 Found: ns1.inlanefreight.com
 Found: ns2.inlanefreight.com
 Found: ns3.inlanefreight.com
 ===============================================================
 2020/12/17 23:10:34 Finished
 ===============================================================

此扫描揭示了几个有趣的子域名,我们可以进一步检查。Attacking Web Applications with Ffuf模块更详细地介绍了Web枚举和模糊测试。

Web枚举技巧

让我们再介绍一些额外的Web枚举技巧,这些技巧将有助于完成HTB上的机器以及现实世界中的测试。

Banner抓取 / Web服务器头信息

在上一节中,我们讨论了用于一般目的的Banner抓取。Web服务器头信息可以很好地反映Web服务器上托管的内容。它们可以揭示正在使用的特定应用程序框架、身份验证选项,以及服务器是否缺少基本的安全选项或是否配置错误。我们可以使用cURL从命令行检索服务器头信息。cURL是我们渗透测试工具包中另一个重要的补充,鼓励大家熟悉其众多选项。

 guhusf@htb[/htb]$ curl -IL https://www.inlanefreight.com
 ​
 HTTP/1.1 200 OK
 Date: Fri, 18 Dec 2020 22:24:05 GMT
 Server: Apache/2.4.29 (Ubuntu)
 Link: <https://www.inlanefreight.com/index.php/wp-json/>; rel="https://api.w.org/"
 Link: <https://www.inlanefreight.com/?p=7>; rel=shortlink
 Content-Type: text/html; charset=UTF-8

另一个方便的工具是EyeWitness,它可以用于截取目标Web应用程序的屏幕截图、进行指纹识别并识别可能的默认凭据。

Whatweb

我们可以使用命令行工具whatweb来提取Web服务器、支持的框架和应用程序的版本。这些信息可以帮助我们精确定位所使用的技术,并开始搜索潜在的漏洞。

 guhusf@htb[/htb]$ whatweb 10.10.10.121
 ​
 http://10.10.10.121 [200 OK] Apache[2.4.41], Country[RESERVED][ZZ], Email[license@php.net], HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.10.121], Title[PHP 7.4.3 - phpinfo()]

Whatweb是一个方便的工具,包含许多功能,可以自动化跨网络的Web应用程序枚举。

 guhusf@htb[/htb]$ whatweb --no-errors 10.10.10.0/24
 ​
 http://10.10.10.11 [200 OK] Country[RESERVED][ZZ], HTTPServer[nginx/1.14.1], IP[10.10.10.11], PoweredBy[Red,nginx], Title[Test Page for the Nginx HTTP Server on Red Hat Enterprise Linux], nginx[1.14.1]
 http://10.10.10.100 [200 OK] Apache[2.4.41], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.10.100], Title[File Sharing Service]
 http://10.10.10.121 [200 OK] Apache[2.4.41], Country[RESERVED][ZZ], Email[license@php.net], HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.10.121], Title[PHP 7.4.3 - phpinfo()]
 http://10.10.10.247 [200 OK] Bootstrap, Country[RESERVED][ZZ], Email[contact@cross-fit.htb], Frame, HTML5, HTTPServer[OpenBSD httpd], IP[10.10.10.247], JQuery[3.3.1], PHP[7.4.12], Script, Title[Fine Wines], X-Powered-By[PHP/7.4.12], X-UA-Compatible[ie=edge]

证书

如果使用了HTTPS,SSL/TLS证书是另一个潜在的有价值的信息来源。浏览到https://10.10.10.121/并查看证书会显示以下详细信息,包括电子邮件地址和公司名称。如果这在评估范围内,这些信息可能被用于进行网络钓鱼攻击。

cert

Robots.txt

网站通常包含一个robots.txt文件,其目的是指示搜索引擎网络爬虫(如Googlebot)哪些资源可以或不可以被索引。robots.txt文件可以提供有价值的信息,例如私有文件和管理页面的位置。在这种情况下,我们看到robots.txt文件包含两个不允许访问的条目。

robots

在浏览器中导航到http://10.10.10.121/private会显示一个HTB管理员登录页面。

academy

源代码

检查我们遇到的任何网页的源代码也是值得的。我们可以在浏览器中按[CTRL + U]来打开源代码窗口。这个例子揭示了一个开发者注释,其中包含一个测试帐户的凭据,该凭据可用于登录网站。

source

问题

尝试在上述服务器上运行本节中学习的一些网络枚举技术,并使用获取的信息来获取旗帜。

此处内容需要输入密码才查看
仅限华巅网安兴趣小组成员获取密码查看。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇