一、环境搭建:
①根据作者公开的靶机信息整理
没有虚拟机密码,纯黑盒测试...一共是5台机器,目标是拿下域控获取flag文件
②虚拟机网卡设置
centos双网卡模拟内外网:
外网:192.168.1.110
内网:192.168.93.100
其他主机都是内网,仅主机模式:
内网:192.168.93.0/24
所有虚拟机默认挂起状态,开启就已经登陆了,配置好网卡后,互相ping测试一下,网络环境没问题就可以进行下一步了。
二、web层渗透:
0x01 前期信息收集:
①端口、服务探测:
nmap 192.168.1.110 -T4 -A -sV
开启了80、22、3306端口,入手点就挺多了(ssh爆破、mysql爆破、http服务的web漏洞挖掘getshell等等...)
访问了一下80端口的http服务,是joomlaCMS搭建的
②站点扫描:
1.直接使用joomscan扫描一下
joomscan -u http://192.168.1.110/
发现版本为3.9.12,比较高,不太好搞...
2.发现两个比较重要的目录
后台登陆页面:
配置文件泄露:testuser / cvcvgjASD!@
0x02 漏洞利用getshell:
①尝试远程连接mysql,获取后台管理员密码
根据nmap的信息,扫描出3306是开放的,利用navicat连接一下,很顺利地连接上了
找到管理员user表,发现密码是加密的,具体怎么加密的不清楚,尝试解密,失败...
②添加后台管理员
因为joomlaCMS可以直接后台模板getshell,所以得想办法进入后台,但是默认的管理员用户密码又是未知的,那么我是不是可以直接往user表里面添加一个管理员?然后登陆不就好了吗,开始吧...
通过百度、谷歌大法,发现了官方的说明文档:
https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn
根据官方文档,添加一个admin2 / secret 的管理员,注意修改表前缀
可以看到已经添加成功了
利用新添加的管理员进行登陆,登陆成功
③模板getshell
点击New File,新建文件:
输入文件名:
写入一句话木马:
利用蚁剑连接webshell:
0x03 提权与本机信息收集
①bypass disable_functions
尝试执行命令,返回ret=127,毫无疑问就是disable_functions的限制了
通过phpinfo发现禁用了如下函数,目标是linux,并且没有禁用putenv函数,所以可以利用LD_PRELOAD绕过
把bypass_diablefunc.php和bypass_diablefunc_x64.so一并上传到同一目录,.so文件需要根据目标系统架构选择,然后访问bypass_diablefunc.php,outpath必须是可写目录,构造如下payload:
http://192.168.1.110/templates/beez3/bypass_disablefunc.php?cmd=whoami&outpath=/tmp/panda&sopath=/var/www/html/templates/beez3/bypass_disablefunc_x64.so
查看ip信息,发现ip并不是centos的,看了下应该是ubuntu的,说明真正的web服务后端是在ubuntu上,通过centos做了个nginx反向代理解析到Ubuntu上了(百度了解了一下)
分析:当前ubuntu的权限太低...并且内核很高,不好提权,想执行socks代理的程序,都成问题,并且ubuntu是不出网的,那么我有没有办法拿到centos的权限呢?既然做了反代,那么我能否看一下bash历史记录,找到一些遗漏的信息呢?(结果不行..),然后就各种配置文件找、有权限看的文件都看一下,想找到有泄露的信息
②敏感文件泄露
最终在tmp目录下找到了个test.txt文件直接给出了一个用户和密码:
直接登陆centos,成功....
③脏牛提权
想要继续横向移动,最好就是能利用跳板机搭建socks代理,所以权限得够,查看centos的内核,发现在脏牛影响的范围内:
wget下载exp,并赋予执行权限
编译并执行exp
提权成功
0x04 横向移动
①msf上线
我这里使用web_delivery模块上线
目标主机上执行msf给出的命令即可上线
②添加路由
③存活主机探测
发现3台windows,并且存在TEST域环境
④直接继续爆破smb
注意密码字典的格式为:用户名 密码
⑤使用psexec登陆win2008
注意payload为bind直连:
然后将mterpreter会话迁移到一个64位进程中,加载mimikatz,然后抓取到域管的明文密码:zxcASDqw123!!
ntlm hash拿来备用
⑥拿下域控:
1.通过ipconfig定位到dns服务器为192.168.93.10,域名为test.org,一般dns服务器就是域控
2.开启socks5代理:
3.proxifier开启代理
4.将psexec.exe添加代理规则
5.利用psexec拿到域控shell
6.查找那份重要的文件,猜测为flag.txt
成功获取flag
0x05 总结
①joomscan的使用,joomlaCMS后台模板getshell
②利用LD来bypass disable_functions
③拿到shell后的本机敏感文件收集
④脏牛提权+msf web_delivery上线
⑤使用msf进行横向移动,smb_version主机探测+smb爆破
⑥msf中psexec获取目标shell,mimikatz抓取域管明文密码
⑦msf搭建socks5代理+proxifier代理psexec进目标内网
⑧使用impacket下的psexec获取到域控的shell