상세 컨텐츠

본문 제목

[악성코드 분석 리포트] Trojan.Lecpetex

악성코드 분석 리포트

by 알약(Alyac) 2014. 9. 25. 10:42

본문

Trojan.Lecpetex -ALYac Division Malware Research



페이스북은 새로운 소통의 문화를 만든 세계 최대 소셜 네트워크 서비스(SNS)입니다. 

그러나 다수의 사용자를 보유한 매체인만큼, 관련 악성코드도 계속하여 발생하고 있는데요. 2013년경 사용자가 모르게 페이스북 친구에게 악성파일을 첨부한 메시지를 보내 감염을 확산시키는 봇넷 악성코드가 그리스에서 발생되었습니다. (8월 보안동향보고서 중 해외 보안 동향에서 일본 보안 동향 1번 참고)


[그림 1] 악성파일이 포함된 페이스북 메시지


그리스 경찰청의 통계 자료에 따르면, 해당 악성코드로 인해 약 25만대의 컴퓨터가 감염되었다고 합니다. 또한 페이스북 측은 약 50,000개에 이르는 페이스북 일반인 계정이 악성에 이용되었다고 밝혔습니다. 이와 같은 방법으로 확산된 봇넷은 비트코인 채굴, 비밀번호 탈취 등의 악성행위를 수행한 것으로 알려지고 있습니다.



악성코드 순서도


[그림 2] 악성코드 확산 과정도



악성코드 상세 분석


1. 악성파일 분석(zxcvb.vbs)

 

[그림 3] 최초 웹에서 난독화된 스크립트

 

해당 악성코드는 페이스북 메시지를 통해 유포되며, VBS, Jar 스크립트로 구성되어 있습니다. 사용자는 친구에게 받은 메시지이기 때문에 별다른 경계 없이 첨부파일을 실행하게 되지요.


첨부된 악성파일에는 난독화가 적용되어 있으나, 별다른 암호화 알고리즘이나 특수한 기법을 사용하지는 않았습니다. 연산 과 아스키 코드 변환으로 하나의 문자열을 만드는 방식을 반복하여 정상 코드를 완성한 후 실행하는 기법이 사용됩니다. [그림 1] 참고


 

[그림 4] 복호화된 스크립트


 “C:\temp” 해당 경로에 봇넷을 비롯한 악성코드에 필요한 추가 파일을 다운로드하고 실행합니다.



2. 악성파일 분석(zxcvb.dll)


[그림 5] 중복실행 방지 체크 코드


실행된 PC 의 HDD 시리얼 정보를 취득하여 Mutex를 생성하고, 이를 기반으로 중복 실행을 방지합니다.


 

[그림 6] Explorer 프로세스 생성 코드


[그림 7] 하이재킹 기법 코드


악성코드는 Explorer를 가장하여 봇넷.exe를 실행시킵니다.


특이한 점으로 악성코드는 Image Hijacking 기법 중 IAT 구성 등 PE 로더를 대신하는 수작업을 수행하지 않으며, 메모리 상태에 있던 이미지 덤프를 항상 고정된 메모리 주소로 불러옵니다. 이 때문에 kernel32.dll, user32.dll 등 시스템 모듈들이 덤프 기준과 다른 주소에 올라가 있는 상태라면 Hijacking은 실패합니다. 즉, 한정된 시스템 환경에서만 실행이 되도록 구성되어 있습니다.



3. 악성파일 분석(zxcvb.exe)

- 자동 분석 시스템 우회

최근 악성코드들은 나날이 발전하고 있는 자동분석 시스템에 대한 우회하기 위해 여러 기법들을 동원하여 악성코드가 실행되지 않고 종료되게 하고 있습니다.


[그림 8] 마우스 움직임을 이용한 자동 분석 탐지 코드


동작을 800회 반복하는 과정에서 10ms 시간을 두고 두 번의 마우스 포인터 위치를 수집하여 비교하고, 반복 과정에서 마우스의 움직임이 한번도 감지가 되지 않는다면 봇넷이 종료됩니다.


[그림 9] PC 실행 이후 시간 확인 코드


자동 분석 시스템 우회를 위해 정확한 시간 값에 대한 확인은 불가능하지만, 기본적으로 TickCount 값을 이용하여 부팅 이후의 시간을 확인하고 봇넷을 실행합니다.


[그림 10] 가상환경 확인 코드


1은 실행중인 환경이 가상 환경임을 의미하여, 아무 행위도 하지 않고 프로그램이 종료됩니다.


- 레지스트리 추가

해당 악성코드는 부팅 시 자동 실행을 위해 아래와 같은 레지스트리 경로에 자신을 추가합니다.


[그림 11] 다운로더 파일에 대한 자동 시작 등록 코드


봇넷이 시작되기 이전 봇넷을 실행한 다운로더 파일에서 입력 받은 파일의 경로를 바탕으로 Run에 등록합니다.


 

[그림 12] 레지스트리 등록 코드


“regsvr32 /s (다운로더 파일 경로)” 로 레지스트리를 등록합니다.


In subkey: HKCU\software\microsoft\windows\currentversion\run

Sets value: svchost = "regsvr32 /s"

With data: “FilePath”

In subkey: HKLM\software\microsoft\windows\currentversion\run

Sets value: "svchost"

With data: “FilePath”


위 레지스트리 등록 과정에서 FilePath는 실행 환경과 스크립트의 영향으로 변경될 수 있습니다.


- C&C 접속 확인

악성코드는 전형적인 봇넷으로 C&C 서버와의 통신을 통하여 추가적인 기능을 동작하는 플러그인을 다운로드하여 실행하는 구조를 가지고 있습니다.


[그림 13] C&C 서버 접속 확인 코드


실행과정에서 C&C 서버에 대한 접속을 확인하기 전 ‘google.com’에 접속하여 정상적으로 인터넷이 동작하고 있는지에 대한 확인 절차를 거칩니다. 이 후 15분 주기로 C&C 통신을 수행하며, 최대 20,000시간 이후까지 동작한 후 종료됩니다.


추가 기능을 C&C 서버에서 다운받기 전 봇넷에서는 운영체제 버전에 따른 문자열(5.1 의 경우 ‘WindowsXP’) 을 C&C 서버 통신시에 같이 전송합니다.


아래는 각 버전 별 C&C 서버로 보내지는 문자열에 관한 표입니다.


 

 버전

 문자열

 1

 5.0

 Windows2000

 2

 5.1

 WindowsXP

 3

 5.2

 WindowsServer2003R2orXP64Bit

 4

 6.0

 WindowsServer2008orVista

 5

 6.1

 Windows7orSrv2008R2

 6

 6.2

 Windows8orSrv2012

 7

 기타

 Win8orgr8r


위와 같이 운영체제 정보를 C&C에 전송하는 이를 추측하면, 뒤에 이어 나올 추가기능 실행의 경우 앞서 설명한 조금 특이한 Image Hijacking 기법을 동일하게 이용합니다. 각 운영체제별로 알맞은 메모리 덤프를 다운로드받기 위해 전달하는 것으로 추측됩니다.


 

[그림 14] C&C 서버 접속 후 추가 기능 다운로드


[그림 15] SkyNet Team signature 확인


C&C 서버 접속 이후 읽어온 데이터에 시그니처 포함 여부로 정상적인 통신이 이루어졌는지 확인합니다. 다운로드된 추가 기능 exe는 봇넷이 실행된 방식과 동일하게 Explorer Image Hijacking기법으로 실행됩니다.



4. 악성파일 분석(zxcvb2.exel)

앞서 언급되었던 악성 메시지가 어떠한 과정을 통해서 일반 사용자의 계정을 이용하는지 분석 결과를 통해 살펴봅시다.


- 시간대 확인


[그림 16] 실행 시간대 확인 코드


본 추가기능은 실행된 일자 및 시간을 확인하고, 16일 오후 4시 이후엔 아무런 기능을 수행하지 않고 종료되도록 되어있습니다. 실행 시간대가 메시지 전송 기능 구현에 직접적인 영향이 없음에도 불구하고 이러한 행위를 하는 것으로 봤을 때, 악성코드 제작자가 사전에 자체적으로 시나리오를 가지고 만든 것으로 추측됩니다.


- 브라우저 별 페이스북 접속 정보 확인


[그림 17] 파이어폭스 페이스북 쿠키 확인


 

[그림 18] 크롬 페이스북 쿠키 확인


[그림 19] IE 페이스북 쿠키 확인


최초 과정은 총 3개 브라우저(파이어폭스, 크롬, IE)의 쿠키를 확인하여 페이스북 쿠키를 찾습니다. 습득한 쿠키는 페이스북의 자동 로그인 정보로 판단됩니다. 즉, 악성코드에 감염된 PC에서 페이스북을 접속한 경험이 있다면 모두 악성메시지 전송에 사용될 위험이 있다고 볼 수 있습니다.


- 페이스북 유저 정보 습득


[그림 20] 습득한 쿠키를 이용한 페이스북 접속 코드


습득한 쿠키는 페이스북의 메인 페이지 접속과 같은 결과를 내도록 HTTPS 전송에 이용됩니다. 


[그림 21] 페이스북 유저 이름 정보 습득 코드


[그림 22] 페이스북 친구 목록 습득 코드


이어 응답 받은 패킷에서 “fbxWelcomeBoxName”을 기준으로 유저의 이름을 찾습니다. 또한 친구 목록을 습득하는 코드를 볼 수 있으며, 악성 메시지는 불특정 다수에게 전송되는 것이 아니라 계정의 친구 목록을 기준으로 전송되는 것을 알 수 있습니다.


이후 직접적으로 메시지 전송에 필요한 보안 키 습득 등 중요 코드가 이어지나, 악용의 소지가 있어 일부 중요 과정은 생략하겠습니다.


- 악성 메시지 전송


[그림 23] 악성 메시지 "hahaha", "lol" 기록 코드


[그림 24] 악성코드 파일 첨부 코드


이어 악성 메시지 “lol”를 기록하는 코드를 확인할 수 있으며, 전송되는 메시지 내용은 다운로드 된 샘플에 따라 고정되어 차이가 있을 수 있습니다. (“hahaha”, “lol”, 기타 등등) 또한 메시지와 더불어 악성코드 첨부 파일이 함께 전송되도록 구성합니다.



결론


페이스북 메시지를 통한 악성코드 공격은 스미싱 문자, 메일을 통한 공격과 함께 향후 사용자 정보 탈취에 악용될 수 있는 위험성이 충분히 존재하고 있습니다. 

  

이전의 문자, 메일과 같은 경우 이해관계가 없는 타인에게 내용을 전달받기 때문에 피해자가 조금만 주의를 기울이면 위험을 피할 수 있었습니다. 그러나 이번 페이스북 악성메시지의 경우 계정의 친한 친구들에게 독립적으로 전파되기 때문에 사용자의 주의가 약해지고, 경계가 허물어지는 만큼 큰 위험성을 가지고 있다고 볼 수 있습니다.

   

국내의 경우 해당 악성코드에 대한 피해자는 확인되지 않았으며, 페이스북 측은 이러한 문제를 인지하고 2014년 6월경 문제점에 대응하여 해당 공격을 차단했다고 밝혔습니다.



관련글 더보기

댓글 영역