一次从外网 JoomlaCMS 渗透 Getshell,再到内网域渗透

释放双眼,带上耳机,听听看~!

红队攻防实验室

一个专注于红队攻防研究的公众号

大家好,这里是 红队攻防实验室 的第 3 篇文章,本公众号会记录一些红队攻击的案例,不定时更新!请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关!

简介

靶机作者: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.20web,先是枚举了一下页面发现如下:

图片

发现有一个 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 所使用的 CMSJoomlaJoomlaCMS它是一套全球通用的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:cvcvgjASD!@

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

mysql -h192.168.93.100 -utestuser -p
pass:cvcvgjASD!@
图片

通过查询 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:123qwe!ASD@192.168.93.20
图片
图片
图片

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

图片

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

图片

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

图片

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

图片

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

图片

这一篇文章就到这吧。

往期推荐

从外网 log4j 再到内网核弹组合拳拿到域控

只需要一个域用户即可拿到 DC 权限

裂变宝是什么?

红队攻防实验室

一个专注于红队攻防研究的公众号

点分享
点点赞
点在看

本文来源自:红队攻防实验室

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
渗透测试

一文教你将个人微信化身ChatGPT机器人

2022-12-18 16:54:10

渗透测试

一次利用 Metasploit 进行特权提权,再到 2500 台主机的内网域渗透

2023-1-1 20:41:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索