티스토리 뷰

728x90
반응형

[Malware analysis] Emotet Malware


- 샘플 파일 다운로드

파일첨부


악성코드 정보 

Emotet 악성코드는 2014년 금융 데이터를 훔치는 트로이 목마로 처음 발견되었다. 시간이 지남에 따라 사용자 PC를 감염시키고, C&C 통신을 통해서 악성 행위를 시도한다. Emotet 악성코드는 주소 스팸메일을 통해 유포되며, 공격자는 메일 내용으로 청구서와 같이 사용자가 관심을 가질만한 소재를 사용한다. 이와 함께 위장된 워드 파일을 첨부하거나, 청구서를 다운로드 할 수 있는 URL를 포함하여 사용자의 다음 행동을 유도한다.  


파일명 

Emotet.exe(payload) 

파일크기 

468.1 KB 

MD5 

1ABEEC317E6C10B9201EE1C713069715 

SHA-256 

8976948f9537629f14573a2a3007c8cf86c33b94818a8221b97e137b67bd834b 

표 1  Emotet 


상세 분석 

 .mem 확장자 유무를 통해 인코딩·디코딩 구분하였다

OllyDBG를 살펴보면 정적 분석 시 확인 한 인코딩 되어 있는 데이터로 유추되는 ASCII 코드를 확인 할 수 있다.

디코딩 된 “Emotet.mem” 확인 할 수 있다. 다음으로 “Emotet.mem”을 살펴보자. (블로그에서는 자세한 내용 생략)

 

0x401146()  Anti-Decompile 


 

Emotet.mem(디코딩) 

  1.  

Emotet.mem

IDA와 OllyDBG를 이용하여 “Emotet.mem” Main() 부분이다. 0x40BFB0을 살펴보자.  

 

Emotet.mem Main 


살펴보면 먼저 API Name을 Hash 값으로 처리된 것을 확인 할 수 있다. 이후, 0x4012CD을 보게 되면 PEB 구조체의 Ldr을 이용하여 ntdll.dll을 찾는 것을 확인 할 수 있으며, 0x4012FF에서 ntdll에 필요한 API를 가지고 오는 것을 확인 할 수 있다. 내용을 요약하면 어디에서 어떤 함수를 로드하는지, 어떤 함수를 사용해서 무슨 행위를 하는지 노출을 피하기 위해 Ntdll.dll API 동적 로딩 기법을 이용하였다는 걸 확인 할 수 있다.

 

ntdll.dll API 호출 


이후 진행 시 실행중인 프로세스가 검증을 통해 해당 “ —28ca0aa4”가 없으면 자가 복제 프로세스를 실행 하는 걸 확인 하였다. 다음 argument값은 매번 다르다는 것을 인지하고 분석을 해야된다. 더 분석을 위해 인자를 주니 그림과 같이 0x40BD30에 접근하는 것을 확인 할 수 있다. 자세히 살펴보자. 

 

코드 검증 부분 


분기문에 대해 살펴보면, 

 - 원복파일을(emotet.mem) 삭제하고 wizrun.exe 생성 확인(파일 생성에 사용하는 키워드 중 무작위로 2개의 키워드를 선택)

 - CreateService()을 이용하여 레지스트리와 서비스에 “wizrun” 생성 및 ChangeServiceConfig2()을 이용하여 기존 서비스의 설명 중 무작위로 선택된 값을 복사하여 서비스 설명 값 변경 확인

 - 이후 진행 시 디버깅이 종료가 되는 것을 확인

 - Emotet.mem 파일은 첫번째 분기만 진행하고 종료 후 등록한 서비스(Wizrun)를 통해 나머지 분기를 진행하는 것을 확인 

 

 

분기문 


  나머지 분기에 대해 살펴보면,

    - 암호키 생성 (RSA 공개키 및 AES-128 값 생성)

    - rawdata encoding 진행

    - C&C 통신 (BASE64로 인코딩 후 rawdata 전송)



728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
250x250