Enumeration
nmap
首先扫描目标端口对外开放情况
nmap -p- 10.10.10.215 -T4
发现对外开放了22,80,33060三个端口,端口详细信息如下
结果显示80端口运行着http,且给出了域名academy.htb,现将ip与域名写到/et/hosts中,然后从http入手
TCP/80
访问站点,看到了HTB的图标还怀疑了10秒钟
站点有一个登录口,一个注册口,通过查看网页源代码中的后缀名得知使用php语言
既然有注册页面,那就先注册一个账号,然后登录看看
登录后点击一些链接也没有反应,使用dirsearch来检查是否存在其他目录
其中admin.php与之前的登录页面相同,但是用刚才注册的账户无法登陆,尝试重新注册一个用户,并用burp拦截数据包
发现数据包中不止有在表单中填入的参数,还有一个roleid,猜测该参数可能是控制账户权限的,因为之前创建的账 户权限id为0,因此无法登陆admin.php的登录页面
尝试修改roleid为1,并发送请求包,可以看到服务器仍在正常响应
再次尝试在admin.php中登录,发现登录成功,登陆成功后发现又是一个计划表
其中前五项都已经完成,最后一个是待定,在/etc/hosts中添加该域名,dev-staging-01.academy.htb
访问得到如下结果
可以看到使用了php框架Laravel
Exploition
CVE-2018-15133
发现该框架有一个漏洞,可以直接远程执行代码,条件是要知道程序秘钥,在上文中发现了APP_KEY,可能就是这个秘钥
在metasploit中可以直接配置攻击,利用对应程序
设置如下内容
执行程序后即可获取一个shell
使用python获取一个交互式shell
Lateral Movement
在web目录下,发现了一个.env文件,里面有一个数据库密码,考虑密码复用
查看存在的用户
发现找到的密码适用于cry0l1t3用户,成功登录
并且在该用户目录下发现了第一个flag
发现该用户属于adm组,作为非root用户,可以审查日志
首先列出日志文件
Linux 内核会记录很多内容,但默认情况下它不会记录 TTY 输入,而审计日志允许系统管理员记录这一点。如果启用了TTY 输入日志记录,则包括密码在内的任何输入都将以十六进制编码形式存储在 /var/log/audit/audit.log 内。可 以使用 aureport 程序来查询和检索 TTY 输入的记录。
发现了mrb3n的登录密码,登录该用户
Privilege Escalation
执行sudo -l,发现mrb3n可以以root身份运行composer
然后在GTFOBins中发现该程序可以用来提权
按照上图中执行,即可获取root权限
在root目录中除了root.txt还有一个academy.txt,看起来挺有趣