Abbiamo trattato la sfida boot2root Atena di TryHackMe. Abbiamo scansionato la macchina con Nmap e scoperto il server SMB dal quale abbiamo estratto una nota che ci indirizzava a una directory sul server web dove abbiamo scoperto uno strumento ping in esecuzione. Abbiamo utilizzato la sostituzione dei comandi per iniettare una shell di collegamento e ottenere il primo punto d'appoggio. Abbiamo scoperto uno script di backup eseguito periodicamente come un altro utente. Abbiamo modificato lo script per eseguire la shell inversa e aperto un'altra sessione come utente Athena. Dopo l'enumerazione, abbiamo scoperto che l'utente Athena può caricare i moduli del kernel come sudo utilizzando insmod senza la necessità della password di root. Abbiamo scaricato il modulo kernel “venom.ko” e utilizzato Ghidra per decodificare il binario. Abbiamo scoperto che si tratta di un rootkit e dopo l'analisi del codice siamo stati in grado di interagire con il modulo per richiamare una funzione che aumentava i privilegi da Athena a Root.

Ottieni note OSCP

Trascrizione video
La prima cosa che facciamo sempre è la scansione di Nmap come puoi vedere qui. Ho disabilitato il ping sulla macchina perchè a volte la macchina non risponde alle richieste di ping oppure a volte ci sono dei filtri che bloccano il ping. Possiamo vedere che abbiamo due porte aperte, 22 e 80. Quindi questa è la pagina principale. Sono solo letture e vai a dire che non c'è niente qui. La pagina dei contatti è la stessa. Se provi a utilizzare la ricerca nelle directory utilizzando gobuster o dirbuster e non troverai nulla di importante. Quindi andiamo a. Il server SMB Un server di condivisione file che utilizza SMB, quindi interagiamo con la condivisione utilizzando questo comando.
Ovviamente possiamo accedere senza password. Inserisci senza password o senza spazi potrai accedere come utente anonimo.
Vediamo due azioni pubbliche e IPC. Ovviamente quella che interessa molto è la quota pubblica. E forniamo il nome della condivisione. Forniamo una password vuota e accediamo con successo alla condivisione.
Quindi qui, una volta effettuato l'accesso, il prompt cambia dal prompt della macchina o dal prompt della mia macchina al server SMB, perché ora ho effettuato l'accesso al server. Ora posso interagire con il server SMB. Quindi utilizzo LS per elencare i file. E possiamo vedere. Un file di testo recuperiamo il file di testo utilizzando il comando get seguito da define. Quindi visualizziamo il contenuto del file.
E questa è la nota qui dell'amministratore.
Vorrei informarvi che è in fase di sviluppo un nuovo sistema ping e ho lasciato l'applicazione corrispondente.
In un percorso specifico, al quale si può accedere tramite il seguente indirizzo.
Ecco cosa vedi quando prendi questo indirizzo e accedi tramite il browser. Questo è un semplice strumento ping. non è stata l'implementazione del comando ping utilizzando la riga di comando utilizzando le Applicazioni, quindi in pratica andiamo qui e interagiamo con esso. Quindi da uno a sette zero zero uno. E ora sta eseguendo The Ping.
Se torni indietro. e provare alcuni metodi di iniezione dei comandi come il concatenamento dei comandi in modo che gli analisti del punto e virgola inviino e il tentativo venga bloccato dal tentativo di hacking, quindi ecco il
sembra che il carattere sia filtrato se proviamo con la e commerciale e inviamo di nuovo un tentativo di hacking, quindi c'è un filtro.
Ciò esclude tutti i caratteri proibiti utilizzati nell'iniezione di comandi o anche nelle shell inverse. Quindi, se questi caratteri vengono filtrati, significa che non è possibile utilizzare nemmeno le shell inverse.
Qual è la soluzione qui? La soluzione è utilizzare la sostituzione dei comandi. Ho spiegato la sostituzione comune nei video precedenti ragazzi. Puoi rispondere a loro in particolare questo video.
Bypassare i filtri SQL utilizzando la sostituzione dei comandi
Era una dimostrazione Giochi CTF via cavo Natas livello 16. Va bene, quindi useremo la sostituzione dei comandi qui.
Come puoi vedere cosa ho fatto. Ho usato l'indirizzo IP. Questo è l'input che l'applicazione si aspetta dall'IP su cui eseguire il ping. Questo è quello perché -C1 è un'opzione. Possiamo usare nel comando ping. Quindi qui inviamo un pacchetto e inizia la sostituzione del commento. Quindi la sostituzione della virgola inizia con il segno $ E tra due parentesi, forniamo il comando che vorremmo eseguire poiché i caratteri come la e commerciale, la barra verticale e il punto e virgola sono bloccati o filtrati, dobbiamo usare qualcosa di diverso.
Usiamo una shell di rilegatura, la shell di rilegatura è il contrario è l'opposto della shell inversa. Facciamo in modo che il client o la macchina si ricolleghi a noi.
Nella shell di collegamento ci colleghiamo alla macchina, il che significa che la macchina ora svolgerà il ruolo di ascoltatore. Quindi NC - LP quattro cinque quattro cinque la porta e io vogliamo che la macchina sia in ascolto e una volta ricevuta la connessione. Eseguirò /bin/bash. quindi lo facciamo come puoi vedere ora che sta girando indicando che l'ascoltatore è in esecuzione ora, quindi vai alla mia macchina, questa è la shell della macchina.
E come potete vedere ragazzi, mi connetto con la macchina usando questo comando. Ecco come funziona la shell di collegamento.
E come potete vedere ragazzi, sono in grado di connettermi e ottenere il primo put hold, quindi sono wwdata, che è l'utente del server web Apache. Ho caricato pspy64 per elencare i processi e i cronjob attuali.
Notiamo uno schema con uno script di backup. Quindi c'è questo script di backup eseguito a intervalli regolari dall'utente UID 1001.
Quindi Athena è l'utente il cui uid è 1001. Ciò significa che lo script viene eseguito periodicamente dall'utente Athena. Passiamo alla directory in cui è archiviato il backup della condivisione utente dello script.
plus -la user share backup e qui vediamo lo script di backup. Sorprendentemente, l'attuale utente www-data è il proprietario dello script, il che significa che possiamo modificare lo script. Qual è lo scopo di modificare lo script dal momento che questo script viene eseguito regolarmente da Athena e poiché possediamo ancora un utente www con pochi privilegi, vorremmo spostare i privilegi verso l'alto, nel senso che vogliamo passare da www -dati ad Atena.

Poiché la sceneggiatura viene eseguita come Athena. Significa che se possiamo modificare il contenuto dello script e inserire una shell inversa quando lo script viene eseguito nuovamente. Eseguirà la shell inversa. L'utente Athena può eseguire il comando insmod come sudo senza la necessità di fornire la password di root, quindi abbiamo scaricato il modulo venom.ko sulla mia macchina per il reverse engineering utilizzando Ghidra.

Possiamo vedere prima le funzioni e abbiamo inizializzato diamorfina. La diamorfina è un rootkit. Come facciamo a sapere che questo è il rootkit che usiamo Google
Quindi questa è la pagina principale di diamorfina. Come da descrizione si tratta di un rootkit LKM per kernel Linux. Ed ecco le istruzioni su come installarlo e sbloccarlo come puoi vedere qui il modello inizia invisibile. Per rimuoverlo è necessario renderlo visibile.
Quindi questa è l'idea di un rootkit che è un malware o un malware che si nasconde dai processi o dai moduli. Quindi, anche se si enumerano i processi o si tenta di trovare i moduli attualmente in esecuzione, il rootkit non verrà visualizzato. Ok, perché è un rootkit. E i rootkit utilizzano il Process Hollowing e il Process Injection per nascondersi agli occhi degli investigatori. Quindi questo comando è molto importante perché questo comando rivelerà il modulo.
uccidi -63 0
Allo stesso modo, secondo il codice e la funzione hacked_kill e give_root, dobbiamo eseguire il comando seguente per aumentare i privilegi
uccidi -75 0
Risposte in camera
Qual è il flag utente?
Qual è il flag di root?

Videoprocedura dettagliata

Circa l'autore

Creo note sulla sicurezza informatica, note di marketing digitale e corsi online. Fornisco anche consulenza di marketing digitale, inclusi ma non limitati a SEO, annunci Google e Meta e amministrazione CRM.

Visualizza articoli