Articles

0: základní znalosti

Posted on

Exploit Development je těžké, naučit se, jak to udělat, bude vyžadovat hodně studia, praxe a dobré porozumění poměrně širokému spektru přidružených předmětů. Dobrou zprávou je, že se nemusíte učit všechno najednou nebo přes noc a že existuje spousta lidí , kteří udělali nebo jsou na stejné bolestivé cestě-někteří z nich píší blogy jako corelan security nebo fuzzy security.

obecně doporučeným přístupem pro začátečníky je začít na začátku, přetečení vyrovnávací paměti založené na jednoduchém zásobníku z konce 90. let popularizované alephovým „rozbíjením zásobníku pro zábavu a zisk“ a poté postupně pracovat na zavádění a porážce postupně modernějších zmírnění, nových vektorů využití a architektur. Když to uděláte a cvičíte proti skutečným exploitům, začnete sbírat některé pomocné znalosti z vlastního výzkumu a nezapomeňte si dělat poznámky, možná zjistíte, že pomáhá udržovat blog nebo zveřejňovat návody vašich exploitů zde

přesně to, na jaké úrovni dovedností musíte být, než se začnete učit o binárním vykořisťování, bude vždy něco, co způsobuje obavy některých lidí. Už jsi připravená? Odpověď je obecně ano a ne, dozvíte se více tím, že začnete dnes a selháváte, než jakékoli množství otálení, ale zároveň pokaždé, když se naučíte něco nového, objevíte dvě věci, kterým nerozumíte. Hacking je pro to hrozný, čím více se učím, tím více se cítím jako úplný nováček. Jediná věc, pro to je vyzkoušet; nejhorší případ je, že zjistíte, že je třeba se naučit nějaké jiné věci jako první, a to nikdy neuškodí číst knihu.

zdroje:

různé knihy

doporučené předměty:

porozumění C / C++

koncepty paměti a CPU, jako je adresování paměti, registry a zásobníky

skriptovací jazyk, jako je Python, Perl, Ruby nebo Bash

plynulost ve vybraném operačním systému a alespoň základní pochopení toho, který debugger používáte

otázka platforem, které chcete použít jako oběti, je většinou osobní volbou, někteří lidé se rádi učí vykořisťování systému Windows a poté se přesunou do Linuxu, zatímco někteří (jako před přechodem na Windows raději začněte s využíváním Linuxu. Podle mého názoru existuje více a lepší zdroje pro učení základů na Linuxu, ale volba je opravdu na vás.

zdroje:

rozbíjení zásobníku pro zábavu a zisk

Exploit cvičení Protostar: úrovně zásobníku 0-5

některé z konceptů zapojených do učení, jak to udělat tento druh jednoduchého vykořisťování, budou pro nováčka zcela cizí, ale s nějakou dobou strávenou rukama s debuggerem byste měli začít chápat některé z věcí, které budete muset přečíst o

2: zranitelnosti řetězců formátu

zdroje:

Úvod do formátu String využije

využít cvičení Protostar: úrovně formátu 0-4

formát string využije jsou dobrým dalším krokem po jednoduchém přetečení vyrovnávací paměti, protože sdílejí mnoho podobností, ale také vám dávají příležitost hrát si s libovolnými manipulacemi s pamětí. Formát řetězce také ukazuje některé z podivností, které mohou mít za následek využitelných situacích

3: Návrat do LibC-porážet Non-spustitelné zásobníky (aka DEP, W^X, NX)

zdroje:

(Exploit cvičení Protostar: Úroveň zásobníku 6](https://exploit.education/protostar/stack-six/)

ret2libc je první jednoduchý bypass zmírnění exploit a slouží jako úvod do pojmů, které tvoří základ výkonné návrat orientované programovací techniky, existuje několik variant této techniky, jako je ret2plt nebo ret2text

4: Návrat orientované programování (ROP)

zdroje:

Exploit cvičení Protostar: Úroveň zásobníku 7

/u/d4mianwayne ‚s ROP Úvod

ROP je klíčová technika pro moderní vykořisťování, které lze použít k porážce DEP i ASLR, a zajímavý způsob, jak se dozvědět o assembleru a opravdu začít se dostat do hloubky pomocí syscalls, registrů a dalších základů nízké úrovně.

5: Defeating stack canaries

Stack Canaries jsou zmírňování zneužití, které se snaží zabránit zneužití přidáním malé kontroly na konec funkcí pro přetečení vyrovnávací paměti. Přicházejí v různých tvarech a stylech, jako jsou terminátorské kanáry a náhodné kanáry. Naučit se několik technik, jak je porazit nebo obejít, je docela zásadní.

zdroje:

corelanovy poznámky k tomuto

Poznámka: zdroje se zdají být omezené – jakékoli návrhy nebo příspěvky na toto téma jsou vítány

6: základy vykořisťování haldy

modernější vykořisťování se zaměřuje spíše na haldu než na zásobník, částečně kvůli zlepšujícímu se stavu zmírnění exploitů založených na zásobníku, částečně proto, že se zlepšily standardy kódování a existuje méně příležitostí pro jednoduché rozbíjení zásobníku.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.