Erzähler: Sicherheitslücken bei der Codeausführung.
Diese Art von Schwachstellen ermöglicht
es uns, Betriebssystemcode auf dem Zielserver auszuführen.
Wenn der Zielserver Windows verwendet,
können wir den Windows-Befehl
ausführen. Wenn er Linux verwendet, können wir Linux-Befehle verwenden.
Dies ist eindeutig ein wirklich kritisches Problem, das es uns ermöglichen
würde, mit dem Ziel wirklich alles zu
tun, was wir wollen.
Mit dem Befehl wget
können wir eine PHP-Shell hochladen oder mit dem Befehl wget Linux
eine Nutzlast,
einen Virus, alles, was wir wollen, hochladen.
Sie müssen nur sicherstellen, dass Sie es in
eine Datei oder in ein Verzeichnis
hochladen, in das Sie etwas schreiben dürfen.
Eine andere Möglichkeit, diese Sicherheitsanfälligkeit auszunutzen, besteht
darin, einfach Betriebssystembefehle auszuführen und einen umgekehrten Schutz zu erhalten, der
auf diesen Befehlen basiert.
Da wir also Betriebssystembefehle ausführen können, können
wir die von diesem
Betriebssystem unterstützten Programmiersprachen verwenden, um zu versuchen, eine
umgekehrte Verbindung auf unserem Computer herzustellen.
Nehmen wir also zunächst einmal an,
wir surfen
hier und schaffen es, herumzugehen, und dann
gelangen wir zu einer Registerkarte auf der Website,
auf der Sie beispielsweise einen
Ping ausführen können.
Nun sollten Sie
immer versuchen, mit den angezeigten Eingabefunktionen zu experimentieren.
Versuchen Sie zu sehen, was diese Eingabe bewirkt und
was Sie einschleusen können, was
Sie tun können, um Dinge zum Laufen zu bringen.
Diese Eingabe teilt Ihnen beispielsweise mit, dass
Sie einen Ping ausführen werden.
Und wenn Sie eine
IP eingeben, z. B. 10 20 14 203, das ist
meine eigene IP.
Nur um es zu sehen, um es als normale
Person zu benutzen, werde ich ein Submit machen und es wird für
mich pingen und mir die Ping-Ergebnisse geben.
Wie es hier aussieht, führt
es in Linux-Systemen den Befehl ping
aus.
Nun wollen wir sehen, ob wir das ausnutzen können.
Wenn es tatsächlich den Ping-Befehl ausführt.
Also, was es tut,
ist, es geht und es tut.
Wir senden also 10 20 14 203 als Ping.
Und dann geht es
zum Webserver und der Webserver pingt, 10 20 14 203.
Mal sehen, ob wir das ausnutzen können.
Wie würden wir es ausnutzen?
Es ist genommen, was wir eingeben, genau hier.
Und dann tut es Ping.
In Linux- und Unix-basierten Befehlen können Sie
dieses Zeichen verwenden, um mehrere Befehle in einer
Zeile auszuführen.
Wenn Sie dies zum Beispiel in Ihrem eigenen Terminal tun, gehe
ich hier einfach mein Terminal durch.
Und ich mache einfach LS, das ist der
Befehl list und dann PWD,
was listet, was zeigt dein Arbeitsverzeichnis.
Wenn ich also einen LS mache, gefolgt
von diesem Zeichen und dann PWD, führt er beide Befehle aus.
Dies wird also ausgeführt, und dann wird angezeigt, wo
sich das Arbeitsverzeichnis befindet.
Also können wir dasselbe tun und sehen, ob
es bei uns funktioniert.
Also werden wir IP eingeben, eine richtige IP,
und dann mache ich
einfach PWD und versuche, ob es die PWD für mich ausführt.
In diesem Fall handelt
es sich um eine Sicherheitsanfälligkeit in Bezug
auf die Codeausführung, und ich kann auf dem Server alle gewünschten Aktionen ausführen.
Also mal sehen, was passieren wird.
Ich habe es eingefügt und drücke auf "Submit".
Und wie Sie sehen, haben wir die
Ping-Ergebnisse erhalten, aber am Ende haben
wir unser aktuelles Arbeitsverzeichnis.
Die via wwwdvwa Schwachstelle ist also ein exec.
Also, es hat die PWD ausgeführt, die ich eingefügt habe.
Und das heißt, ich kann alle Befehle einfügen,
die ich möchte, und sie werden ausgeführt.
Daher habe ich eine Ressourcendatei eingefügt,
mit der Sie eine umgekehrte Verbindung vom
Zielcomputer abrufen können.
Nun gibt es eine Reihe
von Möglichkeiten, eine Reihe von Befehlen, mit denen
Sie eine umgekehrte Verbindung herstellen können.
Alle diese Befehle hängen von der Programmiersprache ab.
Zum Beispiel haben wir Befehle in PHP,
wir haben Befehle in Ruby, Sie haben Pearl-Befehle und
wir haben den für Bash.
Bash ist der Linux-Shell-Befehl und die Sprache.
So können alle Unix-Betriebssysteme Bash-Befehle
ausführen.
Das ist also eine sehr gute Art, es zu tun.
Daher sollte dieser Befehl
auf den meisten Unix-basierten Systemen funktionieren.
Dies wäre also eine wirklich gute Möglichkeit, dies zu tun.
Auch hier hätten die meisten Python, also
wäre Python ein guter Weg.
Netcat, die meisten von ihnen haben auch Netcat.
Netcat ist also eine gute Möglichkeit, dies zu tun.
In diesem Video wird Netcat verwendet.
Also werde ich zuerst
auf Verbindungen achten, so wie
wir es früher mit Metasploit gemacht
haben, als wir Multihandler gemacht haben.
Sie können dafür einen Multihandler verwenden und
auf eine Verbindung warten.
Nun, ich werde es einfach halten und
dir einen neuen Weg zeigen.
Und ich werde Netcat verwenden.
Also, Netcat.
Netcat ist nur ein Tool,
mit dem Sie Computer abhören und miteinander verbinden können.
Also, ich werde auf Port 80 80 hören.
Netcat ist also das Programm.
vv ist nur, um eine ausführliche Ausgabe zu sehen, damit
wir eine Menge Ausgaben sehen können. Alles,
was schief geht, können wir sehen.
Und wir sagen, es soll
mit der L-Option auf Port 8080 abgehört werden.
Also drücke ich die Eingabetaste und
das heißt, ich höre nur auf Port 8080, das ist alles,
was es tun wird.
Der nächste Befehl, den wir ausführen werden, ist,
dass wir versuchen, mit Netcat
eine Verbindung vom Webserver zurück zu meinem Computer herzustellen.
Wir gehen also davon aus, dass der Webserver über Netcat verfügt.
Wir werden es versuchen und sehen, ob das funktioniert.
Der Befehl ist also sehr einfach.
Es ist Netcat und wir sagen, es soll Bin Bash verwenden.
Und wir geben ihm die IP meines Geräts.
Mein Angreifer-Gerät, das 10 20 14 ist.
Und dann der Port, der 8080 ist.
Genau hier hören wir zu.
Also werde ich das kopieren.
Und ich werde es genauso
ausführen, wie
wir es beim Ausführen des PWD-Befehls getan haben.
Das letzte, was wir getan haben, war 10 20 14 203.
Und dann haben wir PWD gemacht.
Also, was
ich jetzt tun werde, werde
ich die PWD entfernen und den Code einfügen,
den wir gerade erstellt haben. Wir werden versuchen, eine Verbindung
vom Webserver zurück zum normalen Computer zum Angreifer-Computer herzustellen.
Und ich werde hierher kommen.
Und wie Sie sehen, haben wir
von 10 20 14 204 eine Verbindung zu uns zurückerhalten.
Das ist also der zögernde Computer.
Und wenn wir eine PWD machen, werden Sie feststellen, dass wir eine umgekehrte
Shell haben, wenn wir eine LS machen.
Wenn wir eine ID machen, werden Sie sehen, dass wir wwwdata sind und
Sie können (murmelt), Sie nennen A, nur um zu bestätigen.
Dass ich in der Metasploability bin und Sie sehen, dass ich
in der Metasploitable bin.
Ich kann jeden gewünschten Befehl auf dem
Zielcomputer ausführen.
Im Grunde habe ich vollen Zugriff auf den Zielcomputer.