Hacking °ü·Ã °Ô½ÃÆÇ

2000/09/13(20:42) from 203.254.154.69
ÀÛ¼ºÀÚ : °­ÁÙ±â (jkkang65@hanmail.net) Á¶È¸¼ö : 4428 , ÁÙ¼ö : 163
·¹À̽º ÄÁµð¼Ç
0. ÇÁ·Î¼¼½º¿Í CPU
À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ µÎ°³ ÀÌ»óÀÇ ÇÁ·Î¼¼½º°¡ µ¿½Ã¿¡ ½ÇÇà
µÉ °æ¿ì, ±× µÎ°³ÀÇ ÇÁ·Î¼¼½º´Â ¼­·Î CPU ¸¦ Â÷ÁöÇϱâ
À§ÇØ CPU ¸¦ ÇâÇØ °æÀïÇÏ¸ç ´Þ¸®´Â ÇüÅ°¡ µÇ¾îÁø´Ù.

¿¹¸¦ µé¾î, ÀÌ·¯ÇÑ ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù°í °¡Á¤ÇØ º¸ÀÚ.
{
- X ¸¦ Ãâ·Â
- child process¸¦ »ý¼º
- O ¸¦ Ãâ·Â
- ¹«ÇÑ·çÇÁ
}
ÀÌ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄ×À» °æ¿ì À̷лóÀ¸·Î´Â XOXOXOX..
½ÄÀ¸·Î ¸ðÇÁ·Î¼¼½º°¡ Ãâ·ÂÇÏ´Â X¿Í ÀÚÇÁ·Î¼¼½º°¡ Ãâ·ÂÇÏ
´Â O°¡ Çѹø¾¿ ¹ø°¥¾Æ ³ªÅ¸³ª¾ß ÇÏ°ÚÁö¸¸ ½ÇÁ¦·Î´Â ¸ðÇÁ
·Î¼¼¼­¿Í ÀÚÇÁ·Î¼¼¼­°¡ CPU¸¦ Â÷ÁöÇϱâ À§ÇØ °è¼ÓÇؼ­
´Þ¸®´Â ÇüÅ°¡ µÇ¾î XXOOXOOXOOOXXOOOOX...¿Í °°ÀÌ ºÒ±Ô
Ä¢ÀûÀÎ °á°ú°¡ ³ªÅ¸³ª°Ô µÈ´Ù. Race ConditionÀº ÀÌ·¯ÇÑ
Ư¼ºÀ» ÀÌ¿ëÇÏ´Â ÇØÅ· ±â¹ýÀ¸·Î, ¸ñÇ¥ ÇÁ·Î±×·¥°ú ÇØÄ¿
ÀÇ exploitÀÌ ¼­·Î °æÀïÇÏ°Ô ¸¸µêÀ¸·Î½á ÀÛ¾÷ÀÇ Ã³¸®½Ã
°£À» °¡·Îä´Â °ÍÀÌ´Ù. Race ConditionÀº ÁÖ·Î ÀÓ½ÃÆÄÀÏ
À» »ý¼ºÇÏ´Â setuid ÇÁ·Î±×·¥À» ¸ñÇ¥ ÇÁ·Î±×·¥À¸·Î ÇÏ´Â
µ¥, ¸ñÇ¥ ÇÁ·Î±×·¥ÀÌ ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇϱâ Àü¿¡ ÇØÄ¿ÀÇ
exploitÀÌ ¸ÕÀú ±× ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇϵµ·Ï ÇÔÀ¸·Î½á ÀÌ
·ç¾î Áö´Â °ÍÀÌ´Ù.



1. Race Condition ÀÇ Á¤ÀÇ
Race ConditionÀ̶õ, ¹ö±×¸¦ °®°í ÀÖ´Â setuid ÇÁ·Î±×·¥
°ú ÇØÄ¿ÀÇ exploit ÀÌ ¼­·Î °æÀï(Race) »óÅÂ(Condition)
¿¡ À̸£°Ô ÇÏ¿©, setuid ÇÁ·Î±×·¥ÀÇ ±ÇÇÑÀ¸·Î ´Ù¸¥ ÆÄÀÏ
¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ¹æ¹ýÀ» ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î ÇÑ
ÇÁ·Î±×·¥ÀÌ rootÀÇ ¼ÒÀ¯±ÇÀ¸·Î setuid°¡ ºÙ¾î ÀÖ°í, ¶Ç
ÀÌ ÇÁ·Î±×·¥ÀÌ ÀÛ¾÷ÀÇ ¼º°Ý»ó ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇÑ´Ù°í ÇÒ
¶§ ÇØÄ¿°¡ ±× ÀÓ½ÃÆÄÀÏ°ú °°Àº À̸§ÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ »ý
¼ºÇØ µÎ¾ú´Ù¸é ½ÇÁ¦·Î ÇÁ·Î±×·¥ÀÌ Á¶ÀÛÇÏ´Â ÆÄÀÏÀº ½Éº¼
¸¯ ¸µÅ©µÈ ¸ñÇ¥ÆÄÀÏÀÏ °ÍÀÌ´Ù. º¸´Ù ±¸Ã¼ÀûÀÎ ¿¹¸¦ µé¾î
º¸ÀÚ.

Solaris 2.6 ÀÌÇÏ ¸ðµç ½Ã½ºÅÛ¿¡¼­ kcms_calibrate ¶ó´Â
ÇÁ·Î±×·¥Àº /tmp µð·ºÅ丮¿¡ Kp_kcms_sys.semcd ¶ó´Â ÀÓ
½ÃÆÄÀÏÀ» »ý¼ºÇÏ°Ô µÈ´Ù. ¸¸¾à ÇØÄ¿°¡ kcms_calibrate¸¦
½ÇÇàÇϱâ Á÷Àü¿¡ /tmp/Kp_kcms_sys.semcd ¶ó´Â À̸§À¸·Î
/root/.rhosts ¸¦ ¸ñÀûÁö·Î °®´Â ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µç´Ù
¸é ½ÇÁ¦·Î kcms_calibrate°¡ Á¶ÀÛÇÏ´Â ÆÄÀÏÀº ½Éº¼¸¯ ¸µ
Å©ÀÇ ¸ñÇ¥ÆÄÀÏ·Î ¼³Á¤µÇ¾î ÀÖ´Â /root/.rhosts°¡ µÇ´Â°Í
ÀÌ´Ù. ´ÙÇàÈ÷ Solaris ¿¡¼­´Â /root/.rhosts¸¦ Á¶ÀÛÇÏ´Â
°Í¸¸À¸·Î root±ÇÇÑÀÇ ½©À» ¾òÀ» ¼ö´Â ¾øÁö¸¸ rootÀÇ ±Ç
ÇÑÀ¸·Î ´Ù¸¥ ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö Àִٴ°͸¸À¸·Îµµ ÃæºÐÈ÷
º¸¾È»óÀÇ ÇêÁ¡ÀÌ µÉ ¼ö ÀÖ´Ù.

±×·¯¸é ÀÌ¿Í°°Àº Race ConditionÀÌ ÀÌ·ç¾îÁö±â À§ÇÑ Á¶
°ÇÀ» ¸ÕÀú ¾Ë¾Æº¸ÀÚ.



2. Race ConditionÀÌ ¹ß»ýÇÒ Á¶°Ç

ÇØÄ¿°¡ A¶ó´Â ÇÁ·Î±×·¥À» ´ë»óÀ¸·Î Race ConditionÀ» ½Ã
µµÇÏ°íÀÚ ÇÒ¶§, A ´Â ´ÙÀ½°ú °°Àº Á¶°ÇÀ» ¸¸Á·ÇÏ°í ÀÖ¾î
¾ß ÇÑ´Ù.

- setuid °¡ ºÙ¾î ÀÖÀ»°Í.
- ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇÒ °Í.
- ±× ÀÓ½ÃÆÄÀÏÀÇ À̸§À» ÇØÄ¿°¡ ¹Ì¸® ¾Ë°í ÀÖÀ»°Í.
- ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇÒ¶§ Race Condition ¿¡ ´ëÇÑ ´ëó¸¦
ÇÏÁö ¾ÊÀ»°Í.

À§ÀÇ 4°³ÀÇ Á¶°ÇÀÌ µ¿½Ã¿¡ ¸¸Á·µÉ ¶§, ÇØÄ¿´Â A ¶ó´Â ÇÁ
·Î±×·¥À» ´ë»óÀ¸·Î Race ConditionÀ» ½ÃµµÇÒ ¼ö ÀÖ´Ù.




3. exploit ÀÇ ±¸Á¶

Race ConditionÀ» ÀÌ¿ëÇÑ exploitÀ» Á¦ÀÛÇÒ ¶§¿¡ explo-
itÀº ÃÖ¼ÒÇÑ ´ÙÀ½ÀÇ ±â´ÉÀ» °¡Á®¾ß ÇÑ´Ù.

{
- system() ÇÔ¼ö ¶Ç´Â exec() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© Ÿ
°Ù ÇÁ·Î±×·¥À» ¹é±×¶ó¿îµå·Î ½ÇÇà½Ãų°Í.
( ÀÌ·Î½á ¸ñÇ¥ ÇÁ·Î±×·¥°ú exploitÀº Race Condition »ó
Å¿¡ ³õ¿©Áö°Ô µÈ´Ù. )

- symlink() ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÀÌ¹Ì ¾Ë°í ÀÖ´Â ÀÓ½Ã
ÆÄÀÏÀÇ À̸§À¸·Î ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÑ´Ù.
( ¸ñÇ¥ ÇÁ·Î±×·¥ÀÌ ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇϱâ Àü¿¡ ¹Ì¸® °°Àº
À̸§ÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÔÀ¸·Î½á ¸ñÇ¥ ÇÁ·Î±×·¥ÀÌ
Á¶ÀÛÇÏ´Â ÆÄÀÏÀÇ °æ·Î¸¦ ¹Ù²Ù¾î µÎ´Â °ÍÀÌ´Ù. )
}

ÀÌ exploitÀ» ¸ñÇ¥ ÇÁ·Î±×·¥¿¡ ´ëÇØ ½ÇÇà½ÃÄ×À»¶§ expl-
oitÀÇ ½ÇÇàÀÌ ³¡³ª±â Àü¿¡´Â Race ConditionÀÌ ¼º°øÇß´Â
Áö¸¦ ÆľÇÇÒ ¼ö ¾øÀ¸¹Ç·Î, for ¹®À» ÀÌ¿ëÇÏ¿© ¿©·¯¹ø ¹Ý
º¹½ÃÄÑ Áִ°ÍÀÌ ¼º°øÈ®·üÀ» ³ôÀÏ ¼ö ÀÖ´Ù.

symlink() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÒ¶§, ¸ñ
Ç¥ÆÄÀÏÀ» Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏ·Î ÁöÁ¤ÇÒ °æ¿ì default u-
mask¿¡ ÀÇÇؼ­ rwxrwxrwxÀÇ ±ÇÇÑÀ» °®´Â ¸ñÇ¥ÆÄÀÏÀÌ »ý
¼ºµÇ¾î Áø´Ù. ¸ñÇ¥ ÇÁ·Î±×·¥ÀÌ ¸¸ÀÏ root ¼ÒÀ¯¶ó¸é, °á
±¹ ¸ñÇ¥ÆÄÀÏÀº root ¼ÒÀ¯·Î ¸¸µé¾î Áú °ÍÀÌ´Ù. ÇØÄ¿´Â
ÀÌ·¸°Ô »ý¼ºµÈ ¸ñÇ¥ÆÄÀÏÀ» ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù. ¶Ç´Â, ÀÌ
¹Ì Á¸ÀçÇÏ´Â ÆÄÀÏ, ¿¹¸¦ µé¾î /etc/passwd µîÀ» ¸ñÇ¥ÆÄ
ÀÏ·Î ÁöÁ¤ÇÏ¸é ¸ñÇ¥ ÇÁ·Î±×·¥ÀÌ Á¶ÀÛÇÏ´Â ÆÄÀÏÀº ½Éº¼¸¯
¸µÅ©·Î ¿¬°áµÈ /etc/passwd °¡ µÇ´Â °ÍÀÌ´Ù.



4. »õ·Î¿î Race Condition

ÇÁ·Î±×·¡¸ÓµéÀº ÇØÄ¿µéÀÌ Race ConditionÀ» ÀÌ¿ëÇÏ¿© ½Ã
½ºÅÛÀ» À§ÇùÇÏ´Â °ÍÀ» ¸·±âÀ§ÇØ ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» »ý
°¢ÇØ ³Â´Ù.

- ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇÒ ¶§, ±× ÀÓ½ÃÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÏ´Â
ÆÄÀÏÀÎÁö °Ë»çÇÑ´Ù.
- ¸¸ÀÏ ÀÌ¹Ì Á¸ÀçÇÏ°í ÀÖ´Ù¸é exploitÀÌ »ý¼ºÇÑ ½Éº¼¸¯
¸µÅ©ÀÏ °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î, ±× ÆÄÀÏÀ» Áö¿ì°í »õ·Î ÀÓ
½ÃÆÄÀÏÀ» »ý¼ºÇÑ´Ù.

ÇÏÁö¸¸ ÇØÄ¿µéÀº ÇÁ·Î±×·¡¸ÓµéÀÇ ³ë·ÂÀ» ¹«½ÃÇϵíÀÌ ´õ
¿í ¹ßÀüµÈ ÇüÅÂÀÇ Race ConditionÀ» °³¹ßÇÔÀ¸·Î½á À̸¦
¹«»öÇÏ°Ô Çß´Ù. º¸´Ù ¹ßÀüµÈ ÇüÅÂÀÇ Race ConditionÀº
´ÙÀ½°ú °°Àº ±¸Á¶¸¦ °®´Â´Ù.

{
- system() ÇÔ¼ö ³ª exec() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ¸ñÇ¥
ÇÁ·Î±×·¥À» ¹é±×¶ó¿îµå·Î ½ÇÇà½ÃŲ´Ù.
- ÀÓ½ÃÆÄÀÏÀÌ ½Éº¼¸¯ ¸µÅ©ÀÎÁö ÆÇ´ÜÇÏ¿© ½Éº¼¸¯ ¸µ
Å©°¡ ¾Æ´Ï¶ó¸é ÀÓ½ÃÆÄÀÏÀ» Áö¿î´Ù.
- ÀÓ½ÃÆÄÀÏÀÇ À̸§À¸·Î ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÑ´Ù.
}

´Ù½Ã ¸»Çؼ­, ¸ñÇ¥ ÇÁ·Î±×·¥ÀÌ ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇÒ ¶§,
Race ConditionÀÌ ÀÌ·ç¾îÁö°í Àִ°¡¸¦ °Ë»çÇÑ µÚ¿¡ ÀÓ
½ÃÆÄÀÏÀ» »ý¼ºÇÑ´Ù´Â Á¡À» ÀÌ¿ëÇÏ¿© ÀÏ´Ü ¸ñÇ¥ ÇÁ·Î±×·¥
À¸·Î ÇÏ¿©±Ý ¾ÈÀüÇÑ Á¶°ÇÀ» ¸¸µé¾î ÁÖ°í ¸ñÇ¥ ÇÁ·Î±×·¥
ÀÌ ¾ÈÀüÇÏ´Ù°í »ý°¢Çϸç ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇÏ´Â ¼ø°£ »ý¼º
µÈ ÀÓ½ÃÆÄÀÏÀ» Áö¿ì¸é¼­ ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÏ´Â °ÍÀÌ´Ù.
ÀÌ·¸°Ô µÇ¸é ¸ñÇ¥ ÇÁ·Î±×·¥°ú exploit Àº ÀÓ½ÃÆÄÀÏÀ» »ç
ÀÌ¿¡ µÎ°í ¼­·ÎÀÇ µ¿Å¸¦ ÆľÇÇϸç CPU ¸¦ ÇâÇØ °è¼ÓÇØ
¼­ ´Þ¸®´Â ÇüÅ°¡ µÇ¾î ±×¾ß¸»·Î Race Condition À̶ó´Â
À̸§ÀÌ Àß °É¸Â°Ô µÈ´Ù.



5. ÇÁ·Î±×·¡¸ÓÀÇ ´ëÀÀÃ¥

ÇÁ·Î±×·¡¸ÓµéÀº ±âÁ¸ÀÇ ¹æ¹ýÀ¸·Î´Â Race ConditionÀ» ÇÇ
ÇÒ ¼ö ¾øÀ½À» ¾Ë°í ¶Ç Çѹø Race Condition¿¡ ´ëÇÑ ´ëÀÀ
À» °í¾ÈÇØ ³Â´Ù. ÀÓ½ÃÆÄÀÏÀ» »ý¼ºÇÒ ¶§, ÀÏ´Ü ÀÓ½ÃÆÄÀÏ
À» »ý¼ºÇÑ µÚ¿¡ ¹æ±Ý »ý¼ºÇÑ ÆÄÀÏÀÌ ½Éº¼¸¯ ¸µÅ©ÀÎÁö¸¦
°Ë»çÇÏ´Â ¹æ¹ýÀÌ´Ù. ÇöÀç±îÁö ÀÌ·¯ÇÑ ¹æ½ÄÀÇ ÇÁ·Î±×·¥Àº
Race ConditionÀÌ ºÒ°¡´ÉÇÑ °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖ´Ù.
/**************************************************/

ps. security.kaist.ac.kr ÀÇ ¼­ÀǼº(paladin@sparcs.ka
ist.ac.kr)´ÔÀÇ ¸®Æ÷Æ®¸¦ Âü°íÇÏ¿´½À´Ï´Ù.



Modify Delete Post Reply Backward Forward List
Powered by Kang Jul Ki