Bot Generator Analysis July 27, 2007 - i -
Warning 본문서는침해대응목적으로제작되었습니다. 본문서를예방의목적으로만사용해주기를바라며문서에기술되어있는프로그램을이용한불법적인행위에대해서저자는책임을지지않습니다. 본문서를사용하는것은이러한내용에동의함을의미합니다. Copyright 본문서의모든권리는저자에게귀속됩니다. 본문서의배포는비상업적인목적인경우에한하여다음의제약조건하에허락됩니다. 1. 본문서의상업적인이용을금합니다. 2. 본문서의배포시원형을유지해야하며저자의동의없는수정은허락되지않습니다. 3. 본문서를배포하는경우반드시출처를명시하여야합니다. 4. 기타의사항은일반적인저작권법을따릅니다. Document History Version Release Date Amendent Contents Ver 1.0 2007-07-27 Release Special Thanks To 이프로그램을최초포스팅하여위험도를알려주신 Coderant 님과, 해당프로그램의분석을위해지 원해주신 ZIZI 님에게감사드립니다. - ii -
목 차 I. 개요... 1 1. 사건의발단... 1 II. PINCH분석... 3 1. 사전작업... 3 2. 분석실시... 5 III. 결론...12 - iii -
그 림목차 그림 1 - Coderant님블로그에포스팅된내용... 1 그림 2 - 간단한기능만을구현하는 Pinch3... 2 그림 3 - Pinch의주요구성내용... 3 그림 4 해당프로그램의모습... 4 그림 5 - IRC-BOT기능설정중... 5 그림 6 - 오픈된 FTP Port... 6 그림 7 - FTP클라이언트프로그램으로접속한모습... 6 그림 8 - 접속한 BOT의모습... 7 그림 9 - 명령어를수행하는모습... 8 그림 10 - Remote Connection을실시한모습... 9 그림 11 Victim System에서 SMTP접속로그내용... 9 그림 12 - 넘어온메일...10 그림 13 - ielog.txt의내용...10 그림 14 - ICQ 계정정보획득... 11 그림 15 - VirusTotal 검사결과...13 - iv -
I. 개요 1. 사건의발단 7/26 일경,Coderant 님의블로그에일에다음과같은내용이포스팅되었다. 그림 1 - Coderant 님블로그에포스팅된내용 내용만보면저번 Download_Trojan_Generator( 예명 ) 이후충격적인일이아닐수없었다. 단순 메뉴명만을봐도키로거기능, 백도어기능, 패스워드추출기능, 웜기능, IRC-BOT 기능을 확인할수있다. IRC-BOT 이란? IRC-BOT 을알기전에 IRC(Internet Relay Chat) 을알아야한다. IRC 란일반적인 PC 통신과비슷하지만, PC 통신은개인적인성격이강한반면에 IRC 는 IRC 클라이언트프로그램이나 IRC 클라이언트를제공하는서버에접속하기만하면전세계의어떤사람과도대화가가능하다. ( 해당채널명이없을경우 ) 각각이채널을생성할수있으며, 해당채널이있을경우엔해당채널에 Join 하여같은채널에있는사용자와대화, 파일전송등의일을할수있다. IRC-BOT 의원래의미는해당채널을관리하기위해존재하였으며, IRC 는기본적으로해당 - 1 -
채널에들어오는유저들에게 guest 의권한을준다. 그리고권한을수작업으로부여해야한다. 만약사용자가잊어버리고부여를안하게되면관리자가없는채널이되어버릴수도있는것이다.( 실제로이런일이많이벌어진다.) 이런현상을막아주기위해 Bot 은몇몇채널의관리자가들어왔을경우해당관리자에게권한을할당해주는등의일을수행하였다. 하지만여기서나타내는 IRC-BOT 은조금다른의미로, 악의적인사용자가상대방의 PC 에서실행된 IRC-BOT 이공격자가원하는채널에접속, 해당 BOT 에게명령을내려, 사용자마음대로조종할수있게되는것을뜻한다. 해당툴을찾기위해 Googling 을실시, 해당프로그램의신버전을구했지만, Public 버전으로거의테스트용기능만이사용가능하였다. 그림 2 - 간단한기능만을구현하는 Pinch3 이 Pinch3 는간단하게감염된시스템의드라이브정보와주요폴더의위치정도만을 bin 파일로제공한다.(Bin 파일은 Parser 라는프로그램으로내용을확인할수있다.) 이툴은 UnderMarket 에서판매하는툴이다보니모든기능을가진툴을구하기가상당히힘들었다. 그러던중 ZIZI 님에게모든기능을구현한 Pinch 버전을받을수있었다. - 2 -
II. Pinch 분석 1. 사전작업 우선해당프로그램의구성을확인할필요가있다. 그림 3 - Pinch 의주요구성내용 각파일의내용은아래와같다. Builder.exe : 실제적으로악성코드를생성시키는역할을하는프로그램이다. Parser2.exe : Builder 로생성한악성코드가 Victim System 에서수행되면서수집된정보를 *.bin 파일로제공하며이파일의내용을볼수있게해주는프로그램이다. Gatenorm.php : Builder 생성시해당파일의경로 ( 인터넷상의경로 ) 를지정해주면공격자시스템으로메일로보내지않고 Upload 방식으로파일을전송시키는등의일을수행하게해주는파일이다. 물론메일링기능도제공한다. 각각의폴더에는패커나, 각세팅에대한설정체크파일 (asm) 등이들어있다. 이제파일내부를들어다보도록하자. - 3 -
그림 4 해당프로그램의모습 위화면에서보면알수있겠지만, 여러가지기능을가지고있으며각내용은아래와같다. PWD 해당시스템의프로그램패스워드획득및전송 Run 실행프로그램에등록기능 Spy 키로거, IE form( 아이디패스워드자동저장기능 ) 획득, NET 실행시해당파일다운로드기능, PHP 파일을이용한파일다운로드기능등 BD Backdoor 설정 Etc 아이콘이나버전설정등. Kill 실행시 Process Kill 기능을실시한다. IE 피해자피시의 Internet Explorer 설정을변경한다. 신뢰하는사이트와즐겨찾기추가, Host 파일추가, 시작페이지, 검색페이지설정등의기능을설정한다. Worm 웜의기능수행 IRC-Bot 봇기능을수행한다. - 4 -
위와같이그동안많이알려졌던악성코드의기능을입맛대로 (?) 선택하여설치할수있는것은이프로그램이얼마나위험한지를알려준다. 당연히저위에거론한모든기능을수행하게설정할수도있다. 간단히 check/input 을수행한후 COMPILE 버튼한번으로 exe 파일하나에모든기능이들어가게된다. 또한 Encrypt 와 Packing 기능을통해악성코드의리버싱을힘들게하는기능도포함되어있다. 위의기능을통해빼낸정보는 *.bin 이라는파일명으로 smtp 방식의메일전송이나, HTTP 로 remote Script 를이용한전송으로설정할수있다. 2. 분석실시위의내용을토대로간단한악성코드를생성하여확인해보도록하겠다. 이악성코드에는다음과같은기능을심어놓았다. 악성코드에넣은기능 IRC-BOT기능 ( 채널 : #n0fatetest, 봇패스워드 : 1234) 그림 5 - IRC-BOT 기능설정중 FTP BackDoor기능 (12321 포트 ) IE/Messanger KeyLogger SMTP전송기능피해시스템은 Windows 2000 Server Non-ServicePack(ENG) Version 이다. - 5 -
VMWARE 에서해당악성코드를실행하고상태를확인하였다. 우선포트정보를확인하였다. 그림 6 - 오픈된 FTP Port 위와같이 FTP 포트를열려있는모습을확인할수있다. FTP 접속프로그램을이용하여 확인해보도록하였다. 그림 7 - FTP 클라이언트프로그램으로접속한모습 - 6 -
또한실행후봇이해당 IRC 채널에접속하는모습을볼수있었다. 그림 8 - 접속한 BOT 의모습 해당 BOT 의주요명령어는아래와같다..login <pass> 최초로그인후봇인증 ( 설정했던 password 입력 ).die 봇을죽인다.( 봇을제외한임무를수행한다.).download <url> 해당 url에서프로그램 ( 추가공격코드등 ) 을다운로드한다..httpd <file> <port> 웹서버에지정한 port에해당파일을올린다. 접속시자동으로다운로드창이나타난다..proxy <id> <port> 해당 id 만을허용하는프록시활성포트설정.raw <text> 텍스트내용을출력한다..remove Bot을제거한다.( 자기자신을삭제한다.).restart 자기자신을재시작한다..run <command line> 해당 console명령어를실행시킨다..status 현재피해자시스템의정보를보여준다..update <url> 해당주소에서 Bot을업데이트한다. 동일한파일명일시가능..visit <url> 해당사이트에방문한다..sp <url> IE의시작페이지를해당 url로설정한다..msg <msg> msg에입력한내용을메시지박스로 Victim에보여준다. - 7 -
.link <url> 해당 url을즐겨찾기에추가한다..scan <start address> <port> <delay> 해당주소의오픈된포트를스캔한다..killthread <thread> 해당쓰레드를종료시킨다..shell <port> 해당 port번호에 Remote Connection을대기한다. 그림 9 - 명령어를수행하는모습 위에나타난것과같은많은명령어가존재하지만, 여기서는간단하게 Bot 에게명령을내려, 리모트쉘 (.shell 명령어 ) 을이용한접속을확인해보았다. - 8 -
그림 10 - Remote Connection 을실시한모습 위의화면에도나타난것처럼매끄러운접속이가능하였다. 또한공격자의메일서버로지속적인접속을실시하여메일을보내는모습을볼수있다. 그림 11 Victim System 에서 SMTP 접속로그내용 위와같이지속적인접근을하는이유는실행한후동일폴더에 ielog.txt 파일을생성하여인터넷익스플로러의키로깅내역을기록한다. 또한처음에설정해준각메신저 /FTP 등의키로거한내용도 pass.bin 으로저장해둔다. 즉, 이파일들을지속적으로메일로보내주기위한것이다.. - 9 -
그림 12 - 넘어온메일 ielog.txt 의내용을확인해보자. 그림 13 - ielog.txt 의내용 위의그림과같이인터넷브라우저의키입력내용및쿠키을후킹하여획득하는모습이다. - 10 -
또한 pass.bin 을이용하여지정해준메신저 /FTP 서버의아이디와비밀번호를확인할수도 있다. 아래는외국에서 ICQ 정보를획득한모습을가져온것이다. 그림 14 - ICQ 계정정보획득 위그림에나와있지만, Parser 프로그램을이용하여해당내용을데이터베이스화해서보관을 하여, 지속적인정보획득등계속된피해를입힐수있게된다. - 11 -
III. 결론 KISA 에서 2006 년인터넷침해사고동향및 2007 년전망 (07.02.01 기재 ) 에대한글이있었다. 이글의내용을보면, 2007 년에도봇넷을이용한악성행위는지속될것이다. 그중에서도금전취득을목적으로하는봇넷의악용사례가증가할것으로보이며, 이런봇넷을관리하는악성봇 C&C 서버를그룹화해운영하는사례가늘어날것으로예상된다. 또한악성봇의전파방법의변화가예상되는데, 네트워크트래픽을발생시켜관리자에의해비교적쉽게발견 차단될가능성이높은, 스캔을통한전파방법은감소하는반면악성코드유포사이트등을통한다운로드전파방법이증가할것으로보인다. 이와함께악성봇자체의기술적변화도 2007 년에는일어날것이다. 그간악성봇은 IRC 기반이었지만, 보다감지를어렵게하기위해변형되거나암호화된 IRC 가이미발견되기도했다. 이런행위는 2007 년에도지속될것으로보이며, 특히 Http 기반악성봇의활성화여부가이슈로등장할것이다. 노명선 상황관제팀팀장 nmsnms@kisa.or.kr 라고기재되어있다. 현재이봇또한동일시스템에악성코드를다운로드할수있는시스템이구현되어있고, IRC 기능을사용하지않을수도있는등, 다양한방식의공격이가능하게해준다. 또한 dll 파일을이용, 후킹을이용한키로거의기능도가지고있다. 즉이작은프로그램하나로모든악성코드의기능을다양하게조합이가능한것이다. - 12 -
그림 15 - VirusTotal 검사결과 - 13 -
필자가테스트한악성코드의경우 VirusTotal 검사결과 31 개의백신중 20 개의백신이 검출하였으며, 그중몇몇백신은 Bot 기능을삭제하면잡지못하는모습을확인할수있었다. 문제는이런자동화된생성프로그램이초보자, 소위말하는스크립키드 (Script Kid) 들도손쉽게강력한악성코드를제작할수있게된다는것이다. 현재몇몇의백신회사들의경우엔해당툴을구해서분석, 모든패턴에대한대응책을준비했다는것을확인하였다.( 위의통계에서도볼수있듯이바이러스이름에 Pinch 라는이름이들어감을확인할수있다.) 이번봇제작프로그램은필자가블로그에포스팅한내용처럼언젠가는백신없이는컴퓨터를사용할수없는시대가올지도모른다는생각을가지게해준다. - 14 -