目录
简介
这台靶机的作者有点皮,很会转移渗透人员的注意力,但大部分渗透人员都觉得是台不错的靶机,比较像OSCP的靶机。首先通过垂直越权获取到另外一个域名,访问该域名会获取到泄漏的APP_KEY,使用搜索引擎进一步收集信息发现CVE-2018-15133漏洞,利用该漏洞获取WebShell,在网站目录的隐藏文件.env发现数据库用户dev的密码,通过撞库攻击获取到用户cry0l1t3的Shell,进一步使用提权辅助脚本获取到用户mrb3n的Shell,最后利用sudo提升至root权限。
信息收集
使用Nmap扫描端口及服务,发现目标主机在80和22端口分别运行着Apache 2.4.41和OpenSSH 8.2p1服务,33060端口可能运行着mysql服务,且操作系统为Ubuntu,80端口的Web页面被重定向到http://academy.htb,如图:
将域名添加到hosts文件,打开后发现有注册和登录两个功能,如图:
使用sqlmap测试发现不存在SQL注入漏洞,注册账号密码进行登录,可以注册admin用户,登录之后如图:
网页是静态的,且任何用户登录都是该页面。扫描目录发现admin.php,如图:
使用刚注册的admin账号登录admin.php未成功。枚举子域名:wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -H "Host: FUZZ.academy.htb" --hc 400 --hl 0 http://10.10.10.215未获获得其它子域名。
漏洞发现与利用
垂直越权
启动Burp Suite拦截注册数据包,将roleid=0改为roleid=1,如图:
注册成功后使用该账号密码成功登录admin.php,如图:
将发现的域名dev-staging-01.academy.htb添加hosts并访问,获得一个错误页面,如图:
使用错误页面暴露的MySQL用户名和密码无法登录成功。
CVE-2018-15133
然后搜索Monolog/Handler/StreamHandler.php,APP_NAME "Laravel",Whoops\Handler\PrettyPageHandler等关键词,发现Laravel存在CVE-2018-15133,可通过页面泄漏的APP_KEY获取WebShell,参考文章:Laravel框架RCE分析(CVE-2018-15133),利用laravel-poc-CVE-2018-15133生成Payload如图:
刷新页面并拦截数据包,修改HTTP请求方法为POST,添加Payload,发送之后成功返回uname -a命令的执行结果,如图:
使用PHPGGC构造反序列化漏洞利用代码,如图:
然后在本地443端口开启监听,发送漏洞利用代码,成功获得WebShell,如图:
也可以使用python3版本的EXP脚本直接获得WebShell。
权限提升
查看/etc/passwd,发现存在普通用户:21y4d,ch4p,cry0l1t3,egre55,g0blin,mrb3n,如图:
在/home/cry0l1t3目录下发现user.txt文件,如图:
在/var/www/html/academy/public/config.php文件发现数据库密码:GkEWXn4h34g8qx9fZ1,如图:
尝试使用该密码连接33060端口未成功,通过代理连接3306端口的MySQL成功,查看数据库发现academy库的users表中存在默认的账号,且仅有dev不是弱口令,如图:
继续查看其它文件查找密码,发现test1234和SecREt01,如图:
但无法使用这两个密码登录以上6个普通用户。
cry0l1t3用户Shell
在/var/www/html/academy/.env文件中发现MySQL数据库dev用户的密码:mySup3rP4s5w0rd!!,如图:
将以上6个普通用户和root添加到user.txt,使用该密码进行枚举,如图:
使用该密码登录cry0l1t3用户,查看各用户信息发现cry0l1t3和egre55用户在都在adm用户组,且egre55用户在多个用户组中,如图:
使用find / -group adm -type f 2>/dev/null命令查看所有adm组的文件,如图:
通过cat和grep命令查找password,passwd等关键字未发现可用密码。
mrb3n用户Shell
然后使用提权辅助脚本linPEAS发现mrb3n用户的密码:mrb3n_Ac@d3my!,如图:
使用该密码验证用户,如图:
登录之后发现/usr/bin/composer文件具有sudo权限,通过Google搜索到的提权方法成功获得root权限,如图:
总结
该靶机官方定位为简单级别,做完之后回头看会发现的确很简单,但是靶机作者成功利用egre55吸引了火力,查看论坛发现几乎所有人都中计了,回顾其中的辛酸只有自己做一遍才能体会到。在WebShell到用户cry0l1t3这里浪费了很长时间,只因使用ls命令未加参数-a,在cry0l1t3用户到mrb3n用户这里由于将注意了放在了egre55用户,所以在获得mrb3n的密码后一直未登录,最后抱着试一试的态度发现居然真的是利用该用户提权,不得不佩服靶机作者。
转载:https://blog.csdn.net/qq_32261191/article/details/110298636