½Ã½ºÅÛ ÇØÅ·

 1574, 12/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   APlusHacker
   ¹öÆÛ ¿À¹öÇ÷ο쿡 °üÇÑ Áú¹®ÀÔ´Ï´Ù. µµ¿òºÎŹµå·Á¿ä

http://www.hackerschool.org/HS_Boards/zboard.php?desc=asc&no=1729 [º¹»ç]


È¥ÀÚ °øºÎ¸¦ ÇÏ´Ùº¸´Ï Çرò¸®´Â ºÎºÐµµ ¸¹°í À¸·¹ ÁüÀÛÇÏ´Â ºÎºÐµµ ¸¹¾Æ¼­
Áú¹® ¿Ã·Áº¾´Ï´Ù¤Ð¤Ð

1]  12´Ü¿ø ¹®Á¦¿¡ °üÇѰǵ¥ Á¦ »ý°¢À¸·Î´Â 256byte ÀÇ str°ú 8byteÀÇ dummy
4byteÀÇ SFP 4byteÀÇ RET °ªÀÌ Àֱ⿡ ¸Þ¸ð¸®¿¡ ½©Äڵ带 ¿Ã·ÁÁÖ±â À§ÇØ ½©Äڵ带 ¿Ã·ÁÁÖ°í
±× ¸Þ¸ð¸®¿¡ ¿Ã¸° ½©ÀÇ ÁÖ¼Ò°ªÀ» ¸®ÅÏ°ª¿¡ ½áÁÖ¸é µÈ´Ù°í ÀÌÇØÇÏ°í ÀÖ½À´Ï´Ù.

±×·±µ¥ ÀÌ ½© Äڵ带 ¿Ã¸± ¶§ print ¶ó´Â ¸í·É¾î·Î AAAAAAÀÌ·¸°Ô NOP¸¦ ÀÔ·ÂÇØÁÖ°í
ÈÄ¿¡ ½© Äڵ尪À» ½á³Ö¾îÁÖ´øµ¥ ÀÌ ½©Äڵ尪À» ½á³Ö¾îÁÖ´Â°Ç print¶ó´Â ¸í·É¾î¿¡ ´ëÇÑ °ªÀ¸·Î ¹Þ¾Æµé¿©Á®¼­ ÀÌ ½©Äڵ尡 ¸Þ¸ð¸®¿¡ ¿Ã¶ó°¡°ÔµÇ´Â°Ç°¡¿ä?

2.±×¸®°í ½©ÄÚµå´Â ¾î¶»°Ô ±¸Çϴ°ǰ¡¿ä ½Ã½ºÅÛ¸¶´Ù ½©Äڵ尡 ´Ù¸£´Ù°í ¾Ë°íÀִµ¥ À߸øµÈ°ÇÁö.

3.ÀÌ ½©ÄÚµåÀÇ ÁÖ¼Ò°ªÀº ¶Ç ¾î¶»°Ô ±¸Çϴ°ǰ¡¿ä

4. ¸¶Áö¸·À¸·Î Àú´Â ÀÌÇØÇÏ°í ÀÖ´Â°Ô NOP¸¦ ¾Õ¿¡´Ù ³Ö¾îÁà¾ß ¾Õ¿¡ str¿µ¿ªÀ» ´Ù ó¸®Çؼ­ Ä¡¿öÁÖ°í
¸¶Áö¸·¿¡ ret°ªÀ» º¯°æÇÒ ¼ö ÀÖ´Ù¶ó°í ÀÌÇØÇÏ°í Àִµ¥ ¿©±â ¿©·¯ Áú¹®µé¿¡ ´ëÇÑ ´äº¯À» º¸´Ï
NOP¸¦ ¸Ç³¡°ú ¸Ç¾Æ·¡ºÎºÐ¿¡ ³Ö¾îÁÖ°í ret°ªÀ» °¡¿îµ¥´Ù ³Ö¾î¼­ ¼º°øÇß´Ù ÇϽô ºÐµéµµ ÀÖ´õ¶ó±¸¿ä
ÀÌ°Ô ¾î¶»°Ô °¡´ÉÇÑ°ÅÁÒ ¸®ÅÏ°ªÀº ¹öÆÛÀÇ °¡Àå ³ôÀº ÁÖ¼Ò°ªÀ» °®°íÀÖ´Ù¶ó°í ¾Ë°íÀִµ¥..

Àß ºÎŹµå¸³´Ï´Ù (²Ù¹÷ ) °¨»ç°¨»ç!

  Hit : 3866     Date : 2014/02/08 12:49



    
Turtle1000 1.

1. NOPÀº No OperationÀÇ ¾àÀÚ·Î \x90À» ÀǹÌÇÕ´Ï´Ù. \x41ÀÎ A¿Í´Â ´Ù¸£°í¿ä.
º¸Åë NOPÀ» ³Ö¾îÁÖ´Â ÀÌÀ¯´Â ½©Äڵ尡 µé¾î°£ À§Ä¡¸¦ 'Á¤È®È÷' ¾ËÁö ¸øÇÒ ¶§ ÀÔ´Ï´Ù.
¿¹¸¦ µé¾îµå¸®¸é,

// µð·ºÅ丮 À§Ä¡´Â /home/user/vuln.c
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
char str[256]; // dummy = 8;

strcpy(str, argv[1]);
printf("%s\n", str);

return 0;
}

À§¿Í °°Àº Äڵ尡 ÀÖ´Ù°í °¡Á¤Çغ¸°Ú½À´Ï´Ù.(C ¾ð¾î´Â ¾Æ½Å´Ù°í °¡Á¤Çß½À´Ï´Ù.)
gcc vuln.c -o vuln -> À¸·Î ÄÄÆÄÀÏÀ» ÇÏ°í,
gdb·Î ºÐ¼®Çغ¸´Ï /home/user/vuln A*243 + (25¹ÙÀÌÆ® ½©ÄÚµå) + ¸®ÅÏÁÖ¼Ò
ÀÇ ¸®ÅÏÁÖ¼Ò°¡ 0xbffffabc °¡ ³ª¿Ô½À´Ï´Ù.(¿¹¸¦ µé¾î¼­¿ä.)

±×·±µ¥ ±×³É ./vuln A*243 ~ À¸·Î ½ÇÇàÀ» Çϸé Segmentation Fault °¡ ¶ß°Ô µË´Ï´Ù.
ÀÚ¼¼È÷ ¼³¸íÀº ¸øÇص帮°ÚÁö¸¸, ÇÁ·Î±×·¥ À̸§ÀÇ ±æÀÌÂ÷ÀÌ¿¡ ÀÇÇؼ­ ±×·±°Ì´Ï´Ù.
±×·¸±â ¶§¹®¿¡ ½ÇÁ¦ ¸®ÅÏÁÖ¼Ò´Â 18 ¹ÙÀÌÆ® Â÷ÀÌ°¡ ³ª°ÔµË´Ï´Ù.
ÇÏÁö¸¸, ÀÌ·±°É °è»êÇϱâ´Â ±ÍÂú°ÚÁÒ ? ±×·¸±â ¶§¹®¿¡ NOPÀ» ¾²´Â °Ì´Ï´Ù. À§ÀÇ Äڵ屸¼ºÀ»

./vuln NOP*243 + (25¹ÙÀÌÆ® ½©ÄÚµå) + ¸®ÅÏÁÖ¼Ò -> ·Î ±¸¼ºÇÏ°Ô µÇ¸é,
NOP*243 ¿µ¿ª Áï, 243 ¹ÙÀÌÆ® ¸¸Å­ÀÇ ÁÖ¼Ò ¿ÀÂ÷°¡ ÀÖ´õ¶óµµ NOPÀ» Ÿ°í¼­ ½©ÄÚµåÀÇ À§Ä¡±îÁö °¡°ÔµÇ´Â °Ì´Ï´Ù.
ÀÌ°ÍÀ» NOP Sled ¶ó°í ÇÕ´Ï´Ù.

»ì¦ À߸ø ¾Ë°í °è½Å °Í °°¾Æ¼­ Á» ¼³¸íµå·È±¸¿ä. ¾Æ¸¶ `python -c 'print ~'` À¸·Î ±¸¹®À» ³ÖÀ¸½ÇÅÙµ¥,
½©Äڵ尡 ¸Þ¸ð¸®¿¡ ¿Ã¶ó°¡´Â °ÍÀÌ ¸Â½À´Ï´Ù.
2014/02/09  
Turtle1000 2.

½©ÄÚµå´Â º¸Åë... C¾ð¾î -> strace -> asm -> ... ÀÇ °úÁ¤À» °ÅÃļ­ ¸¸µé ¼ö Àִµ¥,
¾î´ÀÁ¤µµ ¾î¼ÀÀ» ÇÒ ÁÙ ¾Æ½Å´Ù¸é Á¤¸» ½±°í °£´ÜÇÏ°Ô ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ, ¿î¿µÃ¼Á¦¸¶´Ù ½©ÄÚµå´Â ´Ù¸¨´Ï´Ù.
2014/02/09  
Turtle1000 3.

½©Äڵ带 ¾î¶²½ÄÀ¸·Î ¿Ã·Á¼­ »ç¿ëÇϽôÂÁö ¾È½áÁּż­ µÎ °¡Áö ¹æ¹ýÀ» ¾Ë·Áµå¸®°Ú½À´Ï´Ù.

1. char str[256]°ú °°Àº º¯¼ö¿¡ ³Ö¾î¼­ ÁÖ¼Ò¸¦ ±¸ÇÏ´Â ¹æ¹ý

ASLRÀÌ °É·ÁÀÖÁö ¾ÊÀº ³·Àº ¹öÀüÀÇ ¿î¿µÃ¼Á¦¿¡¼­ ±¸ÇÒ ¶§´Â,
gdb¸¦ ÀÌ¿ëÇؼ­ ±¸ÇÒ ¼öµµ ÀÖ°í, ÀÌ°Ô ¾î·Á¿ì½Ã¸é ¼Ò½ºÄڵ带 ±×´ë·Î º¹»çÇؼ­
ÆÄÀÏÀ̸§ÀÇ ±æÀÌ(±æÀÌ°¡ °°¾Æ¾ß ÇÕ´Ï´Ù.)¸¦ °°°Ô ÇÑ ÈÄ¿¡
printf("%p\n", &str[242]); -> ½©Äڵ尡 ¿Ã¶ó°¡´Â °÷À» Âï¾îÁÖ¸é µË´Ï´Ù.

2. ȯ°æº¯¼ö¸¦ ÀÌ¿ëÇÒ °æ¿ìÀÇ ¹æ¹ý

º¸Åë export À̸§=`python -c 'print "\x90"*50 + "½©ÄÚµå"'` ¿Í °°Àº ¹æ½ÄÀ¸·Î ¸¹ÀÌ µî·ÏÇÕ´Ï´Ù.
À̸¦ ¾Ë¾Æ³»±â À§Çؼ­´Â,

void main(int argc, char *argv[])
{
printf("%p\n", getenv(argv[1]));
}

¿Í °°Àº ¼Ò½ºÄڵ带 ÀÛ¼ºÇϼż­ ¾Ë¾Æ³»½Ã¸é µË´Ï´Ù.
¸¸¾à Á¤È®ÇÑ À§Ä¡¸¦ ¾Ë°í½Í´Ù¸é,

#include <stdio.h>

int main(int argc, char *argv[])
{
char *ptr = argv[1];

ptr += (strlen(argv[0]) - strlen(argv[2]));
printf("%p\n", ptr);

return 0;
}

./ÇÁ·Î±×·¥¸í ȯ°æº¯¼ö¸í ./°ø°ÝÇÒÇÁ·Î±×·¥¸í -> À» ¼öÇàÇϽøé Á¤È®ÇÑ ½©ÄÚµåÀÇ À§Ä¡°¡ ³ª¿É´Ï´Ù.
(NOPÀÌ ÇÊ¿ä¾ø¾îÁö°Ô µË´Ï´Ù.)
2014/02/09  
Turtle1000 4.

Ãë¾àÇÑ ÇÔ¼öµéÀº ¹öÆÛÀÇ °æ°è°ªÀ» °Ë»çÇÏÁö ¾Ê½À´Ï´Ù.
Áï, ¸®ÅÏÀ» ³Ñ¾î°¡´õ¶óµµ °ªÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌÁÒ.

½©Äڵ带 ¿Ã¸®´Â ¹æ¹ýÀº ¸Å¿ì ¸¹½À´Ï´Ù.

ÇÒ´çµÈ ¹öÆÛ(char str[256] °°Àº)¿¡ ¿Ã¸®´Â ¹æ¹ý.
À̶§´Â "\x90"*243 + ½©ÄÚµå + ¸®ÅÏÁÖ¼Ò -> ¿Í °°ÀÌ ±¸¼ºµË´Ï´Ù.

ÇÒ´çµÈ ¹öÆÛ°¡ ³Ê¹« À۾Ƽ­(char str[4]) ¸®ÅÏ µÚ¿¡ ½©Äڵ带 ³Ö¾îÁÙ ¶§,
À̶§´Â "A"*8 + ¸®ÅÏÁÖ¼Ò + ½©ÄÚµå -> ¿Í °°ÀÌ ±¸¼ºÇÏ°í, µÚÀÇ ½©ÄÚµå ÁÖ¼Ò¸¦ ½áÁÖ¸é µË´Ï´Ù.

¸¶Âù°¡Áö·Î NOPÀ» ³Ö´Â ÀÌÀ¯´Â Á¤È®ÇÑ ½©ÄÚµåÀÇ À§Ä¡¸¦ ¾Ë ¼ö ¾øÀ»¶§°ÚÁÒ ?
2014/02/09  
Turtle1000 ¸¶Áö¸·À¸·Î,
Ä«Æä¿¡¼­ BOF ±Û ¾²°í ÀÖ½À´Ï´Ù ~ Â÷±ÙÂ÷±Ù º¸½Ã¸é¼­ ¸ð¸£´Â °Å ÀÖÀ¸¸é ¹°¾îº¸¼¼¿ä ~
ÀÚ±â¼Ò°³ ºÎºÐ¿¡ ÀÖ¾î¿ä ~
2014/02/09  
APlusHacker ÅÍƲ1000´Ô °¨»çÇÕ´Ï´Ù
Å« µµ¿ò ‰ç½À´Ï´Ù.!
2014/02/12  
  ¹öÆÛ ¿À¹öÇ÷ο쿡 °üÇÑ Áú¹®ÀÔ´Ï´Ù. µµ¿òºÎŹµå·Á¿ä[6]     APlusHacker
02/08 3865
1353   ¹öÆÛ¿À¹öÇ÷οì[3]     khs790809
01/31 3271
1352   ¸®´ª½º RELRO Áú¹®ÀÌ¿ä~[2]     cpcp77
01/21 4525
1351   ½ºÅÿ¡ ASLRÀÌ °É·ÁÀÖÀ¸¸é...???[3]     ygw0225
01/17 3854
1350   BOFÇÚµåºÏ ¸¶Áö¸·½Ç½À¹®Á¦ Áú¹®..[4]     ygw0225
01/08 3393
1349   À©µµ¿ìÁî ȯ°æ¿¡¼­ÀÇ setuid?[3]     namjmnam
12/31 2657
1348   level12¹®Á¦ esp °è¼Ó ¹Ù²ñ?? (level11¿¡¼­µµ...)[1]     wlghks
12/15 3199
1347   ¸®¸ðÆ® ¾îÅà    kumi123
12/11 3478
1346   Æäµµ¶ó ¿øÁ¤´ë 3 gate ¹®Á¦ Áú¹®ÀÔ´Ï´Ù.[1]     Deferto
11/30 3297
1345   ´ëÇб³ BOF°­Á ¹«ÀÓ½ÂÂ÷Æí[4]     shdac
11/28 3457
1344   ¾È³çÇϼ¼¿ä ÇØÅ·¿¡ °ü·ÃµÈ ÇÁ·ÎÁ§Æ®¸¦ ÇÏ°í½Í½À´Ï´Ù.     kespy7
11/17 2847
1343   ¹éÆ®·º     happyfran67
11/14 3746
1342   ftz level11À» Ç®°í Àִµ¥¿ä..[1]     kost0806
11/13 3185
1341   ¾Æ½ºÅ°¾Æ¸Ó°¡ °É·ÁÀÕÁö ¾ÊÀºµ¥..[1]     kumi123
11/09 3562
1340   À©µµ¿ì »ó¿¡¼­ÀÇ ¹öÆÛ¿À¹öÇ÷οì (0xff¿¡´ëÇÑÁú¹®)[1]     Deferto
11/04 3449
1339   ¾ÆÀ̵𰡠ũ·¢µÆ¾î¿ä, Çù¹Ú¸ÞÀÏÀÌ ¿Ô½À´Ï´Ù..[1]     Raice
11/01 3602
1338   ¹öÆÛ ¿À¹öÇÃ·Î¿ì ¿ÕÃʺ¸Æí[1]     heach23
10/03 3385
1337   Æäµµ¶ó 10 ¿À·ù°¡ os ÀÚü ¹®Á¦ÀÎÁö... À̹ÌÁö¹®Á¦ÀÎÁö....     kumi123
10/02 3137
1336   ¹¹ºÎÅÍ ¹è¿öº¸´Â°Ô ÁÁÀ»±î¿ä?     xkdlrjxkdltm
09/14 3271
1335   ¹öÆÛ ¿À¹ö Ç÷οì print¿Í printf ÀÇ Â÷ÀÌ[2]     xkdlrjxkdltm
09/05 3933
[1]..[11] 12 [13][14][15][16][17][18][19][20]..[79]

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