Spoiler-Alarm
Ich empfehle jedem zu versuchen sich selber den Weg zum Invite-Code zu hacken. Erst wenn du es nach mehreren Versuchen noch nicht geschafft haben solltest, kannst du dieser „Anleitung“ folgen.
Ich werde diese „Anleitung“ in mehrere Spoiler-Abschnitte unterteilen, so dass du auch einzelne Sektionen angucken kannst, falls du nur bei einem bestimmten Teil nicht weiter kommst.

Was ist Hack The Box?

Hack The Box ist eine online Plattform um seine Skills im Bereich Hacking & IT-Scurity zu testen und zu verbessern.
Es bietet mehrere Challenges welche regelmäßig geupdatet und erneuert werden.
Manche dieser Challenges simulieren sogenannte „Real World“ Scenarios und manche von ihnen gehen eher in die spielerische CTF1 Richtung.

Lasst das Hacken beginnen!

  1. Besuche die Offizielle Hack The Box Seite. Hier findest du einige weitere Informationen über ihre Seite.
  2. Um Hack The Box beizutreten musst du oben rechts auf den Knopf Join Now Klicken
  3. Wenn du auf die Seite gehst, wirst du nach einem Invite-Code gefragt.

Ab hier werde ich Spoiler-Abschnitte einsetzen, damit du nicht aus versehen gespoilert wirst.
Du findest allerdings bereits auf der oben angesprochenen Seite genug hinweise um dir deinen eigenen Invite-Code zu generieren.

Console
Mit der Taste F12 oder alternativ der Tastenkombination STRG+SHIFT+I kannst du in fast jedem Browser den sogenannten „Inspector“ öffnen.
In dem Inspector findest du verschiedene Tabs.
Wechsle für den ersten Hinweis in den Tab „Console“.
Hier wird dir folgender Output angezeigt:

JavaScript
Durch den letzten Hinweis in der Console wissen wir, dass es wohl ein interessantes javascript geben soll.
Um dieses javascript schnell finden zu können empfehle ich in dem Inspektor den Tab „Network“ zu öffnen.
Hier kannst du weitere Filter setzen.
Klicke auf den kleinen Button „JS“ um nur Skripte anzeigen zu lassen.
Nun lädst du die Seite mit F5 oder STRG+R neu um alle Skripte anzeigen zu lassen.

Uns interessiert vor allem das Skript inviteapi.min.js.
Mit einem Doppelklick auf dieses Skript bekommen wir den Inhalt dieses Skriptes angezeigt.

//This javascript code looks strange...is it obfuscated???

eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('0 3(){$.4({5:"6",7:"8",9:\'/b/c/d/e/f\',g:0(a){1.2(a)},h:0(a){1.2(a)}})}',18,18,'function|console|log|makeInviteCode|ajax|type|POST|dataType|json|url||api|invite|how|to|generate|success|error'.split('|'),0,{}))

Wie in diesem Skript oben auskommentiert steht, sieht dieses sehr verschleiert aus.
Um diesen Code zu entschleiern nutzen wir einen Online JavaScript Beautifier.
In das Textfeld geben wir den verschleierten Code ein und klicken auf Beautify Code.
Heraus kommt ein gut lesbares JavaScript.

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

Nun wissen wir, dass es eine JavaScript Funktion namens makeInviteCode() gibt.
Versuchen wir doch mal diese in der Console auszuführen:

Nachdem wir alles ausgeklappt haben sehen wir die Ausgabe data: "...".
Netter weise wird uns auch direkt gesagt, dass dies allerdings verschlüsselt ist und uns wird sogar der Verschlüsselungstyp genannt.
Um den String zu entschlüsseln empfehle ich die Seite CyberChef.
Als Ausgabe bekommen wir: In order to generate the invite code, make a POST request to /api/invite/generate

Generieren des Invite-Codes
Nun wo wir wissen das wir zum generieren des Invite-Codes eine POST request an /api/invite/generate senden müssen, können wir uns endlich unseren Invite-Code abholen.
Eine POST request können wir auf verschiedene Arten und Weisen machen.
Ich erkläre in diesem Beitrag 2 Varianten.


1. Per Browser

Man kann eine POST request direkt von dem Firefox Inspector senden, indem man bei den Kopfzeilen/Headers auf das Dropdown-Menü „Erneut Senden“ klickt und „Bearbeiten und erneut senden“ auswählt.
Dort kann man als Methode „POST“ – und als Adresse „https://www.hackthebox.eu/api/invite/generate“ angeben.
Nach dem senden erscheint in der Netzwerkanalyse eine neue JSON-Datei namens „generate“.
Wenn man auf diese Datei klickt und dann in den Anfragedetails auf den Reiter „Antwort“ klickt, sieht man den Inhalt der JSON-Datei.

2. Per Linux CLI

Mit den meisten Linux-Basierten Systemen wird heutzutage das Tool „curl“ mitgeliefert.
Mit diesem kann man ebenfalls eine POST request senden.
Dafür muss man folgenden Befehl eingeben:
curl -XPOST https://www.hackthebox.eu/api/invite/generate
Als Ausgabe bekommen wir:
{"success":1,"data":{"code":"WE1ZR0UtWElOT1UtUkZYQUItU0VBSkstWkNBRlE=","format":"encoded"},"0":200}

Auch dieser String ist wieder verschlüsselt.
Wieso sollte man es uns auch leicht machen. Immerhin wollen wir auf dieser Seite ja auch unsere Hacking Skills prüfen oder verbessern.
Anhand des „=“ am Ende dieses Strings kann man erkennen, dass es sich hier ebenfalls um das Verfahren „Base64“ handelt.
Also wieder zurück zu CyberChef und den String dort encodieren lassen.

Et Voila… wir haben endlich unseren Invite-Code.

Kategorien: Hacking

0 Kommentare

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This website uses cookies. By continuing to use this site, you accept our use of cookies.