[ Vojislav Milunovic @ 09.01.2001. 14:39 ] @
Evo ako nekom treba shell code...mali svega 35 byte...

http://predator.tlsecurity.com/sc.c
[ Gojko Vujovic @ 10.01.2001. 12:56 ] @
kako ga bre smestis u toliko
[ Vojislav Milunovic @ 10.01.2001. 13:54 ] @
Koji ti deo nije jasan?
[ Zoran @ 10.01.2001. 17:43 ] @
"xebx15x5bx31xc0x88x43x07x89x5b"
"x08x89x43x0cx8dx4bx08x89xc2xb0"
"x0bxcdx80xe8xe6xffxffxff/bin/sh";
[ Gojko Vujovic @ 10.01.2001. 17:48 ] @
hmm malo toga jeste.
aj red po red ako ti nije tesko. onako:

Code:

  jmp 0x15 - dugacko objasnjenje
           - i jos objasnjenja
           - itd....... pa onda sledeci red


[ Gojko Vujovic @ 10.01.2001. 17:52 ] @
nego zorane, to je onaj isti shell code iz komentara na dnu fajla..
[ Vojislav Milunovic @ 10.01.2001. 18:24 ] @
Joj Gojko ti ce mene u grob da oteras keve mi!!!

idemo polako:

program se izvrsava tj. promenjen mu je EIP da skoci na taj shell code ide ovako -> jmp 0x15 i skace na call -0x1a ...Naime posle call imamo .string "/bin/sh"
Posto je call instrukcija koja ostavlja EIP na stacku...mi sad skacemo na pop %ebx naime ovim pop %ebx u registru %ebx imamo adresu od naseg /bin/sh stringa...
Sledece -> xorl %eax,%eax nam cisti eas register sa 0.
movb %al,0x7(%ebx) stavljamo 0 iza /bin/sh da bi to bio 0 terminiran string.
sledece movl %ebx,0x8(%ebx) nam iza /bin/sh0 stavlja adresu tog stringa slikovito prikazano
"/bin/sh",0x12345678 gde je 0x12345678 adresa od "/bin/sh" posle toga idemo movl %eax,0xc(%ebx) sad iza "/bin/sh",0x12345678 imamo 0x00000000 ili NULL...
Znaci to ovako izgledao
:/bin/sh 0x12345678 0x00000000 sada u %eax stavljamo sys_call_number od execve() u %ebx imamo adresu od "/bin/sh" sa leal 0x8(%ebx),%ecx ubacujemo adresu gde se nalazi prva adresa tj. 0x12345678 i u %edx stavljamo NULL...
pozivamo int 0x80 i predajemo kontrolu kernelu da odradi execve() :o))) i to je to...

evo ga i program za shell:
#include<unistd.h>
int main(){
char *sh[2]={"/bin/sh",NULL};
execve(sh[0],sh,NULL);
}
[ RAZZLEDAZZLER @ 11.02.2001. 18:49 ] @
majko moja ... tek sam sad shvatio koliko sam glup