Wir haben einen Boot-to-Root-Rechner untersucht und mit einem Nmap-Scan begonnen, um mehrere offene Ports und laufende Dienste wie FTP-Server, Apache-Webserver und NFS-Dateifreigabe zu entdecken. Durch das Mounten der NFS-Dateifreigabe auf unserem lokalen Rechner haben wir Anmeldeinformationen im Klartext entdeckt, die uns Zugriff auf den FTP-Server verschafften.

Als nächstes luden wir Textdateien vom FTP-Server herunter, eine davon enthielt eine Notiz des Administrators und die andere Zehntel von Passwörtern. Da auf dem Server eine Ratenbegrenzung implementiert ist, führten wir keinen Brute-Force-Angriff auf das Anmeldeformular auf der Webseite aus, sondern fanden heraus, dass die PHPsession-ID mithilfe einer Kombination aus Base64- und MD5-Hash berechnet wird, die den Benutzernamen und das Passwort des angemeldeten Benutzers enthielt.

Wir haben ein Python-Skript erstellt, das die zuvor gefundene Passwortliste durchläuft, die MD5-Summe des Passworts berechnet, es mit Base64 codiert, um die Sitzungs-ID zu finden, und es auf der Administrationsseite ausprobiert.

Dadurch konnten wir das korrekte Passwort des Administratorbenutzers zusammen mit der Sitzungs-ID herausfinden. Als Nächstes erreichten wir eine Reverse Shell, indem wir Befehle auf der Serverstatusseite verketteten, und erreichten später eine Rechteausweitung, indem wir einen falsch konfigurierten Bibliothekspfad über sudo mit dem Apache-Prozess ausnutzten.

OSCP-Notizen abrufen

Flaggen

Was ist das Benutzerflag?

Was ist das Root-Flag?

Video-Transkript
Was ist los, Leute? Willkommen zurück, dieses Video? Sie haben Troy Aikman gekapert, eine kürzlich auf der Plattform veröffentlichte Maschine. Jetzt werden wir auf dieser Maschine gleichzeitig einen Replikations-Penetrationstest durchführen. Wir werden eine Linux-Berechtigungsausweitung durchführen, um zwei Flags abzurufen, eine Flag und eine Flag. Wir beginnen also mit einem Nmap-Scan, wie wir es immer tun, und stellen fest, dass es 123 um 42 sind.
Fünf offene FTP-Ports sind H, wir haben einen laufenden Webserver. Es ist nur so, dass wir eine Office-Dateifreigabe auf der Maschine laufen haben, was bedeutet, dass dies eine sehr nahe gelegene Maschine sein könnte, und wir haben ja, das ist auch kein Gesicht. Die Schätzung, dass diese Maschine ein Linux-Betriebssystem ausführt, ist also.
Die nächsten Schritte hängen also davon ab, was wir im Posteingang gefunden haben, damit wir weitermachen und den Webserver entdecken können. Wir sehen „Willkommen Gäste“, diese Seite wird entwickelt. Dies ist die Zielseite. Wir sehen hier einige Funktionen. Wir haben die Verwaltung, auf die wir keinen Zugriff haben, um uns anzumelden und zu registrieren. Dies ist also für einen Testbenutzertest 123. Da ist eins, zwei, drei.
Und jetzt können wir uns anmelden.
Okay, wir haben immer noch keinen Zugriff auf die Administrationsseite. Also gut, das war es fürs Erste mit der Webseite. Gehen Sie zurück zum Terminal und wir starten Go Buster, also Go Buster. Lassen Sie uns zuerst herausfinden, wo sich die Wortlisten auf dieser Maschine befinden. Also Tools, gehen wir zu Tools.

Und dann gehen wir zu den Wortlisten.

Regisseur von Esther. Okay, wir haben also diese Waters hier. Also nimm Buster dir und dann den Schuh, also gehen wir zurück.
Habe die Bestellung hier. Habe ich den Index entfernt?
Und dann sagen wir, wir werden mal sehen, welche Wortliste wir hier verwenden sollten. Also Dash W. Wir werden großen Text verwenden.
Also gut, wir lassen das eine Weile laufen. Und ja, es ist fertig. Wir haben also einen Director Discovered Server Dash-Status. Lassen Sie uns weitermachen und herausfinden, was das ist. Da wir also bereits gesperrt sind, wird sich hoffentlich diese Seite öffnen.
Und wir haben keine Berechtigung, auf diese Seite zuzugreifen.
Okay, das war's für den Webserver. Im Moment gibt es nichts zu tun, aber eine Sache ist zu beachten: Wenn wir auf „Untersuchen“ klicken und die Cookies oder den Speicher überprüfen, kopieren wir das hier.
Wie ihr seht, Leute, ist das ein Base64. Okay, wenn wir das jetzt in Klartext dekodieren, sehen wir, dass es aus einem Benutzernamen besteht. Das ist der, mit dem wir uns registriert haben, und das ist ein MD5-Hash. Wenn wir jetzt zu einer Tankstelle gehen und berechnen, und tatsächlich, Leute, das ist der Hash, der einem Klartext-Passwort entspricht, das wir bereits verwendet haben. Das bedeutet, dass die Formel zum Erstellen des Cookies aus dem Benutzernamen und dem gehashten Passwort besteht, die durch einen Doppelpunkt getrennt sind, und Base64 enthält. Das werden wir im Hinterkopf behalten.
Gehen wir nun zurück und gehen die Schnittstellendatei Sheriff durch. Wir haben sie früher gefunden. Also CD Bugsy Deepest Club und zeigen Mount Dash e
schnappen Sie sich die IP-Adresse
also haben wir einen Anteil. Natürlich. Wir müssen uns mounten. Schauen wir mal hier in meinen Notizen nach Mount.
Also haben wir das hier.
Vashti und Fs. Und das sind keine Taten. Also lasst uns weitermachen und es oder zuerst eingeben. Lasst uns ein Verzeichnis Verzeichnis gemountet erstellen. Und dann sagen wir Mount St. Und die ersten 2399 teilen

Es gibt ein bestimmtes Verzeichnis, in das wir die Mounts erhalten, die gemountet sind. Also LS, also haben wir Mount. Hier gemountet und gehen Sie zum Mounten.

Und Berechtigung verweigert. Mal sehen, warum die Benutzerberechtigungen so blockiert sind. Die Übereinstimmung entspricht einem Benutzer mit der ID 1003 und der Gruppe ist eine Gruppen-ID 1003, jetzt der Root-Benutzer, mit dem wir gesperrt sind. Diese Ideen hat er nicht. Die Lösung für dieses Problem besteht also darin, einen Benutzer mit der ID 1003 und der GID 1003 zu erstellen. Fahren wir mit dem Benutzer fort. Da ist ein Bindestrich. Ich möchte drei machen und dann sagen, es ist „Hi Dirk“.
Sieht aus, als hätten Sie ein Steuerproblem. Also möchten wir die UID angeben. Ist das ein Schuh? Ich habe ein Steuerproblem. Also möchten wir die UID angeben. Ist das ein Schuh?

Okay, das haben wir gemacht. Oh, wir haben einen sehr zurückhaltenden Namen und Schuhgröße 1300 verwendet. Okay, Passwort Isaac. Wir erstellen ein Passwort für den Benutzer. Das Passwort sollte also dasselbe sein wie der Benutzername. Und jetzt haben wir den Benutzer erstellt. Also, wir sind Jack und dann haben wir die LS-CD gemountet und sind erfolgreich zum Verzeichnis navigiert. Lass uns Relay starten. Also haben wir hier einen Hinweis für Mitarbeiter, holen Sie sich den Text für Mitarbeiter und Sie können den Benutzernamen und das Passwort für den FTP-Server eingeben. Also, wir werden uns damit anmelden, also beenden. Und dann FTP SFTP-Benutzer bei Name oder Server unbekannt?

Versuchen wir Folgendes. Das Passwort des FTP-Benutzers funktioniert nicht. Kopieren wir es noch einmal.
nach vorne
okay, wir haben uns zumindest in einem Chalet eingesperrt und wir haben diese Datei-Passwortliste und vom Administrator. Lasst uns diese Dateien herunterladen und den Text vom Administrator holen.
und erhalten Sie Passwörter
Listentext unterstreichen
Okay. Jetzt haben wir diese fünf Jungs. Ich glaube, sie sind nicht gerade gefragt.
Okay. Ja, das sind die Dateien, die wir gerade heruntergeladen haben. Sehen wir uns die Notiz an. Okay vom Administrator.
Also, liebe Mitarbeiter, hier spricht der Administrator. Ich habe eine sichere Liste mit Passwörtern erstellt, die Sie alle auf der Site verwenden können. Diese Passwörter tauchen in keiner der bisher von mir getesteten Wörterlisten auf. Ich ermutige Sie also, sie zu verwenden. Auch ich. Ich verwende eine dieser Listen, Notiz an Rick. Dies ist ein Benutzer, bei dem wir festgestellt haben, dass Leute gute Arbeit geleistet haben, indem sie die Anmeldeversuche begrenzt haben. Das funktioniert wunderbar und verhindert künftige Brute-Force-Angriffe. Dieser Knoten bedeutet also, dass wir keine Brute-Force-Angriffe anwenden können, um Zugriff auf den Administratorbenutzer zu erhalten.
Den Webserver haben wir gerade freigelegt und es gibt noch weitere Hinweise.
Dass es entweder den Namen oder den Benutzernamen Rick gibt.
Okay, schauen wir uns die Passwörter an.
Okay, also erstellen wir ein Python-Skript, um das alles durchzugehen.
Führen Sie die notwendige Dekodierung und das Hashing durch, und vielleicht können wir dann das Administratorkennwort oder das Administratorcookie finden. Denken Sie daran, dass das Cookie hier ist.
Das ursprüngliche Cookie wurde in Base64 codiert.
Okay.
Wir gehen also davon aus, dass wir, wenn wir ein Python-Skript erstellen, das all dies durchgeht, die Kodierung und das Hashing durchführen, den Administrator-Benutzernamen ermitteln können. Der Administrator hat das Cookie und das Administrator-Passwort, nachdem wir natürlich einen E5-Hash für das Passwort durchgeführt haben.
Also, Ellis, Name der Sitzung?
also im Skript hier definieren wir als erstes das Öl, das wir testen wollen, nämlich die URL, die auf die Administrationsseite verweist, und das Skript geht als erstes die Passwortliste durch. Also die Liste, die wir gerade vom FTP-Server heruntergeladen haben, richtig? Diese Liste enthält also die Passwörter, aber wir wissen nicht, welches das richtige ist. Was müssen wir also tun?

Ich gehe jedes einzelne dieser Passwörter durch. Das ist das Erste hier und deshalb verwenden wir die Datenvariable, um diese Passwörter zu speichern. Dann gehen wir jedes einzelne durch und speichern es in der Variablenzeile. Als Erstes führen wir eine MD5-Prüfsumme für das Passwort durch.
Denn das ist die Formel, merken Sie sich, und dann können wir die MT5-Prüfsumme mit dem Benutzernamen berechnen. Admin.
Okay, nachdem wir das Passwort und den Benutzernamen admin haben, führen wir base64 aus und testen dann, ob wir Base 64 hier als Session-ID-Cookie in den Headern einfügen. Ich werde es senden, wenn wir Zugriff auf ein positives Ergebnis erhalten. Wir werden daraus schließen. Dies ist das richtige Cookie in Base64. Ich werde in der Lage sein, die entsprechende Passwortzeile und die Grundlagen für uns herauszufinden. Lassen Sie uns fortfahren und dies ausführen.
Okay, was ist das alles?
Das sind also die Sitzungs-IDs. Okay. Die richtige Sitzungs-ID war diese hier, weil sie ein positives Ergebnis für einen positiven Treffer auf der Administrationsseite ergab. Wir konnten darauf zugreifen und dies ist das entsprechende Passwort aus der Liste. Dieses Passwort wurde nicht berechnet, wurde nicht in einer komplexen Rechenoperation gefunden, insbesondere war es nur in der Liste, aber wir konnten es finden, weil wir das Nötige durchgeführt haben.
Reputationen anhand der MD5-Prüfsumme und wir haben auf der Administrationsseite getestet und es gab einen positiven Treffer für dieses Cookie. Also nehmen wir dieses Passwort und melden uns an.
Also geh zurück.
Ausloggen.
Okay, wie Sie sehen, konnten wir uns anmelden, zur Verwaltung gehen und wir sehen, dass wir auf das Verwaltungspanel und das Verwaltungspanel zugreifen können. Wir haben vermutlich einen Service-Status-Checker. Er führt einen Systembefehl aus, aber wir wissen es noch nicht. Was ist daran so seltsam? Wir können vielleicht eine Schätzung abgeben, was für eine Art von Befehl es ist. Der verwendete Befehl könnte beispielsweise systemctl sein.
Status
SSH d
Systemstadt der Beobachter nicht aktiv gefunden. Sie ist inaktiv.
Es handelt sich also um eine Art Ausführung. Was wir hier also tun können, ist eine Befehlsinjektion. Um also abzurufen, muss ich zur Maschine oder zur Maschine des Angreifers zurückkehren. Also machen wir weiter und nclb ist 44 45.
Okay, das hier klingt also gut.
Lassen Sie uns weitermachen und das nehmen.
Also
Okay, sehen wir uns zuerst die IP-Adresse dieser Maschine an.
Und hier werden Sie dies vorübergehend sehen und wir werden die IP-Adresse kopieren.
10 10 12 42 43
Stellen wir sicher, dass dies die richtige IP ist. Wir wollen uns später nicht damit herumschlagen. 194 243. Okay. Also jetzt
Wir machen weiter und nehmen das.
Also gehe ich zurück.
Ja, ich habe es vergessen. Ich bin eine Angreifer-Maschine. Ich dachte, mir gehört meine virtuelle Maschine, also Bash. Also haben wir hier eingegeben, dass wir diesen Code nicht ausführen wollen, weil er nicht dem Befehl entspricht, den das System erwartet. Also werden wir das hier nicht alleine ausführen, weil es nicht funktionieren wird. Offensichtlich. Wir müssen den Dienst oder den Befehl verwenden, den das System erwartet.
Lassen Sie uns also hier Bash verwenden, um zu sehen.
und hier doppelte Anführungszeichen
Natürlich werden die Armen 45 45.
sshd-Check für den Dienst und
Führen Sie den nächsten Befehl aus.
wenig Arbeit
Partitur Arbeit
Lieber Zuhörer, ich führe diese jetzt nicht aus oder werde sie ausführen, 45 45, und gehe dann hierher zurück.
Und dies gab uns die Shell als Dub-Dub-Daten. Als Nächstes möchten Sie die Shell stabilisieren, also müssen Sie TTY eingeben.
Okay, hallo ist in Ordnung. Also haben wir hier eine Datei namens config, wenn wir config bekommen?
Sehen Sie sich ihre Informationen zu diesen Namen an. Wir haben gerade in den Notizen und Administratornotizen Rick gesehen und dies ist der Parser, also Sue Break.
Wir schnappen uns das Passwort und können es an den nächsten Benutzer weiterleiten.
Okay. Heute wird sie also die Berechtigungen dieses Benutzers überprüfen und erneut das Passwort einfügen. Wie Sie sehen, kann Rick diesen Befehl als Root ausführen, ohne das Passwort angeben zu müssen. Dabei gibt es eine Sache zu beachten. Wir haben das Zurücksetzen der Umgebung aktiviert und die Umgebungseinstellung ist auf den Pfad zum Laden der Bibliothek eingestellt. Das heißt, wir können angeben.

Der Locker konnte nicht ausgeführt oder verwendet werden, wenn wir Apache ausführen. Normalerweise sieht das so aus, wenn Sie eine ausführbare Datei ausführen.
Mit sudo suchen wir als nächstes nach dem entsprechenden Bibliothekspfad oder der Bibliotheksdatei im Standardbibliothekspfad. Okay, wenn Sie einen benutzerdefinierten Bibliothekspfad angeben können

Okay, Linux wird dazu in der Lage sein oder Linux wird den von uns angegebenen Pfad nehmen, aber damit das geschieht, muss die Umgebungszurücksetzung aktiviert sein, und in diesem Fall ist die Umgebungszurücksetzung aktiviert und wir können den Bibliothekspfad angeben, was bedeutet, dass wir den Bibliothekspfad für diesen Prozess angeben können. Okay, wir können eine bösartige Bibliotheksdatei erstellen.

Hier habe ich das also in meinen Notizen. Gehen wir zurück und verwenden LD-Unterstrich. Ja, LD-Preload und LD-Bibliothekspfad

Also werden wir grundsätzlich dies verwenden.

Nehmen wir also diesen Code.
Kopiere es.
Und auf meinem lokalen Rechner oder auf dem lokalen Rechner hier.
Ich werde eine Datei mit dem Namen erstellen.
Trotze dem Meer
Beeilen Sie sich, den durch diesen Code eingesparten Platz zu nutzen, und kompilieren Sie ihn anschließend in eine Bibliotheksdatei.
also hier
Ich denke, es wird besser, wenn wir das auf der Maschine selbst kombinieren. Um diesen Furz auf die Maschine übertragen zu können, verwenden wir also net cut und sehen mal.
Das ist LVP 4546.
genietet siehe
Zugriff verweigert
Bosch
Ziemlich gut. Siehe Erlaubnis verweigert. Okay, und dann gehe ich zurück und finde heraus, wie das geht, denn manchmal
ein Fehler und der Befehl funktioniert nicht. Also gehen wir vielleicht zu Linux und überprüfen die Übertragung.
Jep. Sie können das also auf dem Zielport auf der Maschine ausführen, aber es funktioniert nicht. 45 46 ist also aufwärts, wir verwenden es bereits und sehen LED 4547. Mal sehen.
Berechtigung verweigert, warum?
Und sehen Sie, die IP-Adresse ist diese.
447
Königin des Meeres
Ja, genau. Es wird nicht funktionieren, wenn es zuerst läuft und zuhört.
Aber Rick kann aus irgendeinem Grund nicht weglaufen und nachsehen.
wenn C Erlaubnis verweigert
CD Temp-Verzeichnis ändern
Vielleicht klappt es dann.
Oh, okay. Was jetzt, wir senden die Datei.
Und wir haben die Verbindung erhalten.
Okay, LS und beweisen Sie, dass das Meer hier ist. Jetzt. Wir werden es auf der Maschine kompilieren. Also zurück zur privilegierten Eskalation von Linux und zum Unterstrich.
neu laden
Das ist also der Befehl.
Er war ein brutaler C.
Komm schon, nein.
Also gc Dash, oh, es wird temporär sein.
Das wird geteilt, wenn Pi C. Okay, und dann schauen wir mal.
Kann ich die Ausgabedatei nach der Kompilierung in einem Verzeichnis ausgeben?
In Ordnung.
Das Verhältnis zum Peso wird 0 zu 1 sein.
eins und dann folgt der Rest des Befehls
also, wir haben diese Datei hier, als nächstes wollen wir eine Party verwenden, um diese Datei auszuführen. Wie Sie sehen, geben wir also den Bibliothekspfad an, aus dem wir die Bibliotheksdatei auswählen werden.
Das kommt hierhin.
zuerst zu tun
L okay
jetzt die Bibliotheksdatei hier, Leute.
Das, was wir geschaffen haben, wird beschmutzt werden.
Am Ende
also, das ist privat.
also ein
Oder ich denke, wir müssen das nicht angeben, weil es das von selbst erkennt.
Ja, geben Sie immer das Verzeichnis an, und als Nächstes möchten wir den Befehl ausführen.
Okay, das ist also der Befehl.
Okay, entfernen wir diese Datei.
Ich denke, wir müssen den Namen so belassen, wie er Library Crypt lautet. Okay, dieser Befehl wird noch einmal benötigt.
Wir werden sehen.
Wir werden sehen.
Und dann führen wir dieselbe Spalte aus oder versuchen es erneut.
Warten Sie darauf.
Und wie Sie sehen, hat sich die Eingabeaufforderung von Rick zu Root geändert und jetzt haben wir die Berechtigungen erfolgreich erhöht, also CD zu Root.
Und Sie haben die Maschine besiegt. Das ist alles.
So, Leute, das war es. Ich hoffe, ihr macht das Video und auf jeden Fall, Leute, wir sehen uns später.

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen