ºÐ»ê ȯ°æ¿¡¼ÀÇ ¼ºñ½º°ÅºÎ °ø°Ý ºÐ¼®º¸°í¼
1. °³¿ä
ÃÖ±Ù ºÐ»êȯ°æ¿¡¼ÀÇ ¼ºñ½º °ø°Ý µµ±¸µéÀÌ ¸¹Àº ½Ã½ºÅÛ¿¡ ºÒ¹ýÀûÀ¸·Î ¼³Ä¡µÇ°í ÀÖ´Ù. ÀÌ ÇØÅ·µµ±¸µéÀº ´ë±Ô¸ð ³×Æ®¿öÅ©ÀÇ ¸¹Àº È£½ºÆ®¿¡ ¼³Ä¡µÇ¾î ¼·Î ÅëÇÕµÈ ÇüÅ·ΠÆÐŶÀ» ¹ü¶÷½ÃÄÑ ½É°¢ÇÑ ³×Æ®¿öÅ© ¼º´ÉÀúÇÏ ¹× ½Ã½ºÅÛ ¸¶ºñ¸¦ À¯¹ßÇÒ ¼ö ÀÖ´Ù.
ÀÌ ¼ºñ½º°ÅºÎ °ø°Ý µµ±¸µéÀº ÇØÅ·°ø°ÝÀ» ´çÇÑ ¼Ö¶ó¸®½º 2.x ½Ã½ºÅ۵鿡¼ ½ÇÇàÆÄÀÏ ÇüÅ·Π¹ß°ßµÇ°í Àִµ¥, ÀÌ ½Ã½ºÅÛµéÀº ´ëºÎºÐ rpc.statd, rpc.cmsd, rpc.ttdbserver, automountd µîÀÇ RPC ¹öÆÛ¿À¹öÇ÷οì Ãë¾àÁ¡À¸·Î ÀÎÇØ °ø°ÝÀ» ´çÇÑ ¼¹öµéÀ̾ú´Ù. ±¹³»¿¡¼µµ ¿ÃÇØ RPC ¹öÆÛ¿À¹öÇ÷οì Ãë¾àÁ¡À¸·Î ÀÎÇØ ¼ö¸¹Àº ¼Ö¶ó¸®½º ½Ã½ºÅÛµéÀÇ ÇØÅ·»ç°í°¡ Á¢¼öµÇ¾ú´Âµ¥ À̵éÀ» ºÐ¼®ÇÏ´Â °úÁ¤¿¡¼ º» °í¿¡¼ ¼Ò°³Çϰí ÀÖ´Â ¼ºñ½º°ÅºÎ¿ë ÇØÅ·µµ±¸µéÀÌ ¼³Ä¡µÇ¾î ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ¾ú´Ù. Áö±Ýµµ ¸¶Ä¡ ½ÃÇÑÆøÅº°ú °°ÀÌ ½Ã½ºÅÛ°ü¸®ÀÚµéÀÌ ´«Ä¡Ã¤Áö ¸øÇÏ°Ô ¼¹öµé¿¡ ¼³Ä¡µÇ¾î ¾ðÁ¦µç °ø°Ý¿¡ ÀÌ¿ëµÇ°Å³ª ½Ã½ºÅÛÀÌ ¸¶ºñµÉ ¼ö ÀÖÀ»Áö ¸ð¸¥´Ù. ƯÈ÷, ÀÌ´Â °ø°ÝÀÚÀÇ ¸í·É¿¡ ÀÇÇØ °ø°Ýµµ±¸°¡ ¼³Ä¡µÈ ´ë·®ÀÇ ¼¹öµéÀ» Á¦¾îÇÏ¿© °ø°Ý ¸ñÇ¥ ½Ã½ºÅÛ¿¡ ´ëÇÑ Ä¡¸íÀûÀÎ ¼ºñ½º°ÅºÎ °ø°ÝÀ» ÇÒ ¼ö ÀÖ¾î Y2K¸¦ ¸Â¾Æ Àü¼¼°èÀÇ ÀÎÅͳÝÀ» ±³¶õÇÏ·Á´Â ÇØÄ¿µé¿¡ ÀÇÇØ ¾Ç¿ëµÉ ¼ö ÀÖ´Ù.
ÃÖ±Ù¿¡ ¹ß°ßµÇ°í ÀÖ´Â ÀÌ·¯ÇÑ ºÐ»êȯ°æ¿¡¼ÀÇ ¼ºñ½º°ÅºÎ °ø°Ý µµ±¸´Â trinoo(ȤÀº trin00)¿Í tribe flood network(TFN)°¡ ´ëÇ¥ÀûÀÌ´Ù.
2. Trinoo
Trinoo´Â ¸¹Àº ¼Ò½º·ÎºÎÅÍ ÅëÇÕµÈ UDP flood ¼ºñ½º°ÅºÎ °ø°ÝÀ» À¯¹ßÇϴµ¥ »ç¿ëµÇ´Â µµ±¸ÀÌ´Ù. trinoo °ø°ÝÀº ¸î °³ÀÇ ¼¹öµé(ȤÀº ¸¶½ºÅ͵é)°ú ¸¹Àº ¼öÀÇ Å¬¶óÀÌ¾ðÆ®µé(µ¥¸óµé)·Î ÀÌ·ç¾îÁø´Ù. °ø°ÝÀÚ´Â trinoo ¸¶½ºÅÍ¿¡ Á¢¼ÓÇÏ¿© master¿¡°Ô Çϳª ȤÀº ¿©·¯°³ÀÇ IP ÁÖ¼Ò¸¦ ´ë»óÀ¸·Î ¼ºñ½º °ÅºÎ°ø°ÝÀ» ¼öÇàÇ϶ó°í ¸í·ÉÀ» ³»¸°´Ù. ±×·¯¸é trinoo ¸¶½ºÅʹ ƯÁ¤ÇÑ ±â°£À¸·Î Çϳª ȤÀº ¿©·¯°³ÀÇ IP ÁÖ¼Ò¸¦ °ø°ÝÇϵµ·Ï µ¥¸óµé°ú Åë½ÅÀ» ÇÑ´Ù.
1. °ø°ÝÀÚ -------> ¸¶½ºÅÍ; 27665/tcp Æ÷Æ®
2. ¸¶½ºÅÍ -------> µ¥¸óµé; 27444/udp Æ÷Æ®
3. µ¥¸óµé -------> Èñ»ý ½Ã½ºÅÛ ; ÀÓÀÇÀÇ Æ÷Æ®¸¦ ÅëÇÑ UDP flood
trinoo µ¥¸óÀÇ ½ÇÇàÆÄÀÏÀº Çϳª ȤÀº ±× ÀÌ»óÀÇ trinoo ¸¶½ºÅÍÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ´Ù. trinoo µ¥¸óÀÌ ½ÇÇàµÉ ¶§, ±× µ¥¸óÀº "*HELLO*"¶ó´Â ½ºÆ®¸µÀ» Æ÷ÇÔÇÏ´Â UDP ÆÐŶÀ» trinoo ¸¶½ºÅÍÀÇ IP ÁÖ¼Ò¿¡ º¸³¿À¸·Î½á ½ÇÇà°¡´ÉÇÔÀ» ¾Ë¸°´Ù.
µ¥¸óµé -------> ¸¶½ºÅÍ; 31335/udp Æ÷Æ®
trinoo ¸¶½ºÅÍ´Â ¸¶½ºÅÍ ½ÇÇàÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮 ¾È¿¡ "..."¶ó´Â À̸§ÀÇ ÆÄÀÏ¿¡ ¾ÏÈ£ÈµÈ ÇüÅ·Π¾Ë·ÁÁø µ¥¸óµéÀÇ ¸ñ·ÏÀ» ÀúÀåÇÑ´Ù. trinoo ¸¶½ºÅÍ´Â ½ÇÇà°¡´ÉÇÏ´Ù°í È®ÀÎµÈ ¸ðµç µ¥¸óµé¿¡°Ô ºê·Îµåij½ºÆ® ÁÖ¼Ò·Î ¿äûÀ» º¸³¾ °ÍÀ» ¸í·ÉÇÒ ¼ö ÀÖ´Ù. ºê·Îµåij½ºÆ®¸¦ ¼ö½ÅÇÑ µ¥¸óµéÀº "PONG"À̶ó´Â ½ºÆ®¸µÀ» Æ÷ÇÔÇÏ´Â UDP ÆÐŶÀ» ¸¶½ºÆ®¿¡°Ô º¸³»¾î ÀÀ´äÇÑ´Ù.
1. °ø°ÝÀÚ -------> ¸¶½ºÅÍ; 27665/tcp Æ÷Æ®
2. ¸¶½ºÅÍ -------> µ¥¸óµé; 27444/udp Æ÷Æ®
3. µ¥¸óµé -------> ¸¶½ºÅÍ; 31335/udp Æ÷Æ®
°ø°ÝÀÚ°¡ ¸¶½ºÅÍ¿¡ °ø°Ý ¸í·ÉÀ» ³»¸±¶§ 27665/tcp Æ÷Æ®¸¦ »ç¿ëÇϰí À̶§ ÆÐ½º¿öµå¸¦ ¿ä±¸ÇÑ´Ù. ÀÌ ÆÐ½º¿öµå´Â ¸¶½ºÅÍ ½ÇÇàÆÄÀÏ¿¡ ¾ÏÈ£ÈµÈ ÇüÅ·ΠÀúÀåµÇ¾î ÀÖ´Ù.
attacker$ telnet 10.0.0.1 27665
Trying 10.0.0.1
Connected to 10.0.0.1
Escape character is '^]'.
kwijibo <== À߸øµÈ ÆÐ½º¿öµå
Connection closed by foreign host.
. . .
attacker$ telnet 10.0.0.1 27665
Trying 10.0.0.1
Connected to 10.0.0.1
Escape character is '^]'.
betaalmostdone <== ¿Ã¹Ù¸¥ ÆÐ½º¿öµå
trinoo v1.07d2+f3+c..[rpm8d/cb4Sx/]
trinoo> <== ¸í·É¾î Prompt
trinoo ¸¶½ºÅͰ¡ µ¥¸óµé¿¡°Ô º¸³»´Â ¸í·É¾îµé Áß¿¡¼µµ ÆÐ½º¿öµå°¡ ÇÊ¿äÇÑ °ÍµéÀÌ Àִµ¥ ÀÌ ÆÐ½º¿öµå´Â Æò¹® ÇüÅ·ΠÀü¼ÛµÈ´Ù. µðÆúÆ® ÆÐ½º¿öµå´Â ´ÙÀ½°ú °°´Ù.
"l44adsl" trinoo daemon password
"gOrave" trinoo master server startup ("?? " prompt)
"betaalmostdone" trinoo master remote interface password
"killme" trinoo master password to control "mdie" command
trinoo¿¡ ÀÇÇØ »ý¼ºµÈ UDP flood °ø°ÝÀÇ ¼Ò½º IP ÁÖ¼Ò´Â À§ÀåµÇÁö ¾Ê¾ÒÁö¸¸ ¾ÕÀ¸·Î À§ÀåµÈ IP ÁÖ¼Ò¸¦ »ç¿ëÇÏ´Â µµ±¸°¡ ³ª¿Ã ¼öµµ ÀÖ´Ù.
trinoo µ¥¸óµéÀº ÀÚ½ÅÀ» ¼û±â±â À§ÇØ ´Ù¾çÇÑ À̸§À¸·Î ¼³Ä¡µÇ°í Àִµ¥ Áö±Ý±îÁö ¾Ë·ÁÁø À̸§Àº ´ÙÀ½°ú °°´Ù.
ns
http
rpc.trinoo
rpc.listen
trinix
rpc.irix
irix
µ¥¸óµé°ú ¸¶½ºÅÍÀÇ ½ÇÇàÆÄÀÏÀ» strings¶ó´Â À¯´Ð½º ¸í·ÉÀ» ½ÇÇà½ÃÄÑ È®ÀÎÇÏ¸é ´ÙÀ½°ú °°Àº °á°úµéÀ» º¼ ¼ö ÀÖ´Ù.
# strings - ns /* µ¥¸ó */
. . .
socket
bind
recvfrom
%s %s %s
aIf3YWfOhw.V. <=== crypt() ÇÔ¼ö·Î ¾ÏÈ£ÈµÈ ÆÐ½º¿öµå "l44adsl"
PONG
*HELLO*
. . .
# strings - master /* ¸¶½ºÅÍ */
. . .
---v
v1.07d2+f3+c
trinoo %s
l44adsl <=== µ¥¸ó ÆÐ½º¿öµå(Æò¹®)
sock
0nm1VNMXqRMyM <=== crypt() ÇÔ¼ö·Î ¾ÏÈ£ÈµÈ ÆÐ½º¿öµå "gOrave"
10:09:24
Sep 26 1999
trinoo %s [%s:%s]
bind
read
*HELLO*
ZsoTN.cq4X31 <=== ¾ÏÈ£ÈŰ
bored
NEW Bcast - %s
PONG
PONG %d Received from %s
Warning: Connection from %s
beUBZbLtK7kkY <=== crypt() ÇÔ¼ö·Î ¾ÏÈ£ÈµÈ ÆÐ½º¿öµå "betaalmostdone"
trinoo %s..[rpm8d/cb4Sx/]
. . .
DoS: usage: dos <ip>
DoS: Packeting %s.
aaa %s %s
mdie
ErDVt6azHrePE <=== crypt() ÇÔ¼ö·Î ¾ÏÈ£ÈµÈ "mdie" ¸í·É¾î¿ë ÆÐ½º¿öµå
mdie: Disabling Bcasts.
d1e %s
mdie: password?
. . .
º¸Åë trinoo µ¥¸óÀº ÁÖ±âÀûÀ¸·Î ½ÇÇà½Ã۱â À§Çؼ crontab¿¡ µî·Ï½ÃÄÑ ³õ´Â °æ¿ì°¡ ¸¹´Ù. ´ÙÀ½Àº ¸ÅºÐ¸¶´Ù µ¥¸óÀ» ½ÇÇà½Ã۵µ·ÏÇÑ crontabÀÇ ¿¹ÀÌ´Ù.
* * * * * /usr/sbin/rpc.listen
3. Tribe Flood Network
TFNÀº trinoo¿Í °ÅÀÇ À¯»çÇÑ ºÐ»ê µµ±¸·Î ¸¹Àº ¼Ò½º¿¡¼ Çϳª ȤÀº ¿©·¯°³ÀÇ ¸ñÇ¥ ½Ã½ºÅÛ¿¡ ´ëÇØ ¼ºñ½º°ÅºÎ °ø°ÝÀ» ¼öÇàÇÑ´Ù. TFNÀº UDP flood °ø°ÝÀ» ÇÒ ¼ö ÀÖÀ»»Ó¸¸ ¾Æ´Ï¶ó TCP SYN flood °ø°Ý, ICMP echo ¿äû °ø°Ý, ICMP ºê·Îµåij½ºÆ® °ø°Ý(smurf °ø°Ý)À» ÇÒ ¼öµµ ÀÖ´Ù. TFN ¼ºñ½º °ÅºÎ°ø°ÝÀº °ø°ÝÀÚ°¡ Ŭ¶óÀ̾ðÆ®(ȤÀº ¸¶½ºÅÍ) ÇÁ·Î±×·¥ÀÌ °ø°Ý¸í·ÉÀ» ÀÏ·ÃÀÇ TFN ¼¹öµé(ȤÀº µ¥¸óµé)¿¡°Ô º¸³¿À¸·Î½á ÀÌ·ç¾îÁø´Ù. ±×·¯¸é µ¥¸óÀº ƯÁ¤ ÇüÅÂÀÇ ¼ºñ½º°ÅºÎ °ø°ÝÀ» Çϳª ȤÀº ¿©·¯°³ÀÇ ¸ñÇ¥ IP ÁÖ¼Ò¸¦ ´ë»óÀ¸·Î ¼öÇàÇÑ´Ù. ¼Ò½º IP ÁÖ¼Ò¿Í ¼Ò½º Æ÷Æ®´Â ÀÓÀÇ·Î ÁÖ¾îÁö°í, ÆÐŶÀÇ »çÀÌÁîµµ ¹Ù²Ü¼ö ÀÖ´Ù.
TFN ¸¶½ºÅÍ´Â ¸í·É¾î¶óÀο¡¼ TFN µ¥¸ó¿¡ ¸í·ÉÀ» º¸³½´Ù. TFN ¸¶½ºÅÍ´Â ID Çʵå¿Í ÆÐŶÀÇ À§Ä¡ Àμö¸¦ °¡Áø 16ºñÆ® ¹ÙÀ̳ʸ® °ªÀÇ ICMP echo reply ÆÐŶÀ» »ç¿ëÇÏ¿© µ¥¸ó°ú Åë½ÅÀ» ÇÑ´Ù.
TFN ¸¶½ºÅÍ´Â °ø°ÝÀÚ°¡ Á¦°øÇÑ µ¥¸óµéÀÇ IP ÁÖ¼Ò¸ñ·ÏÀÌ ÇÊ¿äÇÏ´Ù. ÃÖ±Ù¿¡ º¸°íµÈ ÀϺΠ¹öÀüÀÇ TFN ¸¶½ºÅÍ´Â ÀÌ IP ÁÖ¼ÒµéÀ» ¼û±â±â À§ÇØ ¾ÏÈ£¸¦ »ç¿ëÇϱ⵵ ÇÑ´Ù. ¶ÇÇÑ ¾î¶² TFNÀº rcp¿Í °°Àº ¿ø°ÝÆÄÀϺ¹»ç ±â´ÉÀ» °¡Áö°í ÀÖ¾î ÀÚµ¿À¸·Î »õ·Î¿î TFN µ¥¸óÀ» »ý¼ºÇϰųª ±âÁ¸ÀÇ TFNÀ» ¾÷µ¥ÀÌÆ®Çϴµ¥ »ç¿ëÇϰí ÀÖ´Ù.
td¶ó´Â ÆÄÀÏÀ̸§À¸·Î ½Ã½ºÅÛ¿¡ ¼³Ä¡µÇ±âµµ Çϴµ¥ strings¶ó´Â ¸í·ÉÀ» ÅëÇØ TFN µ¥¸óÀÇ ½ÇÇàÆÄÀÏÀ» È®ÀÎÇÏ¸é ´ÙÀ½°ú °°Àº ³»¿ëÀ» º¼ ¼ö ÀÖ´Ù.
# strings td
%d.%d.%d.%d
ICMP
Error sending syn packet.
tc: unknown host
3.3.3.3
mservers
randomsucks
skillz
rm -rf %s
ttymon
rcp %s@%s:sol.bin %s
nohup ./%s
X.X.X.X
X.X.X.X
lpsched
sicken
in.telne
4. ±¹³» »ç·Ê
trinoo´Â ±¹³»¿¡¼ 8¿ù 10ÀÏ Ã³À½À¸·Î ¹ß°ßµÇ¾úÀ¸¸ç ÀÌÈÄÀÇ Ä§ÇØ»ç°í 󸮰úÁ¤¿¡¼ ´ë±Ô¸ðÀûÀ¸·Î ¹ß°ßµÇ°í ÀÖ´Ù. ±¹³» ¸ð ´ëÇÐÀÇ °æ¿ì 50¿© È£½ºÆ®¿¡ trinoo ¸¶½ºÅÍ ¹× µ¥¸óÀÌ ¼³Ä¡µÈ »ç°ÇÀÌ ¹ß°ßµÇ±âµµ ÇÏ¿´´Ù.
°¡. ±¹³» A ±â°ü »ç·Ê(1999. 8)
¡Û A±â°üÀÇ ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ºñÀΰ¡µÈ »çÀÌÆ®¿¡¼ ºÒ¹ýÀûÀÎ Á¢¼ÓÀ» ¹ß°ßÇÏ°í ½Å°í
¡Û ħÀÔÀÚ´Â ¼Ö¶ó¸®½º rpc °ü·Ã Ãë¾àÁ¡À» ÀÌ¿ëÇÏ¿© °ü¸®ÀÚ ±ÇÇÑ È¹µæ
¡Û ½Ã½ºÅÛ Á¶»ç°á°ú cron Å×À̺íÀ» ÀÌ¿ëÇÏ¿© "tsolnmb"¶ó´Â trinoo µ¥¸ó ½ÇÇà
#strings tsolnmb
161.53.xx.yy
socket
bind
recvfrom
%s %s %s
aIf3YWfOhw.V.
PONG
*HELLO*
¡Û À§ÀÇ 161.53.xx.yy »çÀÌÆ®¿¡ Á¶»ç¿äûÀ» º¸³» °á°ú¸¦ º¸°í¹ÞÀº °á°ú "tserver1900" À̶ó´Â trinoo ¸¶½ºÅÍ ¹ß°ß
³ª. ±¹³» B ´ëÇÐ »ç·Ê(1999. 9)
¡Û ¿µ±¹À¸·ÎºÎÅÍ ±¹³» ¸ð ´ëÇÐÀÇ 20¿©°³ ½Ã½ºÅÛ ÇØÅ·»ç°í Å뺸
¡Û ¼Ö¶ó¸®½º rpc °ü·Ã Ãë¾àÁ¡À» ÀÌ¿ëÇÏ¿© ½Ã½ºÅÛ Ä§ÀÔ
¡Û trinoo°¡ »ç¿ëÇÏ´Â Æ÷Æ®¿Í rpc °ø°Ý¿¡ »ç¿ëµÇ´Â Æ÷Æ®¿¡ ´ëÇÏ¿© ¸ð ´ëÇÐ ³×Æ®¿öÅ©¸¦ ½ºÄµÇÏ¿© Àüü 60¿© Ä§ÇØ È£½ºÆ® ¹ß°ß
¡Û ½Ã½ºÅÛ Ä§ÀÔÈÄ trinoo master/deamonÀÎ rpc.listen/httpd¶ó´Â ÇÁ·Î±×·¥ ¼³Ä¡ ÈÄ ½ÇÇà
¡Û ÇØÅ·´çÇÑ È£½ºÆ®¸¦ ÀÌ¿ëÇÏ¿© ±¹¿Ü ƯÁ¤ È£½ºÆ®·Î UDP flooding °ø°Ý
¡Û ³×Æ®¿öÅ© °úºÎÇÏ ¹ß»ý
¡Û ³×Æ®¿öÅ© °úºÎÇÏ Çö»ó Á¦°Å : ¶ó¿ìÅÍ¿¡¼ UDP 31335, 27444 Æ÷Æ® Â÷´Ü
5. trinoo ŽÁö ¹× Á¦°Å ¹æ¹ý
°¡. ³×Æ®¿öÅ© °¨½Ã
trinoo °ø°Ý¿¡ ÀÌ¿ëµÇ°Å³ª Á÷Á¢ °ø°ÝÀ» ¹Þ°Ô µÇ¸é ³×Æ®¿öÅ© Æ®·¡ÇÈ ¾çÀÌ ±Þ¼ÓÇÏ°Ô Áõ°¡ÇÑ´Ù. ³×Æ®¿öÅ© Æ®·¡ÇÈ ¼º´ÉÀúÇϰ¡ ±Þ°ÝÇÏ°Ô ¹ß»ýÇÒ °æ¿ì snoopÀ̳ª tcpdump ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© UDP ÆÐŶ, ICMP ÆÐŶ, ¶Ç´Â TCP ÆÐŶ µîÀÌ Áõ°¡Çϴ°¡¸¦ °Ë»çÇÑ´Ù.
tcpdump¸¦ ÀÌ¿ëÇÏ¿© trinoo °ø°ÝÀ» ŽÁöÇÑ ¿¹;
15:40:08.576427 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.5758: udp 4 (DF)
15:40:08.579752 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.10113: udp 4 (DF)
15:40:08.583056 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.17515: udp 4 (DF)
15:40:08.600948 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.31051: udp 4 (DF)
15:40:08.604943 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.5627: udp 4 (DF)
15:40:08.610886 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.23010: udp 4 (DF)
15:40:08.614202 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.7419: udp 4 (DF)
15:40:08.615507 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.16212: udp 4 (DF)
15:40:08.616854 xxx.xxx.xxx.xxx.32885 > yyy.yyy.yyy.yyy.4086: udp 4 (DF)
³ª. Æ÷Æ® ½ºÄµÀ» ÅëÇÑ trinoo ŽÁö
trinoo°¡ µðÆúÆ®·Î »ç¿ëÇÏ´Â Æ÷Æ®¸¦ °Ë»öÇÏ¿© trinoo master ¶Ç´Â deamonÀÌ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö °Ë»çÇÒ ¼ö ÀÖ´Ù. "nmap"À̶ó´Â µµ±¸¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ °¢ °¢ÀÇ Æ÷Æ®¿¡ ´ëÇÏ¿© ÀÚ½ÅÀÇ ³×Æ®¿öÅ©¸¦ ½ºÄµÇϵµ·Ï ÇÑ´Ù.
# nmap -PI -sT -p 27665 -m logfile your.subnet
subnetÀº C classÀÎ °æ¿ì xxx.xxx.xxx.xxx/24, B classÀÎ °æ¿ì xxx.xxx.xxx.xxx/16°ú °°ÀÌ Ç¥ÇöÇÏ¸é µÈ´Ù. ¶Ç ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â xxx.xxx.xxx.1-254 ¿Í °°ÀÌ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. °¢ °¢ÀÇ Æ÷Æ®¸¦ ½ºÄµÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
# nmap -PI -sT -p 27665 -m 2766.log xxx.xxx.xxx.1-254
# nmap -PI -sU -p 31335 -m 31335.log xxx.xxx.xxx.1-254
# nmap -PI -sU -p 27444 -m 27444.log xxx.xxx.xxx.1-254
´ÙÀ½Àº ½ÇÁ¦ ÇØÅ·´çÇÑ ±â°üÀÇ ³×Æ®¿öÅ©¸¦ 31335 Æ÷Æ®¿¡ ´ëÇÏ¿© ½ºÄµÇÑ °á°úÀÌ´Ù.
Host: xxx.xxx.xxx.21 () Status: Up
Host: xxx.xxx.xxx.22 () Ports: 31335/open/udp/////
Host: xxx.xxx.xxx.28 () Ports: 31335/open/udp/////
Host: xxx.xxx.xxx.29 () Ports: 31335/open/udp/////
...
Host: xxx.xxx.xxx.77 () Ports: 31335/open/udp/////
Host: xxx.xxx.yyy.5 () Ports: 31335/open/udp/////
Host: xxx.xxx.yyy.30 () Ports: 31335/open/udp/////
Host: xxx.xxx.zzz.2 () Status: Up
Host: xxx.xxx.zzz.3 () Status: Up
...
¶ÇÇÑ trinoo °ø°ÝÀº ÀϹÝÀûÀ¸·Î rpc °ü·Ã °ø°ÝÀ» ÀÌ¿ëÇÏ¿© ¼³Ä¡Çϰųª °ø°Ý´çÇÑ ±â°üÀ» ã¾Æ ¼³Ä¡ÇÏ´Â °æ¿ì°¡ ¸¹À¸¹Ç·Î ´ÙÀ½°ú °°ÀÌ rpc °ü·Ã °ø°ÝÀ» ´çÇßÀ» °æ¿ì ³ªÅ¸³ª´Â Áõ»óÀ» ½ºÄµÇÏ¿© °Ë»çÇØ º¸¾Æ¾ß ÇÑ´Ù.
# nmap -PI -sT -p 1524 -m 1524.log xxx.xxx.xxx.1-254
# nmap -PI -sT -p 600 -m 600.log xxx.xxx.xxx.1-254
¡Ø ±â¼ú¹®¼ "CERTCC-KR-TR-99-008 RPC °ü·Ã º¸¾È Ãë¾àÁ¡ ¹× ´ëÃ¥" ÂüÁ¶
http://www.certcc.or.kr/paper/tr1999/1999008/tr1999008.html
nmap ÇÁ·Î±×·¥Àº ´ÙÀ½ »çÀÌÆ®¿¡¼ ´Ù¿î·Îµå ÇÒ ¼ö ÀÖ´Ù.
http://www.insecure.org/nmap/
´Ù. trinoo Á¦°Å
³×Æ®¿öÅ© ½ºÄµÀ» ÅëÇÏ¿© trinoo¸¦ ŽÁöÇÑ ÈÄ ½Ã½ºÅÛ¿¡¼ ÀÌ ÇÁ·Î±×·¥À» ¹ß°ßÇϰí Á¦°ÅÇÏ¿©¾ß ÇÑ´Ù. ´ëºÎºÐÀÇ °æ¿ì µðÆúÆ® À̸§À» »ç¿ëÇÏÁö¸¸ ·çƮŶÀÌ ¼³Ä¡µÇ¾î Àְųª ÇÁ·Î±×·¥ À̸§À» ¹Ù²Ü °æ¿ì ã¾Æ ³»±â°¡ Èûµé°Ô µÈ´Ù. ÇÏÁö¸¸ ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© trinoo¸¦ ã¾Æ³¾ ¼ö ÀÖ´Ù.
a. ¸ÕÀú ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â trinoo ÇÁ·Î±×·¥ÀÇ À̸§À» ã¾Æº»´Ù. ÀÌ·¯ÇÑ ÇÁ·Î±×·¥Àº ÀϹÝÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê´Â µð·ºÅ丮¿¡ ÀúÀåµÈ´Ù.
master : tserver1900
deamon : tsolnmb, ns, httpd, rpc.trinoo, rpc.listen, trinix, rpc.irix, irix
b. crontab¿¡¼ trinooÀÇ À§Ä¡¸¦ ã´Â´Ù.
# more /var/spool/cron/crontabs/root
* * * * * /dev/isdn/.subsys/tsolnmb > /dev/null 2>&1
c. netstat ¸í·É°ú ps ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ãÀ» ¼ö ÀÖ´Ù.
# netstat -a
UDP
Local AddressState
---------------- ------
...
*:31335 Idle
¶Ç´Â
*:27444 Idle
...
¶Ç´Â
TCP
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
----------- -------------------- ----- ------ ----- ------ -------
...
*:27665 *:* ... Listen
d. lsof ÇÁ·Î±×·¥ »ç¿ë
netstat ¸í·ÉÀ̳ª ps ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© trinooÀÇ Á¸À縦 ãÀº °æ¿ì ´ÙÀ½°ú °°ÀÌ ÇÁ·Î¼¼½º¸¦ ÃßÀûÇÒ ¼ö ÀÖ´Â lsof ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© trinooÀÇ À§Ä¡¸¦ ã¾Æ³» Á¦°ÅÇÒ ¼ö ÀÖ´Ù.
¡Û master°¡ ¼³Ä¡µÈ °æ¿ì :
# lsof | egrep ":31335|:27665"
master 1292 root 3u inet 2460 UDP *:31335
master 1292 root 4u inet 2461 TCP *:27665 (LISTEN) <==PID(1292) È®ÀÎ
# lsof -p 1292
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
master 1292 root cwd DIR 3,1 1024 14356 /tmp/...
master 1292 root rtd DIR 3,1 1024 2 /
master 1292 root txt REG 3,1 30492 14357 /tmp/.../master <== ¸¶½ºÅÍÆÄÀÏ À§Ä¡ È®ÀÎ
...
master 1292 root 3u inet 2534 UDP *:31335
master 1292 root 4u inet 2535 TCP *:27665 (LISTEN)
¡Û deamonÀÌ ¼³Ä¡µÈ °æ¿ì :
# lsof | egrep ":27444"
ns 1316 root 3u inet 2502 UDP *:27444 <==PID(1316) È®ÀÎ
# lsof -p 1316
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
ns 1316 root cwd DIR 3,1 1024 153694 /tmp/...
ns 1316 root rtd DIR 3,1 1024 2 /
ns 1316 root txt REG 3,1 6156 153711 /tmp/.../ns <==µ¥¸óÆÄÀÏ À§Ä¡È®ÀÎ
...
ns 1316 root 3u inet 2502 UDP *:27444
¡Û lsof¸¦ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®
http://vic.cc.purdue.edu/pub/tools/unix/lsof
6. Âü°íÀÚ·á
http://www.cert.org/incident_notes/IN-99-07.html
http://www.cert.org/reports/dsit_workshop.pdf
BUGTRAQ@SECURITYFOCUS.COM subject:Analysis of trin00
ISS Security Alert subject:Denial of Service Attack using the trin00 and Tribe Flood
http://www.certcc.or.kr/paper/tr1999/1999008/tr1999008.html
http://www.cert.org/advisories/CA-97.26.statd.html
http://www.cert.org/advisories/CA-98.12.mountd.html
http://www.cert.org/advisories/CA-99-05-statd-automountd.html
http://www.cert.org/advisories/CA-99-08-cmsd.html
http://www.cert.org/advisories/CA-99-12-amd.html