Network ÇØÅ·°ú º¸¾È Áö±Ý±îÁö ³Ê¹«µµ ¸¹Àº ºÐµéÀÌ ³×Æ®¿öÅ© ÇØÅ·°ú º¸¾È¿¡ ±²ÀåÈ÷ ¸¹Àº °ü½ÉÀ» °¡Áö°í °è¼ÌÀ» °Å¶ó »ý°¢ÇÕ´Ï´Ù. ¸ÕÀú ³×Æ®¿öÅ© ÇØÅ·¿¡´Â ¾î¶²ÇÑ Àåºñ³ª ȯ°æÀÌ ²Ù¸çÁ® ÀÖ¾î¾ß ÇÏ´ÂÁö ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¡á ³×Æ®¿öÅ© ÇØÅ· Áغñ¹° ¡á 1.ÀÎÅÍ³Ý Á¢¼ÓÀ» À§ÇÑ Àåºñ ÀÎÅÍ³Ý Àü¿ë¼±À» »ç¿ëÇÏ´Â ºÐÀ̶ó¸é ÀÚ½ÅÀÇ PC(´Ü¸»±â)¿¡ LANÄ«µå°¡ ÀÖ¾î¾ß °ÚÁÒ? ÀüÈ­¼±À» ÀÌ¿ëÇؼ­ ÀÎÅͳݿ¡ Á¢¼ÓÀ» ÇؾßÇÏ´Â ºÐÀº ModemÀÌ ´Þ·Á ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¹°·Ð ModemÀ» ÅëÇØ ÀÎÅͳݿ¡ Á¢¼ÓÀ» À§Çؼ­´Â ÀÎÅÍ³Ý ¼­ºñ½º¿¡ °¡ÀÔÀÌ µÇ¾î ÀÖ¾î¾ß °ÚÁÒ? 2. NetWork¿Í MutitaskingÀÌ Áö¿øµÇ´Â OS(Win95/NT, Linux µî) ½ÇÁ¦·Î ÇØÅ·°úÁ¤¿¡¼­´Â ´Ü¸»±â¸¦ ¿©·¯°³ ¶ç¿ö¾ß ÇÒ °æ¿ì°¡ ¸¹½À´Ï´Ù. ±×·¡¼­ MutitaskingÀÌ Áö¿øµÇ¸é ÁÁ½À´Ï´Ù. 3. ³×Æ®¿öÅ© ¿ë ÇÁ·Î±×·¥(NetTerm, WS-FTP µî) ´Ù¸¥ ½Ã½ºÅÛ¿¡ Á¢±ÙÀ» Çϱâ À§Çؼ­´Â TelnetÀ̳ª Ftp µîÀ»»ç¿ëÇÕ´Ï´Ù. ³×Æ®¿öÅ©°¡ °¡´ÉÇÑ OS¿¡¼­´Â ±âº»ÀûÀ¸·Î Á¦°øÀ» ÇÏÁö¸¸ Á»´õ Æí¸®ÇÑ Àü¿ë ÇÁ·Î±×·¥À» »ç¿ëÇϼ¼¿ä. 4. ÇØÅ·µµÁß¿¡´Â ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡¼­ ÇÏ´Â ÀÏÀº ±×¸® ¸¹Áö ¾Ê±â ¶§¹®¿¡ Çϵå¿þ¾î »ç¾çÀº ±×¸® »ó°üÀº ¾øÁö¸¸ ÁÁÀ¸¸é ÁÁÀ» ¼ö·Ï ÁÁ°ÚÁÒ? ÇÏÁö¸¸ ModemÀº ¼Óµµ°¡ ºü¸¥ °ÍÀ» »ç¿ëÇϽʽÿÀ. ÀüÈ­ºñ ¹®Á¦µµ ÀÖ°í... Âü°í·Î ÀÚ½ÅÀÇ PC¿¡ Windows NT server¸¦ »ç¿ëÇÏ°í ´Ù¸¥ NT Server¿¡ ÀüÈ­¸¦ °É¾î Á¢¼ÓÇÑ ÈÄ Call Back ¼­ºñ½º¸¦ ¹ÞÀ¸¸é ÀüÈ­ºñ¸¦ µéÀÌÁö ¾Ê°íµµ ÀÎÅͳÝÀ» ¸¶À½´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁÁ°ÚÁÒ? ¡á Root ¾ÏÈ£ ¾Ë¾Æ³»±â ¡á ÀÚ! ¸ðµç°ÍÀÌ Áغñ°¡ µÇ¾ú´Ù¸é ÀÌÁ¦ ½ÃÀÛÇØ º¾½Ã´Ù. ´ëºÐºÐ ³×Æ®¿öÅ© ¼­ºñ½º¸¦ ÇÏ´Â ¼­¹öµéÀº OS¸¦ UNIX°è¿­À» »ç¿ëÇÕ´Ï´Ù. ±×·¡¼­ À¯´Ð½º °øºÎ¸¦ ÇÏ¼Å¾ß ÇÕ´Ï´Ù. º¸Åë ³×Æ®¿öÅ© »óÀÇ ÇØÅ·Àº ¾î¶² ÇÑ ¼­¹ö¿¡ Á¢¼ÓÇؼ­ ±×°÷¿¡ rootÀÇ °èÁ¤À» ¾Ë¾Æ ³»¼­ ±× ½Ã½ºÅÛÀ» ³» ¸¶À½´ë·Î ÁÖ¹«¸£´Â °Í(?)À» °ñÀÚ·Î ÇÕ´Ï´Ù. ±×·³ ·çÆ® °èÁ¤Àº ¾î¶»°Ô ¾Ë¾Æ³¾ ¼ö ÀÖÀ»±î¿ä? ¨ç root°¡ root°èÁ¤À¸·Î Á¢¼ÓÇÒ ¶§ ¿·¿¡¼­ ÁöÄѺ¸¸ç ¾ÏÈ£¸¦ ¾Ë¾Æ³»´Â ¹æ¹ý ¨è ·çÆ®ÀÇ °èÁ¤À¸·Î Á¢¼ÓµÇ¾îÀÖ´Â ´Ü¸»±â(terminal)¿¡¼­ root±ÇÇÑÀ» °¡Áø »ç¶÷ÀÌ Àá±ñ ÀÚ¸®¸¦ ºñ¿üÀ»¶§ Back Door¸¦ ¸¸µå´Â ¹æ¹ý ¨é Cracker µîÀ» ÀÌ¿ëÇÏ¿© root¾ÏÈ£¸¦ ¾Ë¾Æ³»´Â ¹æ¹ý ¨ê OSÀÚüÀÇ ¹ö±×¸¦ ÀÌ¿ëÇؼ­ ½Ã½ºÅÛ¿¡ Á¢±ÙÇÏ´Â ¹æ¹ý ¨ë SnifferingÀ» ÅëÇÑ ¾ÏÈ£¾Ë¾Æ³»±â ¹æ¹ý µîµî ¿©·¯°¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀÚ! ÀÌÁ¦ ÇÑ °¡Áö¾¿ Â÷±Ù Â÷±Ù À̾߱⸦ Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. ¼³¸íÀ» ÇÒ¶§¿¡´Â ±âº»ÀûÀÎ À¯´Ð½º »ç¿ë¹ýÀº À̾߱â ÇÏÁö ¾Ê½À´Ï´Ù. À¯´Ð½ºÀÇ ±âº»ÀûÀÎ ³»¿ë°ú ±âº» À¯Æ¿¸®Æ¼ÀÇ »ç¿ë¹ýÀº ¹Ì¸® ¹Ì¸® °øºÎÇϽñ⠹ٶø´Ï´Ù. À§¿¡¼­´Â À¯´Ð½ºÀÇ ±âº»Àº Á¤¸®ÇØ ³õ¾Ò½À´Ï´Ù. *´«Ä¡ ÄÚÄ¡·Î ¾ÏÈ£ ¾Ë¾Æ³»±â À̹ø¿¡ ¼Ò°³ÇÒ ¹æ¹ýÀº ¼³¸íÀÌ º°·ç ÇÊ¿ä¾ø½À´Ï´Ù. °¡´É¼ºµµ Èñ¹ÚÇÏÁö¸¸... ¸¸¾à ½Ã½ºÅÛ °ü¸®¸¦ Çϴ ģ±¸°¡ ÀÖ´Ù¸é ±× Ä£±¸¿¡°Ô ã¾Æ°¡¼­ °°ÀÌ ³ë´Â ¹æ¹ýÀ̶ó°í³ª ÇÒ±î¿ä? ±×³É Ä£±¸°¡ °ü¸®ÇÏ´Â °ÍÀ» º¸´Ù°¡ Ä£±¸°¡ ·Î±×ÀÎ °úÁ¤¿¡¼­ ¼Õ°¡¶ôÀ¸·Î ¾î´ÀÅ°¸¦ ´©¸£´Â°¡¸¦ ¼ø¼­±îÁö ¾Ë¾Æ³»´Â °ÍÀÔ´Ï´Ù. Á¤¸» Ä£ÇÏ´Ù¸é Àß ²¿¼Å¼­ Â÷¶ó¸® ¸»·Î ¾Ë·Á´Þ¶ó´Â °ÍÀÌ ÆíÇÏ°Ú±º¿ä. *°³ ±¸¸Û(Back Door)À» ¸¸µéÀÚ! À̹ø¿¡´Â Àü¿¡ ¸»ÇÑ Ä£±¸°¡ Àá±ñ È­Àå½Ç¿¡ °¬À»¶§ ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿©±â¼­ ºÎÅÍ´Â ¼³¸íÀÌ ¸¹ÀÌ ÇÊ¿äÇÕ´Ï´Ù. UNIX¿¡¼­ÀÇ ¸ðµç ÆÄÀÏÀº ¼ÒÀ¯ ID¿Í ¼ÒÀ¯ Group ID¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ¸¸¾à ±× ÆÄÀÏÀÌ ½ÇÇà ÆÄÀÏÀ̶ó¸é Set User ID¿Í Set Group ID¸¦ °¡Áú ¼öµµ ÀÖ½À´Ï´Ù. Set User ID³ª Set Group ID°¡ ¼³Á¤µÇ¾î ÀÖ´Â ½ÇÇà ÆÄÀÏÀ» ½ÇÇà ½ÃŲ´Ù¸é ±× ÆÄÀÏÀ» ½ÇÇà ½ÃÅ°´Â µ¿¾ÈÀº ±× ÆÄÀÏÀÇ ½ÇÁ¦ ¼ÒÀ¯ÀÚÀÇ ±ÇÇÑÀ̳ª ¼ÒÀ¯ Group ±ÇÇÑÀ» °®°Ô µË´Ï´Ù. ¹°·Ð ÆÄÀÏÀÇ ½ÇÇàÀÌ ³¡³ª¸é ´Ù½Ã ÀÚ½ÅÀÇ ±ÇÇÑÀ¸·Î µÇµ¹¾Æ ¿É´Ï´Ù. ¸¸¾à ±× ÆÄÀÏÀÌ ½ÇÇà µµÁß ¾î¶²ÇÑ ÀÌÀ¯¿¡¼­µçÁö ºñÁ¤»óÀûÀ¸·Î ÇÁ·Î¼¼½º¸¦ ºüÁ®³ª¿Â´Ù¸é ±×¶§´Â ±× ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚ³ª ¼ÒÀ¯ Group ±ÇÇÑÀ¸·Î ºüÁ® ³ª¿À°Ô µË´Ï´Ù. À̸¦ ÀÀ¿ëÇÑ´Ù¸é rootÀÇ ¼ÒÀ¯·Î µÇ¾î ÀÖ´Â ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ ºñÁ¤»óÀûÀ¸·Î ºüÁ®³ª¿À°Ô Çϸé rootÀÇ ±ÇÇÑÀ» ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯ÇÑ ¹æ¹ýÀ¸·Î rootÄ£±¸°¡ Àá±ñ È­Àå½Ç¿¡ °°À»¶§ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ½ÇÁ¦·Î ÀÛ¼ºÇؼ­ ÄÄÆÄÀÏ °úÁ¤À» °ÅÃÄ ½ÇÇà ÆÄÀÏ·Î ¸¸µé¾î ´«¿¡ Àß ¶çÁö¾Ê°í ÀÚ½ÅÀÌ µé¾î°¥ ¼ö ÀÖ´Â µð·ºÅ丮¿¡ ¼û°Ü ³õ½À´Ï´Ù. ±×·± ÈÄ ÀÚ½ÅÀÇ °èÁ¤À¸·Î ±× ½Ã½ºÅÛ¿¡ ´ç´çÈ÷ Á¢¼ÓÇؼ­ ¼û°Ü³õÀº ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°´Â °ÍÀÌÁö¿ä. ´ÙÀ½ÀÇ Source´Â ÀÚ½ÅÀÇ ÇÁ·Î¼¼½º¿¡¼­ /bin/cshÀ» ½ÇÁ¦·Î È£ÃâÇؼ­ ¸í·É¾î ¸ðµå·Î ºüÁ® ³ª°¡´Â °ÍÀÔ´Ï´Ù. ÄÄÆÄÀÏ ÇÑ ÈÄ¿¡´Â ½ÇÇà ÆÄÀÏÀÇ PermissionÀ» 4755ÀÌ»óÀ¸·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. --´ÙÀ½-- ´ÙÀ½¿¡ ½ÇÁ¦ Å×½ºÆ®¸¦ °ÅÄ£ ÈÄ¿¡ °ø°³ ÇÏ°Ú½À´Ï´Ù. ±×·¯¸é ½Ã½ºÅÛ °ü¸®ÀÚÀÇ ÀÔÀå¿¡¼­ »ý°¢ÇÑ´Ù¸é ÀÌ·± »ý°¢ÀÌ µå½Ç °Í ÀÔ´Ï´Ù. ¿Ö Set User ID³ª Set Group ID°°Àº °ÍÀ» À¯´Ð½º´Â ¸¸µé¾î¼­ ÀÌ·¸°Ô ÇØÅ·ÀÌ °¡´ÉÇÏ°Ô ÇÏ´Â °ÍÀϱî? ¿ì¸®°¡ ÀüÀÚ¿ìÆíÀ» º¸³¾¶§ »ç¿ëÇÏ´Â ¸í·É mailÀ» »ý°¢ÇØ º¾½Ã´Ù. mailÀº ±× ½Ã½ºÅÛÀÇ ¸ðµç »ç¿ëÀÚ°¡ »ç¿ëÀ» ÇØ¾ß µÇÁö¸¸ e-mailÀ» ½ÇÁ¦·Î º¸³»ÁÖ´Â ÀÛ¾÷À» ÀÏ¹Ý »ç¿ëÀÚ°¡ ÇÒ ¼ö´Â ¾øÀ¸¹Ç·Î mailÀ̶ó´Â ½ÇÇà ÆÄÀÏ¿¡ setuid¸¦ ¼³Á¤Çؼ­ mailÀ» º¸³»´Â µ¿¾È¿¡´Â super userÀÇ ±ÇÇÑÀ» °®°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦ ls -l /bin/mail¸í·ÉÀ» »ç¿ëÇؼ­ »ìÆ캸¸é mail ÆÄÀÏ¿¡ setuid PermissionÀÌ ¼³Á¤µÇ¾îÀÖ´Ù´Â °É ¾Ë¼ö ÀÖ½À´Ï´Ù. --s--x--x 1 root 23414 jan 2 00:23 mail ±×·³ ÀÌ·¯ÇÑ ¹æ¹ý¿¡ ÀÇÇÑ ÇØÅ·À» ¸·±â À§Çؼ­´Â °ü¸®ÀÚ´Â ¾î¶»°Ô ÇØ¾ß Çϴ°¡Çϸé... ÀÚ½ÅÀÇ ½Ã½ºÅÛ³»ÀÇ ¸ðµç setuid³ª setgid¸¦ °®´Â ÇÁ·Î±×·¥ÀÌ Á¤»ó ÀÛµ¿À» ÇÏ´ÂÁö ÁÖ±âÀûÀ¸·Î üũ¸¦ ÇØ¾ß µÇ°ÚÁö¿ä. ¾Ë°í º¸¸é °£´ÜÇÏÁÒ? *Cracker·Î ¹«½ÄÇÏ°Ô ¾Ë¾Æ³»±â ÀÌ ¾Õ¹ø ÇØÅ· ¹æ¹ý±îÁö´Â root¶ó´Â super user¸¦ °³ÀÎÀûÀ¸·Î Àß ¾Ë°í ÀÖ¾î¾ß ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ̾ú½À´Ï´Ù. ½ÇÁ¦·Î ´ëºÎºÐÀÇ »ç¶÷µéÀº ¾Æ´Â »ç¶÷µé Áß¿¡ suprer user°¡ ÀÖÀ»¸®°¡ ¾øÁÒ? ±×·¸´Ù°í ·Îºñ¸¦ ÇÑ´Ù´Â °Íµµ ¿ì½À±¸¿ä. À̹ø¿¡´Â ÀÚ½ÅÀÇ °èÁ¤À¸·Î Á¢¼ÓÀ» Çؼ­ ½ÇÁ¦·Î root¸¦ Æ÷ÇÔÇÑ ´Ù¸¥ »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ ¾Ë¾Æ³»´Â ¹æ¹ýÀ» ¼Ò°³ÇØ µå¸®°Ú½À´Ï´Ù. º¸Åë ´ëºÎºÐÀÇ UNIX½Ã½ºÅÛÀº /etc/passwd¶ó´Â ÆÄÀÏ¿¡ ±× ½Ã½ºÅÛÀÇ ¸ðµç »ç¿ëÀÚµéÀÇ À̸§, ID, ¾ÏÈ£µîÀ» Àû¾î³õ°í °ü¸®¸¦ ÇÏ°í ÀÖ½À´Ï´Ù. passwdÆÄÀÏÀ» ½ÇÁ¦·Î Àо ¾ÏÈ£¸¦ ¾Ë¾Æ³»¸é µÇ´Âµ¥ °¢ »ç¿ëÀÚ º°·Î ÇÑÁÙ¾¿ ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. ÇÑ »ç¿ëÀÚÀÇ passwdÆÄÀÏ Á¤º¸´Â ´ÙÀ½ÀÇ Çü½ÄÀ» µû¸¨´Ï´Ù. À¯ÀúÀ̸§:¾ÏÈ£:À¯ÀúID:±×·ìID:½ÇÁ¦À̸§:Ȩµð·ºÅ丮:±âº»Shell ¿¹¸¦ µç´Ù¸é jch:Ag8hkqPu0mCxg:10:10:Jo Hee Chang:/home/jch;/bin/csh ÀÔ´Ï´Ù. Ç®¾î º¸ÀÚ¸é °¢°¢ÀÇ ±¸ºÐÀÚ´Â ÄÝ·Ð:À̱¸¿ä. jch´Â ·Î±×ÀÎÇÒ¶§ ¾²ÀÌ´Â »ç¿ëÀÚ À̸§À̸ç Ag8hkqPu0mCxg´Â ·Î±×ÀÎÇÒ¶§ ¾²ÀÌ´Â ¾ÏÈ£, 10Àº »ç¿ëÀÚ IDÀÔ´Ï´Ù. ÀÌ°ÍÀº »ç¿ëÀÚ¸¦ ¼ýÀڷμ­ ±¸º°ÇÏ´Â ÄÚµå·Î »ç¿ëÀÚ°¡ Á÷Á¢ »ç¿ëÇÏÁö´Â ¾Ê½À´Ï´Ù. ±× ´ÙÀ½ÀÇ 10Àº ±×·ìID. jhc°¡ ¼ÓÇÑ ±×·ì¿¡ ´ëÇÑ ¹øÈ£ÀÔ´Ï´Ù. °©ÀÚ±â ÀÌ·±°É ´Ù ¼³¸íÇØ¾ß Çϴ°¡ ¶ó´Â »ý°¢ÀÌ µå´Â ±º¿ä. ±×·¡µµ ½ÃÀÛÀ» ÇßÀ¸´Ï... Jo Hee Chang´Â ½ÇÁ¦ »ç¿ëÀÚÀÇ À̸§ÀÔ´Ï´Ù. ÀÌ°Ç ¾ø¾îµµ ¹«¹æÇÕ´Ï´Ù. ½ÇÁ¦ »ç¿ëÀÚÀÇ À̸§ÀÌ ¾Æ´Ï°í ±×³É Àλ縻 Á¤µµ¸¦ ³Ö´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ´ÙÀ½Àº »ç¿ëÀÌ Çã°¡ µÇ¾î Àִ Ȩµð·ºÅ丮ÀÔ´Ï´Ù. ±× ´ÙÀ½Àº ·Î±×ÀÎÀÌ µÇ¸é ¸·¹Ù·Î »ç¿ëÇؾßÇÏ´Â shellÀ» °¡¸£Å°´Â °ÍÀÌÁÒ? ´Ù ¾Æ½Ã´Â »ç½ÇÀ» ÁÙÁÙÈ÷ ¼³¸íÀ» ÇÏÁö ¾Ê¾Ò³ª ¸ð¸£°Ú½À´Ï´Ù. ±×·±µ¥ ¹®Á¦´Â ½ÇÁ¦·Î ¾Ë°íÀÚ ÇÏ´Â ¾ÏÈ£´Â ¾Ïȣȭ µÇ¾î ÀÖ´Ù´Â °ÍÀÌÁÒ. ¸»ÀÌ ¾ûÄ׳׿ä. ±×·³ ÀÌ·¸°Ô ¸»À» ÇÏÁö¿ä. Password´Â ¾Ïȣȭ°¡ µÇ¾î ÀÖ½À´Ï´Ù. À¯´Ð½º¿¡´Â crypt¶ó´Â ¾ÏÈ£ÇÔ¼ö°¡ Àִµ¥ ÀÌ ÇÔ¼öÀÇ Æ¯Â¡Àº ¿ªÇÔ¼ö°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌÁÒ. °©Àڱ⠼öÇÐÀ̾߱⸦ ÇÏ´Â °Í °°½À´Ï±î? ±×·±µ¥ ½ÇÁ¦·Î ¼öÇÐÀ̾߱⠿¹¿ä. A¶ó´Â »óÅ¿¡¼­ B¶ó´Â »óÅ´ °¥ ¼ö À־ B¿¡¼­ A¶ó´Â »óÅ·δ °¥ ¼ö ¾ø´Ù´Â °ÍÀÌÁÒ. ±×·¸´Ù¸éÀº ½ÇÁ¦ ·Î±×ÀÎ °úÁ¤¿¡¼­ ¿ì¸®°¡ Á÷Á¢ Àû¾î³Ö´Â ¾ÏÈ£´Â ¾î¶»°Ô ÆÇ´ÜÀÌ µÉ±î¿ä? À¯´Ð½º ½Ã½ºÅÛ¿¡¼­´Â ¿ì¸®°¡ ·Î±×ÀÎ °úÁ¤¿¡¼­ Àû¾î³ÖÀº password¸¦ cryptÇÔ¼ö·Î ¾Ïȣȭ¸¦ ½ÃÄÑ /etc/passwdÆÄÀÏ°ú ºñ±³¸¦ Çؼ­ »ç¿ëÀÚ À̸§°ú password°¡ ¾Ïȣȭ µÈ °Í°ú ¶È°°Àº °æ¿ì¿¡¸¸ »ç¿ëÀ» Çã°¡ÇØ ÁÝ´Ï´Ù. ±×·³ ÇØÅ·À» ¾î¶»°Ô ÇÏÀÚ°í ÀÌ·¸°Ô ³ÊÀýÇÏ°Ô À̾߱⸦ ÇßÀ»±î¿ä? /etc/passwdÆÄÀÏÀº º¸Åë ´©±¸´Ù º¼ ¼ö ÀÖµµ·Ï °ø°³¸¦ ÇØ ³õ½À´Ï´Ù. ÀÌ passwdÆÄÀÏÀ» °®´Ù°¡ cryptÇÔ¼ö¸¦ ÀÌ¿ëÇؼ­ ¾Æ¹« ±ÛÀÚ³ª Áý¾î³Ö¾î¼­ ¾ÏȣȭµÈ password¸¦ ¾Ë¾Æ³¾¶§±îÁö roop¸¦ µ¹¸®´Â °ÍÀÔ´Ï´Ù. ¹«½ÄÇÑ ¹«½ÄÇÏ°Ô ¾Ë¾Æ³½´Ù°í ¸»À» ÇßÀó¾Æ¿ä. ¿©±â¼­ ¸»ÇÏ´Â roop¸¦ µµ´Â ÇÁ·Î±×·¥ÀÌ ¹Ù·Î cracker¶ó´Â ³à¼®ÀÌ°í ¾Æ¹« ±ÛÀÚ¶ó°í ÇÏ´Â °ÍÀÌ ¹Ù·Î ´Ü¾î »çÀüÀÔ´Ï´Ù. ´ÙÀ½Àº °£´ÜÇÑ crackerÀÇ ½ÇÁ¦ SourceÀÔ´Ï´Ù. crackÀÇ ¹æ¹ýÀº passwdÆÄÀÏ¿¡¼­ ¾ÏÈ£°¡ ¾ø´Â »ç¿ëÀÚ¸¦ ã°í ±×´ÙÀ½À¸·Î »ç¿ëÀÚ À̸§°ú ¾ÏÈ£°ú °°Àº °ÍÀ» ã°í ±×´ÙÀ½ ´Ü¾î »çÀüÀÇ ´Ü¾îµéÀ» ºñ±³ÇØ°¡¸é¼­ ã½À´Ï´Ù. ½Ã°£ÀÌ ¹«Áö ¿À·¡ °É¸®´Â ÀÛ¾÷ÀÌÁö¸¸ ¾Ë°í¸®ÁòÀ» ¼öÁ¤ÇÑ´Ù¸é ´õ ºü¸¥ cracker¸¦ ¸¸µé ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. #include <stdio.h> #include <string.h> #define fetch(a,b,c,d) fgets(a,130,b);c=strtok(a,":");d=strtok('\0',":"); main() { FILE *p,*o,*w; char i[50]; char pes[130],pas[50],pps[50],pws[50]; char *es=pes,*as=pas,*ps=pps,*ws=pws; printf("\nTinyCrack v1.0 Bluesman 1/95\n\n"); printf("Password File: "); gets(i); p=fopen(i,"r"); printf("WordList File: "); gets(i); w=fopen(i,"r"); printf("Results File: "); gets(i); o=fopen(i,"w"); fprintf(o,"*** PASS 1: NULL PASSWORDS ***\n"); while(ps) { fetch(es,p,as,ps); if(ps) if(ps[-1]==':') fprintf(o,"|User[%s] has no password!\n",as); } fflush(o); rewind(p); fprintf(o,"*** PASS 2: ACCOUNT NAMES ***\n"); do { fetch(es,p,as,ps); if(ps) if(!strcmp((char *)crypt(as,ps),ps)) fprintf(o,"|User[%s]has password [%s]\n",as,as); }while(ps); fflush(o); rewind(p); fprintf(o,"*** PASS 3: DICTIONARY WORDS ***\n"); do{ rewind(w); fetch(es,p,as,ps); do { fgets(ws,130,w); ws[strlen(ws)-1]=0; if(!strcmp((char *)crypt(ws,ps),ps)) { fprintf(o,"| User [%s] has password [%s]\n",as,ws); fflush(o); break; } }while(!feof(w)); }while(!feof(p)); fprintf(o,"*** FINISHED SESSION ***\n"); exit(1); } À̹æ¹ý¿¡ ÀÇÇؼ­´Â root»Ó¸¸ÀÌ ¾Æ´Ï¶ó ´Ù¸¥ ÀÏ¹Ý »ç¿ëÀÚÀÇ °èÁ¤µµ ¾Ë¾Æ ³¾ ¼ö ÀÖ½À´Ï´Ù. ½Ã°£¸¸ ¿©À¯·Ó´Ù¸é... º¸¾ÈÀÇ °üÁ¡¿¡¼­ »ý°¢ÇÑ´Ù¸é ÀÌ·¯ÇÑ ÇØÅ·ÀÇ ¹æ¹ýÀ» ¼÷ÁöÇÏ°í ÀÚ½ÅÀÇ password¸¦ Á¤ÇÒ¶§ ¾î¶² ´Ü¾î·Î ÀÌ·çÁ® Àְųª ÀÚ½ÅÀÇ »ç¿ëÀÚ À̸§À» Á÷Á¢ ¶Ç´Â °£Á¢ÀûÀ¸·Î ÀÌ¿ëÇ߰ųªÇÏ´Â °æ¿ì´Â ÇÇÇØ¾ß ÇÏ°í ÁÖ±âÀûÀÎ passwordº¯°æ¿¡ ÀÇÇØ password°ü¸®¸¦ ÇØ¾ß °Ú½À´Ï´Ù. ÀÌ¿Í °°Àº ÇØÅ·¹æ¹ýÀÇ °üÁ¡¿¡¼­ »ý°¢ÇÒ ¶§ ÀÚ½ÅÀÇ Áö±ÝÀÇ password¿¡ Ư¼ö¹®ÀÚ¸¦ ³¢¿ö ³Ö´Â´Ù¸é password°¡ cracker¿¡ ÀÇÇØ µµ¿ëµÉ °¡´É¼ºÀº ¸î ¹é¹è ÁÙ¾î µé°Ô µË´Ï´Ù. ¶Ç ½Ã½ºÅÛ °ü¸®ÀÚ¶ó¸é passwdÆÄÀÏÀ» À§¿Í °°Àº ¹æ½ÄÀ¸·Î ÀúÀåÇÏÁö ¾Ê°í shadowÆÄÀÏÀ» ¸¸µé¾î password¿Í ´Ù¸¥ »ç¿ëÀÚ Á¤º¸¸¦ ºÐ¸®½ÃÄÑ ³õ´Â °Íµµ ±ÇÀåÇÒ ¸¸ÇÑ °Í ÀÔ´Ï´Ù. ±×·±µ¥ »ç½Ç shadowÆÄÀÏ¿¡ ´ëÇÑ ÇØÅ· ¹æ¹ýµµ ¾Ë·ÁÁ® À־ ¹®Á¦°¡ µÇ±ä ÇÏ°ÚÁö¸¸ ½Ã°£°ú ÇØÅ·¹æ¹ýÀÇ ³­Àǵµ¿¡ ÀÇÇØ ¸¹Àº ÇØÅ·À» ¸·À» ¼ö ÀÖ½À´Ï´Ù. shadowÆÄÀÏ¿¡ ´ëÇÑ À̾߱â´Â ´ÙÀ½¿¡ ÇÏ°Ú½À´Ï´Ù. *¹ú·¹(Bug)·Î Áý °¥°¡ ¸Ô±â À¯´Ð½º ½Ã½ºÅÛ¿¡´Â ¾öû³ª°Ô ¸¹Àº ÇÁ·Î±×·¥ ÆÄÀϵéÀÌ Á¸ÀçÇÕ´Ï´Ù. À¯´Ð½ºÀÇ ±âº» öÇÐÀÌ "ÀÛÀº µµ±¸µéÀ» ¿©·¯°¡Áö ÀÌ¿ëÇÏ¿© Å« ÀÏÀ» ÇØ°áÇÏÀÚ"(??? ¶ó°í Àúµµ µé¾ú¾î¿ä.)ÀÔ´Ï´Ù. ±×·¡¼­ ¾ÆÁÖ Å©±â°¡ ÀÛÀº À¯Æ¿¸®Æ¼³ª ¸í·É¾î µéÀÌ ¸¹ÁÒ. ±× ¸¹Àº ÆÄÀϵéÀ» »ç¶÷ÀÌ ¸¸µé¾ú°ÚÁÒ? »ç¶÷ÀÌ ÇÏ´Â ÀÏÀÌ´Ù º¸´Ï ½Ç¼öµµ Àִ¹ýÀÌÁÒ.