[ brlivo @ 21.04.2008. 11:31 ] @
Zdravo, ja sam novi tu, i poceo sam da ucim oko tehnike za explotiranja... pa zaglavio sam na jedno mesto.
pad se pravi buffer sa (NOP + SHELLCODE + RET addr)

ovo je kod iz art of explotation 2nd edition;
Code:

unsigned int i, *ptr, ret, offset=270;
   char *command, *buffer;

   command = (char *) malloc(200);
   bzero(command, 200); // zero out the new memory

   strcpy(command, "./notesearch \'"); // start command buffer
   buffer = command + strlen(command); // set buffer at the end

   if(argc > 1) // set offset
      offset = atoi(argv[1]);

   ret = (unsigned int) &i - offset; // set return address

   for(i=0; i < 160; i+=4) // fill buffer with return address
      *((unsigned int *)(buffer+i)) = ret;    <---- civa je ova ret addresa ????
   memset(buffer, 0x90, 60); // build NOP sled
   memcpy(buffer+60, shellcode, sizeof(shellcode)-1); 


i zanimame civa je ova ret adresa??to bi trebalo da bude shellcode adresa? debagovao sam sa gdb i vidio sam da to nema veze sa ona adresa koja se nalazi u ret??
pa ako ima neko da mi pomoci.
Puno Hvala

[Ovu poruku je menjao Shadowed dana 23.04.2008. u 10:07 GMT+1]
[ EArthquake @ 23.04.2008. 08:29 ] @
mislio sam da smo to razjasnili u mailu :)

nebitno , probaj ponovo da debagujes,

zapamti da adrese koje ti dobijas na tvom sistemu nemoraju da budu iste kao i one u knjizi ,
bez obzira koji sistem koristis, jer na novijim sistemima imas razne randomizacije adresnog prostora

mozda ti to stvara problem , progaj da ih iskljucis , pa se onda igraj

josuvek nemam tu knjigu , na fakultetu mi proksi brani rapidshare ,
[ jorganwd @ 23.04.2008. 22:15 ] @
Mozda bi mogao da postavis kompletnu vjezbu, da vidimo o cemu se radi?
Zavisi gdje trazis return adresu, u samoj aplikaciji ili u nekim od dll-ova na sistemu.
Moram dodati da sam impresioniran kako u Visti ne mozes uhvatiti registre return adresa, mijenjaju se dinamicki posle svakog reboota :)

ah taj string copy.. :)

j0rgan


edit: e da, probaj koristiti immunity debugger ili ollydbg
[ EArthquake @ 25.04.2008. 13:14 ] @
iz dosadasnjeg razgovora sa komsijom makedoncem sam pokapirao da radi po krnjizi art of exploitation , i to radi na linux-u

tako da mu olly i imdbg nece mnogo pomoci

a to sto se tebi desava s adresama na visti je zbog aslr-a

upravo sma to pominjao i u prethodnom postu ...
[ brlivo @ 25.04.2008. 15:44 ] @
Evo sedim tu ispred... i nemogu da vidim u sta je finta... inace radim na redhat 7.1. na tu verzijunema zastita od radnomization.
ZNACI ovakav je buffer = NOP + SHELLCODE + RET.

ova RET adresa treba biti adresa SHELLCODE-a, bar ja tako sam svatio.
NOP se dodaju na pocetka za lakse da se izvrsi SHELLCODE i da dobijemo shell
e sada

buffer je od tip pointer sprema char ; char *buffer; <----- to znaci da ova promenliva nalazi se na stack
kad se alocira memorije za buffer da pokazuje tamo tih podatke nalazu se u HEAP memorije
(evo slika od tome)

znaci ret = &i - 200; <---- u ret sada ima neka adresa koja koja najvetovatno na stack

i ondak ret = 0xbffff9ec
i kad idem da vidim sta ima na ta adresa nemogu se snaci... ne znam sta sve toa znaci, to je moji najveci problem sada!!!!

[ brlivo @ 25.04.2008. 15:45 ] @
kako mogu da postavi screenshot???
[ EArthquake @ 25.04.2008. 18:16 ] @
imas kad napises post da dodas attachement uz poruku ...

stvarno mi nije jasno sta ti ne ide od ruke , nisam pri svom racunaru da bih probao ...
[ EArthquake @ 27.04.2008. 11:50 ] @
sad sam pogledao AoE novi

i opet sma se malo razocarao , nema nekih novih tehnika


u sustini , kada se radi o lokalnom exploitu , ne moras da koristis nop nizove i ret adrese , mozes tacno da odredis gde ce ti biti shellcode u memoriji , shellcode mozes da postavis u promenljivu okruzenja

ekipa iz netric-a je napisala davno tekst o tome , radical environmentalist , ili tako nekako

u njemu je odjasnjena tehnika , nikakva preterana mudrost, ali radi na sistemima na kojima nema ASLR-a i sl zastita

http://packetstormsecurity.org/groups/netric/envpaper.pdf