信息收集
使用nmap
对靶机进行端口扫描
sudo nmap -sT -sV -sC -O -p- blog.thm --max-rate 10000
根据题目的描述,这是一个博客,并且是wordpress
站点,直接访问80
端口
使用wpscan
对目标进行扫描,使用-e u
枚举用户名
wpscan --url http://blog.thm -t 50 -e u
通过扫描我们的到一些信息wordpress
版本为5.0
,主题为twentytwenty
,并且枚举出一些用户名,如下:
- kwheel
- bjoel
- Karen Wheeler
- Billy Joel
讲这些用户加入到user.txt
字典中,使用wpscan
对该站点后台进行密码破解
wpscan --url http://blog.thm -U user.txt -P rockyou.txt -t 100
通过爆破,我们得到用户名位kwheel
密码为cutiepie1
,,于是我们登陆后台查看
通过分析这个后台,并没有找到可以获得初始访问的位置
初始访问权限
我使用searchsploit
搜索wordpress 5.0
找到公开的exp
有两个,由于metasploit
的利用成功率较高,我们进入msfconsole
使用该脚本
设置关键参数,运行漏洞利用脚本,获得初始访问权限
尝试读取/home/bjoel
用户的user.txt
,发现是一个假的flag
,经过一番尝试,没有结果,尝试提权
权限提升
通过find
搜索到拥有suid
权限的命令/usr/sbin/checker
执行该程序
说我们不是admin
用户,该程序是如何运行的呢,这里我们使用strings
分析该程序的字符数据
通过简单的分析,如果是admin
用户,就会执行/bin/bash
,那么这里我们需要创建一个用户,但是创建用户需要管理员权限,这里使用ltrace
分析该程序执行的C语言函数
通过getenv
获取该用户是那个用户,使用export
查看当前环境变量
并没有定义admin
的属性的值,这里我们使用export admin=0
给admin
随便复制一个值,然后再运行/usr/sbin/checker
程序,成功获得root
权限
然后使用find / -name root.txt
和find / -name user.txt
找到flag
的位置