In dieser Vorlesung werden wir eine andere Methode zur Ausnutzung lokaler
Datei-Einschluss-Schwachstellen sehen und vollständige Kontrolle über den Zielserver erlangen.
Im vorigen Video haben wir also gesehen, wie man mit der Umgebungsvariablen unsere Umgebungsvariablen verwendet.
In dieser Vorlesung werden wir anhand der Protokolle erfahren, wie diese Protokolle ausgeführt werden. Diese Server verfügen über eine Vielzahl
von Protokolldateien. Grundsätzlich können wir im Moment jede Datei auf dem Server lesen, sofern wir die Berechtigung zum Lesen
haben.
Wenn wir also irgendetwas in diese Dateien schreiben können, können wir so ziemlich Code ausführen und die
Kontrolle über unser Ziel übernehmen.
Was Sie also tun müssen, ist, dass Sie versuchen, eine der Protokolldateien zu lesen und eine Möglichkeit zu finden, mit
diesen Protokolldateien zu interagieren, sodass Sie beispielsweise darauf schreiben können, ob die Protokolldateien, die Sie
lesen Wenn Sie mit unseren E-Mail-Protokolldateien interagieren, können Sie vielleicht eine E-Mail mit einem Code senden, der dann in
der Protokolldatei angezeigt wird.
In unserem Beispiel verwenden wir das var-Protokoll dieses Protokolls. Diese Datei enthält alle
Protokollierungsversuche auf dem Zielserver.
Also lass es uns tun und du wirst im Moment ein besseres Verständnis haben.
Jetzt habe ich nur den grundlegenden Exploit und versuche zu zeigen, dass es das Passwort ist.
Dies ist also die Datei, die wir in unserem Basis-Exploit verwenden.
Ich werde das einfach entfernen und ich werde nach Drahtlog suchen.
Wie Sie nun sehen, ist die Datei lesbar und wir können Anmeldeversuche auf dem Zielserver lesen.
Was wir jetzt machen werden, werden wir jetzt denken, dass diese Datei alle Anmeldeversuche anzeigt.
Warum also nicht versuchen, sich anzumelden und zu sehen, ob der Versuch hier angezeigt wird.
Also werde ich hier machen.
Ich werde nur versuchen, in den Server zu gelangen.
Ich werde also S-sh verwenden, da Sage nur ein entfernter Anmeldedienst ist, der von Webservern verwendet wird.
So ziemlich jeder Webserver hat das installiert.
Wir werden also versuchen, S-sh rein zu stellen, also S-sh und dann den
Benutzernamen.
Und ich werde nur einen zufälligen Benutzernamen eingeben, der wahrscheinlich gar nicht existiert.
Ich möchte nur sehen, ob diese Anforderung in der Protokolldatei aufgezeichnet wird.
Also ich bin nur
SS Ich gehe zu S-sh und ich werde einfach einen Benutzernamen als zufällig festlegen und dann mache ich es
und wir gehen mit der IP-Adresse hoch, die 10 20 9:46 ist und ich here here here Nun fragt es mich nach einem Passwort.
Natürlich existiert dieser Benutzername sowieso nicht, also werde ich auch ein zufälliges Passwort eingeben.
Ich versuche nicht wirklich, mit S-sh zu hacken.
Ich versuche buchstäblich nur, mich anzumelden. Ich gehe jetzt zu Control-C und möchte sehen, ob dies in
dieser Datei protokolliert wird.
Ich werde also eine weitere Anfrage senden und nach meinem Benutzernamen suchen, so dass der Benutzername zufällig genannt wurde, und ich werde sehen,
ob das protokolliert wurde und Sie können hier
sehen, dass es immer noch eine Maus und die Protokolldatei ist.
So wurde auf dem Server aufgezeichnet, dass jemand versucht hat, sich mit einem Benutzernamen zufällig anzumelden, und er hat
tatsächlich meine IP-Adresse.
Es ist also eigentlich auch meine IP-Adresse eingetragen.
Jetzt können wir diese Datei lesen und auch schreiben, indem Sie sich mit einem vorhandenen Konto anmelden.
Ich werde jetzt also versuchen, mich erneut anzumelden, und anstatt einen Benutzernamen einzugeben,
stelle ich den Benutzernamen als zufällig ein.
Ich werde den PH-Peacoat, den wir immer benutzt haben, um eine Reverse-Shell oder Reverse-Verbindung auf den
Server zu geben.
Jetzt können Sie wieder einen beliebigen Seitencode in meinem Beispiel verwenden.
Ich werde Code verwenden, der mir eine Reverse-Shell auf dem Zielcomputer gibt.
Bevor ich den Code ausführen kann, werde ich mir die Partie anhören und das mit Netcat tun, wie wir es
immer getan haben.
Also würde ich netcat E sein. V. LP und ich mache meinen Teil, der 8 8 8
8 ist, und jetzt warten wir auf Verbindungen und ich werde versuchen, mich erneut beim Ziel anzumelden.
Und in diesem Fall werde ich tatsächlich meinen Ph Veikko setzen.
Also derselbe Code, den wir vorher verwendet haben.
Also mein Benutzername wird ich zwei Anführungszeichen setzen und dann werde ich meinen Code
so verwenden und durchgehen und dann übergeben wir dem Befehl die PH-Befehle, die wir ausführen möchten.
Und dieser Befehl wird hier einfache Anführungszeichen verwenden.
Und dann wird mein Befehl
netcat bin sh sein.
Dann werde ich meine IP-Adresse, die 10 20 14 auf 0 8 ist, setzen. Dann werde
ich den Teil, den ich höre, 8 8 8 8 mit dieser Methode setzen.
Mit diesem Code erhalten Sie nur einen Versuch, denn wenn Sie den Code Kura falsch eingeben, wird
das Ganze kaputt gehen und die Datei wird nicht mehr angezeigt, da in Ihrem Code
ein Fehler vorliegt.
Ich schlage vor: Ich werde den Durchgang beibehalten, da dies eine sichere Funktion ist.
Und ich bin sicher, dass dies korrekt läuft.
Ich muss nur vergessen, ein Semikolon hier zu setzen, also werde ich das hier setzen.
Ich bin mir sicher, dass dieser Code korrekt läuft, aber ich habe hier eine Menge Minuspunkte.
Ich habe viele Leerzeichen und viele Schrägstriche, die immer Probleme haben, wenn Sie versuchen, sie zwischen
den nächsten Befehlen zu übergeben, und Sie können versuchen, diese Zeichen zu überspringen.
Ich schlage jedoch vor, dass Sie diese Verwendung und die Basis 64 tatsächlich verschlüsseln und dann am anderen Ende entschlüsseln.
Also zeige ich dir, wie das geht.
Zuerst werde ich diesen Befehl kopieren.
Das ist das Ergebnis davon, dass die pastorale Funktion ausgeführt und kopiert werden soll.
Ich werde zu meinen Rülpsern
gehen und ich werde hier zu meinem Decoder gehen.
Wir haben uns den Decoder noch nie angesehen, so dass Sie auf dieser Registerkarte Text für verschiedene Codierungsarten codieren
und decodieren können.
Also werde ich das, was ich kopiert habe, einfügen und als Bedu 64 kodieren.
Dieser Text, den der Netcast seit dem IP-Port ist, wird in diesen verschlüsselten Code umgewandelt.
Ich werde diesen Code kopieren, den ich hier in meinen Befehl einsetze.
Anstatt es so auszuführen, anstatt den Text zu setzen, werde ich den Basis-64-Code
einfügen, um sicherzustellen, dass keine Sonderzeichen vorhanden sind, die den Befehl mit der Bash stören könnten.
Also habe ich das kopiert.
Wenn ich nun so weiterfahre, habe ich meine Passage, die eine Peachtree-Funktion ist, und ich
sage ihr, diesen show-Befehl auszuführen.
Wenn Sie diesen Text kopieren und ausführen, wird dies offensichtlich nicht ausgeführt, da es nur Schwindel ist.
Ich muss also sagen, dass es sich um Base 64-Code handelt, und ich werde das mit der APHC-Funktion namens
Base 64-Decodierung tun.
Ich werde es also sagen, dies zu entschlüsseln.
Dieses Stück Text.
Und dann, sobald du entschlüsselt hast, ist der Durchlauf darauf durchgegangen.
Also werde ich es einfach hier eingeben.
Es wird also 64 dekodiert und
das ist nur eine weitere Funktion der Funktion ph und dann werde ich die Klammern setzen.
Also werde ich das nur ein bisschen größer machen, damit wir mehr darüber reden können.
Und ich werde einfach noch einmal kopieren und schreiben, nur damit wir noch ein bisschen darüber reden
werden.
OK.
Zunächst einmal verwenden wir eigentlich den Benutzernamen als Code als Code, den wir einfügen möchten, da
der Benutzername auf der Protokollseite angezeigt wird. Alles, was wir in den Benutzernamen eingeben,
wird als Sprache ausgeführt Code.
Das ist also zwischen zwei Anführungszeichen hier zwischen diesem und diesem Zitat.
Jetzt haben wir unsere Seite, da wir immer die Passthrough-Funktion verwenden und immer Unix-Befehle
auf dem Zielserver ausführen.
Wir behalten also das gleiche bei und sagen ihm, dass er diesen Text ausführen soll.
Aber bevor Sie diesen Text ausführen, möchte ich, dass Sie ihn auf Basis 64 decodieren.
Also haben wir den folgenden Code decodiert.
Und das ist der Code.
Dies ist also der Befehl, den net cat-Befehl, den wir immer verwenden. Wir decodieren ihn basierend auf Basis 64.
Und dann sagen wir ihm, dass er es mit der Pass-Through-Funktion ausführen soll, um als Bash-Befehl ausgeführt zu werden.
Also werde ich jetzt Anthere bekommen.
Und das ist es fragt mich nach einem Passwort, weil es denkt, dass es sich tatsächlich um einen Benutzernamen handelt, also
fügen wir das Ganze als Benutzernamen ein.
Also werde ich einfach irgendetwas beliebiges Passwort hier und da einfügen.
Nun sollte dies jetzt in den Protokollen gespeichert werden.
Also sollte dieser Code in das Off-Log eingefügt werden.
Also gehen wir jetzt zurück zu unserem Browser und Sie können das auf all den Hörern hier sehen.
Also drücke ich einfach die Eingabetaste hier im Browser.
Und wie Sie sehen, haben wir eine Verbindung von unserer Zielwebsite zurück. D. Sie werden das auf
der Zielwebsite mit David lesbarem Benutzernamen oder einer Benutzergruppe sehen.
Ich kann auf dem Zielserver Befehle ausführen oder machen, was ich will.
Dies ist nur eine weitere Methode, um Schwachstellen beim Einschluss lokaler Dateien auszunutzen, um eine Show auf dem
Zielcomputer zu erhalten.
Nun, dies ist wieder nur eine Idee, und Sie können diese Ideen mit verschiedenen Arten von Protokolldateien ausprobieren, so dass Sie es auch
außerhalb des Protokolls ausprobieren können.
Sie können es mit jeder anderen Art von Protokolldateien versuchen, müssen jedoch darüber nachdenken.
Sie müssen sich überlegen, wie Sie Code in diese Protokolldatei einfügen können.
Wie gesagt, wenn es sich um einen Mail-Server handelt und dann versucht wird, eine E-Mail zu senden, wenn es sich wie
in diesem aktuellen Beispiel um das Protokoll handelt, dann versuchen Sie, sich mit S-sh anzumelden und zu sehen, ob Sie
Code einfügen können wenn dieser Code auf dem Zielcomputer ausgeführt wird.