본문 바로가기

Analysis

06. LokiBot

LokiBot은 웹 브라우저, FTP, 이메일 클라이언트, Putty 같은 IT 관리 툴 패스워드를 정보를 훔치는 스틸러 악성코드이다. 닉네임 "lokistov"를 사용하는 사람이 처음 개발해 LokiBot 이라고 불린다고한다. 본 글에서는 LokiBot을 분석한다.

Malware LokiBot
OS Windows7
action Stealer

문자열 복호화

악성코드 샘플을 실행하면 파일 자체에 DLL 이 있는 것이 아니라, 자체 디코딩 함수를 통해서 사용할 DLL 파일들을 문자열로 디코딩 시키고 LoadLibrary 함수를 통해 문자열로 디코딩 해 둔 DLL 파일들을 가져온다.

 

소켓 초기화

피해 PC의 정보들을 탈취한 후 C&C 서버에 소켓 연결로 탈취한 데이터를 전송하기 위해서 미리 소켓 초기화를 수행한다.

 

MachineGuid 탈취

이후 "SOFTWARE\Microsoft\Cryptography" 아래에 존재하는 MachineGuid 값을 열고 탈취한다. MachineGuid 값은 하드웨어 ID 값이다.

 

뮤텍스 생성

본격적으로 정보를 탈취하기 앞서 악성코드가 중복실행되는 것을 방지하기 위해 특정 이름으로 구성된 뮤텍스를 생성해 중복실행을 방지한다.

 

정보탈취 수행

위 사진에 보이는 firefox 등의 함수명은 필자가 지정한 것인데, 실제로 함수명에 맞는 프로그램에 대한 정보탈취를 진행하는 루틴들을 갖고 있다. 뮤텍스 생성 후에 웹 브라우저 프로필 정보, FTP 툴의 설정, 계정 정보, 이메일 클라이언트 프로필 정보, 패스워드 관리 툴 설정 정보 등을 탈취하는 악성 행위를 수행한다.

 

파이어폭스 탈취

예를 들어, 파이어폭스 정보 탈취의 경우 위 사진과 같이 먼저 32비트와 64비트를 구분한 뒤 비트에 맞게 경로를 따라가 정보를 탈취한다. (steal_files 라는 함수명을 가진 함수에서 수행된다.)

 

유저명 탈취

위 행위에서 웹 브라우저 등에 대한 정보를 모두 탈취하고나면 피해 PC의 정보를 탈취하기 시작한다. 먼저 유저명을 탈취한다.

 

컴퓨터명 탈취

유저명을 탈취한 뒤에는 컴퓨터명을 탈취한다.

 

SID(security identifier) 검색

컴퓨터명까지 탈취한 후 탈취한 컴퓨터 명을 이용해서 SID 값을 검색한다.

 

실행 중인 윈도우 탈취

이후 피해 PC 에서 실행중인 윈도우 창에 대한 정보를 탈취한다.

 

PC 정보 탈취

유저명을 이용해 서버에 유저명에 대한 정보를 반환하고 피해 PC의 윈도우 비트 수를 탈취한다.

 

C&C 복호화

정보를 모두 탈취하고 난 뒤에는 탈취한 정보들을 C&C 서버로 전송하는데, C&C 서버는 당연히 평문으로 저장되어 있지 않다. 자체적 인코딩을 통해 저장되어 있으며 해당 인코딩은 디코딩 루틴을 통해서 디코딩 해 C&C 서버를 평문으로 가져온다. (디코딩 과정 : 본래 문자열 XOR 0xFF)

 

포트 설정

복호화 해서 저장한 C&C 서버 문자열에 http:// 부분과 .com의 뒷부분을 제외해 깔끔한 URL로 만들어준 뒤에 :80 으로 포트를 지정해 저장한다.

 

소켓 연결

C&C 서버에 소켓을 생성해 연결하고 연결된 소켓으로 C&C 서버와 통신하게 된다.

 

통신과정

현재는 C&C 서버가 죽어서 연결되지 않지만 정상적으로 연결된다면 위의 send와 recv 함수를 통해 통신이 이루어질 것이다.

 

본 파일 이동

소켓통신으로 C&C 서버에 탈취한 정보를 전송한 뒤에는 악성행위를 하는 본 파일을 %APPDATA% 아래에 특정 폴더를 생성하고 해당 폴더에 파일을 생성해 본 파일을 이동시킨다.

반응형

'Analysis' 카테고리의 다른 글

08. Clop  (0) 2019.06.03
07. 도메인 쉐도잉  (0) 2019.05.30
05. TrickBot  (0) 2019.05.29
04. Shamoon  (0) 2019.01.14
03. CVE-2018-4878  (0) 2019.01.04