靶场信息
- OS(操作系统) –> Linux
- IP –> 10.10.11.221
- DIFFICULTY(难度) –> Easy
信息搜集
开放端口扫描
开放端口信息枚举
- 22端口为ssh,采用OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
- 80端口为http服务,采用nginx,域名为
2million.htb
http不允许访问,添加host后成功访问,这里我们对80端口尝试一次vuln脚本扫描
不太能找到这个漏洞的相关利用
Web渗透
回到浏览器,这是2017年HTB的网站,我们扫目录的同时,看看网站的功能
看来看去只有join HTB
登录,需要填写Invite Code
即邀请码
在Windows的hosts文件(C:\Windows\System32\drivers\etc
)中添加IP和域名信息,打CTF的习惯,在Windows中做web
源代码中看到inviteapi.min.js
猜测与邀请码有关,把内容丢ChatGPT
在控制台尝试执行makeInviteCode
函数,打开后拿到两个函数的JS代码
function verifyInviteCode(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)
}
})
}
function makeInviteCode() {
$.ajax({
type: "POST",
dataType: "json",
url: '/api/v1/invite/how/to/generate',
success: function(response) {
console.log(response)
},
error: function(response) {
console.log(response)
}
})
}
makeInviteCode()函数向/api/v1/invite/how/to/generate
路由以POST方式发送一个json数据包,成功则返回响应内容。
这里回到kali用curl访问这个路由,hackbar无法访问,burp我这里一直存在这个字符显示的问题
拿到生成的邀请码去注册登录,扫描目录发现/api/v1
看到最下面Update user setting猜测可以更新用户为管理员,继续CURL访问(注意我们当前登录了账户,需要考虑Cookie信息)
巨大的网络波动下,顺着报错信息添加参数,最终拿到一个正常的回显,这里看起来已经把我们的用户名改为了admin,但还是在/api/v1/admin/auth
路由验证一下
回到浏览器,仍然没有发现可利用的地方,再看/api/v1,有关于VPN的信息
试着生成一个VPN文件,在回显中看到了注册时候的用户名,这意味着这个参数是被用户控制的,如果有不完全的限制和过滤,很可能存在注入漏洞
这里学到一个命令注入的检测方法TwoMillion | HackTheBox - h4r1337 blog | CTF writeups
在注入点用sleep命令测试返回时间,因为网络波动比较大,多尝试几次进行对比就好。
经测试存在命令注入漏洞,执行id,我们没有拿到想要的,首先猜测是参数输入处有其他规则(例如括号等),我们添加#(注释符)执行id #
命令,成功回显
尝试反弹shell,用curl反弹,成功拿到www-data的shell
无法建立起python的稳定shell
信息枚举
通过以上信息,我们注意到/etc/passwd中的admin用户是/bin/bash环境,.env中存有名为admin的用户名及其密码SuperDuperPass123,可以尝试以此进行ssh连接
搜集admin用户可读文件(如果不是VIP将会看到一堆别人打进来时候上传上去的文件,会对渗透思路造成很大干扰)
读/var/mail/admin
(靶机简单在于给了提示打内核CVE)
有OverlayFS CVE漏洞,网上一搜大部分是CVE-2021,但是找到一篇2023的漏洞,用最新的尝试一下
使用这个exp去打:GitHub - xkaneiki/CVE-2023-0386: CVE-2023-0386在ubuntu22.04上的提权
网络烂的要死,这里记录一下,反正CVE都是拿大佬的东西直接来用
执行exp之后就会拿到root,找找flag
Pwned!!!!!!!!!!
总结
- WEB阶段有点难度,但是最大的困难还是网络原因
- WEB考察命令注入,但属于黑盒测试,很多都是靠经验,而我没有经验只能看佬的WP解决
- 提权很简单,提示告诉了使用CVE-2023-0386,这也是靶机easy的地方