HackerSecret.it - Il Sito Italiano Più Autorevole sul Mondo dell'Hacking, del Penetration Testing e della CyberSecurity

  • Home
  • Scarica l’App gratuita
  • Visita il Nostro Shop
  • Contattaci per info
VISITA IL NOSTRO SHOP ! CLICCA QUI !

Protostar – Heap Buffer Overflow – Heap 2

da Lo Staff di HackerSecret.it / martedì, 01 Settembre 2020 / Pubblicato il Hacking

Proseguiamo con un altro esercizio della serie Protostar. Questa volta andremo ad analizzare una vulnerabilità presente nell’heap quando un programma continua ad utilizzare un puntatore dopo che è stato liberato (con l’istruzione free), Use-After-Free appunto.

Il puntatore originale alla memoria liberata viene utilizzato di nuovo e punta ad un punto all’interno della nuova allocazione. Man mano che i dati vengono modificati, questo corrompe la memoria e può portare ad un comportamento indefinito nel processo e, in condizioni ideali (per noi), ad un’esecuzione di comandi.

Heap 2

Heap 2

Questo programma permette diversi comandi:

  • Auth: a riga 24, viene allocata una quantità di memoria di lunghezza auth e, se l’input è <31 viene l’input viene assegnato alla struct auth.name
  • Reset: a riga 31, che esegue la free.
  • Service: a riga 34, che copia la stringa inserita in input
  • Login: a riga 37, utilizzato per controllare se la variabile auth.auth è assegnata e di conseguenza l’utente è loggato. Ed è proprio questo che dovremo stampare per superare la sfida

Facciamo un test rapido con ltrace

Esecuzione con ltrace

Come si può notare, una volta che viene inserito il comando reset, auth sarà sempre sovrascritto sullo stesso indirizzo, e potremo sfruttare questo problema per cercare di sovrascrivere auth.auth e superare il livello.

Passando su gdb ed eseguendolo con lo stesso payload

Struttura di auth

In questo caso service non è ancora stato allocato. Proviamo ad inserire service CC

Service allocato

Ed ecco che, poiché auth ora è allocato sempre alla stessa posizione, possiamo calcolare l’offset tra service e auth.auth (che è la variabile che dovremo sovrascrivere).

osboxes@osboxes:~/Desktop/Protostar$   echo $  ((0x804b848 - 0x804b838)) 16

Dovendo essere almeno 16 caratteri, ne andiamo ad inserire 17

Inserimento di 17 caratteri in service

E tornando ad analizzare lo heap

Auth.auth è stata sovrascritta

Vediamo che service ha sovrascritto auth.auth, che adesso contiene le nostre D. E infatti, se proviamo ad effettuare il login

Livello superato!

La stessa modalità la possiamo eseguire al di fuori di GDB, con un payload molto semplice.

Livello superato!

Conclusioni

La vulnerabilità Use-After-Free è una delle più frequenti, anche nei sistemi e programmi moderni. Come abbiamo potuto notare non è semplice da identificare, ma proprio per questo motivo rimane la più comune e pericolosa della categoria dello heap. Per chi volesse comprendere meglio, consiglio questo post di SensePost, che include anche due esercizi aggiuntivi.

Hits: 601

social-container synved-social-container-share” style=”text-align: right”>Facebooktwitterredditlinkedintumblrmail

L’articolo Protostar – Heap Buffer Overflow – Heap 2 proviene da HackTips.

HackTips

https://youtu.be/ocaU5KZO4k8
Taggato in: Buffer, Heap, Overflow, Protostar

Cerca nel Sito

Clicca subito qui per visitare il nostro Shop!

Clicca subito qui per visitare il nostro Shop!

Altri 2300 utenti come te lo hanno già fatto quest'anno!

Gli ultimi articoli

  • I più famosi hacker italiani

  • Cos’è l’informatica forense?

  • Come capire se ti spiano il cellulare?

  • Il concetto di sicurezza informatica

  • Metasploit tutorial in italiano

Tutte le tecniche, i prodotti e i servizi descritti o contenuti in questo sito si intendono per uso esclusivo di studio e di aggiornamento professionale e per testare la sicurezza della propria rete informatica in accordo alle vigenti normative sull'accesso a sistemi informativi e telematici (cfr. art. 615 ter c.p. e successive modifiche).

TORNA SU
WeCreativez WhatsApp Support
Possiamo supportarti per ogni tua esigenza. Contattaci subito specificando il supporto, prodotto o servizio che ti serve!
Ciao, come possiamo aiutarti?
Ciao, come possiamo aiutarti?