TCP Connection Hijacking °ø°Ý ¹× ´ëÃ¥
¼·Ð
Connection hijackingÀº TCP ½ºÆ®¸²À» ÀÚ½ÅÀÇ ¸Ó½ÅÀ» °ÅÄ¡°Ô ¸®´ÙÀÌ·º¼Ç ÇÒ ¼ö ÀÖ´Â TCP ÇÁ·ÎÅäÄÝÀÇ Ãë¾à¼ºÀ» ÀÌ¿ëÇÑ Àû±ØÀû °ø°Ý (Active Attack)ÀÌ´Ù. ¸®´ÙÀÌ·º¼ÇÀ» ÅëÇØ ħÀÔÀÚ´Â SKEY¿Í °°Àº ÀÏȸ¿ë ÆÐ½º¿öµå³ª Kerberos¿Í °°Àº ƼÄÏ ±â¹Ý ÀÎÁõ ½Ã½ºÅÛ¿¡ ÀÇÇØ Á¦°øµÇ´Â º¸È£ ¸ÞÄ¿´ÏÁòÀ» ¿ìȸÇÒ ¼ö ÀÖ´Ù. TCP Á¢¼ÓÀº ´©±º°¡ Á¢¼Ó·Î »ó¿¡ TCP ÆÐŶ ½º´ÏÆÛ³ª ÆÐŶ »ý¼º±â¸¦ °¡Áö°í ÀÖ´Ù¸é ´ë´ÜÈ÷ Ãë¾àÇÏ´Ù.
½º´ÏÆÛ¸¦ ÀÌ¿ëÇÑ ¼Ò±ØÀû °ø°Ý(Passive Attack)Àº ÀÎÅÍ³Ý »ó¿¡¼ ±× ¹ß»ý ºóµµ°¡ Á¡Á¡ Áõ°¡Çϰí ÀÖ´Ù. °ø°ÝÀÚ´Â ½º´ÏÆÛ¸¦ ÀÌ¿ëÇÏ¿© »ç¿ëÀÚ id¿Í ÆÐ½º¿öµå¸¦ ȹµæÇÏ¿© ±× »ç¿ëÀÚ·Î ½Ã½ºÅÛ¿¡ ·Î±×¿ÂÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °ø°ÝÀ¸·ÎºÎÅÍ ¹æ¾îÇϱâ À§ÇÏ¿© ÀÏȸ¿ë ÆÐ½º¿öµå³ª ÅäÅ« ±â¹Ý ÀÎÁõ°ú °°Àº »ç¿ëÀÚ ½Äº° ½ºÅ´ÀÌ »ç¿ëµÇ¾îÁö°í ÀÖ´Ù. À̵éÀº ¾ÈÀüÇÏÁö ¾ÊÀº ³×Æ®¿öÅ© »ó¿¡¼ ½º´ÏÇÎÀ¸·ÎºÎÅÍ ÆÐ½º¿öµå¸¦ º¸È£ÇÏÁö¸¸ ÀÌ·¯ÇÑ ¹æ¹ýµéÀº µ¥ÀÌÅÍ ½ºÆ®¸²À» ¾ÏÈ£ÈÇϰųª »çÀÎÇÏÁö ¾Ê´Â ÇÑ Àû±ØÀûÀÎ °ø°ÝÀ¸·ÎºÎÅÍ ¿©ÀüÈ÷ Ãë¾àÇÏ´Ù. ¸¹Àº »ç¶÷µéÀÌ Àû±ØÀû °ø°ÝÀº ´ë´ÜÈ÷ ¾î·Æ°í ±×¸¸Å À§Çùµµ ÀûÀ» °ÍÀ̶ó°í »ý°¢Çϰí ÀÖÁö¸¸ ¿©±â¼´Â ÀÌ·¯ÇÑ È¯»óÀ» ±ý ¼ö ÀÖµµ·Ï À¯´Ð½º È£½ºÆ®¿¡ ¼º°øÀûÀ¸·Î ħÀÔÇÑ ´ë´ÜÈ÷ °£´ÜÇÑ Àû±ØÀû °ø°ÝÀ» ¼³¸íÇÑ´Ù.
ÃÖ±Ù ÀÌ·ÐÀûÀ¸·Î ¾Ë·ÁÁø ÀÌ Ãë¾àÁ¡À» °ø°ÝÇÒ ¼ö ÀÖ´Â µµ±¸°¡ ÀÎÅÍ³Ý »ó¿¡ °ø°³µÇ¾î ÀÌ¿¡ ´ëÇÑ ´ëÃ¥ÀÌ ¿ä±¸µÇ°í ÀÖ´Ù.
¿ì¼± º» ºÐ¼®º¸°í¼¿¡¼´Â hijacing °ø°ÝÀÇ ±Ù°£ÀÌ µÇ´Â TCP ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ¼ ¾Ë¾Æº¸°í, TCP Connection hijacking °ø°Ý ±â¹ý¿¡ ´ëÇØ ¼Ò°³Çϰí, ½ÇÁ¦ À̸¦ ±¸ÇöÇÑ °ø°Ý µµ±¸ÀÎ HUNT¿¡ ´ëÇØ¼ °£´ÜÈ÷ ¼Ò°³Çϱâ·Î ÇÑ´Ù.
¸¶Áö¸·À¸·Î ÀÌ·¯ÇÑ hijacking °ø°ÝÀ» ŽÁöÇÒ ¼ö ÀÖ´Â ¹æ¹ý°ú ±× ¹æÁö´ëÃ¥À» »ìÆìº¸±â·Î ÇÑ´Ù.
1. TCP ÇÁ·ÎÅäÄÝ
°¡. TCP ÇÁ·ÎÅäÄÝ °³¿ä
ÀÌ Àý¿¡¼´Â TCP ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» ÇÑ´Ù.
TCP´Â µÎ ÁöÁ¡°£ÀÇ ½Å·Ú¼ºÀÖ´Â ÀüÀÌÁß ½ºÆ®¸² Á¢¼ÓÀ» Á¦°øÇÑ´Ù. Á¢¼ÓÀº ¼Û½ÅÀÚÀÇ IP ÁÖ¼Ò, ¼Û½ÅÀÚÀÇ TCP Æ÷Æ® ¹øÈ£, ¼ö½ÅÀÚÀÇ IP ÁÖ¼Ò, ¼ö½ÅÀÚÀÇ TCP Æ÷Æ® ¹øÈ£·Î ÀÌ·ç¾îÁø ³× °³ÀÇ ¿ä¼Ò¿¡ ÀÇÇØ À¯ÀÏÇÏ°Ô Á¤ÀǵǾî Áø´Ù.
È£½ºÆ®¿¡ ÀÇÇØ¼ ¼Û½ÅµÇ¾îÁö´Â ¸ðµç ¹ÙÀÌÆ®´Â 32ºñÆ® Á¤¼ö°ªÀÎ ÀϷùøÈ£(sequence number)°¡ ¸Å°ÜÁö°í ¼ö½ÅÀÚµµ ÀÌ ÀϷùøÈ£·Î ½ÂÀÎ(acknowledge)ÇÑ´Ù. ù ¹øÂ° ¼Û½Å ¹ÙÀÌÆ®¸¦ À§ÇÑ ÀϷùøÈ£´Â ¿¬°á¼³Á¤½Ã °è»êµÇ¾îÁö°í ¸Å TCP ¿¬°á½Ã ¸¶´Ù ´Ù¸¥ ÀϷùøÈ£¸¦ »ç¿ëÇϱâ À§ÇÏ¿© ¼³°èµÈ ±ÔÄ¢¿¡ ±Ù°ÅÇÏ¿© ¸Å ¿¬°á½Ã ¸¶´Ù º¯ÈÇÑ´Ù.
¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®°£ÀÇ Á¢¼Ó½Ã ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù.
SVR_SEQ : ¼¹ö¿¡ ÀÇÇØ¼ ¼Û½ÅµÇ¾îÁú ´ÙÀ½ ¹ÙÀÌÆ®ÀÇ ÀϷùøÈ£
SVR_ACK : ¼¹ö¿¡ ÀÇÇØ ¼ö½ÅµÉ ´ÙÀ½ ¹ÙÀÌÆ®
(¸¶Áö¸· ¼ö½ÅµÈ ¹ÙÀÌÆ®ÀÇ ÀϷùøÈ£ + 1)
SVR_WIND : ¼¹öÀÇ ¼ö½Å À©µµ¿ì
CLT_SEQ : Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ¼ ¼Û½ÅµÇ¾îÁú ´ÙÀ½ ¹ÙÀÌÆ®ÀÇ ÀϷùøÈ£
CLT_ACK : Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ¼ö½ÅµÉ ´ÙÀ½ ¹ÙÀÌÆ®
(¸¶Áö¸· ¼ö½ÅµÈ ¹ÙÀÌÆ®ÀÇ ÀϷùøÈ£ + 1)
SVR_WIND : Ŭ¶óÀ̾ðÆ®ÀÇ ¼ö½Å À©µµ¿ì
µ¥ÀÌÅÍ ±³È¯ÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀº Ãʱ⿡´Â SVR_SEQ=CLT_ACK, CLT_SEQ=SVR_ACK »óÅÂÀÌ´Ù. ÀÌ·± »óÅ´ Á¢¼Ó ÈÄ ¾çÃø¿¡¼ µ¥ÀÌÅÍÀÇ Àü¼ÛÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀº 'quiet' »óÅ¿¡¼µµ ¸¶Âù°¡ÁöÀÌ´Ù. ÀÌ·¯ÇÑ »óÅ´ µ¥ÀÌÅͰ¡ Àü¼ÛµÇ¾îÁö´Â »óÅ¿¡¼´Â ¼º¸³ÇÏÁö ¾Ê´Â´Ù. Á»´õ ÀϹÝÀûÀÎ µî½ÄÀº ´ÙÀ½°ú °°´Ù.
CLT_ACK SVR_SEQ CLT_ACK + CLT_WIND
SVR_ACK CLT_SEQ SVR_ACK + SVR_WIND
TCP ÆÐŶÀÇ ±¸Á¶´Â ±×¸²°ú °°´Ù.
Source Port : ¼Ò½º Æ÷Æ® ¹øÈ£
Destination Port : ¸ñÀûÁö Æ÷Æ® ¹øÈ£
Sequence number : ÆÐŶÀÇ Ã¹ ¹øÂ° ¹ÙÀÌÆ®ÀÇ ÀϷùøÈ£
Acknowledgment number : ¼ö½ÅµÉ ´ÙÀ½¹ø ¹ÙÀÌÆ®ÀÇ ¿¹»ó ÀϷùøÈ£
Data Offset : ÆÐŶ³»ÀÇ µ¥ÀÌÅÍ ¿ÀÇÁ¼Â
Control Bits :
URG : ±ä±Þ Æ÷ÀÎÅÍ
ACK : ½ÂÀÎ
PSH : Ǫ½¬ ±â´É
RST : Á¢¼ÓÀÇ ¸®¼Â
SYN : µ¿±âÈ ÀϷùøÈ£
FIN : ¼Û½ÅÀڷκÎÅÍ ´õ ÀÌ»óÀÇ µ¥ÀÌÅÍ ¾øÀ½
Window : ¼Û½ÅÀÚÀÇ À©µµ¿ì »çÀÌÁî
Checksum : Çì´õ¿Í µ¥ÀÌÅÍÀÇ TCP üũ¼¶°ª
Urgent Pointer : TCP ±ä±Þ Æ÷ÀÎÅÍ
Options : TCP ¿É¼Çµé
¡¤SEG_SEQ : ÆÐŶÀÇ ÀϷùøÈ£
¡¤SEG_ACK : ÆÐŶÀÇ È®ÀιøÈ£
¡¤SEG_FLAG : Á¦¾î ºñÆ®
Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ º¸³»Áö´Â ÀüÇüÀûÀÎ ÆÐŶ¿¡¼´Â SEG_SEQ´Â CLT_SEQ, SEG_ACKÀº CLT_ACKÀ¸·Î ¼¼ÆÃµÇ¾î Áø´Ù.
TCP´Â »õ·Î¿î ¿¬°áÀ» È®¸³Çϱâ À§ÇÏ¿© "three-way handshake"¸¦ »ç¿ëÇÑ´Ù. ¸¸ÀÏ Å¬¶óÀÌ¾ðÆ®°¡ ¼¹ö¿¡ Á¢¼ÓÀ» ÃʱâÈÇÏ°í µ¥ÀÌÅÍ ±³È¯ÀÌ ¾ø´Ù¸é Á¤»óÀûÀÎ ÆÐŶ ±³È¯Àº ´ÙÀ½ ±×¸²°ú °°´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö¿¡ SYN ºñÆ®°¡ ¼¼ÆÃµÈ ÆÐŶÀ» Àü¼ÛÇÏ¹Ç·Î½á ¿¬°áÀ» ½ÃÀÛÇÑ´Ù. ÀÌ ÆÐŶÀº È£½ºÆ®¿¡°Ô Ŭ¶óÀÌ¾ðÆ®°¡ ¿¬°áÀ» ¼³Á¤ÇÏ°í ½Í´Ù°í ¸»ÇÏ°í ¾î¶² ÀϷùøÈ£¸¦ ÆÐŶÀÇ ½ÃÀÛ ¹øÈ£·Î »ç¿ëÇÒ °ÍÀÎÁö¸¦ ¾Ë·ÁÁØ´Ù. ÀÌ ÀϷùøÈ£´Â µ¥ÀÌÅÍÀÇ ¼ø¼¸¦ À¯ÁöÇϱâ À§Çؼ »ç¿ëµÈ´Ù.
¼¹ö´Â ACK¿Í SYN ºñÆ®°¡ ¼¼ÆÃµÈ ÆÐŶÀ¸·Î ÀÀ´äÇÑ´Ù. ¼¹ö´Â Ŭ¶óÀ̾ðÆ®ÀÇ ÆÐŶÀ» ¹Þ¾ÒÀ½À» È®ÀÎÇϰí Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¼¹ö ÀÚ½ÅÀÇ ÀϷùøÈ£¸¦ ¾Ë·ÁÁØ´Ù.
¸¶Áö¸·À¸·Î Ŭ¶óÀÌ¾ðÆ®´Â ¼¹öÀÇ ÆÐŶ ¼ö½ÅÀ» È®ÀÎÇÏ¹Ç·Î½á ¾çÃøÀÇ ¿¬°áÀÌ È®¸³µÇ°í µ¥ÀÌÅÍ ±³È¯ÀÌ ½ÃÀ۵ȴÙ.
ESTABLISHED »óÅ¿¡¼ ÀϷùøÈ£°¡ ´ÙÀ½ÀÇ ¹üÀ§ ³»¿¡ ¼ÓÇÏ¸é ¼ö½Å°¡´ÉÇÑ ÆÐŶÀ¸·Î °£ÁֵȴÙ.
¼¹öÀÇ °æ¿ì : [SVR_ACK, SVR_ACK+SVR_WIND]
Ŭ¶óÀ̾ðÆ®ÀÇ °æ¿ì : [CLT_ACK, CLT_ACK+CLT_WIND]
³ª. desynchronized »óÅÂ
desynchronized »óÅ´ ¾çÂÊÀÌ ESTABLISHD »óÅÂÀÏ °æ¿ìÀÇ ¾Æ¹«·± µ¥ÀÌÅÍ Àü¼ÛÀÌ ¾øÀ¸¸é¼ ´ÙÀ½°ú °°ÀÌ ¼·ÎÀÇ ÀϷùøÈ£¿Í È®ÀιøÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â Á¢¼Ó »óŸ¦ ¸»ÇÑ´Ù.
SVR_SEQ ¡Á CLT_ACK
CLT_SEQ ¡Á SVR_ACK
ÀÌ »óÅ´ µ¥ÀÌÅͰ¡ Àü¼ÛµÇ±â Àü±îÁö´Â ¾ÈÁ¤Àû(stable)ÀÌ´Ù. ÇÏÁö¸¸ µ¥ÀÌÅͰ¡ Àü¼ÛµÈ´Ù¸é ´ÙÀ½ µÎ °æ¿ì°¡ ¹ß»ýÇÏ°Ô µÈ´Ù.
CLT_SEQ < SVR_ACK + SVR_WIND
CLT_SEQ > SVR_ACK
ÀÌ »óÅ¿¡¼ ÆÐŶ ¼ö½ÅÀÌ °¡´ÉÇÏ¸ç µ¥ÀÌÅÍ´Â Â÷ÈÄÀÇ »ç¿ëÀ» À§Çؼ ÀúÀåµÇÁö¸¸ »ç¿ëÀÚ¿¡°Ô SVR_ACKÀÇ ÀϷùøÈ£´Â Àü¼ÛÇÏÁö´Â ¾Ê´Â´Ù.
CLT_SEQ > SVR_ACK + SVR_WIND
CLT_SEQ < SVR_ACK
ÆÐŶ ¼ö½ÅÀÌ ºÒ°¡´ÉÇÑ »óÅÂÀÌ¸ç µ¥ÀÌÅ͵µ ¹ö·ÁÁø´Ù.
µÎ°¡Áö °æ¿ìÀÇ ÀÌ·¯ÇÑ »óÅ´ Á¸ÀçÇÒ ¼ö ÀÖÁö¸¸ »óÈ£°£ÀÇ µ¥ÀÌÅÍ ±³È¯Àº ºÒ°¡´ÉÇÑ »óÅÂÀÌ´Ù.
2. TCP Connection hijacking °ø°Ý
°¡. °ø°Ý °³¿ä
hijacking °ø°ÝÀº TCP Á¢¼Ó ¾ç´ÜÀ» desynchronized »óÅ·Π¸¸µé¾î Á¢¼Ó ½Ö¹æÀÌ ´õÀÌ»ó µ¥ÀÌÅÍ Àü¼ÛÀÌ ºÒ°¡´ÉÇϵµ·Ï Çϴµ¥ °ü°ÇÀÌ ÀÖ´Ù. ±×·± ÈÄ Á¦ 3ÀÇ È£½ºÆ®´Â ½ÇÁ¦ ÆÐŶÀ» Èä³»³»¾î ¾ç ÂÊ¿¡¼ ¼ö½ÅµÉ ¼ö ÀÖ´Â ÆÐŶÀ» »ý¼ºÇÑ´Ù. TCP ¼¼¼ÇÀÌ desynchronized »óÅÂÀ̰í Ŭ¶óÀÌ¾ðÆ®´Â ´ÙÀ½ÀÇ ÆÐŶÀ» º¸³½´Ù.
SEG_SEQ = CLT_SEQ
SEG_ACK = CLT_ACK
CLT_SEQ ¡Á SVR_ACK ÀÏ °æ¿ì ±× µ¥ÀÌÅÍ´Â ¹Þ¾Æµé¿©ÁöÁö ¾Ê°í ÆÐŶÀº ¹ö·ÁÁø´Ù. ±×¶§ Á¦ 3ÀÚ´Â °°Àº ÆÐŶÀÌÁö¸¸ SEG_SEQ¿Í SEG_ACK(±×¸®°í üũ¼¶)À» ¹Ù²Û ÆÐŶÀ» º¸³½´Ù.
SEG_SEQ = SVR_ACK
SEG_ACK = SVR_SEQ
ÀÌ ÆÐŶÀº ¼¹ö¿¡ ÀÇÇØ ¹Þ¾Æµé¿©Áö°í µ¥ÀÌÅÍ´Â ¼¹ö¿¡ ÀÇÇØ 󸮵Ǿî Áø´Ù.
CLT_TO_SVR_OFFSET = SVR_ACK - CLT_SEQ
SVR_TO_CLT_OFFSET = CLT_ACK - SVR_SEQ
¶ó°í ÇÒ °æ¿ì °ø°ÝÀڴ Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¼¹ö·Î °¡´Â TCP ÆÐŶÀ» ´ÙÀ½°ú °°ÀÌ »ý¼ºÇÑ´Ù.
SEG_SEQ ¡ç SEG_SEQ + CLT_TO_SVR_OFFSET
SEG_ACK ¡ç SEG_ACK - SVR_TO_CLT_OFFSET
°ø°ÝÀÚ°¡ µÎ ÁöÁ¡°£¿¡ ±³È¯µÇ´Â ÆÐŶÀ» °¨Ã»ÇÒ ¼ö ÀÖ°í IP ÆÐŶÀ» °¡ÀåÇÒ ¼ö ÀÖ´Ù¸é ¸ðµç ÇൿÀÌ °ø°ÝÀÚÀÇ ±â°è¸¦ ÅëÇÏ°Ô µÈ´Ù. ÀÌ·Î½á ±× ½ºÆ®¸²¿¡ µ¥ÀÌÅ͸¦ Ãß°¡ ¹× »èÁ¦°¡ °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î Á¢¼ÓÀÌ TELNETÀ» ÀÌ¿ëÇÑ ¿ø°ÝÁ¢¼ÓÀ̶ó°í ÇÏ¸é °ø°ÝÀÚ´Â »ç¿ëÀÚ¸¦ ´ë½ÅÇÏ¿© ¾î¶°ÇÑ ¸í·É¾î("echo merit.edu lpj >& ~/.rhosts"¿Í °°Àº)¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ°í, À̶§ »ý±æ ¼ö ÀÖ´Â ¿øÄ¡¾Ê´Â ȸéÃâ·ÂÀ» Á¦°ÅÇÒ ¼öµµ ÀÖ¾î »ç¿ëÀڴ ħÀÔÀÚÀÇ Á¸À縦 ÀüÇô ´«Ä¡Ã¤Áö ¸øÇÑ´Ù. ÀÌ °æ¿ì CLT_TO_SVR_OFFSET°ú SVR_TO_CLT_OFFSETÀº ¹°·Ð ¹Ù²î¾î¾ß¸¸ ÇÑ´Ù.
TCP Á¢¼ÓÀ» desynchronizingÇÏ´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. °ø°ÝÀÚ´Â µÎ ÁöÁ¡°£¿¡ Àü¼ÛµÇ´Â ¸ðµç ÆÐŶÀ» µµÃ»ÇÒ ¼ö ÀÖ´Ù°í °¡Á¤ÇÑ´Ù.
³ª. Ãʱâ desynchronization
ÀÌ ¹æ¹ýÀº ¼¹ö¿¡¼ Ãʱ⠼³Á¤´Ü°èÀÇ Á¢¼ÓÀ» ²÷°í ´Ù¸¥ ÀϷùøÈ£·Î »õ·Î¿î Á¢¼ÓÀ» »ý¼ºÇÑ´Ù.
¨ç Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö¿ÍÀÇ Á¢¼ÓÀ» »ý¼º½Ã۱â À§ÇØ SYN ÆÐŶÀ» Àü¼ÛÇÑ´Ù.
¨è °ø°ÝÀÚ´Â ¼¹ö¿¡¼ Ŭ¶óÀÌ¾ðÆ®·Î °¡´Â SYN/ACK ÆÐŶÀ» ¸®½¼ÇÑ´Ù.
¨é ÆÐŶÀ» ŽÁöÇßÀ»¶§ °ø°ÝÀÚ´Â ¼¹ö¿¡ RST ÆÐŶÀ» º¸³» Ŭ¶óÀ̾ðÆ®ÀÇ Á¢¼ÓÀ» Á¾·á½ÃŲ´Ù.
¨ê °ø°ÝÀڴ Ŭ¶óÀÌ¾ðÆ®°¡ º¸³½ ÆÐŶ°ú µ¿ÀÏÇÑ ÆÄ¶ó¸ÞÅ͵é(TCP Æ÷Æ®)À» °¡ÁöÁö¸¸ ÀϷùøÈ£°¡ ´Ù¸¥ SYN ÆÐŶÀ» ¼¹ö¿¡ º¸³½´Ù. ¼¹ö´Â ÀÚ½ÅÀÇ ´Ù¸¥ ÀϷùøÈ£(SVR_SEQ'0)¸¦ °¡Áö°í °°Àº Æ÷Æ®¿¡ »õ·Î¿î Á¢¼ÓÀ» °³¹æÇÑ´Ù.
¨ë ¼¹ö´Â SYN/ACK ÆÐŶÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ ¹ß¼ÛÇÑ´Ù.
¨ì ÀÌ ÆÐŶÀ» ŽÁöÇÑ °ø°ÝÀÚ´Â ¼¹ö¿¡ ACK ÆÐŶÀ» ¹ß¼ÛÇÑ´Ù. ¼¹ö´Â ESTABLISHED »óÅ·ΠÀüȯÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö·Î ºÎÅÍ ÃÖÃÊ SYN/ACK ÆÐŶÀ» ¼ö½ÅÇßÀ» ¶§ ÀÌ¹Ì ESTABLISHED »óÅ·ΠÀüȯµÇ¾î ÀÖ´Ù.
À§ÀÇ °úÁ¤À» °ÅÃÄ ÀÌÁ¦ ¾ç´ÜÀº desynchronized ESTABLISHED »óŰ¡ µÈ´Ù.
SVR_TO_CLT_OFFSET = SVR_SEQ0 - SVR_SEQ'0
°¡ ¼¹ö¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.
CLT_TO_SVR_OFFSET = ATK_SEQ0 - CLT_SEQ0
°¡ °ø°ÝÀÚ¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.
°ø°ÝÀÇ ¼ºÆÐ´Â CLT_TO_SVR_OFFSETÀÇ ¿Ã¹Ù¸¥ ¼±Åÿ¡ ´Þ·ÁÀÖ´Ù. À߸øµÈ °ªÀº Ŭ¶óÀ̾ðÆ®ÀÇ ÆÐŶÀÌ ¼¹ö¿¡ ÀÇÇØ ¹Þ¾Æµé¿©Áö°í ¿øÄ¡¾Ê´Â È¿°ú¸¦ ¸¸µé¾î³¾ ¼ö ÀÖ´Ù.
´Ù. ³Î µ¥ÀÌÅÍ desynchronization
ÀÌ ¹æ¹ý¿¡¼ °ø°ÝÀÚ´Â ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¿¡ ´ë·®ÀÇ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù.
Àü¼ÛµÈ µ¥ÀÌÅÍ´Â ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¿¡ ¾Æ¹«·± ¿µÇâµµ ÁÖÁö ¾Ê°í °¡½ÃÀûÀÌÁöµµ ¾ÊÁö¸¸ ÀÌ µÎ TCP ¼¼¼ÇÀÇ ¾ç´ÜÀ» desynchronized »óÅ¿¡ ³õÀÌ°Ô ÇÑ´Ù.
´ÙÀ½°ú °°Àº ½ºÅ´ÀÌ telnet ¼¼¼Ç¿¡ »ç¿ëµÇ¾îÁú ¼ö ÀÖ´Ù.
°ø°ÝÀÚ´Â °£¼·¾øÀÌ ¼¼¼ÇÀ» °üÂûÇÑ´Ù.
°ø°ÝÀÚ´Â Àû´çÇÑ ¶§¿¡ ¼¹ö¿¡°Ô ´Ù·®ÀÇ ³Î µ¥ÀÌÅÍ(null data)¸¦ Àü¼ÛÇÑ´Ù. ³Î µ¥ÀÌÅͶõ ¼¹ö¿¡ ¾Æ¹«·± ¿µÇâÀ» ÁÖÁö ¾ÊÁö¸¸ TCP È®ÀιøÈ£ (acknowledgment number)¸¦ ¹Ù²Ù´Â µ¥ÀÌÅ͸¦ ¸»ÇÑ´Ù. °¡·É telnet ¼¼¼Ç¿¡¼ °ø°ÝÀÚ´Â ÀÏ·ÃÀÇ "IAC NOP IAC NOP ..."¸¦ Æ÷ÇÔÇÏ´Â ATK_SVR_OFFSET ¸¸ÅÀÇ ¹ÙÀÌÆ®¸¦ º¸³½´Ù. ¸Å 2¹ÙÀÌÆ® IAC NOP´Âtelnet µ¥¸ó¿¡ ÀÇÇØ ÇØ¼®µÇ¾îÁö°í µ¥ÀÌÅÍ ½ºÆ®¸²À¸·ÎºÎÅÍ Á¦°ÅµÇ¾îÁö°í ¾Æ¹«·± ¿µÇâµµ ¹ÌÄ¡Áö ¾Ê´Â´Ù. ÀÌÁ¦ ¼¹ö´Â ´ÙÀ½ »óŰ¡ µÈ´Ù.
SVR_ACK = CLT_SEQ + ATK_SVR_OFFSET
ÀÌ °úÁ¤À» ÅëÇØ ¼¹ö´Â desynchronized µÇ¾îÁø´Ù.
Ŭ¶óÀÌ¾ðÆ®¿¡ ´ëÇØ¼µµ ÀÌ·¯ÇÑ ÀÛ¾÷À» ¼öÇàÇÏ¿© desynchronized »óÅ·Π¸¸µç´Ù.
ÀÌ ¹æ¹ýÀº ¼¼¼ÇÀÌ ³Î µ¥ÀÌÅ͸¦ µ¿¹ÝÇÒ ¼ö ÀÖÀ» °æ¿ì¿¡´Â À¯¿ëÇÏ´Ù. ÇÏÁö¸¸ °ø°ÝÀÚ°¡ µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ´Â ½Ã°£À» °áÁ¤ÇϱⰡ ´ë´ÜÈ÷ ¾î·Æ°í ¿¹ÃøÇÒ ¼ö ¾ø´Â ºÎÀÛ¿ëÀ» ÀÏÀ¸Å³ ¼öµµ ÀÖ´Ù.
3. °ø°Ý µµ±¸
ÀÌ·ÐÀûÀ¸·Î ¾Ë·ÁÁø TCP ÇÁ·ÎÅäÄÝÀÇ Ãë¾àÁ¡À» ÀÌ¿ëÇÑ hijacking °ø°Ý±â¼úÀº '98³â 12¿ù HUNT¶ó´Â °ø°Ýµµ±¸°¡ °ø°³µÇ¸é¼ °ø°ÝÀÌ Áõ°¡ÇÒ °ÍÀ¸·Î ¿¹»óµÈ´Ù.
HUNT´Â Á¢¼ÓµÈ »óÅ¿¡¼ ħÀÔÇϰí Á¢¼Ó »óȲÀ» °¨½ÃÇϰí À̸¦ Àç¼³Á¤ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ÀÌ µµ±¸´Â ¸Þ´º¹æ½Ä »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϰí ÀÖ¾î ½Ã½ºÅÛÀ̳ª ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ±íÀº ÀÌÇØ°¡ ÇÊ¿ä¾øÀÌ °ø°ÝÇÒ ¼ö ÀÖ´Ù.
°¡. Ư¡
HUNTÀÇ ÁÖ¿ä Æ¯Â¡Àº ´ÙÀ½°ú °°´Ù.
Á¢¼Ó °ü¸®
- °ü½ÉÀÖ´Â Á¢¼ÓÀ» ¼³Á¤
- µé¾î¿À´Â Á¢¼Ó ŽÁö(SYNÀ¸·Î ½ÃÀÛÇÏ´Â ÆÐŶ»Ó ¾Æ´Ï¶ó)
- ACK storm ŽÁö·Î hijacking ÇàÀ§ °¨½Ã
- ¼º°øÀûÀÎ ARP À§Àå ŽÁö·Î ARP À§Àå °ø°Ý°ú ÀϹÝÀûÀÎ hijacking °ø°Ý ŽÁö
- hijacking ÈÄ¿¡ ½ÇÁ¦ Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö°£ÀÇ µ¿±âÈ(ÀÌ·¯ÇÑ ÀÌÀ¯·Î Á¢¼ÓÀÌ ¸®¼ÂµÉ ÇÊ¿ä´Â ¾øÀ½)
- Á¢¼Ó ¸®¼Â
- Á¢¼Ó °¨½Ã
µ¥¸ó
- ÀÚµ¿ÀûÀÎ Á¢¼Ó ¸®¼ÂÀ» À§ÇÑ ¸®¼Â µ¥¸ó
- À§ÀåµÈ È£½ºÆ®·Î ºÎÅÍÀÇ ¸ðµç ÆÐŶÀ» Àü¼ÛÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» °¡Áø È£½ºÆ®ÀÇ arp À§ÀåÀ» À§ÇÑ arp À§Àå ¹× Àü¼Û µ¥¸ó
- MAC wnth ¼öÁýÀ» À§ÇÑ MAC ¹ß°ß µ¥¸ó
- ƯÁ¤ ¹®ÀÚ¿À» Ž»öÇÒ ¼ö ÀÖ´Â TCP Æ®·¡ÇÈÀ» ±â·ÏÇÒ ¼ö ÀÖ´Â ½º´ÏÆÛ µ¥¸ó
È£½ºÆ® resolving
- DNS ¼¹ö¸¦ ÅëÇÑ È£½ºÆ® resolving
ÆÐŶ ¿£Áø
- TCP, UDP, ICMP, ARP Æ®·¡ÇÈÀ» °¨½ÃÇϱâ À§ÇÑ È®ÀåµÈ ÆÐŶ ¿£Áø
- ÀϷùøÈ£¿Í ACK storm ŽÁö¸¦ °¡Áø TCP Á¢¼Ó ȹµæ
±âŸ
- È£½ºÆ® ¸ñ·Ï º¸¿©Áֱ⠵î
³ª. ±â´É
List/Watch/Reset Á¢¼Ó
ƯÁ¤ Á¢¼Ó ¸®½ºÆ®¸¦ ¾òÀ» ¼ö ÀÖ°í À̵é Á¢¼ÓÀ» ´ëÈ ¹æ½Ä ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¼ °¨½ÃÇϰųª Á¾·á(reset)½Ãų ¼ö ÀÖ´Ù. ¶ÇÇÑ ÀÌ Á¢¼Ó¿¡ ´ëÇØ hijackingÀ» ÇÒ ¼öµµ ÀÖ´Ù.
ARP/Simple hijack
¼±ÅÃµÈ Á¢¼Ó¿¡ ´ëÇØ¼ ´ëȹæ½Ä ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¼ µ¥ÀÌÅ͸¦ »ðÀÔÇÒ ¼ö ÀÖ´Ù.
Simple hijack
Á¢¼ÓÀÇ µ¥ÀÌÅÍ ½ºÆ®¸²¿¡ ÇÑ ¸í·É¾î¸¦ »ðÀÔÇÑ´Ù.
ÀÌ °æ¿ì ARP À§ÀåÀ» ÇÏÁö ¾ÊÀ» °æ¿ì ACK stormÀÌ ÀϾ °ÍÀÌ´Ù.
4. °ø°ÝŽÁö ¹× ¹æÁö´ëÃ¥
°¡. °ø°Ý ŽÁö
hijacking °ø°Ý¿¡ ´ëÇÑ Å½Áö ¹æ¹ýÀÌ ¸î°¡Áö ÀÖ´Ù.
desynchronized »óÅ ŽÁö
Á¢¼Ó ¾ç´ÜÀÇ ÀϷùøÈ£¸¦ ºñ±³ÇÔÀ¸·Î½á »ç¿ëÀÚ´Â ÀÌ Á¢¼ÓÀÌ desynchronized »óÅÂÀÎÁö¸¦ ŽÁöÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹æ¹ýÀº TCP ½ºÆ®¸²À» ÅëÇØ Àü¼ÛµÇ´Â ÀϷùøÈ£°¡ °ø°ÝÀÚ¿¡ ÀÇÇØ º¯°æµÇÁö ¾Ê¾Ò´Ù°í °¡Á¤ÇÒ °æ¿ì¿¡ °¡´ÉÇÏ´Ù.
Ack storm ŽÁö
Áö¿ª ÀÌ´õ³Ý »óÀÇ TCP Æ®·¡ÇÈ¿¡ ´ëÇÑ Åë°èÀÚ·á´Â °ø°ÝÀÌ ¾ø´Â ÀϹÝÀûÀÎ »óȲ¿¡¼´Â Àüü telnet ÆÐŶ ´ç µ¥ÀÌÅÍ ¾ø´Â ACK ÆÐŶÀÇ ºñÀ²ÀÌ ´ë·« 45% Á¤µµÀÌ´Ù. ÀÌ´Â telnet ¼¼¼ÇÀº ´ëÈÇü ¼¼¼ÇÀ¸·Î »ç¿ëÀÚ¿¡ ÀÇÇØ ŸÀÌÇÁµÈ ¸ðµç ¹®ÀÚ´Â ¿¡ÄڵǾîÁö°í È®ÀεǾî Áø´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. °ø°ÝÀÌ ¼öÇàµÉ °æ¿ì ÀÌ·¯ÇÑ Åë°è°ªµéÀÌ º¯ÇÏ°Ô µÉ °ÍÀÌ´Ù.
ƯÁ¤ ¼¼¼Ç¿¡¼ ÆÐŶ À¯½Ç ¹× ÀçÀü¼Û Áõ°¡ ŽÁö
°ø°Ý Áß¿¡´Â ºñÁ¤»óÀûÀ¸·Î ³ôÀº ºñÀ²ÀÇ ÆÐŶ À¯½Ç ¹× ÀçÀü¼ÛÀÌ ¹ß»ýÇϹǷΠ°ø°ÝÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ´Â »ç¿ëÀÚ¿¡ ´ëÇÑ ÀÀ´ä½Ã°£ÀÇ Áö¿¬À» ÀǹÌÇÑ´Ù. ÆÐŶ À¯½Ç Áõ°¡´Â ´ÙÀ½ÀÇ ÀÌÀ¯¿¡ ÀÇÇØ ¹ß»ýÇÑ´Ù.
- ACK storm¿¡ ±âÀÎÇÑ ³×Æ®¿öÅ©ÀÇ Æ¯º°ÇÑ ºÎÇÏ
- °ø°ÝÀÚÀÇ ½º´ÏÆÛ¿¡ ÀÇÇÑ ÆÐŶ »ó½Ç. ÀÌ·¯ÇÑ ÆÐŶ »ó½ÇÀº ³×Æ®¿öÅ© ºÎÇϸ¦ Áõ°¡½ÃŰ´Â °æÇâÀÌ ÀÖÀ½
±â´ëÄ¡ ¾ÊÀº Á¢¼Ó ¸®¼Â
»ç¿ëÀÚ´Â °ø°Ý ÇÁ·ÎÅäÄÝÀÌ ÀûÀýÈ÷ ¼öÇàµÇÁö ¾ÊÀ» °æ¿ì¿¡ Á¢¼Ó Ãʱ⠻óÅ¿¡¼ ¼¼¼ÇÀÇ Á¢¼Ó ¸®¼ÂÀ» °æÇèÇÒ ¼ö ÀÖ´Ù. °ø°ÝÀÇ ¾à 10%°¡ ¼º°øÇÏÁö ¸øÇϸç ÀÌ¿¡ µû¶ó Á¢¼Ó Á¾·á(»ç¿ëÀÚ¿¡°Ô ¸Å¿ì °¡½ÃÀûÀ¸·Î ³ªÅ¸³²)³ª non-desynchronized Á¢¼Ó(°ø°ÝÀÚ´Â ½ºÆ®¸²À» ¸®´ÙÀÌ·ºÆ®ÇÒ ¼ö ¾øÀ½)À¸·Î ³¡³´Ù.
³ª. ¹æÁö´ëÃ¥
telnet ¼¼¼Ç¿¡¼ÀÇ ÀÌ·¯ÇÑ °ø°ÝÀ¸·ÎºÎÅÍÀÇ ¹æ¾î´Â ¾ÏÈ£ÈµÈ Ä¿¹ö·Î½º ½ºÅ´(ÀÀ¿ë°èÃþ)À̳ª TCP ¾ÏÈ£È ±¸Çö(TCP °èÃþ)ÀÌ´Ù. µ¥ÀÌÅÍ È帧ÀÇ ¾Ïȣȴ ³»¿ë¿¡ ´ëÇÑ Ä§¹üÀ̳ª º¯Á¶¸¦ ¹æÁöÇÑ´Ù. µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¼¸íµµ »ç¿ëµÇ¾î Áú¼ö ÀÖ´Ù. PGP´Â ¾ÈÀüÇÑ ÀüÀÚ¿ìÆí Àü¼ÛÀÇ ÇÑ ¿¹ÀÌ´Ù.
5. °á·Ð
telnetÀ̳ª ±âŸ À¯»çÇÑ ÇÁ·Î±×·¥¿¡¼ ÆÐ½º¿öµå¸¦ º¸³¾ ¶§ ¾ÏÈ£È ÇÏÁö ¾Ê°í ÀÏ¹Ý ÅØ½ºÆ®·Î º¸³»°Ô µÇ¸é ³×Æ®¿öÅ© ½º´ÏÆÛ¸µ °ø°Ýµî¿¡ ÀÇÇØ Ä§ÇØ´çÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ÀÏȸ¿ë ÆÐ½º¿öµå¸¦ »ç¿ëÇÒ °æ¿ì ½º´ÏÆÛ¸µ¿¡´Â ¾ÈÀüÇÒÁö¶óµµ ÀÌ¹Ì ÀÌ·ç¾îÁ® ÀÖ´Â Á¢¼Ó¿¡ ´ëÇÑ °ø°ÝÀÎ hijacking¿¡´Â ¾ÈÀüÇÏÁö ¸øÇÏ´Ù. ¿À·ÎÁö ¿ÏÀüÈ÷ ¾ÏÈ£ÈµÈ Æ®·¡ÇÈÀº ÀÌ·¯ÇÑ °ø°Ýµé¿¡ ¾ÈÀüÇÒ ¼ö ÀÖ´Ù.
TCP ÇÁ·ÎÅäÄÝÀÇ Ãë¾à¼ºÀ» ÀÌ¿ëÇÑ ÀÌ·¯ÇÑ Àû±ØÀûÀÎ °ø°ÝÀº Áö¿ª ³×Æ®¿öÅ©¿¡¼ »ç¿ëµÇ¾îÁú °æ¿ì ½±°Ô ŽÁö°¡ µÇ´Â ¹Ý¸é, °ø°ÝÀÌ Àå°Å¸®, ³·Àº ´ë¿ªÆø, ³ôÀº Áö¿¬ ³×Æ®¿öÅ©(ÀϹÝÀûÀ¸·Î WAN) »ó¿¡¼ ¼öÇàµÇ¾îÁú °æ¿ì ´ë´ÜÈ÷ À¯È¿ÇÏ´Ù. ±×°ÍÀº ÀÎÅÍ³Ý »ó¿¡¼ ³Ê¹«µµ ÀÚÁÖ ¹ß»ýÇÏ´Â ¼öµ¿ÀûÀÎ ½º´ÏÇÎ °ø°Ý¿¡ »ç¿ëµÇ´Â °Í°ú °°Àº ÀÚ¿øÀ¸·Î ¼öÇàµÇ¾î Áú ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °ø°ÝÀº »ç¿ëÀÚ¿¡ ÀÇÇØ °¡½ÃÀûÀÌÁö ¾ÊÀ¸¹Ç·Î ´õ À§ÇèÇÏ´Ù. ÀÎÅÍ³Ý »ó¿¡¼ È£½ºÆ®¿¡·ÎÀÇ Ä§ÀÔÀÌ ÀæÀ»¼ö·Ï °ø°Ý »ç½ÇÀ» ¼û±â´Â °ÍÀÌ ´ë´ÜÈ÷ Áß¿äÇϸç À̴ ŽÁö¸¦ ¾î·Æ°Ô ÇÑ´Ù.
ÀÎÅͳݿ¡¼ ¸ðµç »ç¶÷µéÀÇ °ü½ÉÀÌ ÇöÀçÀÇ IPv4¸¦ ´ëüÇÒ IPv6ÀÇ ÃâÇö¿¡ ÁÖ¸ñÇϰí ÀÖÀ»¶§, °ø°ÝÀÇ Áõ°¡¿Í ¾ÈÀüÇÑ ½Ã½ºÅÛÀÇ Çʿ伺Àº ÀÎÅÍ³Ý »ç¿Ü¸¦ À§ÇÑ ¾ÈÀüÇÑ Àü¼Û°èÃþÀÇ °³¹ß ¹× »ç¿ëÀ» ¿ä±¸Çϰí ÀÖ´Ù. ÇÁ¶óÀ̹ö½Ã¸¦ º¸È£Çϱâ À§Çؼ »çÀÎÀ» ÇÏ°í °á±¹ ¾ÏÈ£ÈµÈ µ¥ÀÌÅÍÀÇ Àü¼ÛÀÌ ¼±ÅÃÀûÀ¸·Î °¡´ÉÇØ¾ß ÇÑ´Ù. µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¼¸íÀº ÇöÀçÀÇ TCP üũ¼¶ÀÌ ½Å·Ú¼ºÀÖ´Â ¼¸íÀ¸·ÎÀÇ ´ëü¸¦ ÀǹÌÇÑ´Ù.
ÀϹÝÀûÀ¸·Î ÀÌ´õ³ÝÀÇ ½º´ÏÇÎÀ» ¹æÁöÇϱâ À§ÇÏ¿© s/key³ª Ä¿¹ö·Î½º¸¦ »ç¿ëÇÏ´Â °Í¸¸À¸·Î ÃæºÐÇÏ´Ù´Â »ý°¢Àº ´ë´ÜÈ÷ À§ÇèÇÏ´Ù´Â °ÍÀ» ±ú´Þ¾Æ¾ß ÇÑ´Ù.
|