2012. augusztus 24., péntek

Cracking The Perimeter

Ma kíváncsiságból megnéztem, hogy fel tudnék-e iratkozni az Offensive Security Cracking The Perimeter tanfolyamára : itt : www.fc4.me lehet próbálkozni
Elszórakoztam vele egy kicsit mire rájöttem, hogy mi a kulcs... de végül bejutottam : :)



A PWB és a CTP lenne a következő tanfolyam, ha lenne rá most időm (és pénzem) ez jóval olcsóbbnak tűnik a CEH tanfolyamnál (A kettő együtt sincs annyi mint a CEH) úgyhogy lehet, hogy ezzel kellett volna inkább kezdeni, de most már mindegy. Ha lesz kis időm (egy hónap láblógatás) és pénzem, szépen meg próbálom elvégezni mind a kettőt. Előbb a PWB-t aztán a CTP-t. De lehet, hogy nem az idén :) Most lesz kis munkám, meg egyelőre elég volt a tanfolyamokból...

14 megjegyzés:

  1. Ezt a megjegyzést eltávolította a szerző.

    VálaszTörlés
  2. \x31\xC0\x50\x68\x23\x74\x27\x23\x68\x20\x73\x78\x73\x68\x22\x75\x27\x70\x68\x24\x20\x27\x71\x68\x70\x77\x22\x25\x68\x22\x78\x25\x27\x68\x24\x25\x75\x73\x68\x24\x22\x27\x20\x68\x74\x20\x23\x20\x68\x20\x73\x76\x74\x68\x27\x72\x76\x24\x68\x23\x25\x75\x74\x68\x78\x78\x23\x79\x68\x77\x78\x73\x22\x68\x77\x77\x76\x70\x68\x70\x76\x74\x70\x68\x72\x71\x76\x22\x68\x27\x72\x74\x71\x68\x75\x23\x79\x27\x68\x72\x22\x24\x75\x68\x77\x70\x79\x70\x68\x72\x76\x72\x70\x68\x72\x24\x71\x78\x68\x70\x76\x74\x20\x68\x23\x25\x78\x24\x68\x72\x75\x71\x24\x68\x23\x27\x79\x74\x68\x23\x77\x73\x79\x68\x71\x25\x22\x77\x68\x79\x76\x27\x70\x68\x79\x74\x70\x23\x68\x76\x23\x71\x75\x54\x5E\x8B\xFE\x8B\xD7\xFC\xB9\x80\x00\x00\x00\xBB\x41\x00\x00\x00\x31\xC0\x50\xAC\x33\xC3\xAA\xE2\xFA\x54\x5E\xCC itt megakadtam tudnál segíteni??? :)

    VálaszTörlés
  3. Ez egy assembly code.

    disassembláld itt :

    http://pyms86.appspot.com/

    Ha nem megy az assembly fejből, akkor annyi a lényeg, hogy a betöltött stringet 0x41-el Xor-olja.

    De arra figyelj, hogy a strig fordítva (reverse) szerepel, mert ugyebár a veremből LIFO módon (Last in first out) kerül ki a tartalom...

    Vagyis az értékek reverse-ét kell venni...

    Magyarul xor-old a stringet 0x41-el és utána olvasd ki visszafelé egyesével a veremből -> ez a lényeg kb.

    Ha még így se érthető, kérdezz bátran :)

    Ja, és a kulcs nem a hexa kód, hanem a stringé alakított megfelelője.

    VálaszTörlés
  4. Egyáltalán nem értek az assembly-hez. Nekem ez a kód kínai :(. C,C++,Java ezek az én művfajaim! :) De megpróbálkozok vele! :)

    VálaszTörlés
    Válaszok
    1. http://seclists.org/fulldisclosure/2012/Feb/62

      (Shellcode íráshoz ismerni kell, hogy hogy működik a gépi kódú program.)

      Írj rá egy c programot, ami beolvassa ezt a hexa kódot egy tömbbe, de csak a megfelelő 128 byte-ot : (az első 4 byte-ot nem, minden 5-iket sem (\x68). Így lesz egy stringed. Ennek az elemeit xor-old \x41-el. Utána revertáld a stringet kiiratod és kész is vagy. :)

      Törlés
  5. Nem megy... :(((( Ez a xor-olás nem megy :((

    VálaszTörlés
  6. http://www.unsw.adfa.edu.au/~lpb/src/XORcalc/ ezzel próbáltam szerinted ez jó???

    VálaszTörlés
  7. Inkább ezt próbáld :

    http://www.darkfader.net/toolbox/convert/

    Alul a Xor-olásos résznél bemásolod a 128 byte hosszú stringet és egyszerűen xor-olod...
    És kimásolod a Result (string) mezőt . ennyi.

    Előtte azonban ne feledkezz meg róla, hogy a bemeneti stringben a karakterek jó sorrendben legyenek...

    A stack-be 4-esével vannak betöltve a karakterek , tehát kiolvasáskor is ezt a sorrendet kell használni.

    például
    push abcd
    push efgh
    push ijkl

    ha most a stack címéről kezdel el kiolvasni a stringeket, akkor l,k,j,i lesz a sorrend

    viszont, a hexa códban így van a string : \xd\xc\xb\xa stb...

    Szóval még trükközni kell vele egy kicsit. :)

    VálaszTörlés
    Válaszok
    1. bocs, ne a stringet másold be az inputba hanem a hexadecimális értéket. vagy pipáld ki a string input négyzetet...

      Törlés
  8. Akkor leírom hogy eddig mit oldottam meg. Itt a 128 bites
    \x23\x74\x27\x23\x20\x73\x78\x73\x22\x75\x27\x70\x24\x20\x27\x71\x70\x77\x22\x25\x22\x78\x25\x27\x24\x25\x75\x73\x24\x22\x27\x20\x74\x20\x23\x20\x20\x73\x76\x74\x27\x72\x76\x24\x23\x25\x75\x74\x78\x78\x23\x79\x77\x78\x73\x22\x77\x77\x76\x70\x70\x76\x74\x70\x72\x71\x76\x22\x27\x72\x74\x71\x75\x23\x79\x27\x72\x22\x24\x75\x77\x70\x79\x70\x72\x76\x72\x70\x72\x24\x71\x78\x70\x76\x74\x20\x23\x25\x78\x24\x72\x75\x71\x24\x23\x27\x79\x74\x23\x77\x73\x79\x71\x25\x22\x77\x79\x76\x27\x70\x79\x74\x70\x23\x76\x23\x71\x75\x54\x5E\x8B\xFE\x8B\xD7\xFC\xB9\x80\x00\x00\x00\xBB\x41\x00\x00\x00\x31\xC0\x50\xAC\x33\xC3\xAA\xE2\xFA\x54\x5E\xCC

    Ez így jó?? Ez a stackezés elég bonyolult :DDD erre is írni kéne egy progit... :)

    VálaszTörlés
  9. Nem jó...

    A végén \x00-ák vannak ott eleve véget érne a string. :)

    valamit szerintem rosszul számoltál. Ez nem 128 :)

    \x23\x77 <--- itt a vége (eddig 128)

    VálaszTörlés
    Válaszok
    1. illeve \x71\x75 <- ez a vége.

      Törlés
  10. És a stackezést hogy oldjam meg?

    VálaszTörlés
    Válaszok
    1. hát így :

      "abcdefghijklmnopqrst" -> "qrstmnopijklefghabcd"

      remélem így már világos.

      Törlés

Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.