950, 1/48 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   rlaheehoon
   http://blog.naver.com/rlaheehoon
   BOF shell code ¸¸µå´Âµ¥ Áú¹®ÀÌ ÀÖ½À´Ï´Ù

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=564 [º¹»ç]


´Þ°í³ª´ÔÀÇ ¹®¼­¸¦ º¸¸é¼­ µû¶óÇØº¸°í Àִµ¥¿ä

ÀÌ ¹®¼­¸¦ º¸¸é execve ¾È¿¡¼­ ·¹Áö½ºÅÍ¿¡ °ªµéÀ» ³Ö¾îÁØÈÄ int 0x80À¸·Î system callÀ» È£ÃâÇÏ´Â ÀÎÅÍ·´Æ®¸¦ ¹ß»ý½Ãŵ´Ï´Ù

±×·±µ¥ gcc version 4.6.1ÀÎ Á¦ ÄÄÇ»ÅÍ¿¡¼­ objdump ÇØº¸¸é ´Ù¸¥ ¾î¼Àºí¸® ÄÚµå´Â ´Ù ¶È°°Àºµ¥
int 0x80ÀÌ ÀÖ¾î¾ß ÇÒ ºÎºÐ¿¡ call *0x80d70b0ÀÌ ÀÖ½À´Ï´Ù.
objdump -d shell | grep 80d70b0 ÇØºÁµµ callÇÏ´Â ºÎºÐÀº ¸¹Àºµ¥ ±× ÁÖ¼Ò¿¡ ¹¹°¡ ÀÖ´ÂÁö´Â ³ª¿ÀÁö ¾Ê½À´Ï´Ù
¾Æ¹«·¡µµ ´Ù¸¥ ÇÁ·Î¼¼½º ¾ÈÀÇ instructionÀ» È£ÃâÇÏ´Â °Í °°½À´Ï´Ù

¶Ç, c¿¡¼­ ÀζóÀÎ ¾î¼Àºí·Î ÄÚµù ÇØºÁµµ
"push $0x0068732f\n\t"
                "push $0x6e69622f\n\t"
                "mov %esp,%ebx\n\t"
                "push $0x0\n\t"
                "push %ebx\n\t"
                "mov %esp,%ecx\n\t"
                "mov $0x0, %edx\n\t"
                "mov $0xb, %eax\n\t"
                "int $0x80\n\t"
´Â Àß µÇÁö¸¸

"push $0x0068732f\n\t"
                "push $0x6e69622f\n\t"
                "mov %esp,%ebx\n\t"
                "push $0x0\n\t"
                "push %ebx\n\t"
                "mov %esp,%ecx\n\t"
                "mov $0x0, %edx\n\t"
                "mov $0xb, %eax\n\t"
                "call *0x80d70b0\n\t"
ó·³ ¸¶Áö¸·ÁÙÀ» ¹Ù²Ù¸é ¼¼±×¸àÅ×ÀÌ¼Ç ¿À·ù¸¸ ¹ß»ýÇÕ´Ï´Ù...

¿Ö ±×·±Áö ÇѼö °¡¸£ÃÄÁÖ½Ã¸é °¨»çÇϰڽÀ´Ï´Ù...

  Hit : 3316     Date : 2012/04/23 11:49



    
¸Û¸Û ÄÄÆÄÀÏ·¯°¡ ÃÖÀûÈ­¸¦ ÇÑ °Í °°³×¿ä volatile Ű¿öµå¸¦ ºÙ¿©¼­ ÄÄÆÄÀÏÇØº¸¼¼¿ä
asm volatile("NOP") ÀÌ·±½ÄÀ¸·Î..
±×¸®°í 0x80d70b0¿£ ¾Æ¸¶ ÇÔ¼öÅ×À̺íÀÌ ÀÖÀ» °Ì´Ï´Ù. gdb¸¦ ÀÌ¿ëÇÏ¿© µð¹ö±ëÇØº¸¼¼¿ä..
2012/04/23  
rlaheehoon ¾Æ gdb·Î ÇÏ´Ï ÀâÈ÷³×¿ä
¸î½ÊÁÙ µû¶ó°¡º¸´Ï int $0x80ÀÌ ÀÖ±ä ÀÖ³×¿ä ¹«½¼ ÃÖÀûÈ­ ÀÛ¾÷À» Çϴ°ÇÁö º¹ÀâÇØ¼­ ¸ð¸£°Ú½À´Ï´Ù¸¸ ¤»¤»
objdump¿Í gdb°¡ ¹ºÁö Á¤È®È÷ °øºÎÇØ ºÁ¾ß°Ú½À´Ï´Ù

´äº¯ °¨»çÇÕ´Ï´Ù~
2012/04/25