Voglio iniziare a imparare le applicazioni per Windows fuzzing, da dove dovrei iniziare?

4

Ho ottenuto il mio B.Sc. in informatica e ho familiarità con il linguaggio di assemblaggio di base. Voglio iniziare a imparare come trovare le vulnerabilità nelle applicazioni Windows, ad es. buffer overflow, use-after-free, ecc. Sto cercando un percorso, cioè materiali per l'apprendimento delle basi e quindi fonti più avanzate da cui imparare. Qualsiasi aiuto è apprezzato.

    
posta Moe 11.04.2016 - 00:19
fonte

3 risposte

2

Gli approcci e le tecniche nel libro Windows Stack Exploitation: Bypass Protection sono semplici e ben radicati.

Mentre gli esempi del libro utilizzano Sulley , ti consiglio anche di guardare FuzzLabs come suite introduttiva di test fuzz per applicazioni Windows. La suite di test fuzz più avanzata è Driller , che credo verrà rilasciata durante la DARPA Cyber Grand Challenge in Ago 2016 - ma ci sono molte altre tecniche valide .

L'uso del framework qemu-user con pwndbg può consentire la prototipazione rapida e l'esecuzione di file eseguibili di Windows sotto un classico ambiente Linux. Il framework binary.ninja è una soluzione commerciale di cui molti stanno parlando come la prossima generazione di sviluppo dello sfruttamento. Tuttavia, binja è orientato verso l'exploit dev utilizzando tecniche di analisi binaria - ancora molto valide - e raccomando alcuni libri più vecchi come Identificare codice malevolo attraverso l'ingegneria inversa o persino la Guida alla vulnerabilità del software.

    
risposta data 10.07.2016 - 06:44
fonte
0

Non sono sicuro di poter elencare / promuovere libri o corsi specifici qui in questo forum. Ma sono sicuro che se cerchi le vulnerabilità e la confusione dell'applicazione Internet di Windows, sarai in grado di trovare molti tutorial. Per quanto riguarda i suggerimenti su cosa focalizzare, capisci:

  • in che modo lo stack e l'heap sono allocati nello spazio degli indirizzi del programma?
  • Qual è il ruolo del puntatore di istruzioni (EIP), puntatore dello stack (ESP) ecc.
  • Quali sono le convenzioni di chiamata?
  • Come si verificano i collegamenti DLL in fase di runtime?
  • Che cos'è la comunicazione tra processi (IPC) in Windows? Cosa sono Named Pipes?
  • Quali API Win32 vengono chiamate in un'applicazione Windows tipica a input di processo, sia dall'utente che dalla rete?
  • Come utilizzare un debugger per ispezionare il contesto di un'esecuzione programma / processo? Come funziona il debugger.
  • Concetti di fuzzer basati sulla mutazione e fuzzer basati sulla generazione.

    Tutti questi sono utili per iniziare. Una volta compresi i concetti di base, non sarà troppo difficile per te seguire i materiali che puoi trovare online. In generale, gli stessi concetti si applicano anche ad altri sistemi operativi. Ma dal momento che hai chiesto specificamente per Windows quindi ho menzionato solo Windows. Almeno questi concetti sono utili per capire l'exploit di Windows, spero che possano esserti d'aiuto anche per te.

risposta data 11.04.2016 - 03:09
fonte
0

Peach è un defacto fuzzer che fornisce la possibilità di sfocare praticamente qualsiasi applicazione e / o protocollo. Suggerirei di iniziare con link

    
risposta data 11.04.2016 - 04:36
fonte

Leggi altre domande sui tag