[ Vojislav Milunovic @ 07.12.2004. 00:52 ] @
Doduse ovo je samo experimentalna verzija i na samom je pocetku razvoja, ali posto sam uspeo da u potpunosti prepisem GetProcAddress dajem ga ovde... doduse nisam znao da sam Loader trazi neke f-je po ordinalu a ne po imenu pa sam malo kuburio sa tim delom dok nisam ukapirao sto on zapravo cini...
Doduse evo kod u attachmentu tog-dll source kode... a da dll mora da se injectuje da bi radilo... ali da ne uploadujem i injector i shellcode example itd...

poz =)
[ Sundance @ 08.12.2004. 03:28 ] @
Najveca je mana ovog pristupa sto shellcode uopce ne mora traziti adresu preko GetProcAddress, moze direktno parsati export tablicu kernel32.dll, lijep broj shellcodea bas to i radi (moj radi :). Osim toga, shellcode moze recimo direktno pozivati NtCreateProcess ili, sto je jos zabavnije, neki lightweight wrapper tipa WinExec (ne znam da li ovaj omogucuje redirekciju I/O streamova, samo nagadjam, mozda postoji neki koji moze).

Cak i ako na njihovu adresu opalis 0xCC i recimo hookiras debug event u kontekstu samog procesa te provjeris da li je parametar API-ja "cmd.exe", jos uvijek plivas u tamnoj vodi jer je moguce
1) da shellcode detektira i zaobidje 0xCC kao sto neki anti-SoftICE proggyi rade
2) da ga prepise sa standardnim prologom i zaobidje :)

Najveci kandidat za prevenciju ovakvog tipa jest definitivno WSASocket koji se ne koristi tako cesto kao CreateProcess*

Sve u svemu, boris se sa vjetrenjacama, za vecinu stack-based zastita postoje workaroundovi koji ih nekim prljavim trikovima zaobilaze, /GS flag koji koristi MS-ov kompajler i oni cookies na stogu su po meni najelegantnije rjesenje. Ovo je inherentni problem nesavrsenosti samih unamanaged jezika, jedina prava zastita jest virtualna masina :)
[ Vojislav Milunovic @ 08.12.2004. 16:19 ] @
Ma znam da ovo ne može da spreči pravi do jajae šellkode, ali to je bio mali trening više za mene... čisto da pišem =) doduše ima i boljih fora, recimo da se napiše šellkode koji skida program sa net-a i izvršava ga u memoriji koju napravi... to baš pišem ovih dana =)