Articles

0: Base knowledge

Posted on

Exploit Development is hard, learning how to do it willing to required a lot of study, practice and a good understanding of a more well range of oheinen subjects. Hyvä uutinen on, että kaikkea ei tarvitse oppia kerralla tai yhdessä yössä, ja että on paljon ihmisiä, jotka ovat tehneet tai ovat samalla tuskallisella matkalla – jotkut heistä kirjoittavat blogeja kuten corelan security tai fuzzy security.

yleisesti suositeltu lähestymistapa aloittelijalle on aloittaa alusta, 90-luvun lopun tyylinen yksinkertainen pino-pohjainen puskuri tulvii ylitse Aleph Onen ”Smashing the stack for fun and profit” – teoksen popularisoiman, ja sitten vähitellen työskennellä nykyaikaisempien lievennysten, uusien hyväksikäyttövektorien ja arkkitehtuurien käyttöönotossa ja kukistamisessa. Kun teet tämän ja harjoittelet reaalimaailman hyväksikäyttöjä vastaan, alat poimia joitakin oheistietoja omasta tutkimuksestasi, ja älä unohda tehdä muistiinpanoja, saatat huomata, että se auttaa pitämään blogia tai julkaisemaan urotöistäsi täällä

tarkalleen, millä taitotasolla sinun täytyy olla ennen kuin alat oppia binäärisestä hyväksikäytöstä, tulee aina olemaan jotain, joka aiheuttaa joillekin ihmisille huolta. Oletko valmis? Vastaus on yleensä kyllä ja ei, opit enemmän aloittamalla tänään ja epäonnistumalla kuin mikään määrä vitkastelua, mutta samaan aikaan joka kerta, kun opit jotain uutta, huomaat kaksi asiaa, joita et ymmärrä. Hakkerointi on kauheaa tämän, enemmän opin enemmän tunnen täydellinen newbie. Ainoa asia, se on yrittää; pahimmassa tapauksessa huomaat, että sinun täytyy oppia joitakin muita asioita ensin, ja se ei koskaan haittaa lukea kirjaa.

resurssit:

erilaisia kirjoja

suositellut aiheet:

ymmärrys C / C++: sta

muisti-ja SUORITINKONSEPTIT, kuten muistiosoitteet, rekisterit ja Pinot

skriptauskieli, kuten Python, Perl, Ruby tai Bash

sujuvuus valitsemassasi käyttöjärjestelmässä, ja ainakin perustiedot käyttämästäsi debuggerista

kysymys alustoista, joita käytät uhreinasi on useimmiten henkilökohtainen valinta, jotkut ihmiset haluavat oppia Windows hyväksikäyttöä ensin ja sitten siirtyä Linux, kun taas jotkut (kuten minä) mieluummin aloittaa Linux hyväksikäyttö ennen siirtymistä Windows. Mielestäni on enemmän ja parempia resursseja oppia perusasiat Linuxissa, mutta valinta todella on sinun.

resurssit:

pinon murskaaminen huvin ja hyödyn vuoksi

Hyödyntämisharjoitukset Protostar: pinon tasot 0-5

jotkut käsitteet, jotka liittyvät tällaisen yksinkertaisen riiston oppimiseen, ovat melko vieraita aloittelijalle, mutta kun vianjäljittäjän kanssa on kulunut aikaa, sinun pitäisi alkaa ymmärtää joitakin asioita, joista sinun tulee lukea

2: format string-haavoittuvuudet

resurssit:

Johdatus Format String Exploits

Exploit Exercises Protostar: Format levels 0-4

Format string exploits ovat hyvä seuraava askel yksinkertaisten puskurien ylivuotojen jälkeen, koska niillä on paljon yhtäläisyyksiä, mutta ne antavat myös mahdollisuuden leikkiä mielivaltaisilla muistimanipulaatioilla. Format strings näyttää myös joitakin outouksia, jotka voivat johtaa hyödynnettäviin tilanteisiin

3: Return to LibC-nujertavat Ei-suoritettavat Pinot (alias DEP, W^x, NX)

resurssit:

(Exploit Exercises Protostar: Pinon taso 6](https://exploit.education/protostar/stack-six/)

ret2libc on ensimmäinen yksinkertainen ohitus hyödyntää lieventämistä ja toimii johdantona käsitteitä, jotka muodostavat perustan tehokas ret2plt tai ret2text

4: Ret2plt tai ret2text

4: Return Oriented Programming (ROP)

Resources:

Exploit Exercises Protostar: Stack level 7

/u / d4mianwayne ’s ROP Introduction

ROP on nykyaikaisen hyödyntämisen avaintekniikka, jota voidaan käyttää DEP: n ja ASLR: n päihittämiseen, ja mielenkiintoinen tapa oppia assembleristä ja alkaa todella syventyä syscalleihin, rekistereihin ja muihin matalan tason perusteisiin.

5: Pino-Kanarialintujen kukistaminen

Pino-Kanarialintujen kukistaminen on hyväksikäytön lieventämistä, jolla pyritään estämään hyväksikäytöt lisäämällä pieni tarkistus funktioiden loppuun puskurin ylityksiä varten. Niitä on monenlaisia muotoja ja tyylejä, kuten terminator canaries ja random canaries. Oppiminen muutamia tekniikoita voittaa tai ohittaa ne on melko tärkeää.

resurssit:

Corelanin huomautukset tästä

Huomautus: resurssit tähän vaikuttavat rajallisilta – kaikki ehdotukset tai viestit aiheesta tervetulleita

6: Heap Exploitation Basics

nykyaikaisempi hyödyntäminen keskittyy kasan eikä pinon ympärille osittain siksi, että pinoon perustuvien hyväksikäyttöjen lieventämistilanne on parantunut, osittain siksi, että koodausstandardit ovat parantuneet ja mahdollisuuksia on vähemmän yksinkertaiseen pinon murskaamiseen.

Vastaa

Sähköpostiosoitettasi ei julkaista.