Kutarisa pakushandisa kusagadzikana

Sezvo ini ndanga ndichitarisira kuenderera mberi nekukurukura uyu musoro, rega ndikutaurire zvishoma nhoroondo, dzidziso uye tsika pane kusagadzikana. Isu tese takanzwa pari zvino kuti zvikanganiso zvekuchengetedza zvinogona kudhura zvakanyanya, isu tese tinoziva kuti isu tinofanirwa kuchengetedza software yedu kusvika pari zvino, tese tinoziva kuti kuwedzeredza kwakawanda kunokonzerwa nezvikanganiso zvekuchengetedza. Asi nhasi ini ndichakutaurira zvishoma nezvekuti zvikanganiso izvi zvinowanikwa sei uye zvinoshandiswa sei 🙂 Asi izvi zvisati zvaitika tichajekesa mashoma mashoma kuti tiwedzere kutarisa.

Usati watanga

Kutanga ini ndoda kukuudza kuti isu ticha tarisa pane yekutanga kunetseka iyo yandakadzidza kushandisa, inozivikanwa Buffer Inofashukira, mukushupika uku tinotora mukana wekushayikwa kwekurangarira kuita zvinhu zvinonakidza 🙂 Asi ngatitsanangure zvishoma nezvazvo.

Ichi hachisi kuzove chaicho chiitiko chenyika

Ini handikwanise kuvadzidzisa kutyora chero chirongwa chavanoona - kutanga nekuti zvine njodzi kumakomputa avo, chechipiri nekuti izvo zvinotora zvinopfuura chikamu changu chemazwi.

Isu tinoenda parwendo kuma80s

Zvandiri kuzokuratidza ndinogona kuzviita palaptop yangu, asi hazvireve kuti zvinogona kuitwa nhasi nenzira yakapusa 🙂 dzakawanda dzeidzi pfungwa dzakatove dzakashandiswa nguva zhinji zvekuti nzira nyowani dzekudzivirira uye nzira nyowani dzekunzvenga iwo abuda 😛 asi izvo zvinotidzosera kunzvimbo imwechete, hapana nzvimbo yekugona kutaura zvese izvo 🙂

Zvinogona kusashanda pane yako processor

Kunyangwe ndiri kuzoshandisa muenzaniso wakapusa, ndinoda kuti zvinyatsojeka kubva pakutanga kuti ruzivo rweizvi rwakawandisa uye rwakasiyana zvakasiyana zvekuti sekugona kwarwo rwunogona kubuda zvakafanana neni, kana uchida kuedza , zvaunoda zvinogona kunge zvisingawanikwe 🙂 Asi iwe unogona kufungidzira kuti handikwanise kutsanangura izvo munzvimbo ino, kunyanya nekuti nesumo iyi ndatotora mazwi anodarika mazana matatu, saka tinobva tananga kunongedzo yedu.

Chii chinonzi a Buffer Kufashukira

Kuti tipindure izvi isu tinofanirwa kutanga tanzwisisa hafu yekutanga yemubatanidzwa.

Buffers

Sezvo zvese zviri zvendangariro mukombuta, zvine musoro kuti panofanirwa kuve nerumwe rudzi rwemidziyo yeruzivo. Kana tichitaura nezvazvo kupinza Zviito, tinouya takananga kune pfungwa ye buffers. Kuti irambe iri pfupi, a buffer Iyo inzvimbo yekurangarira yehukuru hwakatsanangurwa matiri kuzochengeta huwandu hweruzivo, yakapusa 🙂

Kufashukira kunoitika, sekureva kwezita, kana buffer ichizadza neruzivo rwakawanda kupfuura rwainogona kubata. Asi nei izvi zvichikosha?

sitaki

Iyo inozivikanwa zvakare semastacks, iwo ari asiri emhando dhata mhando matinogona stack ruzivo, hunhu hwavo hukuru ndewekuti ivo vane kuraira LIFO (Yekupedzisira Pakutanga Kunze). Ngatifungei kwechipiri nezve sitaki yemaplate, tinoaisa pamusoro rimwe nerimwe, tobva taaburitsa rimwe rimwe kubva kumusoro, izvi zvinoita ndiro yekupedzisira yatakaisa (iyo iri kumusoro) ndiro yekutanga ndiro izvo zvatinozoburitsa, zviri pachena kana tikakwanisa chete kutora ndiro imwe panguva uye isu tosarudza kuzviita nenzira iyoyo: P.

Iye zvino zvaunoziva aya mazano maviri, isu tinofanirwa kuzviisa zvakarongeka. Mateki akakosha nekuti chirongwa chega chega chatinomhanya chine chayo kuuraya stack. Asi stack iyi ine hunhu chaihwoinokura pasi. Chinhu chega chaunofanirwa kuziva nezve izvi ndechekuti apo chirongwa chiri kumhanya, kana basa rodaidzwa, sitaki inobva panhamba X mundangariro kuenda kunhamba (Xn). Asi kuti tirambe tichifanira kunzwisisa imwe pfungwa.

Anonongedzera

Iyi ipfungwa inofambisa vazhinji mapurogiramu pavanotanga munyika yeC, muchokwadi simba guru reC kuronga rinokodzera muchikamu pakushandiswa kwemainongedzo. Kuti zvirambe zviri nyore, pointer inonongedzera kukero yekurangarira. Izvi zvinoita sekunge zvakaoma, asi hazvina kuomarara, tese tine RAM mumachina edu handiti? Zvakanaka, izvi zvinogona kutsanangurwa se anoteedzana marongero emabhuroko, idzi nzvimbo dzinowanzo kuratidzwa mu hexadecimal manhamba (kubva pa0 kusvika pa9 uyezve kubva paA kuenda kuna F, senge 0x0, 0x1, 0x6, 0xA, 0xF, 0x10). Pano sechinyorwa chekuziva, 0x10 HERE zvakaenzana ne10 😛 kana tikazvishandura kuita madhisiki kuita zvakafanana nekutaura 15. Ichi chinhu chinovhiringidza kanopfuura kamwe pakutanga, asi ngatiburuke pazviri.

Zvirekodi

Ma processor anoshanda nenhamba ye zvinyorwa, iyo inoshanda kuendesa nzvimbo kubva pakurangarira kwepanyama kuenda kune processor, yezvivakwa zvinoshandisa makumi matanhatu nematanhatu, huwandu hwemarejista hwakakura uye hwakaoma kurondedzera pano, asi kuwana pfungwa, marejista akafanana nezviratidzo, zvinoratidza pakati pezvimwe zvinhu. , nzvimbo yekurangarira (nzvimbo).

Zvino dzidzira

Ndinoziva kuti anga ari ruzivo rwakawanda kuti agadzirise kusvikira zvino, asi pachokwadi inyaya dzakaomarara dzandinoedza kutsanangura nenzira yakapusa, tichaona chirongwa chidiki chinoshandisa mabhaudhi uye tiri kuenda kutyora kuti unzwisise izvi pamusoro pekufashukira, zviri pachena kuti ichi hachisi Icho chirongwa chaicho, uye tiri kuenda "kunzvenga" mazhinji ematanho anoshandiswa nhasi, kungoratidza maitirwo ezvinhu kare before uye nekuti mamwe eaya misimboti inodikanwa kuti ukwanise kudzidza zvinhu zvakaomarara 😉

GDB

Chirongwa chikuru icho pasina mubvunzo chiri chimwe chevanonyanya kushandiswa nevagadziri veC. Pakati pemaitiro ayo mazhinji tine chokwadi chekuti chinotibvumidza kuti tione zvese izvi izvo zvatave kutaura nezvazvo kusvika zvino, marejista, dura, mabhainda, nezvimwe. Ngatione chirongwa chatiri kuzoshandisa semuenzaniso wedu.

retinput.c

Own. Christopher Diaz Riveros

Ichi chirongwa chakapusa, tiri kuzoshandisa raibhurari stdio.h kukwanisa kuwana ruzivo uye kururatidzira mune inouraya. Isu tinogona kuona basa rakadaidzwa return_input iyo inogadzira a buffer akadanwa array, Iyo yakareba 30 byte (iyo char data mhando iri 1 byte yakareba).

Basa racho gets(array); kumbira ruzivo nekoni uye basa printf() inodzosera zvirimo munongedzo uye ichizviratidza pachiratidziri.

Chirongwa chega chega chakanyorwa muC chinotanga nebasa main(), izvi zvichave chete maneja wekufona return_input, izvozvi tichagadzira chirongwa ichi.

Own. Christopher Diaz Riveros

Ngatitorei zvishoma zvandangoita. Sarudzo -ggdb inotaurira gcc kuumbiridza chirongwa neruzivo rwegdb kuti igone kunyatsogadzirisa. -fno-stack-protector Iyi sarudzo iri pachena kuti isu hatifanire kunge tichishandisa, asi izvo zvatiri kuzoshandisa nekuti zvikasadaro zvaizokwanisika kuburitsa iyo buffer kufashukira mudura. Pakupedzisira ndakaedza mhedzisiro. ./a.out zvinongomhanya zvandakangonyora, zvinokumbira ruzivo nekuzvidzorera. Kumhanya 🙂

Yambiro

Chimwe chinyorwa pano. Iwe unoona here yambiro? zvakajeka icho chinhu chekufunga nezvacho patinoshanda nekodhi kana kuumbiridza, izvi zviri pachena uye pane mashoma zvirongwa izvo nhasi zvine basa gets() Mune kodhi. Imwe mukana weGentoo ndeyekuti nekunyora chirongwa chega chega, ini ndinogona kuona izvo zvingave zvisiri izvo, chirongwa "chakanakisa" hachifanirwe kuva nacho, asi iwe ungazoshamisika kuti mangani makuru mapurogiramu ane yambiro idzi nekuti iwo AKanyanya makuru uye Zvakaoma kuchengeta iwo mabasa ane njodzi kana paine yambiro zhinji panguva imwe chete. Zvino kana tichienderera

Kugadzirisa chirongwa

Own. Christopher Diaz Riveros

Iye zvino chikamu ichi chinogona kunge chiri kutovhiringidza, asi sezvo ini ndanyora zvakati wandei, handikwanise kutsanangura zvese, ndine urombo kana iwe ukaona kuti ndiri kukurumidza kwazvo 🙂

Kushatisa kodhi

Ngatitangei nekutarisa yedu yakasanganiswa muchina mutauro chirongwa.

Own. Christopher Diaz Riveros

Iyi ndiyo kodhi yebasa redu guru mu gungano, izvi ndizvo zvinonzwisiswa neprosesa yedu, mutsetse kuruboshwe ndiyo kero yepanyama mundangariro, iyo <+ n> inozivikanwa se offset, chaizvo chinhambwe kubva pakutanga kwebasa (main) kusvika icho chirevo (chinozivikanwa se opcode). Ipapo tinoona mhando yemirairo (Push / mov / callq…) uye rimwe kana akawanda marejista. Muchidimbu tinogona kuti ndicho chiratidzo chinoteverwa nekwaunobva / kwayakatangira nekuenda. <return_input> zvinoreva kuita kwedu kwechipiri, ngatitarisei.

return_input

Own. Christopher Diaz Riveros

Izvi zvakati omei, asi ini ndinongoda kuti iwe utarise akati wandei zvinhu, pane tag inonzi <gets@plt> uye imwe yekupedzisira opcode inonzi retq inoratidza kupera kwebasa. Tichaisa akati wandei mabhureki, imwe iri mukuita gets uye imwe mu retq.

Own. Christopher Diaz Riveros

manya

Iye zvino tave kuzomhanyisa chirongwa kuti tione kuti chiito chinotanga sei.

Own. Christopher Diaz Riveros

Tinogona kuona kuti museve mudiki unoratidzika kuratidza iyo opcode patiri, ini ndoda kuti vafunge nezvekutungamira 0x000055555555469b, iyi ndiyo kero mushure mekufona ku return_input mukushanda main , izvi zvakakosha sezvo ndipo panofanira kudzoka chirongwa kana wapedza kugamuchira iyo chiyamuro, ngatipindei mubasa. Iye zvino tichaenda kunoongorora ndangariro tisati tapinda muchiitiko gets.

Own. Christopher Diaz Riveros

Ini ndaisa basa hombe kumashure kwako, uye ndaratidza kodhi yandaireva, sezvaungaona, nekuda kwe kupera yakakamurwa kuita zvikamu zviviri, ndinoda kuti vafunge nezve mafambiro 0x7fffffffdbf0 (wekutanga kubva kuruboshwe mushure mecommando x/20x $rsp) nekuti ino ndiyo nzvimbo yatinofanira kushandisa kutarisa mhedzisiro yezvatinowana, ngatirambei tichienderera:

Kuputsa chirongwa

Own. Christopher Diaz Riveros

Ini ndakaratidza izvo 0x44444444nekuti iwo ndiwo anomiririra maD edu 🙂 izvozvi tatanga kuwedzera chiyamuro kuchirongwa, uye sezvauri kuona, isu tangova mitsara miviri kubva kukero yatinoda, tichaizadza kusvikira tangosara pamberi pemakero atakaratidza mudanho rekutanga.

Kuchinja nzira yekudzoka

Zvino zvatave kukwanisa kuisa chikamu chino chekodhi kwachinoratidza kudzoka kwebasa, ngatione zvinoitika kana tikachinja kero 🙂 pane kuenda kunzvimbo yeopcode inotevera iyo yataive nayo nguva yadarika, iwe unofungei kana tikadzokera ku return_input? Asi nekuda kweizvi, zvakafanira kuti unyore kero yatinoda mubhinari, isu tichazviita nebasa racho printf kubva bash 🙂

Own. Christopher Diaz Riveros

Zvino isu takagamuchira ruzivo kaviri - zvirokwazvo chirongwa ichi hachina kuitirwa izvozvo, asi isu takakwanisa kutyora kodhi iyi ndokuiita ichidzokorora chimwe chinhu icho chaisa fanirwa kuita.

Kufungisisa

Iyi shanduko yakapusa inogona kutariswa se yokubiridzira zvakanyanya kukosha has iye akwanisa kutyora chirongwa uye kuita chimwe chinhu chatinoda kuti aite

Iyi ingori nhanho yekutanga mune irwo rusingaperi runyorwa rwezvinhu zvekuona nekuwedzera, pane nzira dzekuwedzera zvimwe zvinhu pane kungodzokorora odha, asi panguva ino ndanyora yakawanda nezvose zvine chekuita ne shell coding inyaya yekunyora kupfuura zvinyorwa, mabhuku akazara ndingati. Ndine urombo kana ndisina kukwanisa kutsvakisisa zvishoma muzvinyorwa zvandaizoda, asi zvirokwazvo pachave nemukana 🙂 Kwazisai nekutenda nekusvika kuno.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   2p2 akadaro

    Iva wakananga. Nyora zvishoma uye tarisa pane izvo zvakakosha

    1.    ChrisADR akadaro

      Mhoroi, ndatenda nekutaura

      Kutaura chokwadi ndakacheka chikamu chakanaka chemazano, asi kunyangwe zvakadaro zvakaratidzika kwandiri kuti zvakasiya zvakashomeka kuitira kuti munhu asina chirongwa chekuziva awane zano.

      Reply with quote

      1.    kusazivikanwa akadaro

        Dambudziko nderekuti avo vasina ruzivo rwechirongwa havazotsvaga nezve chero chinhu nekuti chakaomesesa kutanga nacho, asi avo vanoziva kuronga vanofarira kuve vakananga.

        Ini ndinofunga haugone kusvika kune wese munhu, iwe unofanirwa kusarudza, uye mune iyi kesi watadza kuti ude kufukidza zvakawanda.

        Nenzira, ini ndinokuudza sekushoropodza kunovaka, ini ndinoda idzi misoro uye ndinoda kuti iwe urambe uchinyora zvinyorwa, makorokoto!

    2.    kusazivikanwa akadaro

      Ndinofunga zvakafanana.

      1.    ChrisADR akadaro

        Ndatenda zvikuru kune vese !! Zviri nyore kunzwisisa kuti ungasvike sei kune vateereri vateereri apo chokwadi chiri chekuti huwandu hwevanhu vane chikamu chemberi chehurongwa vanoverenga zvinyorwa izvi ishoma (zvirinani izvo zvinogona kutariswa zvichibva pane zvakataurwa)

        Ini zvechokwadi ndakatadza kubva mukuda kurerutsa chimwe chinhu chinoda hwaro hwakazara hweruzivo kuti unzwisiswe. Ndinovimba iwe unonzwisisa kuti sezvo ini ndirikungotanga mune ino blogging ini handisati ndawana chaiyo iyo poindi iyo vaverengi vangu vanoziva uye vanonzwisisa zvandinotaura. Izvo zvinoita kuti zvive nyore kwazvo kutaura chokwadi 🙂

        Ini ndichaedza kupfupika pazvinokodzera pasina kuenzanisa chimiro, sezvo kupatsanura nzira yekunyora kubva pane zvirimo kwakaomarara zvakanyanya kupfuura zvingafungidzirwe, ini ndinenge ndine zvakanyatsobatana, asi ndinofunga kuti pakupedzisira ini ndichakwanisa kuwedzera mitsara mu panzvimbo yekucheka zvemukati.

        Reply with quote

  2.   Mario akadaro

    Ndekupi kwaunogona kuwana zvimwe pamusoro penyaya iyi? Chero bhuku rinokurudzirwa?

    1.    ChrisADR akadaro

      Muenzaniso wacho wakatorwa kubva kuThe Shellcoder's Handbook naChris Anley, John Heasman, Felix Linder naGerardo Richarte, asi kuti ndiite shanduro yemakumi matanhatu nematatu ndaifanira kudzidza nezve dhizaini yangu, bhuku rekuvandudza Intel, mavhoriyamu 64 ne2 tsime rakavimbika kwazvo reizvozvo. Izvo zvakare zvakanaka kuverenga iyo GDB zvinyorwa, iyo inouya neiyo 'info gdb' yekuraira, Kuti udzidze Assembly uye C kune akawanda akanaka mabhuku, kunze kwekunge mabhuku eAn Assembly ati kurei saka pane mukaha wekuzadza neimwe nyora zvinyorwa.

      Iyo shellcode pachayo haichisiri inoshanda mazuva ano nekuda kwezvikonzero zvakasiyana, asi zvichiri kunakidza kudzidza maitiro matsva.

      Ndinovimba zvinobatsira zvishoma 🙂 Kwaziso

  3.   Franz akadaro

    Buen artículo, el viejo blog desdelinux ha vuelto a renacer =)
    Kana iwe uchiti iri kure goko harisi iro rinobudirira, iwe unoreva zvinopesana zvakagadzirirwa kudzikisira kurwisa, ivo vanozvidaidza kunogumbura chengetedzo.
    Kwazisai uye chengetedzai zvakadaro

    1.    ChrisADR akadaro

      Ndatenda kwazvo Franz words mazwi ane moyo munyoro, chaizvo ndaireva kuti Shellcoding nhasi yakanyanya kuomarara kupfuura zvatinoona pano. Tine iyo ASLR (yakasarudzika memory nzvimbo jenareta) inochengetedza dziviriro, matanho akasiyanasiyana nematanho anodzora huwandu hwemapodhi anokwanisa kujekeswa muchirongwa, uye angori mavambo.

      Thanks,

  4.   Free Software akadaro

    Mhoro, uchaita here chimwe chikamu kuwedzera musoro wenyaya? Zvinonakidza

    1.    ChrisADR akadaro

      Mhoroi, iwo musoro wenyaya unonyanya kunakidza, asi iro danho rekuoma kwataizotora raizokwira kwazvo, pamwe rinobatanidza nhamba hombe yemaposita kutsanangura zvakasiyana siyana zvinodiwa kuti unzwisise imwe. Ini zvimwe ndinonyora nezvazvo, asi hazvizove zvinotevera zvinyorwa, ini ndoda kunyora misoro mishoma ndisati ndaenderera neiyi.

      Kwazisai, uye nekutenda nekugovana

  5.   cactus akadaro

    Zvakanaka chaizvo che! Iwe urikupa zvipo zvikuru! Mumwe mubvunzo, ndiri kutanga ichi IT Security chinhu nekuverenga bhuku rakanzi "Kuvimbisa chengetedzo nepeni kuyedza." Iri bhuku rinokurudzirwa here? Unofunga sei kuti ini nditange kubvunza nezve idzi nyaya

    1.    ChrisADR akadaro

      Mhoro cactus, izere zvakasikwa nezve kushomeka, uye vamwe, kutaura chokwadi zvinoenderana zvakanyanya nezvakabata pfungwa dzako, uye zvaunoda, maneja weIT haafanire kuziva zvakafanana nepeni-muyedzo, Kana mutsvagiri wekushupika, kana muongorori wezve forensic, timu yekudzosa njodzi ine hunyanzvi hwakasiyana. Zviripachena kuti chimwe nechimwe chazvo chinoda imwe nhanho yeruzivo rwehunyanzvi, ini ndinokurudzira kuti utange kutsvaga chaicho chaunoda, uye tanga kudya mabhuku, zvinyorwa, nezvimwe, uye zvinonyanya kukosha, ita zvese zvaunoverenga, kunyangwe zvikave zvechinyakare, izvo zvichaita mutsauko pakupedzisira.
      Thanks,

  6.   Eizen akadaro

    Hi!
    Ndinokutendai zvikuru nekutsanangura nyaya iyi, pamwe nekupindura izvozvo neruzivo rwakawedzerwa isu tine "Iyo Shellcoder's Handbook". Ini ndatova nekumirira kuverenga 😉