Articles

0: Base viden

Posted on

Udnyt udvikling er svært, lære at gøre det vil kræve en masse undersøgelse, praksis og en god forståelse af en temmelig bred vifte af tilknyttede emner. Den gode nyhed er, at du ikke behøver at lære alt på en gang eller natten over, og at der er mange mennesker, der har gjort eller er på den samme smertefulde rejse – hvoraf nogle skriver blogs som corelan security eller uklar sikkerhed.

den generelt anbefalede tilgang til en nybegynder er at starte i begyndelsen, slutningen af 90 ‘ernes stil simple stack-baserede bufferoverløb populariseret af Aleph One’ s “Smashing the stack for fun and profit” og derefter gradvist arbejde på at introducere og besejre gradvist mere moderne afbødninger, nye udnyttelsesvektorer og arkitekturer. Som du gør dette og praksis mod virkelige verden udnytter du begynder at hente nogle af de supplerende viden fra din egen forskning, og glem ikke at lave noter, kan du finde det hjælper til at holde en blog, eller post gennemgange af dine bedrifter her

præcis hvad færdighedsniveau du skal være på, før du begynder at lære om binær udnyttelse vil altid være noget, der forårsager nogle mennesker bekymringer. Er du klar? Svaret er generelt ja og nej, du lærer mere ved at starte i dag og fejle end nogen mængde udsættelse, men på samme tid hver gang du lærer noget nyt, opdager du to ting, som du ikke forstår. Hacking er forfærdeligt for dette, jo mere Jeg lærer, jo mere føler jeg mig som en komplet nybegynder. Det eneste for det er at prøve; det værste tilfælde er, at du opdager, at du først skal lære nogle andre ting, og det gør aldrig ondt at læse en bog.

ressourcer:

en række bøger

anbefalede emner:

en forståelse af C / C++

hukommelse og CPU-koncepter såsom hukommelsesadressering, registre og stakke

et scriptsprog som Python, Perl, Ruby eller Bash

flydende i dit valgte operativsystem og i det mindste en grundlæggende forståelse af, hvilken debugger du bruger

spørgsmålet om platforme, der skal bruges som dine ofre, er for det meste et personligt valg, nogle mennesker kan lide at lære vinduesudnyttelse først og derefter flytte til Linuk, mens nogle (som mig selv) foretrækker at starte med Linukudnyttelse, før de flytter til vinduer. Efter min mening er der flere og bedre ressourcer til at lære det grundlæggende på , men valget er virkelig dit.

ressourcer:

Smashing the Stack for Fun and Profit

Udnyt øvelser Protostar: Stack levels 0-5

nogle af de begreber, der er involveret i at lære at gøre denne form for simpel udnyttelse, vil være ret fremmed for en nybegynder, men med lidt tid brugt hænder på med en debugger skal du begynde at få en forståelse af nogle af de ting, du bliver nødt til at læse om

2: format string sårbarheder

ressourcer:

Introduktion til Format String udnytter

udnytte øvelser Protostar: Format levels 0-4

Format string udnytter er en god næste skridt efter simple bufferoverløb, fordi de deler en stor mange ligheder, men også give dig en mulighed for at lege med vilkårlig hukommelse manipulationer. Formatstrenge viser dig også noget af det underlige, der kan resultere i udnyttelige situationer

3: vend tilbage til LibC – besejre ikke-eksekverbare stakke (aka DEP, h^h, nh)

ressourcer:

(udnytte øvelser Protostar: Stak niveau 6](https://exploit.education/protostar/stack-six/)

ret2libc er den første enkle bypass af en udnyttelsesbegrænsning og fungerer som en introduktion til de begreber, der danner grundlaget for den kraftfulde returorienterede programmeringsteknik, der er et par varianter af denne teknik, såsom ret2plt eller ret2tekst

4: Returorienteret programmering (ROP)

ressourcer:

Udnyt øvelser Protostar: Stack level 7

/u/d4mianvejnes ROP introduktion

ROP er en nøgleteknik til moderne udnyttelse, der kan bruges til at besejre DEP såvel som ASLR, og en interessant måde at lære om assembler og virkelig begynde at komme i dybden med syscalls, registre og andre grundlæggende niveauer på lavt niveau.

5: defeat stack canaries

Stack Canaries er en udnyttelsesbegrænsning, der søger at forhindre udnyttelse ved at tilføje en lille kontrol til slutningen af funktioner for bufferoverløb. De kommer i en række forskellige former og stilarter, såsom terminator kanariefugle og tilfældige kanariefugle. At lære et par teknikker til at besejre eller omgå dem er ret vigtigt.

ressourcer:

Corelans noter om dette

Bemærk: ressourcer til dette synes begrænsede – eventuelle forslag eller indlæg om emnet velkommen

6: Grundlæggende om udnyttelse af bunke

mere moderne udnyttelse fokuserer omkring bunken snarere end stakken, delvis på grund af den forbedrede tilstand af afbødninger for stakbaserede udnyttelser, delvis fordi kodningsstandarder er forbedret, og der er færre muligheder for at for simpel stak smadre.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.