Articles

0: Conoscenza di base

Posted on

Lo sviluppo di Exploit è difficile, imparare a farlo richiederà molto studio, pratica e una buona comprensione di una gamma abbastanza ampia di argomenti associati. La buona notizia è che non devi imparare tutto in una volta, o durante la notte, e che ci sono un sacco di persone che hanno fatto o sono sullo stesso viaggio doloroso – alcuni dei quali scrivono blog come corelan security o fuzzy security.

L’approccio generalmente raccomandato per un principiante è quello di iniziare all’inizio, il buffer basato su stack semplice di fine anni ‘ 90 reso popolare da “Smashing the stack for fun and profit” di Aleph One, e quindi di lavorare gradualmente per introdurre e sconfiggere progressivamente mitigazioni più moderne, nuovi vettori di sfruttamento e architetture. Mentre fai questo e pratichi contro gli exploit del mondo reale inizi a raccogliere alcune delle conoscenze accessorie dalla tua ricerca, e non dimenticare di prendere appunti, potresti trovare che aiuta a tenere un blog, o postare le procedure dettagliate dei tuoi exploit qui

Esattamente quale livello di abilità devi essere prima di iniziare a conoscere lo sfruttamento binario sarà sempre qualcosa che causa alcune preoccupazioni. Sei pronto? La risposta è generalmente sì e no, impari di più iniziando oggi e fallendo di qualsiasi quantità di procrastinazione, ma allo stesso tempo ogni volta che impari qualcosa di nuovo scopri due cose che non capisci. L’hacking è terribile per questo, più imparo più mi sento come un principiante completo. L’unica cosa per esso è quello di provare; il caso peggiore è che si scopre che è necessario imparare alcune altre cose prima, e non fa mai male a leggere un libro.

Risorse:

Una varietà di libri

Soggetti consigliati:

Una comprensione di C / C++

Memoria e di CPU e concetti come quelli di indirizzamento di memoria, registri e pile

Un linguaggio di scripting come Python, Perl, Ruby o Bash

Scioltezza nel tuo sistema operativo, e una conoscenza almeno di base di qualsiasi debugger si utilizza

La domanda di piattaforme di utilizzare come vittime è per lo più una scelta personale, alcune persone, come per saperne di Windows sfruttamento primo e poi passare a Linux, considerando che alcuni (come me) preferiscono iniziare con Linux sfruttamento prima di passare a Windows. A mio parere ci sono più e migliori risorse per imparare le basi su Linux, ma la scelta è davvero tua.

Risorse:

Smashing the Stack per Divertimento e Profitto

Sfruttare Esercizi Protostella: Stack livelli 0-5

Alcuni dei concetti coinvolti nell’imparare a fare questo tipo di sfruttamento semplice sarà estraneo a un novizio, ma con un po ‘ di tempo trascorso mani con un debugger si dovrebbe iniziare a ottenere una comprensione di alcune delle cose che si sta andando ad avere bisogno di leggere sui

2: Stringa di Formato Vulnerabilità

Risorse:

Introduzione agli exploit delle stringhe di formato

Esercizi di exploit Protostar: Livelli di formato 0-4

Gli exploit delle stringhe di formato sono un buon passo successivo dopo i semplici overflow del buffer perché condividono molte somiglianze, ma ti danno anche l’opportunità di giocare con manipolazioni arbitrarie della memoria. Format strings mostra anche alcune delle stranezze che possono causare situazioni sfruttabili

3: Ritorno a stack non eseguibili che sconfiggono LibC(alias DEP, W^X, NX)

Risorse:

(Exploit Exercises Protostar: Livello di Stack 6](https://exploit.education/protostar/stack-six/)

ret2libc è il primo semplice bypass con un exploit di mitigazione e si propone come un’introduzione ai concetti che costituiscono la base di un potente ritorno di programmazione orientato tecnica, ci sono un paio di varianti di questa tecnica, come ret2plt o ret2text

4: Return Oriented Programming (POR)

Risorse:

Sfruttare Esercizi Protostella: Stack level 7

/u/d4mianwayne ‘s ROP Introduzione

ROP è una tecnica chiave per lo sfruttamento moderno che può essere utilizzato per sconfiggere DEP così come ASLR, e un modo interessante per conoscere assembler e davvero iniziare a entrare in profondità con syscalls, registri e altri fondamenti di basso livello.

5: Sconfiggere stack canaries

Stack Canaries sono un exploit mitigazione che cerca di prevenire exploit con l’aggiunta di un piccolo controllo alla fine delle funzioni per buffer overflow. Essi sono disponibili in una varietà di forme e stili, come terminator canarini e canarini casuali. Imparare alcune tecniche per sconfiggerli o bypassarli è abbastanza essenziale.

Risorse:

Corelan note su questo

Nota: le risorse per questo sembrano limitati – eventuali suggerimenti o post sull’argomento benvenuto

6: Heap Sfruttamento Nozioni di base

Più moderno sfruttamento si concentra intorno al mucchio, piuttosto che la pila, dovuta in parte al miglioramento dello stato di strategie di riduzione del rischio per stack in base exploit, in parte perché gli standard di codifica hanno migliorato e ci sono sempre meno opportunità per il semplice stack smashing.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.