打靶日记--Tr0ll
字数 1529 2025-08-29 08:29:41
Tr0ll靶机渗透教学文档
1. 信息收集阶段
1.1 主机发现
- 使用工具如nmap进行主机发现,确认目标IP地址
1.2 端口扫描
- 使用nmap进行端口扫描,发现开放端口:
- 21 (FTP)
- 22 (SSH)
- 80 (HTTP)
2. 渗透阶段
2.1 FTP服务渗透
-
匿名登录尝试:
- 用户名:anonymous
- 密码:空
- 成功登录FTP服务
-
文件获取:
- 发现一个pcap流量文件
- 下载方法:
- 使用FTP客户端
- 或直接在Windows资源管理器地址栏输入:
ftp://靶机IP
2.2 流量分析
-
分析方法:
- 使用Wireshark打开pcap文件
- 发现是匿名登录FTP并下载文件的过程
- 更高效的方法:使用Kali的
strings命令直接提取字符串
-
关键发现:
- 找到leetspeak提示(一种字符替换编码方式)
- 可能是密码或目录名
2.3 Web服务渗透
-
80端口检查:
- 初始访问无内容
- 进行目录扫描发现:
- /robots.txt
- /secret
-
目录探索:
- robots.txt提示访问/secret目录
- /secret目录初始无内容
- 尝试使用leetspeak作为目录名,发现有效
-
文件获取:
- 下载ELF可执行文件
- 使用
file命令确认文件类型 - 使用
strings分析内容,发现地址提示
2.4 二进制分析
-
安全检查:
- 使用
checksec检测ELF文件保护措施 - 发现仅开启NX保护(不可执行shellcode)
- 使用
-
逆向分析:
- 使用32位IDA打开文件
- 地址均为0x0804开头
- 反编译伪代码无明显可利用点
-
地址利用:
- 将发现的地址作为目录名尝试访问
- 成功发现两个文件:
- 密码文件
- 用户名文件
2.5 SSH爆破
-
密码喷射:
- 结合22端口开放,尝试密码喷射
- 初始尝试失败
- 关键发现:密码是密码文件名"Pass.txt"
-
成功登录:
- 使用发现的凭据成功登录SSH
3. 提权阶段
3.1 异常现象分析
- 登录后频繁被自动踢出
- 发现是被root权限进程踢出
- 推断存在root权限的自动任务
3.2 自动任务查找
-
查找方法:
- 搜索系统自动任务相关文件
- 检查日志文件寻找线索
-
关键发现:
- 找到自动执行的Python脚本
- 脚本路径通过日志确认
3.3 权限提升
-
脚本修改:
- 直接编辑脚本遇到问题(vi卡死)
- 替代方案:
- 本地编写脚本
- 使用Xshell连接
- 通过XFTP上传覆盖
-
提权脚本内容:
#!/usr/bin/env python
import os
os.system("echo 'overflow ALL=(ALL)NOPASSWD:ALL' >> /etc/sudoers")
- 执行结果:
- 成功将当前用户加入sudoers文件
- 获得root权限
4. 关键技巧总结
-
FTP匿名登录:
- 总是尝试anonymous/空密码组合
- Windows资源管理器可直接访问FTP
-
流量分析:
- strings命令比Wireshark更高效提取字符串
- 注意leetspeak等编码方式
-
Web目录发现:
- robots.txt常包含重要提示
- 尝试将各种提示作为目录名
-
密码破解:
- 注意文件名本身可能是密码
- 密码喷射时注意连接稳定性
-
自动任务提权:
- 系统自动踢出可能暗示自动任务
- 查找/etc/cron*目录和日志文件
- 当直接编辑困难时,考虑外部编写后上传
-
工具使用:
- nmap:端口扫描
- Wireshark:流量分析
- strings:快速提取文件字符串
- checksec:检查二进制保护
- IDA:逆向分析
- Xshell/XFTP:稳定连接和文件传输
5. 靶机特点
-
设计风格:
- 混合型靶机(渗透+杂项)
- 包含多个非传统渗透路径
-
难点:
- 两分钟自动踢出机制
- 逆天密码设计(使用文件名作为密码)
- 需要多次尝试和耐心
-
学习价值:
- 培养综合信息处理能力
- 锻炼在限制条件下的渗透技巧
- 提高对异常现象的敏感度