Pollution
Pollution 是一个具有挑战性的 Linux 机器,有几个错综复杂的漏洞可供利用,例如 XXE 和利用 LFI 来获得 RCE,以及原型污染。 最初,我们通过XXE读取关键文件,以用户 www-data 获得立足点,然后利用LFI获得RCE。 此外,我们发现 php-fpm 以 victor 用户身份在远程主机的内部端口上运行,可以利用它从 www-data 横向移动到 victor 。 最后,我们通过利用内部 NodeJS 服务上的原型污染,设法将权限升级到 root 用户。
需要的技能
- Web 枚举
- Linux 基础知识
学到的技能
- XXE 利用
- LFI2RCE
- 代码审计
- Prototype Pollution 利用
枚举
Nmap
让我们运行 Nmap 扫描来发现远程主机上的任何开放端口
ports=$(nmap -p- --min-rate=1000 -T4 10.10.11.192 | grep '^[0-9]' | cut -d '/' -f 1 |tr '\n' ',' | sed s/,$//)
nmap -p$ports -sV 10.10.11.192
Starting Nmap 7.92 ( https://nmap.org
Nmap scan report for collect .htb (10.10.11.192)
Host is up (0.18s latency).
Not shown: 65532 closed tcp ports (reset)
PORT
STATE SERVICE VERSION
22/tcpopenssh (protocol 2.0)0penSSH 8.4p1 Debian 5+deb11ul80/tcpopenhttpApache httpd 2.4.54 ((Debian))
80/tcp
6379/tcp openredisRedis key-value store
Service Info: 0S: Linux; CPE: cpe:/o:linux:linux kernel
Nmap 扫描显示 SSH 正在其默认端口(即 22)上侦听,并且 Apache HTTP Web 服务器正在端口 80 上运行。远程主机还有一个 Redis 服务器侦听其默认端口 6379 。
HTTP
浏览端口 80 后,我们看到一家名为“Collect”的回收科技公司的主页
网站还具有注册和登录功能。向下滚动后,我们可以看到“联系我们”部分,其中包含域名为collect.htb的电子邮件地址。
让我们在 /etc/hosts 文件中添加一个collect.htb条目以及相应的IP地址来解析域名并允许我们在浏览器中访问它。
echo "10.10.11.192 collect.htb" | sudo tee -a /etc/hosts
我们可以枚举collect.htb域以获取潜在有用的隐藏子域。一种方法是使用 wfuzz 工具,可以使用以下命令将其安装在 Ubuntu 上。
SecLists 的这个单词列表可用于我们的模糊测试目标。我们将在 wfuzz 中使用以下标志。
-c : to get colored output
-w : to specify the wordlist
-u : to specify the URL
-H : to specify the HTTP HOST header
--hl : to hide the result entries that have the specified number of lines in the repsonse
wfuzz -c -w /usr/share/wordlists/secLists/subdomains-top1million-5000.txt -u 10.10.11.192 -H "Host: FUZZ.collect.htb" --hl 541
000000023: 200 "forum"
000002341: 401 "developers"
我们可以在 /etc/hosts 文件中为发现的子域添加一个新条目。
echo "10.10.11.192 forum.collect.htb developers.collect.htb" | sudo tee -a /etc/hosts
访问 Developers.collect.htb 时,系统会提示我们进行 HTTP 基本身份验证登录。