0.连接vpn
把下载的文件复制在kali里面
直接在kali里面执行连接就好,需要sudo 权限
1.主机探测
先对机器进行常规扫描,发现只开放了22和80端口
nmap --open --min-rate 1000 -p- 10.10.11.221
再具体扫描看一看
sudo nmap -sS -sV -A -n -p22,80 10.10.11.221
先看看80端口,这里需要绑定host 才可以访问,具体格式就是这样
2.web渗透
对目标进行目录扫描,这里没扫出来什么
直接看看网页有什么,随便点点
发现一个登陆页面,试试admin发现说用户不存在,这里就不能弱口令爆破
发现一个邀请码注册页面,想到先弄一个注册码,F12查看源代码
看到inviteapi.min.js这个文件,这里makeinvitecode好像是生成验证码的
进行控制台调试,输入makeinvitecode函数,得到一串rot13的加密提示信息
解密得到提示信息
提示post访问这个接口
curl -XPOST 'http://2million.htb/api/v1/invite/generate
得到一个base64解密的值,哈哈拿到激活码了,去注册一个账号
登陆到后台,逛了一会发现没有什么可以利用的点
通过刚刚给的提示目标域名,猜测还有接口目录,直接访问/api/v1,有回显,分析一下其中的内容。invite/generate就是刚刚给我激活码的接口。admin/auth检测是不是一个管理员,主要关注这个/admin/setttings/update,猜测这个就是把普通用户修改成管理员
检测是否为管理员
curl -XGET 'http://2million.htb/api/v1/admin/auth' -H 'Cookie:PHPSESSID=q2kva99sl4aiuup4asgjjl762h'
根据提示信息加上对应的内容,特别注意这里接口要加上json格式的标志,这里111是当时注册时自己写的邮箱
完成后再检查一次,提示是管理员了
3.反弹shell
使用/admin/vpn/generate发包,这username是有命令执行
成功返回信息
利用bash反弹一个会话回来,,没办法命令行一直反弹失败只有抓包用burp发送了
成功收到一个shell
4.提权
先看一个user.txt的第一个flag
find / -name user.txt 2>/dev/null
结果权限不够不可以看 。
ls -al 查查看 发现 .env里面有admin用户的密码,ssh连接
先拿到第一个flag
查找目录下可读文件
find / -type f -user admin -readable 2>/dev/null
看到目录下有提示提取的方法 GitHub - xkaneiki/CVE-2023-0386: CVE-2023-0386在ubuntu22.04上的提权,提取的exp,先下载到kali上
kali开启服务器,让目标机器下载提取脚本
解压编译,根据大佬的提示运行
执行
最后拿到flag