Articles

0: baskunskap

Posted on

Exploit Development är svårt, att lära sig att göra det kommer att kräva mycket studier, övning och god förståelse för ett ganska brett spektrum av associerade ämnen. Den goda nyheten är att du inte behöver lära dig allt på en gång eller över natten, och att det finns många människor som har gjort eller är på samma smärtsamma resa – av vilka några skriver Bloggar som corelan security eller fuzzy security.

det allmänt rekommenderade tillvägagångssättet för en nybörjare är att börja i början, i slutet av 90-talets stil enkla stackbaserade buffertspill populariserade av Aleph ones ”Smashing the stack for fun and profit”, och sedan gradvis arbeta med att introducera och besegra progressivt mer moderna mildringar, nya exploateringsvektorer och arkitekturer. När du gör detta och öva mot verkliga världen utnyttjar du börjar plocka upp några av de tillhörande kunskap från din egen forskning, och glöm inte att göra anteckningar, du kanske tycker att det hjälper till att hålla en blogg, eller post genomgångar av dina bedrifter här

exakt vilken kompetensnivå du behöver vara på innan du börjar lära sig om binär exploatering kommer alltid att vara något som orsakar vissa människor oro. Är du redo än? Svaret är i allmänhet ja och nej, du lär dig mer genom att börja idag och misslyckas än någon mängd förhalning, men samtidigt varje gång du lär dig något nytt upptäcker du två saker som du inte förstår. Hacking är hemskt för detta, ju mer Jag lär mig desto mer känner jag mig som en komplett nybörjare. Det enda för det är att försöka; det värsta fallet är att du upptäcker att du behöver lära dig några andra saker först, och det gör aldrig ont att läsa en bok.

resurser:

en mängd olika böcker

rekommenderade ämnen:

en förståelse för C / C++

minnes-och CPU-begrepp som minnesadressering, register och stackar

ett skriptspråk som Python, Perl, Ruby eller Bash

flyt i ditt valda operativsystem och åtminstone en grundläggande förståelse för vilken debugger du använder

frågan om plattformar som ska användas som dina offer är mestadels ett personligt val, vissa människor gillar att lära sig windows-exploatering först och sedan flytta till Linux, medan vissa (som jag själv) föredrar att börja med Linux-exploatering innan de flyttar till Windows. Enligt min mening finns det fler och bättre resurser för att lära sig grunderna på Linux men valet är verkligen ditt.

resurser:

krossa stacken för skojs skull och vinst

utnyttja övningar Protostar: Stack nivåer 0-5

några av de begrepp som är inblandade i att lära sig att göra denna typ av enkel exploatering kommer att vara ganska främmande för en nybörjare, men med lite tid händerna på med en debugger bör du börja få en förståelse för några av de saker du kommer att behöva läsa upp om

2: formatera sträng sårbarheter

resurser:

introduktion till format String Exploits

Exploit Exercises Protostar: Formatnivåer 0-4

Format string exploits är ett bra nästa steg efter enkla buffertspill eftersom de delar många likheter, men ger dig också möjlighet att leka med godtyckliga minnesmanipulationer. Formatsträngar visar också en del av weirdness som kan resultera i exploaterbara situationer

3: återgå till LibC-besegra icke-körbara stackar (aka DEP, W^X, NX)

resurser:

(utnyttja övningar Protostar: Stack nivå 6](https://exploit.education/protostar/stack-six/)

ret2libc är den första enkla förbikopplingen av en exploit mitigation och fungerar som en introduktion till de begrepp som ligger till grund för den kraftfulla returorienterade programmeringstekniken, det finns ett par varianter av denna teknik som ret2plt eller ret2text

4: Returorienterad programmering (ROP)

resurser:

Exploit övningar Protostar: Stack level 7

/ u / d4mianwayne ’s rop introduktion

ROP är en viktig teknik för modern exploatering som kan användas för att besegra DEP samt ASLR, och ett intressant sätt att lära sig om assembler och verkligen börja få på djupet med syscalls, register och andra låg nivå fundamenta.

5: besegra stack kanariefåglar

Stack kanariefåglar är en exploit begränsning som syftar till att förhindra bedrifter genom att lägga till en liten kontroll till slutet av funktioner för buffertspill. De finns i en mängd olika former och stilar, såsom terminator kanariefåglar och slumpmässiga kanariefåglar. Att lära sig några tekniker för att besegra eller kringgå dem är ganska viktigt.

resurser:

Corelans anteckningar om detta

notera: resurser för detta verkar begränsade – några förslag eller inlägg om ämnet välkomna

6: Heap Exploitation Basics

mer modern exploatering fokuserar kring högen snarare än stacken, delvis på grund av det förbättrade tillståndet för mitigationer för stackbaserade exploater, delvis för att kodningsstandarder har förbättrats och det finns färre möjligheter för enkel stack smashing.

Lämna ett svar

Din e-postadress kommer inte publiceras.