Die lokale vollständige Einbindung ist also wirklich gut, da sie es uns
ermöglichen, Dateien auf dem Server zu lesen und wir möglicherweise Dateien mit Passwörtern
oder sensiblen Informationen lesen können Server, der Schwachstellen beim Einschließen von lokalen Dateien verwendet.
In dieser Vorlesung werden wir also sehen, wie wir eine Reverse-Shell erhalten, indem wir die lokale Dateieinschluss-Schwachstelle ausnutzen, die
wir in der vorherigen Vorlesung gesehen haben.
Da sie es uns also ermöglichen, Dateien auf dem Server zu lesen, haben wir es geschafft, alles auf diesen
Server zu schreiben, dann können wir bösartigen Code schreiben und dann durchsuchen und diesen Code ausführen lassen.
Genau das werden wir also versuchen.
Es gibt eine Reihe von Methoden, um dies zu erreichen.
Normalerweise geschieht dies mithilfe der Protokolldateien, da die Protokolldateien normalerweise Dinge registrieren oder schreiben, die auf dem Server
passieren.
Sie können also versuchen, sich mit einem Benutzernamen anzumelden.
Aber anstatt einen Benutzernamen einzugeben, geben Sie eine Postleitzahl ein oder Sie können versuchen, eine E-Mail zu
senden und dann anstelle der E-Mail einen Code eingeben und dann versuchen, diese Protokolldateien zu durchsuchen, und der BHP-Code wird ausgeführt.
Die erste Methode, die wir uns jedoch ansehen, wird die Umgebungsvariable ausnutzen.
Dies ist also im Grunde eine Datei, die ein Array von Informationen über die aktuelle Umgebung enthält.
Also lassen Sie uns nur schnell ein Beispiel dafür haben.
Genau hier bin ich auf meiner Calli-Maschine.
Ich nehme nichts.
Ich bin nicht auf einem Server, und ich werde nur sehen, was der Inhalt dieser Datei ist.
Diese Datei existiert also in allen Linux-Betriebssystemen.
Also öffne ich diese Datei jetzt einfach mit dem Kartenbefehl.
Und wie Sie sehen, sehen Sie eine Reihe von Umgebungsvariablen, die sich auf die aktuelle Umgebung
beziehen.
Also werden wir jetzt versuchen, diese Datei hier und meinen Bruder anstelle des Passworts
zu öffnen.
Es wird also in der Umgebung von Prox selbst sein.
Okay, werde einsteigen.
Und wie Sie sehen, sehen wir wieder ein Array von Variablen über die aktuelle Umgebung.
Interessant ist hier diese Variable, damit wir sehen können, dass der User-Agent.
Wird gesendet und hier angezeigt.
Der Benutzeragent ist nun im Grunde der aktuelle Browser, der vom Benutzer verwendet wird.
Die Website denkt, dass ich Firefox verwende, was richtig ist.
Und das liegt daran, dass Firefox jedes Mal, wenn Sie eine Website öffnen, der Website tatsächlich mitteilt, um welchen Browser es sich handelt.
Dies geschieht also auf unserer Website.
Dies wird also tatsächlich vom Client gesendet, damit wir diesen Wert tatsächlich ändern können.
Und was wir versuchen werden, ist, den Wert des Benutzeragenten zu ändern und Code zu platzieren, der
uns eine umgekehrte Hilfestellung gibt.
Bevor wir das tun, stellen wir sicher, dass der Code auf dem Server ausgeführt wird.
Wir werden also nur einen normalen Code senden, der Informationen anzeigt.
Also schalte ich jetzt meinen Abfangjäger ein.
Ich habe Ihnen gezeigt, wie Sie einen Proxy einrichten.
Wenn Sie also nicht wissen, wie das geht, gehen Sie zurück zu dieser Vorlesung und sehen Sie, wie Sie einen Proxy einrichten können.
Also habe ich gerade den Interceptor eingeschaltet und werde genau dieselbe URL durchsuchen.
Und genau hier, wenn wir mit der Enthauptung fortfahren, werden Sie sehen, dass Firefox den Benutzeragenten genau hierher sendet und
ihn als Mozilla 5 sendet, was auch immer.
Wir werden also diesen Wert ändern und BHB-Code einfügen, und der Code, den ich einfügen
werde, ist sehr einfach.
Es werden im Grunde nur Informationen angezeigt.
Es handelt sich also um eine Funktion namens BHP info.
Und dann werde ich dieses Paket weiterleiten.
Und wie Sie sehen, wurde der HP-Code auf der Website auf der Target-Website ausgeführt.
Das heißt, wenn wir bösartigen Code an diese Website senden, können wir tatsächlich vollen Zugriff erhalten
oder unseren Code ausführen lassen.
Jetzt können Sie buchstäblich jeden gewünschten Datensatz senden.
Sie können Code an Listendateien senden.
Sie können Code senden, um eine Datei hochzuladen, oder Sie können einen der Codes senden, die zuvor verwendet wurden, um eine
umgekehrte Verbindung herzustellen.
Das werde ich also tun.
Ich werde genau den gleichen Code verwenden, den wir vor und in den vorherigen Vorlesungen verwendet haben, um die volle Kontrolle über
den Zielcomputer zu erlangen.
Also tippe ich es eigentlich einfach hier im Terminal ein und kopiere es dann.
Wir werden also Passthrough verwenden.
Und wir verwenden Netcare.
Und dann gebe ich meine IP-Adresse ein.
Und ich werde den Port verwenden, das heißt, ich gehe bei diesem Angriff, ich werde acht acht,
acht, acht verwenden, und dann setzen wir das Semikolon.
Es ist also dasselbe.
Es ist nur eine Funktion.
Wir verwenden das in der Codeausführung im nächsten Jahr.
Also kopiere ich das buchstäblich einfach und füge es als Benutzeragent ein.
Bevor ich das tue, höre ich mir Teil acht acht acht acht vier Verbindungen an.
Wir werden also den gleichen Code verwenden, den wir zuvor verwendet haben.
Wieder mit Netcare.
Und jetzt lauschen wir auf Verbindungen, wir haben unseren Interceptor eingeschaltet, ich werde die
Website durchsuchen, ich werde eintreten und den Benutzeragenten ändern.
Vergessen Sie auch hier nicht, die Fragezeichen zu setzen, da ich nur
den Code dort eingefügt habe, also haben wir das Öffnen und das Schließen für HP und dann unseren Code, den Pass-Through-Code.
Und sie war S. H. , unsere IP, gefolgt von dem Port, auf dem wir lauschen.
Ich werde eintreten und ich werde vorwärts gehen.
Und wie Sie sehen können, haben wir eine Verbindung über die lokale Datei, Einschluss-Schwachstelle, wiederhergestellt.
Jetzt kann ich Dateien durchsuchen.
Ich kann, ich kann Ellos, ich kann ID und ich kann so ziemlich alles tun, was ich auf dem Server will, jetzt,
wo ich vollen Zugriff habe.
So konnten wir eine lokale Dateieinschluss-Schwachstelle konvertieren, die Ihnen nur Dateien anzeigen oder nur das Lesen von Dateien
auf dem Server ermöglichen kann.
Wir konnten dies konvertieren und ausnutzen, um vollen Zugriff auf den Zielserver zu erhalten, da wir in die
proc self environ-Variable schreiben konnten, die unseren Benutzeragenten anzeigt, und indem wir den Benutzeragenten in unseren Code
geändert haben, Wir waren in der Lage, jeden gewünschten Datensatz zu erstellen.