Come è stato eseguito il pentest nell'era senza strutture come Metasploit?

3

Recentemente mi sono interessato alla sicurezza, ho letto principalmente libri di cucina sul framework Metasploit, come l'ingegneria sociale è stata impiegata in modo esaustivo, ho iniziato a leggere alcuni concetti IA-32, ma poi ad un certo punto mi confondo. Se prendo in considerazione un attacco senza interazione con l'utente - nessuna possibilità di attacco sul lato client -, nessuna struttura come Metasploit disponibile, nessuna nmap, nessun nessus. Cosa e come si verifica un pentito? Cosa c'è nel nucleo?

Ipoteticamente parlando, un mio amico gestisce un server web amatoriale che ha codificato, pieno di difetti e vulnerabilità. Questo server è in esecuzione sulla porta 80. Sono andato a casa sua, ho ricevuto una copia del software senza autorizzazione e ho scritto le sue informazioni sulla rete. A casa ho scrutato il codice e ho trovato una vulnerabilità di overflow dello stack.

Ma quale sarà il prossimo? Qui riesco a malapena a concatenare. Il mio exploit, come client (browser), deve connettersi al suo server web sulla porta 80 per sfruttare la vulnerabilità e distribuire il carico utile (uno contrario)? Quest'ultimo avrà bisogno di fungere da server per connettersi al mio altro client che sta ascoltando, in attesa di una shell? Sono abbastanza confuso riguardo al "nudo pentest", sento che ci sono incomprensioni che sfortunatamente ho fatto che vorrei alcune spiegazioni per colmare le lacune in modo che potessi andare avanti. Oltre a ciò, l'inglese non è la mia prima lingua. Grazie in anticipo.

    
posta Daniel 30.12.2012 - 23:35
fonte

2 risposte

7

Prima di Metasploit e altri framework, abbiamo usato strumenti separati, scritto i nostri strumenti o fatto le cose manualmente.

Gli scanner di porta e gli strumenti di identificazione del servizio di rete sono in circolazione da molto tempo - quasi quanto il campo della sicurezza informatica stessa. Anche se non avessi accesso a nmap, potresti eseguire lo script di un semplice port scanner nella maggior parte delle lingue entro un paio d'ore.

Un framework fa poca differenza sul modo in cui svilupperesti e useresti un exploit per una nuova vulnerabilità. L'unico cambiamento nell'uso di un framework è che devi rendere il modulo exploit compatibile con quel framework.

Innanzitutto, identificherebbe l'offset del buffer per il controllo EIP. In un framework, è possibile utilizzare uno strumento come pattern_create.rb per generare un blob di dati speciale e quindi calcolare l'offset basato su EIP. Senza uno strumento del genere, è sufficiente utilizzare prove ed errori: creare un blob di dati che inizia con un gruppo di valori 0x41414141 e passa successivamente ai valori 0x42424242. Esegui l'exploit, controlla lo stack, quindi ricalcola il numero di valori 0x41414141. Continua finché non trovi il numero corretto di byte prima dell'offset EIP. Da lì puoi controllare EIP e configurarlo per eseguire una catena ROP su VirtualProtect o solo su jmp esp se DEP è disabilitato. Il tuo carico utile potrebbe essere un guscio inverso o qualsiasi cosa tu voglia. Dovresti impostare uno script che ascolti su una porta TCP per la tua connessione in entrata e collegalo a stdin / stdout per poter interagire con la shell.

Complicato, ma questo è ancora come è fatto oggi - prendiamo semplicemente i risultati di quel processo e li incolliamo in un modulo metasploit alla fine.

P.S. Per maggiori informazioni sulla scrittura di exploit per il codice nativo sulla piattaforma Windows, consiglio vivamente di dare un'occhiata a CoreLAN Exploit Writing Tutorials .

    
risposta data 31.12.2012 - 00:21
fonte
7

Allo stesso modo in cui si verifica una sfida Capture the Flag, costruisci tutto da solo .

Alla fine, metasploit, nessus e nmap sono tutti strumenti o una collezione di strumenti per eseguire più facilmente alcune attività. Ma puoi "facilmente" scriverli da solo. Un semplice port scanner è abbastanza facile da scrivere. Il fatto è che Nessus e Metasploit riducono il tempo che devi trascorrere come pentester e gli exploit sono pronti per l'uso, questo significa che non hai bisogno di molta abilità per applicare gli exploit.

Ciò che stai cercando di fare richiede una comprensione molto profonda e temo che non possiamo spiegarti come realizzare un simile exploit in pochi passaggi. Ti consiglio di studiarlo un po 'oltre. Libri come il Manuale di Shellcoders sono davvero bravi a spiegare questo, ma non è per i deboli di cuore.

    
risposta data 31.12.2012 - 00:17
fonte

Leggi altre domande sui tag