Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
TwoMillion-Machine-Writeup — Von der Deobfuskierung von code.js bis zu Root, CVE-2023-0386 | Kitploit
Tools/GitHubGitHub/anxs3c/twomillion-machine-writeup
Privilege EscalationAufklärungExploitationLaterale BewegungReverse EngineeringWebanwendungs-ExploitationCTFPenetrationstestsLernen & BildungLabs & Praxis
GitHubanxs3c/twomillion-machine-writeup
17vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

TwoMillion-Machine-Writeup

Von der Deobfuskierung von code.js bis zu Root, CVE-2023-0386

Repository anzeigen

Über die Maschine

TwoMillion ist eine Linux-Box mit dem Schwierigkeitsgrad Easy, die zur Feier von 2 Millionen Nutzern auf HackTheBox veröffentlicht wurde. Die Box enthält eine alte Version der HackTheBox-Plattform, die den alten hackbaren Einladungscode enthält. Nach dem Hacken des Einladungscodes kann ein Konto auf der Plattform erstellt werden. Das Konto kann verwendet werden, um verschiedene API-Endpunkte zu enumerieren, von denen einer genutzt werden kann, um den Benutzer zum Administrator hochzustufen. Mit administrativem Zugriff kann der Benutzer im Admin-VPN-Generierungs-Endpunkt eine Befehlsinjektion durchführen und so eine System-Shell erlangen. Eine .env-Datei enthält Datenbank-Anmeldedaten, und aufgrund von Passwort-Wiederverwendung können sich Angreifer als Benutzer admin auf der Box anmelden. Der Systemkernel ist veraltet, und CVE-2023-0386 kann verwendet werden, um eine Root-Shell zu erlangen.

Scan-Ergebnisse

portservicedetails
22/tcpsshsyn-ack ttl 63 OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcphttpsyn-ack ttl 63 nginx 2million.htb

Host-Einrichtung

Ich habe 2million.htb zu meiner /etc/hots-Datei hinzugefügt


Pfad-Erkennung

Ich habe eine Pfad-Erkennung über 2million.htb mit gobuster durchgeführt

Während der Enumeration habe ich den Endpunkt /invite entdeckt


Nach dem Navigieren zur Seite /invite


Als ich die Seite untersuchte, bemerkte ich, dass sie eine JavaScript-Datei namens inviteapi.min.js geladen hatte, die verschleierten Code enthielt:

eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1 i(4){h 8={"4":4};$.9({a:"7",5:"6",g:8,b:\'/d/e/n\',c:1(0){3.2(0)},f:1(0){3.2(0)}})}1 j(){$.9({a:"7",5:"6",b:\'/d/e/k/l/m\',c:1(0){3.2(0)},f:1(0){3.2(0)}})}',24,24,'response|function|log|console|code|dataType|json|POST|formData|ajax|type|url|success|api/v1|invite|error|data|var|verifyInviteCode|makeInviteCode|how|to|generate|verify'.split('|'),0,{}))

Deobfuskation

Ich habe den Code mit de4js deobfuskiert, was das folgende lesbare JavaScript ergab:


function verifyInviteCode(code) {
    var formData = {
        "code": code
    };
    $.ajax({
        type: "POST",
        dataType: "json",
        data: formData,
        url: '/api/v1/invite/verify',
        success: function (response) {
            console.log(response)
        },
        error: function (response) {
            console.log(response)
        }
    })
}

function makeInviteCode() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '/api/v1/invite/how/to/generate',
        success: function (response) {
            console.log(response)
        },
        error: function (response) {
            console.log(response)
        }
    })
}

makeInviteCode() : erzeugt einen neuen Einladungscode
verefyInviteCode(code) : prüft, ob ein Code gültig ist

Um mehr zu verstehen, habe ich die Verifizierungsanfrage abgefangen:


Die API verwendet JSON-Antworten


Einladungscode generieren und ROT13-Entschlüsselung

Ich ging zur Browser-Konsole und führte makeInviteCode() aus


Ich bemerkte, dass die Daten mit ROT13 verschlüsselt waren


Nach der Entschlüsselung fand ich den Endpunkt /api/v1/invite/generate; anschließend generierte ich den Einladungscode


Base64-Entschlüsselung

Schlüssel
Der Schlüssel 2F4BN-YI8OH-B0SCL-L8OE6 wurde eingegeben und erfolgreich akzeptiert

Registrierung

Startseite

Zugriffsseite
Nur wenige Seiten dieser Website funktionieren richtig; die Zugriffsseite ist der Ort, an dem es interessant wird

Enumeration der API-Endpunkte
Ich habe eine VPN-Datei hochgeladen, indem ich auf den Button connection pack geklickt habe, und die GET-Anfrage abgefangen.


Anschließend habe ich eine curl-Anfrage mit den Optionen verbose und silent ausgeführt, um verfügbare API-Endpunkte zu enumerieren.



Der Server antwortete mit einer JSON-Liste der API-Endpunkte.

Der Admin hatte 3 API-Endpunkte mit den Methoden GET, POST und PUT.

Als ich versuchte, mit dem Admin-Endpunkt /api/v1/admin/vpn/generate einen Admin-Schlüssel zu generieren, wurde der Schlüssel nicht generiert, weil ich nicht der Admin war; der erste Admin-Endpunkt /api/v1/admin/auth bestätigte dies.





Vertikale Privilegieneskalation in der Webanwendung: aktuellen Standardbenutzer zum Administrator hochstufen


Nachdem ich das korrekte Format der PUT-Anfrage mit Content-Type: application/json und den erforderlichen Parametern herausgefunden hatte, habe ich meinen Benutzer erfolgreich zum Administrator hochgestuft.

Tool herunterladen