
Hol dir Shells wie ein Meister.
ShellPop dreht sich alles um das Erstellen von Shells. Mit diesem Tool können Sie einfache und anspruchsvolle Reverse- oder Bind-Shell-Befehle generieren, um Ihnen bei Penetrationstests zu helfen.
Python 2.7 ist erforderlich.
3.0+ Versionen funktionieren nicht.
Erforderliche Abhängigkeiten installieren
root@kali# apt-get install python-argcomplete metasploit-framework -y
root@kali# pip install -r requirements.txt
Setup Installation
root@kali# python setup.py install
Hinweis: Nach der Installation funktioniert die automatische Vervollständigung mit der Tabulatortaste erst nach einem Neustart des Terminals.
Um alle verfügbaren Optionen dieses Tools schnell aufzulisten, verwenden Sie --help.
root@kali# shellpop --help

Sie können alle verfügbaren Shellpop-Shells mit der Option --list auflisten.
root@kali# shellpop --list

Shellpop verfügt jetzt über eine Auto-Vervollständigungsfunktion. Um sie zu nutzen, müssen Sie --number und (--reverse oder --bind) vergessen und sich einfach an das Argument --payload halten. Wie im Bild unten:

Verschwenden Sie keine Zeit. Bei diesem Tool geht es darum, KEINE Zeit zu verschwenden. Sie können die Option --clip für alle Ihre generierten Payloads verwenden und sie automatisch in Ihre Zwischenablage kopieren lassen.
Es gibt zwei Arten von Payloads in diesem Programm: Bind oder Reverse.
Reverse-Shells verwenden Ihren Angreifer-Rechner als 'Server'. Bei dieser Art von Payload benötigen Sie sowohl --host als auch --port, die auf Ihren Rechner verweisen. Ein Handler muss eingerichtet werden.
Bind-Shells verwenden den entfernten Host, um die Verbindung bereitzustellen. Bei dieser Art von Payload benötigen Sie nur die Option --port mit einer gültigen Portnummer.


Derzeit stehen zwei Hauptmethoden der Verschleierung für Ihre generierten Payloads zur Verfügung:
Ersetzt alle Variablen im Payload durch zufällig benannte. Wird automatisch auf jeden Payload angewendet.

Verschleiert die IP-Adresse und den Port, die vom Payload verwendet werden.
Geprägt von @vysecurity, nutzt IPfuscation einfach die wenig bekannte Tatsache, dass IP-Adressen in Dezimal-, Oktal- und Hexadezimalzahlen oder eine Kombination aller drei umgewandelt werden können und dennoch verwendet werden können.
Die Port-Verschleierung wird erreicht, indem die Portnummer durch einen mathematischen Ausdruck ersetzt wird, der die Portnummer ergibt.

Hier ist die IP-Adresse im generierten Payload eine Kombination verschiedener Zahlenbasen. Der erste Teil in normaler Dezimalschreibweise, der zweite und dritte Teil sind 2 und 3, umgewandelt in Oktal mit zufälligen Nullen als Auffüllung, und der vierte Teil ist 4 in Hex, ebenfalls mit einigen Nullen als Auffüllung. Die Auswahl der Basen für jeden Teil der IP-Adresse wird randomisiert, ebenso wie die Anzahl der Nullen, die als Auffüllung für Hex- und Oktalzahlen verwendet werden.
Der Port wird verschleiert, indem 443 durch einen Ausdruck ersetzt wird, der 443 ergibt. Dieser Ausdruck wird ebenfalls zufällig generiert.
Obwohl IPfuscation optional ist, wird die zufällige Variablenverschleierung jetzt automatisch auf alle Payloads angewendet. Wenn die Größe des Payloads ein echtes Problem darstellt, können Sie die Option --obfuscate-small übergeben, damit der Payload durch die Verschleierung nur minimal vergrößert wird. Die Variablennamen, IP-Adresse und Portnummer werden bei Verwendung dieser Option deutlich kürzer.

Kodierer sind spezielle Optionen, die Sie beim Generieren von Shellpop-Payloads verwenden können.
Derzeit gibt es drei Kodierungsmethoden, die einzeln oder gleichzeitig angewendet werden können:
Verwendet einen zufälligen numerischen Schlüssel (1-255), um den Payload zu verschleiern und einen Entschlüsselungs-Stub hinzuzufügen, um ihn zu entschlüsseln.
Einfache Base64-Kodierung der Payload-Daten und Hinzufügen eines Entschlüsselungs-Stubs zur Entschlüsselung.
Einfache URL-Kodierung des endgültigen Payloads.






Ein Handler ist ein Mechanismus, um den Vorgang des Bereitstellens eines Sockets zum Empfangen der eingehenden Verbindung oder zum Verbinden mit einem Server-Endpunkt zu 'handhaben', um Ihre Shell zu etablieren.
Derzeit wird Unterstützung für die folgenden TCP-Handler bereitgestellt:
Das bedeutet, dass jede TCP-Shell an ihr Kommandozeilen-Argument die Option --handler anhängen kann. Dadurch entfällt die Notwendigkeit für den Bediener, den Handler (wahrscheinlich ncat oder nc) selbst zu starten.

Diese Funktion wurde von den Nutzern dieses Tools vielfach nachgefragt. Nun ist es technisch möglich, alle Shellpop-Shells auf Meterpreter zu aktualisieren, da der Handler seit Version 0.3.6 standardmäßig das Metasploit-Framework verwendet, um Shells zu landen.

Ein Stager ist ein Mechanismus, um Ihren Payload in STUFEN bereitzustellen. Manchmal kann die Komplexität oder Größe des Payloads problematisch sein. In solchen Fällen können Sie einen kleinen Payload erstellen, der dann den größeren anfordern und ausführen kann.
Derzeit wird Unterstützung für die folgenden Stager-Protokolle bereitgestellt:
ShellPop hat die folgenden HTTP-Stager, die in jedes Szenario passen, das Sie sich vorstellen können:
Um HTTP-Staging zu verwenden, hängen Sie an Ihre Kommandozeile --stager http an und, optional, wenn Sie den HTTP-Server-Port angeben möchten, setzt das Flag --http-port Ihre Portnummer vor die vordefinierten.

Derzeit wird die Unterstützung von zwei Protokollen zum Landen Ihrer Shells bereitgestellt:

Dieser Code wurde von Andre Marques (@zc00l) und den Mitwirkenden dieses Projekts verfasst.
Es wird der Öffentlichkeit zugänglich gemacht, sobald es auf diesem GitHub veröffentlicht wurde.
Für etwaige Schäden, die durch dieses Tool verursacht werden, übernimmt kein Mitwirkender, einschließlich des Autors, eine Haftung.
Wir schätzen alle Mitwirkenden sehr.