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.
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.
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.
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.
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.
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.
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.
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.
Videoprocedura dettagliata