분석 정보/악성코드 분석 정보

[악성코드 분석] kaulj.exe (인터넷 뱅킹 파밍, 인증서 탈취)

TACHYON & ISARC 2015. 10. 23. 17:39

 kaulj.exe 악성코드 분석 보고서  

 

1. 개요


1.1. 파일정보

 

 파일명

 kaulj.exe

 파일크기

 96,710 byte

 진단명

 Trojan/W32.KRBanker.96710

 악성동작

 인터넷 뱅킹 파밍인증서 탈취

 특징

 hosts hosts.ics파일 변조를 통한 위조 사이트 유도 및 인증서 탈취

 자동실행으로 지속적인 악성동작 유지

 파일 드랍



1.2. 분석환경


 운영체제

 Windows XP SP3 32bit (한글)

 분석도

 IDA, PEview, OllyDbg, ProcExp


 

 

2. 분석정보

2.1. 파일 유포 경로

이번 샘플은 10월 첫째 주 주말 동안 *******wire.com외 의류쇼핑몰, 건강식품쇼핑몰, 어린이집 등 40여개에 이르는 사이트를 통해 유포되었다*******wire.com 외에 아래 표에 나열된 최초 경유사이트들은 공통적으로 www.k****.co.kr/cd1.html 를 중간 경유사이트로 사용하였고, 최종 경유사이트 180.**.***.131/Us******sc*****x.html를 거쳐 www.t*****a*s.com/kaulj.exe에서 다운로드 되었다.



www.e****.co.kr

p*****.ar*****e.com

www.bo****nd****a.co.kr

www.b***.co.kr

www.s****.co.k******ain.asp

www.r****.co.kr

www.s****w**.biz

www.t*****a**.com

www.m*******im.pe.kr

www.e***b.co.kr

www.y***.com

www.b*****y.com

www.h****b.co.kr

www.c***u.com

www.n******en.or.kr

t****erc******ing.co.kr

www.vi*******rl.kr

***.**s.or.kr

www.i******t.co.kr

www.a***d.com

www.s****n.pe.kr

www.r***a.co.kr

www.a****op.co.kr

이하생략

[표]최초 경유 사이트 목록


2.2. 샘플 분석

Kaulj.exe는 KRBanker 진단명을 갖고 있으며 인터넷뱅킹 사용자를 위조 인터넷뱅킹 사이트 접속을 유도(파밍)한다. 본 보고서는 샘플 내부 상세 동작에 중점을 두고 분석을 진행했다.

 

2.2.1. kaulj.exe 상세 분석


악성동작은 다운로드된 실행파일이 아닌 kaulj.exe에서 드랍된 dllrundll32.exe를 통해 실행되어 동작한다. 이 때 실행파일은 드랍퍼 역할만 수행하는 것이다. 파일 드랍 과정에서 각종 안티 디버깅 기법이 존재하기에 분석 시간이 오래 걸리며 진단이 늦춰지고, 악성동작 생명주기를 연장시킨다. 결과적으로 샘플 실행 시, D:\5자리 랜덤 문자열의 폴더가 숨김 속성으로 생성되고, 그 안에 확장자가 6자리 랜덤 문자열인 dll파일이 드랍된다. D드라이브가 존재하지 않을 경우엔 C:\에 생성한다.



 


[그림]드랍된 파일




이후 rundll32.exe를 실행시켜 드랍한 dll파일의 export함수 Dialer를 실행하고, 재부팅해도 이 과정이 실행되도록 레지스트리를 수정한다. 모든 악성동작은 드랍한 dll파일의 Dialer함수 안에 구현되며, 자동실행등록을 마친 실행파일은 자신을 삭제한 후 종료된다.

 



 

[그림]자동실행 설정된 레지스트리





2.2.2. Dialer 함수 상세분석

Dialer함수는 C:\경로에 wiseman.exe의 유무를 확인 후, 있다면 실행시킨다하지만 이 파일은 테스트 환경에서 드랍되거나 다운로드 되지 않기 때문에 실제 동작하지는 않는다여기서 wiseman.exe는 유명 애드웨어의 파일명으로 다른 KRBanker의 변종 중 이 파일을 드랍하고 실행하는 샘플이 존재도 한다.

 

 


[그림]wiseman.exe stov.exe 실행




이후 174.***.65.**2으로 접속을 시도한다. 이 주소로부터 전송 받은 데이터를 기반으로 C:\lang.ini파일을 기록하거나, 파일을 다운로드 하는 등의 동작을 수행하지만 현재 174.***.65.**2에 접속되지 않아 실제 데이터는 확인되지 않는다.


C:\lang.ini
에 기록하는 내용은 인증서파일 전송지 주소이다. 지금처럼 서버와 통신이 되지 않는 경우에는 전송지 주소를 기본 174.***.35.**3/u.php로 설정한다.


다운받는 새로운 모듈은
“5자리랜덤문자.mp3”로 저장하여 서비스나 프로세스를 생성하는데 사용된다. 특히 서비스 생성에 사용될 땐 레지스트리 …\CurrentControlSet\Services\RemoteAccess\RouterManagers\IP Dllpath의 값을 수정하는데, 정상적인 Dllpath의 값은 “%WIDDIR%\system32\iprtrmgr.dll”이다.
이 레지스트리는 “Routing and Remote Access” 서비스에 필요한 dll을 명시한 것으로, 정상 dllPC가 라우터 기능을 하는데 필요한 함수를 export하고 있다. 레지스트리 수정 후에는 동일 모듈을 사용해 랜덤한 31자리 문자열을 이름으로 서비스를 생성하는 루틴이 있다.



[그림]다운로드 및 서비스/프로세스 생성



[그림]서비스 생성의 경우



[그림]프로세스 생성의 경우




다운로더 및 인증서 탈취 동작 이후에는 hosts파일 변조를 수행한다. 특이사항으론 가상환경이 탐지되었을 루틴이 추가된다는 점이다.



샘플은 아래의 레지스트리를 확인하여 VMwareHostOpen.exe키의 존재로 가상 환경을 식별한다. HKCR\Applications\ 하위에는 해당 PC에서 실행되는 각종 실행파일명과 그 실행에 관련된 옵션들이 명시되어 있다. 따라서 이 레지스트리 하위에 가상환경에서 주로 사용되는 VMwareHostOpen.exe가 존재한다면 가상PC임을 식별할 수 있다.




 [HKCR\Applications\cmd.exe]

  [HKCR\Applications\access.exe]

[HKCR\Applications\VMwareHostOpen.exe]

[표]레지스트리 예시




가상 PC로 식별된다면 샘플은 다른 악성 주소 http://b***.s***.com.**/u/5*****98** 로 접속을 시도하고 위의 루틴과 마찬가지로 파일을 다운로드 해 서비스 혹은 프로세스로 실행시키는 추가동작을 수행한다.






[그림]가상PC에서의 추가동작






3. 결론


kaulj.exe는 인터넷뱅킹 파밍 이라는 수행한다는 점에서 KRBanker로 진단된 다른 샘플들과 큰 차이는 없으나 상세분석 결과 내부적으로 동작하지 않는 여러 악성 루틴이 존재하는 것으로 확인되었다. 이는 악성샘플들도 다른 프로그램들과 마찬가지로 계속 개발 및 기능추가가 되고 있고 새로 배포되는 악성샘플들은 언제라도 추가적인 악성동작을 수행할 가능성이 있음을 시사한다. 또한 40여개에 이르는 최초 경유사이트의 숫자에서 해커가 악성코드 배포에 더욱 공격적으로 임하고 있음을 알 수 있다.



현재 nProtect AVS에선 드랍퍼 kaulj.exe와 드랍된 dll파일도 진단하고 있다

 


 

[그림]진단 및 치료 가능