Sprecher: In dieser
Vorlesung werden
wir uns mit den Sicherheitslücken beim Hochladen von Dateien befassen.
Dies sind die einfachsten Arten
von Sicherheitslücken, da wir damit jeden Dateityp hochladen können.
Wenn der Zielcomputer beispielsweise PHP versteht, können wir eine
beliebige PHP-Datei oder eine PHP-Shell hochladen und die
vollständige Kontrolle über den Zielcomputer erlangen.
Wenn der Zielcomputer oder der Zielserver Python oder
eine andere Sprache versteht, können
Sie einfach Python-Code,
Python-Shell oder Ruby-Shell hochladen.
Sie können diese Shells
mit Veil-Evasion oder Metasploit erstellen
oder Sie können Ihre eigene PHP- oder Python-Shell verwenden.
Was wir
heute tun werden, ist
ein Tool namens weevly, das PHP-Shells generiert
und es uns ermöglicht, auf
dem Zielcomputer Zugriff zu erlangen und eine Reihe cooler Dinge zu erledigen.
Zuallererst habe ich meine DVWA hier.
Und normalerweise, wenn Sie versuchen, einen Test einer
Website zu
planen, empfehle ich, vor dem
Versuch, Tools oder etwas zu verwenden,
nach dem Sammeln Ihrer Informationen einfach die Website zu durchsuchen.
Sehen Sie, was Sie sehen können, und machen Sie sich ein Bild von der Website.
Sehen Sie, was darauf installiert ist und so weiter.
Und versuchen Sie, alle Funktionen auszunutzen, die Sie sehen.
Nehmen wir zum Beispiel an, Sie haben alles
erledigt und dann den Upload erreicht.
Wir können sehen, dass diese Website es uns ermöglicht, eine Datei hochzuladen.
Dies kann manchmal bei Ihren Penetrationstest-Aufgaben eine Website sein, auf
der Sie ein Profilbild hochladen können. Wenn
es sich um eine klassifizierte Website handelt, können Sie
möglicherweise Bilder von Autos hochladen oder was auch immer
Sie hinzufügen möchten Die Webseite.
Wie Sie hier sehen können, erwartet die Website,
dass Sie ein Bild auswählen und ein Bild hochladen.
Mal sehen, ob wir zuerst ein Bild hochladen können.
Also werde ich meine Downloads fortsetzen und ich habe
ein Bild hier in den Ressourcen.
Nur ein Bild von einem Auto.
Ich werde es hochladen und sehen, ob es hochgeladen wird.
Und wir können sehen, dass der
Upload erfolgreich war und an diesem bestimmten Ort gespeichert ist, so
dass es ...
Das bedeutet zwei Verzeichnisse zurück und dann diesen Dateinamen.
Mal sehen, ob das Bild tatsächlich hochgeladen wurde.
Also nehme ich zwei
Verzeichnisse weg, nehme die Schwachstellen weg und lade sie hoch.
Ich benutze das nur.
Und dann werden wir diesen Ort auf dem Server bekommen, nur um zu
sehen, ob das Bild richtig hochgeladen wurde.
Und wie wir sehen, wurde das Bild hochgeladen, das
ist alles gut.
Als nächstes
wollen wir versuchen, eine PHP-Datei hochzuladen.
Und um das zu tun, werden wir, wie gesagt,
ein Tool
namens weevly verwenden, um eine Payload oder eine Shell zu erstellen, wenn Sie sie aufrufen möchten.
Und es wird offensichtlich eine PHP-Shell sein.
Sie können Metasploit wie gesagt
verwenden, um eine PHP-Payload
zu erstellen, aber wir müssen uns nur
ein anderes Tool ansehen, das für Penetrationstests von Webanwendungen entwickelt wurde.
Das Werkzeug ist also
sehr einfach. Wir werden den Namen des Werkzeugs eingeben.
Und dann werden wir generate setzen,
weil wir eine Payload oder eine Shell-Datei generieren wollen.
Dann legen wir ein Passwort für diese Datei
fest, damit nur wir darauf zugreifen und die Website kontrollieren können, wenn wir
sie auf die Website hochladen.
Mein Passwort lautet also 1-2-3-4-5-6.
Und dann werde ich sagen, wo ich es aufbewahren möchte.
Und ich möchte es in root speichern und
ich werde es Shell nennen. php.
So einfach ist der Name des Programms.
Generieren ist das Generieren einer Shell.
Das Passwort, mit dem
die Shell uns authentifiziert und das
in root / shell gespeichert wird. php.
Drücke Enter und es wird erstellt, wenn ich
schon in meiner Wurzel bin, also tue ich es einfach, wenn ich es sehen soll.
Und wir können es hier sehen.
Als Nächstes kehren wir einfach zu
unserer Website zurück und versuchen, diese Shell hochzuladen.
Und ich werde nach Muschel suchen und hier ist es.
Und ich drücke auf Upload.
Und wie Sie sehen,
wurde die Datei erfolgreich hochgeladen und befindet
sich an der gleichen Stelle wie das Bild.
Alles was wir jetzt tun müssen ist, dass wir den gleichen Link verwenden und wir werden
wieder weevly verwenden, um mit der Shell, die
wir hochgeladen haben, zu interagieren.
Lassen Sie uns nun zunächst prüfen, ob die Shell
vorhanden ist und ordnungsgemäß hochgeladen wurde.
Also werde ich es einfach in meinem Browser durchsuchen.
Schale. php und Sie können sehen, dass
Sie eine leere Seite erhalten, so dass wir
nicht 404-Datei nicht gefunden bekommen, was bedeutet, dass die Datei hochgeladen wurde und es dort ist.
Also werden wir versuchen, mit ihm von ganzem Herzen zu interagieren.
Um eine Verbindung herzustellen, tippen wir etwas ein und
setzen dann die URL an die Stelle, an der sich die Shell befindet.
Hier wurde also unsere Shell hochgeladen.
Und dann geben wir das Passwort ein.
Also war mein Passwort 1-2-3-4-5-6.
Sehr einfach, weevly, die URL, wo die Datei
ist und 1-2-3-4-5-6.
Dies ähnelt der Verwendung Ihres Multi-Handlers, der
auf Verbindungen wartet oder über
Ihre Hintertür verbunden ist.
Wir werden uns also buchstäblich
nur mit der Hintertür verbinden, die wir hochgeladen haben.
Und wie Sie sehen, befinden
wir uns jetzt im Dateisystem. Von hier aus können Sie
also einfach einen beliebigen Linux-Befehl eingeben.
Und Sie werden in der Lage sein, es wird
auf dem Zielcomputer ausgeführt und Sie werden das Ergebnis hier sehen.
Wenn ich also eine pwd mache, siehst du,
dass ich in var / www / hackable / uploads bin, und wenn ich eine
ID mache, sehe ich im
Moment meinen Benutzer, der www ist. Daten.
Und wenn Sie einen uname -a eingeben, um zu bestätigen,
dass dies der metasplofähige Rechner ist, werden Sie
feststellen, dass dies der metasplofähige Linux-Rechner ist.
Jetzt können wir alles tun, was wir wollen.
Wir können die Dateien auflisten, wir können navigieren.
Sie können jeden Linux-Befehl ausführen, den Sie ausführen möchten.
Jetzt haben wir uns verändert, unser Platz wurde geändert.
Weevly bietet auch viel mehr Funktionen als nur diese.
So können Sie tatsächlich eine Reihe von coolen Dingen machen.
Wenn Sie Hilfe eingeben, sehen Sie alle coolen Dinge, die
Sie mit weevly tun können.
Sie können also versuchen, Ihre Berechtigungen zu erweitern.
Führen Sie SQL-Abfragen und viele coole Dinge aus, die nur für das
Testen der Penetration von Webanwendungen entwickelt wurden.
Im Moment lasse ich es dabei.
Und dies zeigt Ihnen nur,
wie Sie die Sicherheitslücken beim Hochladen von Dateien ausnutzen.