一次从外网 JoomlaCMS 渗透 Getshell,再到内网域渗透
2022-7-16 08:8:37 Author: 系统安全运维(查看原文) 阅读量:24 收藏

转自:红队攻防实验室

简介

靶机作者:licong

靶机描述:域控中存在一份重要文件(获取域控权限) 靶机主机有5台:ubantu、win2008、win7、win2012、centos 攻击主机:KALI(192.168.93.128)、Win10(192.168.1.103)

拓扑图

图片

其中 KALILinux 的 IP 会在文章中有变动,因为我搞这把靶场的时候中途关机过几次,随着开启启动VMwareDHCP会自动给它分配一个新的IP,所以我的 KALI 在文章中变成了 192.168.1.128192.168.1.129192.168.1.130

(小弟第一次做拓扑图,就这样吧...)

JoomlaCMS深入渗透

通过开放了 http 服务,我首先来看看 192.168.93.20 的 web,先是枚举了一下页面发现如下:

图片

发现有一个 401 登陆认证的页面:

http://192.168.93.20/reports
图片

经过一系列的 admin:admin、admin:admin123 ... 等等弱口令尝试后果断放弃!通过搜索了一下 Windows 2008 相关的漏洞发现有一个永恒之蓝

图片
图片

但是没啥用,这个先暂时缓缓,总不能在一棵树上吊死吧!

来到下一个 IP : 192.168.93.30 ! 继续我们的永恒之蓝看看能不能打下来:

图片

看了没用啊,靶机还是有点"困难"的啊,原本以为这靶机存在永恒之蓝就可以打下了,事不如愿呐。

继续下一个 IP :192.168.93.100!通过再次的端口扫描所有详细信息后得知:

图片

它开放了 22(ssh),80(http),3306(mysql),其中它 80 端口的 web 所使用的 CMS 为 JoomlaJoomlaCMS它是一套全球通用的CMS,所使用的脚本语言通常是 PHP

访问 http://192.168.93.100 发现页面上没有什么可以利用点:

图片

通过使用 Joomscan 这款工具对它进行了一系列扫描:

https://github.com/rezasp/joomscan

扫描结果如下:

图片
图片

其中有利用价值的文件目录有这些:

http://192.168.93.100/administrator/
http://192.168.93.100/robots.txt
http://192.168.93.100/configuration.php

administrator 目录是一个登陆页面,尝试了它的默认密码以及弱口令无果:

图片

来到 robots.txt 文件,没有发现泄漏了重要文件信息:

图片

登陆Mysql数据库,管理员账号

但是 configuration.php~ 这个文件泄露了 mysql 的数据库连接信息:

图片

如上图所示,我们得到了一个 mysql 的用户:

user:testuser 
pass:[email protected]

用泄露的用户名和密码尝试登陆 mysql

mysql -h192.168.93.100 -utestuser -p
pass:[email protected]
图片

通过查询 joomla 数据库的 am2zu_users 表下的 usernamepassword 字段内容发现 administrator 用户的密码是加密的,而且不知道是啥加密,估计是加盐了。有知道的大佬麻烦告诉我,我会很感激的!

图片

抱着试一试的心态去 cmd5 解密了一下无果:

图片

额...那么换个思路!既然 admin 的密码拿不到,我们可不可以修改它的密码或者说添加一个管理员用户进去呢?

通过观看官方文档发现它可以通过 SQL 语句来添加一个新的用户:

https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn
图片
图片
图片
图片

Joomla拿到Webshell

通过插入 SQL 数据我们成功添加了一个 admin2 用户,密码是 secret,登陆它的 web

http://192.168.93.100/administrator/index.php
图片

之后在模板新建一个 php 文件:Extensions -> Templates -> Templates

图片
图片

访问 http://192.168.93.100/templates/beez3/8888.php 得到一枚 SHELL

图片
图片

虽然得到了一枚 webshell,但是发现执行不了 shell 命令!但是呢可以切换目录,我切换目录到网站绝对路径下发现这些文件:

图片

执行不了命令那么我通过疯狂翻目录文件找到了一个 test.txt 文件,里面好像是一个账号密码:

图片

通过得到的密码尝试 SSH 登陆:

图片

登陆成功后查看了一下内核

图片

脏牛提权

发现内核版本大于 2.6.22 ,那么可以用脏牛提权(Linux kernel >= 2.6.22(2007年发行,到2016年10月18日才修复))

https://github.com/FireFart/dirtycow/blob/master/dirty.c

(到了这里我本来想放弃的,后来是问了团队的老哥给的思路方法才知道)

图片

提权成功,我们来切换一下用户 firefart :

图片

内网横向渗透

登陆成功!接下来通过 MSF 生成一个木马来得到一个 shell 进行后渗透:

图片

通过 xshell 我发现上传不了文件:

后来通过 WinSCP 工具才上传成功的!

图片

给 shell.elf 文件可执行权限,然后运行后 MSF 反弹回来一个 shell

图片
图片

之后先添加路由表扫描一下内网存活主机:

图片

扫描存活主机使用的模块是这个:

图片

这个时候扫描出来发现内网存活了这些:

192.168.93.1
192.168.93.10
192.168.93.20
192.168.93.30
192.168.93.100
192.168.93.120

但是不知道它具体是什么操作系统,那么可以通过这个模块来对内网进行探测操作系统:

auxiliary/scanner/smb/smb_version
图片

扫描出来有三台主机,其实探测出来的和我们NMAP信息搜集出来的结果八九不离十,只不过是我们知道了靶机 IP 的情况下才探测出来操作系统,而现在是通过横向渗透才知道的:

[+] 192.168.93.20:445     - Host is running Windows 2008 Datacenter SP2 (build:6003) (name:WIN2008) (domain:TEST)
[+] 192.168.93.10:445 - Host is running Windows 2012 R2 Datacenter (build:9600) (name:WIN-8GA56TNV3MV) (domain:TEST)
[+] 192.168.93.30:445 - Host is running Windows 7 Professional SP1 (build:7601) (name:WIN7) (domain:TEST)

以上三台主机是有 TEST域的,说明他们在一个里!我通过MSF 爆破 Windows 2008 这台主机的 smb 登陆凭证爆破成功:

图片
user:administrator
pass:123qwe!ASD

接着我先把它的流量代理出来,使用 socks4 代理:

auxiliary/server/socks4a
图片
图片
图片

设置完毕后,配置 proxychains 在 /etc/proxychains.conf 这个文件,在末尾吧端口更改为刚刚设置监听的 1080 端口:

socks4 	127.0.0.1 1080
图片

为了验证我们是否代理流量成功,我扫了一下 192.168.93.20(Windows 2008)这台主机的端口开放情况:

proxychains nmap -T4 -P 80,1433,3306,3389 192.168.93.20
图片

扫描成功!这个时候就可以在扫它内网了!然后我本来想用 Socks4的,但是失败了不知道为啥,后面我又把它换成 Socks5

图片

在扫它内网之前我需要吧 KALI 这台主机的流量给代理出来,下面我用到的 socks5代理,工具是 SSF:

Win10:ssfd.exe -p 1050
KALI:./ssf -F 1051 -p 1050 192.168.1.103
图片
图片
图片

获取域控密码拿到Flag

代理成功后我们通过 wmiexec 去连接 windows 2008

wmiexec.exe administrator:[email protected]
图片
图片
图片

查看 Windows 2008 的 ip 后发现 dns 为 test.org,接着 ping test.org 获取到了域控制器的 IP :

图片

这个时候尝试抓取 test.org 域里的 administrator 密码,先上传一个 mimikatz 到 windows2008

图片

之后本来想用 mimikatz 读取密码的,但是在 dos 下进入不了 mimikatz 的交互界面...还是太菜了!我接着 MSF 生成了一个木马得到了 Windows 2008 的shell,然后直接运行 getsystem 得到了 SYSTEM 权限 :

图片

然后上传了一个 mimikatz 直接读取到了明文密码:

图片

最后通过 smb 连接到了2012机器拿到 flag

图片

这一篇文章就到这吧。

好文推荐

工具|红队快速批量打点

实战 | App优惠劵无限领取漏洞挖掘记录

利用 EHole 进行红队快速批量打点

神兵利器 - presshell

渗透测试-Ngrok内网映射与穿透

分享 | 几种实战成功过的webshell免杀方式

推荐一款自动向hackerone发送漏洞报告的扫描器

李姐姐开源DNSLog工具eyes.sh

欢迎关注 系统安全运维


文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0NjE0NDc5OQ==&mid=2247505058&idx=2&sn=22f21f88f5941112e279791e4822608e&chksm=c30807d2f47f8ec4dd9d2ea6b23172444c0b38746c59381495f08b3adb6727da1bf733077db0#rd
如有侵权请联系:admin#unsafe.sh