Discussione HackTheBox - Introduzione

CrashTest

Utente Gold
29 Dicembre 2013
584
36
208
309
1548345137189.png

Ciao a tutti, in questa seppur breve lettura scopriremo cosa è HackTheBox e come possiamo accedervi.

Cosa è.
HackTheBox è una piattaforma online, un laboratorio dove si possono testare e migliorare le proprie conoscenze riguardo il campo della Cyber Security (o Sicurezza Informatica per gli amanti della propria lingua).
L’accesso a questo sistema non segue il classico iter: Registrati→Accedi; per sbloccare il form ed effettuare la registrazione bisogna ottenere un codice d’invito che -come possiamo immaginare- dobbiamo procurarcelo con le cattive (e vedremo dopo come).
Solo una volta essere riusciti ad accedervi questa piattaforma ci mette a disposizione una rete per scambiare opinioni ed idee con gli altri challenger ed un’innumerevole numero di sfide sempre aggiornate dove, alcune si rifanno a casi che possono essere reali ed altre invece seguono il classico stile delle CTF. Il completamento di ogni sfida fornisce dei punti che ci permettono di scalare una classifica ed ottenere quindi sempre più prestigio.


Come accedervi.
Bene, come detto prima per accedervi dobbiamo procurarci il codice d’invito, vediamo come.
Una volta essere andati su hackthebox.eu scorriamo la pagina fino a trovare la sezione “Join Now”; una volta cliccato su Join ci troveremo davanti un form che ci chiede di inserire il codice d’invito.

1548353635283.png
Questo codice d’invito viene generato da una funzione JavaScript tramite un token che cambia ogni volta che aggiorniamo la pagina (cerchiamo quindi di non aggiornare e non chiudere la scheda una volta cominciato). A rigor di logica dunque cerchiamo qualche indizio tra le risorse .js del sito.
Apriamo dunque i DevTools premendo Ctrl+Shift+I, andiamo nella sezione “Debugger” ed espandiamo la cartella “js”. La prima cosa che notiamo è che all’interno esiste un file che si chiama inviteapi.min.js, clicchiamoci sopra e continuiamo a cercare indizi. A questo punto ci troveremo di fronte ad una schermata del genere:

1548350766488.png
Come possiamo vedere è un file javascript minimizzato ed offuscato, abbiamo bisogno quindi di un tool che ci aiuti a leggerlo meglio. A tal scopo copiamo il contenuto di questo file, andiamo poi su beautifier.io, clicchiamo nella textbox in basso, incolliamo il testo copiato precededentemente e clicchiamo su “Beautify Code”. A questo punto ci ritroviamo davanti una finestra di questo tipo:
1548350853054.png
Leggendo il codice contenuto in questo file siamo in grado di capire che vi sono due funzioni: la prima serve a verificare il codice d’invito -e non ci interessa-, la seconda invece serve a generarlo e la generazione avviene tramite una richiesta POST all’indirizzo riportato in figura: https://www.hackthebox.eu/api/invite/how/to/generate.

Per avere la conferma di quanto letto in quel codice possiamo seguire due percorsi: il primo ci dice di vedere cosa succede se proviamo a fare una richiesta POST a quell’URL, il secondo ci dice di provare a richiamare quella funzione. Analizziamoli singolarmente.

Per eseguire una richiesta POST abbiamo due alternative ed usare un metodo o l’altro è equivalente, otterremo sempre la stessa risposta:
  1. Usare curl tramite un terminale;
  2. Usare qualche estensione per il nostro browser (io che uso Firefox consiglio l’addon RESTClient).
Se vogliamo usare il terminale apriamolo e digitiamo il comando: $ curl -X POST https://www.hackthebox.eu/api/invite/how/to/generate

Se vogliamo usare l’addon RESTClient compiliamo i vari campi nella maniera riportata in figura:
1548351053074.png

Per provare invece a richiamare la funzione dobbiamo recarci nella scheda “Console” del tool d’ispezione e digitiamo makeInviteCode(). Ci troveremo d’avanti una finestra del genere:
1548352463303.png
In entrambi i casi siamo in grado di vedere che la funzione o la richiesta ci forniscono una risposta contente un dato che può essere cifrato con il metodo
  • ROT-13: che non è altro che lo stesso algoritmo del Cifrario di Cesare la cui chiave è 13 ed in questo caso utilizzeremo il tool all’indirizzo decode.org;
  • BASE64: in questo caso utilizzeremo il tool all’indirizzo base64decode.org
Copiamo quindi il testo scritto in magenta tra gli apici dopo data ed in base al valore riportato da enctype andiamo sul primo o secondo sito riportato nell’elenco qui sopra, incolliamolo e premiamo su Encrypt/Decrypt (o Decode).

Come potevamo aspettarci il contenuto di quel testo è il seguente: “In order to generate the invite code, make a POST request to /api/invite/generate”.
Arrivati a questo punto non ci resta altro che eseguire una richiesta POST all’indirizzo fornitoci, usando le modalità viste precedentemente.

1548351559577.png
Analizzando questa risposta possiamo notare che questa volta non ci viene fornito esplicitamente il metodo di offuscamento della stringa ma osservandola attentamente notiamo che termina con il padding “=” e questo ci permette di ipotizzare che sia stata codificata usando il metodo base64. Riutilizzando lo stesso tool di prima rendiamola leggibile ottenendo questa volta il vero codice d’invito. Ritorniamo dunque sulla pagina di HackTheBox ed inseriamo il codice ottenuto. Ci ritroveremo ora di fronte ad un messaggio di congratulazioni ed un form per poter effettuare la registrazione.
1548351660472.png
Arrivati a questo punto non mi resta che ringraziarvi per aver letto fin qui ed augurarvi buona fortuna nel completare le sfide.
Siete invitati gentilmente a segnalare l'eventuale presenza di errori e a rispondere alla discussione qualora incontraste dubbi e/o problemi
Saluti, CrashTest
 
La regola non era quella di non diffondere la soluzione per "hackerare" l'invido di iscrizione? ...
Credo valga solo per le sfide di hacking vere e proprie, quelle che sono sotto la categoria Active. Tanto chi riesce ad entrare solo leggendo la guida di qualcun altro incontrerà ben presto un altro muro cercando di avvicinarsi ad una macchina qualunque.
 
Ragazzi, ma non bisogna più hackerare il form di invito su HackTheBox per registrarsi? Ho notato che hanno introdotto la procedura classica di registrazione con nome, email ecc. peccato però...
Sono stati costretti per due motivi:
1) La soluzione per registrarsi era ormai saputa e risaputa, mezzo mondo ha reso pubblica la soluzione, motivo per cui era un po' inutile
2) Concorrenza. Con l'avvento di TryHackMe tutte le persone che non riuscivano a registrarsi su HTB andavano dalla concorrenza, facendo così perdere troppi iscritti
 
Ottimo metodo, non ci avrei pensato:rofl:

Mi chiedo però se proprio questo non sia un test (?) voluto dalla community (Ti lasciano questa possibilità) anche perché il metodo che utilizzi per generare il token è facilmente bloccabile. (Per questo suppongo sia voluto)
È una sfida voluta dai creatori della piattaforma. In realtà non esiste un vero sistema ad inviti, l'unico modo che hai per accedere al form di registrazione è bypassare questo codice d'invito.
Loro stessi sul sito scrivono:
... Click below to hack our invite challenge, then get started on one of our many live machines or challenges.
 
  • Mi piace
Reazioni: VER1X e Shikou

Ciao a tutti, in questa seppur breve lettura scopriremo cosa è HackTheBox e come possiamo accedervi.

Cosa è.
HackTheBox è una piattaforma online, un laboratorio dove si possono testare e migliorare le proprie conoscenze riguardo il campo della Cyber Security (o Sicurezza Informatica per gli amanti della propria lingua).
L’accesso a questo sistema non segue il classico iter: Registrati→Accedi; per sbloccare il form ed effettuare la registrazione bisogna ottenere un codice d’invito che -come possiamo immaginare- dobbiamo procurarcelo con le cattive (e vedremo dopo come).
Solo una volta essere riusciti ad accedervi questa piattaforma ci mette a disposizione una rete per scambiare opinioni ed idee con gli altri challenger ed un’innumerevole numero di sfide sempre aggiornate dove, alcune si rifanno a casi che possono essere reali ed altre invece seguono il classico stile delle CTF. Il completamento di ogni sfida fornisce dei punti che ci permettono di scalare una classifica ed ottenere quindi sempre più prestigio.


Come accedervi.
Bene, come detto prima per accedervi dobbiamo procurarci il codice d’invito, vediamo come.
Una volta essere andati su hackthebox.eu scorriamo la pagina fino a trovare la sezione “Join Now”; una volta cliccato su Join ci troveremo davanti un form che ci chiede di inserire il codice d’invito.

Questo codice d’invito viene generato da una funzione JavaScript tramite un token che cambia ogni volta che aggiorniamo la pagina (cerchiamo quindi di non aggiornare e non chiudere la scheda una volta cominciato). A rigor di logica dunque cerchiamo qualche indizio tra le risorse .js del sito.
Apriamo dunque i DevTools premendo Ctrl+Shift+I, andiamo nella sezione “Debugger” ed espandiamo la cartella “js”. La prima cosa che notiamo è che all’interno esiste un file che si chiama inviteapi.min.js, clicchiamoci sopra e continuiamo a cercare indizi. A questo punto ci troveremo di fronte ad una schermata del genere:

Come possiamo vedere è un file javascript minimizzato ed offuscato, abbiamo bisogno quindi di un tool che ci aiuti a leggerlo meglio. A tal scopo copiamo il contenuto di questo file, andiamo poi su beautifier.io, clicchiamo nella textbox in basso, incolliamo il testo copiato precededentemente e clicchiamo su “Beautify Code”. A questo punto ci ritroviamo davanti una finestra di questo tipo:
Leggendo il codice contenuto in questo file siamo in grado di capire che vi sono due funzioni: la prima serve a verificare il codice d’invito -e non ci interessa-, la seconda invece serve a generarlo e la generazione avviene tramite una richiesta POST all’indirizzo riportato in figura: https://www.hackthebox.eu/api/invite/how/to/generate.

Per avere la conferma di quanto letto in quel codice possiamo seguire due percorsi: il primo ci dice di vedere cosa succede se proviamo a fare una richiesta POST a quell’URL, il secondo ci dice di provare a richiamare quella funzione. Analizziamoli singolarmente.

Per eseguire una richiesta POST abbiamo due alternative ed usare un metodo o l’altro è equivalente, otterremo sempre la stessa risposta:
  1. Usare curl tramite un terminale;
  2. Usare qualche estensione per il nostro browser (io che uso Firefox consiglio l’addon RESTClient).
Se vogliamo usare il terminale apriamolo e digitiamo il comando: $ curl -X POST https://www.hackthebox.eu/api/invite/how/to/generate

Se vogliamo usare l’addon RESTClient compiliamo i vari campi nella maniera riportata in figura:

Per provare invece a richiamare la funzione dobbiamo recarci nella scheda “Console” del tool d’ispezione e digitiamo makeInviteCode(). Ci troveremo d’avanti una finestra del genere:
In entrambi i casi siamo in grado di vedere che la funzione o la richiesta ci forniscono una risposta contente un dato che può essere cifrato con il metodo
  • ROT-13: che non è altro che lo stesso algoritmo del Cifrario di Cesare la cui chiave è 13 ed in questo caso utilizzeremo il tool all’indirizzo decode.org;
  • BASE64: in questo caso utilizzeremo il tool all’indirizzo base64decode.org
Copiamo quindi il testo scritto in magenta tra gli apici dopo data ed in base al valore riportato da enctype andiamo sul primo o secondo sito riportato nell’elenco qui sopra, incolliamolo e premiamo su Encrypt/Decrypt (o Decode).

Come potevamo aspettarci il contenuto di quel testo è il seguente: “In order to generate the invite code, make a POST request to /api/invite/generate”.
Arrivati a questo punto non ci resta altro che eseguire una richiesta POST all’indirizzo fornitoci, usando le modalità viste precedentemente.

Analizzando questa risposta possiamo notare che questa volta non ci viene fornito esplicitamente il metodo di offuscamento della stringa ma osservandola attentamente notiamo che termina con il padding “=” e questo ci permette di ipotizzare che sia stata codificata usando il metodo base64. Riutilizzando lo stesso tool di prima rendiamola leggibile ottenendo questa volta il vero codice d’invito. Ritorniamo dunque sulla pagina di HackTheBox ed inseriamo il codice ottenuto. Ci ritroveremo ora di fronte ad un messaggio di congratulazioni ed un form per poter effettuare la registrazione.
Arrivati a questo punto non mi resta che ringraziarvi per aver letto fin qui ed augurarvi buona fortuna nel completare le sfide.
Siete invitati gentilmente a segnalare l'eventuale presenza di errori e a rispondere alla discussione qualora incontraste dubbi e/o problemi
Saluti, CrashTest

Aaahhhhh... Ecco perché non riuscivo a capire da dove si prendevano questi inviti... Ho detto "vabbè forse si paga"... Ahah... Grazie mille!
 
  • Mi piace
Reazioni: CrashTest e Shikou
ottimo sito per imparare, come anche root-me d'altronde , questo sistema di challenge a difficoltà a scalare è ottimo per l'apprendimento, all'inizio sarà difficile ma si possono vedere risultati molto presto anche
 
  • Mi piace
Reazioni: CrashTest

Ciao a tutti, in questa seppur breve lettura scopriremo cosa è HackTheBox e come possiamo accedervi.

Cosa è.
HackTheBox è una piattaforma online, un laboratorio dove si possono testare e migliorare le proprie conoscenze riguardo il campo della Cyber Security (o Sicurezza Informatica per gli amanti della propria lingua).
L’accesso a questo sistema non segue il classico iter: Registrati→Accedi; per sbloccare il form ed effettuare la registrazione bisogna ottenere un codice d’invito che -come possiamo immaginare- dobbiamo procurarcelo con le cattive (e vedremo dopo come).
Solo una volta essere riusciti ad accedervi questa piattaforma ci mette a disposizione una rete per scambiare opinioni ed idee con gli altri challenger ed un’innumerevole numero di sfide sempre aggiornate dove, alcune si rifanno a casi che possono essere reali ed altre invece seguono il classico stile delle CTF. Il completamento di ogni sfida fornisce dei punti che ci permettono di scalare una classifica ed ottenere quindi sempre più prestigio.


Come accedervi.
Bene, come detto prima per accedervi dobbiamo procurarci il codice d’invito, vediamo come.
Una volta essere andati su hackthebox.eu scorriamo la pagina fino a trovare la sezione “Join Now”; una volta cliccato su Join ci troveremo davanti un form che ci chiede di inserire il codice d’invito.

Questo codice d’invito viene generato da una funzione JavaScript tramite un token che cambia ogni volta che aggiorniamo la pagina (cerchiamo quindi di non aggiornare e non chiudere la scheda una volta cominciato). A rigor di logica dunque cerchiamo qualche indizio tra le risorse .js del sito.
Apriamo dunque i DevTools premendo Ctrl+Shift+I, andiamo nella sezione “Debugger” ed espandiamo la cartella “js”. La prima cosa che notiamo è che all’interno esiste un file che si chiama inviteapi.min.js, clicchiamoci sopra e continuiamo a cercare indizi. A questo punto ci troveremo di fronte ad una schermata del genere:

Come possiamo vedere è un file javascript minimizzato ed offuscato, abbiamo bisogno quindi di un tool che ci aiuti a leggerlo meglio. A tal scopo copiamo il contenuto di questo file, andiamo poi su beautifier.io, clicchiamo nella textbox in basso, incolliamo il testo copiato precededentemente e clicchiamo su “Beautify Code”. A questo punto ci ritroviamo davanti una finestra di questo tipo:
Leggendo il codice contenuto in questo file siamo in grado di capire che vi sono due funzioni: la prima serve a verificare il codice d’invito -e non ci interessa-, la seconda invece serve a generarlo e la generazione avviene tramite una richiesta POST all’indirizzo riportato in figura: https://www.hackthebox.eu/api/invite/how/to/generate.

Per avere la conferma di quanto letto in quel codice possiamo seguire due percorsi: il primo ci dice di vedere cosa succede se proviamo a fare una richiesta POST a quell’URL, il secondo ci dice di provare a richiamare quella funzione. Analizziamoli singolarmente.

Per eseguire una richiesta POST abbiamo due alternative ed usare un metodo o l’altro è equivalente, otterremo sempre la stessa risposta:
  1. Usare curl tramite un terminale;
  2. Usare qualche estensione per il nostro browser (io che uso Firefox consiglio l’addon RESTClient).
Se vogliamo usare il terminale apriamolo e digitiamo il comando: $ curl -X POST https://www.hackthebox.eu/api/invite/how/to/generate

Se vogliamo usare l’addon RESTClient compiliamo i vari campi nella maniera riportata in figura:

Per provare invece a richiamare la funzione dobbiamo recarci nella scheda “Console” del tool d’ispezione e digitiamo makeInviteCode(). Ci troveremo d’avanti una finestra del genere:
In entrambi i casi siamo in grado di vedere che la funzione o la richiesta ci forniscono una risposta contente un dato che può essere cifrato con il metodo
  • ROT-13: che non è altro che lo stesso algoritmo del Cifrario di Cesare la cui chiave è 13 ed in questo caso utilizzeremo il tool all’indirizzo decode.org;
  • BASE64: in questo caso utilizzeremo il tool all’indirizzo base64decode.org
Copiamo quindi il testo scritto in magenta tra gli apici dopo data ed in base al valore riportato da enctype andiamo sul primo o secondo sito riportato nell’elenco qui sopra, incolliamolo e premiamo su Encrypt/Decrypt (o Decode).

Come potevamo aspettarci il contenuto di quel testo è il seguente: “In order to generate the invite code, make a POST request to /api/invite/generate”.
Arrivati a questo punto non ci resta altro che eseguire una richiesta POST all’indirizzo fornitoci, usando le modalità viste precedentemente.

Analizzando questa risposta possiamo notare che questa volta non ci viene fornito esplicitamente il metodo di offuscamento della stringa ma osservandola attentamente notiamo che termina con il padding “=” e questo ci permette di ipotizzare che sia stata codificata usando il metodo base64. Riutilizzando lo stesso tool di prima rendiamola leggibile ottenendo questa volta il vero codice d’invito. Ritorniamo dunque sulla pagina di HackTheBox ed inseriamo il codice ottenuto. Ci ritroveremo ora di fronte ad un messaggio di congratulazioni ed un form per poter effettuare la registrazione.
Arrivati a questo punto non mi resta che ringraziarvi per aver letto fin qui ed augurarvi buona fortuna nel completare le sfide.
Siete invitati gentilmente a segnalare l'eventuale presenza di errori e a rispondere alla discussione qualora incontraste dubbi e/o problemi
Saluti, CrashTest
Ottimo metodo, non ci avrei pensato:rofl:

Mi chiedo però se proprio questo non sia un test (?) voluto dalla community (Ti lasciano questa possibilità) anche perché il metodo che utilizzi per generare il token è facilmente bloccabile. (Per questo suppongo sia voluto)
 
Ragazzi, ma non bisogna più hackerare il form di invito su HackTheBox per registrarsi? Ho notato che hanno introdotto la procedura classica di registrazione con nome, email ecc. peccato però...