端口扫描

Nmap扫描还是得多扫几次,第一次扫出来没有结果

Web

打开看了一下,大概是一个密码管理软件?说密码复用什么7788的

Gobuster爆破一下目录,我们再随便翻一下有没有什么有用的信息

在AboutUs界面

能找到他们工作人员的名字,可能可以当做用户名,记录一下

Ninja - Lead Developer

Pars - Shibe Enthusiast and Emotional Support Animal Manager

Szymex - Head Of Security

Bee - Chief Drinking Water Coordinator

MuirlandOracle - Cryptography Consultant

在/admin可以找他们的后台,那就试着用Ninja当用户名爆破一下密码

hydra -l Ninja -P /usr/share/wordlists/rockyou.txt 10.10.226.91 http-post-form "/api/login:username=^USER^&password=^PASS^:Incorrect Credentials"

没有什么结果,看了一下WP

我们注意到一个login.js文件,他对登陆的认证是如果statusOrCookie的值是Incorrect,那就不能登陆,如果成功,那就将SessionToken设置为“statusOrCookie”,那就试着自己伪造一个SessionToken

然后刷新界面我们就进了管理员界面,用户名是James

Getshell

发现他给了一个ssh的私钥给我们,也就意味着我们能够利用这个来进行ssh登录

将“BEGIN”开始到“END”存到一个文件

ssh2john ssh >key.txt

将私钥转成用于爆破的hash格式

john --wordlist=/usr/share/wordlists/rockyou.txt key.txt

密码为james13(这里的密码不是Linux用户的密码,而是这个私钥的密码)

现将私钥的权限改为可用

chmod 600 ssh 
ssh -i ssh james@10.10.226.91

然后输入爆破获得的密码

在/home/james目录找到user.txt

thm{65c1aaf000506e56996822c6281e6bf7}

提权

sudo -l 不太行

看一下计划任务

cat /etc/crontab

发现以root身份来访问overpass.thm/downloads/src/buildscript.sh,并将结果传给bash运行

一开始我想的是更改buildscript.sh来建立反向shell,但是locate不到这个文件,看了下WP,学到了新思路

我们可以看到/etc/hosts是可写的,那也就可以把overpass.thm对应的IP改成kaliopenvpn的IP,然后在本地写一个反向shell就行了

我是在桌面打开一个python服务器,所以在桌面新建

开启nc监听

在本地开一个Python服务器

sudo python3 -m http.server 80

然后等待计划任务执行就好了

成功接收shell

root.txt

thm{7f336f8c359dbac18d54fdd64ea753bb}

碎碎念

Web表单登陆除了后端验证密码还有可能前端JS来验证(当然应该比较少),这个提权方式也是第一次见,总的来说还是挺简单的一个房间,涨了些见识。