ÇÁ·ÎÅäÄÝ ºÐ¼®¿¡ ±â¹ÝÇÑ Æ÷Æ® ½ºÄµ ÇÁ·Î±×·¥

 

 

by Beist Security Study Group
(http://beist.org)

Members of Beist Research Group : beist and anonymous people
Members of Beist Study Group : beist, dars21, obhacker, passion, p-jackpot, jacaranda, cina






¿ä¾à : ±âÁ¸ÀÇ Æ÷Æ® ½ºÄµ ÇÁ·Î±×·¥Àº ÇØ´ç Æ÷Æ®ÀÇ Open/Close À¯¹«¸¦ ´ë»óÀ¸·Î µ¥¸óÀÇ Á¾·ù¸¦ ÆÄ¾ÇÇÏ¿´´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ¹æ¹ýÀº Á¤È®ÇÑ ºÐ¼®À» ÅëÇÑ °ÍÀÌ ¾Æ´Ï¶ó ´Ü¼øÇÏ°Ô Æ÷Æ®ÀÇ Á¸Àç À¯¹«¸¸À» ÆÄ¾ÇÇϱ⠶§¹®¿¡ ºÎÁ¤È®ÇÑ Á¤º¸¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù. ƯÈ÷ ±¤´ë¿ªÀÇ Æ÷Æ® ½ºÄµ ÀÛ¾÷À» ¼öÇàÇÒ ¶§ ÀÌ·¯ÇÑ Á¤È®ÇÑ ºÐ¼®Àº ´õ¿í Áß¿äÇØÁø´Ù. º» ¹®¼­´Â ÇØ´ç Æ÷Æ®¿Í ³×Æ®¿öÅ©¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ´Â ¹æ½ÄÀ¸·Î, Áï ÇÁ·ÎÅäÄÝ ºÐ¼®À» ±â¹ÝÀ¸·Î ÇÑ Æ÷Æ® ½ºÄµ ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¾ÆÀ̵ð¾î¸¦ ´Ù·ç°í ÀÖ´Ù.

 

 

 

 

 

1. ¼Ò°³

Æ÷Æ®½ºÄµ ÇÁ·Î±×·¥Àº ¸ñÇ¥ ¼­¹ö¿¡¼­ »ç¿ëÁßÀÎ Æ÷Æ®¸¦ °Ë»öÇÏ¿© ¾î¶² Æ÷Æ®°¡ ¿­·ÁÀÖ´ÂÁö È®ÀÎÇϰí ÇØ´ç Æ÷Æ®¸¦ »ç¿ëÇÏ´Â µ¥¸óÀÇ Á¾·ù°¡ ¹«¾ùÀÎÁö ÆÄ¾ÇÇϱâ À§ÇØ ¸¹ÀÌ »ç¿ëµË´Ï´Ù . Æ÷Æ®¸¦ ½ºÄµÇÒ ¼ö ÀÖ´Â °£´ÜÇÑ ¹æ¹ýÀ¸·Î connect ÇÔ¼ö¸¦ (C ¾ð¾îÀÇ Network Function) È£ÃâÇÏ¿© ¿¬°áÀÌ µÇ´Â °ÍÀ» È®ÀÎÇÏ°í Æ÷Æ®°¡ ¿­·ÁÀÖ´ÂÁö °Ë»çÇÕ´Ï´Ù.
±×·¯³ª , ÀÌ·¯ÇÑ ÀϹÝÀûÀÎ ¹æ¹ýÀº ÇØ´ç Æ÷Æ®°¡ ¿­·Á ÀÖ´Â °ÍÀº È®ÀÎÇÒ ¼ö ÀÖÁö¸¸ , ÇØ´ç Æ÷Æ®¿¡ ¸ÅÇεǴ µ¥¸ó ¼­ºñ½º°¡ Á¤»óÀûÀ¸·Î ÀÛµ¿Çϰí ÀÖ´Â ÁßÀÎÁö È®ÀÎÇÒ ¼ö´Â ¾ø½À´Ï´Ù . ¿¹¸¦ µé¾î ¼­¹ö¿¡¼­ 22 Æ÷Æ®°¡ ¿­·ÁÀÖ´Ù°í ÇØµµ ½ÇÁ¦·Î´Â ssh µ¥¸óÀÌ ¾Æ´Ñ ´Ù¸¥ µ¥¸óÀÌ (ȤÀº honeypot) »ç¿ëÇÏ´Â Áß Àϼöµµ ÀÖ½À´Ï´Ù . (ÀϹÝÀûÀ¸·Î 22 ¹ø Æ÷Æ®´Â ssh µ¥¸óÀÌ »ç¿ëÇÕ´Ï´Ù .) °á°úÀûÀ¸·Î À߸øµÈ °á°ú¸¦ ³ªÅ¸³¾ ¼ö ÀÖ°í Æ¯È÷ ±¤´ë¿ªÀÇ Æ÷Æ® ½ºÄµ ÀÛ¾÷À» ¼öÇàÇÒ ¶§ ÀÌ·¯ÇÑ Á¤È®ÇÑ ºÐ¼®Àº ´õ¿í Áß¿äÇØÁý´Ï´Ù.
connect ÇÔ¼ö È£Ãâ ÈÄ¿¡ ¿¬°áµÈ Æ÷Æ®¿¡ ´ëÇØ¼­ ÇØ´ç µ¥¸óÀÇ ÇÁ·ÎÅäÄÝ ÀÎÁõ °úÁ¤À» È®ÀÎÇÏ´Â ÀýÂ÷¸¦ °ÅÃľ߸¸ Á¤È®ÇÑ Æ÷Æ® °Ë»öÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù . º» ¹®¼­´Â ÇÁ·ÎÅäÄÝ ºÐ¼®À» ÅëÇÑ Æ÷Æ® ½ºÄµ ÇÁ·Î±×·¥À» ÀÛ¼ºÇϴµ¥ ÇÊ¿äÇÑ Áö½ÄÀ» ´Ù·ì´Ï´Ù.

 

 

 

 

2. ±â¼úÀûÀÎ ³»¿ë

Æ÷Æ®¸¦ °Ë»öÇÑ ÈÄ , ÇØ´ç Æ÷Æ®¿¡¼­ ¼­ºñ½º ÁßÀÎ µ¥¸óÀ» ´ë»óÀ¸·Î ÇÁ·ÎÅäÄÝ ÀÎÁõ ÀýÂ÷¸¦ ¼öÇàÇÏ´Â ÀÛ¾÷À» ¾Ë¾Æº¸°Ú½À´Ï´Ù . °¢°¢ÀÇ µ¥¸ó¸¶´Ù ÀÎÁõ ÀýÂ÷°¡ ´Þ¶óÁú ¼ö Àֱ⠶§¹®¿¡ ÀÌ ¹®¼­¿¡¼­´Â ÀÎÁõ ÀÛ¾÷À» ¼öÇàÇÒ µ¥¸óÀ» ¹Ì¸® ¼±Á¤ÇϰڽÀ´Ï´Ù . ¿¹·Î ¼³¸íÇÒ µ¥¸óÀº ftp(21), ssh(22), telnet(23), smtp(25), http(80), pop(110), mysql(3306) ÀÔ´Ï´Ù . °¢°¢ÀÇ µ¥¸óÀº Æ÷Æ® º°·Î ¸ÅĪµÇ¸ç ¿¹¸¦ µé¾î Æ÷Æ® ½ºÄµ ½Ã¿¡ 22 Æ÷Æ®°¡ °Ë»öµÇ¾ú´Ù¸é ssh ÀÎÁõ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù .
´ÙÀ½Àº °¢°¢ÀÇ µ¥¸ó¿¡ ´ëÇÑ ÀÎÁõ ÀýÂ÷¸¦ ¼öÇàÇϱâ À§Çؼ­ ÇÊ¿äÇÑ ±¸Ã¼ÀûÀÎ ³»¿ëµéÀÔ´Ï´Ù .

(1) FTP

1) FTP µ¥¸óÀ¸·Î ¿¬°á ÀÛ¾÷

FTP Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© tcp ¿¬°á ¼³Á¤À» ¼öÇàÇÕ´Ï´Ù . ÀÌ ¿¬°á ¼³Á¤ÀÌ ¿Ï·áµÇ¸é , FTP µ¥¸óÀ¸·ÎºÎÅÍ "220 ProFTPD 1.2.5 Server (Welcome NetGurur's FTP SeRvEr) [ACCS]" ¿Í ·Î±×ÀÎ °èÁ¤À» ÀÔ·Â ¹Þ±â À§ÇÑ ¡°Name (192.168.0.2:test):¡± °°Àº ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù . ( ÀÌ ¸Þ½ÃÁö´Â FTP µ¥¸óÀÇ ¹öÀüÀ̳ª Á¾·ù¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù .) ¾Õ¿¡ ³ª¿Â ¼ýÀÚ 220 Àº ¸í·É¾î°¡ Á¤»óÀ̰í , ¿¬°áÀÌ ¼º¸³µÊÀ» ÀǹÌÇÏ´Â ¸®ÅÏ °ªÀÔ´Ï´Ù . ´ÙÀ½Àº ÀÌ·¯ÇÑ ÀÎÁõ °úÁ¤ÀÇ ¸Þ½ÃÁö¸¦ ºÐ¼®ÇÑ °ÍÀÔ´Ï´Ù .

[test@ACCS test]$ ftp -d 192.168.0.2 /* d ¿É¼ÇÀº µð¹ö±× Ãâ·ÂÀ» À§ÇÔ */
Connected to 192.168.0.2 (192.168.0.2).
220 ProFTPD 1.2.5 Server (Welcome NetGurur's FTP SeRvEr) [ACCS]
Name (192.168.0.2:test):

2) USER ÀÔ·Â

ÀÌ¿¡ ´ëÇØ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÌ " USER test "°ú °°Àº Á¤»óÀûÀÎ ·Î±×ÀÎ ¸Þ½ÃÁö¸¦ ÀÔ·ÂÇßÀ» ¶§ ¼­¹ö´Â ´ÙÀ½°ú °°Àº ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»ÁÝ´Ï´Ù. ¾Õ¿¡ ³ª¿Â ¼ýÀÚ 331Àº »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ À¯Àú À̸§ÀÌ Á¤»óÀ̰í, À̾ ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇØ´Þ¶ó´Â °ÍÀ» ÀǹÌÇÏ´Â ¸®ÅÏ °ªÀÔ´Ï´Ù.

---> USER test
331 Password required for test.
Password:

3) PASS ÀÔ·Â

test °èÁ¤ÀÇ ÆÐ½º¿öµå¸¦ ¹¯´Â ¼­¹öÀÇ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´ä ¸Þ½ÃÁö·Î ¡° PASS XXXX ¡± ¿Í °°Àº ÆÐ½º¿öµå ¸Þ½ÃÁö¸¦ º¸³»¸é ¼­¹ö´Â °èÁ¤°ú ÆÐ½º¿öµå¸¦ È®ÀÎÇϴµ¥ ¿©±â¼­´Â ÆÐ½º¿öµå°¡ Ʋ·È±â ¶§¹®¿¡ ´ÙÀ½°ú °°Àº ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»¿É´Ï´Ù . ¾Õ¿¡ ³ª¿Â ¼ýÀÚ ¡° 530 ¡± Àº ÀÎÁõ°ú ·Î±×Àο¡ °ü·ÃÇØ ½ÂÀεÇÁö ¾ÊÀº ¸í·É¾î ( ÆÐ½º¿öµå Ʋ¸² ) ÀÓÀ» ÀǹÌÇÕ´Ï´Ù .

---> PASS XXXX
530 Login incorrect.
Login failed.

¹Ý´ë·Î °èÁ¤¿¡ ´ëÇÑ ÆÐ½º¿öµå°¡ ¿Ã¹Ù¸¦ °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»¿É´Ï´Ù . ¾Õ¿¡ ³ª¿Â ¼ýÀÚ ¡° 230 ¡± Àº ÀÎÁõ°ú ·Î±×Àο¡ °ü·ÃÇØ Á¤»óÀûÀÎ ¸í·É¾î ( ÆÐ½º¿öµå ¸ÂÀ½ ) ÀÓÀ» ÀǹÌÇÕ´Ï´Ù .

---> PASS XXXX
230 User test logged in.

À§¿Í °°Àº °úÁ¤À» ÅëÇØ FTP µ¥¸óÀÇ ÀÎÁõ ÀýÂ÷¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ¸¸ç , ÀÌ·¯ÇÑ °úÁ¤À» ±â¹ÝÀ¸·Î ÇÁ·ÎÅäÄÝ ºÐ¼®À» ÅëÇÑ Æ÷Æ® ½ºÄµ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù .

 

(2) SSH

1) SSH µ¥¸óÀ¸·Î ¿¬°á ÀÛ¾÷

SSH Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© tcp ¿¬°á ¼³Á¤À» ¼öÇàÇÕ´Ï´Ù . ÀÌ ¿¬°á ¼³Á¤ÀÌ ¿Ï·áµÇ¸é , ¼­¹ö´Â ssh µ¥¸óÀ¸·ÎºÎÅÍ "SSH-1.99-OpenSSH_3.5p1" ¿Í °°Àº µ¥¸óÀÇ ¹öÀüÀ» ¾Ë·ÁÁִ ù ¸Þ½ÃÁö¸¦ º¸³»¿É´Ï´Ù . ( ÀÌ ¸Þ½ÃÁö´Â ssh µ¥¸óÀÇ ¹öÀüÀ̳ª Á¾·ù¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù .)

[test@ACCS second]$ telnet 192.168.0.2 22
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
SSH-1.99-OpenSSH_3.9p1

2) Á¤»ó ¸Þ½ÃÁö Àü¼Û

ÀÌ¿¡ ´ëÇÑ Å¬¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÇ Á¤»óÀûÀÎ ÀÀ´ä ¸Þ½ÃÁö´Â "SSH-2.0-Zterm" ÀÔ´Ï´Ù . ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»¸é ¼­¹ö¿¡¼­ ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö¸¦ º¸³»ÁÝ´Ï´Ù .

[test@ACCS second]$ telnet 192.168.0.2 22
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
SSH-1.99-OpenSSH_3.9p1
SSH-2.0-Zterm
|
Ydiffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1ssh-rsa,ssh-dssaes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctraes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctrUhmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96Uhmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 none,zlibnone,zlib

3) ºñÁ¤»ó ¸Þ½ÃÁö Àü¼Û

Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀÎ ¸Þ½ÃÁö°¡ ¾Æ´Ñ "test" ¿Í °°Àº ºñÁ¤»óÀûÀÎ ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³ÂÀ» ¶§ ¼­¹ö´Â "Protocol mismatch" ¸Þ½ÃÁö¸¦ º¸³»°í ¿¬°áÀ» ²÷½À´Ï´Ù .

[test@ACCS second]$ telnet 192.168.0.2 22
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
SSH-1.99-OpenSSH_3.9p1
test
Protocol mismatch.
Connection closed by foreign host.

À§¿Í °°Àº °úÁ¤À» ÅëÇØ SSH µ¥¸óÀÌ º¸³½ ¸Þ½ÃÁö¿Í Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÇ ¸Þ½ÃÁö¿¡ ´ëÇÑ ¼­¹öÀÇ ÀÀ´äÀ» º¸°í ÇÁ·ÎÅäÄÝ ÀÎÁõÀýÂ÷¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù .

 

(3) TELNET

1) TELNET µ¥¸óÀ¸·Î ¿¬°á ÀÛ¾÷

TELNET Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© tcp ¿¬°á ¼³Á¤À» ¼öÇàÇÕ´Ï´Ù . ÀÌ ¿¬°á ¼³Á¤ÀÌ ¿Ï·áµÇ¸é , ¼­¹ö´Â ÀÌ Å¬¶óÀÌ¾ðÆ®¸¦ Áö¿øÇϱâ À§ÇÑ °¡»ó Å͹̳Πµå¶óÀ̹ö¸¦ Ȱ¼ºÈ­½Ãŵ´Ï´Ù . °¡»ó Å͹̳Πµå¶óÀ̹ö¶õ ¸¶Ä¡ »õ·Î¿î ½ÇÁ¦ Å͹̳Πµå¶óÀ̹ö°¡ Ȱ¼ºÈ­µÈ °Íó·³ ¼­¹ö°¡ °£ÁÖÇÏ´Â °ÍÀ» ¸»ÇÕ´Ï´Ù .
±×¸®°í , ÅÚ³Ý ¿¬°áÀ» ¿Ï¼ºÇϱâ À§ÇØ ¼­¹ö¿Í Ŭ¶óÀÌ¾ðÆ®°£ÀÇ µ¿ÀÛ È¯°æ¿¡ ´ëÇÑ Çù»óÀÌ ½ÃÀ۵˴ϴ٠. ÀÌ °úÁ¤À» À§ÇØ WILL, WONT, DO, DONT µî ³× °¡Áö Á¾·ùÀÇ ¸í·É¾î°¡ »ç¿ëµË´Ï´Ù .

2) ¿É¼Ç ¸í·É¾î

°¢ ¿É¼Ç ¸í·É¾îµéÀÇ Àǹ̸¦ ¾Ë¾Æº¸¸é ´ÙÀ½°ú °°½À´Ï´Ù .
WILL ~ : ³ª´Â ~ ¿É¼ÇÀ» enable ÇÒ °ÍÀÌ´Ù .
WONT ~ : ³ª´Â ~ ¿É¼ÇÀ» disable ÇÒ °ÍÀÌ´Ù .
DO ~ : ³Ê´Â ~ ¿É¼ÇÀ» enable ½ÃÄѶó .
DONT ~ : ³Ê´Â ~ ¿É¼ÇÀ» disable ½ÃÄѶó .
¿É¼ÇÀº IAC (Interpret As Command), Çù»ó ¸í·É¾î , Çù»ó ¸í·É¾î °ü·Ã ¿É¼Ç ¼ø¼­·Î Àü´ÞµË´Ï´Ù .

3) TELNET ÀÎÁõÀýÂ÷ °úÁ¤

½ÇÁ¦ TELNET ÇÁ·ÎÅäÄÝ ÀÎÁõ °úÁ¤À» »ìÆìº¸°Ú½À´Ï´Ù .

bash-2.05a$ telnet
telnet> toggle options /* ¸ðµç ¿É¼Ç 󸮰úÁ¤À» Ŭ¶óÀÌ¾ðÆ®¿¡°Ô º¸¿©ÁÖµµ·Ï ¼³Á¤ */
Will show option processing.
telnet> open 192.168.0.2 23 /* ÅÚ³Ý ¼­¹ö¿¡ Á¢¼Ó */
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
RCVD DO TERMINAL TYPE /* ¼­¹ö·ÎºÎÅÍ Å͹̳ΠŸÀÔÀ» enable Ç϶ó´Â ¿É¼Ç ¸í·É */
SENT WILL TERMINAL TYPE /* ¼­¹ö¿¡°Ô Å͹̳ΠŸÀÔÀ» enable Çϰڴٴ ¿É¼Ç ¸í·É */
RCVD DO TSPEED /* ¼­¹ö·ÎºÎÅÍ Å͹̳Π½ºÇǵ带 enable Ç϶ó´Â ¿É¼Ç ¸í·É */
SENT WILL TSPEED /* ¼­¹ö¿¡°Ô Å͹̳Π½ºÇǵ带 enable Çϰڴٴ ¿É¼Ç ¸í·É */

( Áß°£ ¿É¼Ç ¸í·É¾î »ý·« ¡¦)


Haansoft Linux OS release 2005 Server (Albatross64)
login:

À§ÀÇ ÅÚ³ÝÁ¢¼Ó ¿É¼ÇÀýÂ÷¿¡¼­ ¡° SENT WILL TERMINAL TYPE ¡± ¸Þ½ÃÁö´Â ½ÇÁ¦·Î´Â ¡± IAC | WILL | TERMINAL TYPE ¡± ¹®ÀÚ¿­À» º¸³»´Â °ÍÀε¥ , ÇØ´ç TCP ÆÐŶÀ» ĸÃÄÇÏ¿© µ¥ÀÌÅ͸¦ »ìÆìº¸¸é ¡° 255 | 251 | 24 ¡± ¿Í °°Àº ÇüÅ·Πº¸³»Áý´Ï´Ù . code = 255 ´Â IAC ÀÔ´Ï´Ù . code = 251 Àº WILL ¸í·É¾îÀ̰í , code = 24 ´Â TERMINAL TYPE ¿É¼ÇÀÔ´Ï´Ù .
RCVD DO TERMINAL TYPE ¸Þ½ÃÁö´Â ½ÇÁ¦·Î´Â ¡±IAC | DO | TERMINAL TYPE¡± ¹®ÀÚ¿­À» º¸³»´Â °ÍÀε¥ , ÇØ´ç TCP ÆÐŶÀ» ĸÃÄÇÏ¿© µ¥ÀÌÅ͸¦ »ìÆìº¸¸é ¡°255 | 253 | 24¡± ¿Í °°Àº ÇüÅ·Πº¸³»Áý´Ï´Ù . Code = 253 Àº DO ¸í·ÉÀ» ³ªÅ¸³À´Ï´Ù .
¸¸¾à ÀÌ·¯ÇÑ Çù»ó °úÁ¤À» ¿Ã¹Ù¸£°Ô °ÅÄ¡Áö ¾Ê´Â´Ù¸é telnet ·Î±×Àο¡ ¼º°øÇÒ ¼ö ¾ø½À´Ï´Ù . Áï , À§¿Í °°Àº ÀÎÁõ °úÁ¤À» ÅëÇÏ¿© telnet ÇÁ·ÎÅäÄÝÀÇ ÀÎÁõ ÀýÂ÷¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù .

 

(4) HTTP

1) HTTP µ¥¸óÀ¸·Î ¿¬°á ÀÛ¾÷

http Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© tcp ¿¬°á ¼³Á¤À» ¼öÇàÇÕ´Ï´Ù . ¿¬°áµÈ ÈÄ Å¬¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº ¡°GET / HTTP/1.0¡± ¸¦ ¼­¹ö·Î Àü¼ÛÇÕ´Ï´Ù . À̰ÍÀº ¼­¹öÀÇ ±âº» ÆäÀÌÁö¸¦ HTTP 1.0 ¹æ½ÄÀ¸·Î ¿äûÇÕ´Ï´Ù . (HTTP ¹öÀü ¹æ½ÄÀº ¿©·¯ Á¾·ù°¡ ÀÖÀ¸¸ç ÀϹÝÀûÀ¸·Î 1.0 À̳ª 1.1 ÀÌ ¸¹ÀÌ ¾²ÀÔ´Ï´Ù .) GET Àº HTTP method ÀÇ ÇÑ Á¾·ùÀ̰í , GET ´ÙÀ½ÀÇ ¡® / '´Â HTTP µ¥¸óÀÇ Default ÆäÀÌÁö¸¦ ¿ä±¸ÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù . ÀÌ ¸Þ½ÃÁöµéÀ» ¿äû ¸Þ½ÃÁö¶ó°í ÇÕ´Ï´Ù .

2) HTTP µ¥¸óÀ¸·ÎºÎÅÍ ÀÀ´ä ¸Þ½ÃÁö

http µ¥¸óÀº Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÇ ¿ä±¸¿¡ ÀÀÇϱâ À§ÇØ Protocol ÀÀ´ä ÄÚµå¿Í Default ÆäÀÌÁö¸¦ Ãâ·ÂÇØÁÝ´Ï´Ù . À̶§ Á¤»óÀûÀÎ ÀÀ´ä ÄÚµå´Â '200'ÀÔ´Ï´Ù. ¸¸¾à Á¤»óÀûÀÎ ÀÀ´ä ÄÚµå¿Í Default ÆäÀÌÁö¸¦ º¼ ¼ö ÀÖ´Ù¸é ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÏ´Â http µ¥¸óÀ¸·Î º¼ ¼ö ÀÖ½À´Ï´Ù . ±×·¯³ª °£È¤ Web ServerÀÇ ¼³Á¤¿¡ µû¶ó¼­ ´Ù¸¥ ÀÀ´ä Äڵ尡 ³ª¿Ã ¼öµµ Àִµ¥, ¹ÞÀº Äڵ尡 Protocol¿¡ ÁØÇÏ´Â ÀÀ´ä Äڵ带 ¹Þ´Â´Ù¸é Á¤»óÀûÀÎ HTTP µ¥¸óÀÌ¶ó º¼ ¼ö ÀÖ½À´Ï´Ù.

 

(5) SMTP

1) SMTP µ¥¸óÀ¸·Î ¿¬°á ÀÛ¾÷

smtp Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© tcp ¿¬°á ¼³Á¤À» ¼öÇàÇÕ´Ï´Ù . ¿¬°á ¼³Á¤ÀÌ ¿Ï·áµÇ¸é , smtp µ¥¸óÀ¸·ÎºÎÅÍ , µ¥¸óÀÇ ¹öÀüÀ» ¾Ë·ÁÁÖ´Â "220 master-of-darkh Microsoft ESMTP MAIL Service, Version: 6.0.2600.2180 ready at Wed, 7 Sep 2005 22:27:11 +0900" ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù . ( ÀÌ ¸Þ½ÃÁö´Â smtp µ¥¸óÀÇ ¹öÀüÀ̳ª Á¾·ù¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù .) ¾Õ¿¡ ³ª¿Â ¼ýÀÚ 220 Àº ÇöÀç »óŰ¡ Á¤»óÀûÀ̰í , Á¢¼ÓÀÌ ¼º°øµÇ¾úÀ½À» ÀǹÌÇÏ´Â ¸®ÅÏ °ªÀÔ´Ï´Ù . ´ÙÀ½Àº ÀÌ·¯ÇÑ ÀÎÁõ °úÁ¤ÀÇ ¸Þ½ÃÁö¸¦ ºÐ¼®ÇÑ °ÍÀÔ´Ï´Ù .

[test@ACCS test]$ telnet 192.168.0.3 25
Trying 192.168.0.3...
Connected to 192.168.0.3.
Escape character is '^]'.
220 master-of-darkh Microsoft ESMTP MAIL Service, Version: 6.0.2600.2180 ready at Wed, 7 Sep 2005 22:27:11 +0900

2) HELO ÀÔ·Â

ÀÌ¿¡ ´ëÇØ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÌ "HELO test.com" ¿Í °°Àº Á¤»óÀûÀÎ ÀÎ»ç ¸Þ½ÃÁö¸¦ º¸³ÂÀ» ¶§ smtp µ¥¸óÀº ´ÙÀ½°ú °°Àº ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»¿É´Ï´Ù . ¾Õ¿¡ ³ª¿Â ¼ýÀÚ 250 Àº ¸í·ÉÀÌ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¾úÀ½À» ÀǹÌÇÏ´Â ¸®ÅÏ °ªÀÔ´Ï´Ù .

HELO test.com
250 master-of-darkh Hello [192.168.0.3]

3) MAIL FROM ÀÔ·Â

MAIL FROM: ¸í·É¾î¸¦ ÅëÇØ smtp µ¥¸ó¿¡ ¼Û½ÅÀÎÀÇ ¸ÞÀÏ ÁÖ¼Ò¸¦ ¼³Á¤Çϰí , smtp µ¥¸óÀÌ ¸ÞÀÏ ¼Û½Å ÁÖ¼Ò¸¦ Çã¿ëÇÒ °æ¿ì ´ÙÀ½°ú °°Àº ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»¿É´Ï´Ù . ¾Õ¿¡ ³ª¿Â ¼ýÀÚ ¡° 250 ¡± Àº ¸í·ÉÀÌ Àß ¼öÇàµÇ¾úÀ½À» ÀǹÌÇÕ´Ï´Ù .

MAIL FROM: test@test.com
250 2.1.0 test@test.com....Sender OK

4) RCPT TO ÀÔ·Â

RCPT TO: ¸í·É¾î¸¦ ÅëÇØ ¼ö½ÅÀÎ ¸ÞÀÏ ÁÖ¼Ò¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù . ¸¸¾à ¸ÞÀÏ ¼ö½Å ÁÖ¼Ò°¡ Çã¿ëµÈ ÁÖ¼Ò¶ó¸é ¡° 250 ¡± À¸·Î ½ÃÀÛÇÏ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖ°í , Çã¿ëµÇÁö ¾Ê´Â ÁÖ¼Ò¶ó¸é ¡° 500 ¡± À¸·Î ½ÃÀÛÇÏ´Â ÀÀ´ä ¸Þ½ÃÁö¿Í ÇÔ²² ½ÇÆÐ ¸Þ½ÃÁö¸¦ ¹Þ°Ô µË´Ï´Ù .

-¼º°ø½Ã
RCPT TO: test2@test.com
250 2.1.5 test2@test.com

-½ÇÆÐ½Ã
RCPT TO: test3@test.com
550 5.7.1 Unable to relay for test3@test.com

5) ±×¿Ü ¸í·É¾î

DATA : Àü¼ÛÇÒ º»¹® ¹®ÀÚ¿­À» ¼­¹ö·Î º¸³½´Ù .
RSET : Áö±Ý±îÁöÀÇ ÀÛ¾÷À» Ãë¼ÒÇÑ´Ù .
QUIT : smtp µ¥¸ó°úÀÇ ¿¬°áÀ» Á¾·áÇÑ´Ù .
VRFY : ¹Þ´ÂÂÊ ÁÖ¼Ò¸¦ È®ÀÎÇϱâ À§ÇÏ¿© ¸ÞÀÏÀ» º¸³»Áö ¾Ê°í CLIENT °¡ SENDER ¿¡°Ô ¹°¾î º¸°ÔÇÏ´Â °Í
EXPN : ¸ÞÀϸµ ¸®½ºÆ®¸¦ È®ÀåÇÑ´Ù .

À§¿Í °°Àº °úÁ¤À» ÅëÇØ SMTP µ¥¸óÀÇ ÀÎÁõ ÀýÂ÷¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù .

 

(6) POP

1) POP µ¥¸óÀ¸·Î ¿¬°á ÀÛ¾÷

pop Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© tcp ¿¬°á ¼³Á¤À» ¼öÇàÇÕ´Ï´Ù . ¿¬°á ¼³Á¤ÀÌ ¿Ï·áµÇ¸é , pop µ¥¸óÀ¸·ÎºÎÅÍ µ¥¸óÀÇ ¹öÀüÀ» ¾Ë·ÁÁÖ´Â ¡°+OK Microsoft Windows POP3 Service Version 1.0 <66592344@Nowpds-main> ready." ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù . ( ÀÌ ¸Þ½ÃÁö´Â pop µ¥¸óÀÇ ¹öÀüÀ̳ª Á¾·ù¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù .) +OK ÀÀ´äÀº ¸í·É¾î°¡ Á¤»óÀ̰í , Á¢¼ÓÀÌ ¼º°øµÇ¾úÀ½À» ÀǹÌÇÕ´Ï´Ù . pop µ¥¸óÀº Á¢¼ÓµÈ ÈÄ¿¡ ·Î±×ÀÎ °úÁ¤ (Username °ú Password ÀÔ·Â ) À» °ÅÃÄ¾ß ÇÕ´Ï´Ù . ´ÙÀ½Àº ÀÌ·¯ÇÑ ÀÎÁõ °úÁ¤ÀÇ ¸Þ½ÃÁö¸¦ ºÐ¼®ÇÑ °ÍÀÔ´Ï´Ù .

[test@ACCS test]$ telnet 192.168.0.3 110
Trying 192.168.0.3...
Connected to 192.168.0.3.
Escape character is '^]'.
+OK Microsoft Windows POP3 Service Version 1.0 <66592344@Nowpds-main> ready.

2) USER ÀÔ·Â

Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÌ " USER test " °ú °°Àº Á¤»óÀûÀÎ ·Î±×ÀÎ ¸Þ½ÃÁö¸¦ º¸³ÂÀ» ¶§ pop µ¥¸óÀº ¡° +OK ¡± ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»ÁÝ´Ï´Ù .

USER test
+OK

3) PASS ÀÔ·Â

test °èÁ¤ÀÇ ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÕ´Ï´Ù . ¡° PASS aaaaaa ¡± ¿Í °°Àº ÆÐ½º¿öµå ¸Þ½ÃÁö¸¦ º¸³»¸é ¼­¹ö´Â °èÁ¤°ú ÆÐ½º¿öµå¸¦ È®ÀÎÇϴµ¥ º» ¹®¼­¿¡¼­´Â ÆÐ½º¿öµå°¡ Ʋ·È´Ù°í °¡Á¤ÇϰڽÀ´Ï´Ù . ÆÐ½º¿öµå°¡ Ʋ¸± °æ¿ì pop µ¥¸óÀº ´ÙÀ½°ú °°Àº ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»¿É´Ï´Ù . ¾Õ¿¡ ³ª¿Â ¡° -ERR ¡± Àº ÀÎÁõ°ú ·Î±×Àο¡ °ü·ÃÇØ ½ÂÀεÇÁö ¾ÊÀº ¸í·É¾î ( ÆÐ½º¿öµå Ʋ¸² ) ÀÓÀ» ÀǹÌÇÕ´Ï´Ù .

PASS aaaaaa
-ERR Logon Failure

¸¸¾à °èÁ¤¿¡ ´ëÇÑ ÆÐ½º¿öµå°¡ ¿Ã¹Ù¸¦ °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³»¿É´Ï´Ù . ¾Õ¿¡ ³ª¿Â ¡° +OK ¡± ´Â ÀÎÁõ°ú ·Î±×Àο¡ °ü·ÃÇØ Á¤»óÀûÀÎ ¸í·É¾î ( ÆÐ½º¿öµå ¸ÂÀ½ ) ÀÓÀ» ÀǹÌÇÕ´Ï´Ù .

PASS bbbbbb
+OK test has 2 visible messages (0 hidden) in 3007 octets

À§¿Í °°Àº ·Î±×ÀÎ ÀÎÁõ °úÁ¤À» ÅëÇØ pop µ¥¸óÀÇ Á¤»ó ÀÛµ¿ ¿©ºÎ¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù .

 

(7) MySQL

1) MySQL µ¥¸óÀ¸·Î ¿¬°á ÀÛ¾÷

MySQL Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© tcp ¿¬°á ¼³Á¤À» ¼öÇàÇÕ´Ï´Ù . ÀÌ ¿¬°á ¼³Á¤ÀÌ ¿Ï·áµÇ¸é MySQL µ¥¸óÀ¸·ÎºÎÅÍ ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù . ÀÌ ¸Þ½ÃÁö¿¡´Â Packet length(3byte), Packet number(1byte) ¸¦ Æ÷ÇÔÇÑ MySQL Protocol µ¥ÀÌÅÍ¿Í protocol(1byte), version, salt µîÀ» Æ÷ÇÔÇÑ Server Greeting protocol µ¥ÀÌÅͰ¡ µé¾î ÀÖ½À´Ï´Ù . ÀÌ ¸Þ½ÃÁö´Â MySQL Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÇ ÄÜ¼Ö»ó¿¡ º¸¿©ÁÖÁö´Â ¾Ê½À´Ï´Ù .

2) MySQL µ¥¸óÀ¸·Î ÀÎÁõ ÀÛ¾÷

MySQL µ¥¸óÀº ´Ù¸¥ ÇÁ·ÎÅäÄÝ µ¥¸ó°ú ´Ù¸£°Ô ±âº»ÀûÀ¸·Î Çã°¡µÇÁö ¾ÊÀº IP ·ÎºÎÅÍÀÇ Á¢¼ÓÀº °ÅºÎÇϵµ·Ï µÇ¾î ÀÖ½À´Ï´Ù . ±×·¸±â ¶§¹®¿¡ IP ¸¦ Çã°¡Çϵµ·Ï ¼³Á¤ÇÏÁö ¾ÊÀº ÀÌ»ó , MySQL µ¥¸óÀ¸·Î Á¢¼ÓÀ» ½ÃµµÇÒ °æ¿ì ´ëºÎºÐÀÇ ÀÎÁõ ÀýÂ÷´Â ½ÇÆÐÇÏ°Ô µË´Ï´Ù .

±×·¡¼­ , µ¥¸óÀÇ Á¤»óÀÛµ¿ ¿©ºÎ¸¦ ù ¸Þ½ÃÁö¸¦ °¡Áö°í ÆÇ´ÜÇϵµ·Ï ÇÏ¿´´Âµ¥ , ¸Þ½ÃÁöÀÇ 5 ¹øÂ° ¹ÙÀÌÆ® <packet length (3byte)+ Packet number(1byte) + protocol(1byte) > ¿¡¼­ protocol ÀÇ °ªÀ» º¸°í ÆÇ´ÜÇϵµ·Ï ÇÏ¿´½À´Ï´Ù . protocol °ªÀº Á¢¼Ó Çã°¡µÈ IP ÀÏ °æ¿ì ¡®10' ÀÌ µÇ°í , Á¢¼Ó Çã°¡µÇÁö ¾ÊÀº IP ÀÏ °æ¿ì ¡®255' °¡ µË´Ï´Ù . ÀÌ ¿ÜÀÇ °ªÀ» °¡Áö´Â °æ¿ì¿¡´Â MySQL µ¥¸óÀÌ Á¤»ó ÀÛµ¿ÇÏÁö ¾Ê´Â °ÍÀ¸·Î ÆÇ´ÜÇÕ´Ï´Ù .

 

 

 

 

3. ÇÁ·Î±×·¥ ±¸Çö °úÁ¤

Áö±Ý±îÁö À§¿¡¼­ ¼³¸íÇß´ø ³»¿ëÀ» Åä´ë·Î ½ÇÁ¦ ÇÁ·ÎÅäÄÝ ÀÎÁõ¿¡ ±â¹ÝÀ» µÐ Æ÷Æ® ½ºÄ³´× ÇÁ·Î±×·¥ÀÇ ÇÔ¼ö¸¦ ±¸ÇöÀ» ÇØº¸°Ú½À´Ï´Ù . ´ëÇ¥ÀûÀ¸·Î ftp, ssh, telnet, smtp, mysql ÇÁ·ÎÅäÄÝÀ» ¿¹·Î µé¾î¼­ ±¸ÇöÀ» ÇÒ °ÍÀÔ´Ï´Ù . ¸ÞÀÎ ÇÔ¼ö¿¡¼­´Â , °¢ µ¥¸ó ¼­ºñ½º¿¡ ¾Ë¸ÂÀº Æ÷Æ®¹øÈ£ <ftp(21), ssh(22), telnet(23), smtp(25), mysql(3306)> ·Î connect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¿¬°á¿äûÀ» ÇÑ ÈÄ ¿¬°áÀÌ ¼º¸³µÇ¸é ÇÁ·ÎÅäÄÝ ÀÎÁõ ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÏ¿´½À´Ï´Ù .

 

(1) FTP

1) FTP ºÎºÐ ±¸Çö ÇÔ¼ö

1 void check_ftp(int sockfd)
2 {
3 char data[1024];
4 char buf[20];
5
6 read(sockfd, data, 1024);
7 if(strstr(data, "220")){ //ftp µ¥¸óÀÇ ¹è³ÊÀÇ ÄÚµå È®ÀÎ
8 sprintf(buf, "USER test\n");
9 write(sockfd, buf, strlen(buf)); //"USER test" ·Î ·Î±×ÀÎ ¸Þ½ÃÁö º¸³¿
10 read(sockfd, data, 1024);
11 if(strstr(data, "331")){ // ·Î±×ÀÎ ¸Þ½ÃÁöÀÇ ÀÀ´ä ¸Þ½ÃÁö ÄÚµå È®ÀÎ
12 sprintf(buf, "PASS test@\n");
13 write(sockfd, buf, strlen(buf)); // ÆÐ½º¿öµå ¸í·É·Î "PASS test@" º¸³¿
14 read(sockfd, data, 1024);
15 if(strstr(data, "530")) // ÆÐ½º¿öµå ¸í·É¾îÀÇ ÀÀ´ä ¸Þ½ÃÁö ÄÚµå È®ÀÎ
16 printf("ftp\tOK\n");
17 else
18 printf("ftp\tProblem 1\n");
19 }
20 else
21 printf("ftp\tProblem 2\n");
22 }
23 else
24 printf("ftp\tProblem 3\n");
25 }

2) FTP ÇÔ¼ö ÇØ¼³

6 Çà¿¡¼­ read ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼ÒÄÏÀ¸·ÎºÎÅÍ ¸ÕÀú µ¥ÀÌÅ͸¦ ÀÐ¾î µéÀ̰í , 7 Çà¿¡¼­´Â ftp µ¥¸óÀÌ º¸³»ÁÖ´Â ¸Þ½ÃÁö¸¦ È®ÀÎÇÏ¿© ¸Þ½ÃÁö µ¥ÀÌÅÍ Áß¿¡ ¡°220( ¸í·É¾î Á¤»ó )¡± ¹®ÀÚ¿­ÀÌ ÀÖ´ÂÁö¸¦ °Ë»çÇÕ´Ï´Ù .
¸Þ½ÃÁö°¡ Á¤»óÀÏ °æ¿ì 8~19 Çà¿¡¼­ ·Î±×ÀÎ °èÁ¤°ú ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÕ´Ï´Ù . 9 Çà¿¡¼­ ·Î±×ÀÎ °èÁ¤À» ÀÔ·ÂÇÏ´Â ¡°USER test¡± ¿Í °°Àº ¸Þ½ÃÁö¸¦ Àü¼ÛÇϰí , °á°ú°¡ Á¤»óÀûÀ̸é 11 Çà¿¡¼­ ÆÐ½º¿öµå¸¦ ¿ä±¸ÇÏ´Â ¸í·É¾î ÄÚµåÀÎ ¡°331¡± ¹®ÀÚ¿­À» Æ÷ÇÔÇÑ ¸Þ½ÃÁö¸¦ È®ÀÎÇÕ´Ï´Ù . ±×¸®°í , 13 Çà¿¡¼­ ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇϱâ À§ÇØ ¡°PASS test@¡± ¿Í °°Àº ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù .
¸¶Áö¸·À¸·Î 15 Çà¿¡¼­ ÆÐ½º¿öµå ¸í·É¾î°¡ ¸Â´Â °ÍÀÎÁö , Ʋ¸° °ÍÀÎÁö¸¦ È®ÀÎÇÕ´Ï´Ù . ¸¸¾à ÆÐ½º¿öµå°¡ Ʋ·ÈÀ» °æ¿ì 530 À» µ¹·ÁÁÝ´Ï´Ù .

 

(2) SSH

1) SSH ºÎºÐ ±¸Çö ÇÔ¼ö

1 void check_ssh(int sockfd)
2 {
3 char data[1024];
4 char buf[20];
5
6 read(sockfd, data, 1024);
7 if(strstr(data, "SSH")){ // ssh µ¥¸óÀÇ ¹è³ÊÀÇ ÄÚµå È®ÀÎ
8 sprintf(buf, "test\n");
9 write(sockfd, buf, strlen(buf)); //"test" ¸Þ½ÃÁö º¸³¿
10 read(sockfd, data, 1024);
11 if(strstr(data, "Protocol mismatch")){ // ÀÀ´ä ¸Þ½ÃÁö ÄÚµå È®ÀÎ
12 printf("ssh\tOK\n");
13 }
14 else {
15 printf("ssh\tProblem1\n");
16 }
17 }
18 else{
19 printf( ¡° ssh\tProblem2\n");
20 }
21 }

2) SSH ÇÔ¼ö ÇØ¼³

¸¶Âù°¡Áö·Î , 6 Çà¿¡¼­ read ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼ÒÄÏÀ¸·ÎºÎÅÍ ¸ÕÀú µ¥ÀÌÅ͸¦ ÀÐ¾î µéÀ̰í , 7 Çà¿¡¼­´Â ÀÀ´ä ¸Þ½ÃÁö Áß¿¡ ¡°SSH¡± ¹®ÀÚ¿­ÀÌ ÀÖ´ÂÁö °Ë»çÇÕ´Ï´Ù . ¸¸¾à Á¸ÀçÇÑ´Ù¸é ssh µ¥¸óÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÏ´Â °æ¿ìÀÔ´Ï´Ù .
¸Þ½ÃÁö°¡ Á¤»óÀÏ °æ¿ì 8~19 Çà¿¡¼­ SSH µ¥¸ó¿¡ Ŭ¶óÀ̾ðÆ®ÀÇ SSH ¹öÀüÀ» ¾Ë¸®´Â ¸Þ½ÃÁö¸¦ º¸³»°í , °Å±â¿¡ µû¸¥ ÀÀ´ä ¸Þ½ÃÁö¸¦ È®ÀÎÇÕ´Ï´Ù . 9 Çà¿¡¼­´Â Ŭ¶óÀ̾ðÆ®ÀÇ SSH ¹öÀüÀ» ¾Ë¸®´Â ¡° test\n ¡± ¿Í °°Àº ¸Þ½ÃÁö¸¦ Àü¼ÛÇϰí ( À̰ÍÀº À߸øµÈ ¸Þ½ÃÁöÀÔ´Ï´Ù .), 11 Çà¿¡¼­ ÀÌ¿¡ ´ëÇÑ SSH µ¥¸óÀÇ ÀÀ´äÀ¸·Î ¡° Protocol mismatch ¡± ¸Þ½ÃÁö°¡ ¼ö½Å µÇ¾ú´ÂÁö È®ÀÎÇÕ´Ï´Ù .
SSH ÇÁ·ÎÅäÄÝÀÇ Á¤»óÀûÀÎ ÀÎÁõÀ» À§Çؼ­´Â Ŭ¶óÀÌ¾ðÆ®¿¡¼­ "SSH-2.0-Zterm\n" ¿Í °°Àº Á¤»ó ¸Þ½ÃÁö¸¦ º¸³»¾ß Çϴµ¥ , À߸øµÈ ¸Þ½ÃÁö¸¦ º¸³Â±â ¶§¹®¿¡ ¡° Protocol mismatch ¡± ¸Þ½ÃÁö¸¦ ¹Þ´Â °ÍÀÔ´Ï´Ù .

 

(3) TELNET

1) TELNET ºÎºÐ ±¸Çö ÇÔ¼ö

#define WILL 251
#define WONT 252
#define DO 253
#define DON ' T 254
#define IAC 255

1 void check_telnet(int sockfd)
2 {
3 unsigned char data = 0;
4 unsigned char data2 = 0;
5
6 read(sockfd, &data, 1);
7 read(sockfd, &data2, 1);
8
9 if((data == IAC) && (data2 == WILL || data2 == WONT || data2 == DO || data2 == DONT)){
10 printf("telnet\tOK\n");
11 }
12 else{
13 printf("telnet\tProblem\n");
14 }
15 }

2) TELNET ÇÔ¼ö ÇØ¼³

¸ÕÀú , 6 Çà°ú 7 Çà¿¡¼­ read ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼ÒÄÏ µð½ºÅ©¸³ÅͷκÎÅÍ 1 ¹ÙÀÌÆ®¾¿ µ¥ÀÌÅ͸¦ ÀÐ¾î µéÀ̵µ·Ï Çϰí ÀÖ½À´Ï´Ù . À§ÀÇ 2-3 Àå ±â¼úÀûÀÎ ³»¿ë ¼³¸í¿¡¼­ telnet Àº 4 °¡Áö ¿É¼ÇÀ» ÁÖ°í ¹Þ´Â´Ù°í ÇÏ¿´½À´Ï´Ù . Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥¿¡¼­ WILL(251), WONT(252), DO(253), DONT(254), IAC(255) ¸¦ Á¤ÀÇÇϵµ·Ï ÇÕ´Ï´Ù . 9 Çà¿¡¼­´Â ±× °úÁ¤¿¡ ¾²À̴ ù ¸í·É¾î (IAC) ¿Í ¿É¼Ç¸í·É¾î (WILL, WONT, DO, DONT) °¡ ÀÖ´ÂÁö¸¦ È®ÀÎÇÏ¿© TELNET µ¥¸óÀÇ ÀÎÁõÀ» ó¸®Çϰí ÀÖ½À´Ï´Ù .

 

(4) SMTP

1) SMTP ºÎºÐ ±¸Çö ÇÔ¼ö

1 void check_smtp(int sockfd)
2 {
3 char data[1024];
4 char buf[20];
5
6 read(sockfd, data, 1024);
7 if(strstr(data, "220")){
8 sprintf(buf, "HELO test.com\r\n");
9 write(sockfd, buf, strlen(buf)); //"HELO" ¸Þ½ÃÁö º¸³¿
10 read(sockfd, data, 1024);
11 if(strstr(data, "250")){
12 sprintf(buf, "MAIL FROM: test@test.com\r\n ");
13 write(sockfd, buf, strlen(buf));// "MAIL FROM:" ¸Þ½ÃÁö º¸³¿
14 read(sockfd, data, 1024);
15 if(strstr(data, "250")){
16 printf("smtp\tOK\n");
17 }
18 else{
19 printf("smtp\tProblem1\n");
20 }
21 }
22 else{
23 printf("smtp\tProblem2\n");
24 }
25 }
26 else{
27 printf("smtp\tProblem3\n");
28 }
29 }

2) SMTP ÇÔ¼ö ÇØ¼³

6 Çà¿¡¼­ read ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼ÒÄÏ µð½ºÅ©¸³ÅͷκÎÅÍ µ¥ÀÌÅ͸¦ ÀÐ¾î µéÀ̰í , 7 Çà¿¡¼­ Á¤»óÀûÀÎ ÀÀ´ä ¸Þ½ÃÁöÀÎÁö È®ÀÎÇϱâ À§ÇØ µ¥ÀÌÅÍ Áß¿¡ ¡°220¡± ¹®ÀÚ¿­ÀÌ ÀÖ´ÂÁö¸¦ °Ë»çÇÕ´Ï´Ù .
¸¸¾à ¸Þ½ÃÁö°¡ Á¤»óÀÏ °æ¿ì Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº 8 Çà¿¡¼­ smtp µ¥¸óÀ» ÇâÇØ ÀÎ»ç ¸Þ½ÃÁö¸¦ Àü¼ÛÇÕ´Ï´Ù . smtp µ¥¸óÀÇ ÀÀ´ä ¸Þ½ÃÁö¸¦ »ìÇDZâ À§ÇØ 10 Çà¿¡¼­ ¸Þ½ÃÁö¸¦ ¹ÞÀº ÈÄ , 11 Çà¿¡¼­ ÀÀ´ä Äڵ带 È®ÀÎÇÕ´Ï´Ù . À̶§ ¡°250¡± ÀÏ °æ¿ì Á¤»óÀûÀÎ ÀÀ´ä ¸Þ½ÃÁöÀÔ´Ï´Ù . ±× ÈÄ 12 Çà¿¡¼­ ¼Û½ÅÀÚ ¸ÞÀÏ ÁÖ¼Ò¸¦ ¼³Á¤Çϱâ À§ÇÑ ¸Þ½ÃÁö¸¦ º¸³»°í 15 Çà¿¡¼­ ´Ù½Ã smtp µ¥¸óÀÇ ÀÀ´ä ¸Þ½ÃÁö¸¦ È®ÀÎÇÕ´Ï´Ù . ÀÀ´ä Äڵ尡 ¡°250¡± ÀÏ °æ¿ì Á¤»óÀûÀ¸·Î ÀÛµ¿µÇ°í ÀÖÀ½À» ÀǹÌÇϸç ÀÌ·± ½ÄÀ¸·Î smtp µ¥¸óÀÇ ÀÎÁõ °úÁ¤À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù .

 

(5) MySQL

1) MySQL ºÎºÐ ±¸Çö ÇÔ¼ö

1 void check_mysql(int sockfd)
2 {
3 unsigned char data1[4];
4 unsigned char data2;
5
6 read(sockfd, &data1, 4);
7 read(sockfd, &data2, 1);
8
9 if((data2 == 255) || (data2 == 10)){
10 printf("MySQL\tOK\n");
11 }
12 else
13 printf("MySQL\tProblem\n");
14
15 }

2) MySQL ÇÔ¼ö ÇØ¼³

6 Çà¿¡¼­ read ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼ÒÄÏÀ¸·ÎºÎÅÍ ¸ÕÀú 4 ¹ÙÀÌÆ® (packet lengh, packet number) ÀÇ µ¥ÀÌÅ͸¦ ÀÐ¾î µéÀ̰í , ´ÙÀ½¿¡ 7 Çà¿¡¼­ 1 ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅÍ (protocol) ¸¦ ÀÐ¾î µéÀÔ´Ï´Ù . 9~13 Çà ¿¡¼­ µÎ ¹øÂ° ÀÐ¾î µéÀÎ µ¥ÀÌÅͰ¡ ¡® 255( Á¢¼Ó Çã°¡µÇÁö ¾ÊÀº IP) ' ³ª ¡® 10( Á¢¼Ó Çã¿ëµÈ IP) ' ÀÎÁö¸¦ È®ÀÎÇÏ¿© MySQL µ¥¸óÀÇ Á¤»óÀÛµ¿ ¿©ºÎ¸Þ½ÃÁö¸¦ Ãâ·ÂÇϰí ÀÖ½À´Ï´Ù .

 

 

 

 

4. ¸¶Ä¡´Â ¸»

Áö±Ý±îÁö °¢°¢ÀÇ ÇÁ·ÎÅäÄÝ ÀÎÁõÀýÂ÷¿¡ ´ëÇÑ °³³äÀ» °øºÎÇϰí , ½ÇÁ¦ ±¸Çö ¿¹±îÁö ¾Ë¾ÆºÃ½À´Ï´Ù. ½ÇÁ¦·Î Æ÷Æ® ½ºÄµÀ» ½ÃµµÇÏ´Â ÇØÄ¿¿¡°Ô È¥¶õÀ» ÁÖ±â À§ÇØ Æ÷Æ® ¹øÈ£¿Í µ¥¸óÀ» ´Ù¸£°Ô ¸ÅÇνÃŲ ¼­¹ö°¡ Á¾Á¾ ÀÖ½À´Ï´Ù. º» ¹®¼­¿¡¼­ ´Ù·é ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© Æ÷Æ® ½ºÄµ ÇÁ·Î±×·¥À» ±¸ÇöÇϸé ÇÁ·ÎÅäÄÝÀ» ºÐ¼®Çؼ­ Æ÷Æ®¿¡ ´ëÇÑ °á°ú¸¦ ³»¸®±â ¶§¹®¿¡ Á¤È®ÇÑ °á°ú¸¦ ¾ò´Â µ¥ µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. º» ¹®¼­¿¡¼­ ´Ù·çÁö ¾ÊÀº ´Ù¸¥ ÇÁ·ÎÅäÄÝÀÇ ÀÎÁõ ÀýÂ÷¿¡ ´ëÇÑ ºÐ¼®À» ÇϰíÀÚ ÇÑ´Ù¸é , ¡° ethereal ¡± °°Àº ÆÐŶ ĸó ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© ÇØ´ç µ¥¸ó¿¡ Á¢¼ÓÇÒ ¶§ ÀÌ·ç¾îÁö´Â ÇÁ·ÎÅäÄÝÀÇ ÀÎÁõ ÀýÂ÷¸¦ ¾Ë¾Æº¸½Ã¸é µË´Ï´Ù. (ȤÀº ÇØ´ç ÇÁ·ÎÅäÄÝÀÇ RFC ¹®¼­ ÂüÁ¶)
¸¶Áö¸·À¸·Î , ¿©±â¼­ ´õ Ãß°¡µÇ¾î ÇÒ ºÎºÐÀÌ ÀÖ´Ù¸é ½ºÄ³´× ÇÏ´Â Æ÷Æ®ÀÇ ¼ö°¡ ¸¹¾ÆÁö°Ô µÉ °æ¿ì ÀÛ¾÷¿¡ ³Ê¹« ¸¹Àº ½Ã°£ÀÌ °É¸± ¼ö Àֱ⿡ , ¸ÖƼ ¾²·¹µå ±â´ÉÀ» ÀÌ¿ëÇÏ¿© °¢ ½ºÄ³´× °úÁ¤À» ±¸ÇöÇÑ´Ù¸é ´õ¿í È¿À²ÀûÀÎ Æ÷Æ® ½ºÄµ ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.