지난 118일 안랩은 고객사로부터 APT 공격 형태와 유사한 WSF(Windows Script File) 악성코드를 접수받았다.


WSF(Windows Script File)파일은 윈도우에서 실행되는 스크립트 파일의 확장자로 사용되며 자바스크립트, VB 스크립트 등 다양한 언어를 지원한다. 출처가 불분명한 수신 메일에 WSF 확장자, JS 확장자 등 스크립트 파일이 첨부되어 있다면, APT 악성코드 이외에도 랜섬웨어 등 다양한 악성코드에 노출될 수 있으므로 사용자의 각별한 주의가 필요하다.

 

첨부된 WSF 악성코드 파일의 전체적인 APT 동작 과정은 [그림 1]과 같다.

 

[그림 1] 악성코드의 전체적인 동작 과정

 

첨부된 WSF 파일을 실행하면 사용자에게 정상 한글 문서를 화면에 보여주고, 백그라운드에서는 악성코드 유포 서버로부터 악성 DLL을 다운받아 실행한다. 실행된 악성 DLL에는 시스템 정보를 유출하는 기능과 추가 악성코드를 다운로드 하는 기능이 존재한다.


 

1) “정보보고.WSF” 파일의 동작 과정

정보보고.WSF”는 내부에 정상 HWP 파일을 포함하고 악성 DLL을 다운로드 및 regsvr32.exe에 악성 DLL을 적재하는 기능을 갖고 있다.

특이한 점은 이후 설명할 ㄱ)~) 까지의 악성 행위를 수행하는 동안에 각 단계마다 특정 사이트에 접속을 시도한다. 이는 악성코드 제작자가 자신이 유포한 WSF 파일을 통해 공격이 어디까지 수행되었고, 파급력은 어느 정도인지 확인하기 위해 사용하는 기법으로 추정된다.

 

악성 행위 단계

사이트 접속 (GET 통신)

)~)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=1

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=2

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=3

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=4

[1] 악성 행위 단계 별 접속하는 사이트 목록

 

) “정보보고.HWP” 파일 드롭 및 실행

정보보고.wsf 파일 내부에는 [그림 2]와 같이 HWP 파일을 BASE64 인코딩된 상태로 포함하고 있으며 실행 시 HWP 파일을 현재 디렉터리 경로에 정보보고.hwp”라는 이름으로 드롭 및 실행한다.

 

[그림 2] BASE64로 인코딩된 HWP 바이너리


[그림 3] “정보보고.hwp” 내용

 

) 압축 프로그램 탐색 및 압축해제 파라미터 설정

정보보고.hwp 파일을 실행 후 WSF 파일은 시스템에 Winrar 혹은 알집 압축 프로그램의 설치 여부를 확인하고 압축 프로그램이 있으면 설치된 압축 프로그램에 맞게 압축 해제 파라미터를 설정한다. 이후 설정된 파라미터는 ) (cmd 명령을 통한 압축해제) 악성 단계에서 수행된다.

악성 WSF 파일이 압축 해제 파라미터를 설정하는 이유는 악성코드 유포 서버로부터 다운로드 되는 악성 DLL 파일이 특정 패스워드로 암호화된 압축 파일이기 때문이다.

 

압축 프로그램

사용되는 파라미터 및 설명

Winrar

설정 파라미터 : UnRar.exe x -o -p “압축해제 대상이 되는 악성 DLL”

x : 압축풀기

-o :덮어 쓰기 모드

-p : 암호 설정

알집

설정 파라미터 : ALZipCon.exe -x -xf -oa -p “압축해제 대상이 되는 악성 DLL”

-x : 압축풀기

-xf :압축풀 때 폴더이름을 사용하지 않고 압축을 품

-oa :파일이 중복일 때 중복된 모든 파일을 덮어씀

-p : 암호 설정

[2] 압축 프로그램 파라미터 설정 및 설명

※ 악성 DLL에 대한 압축 패스워드는 WSF 파일에 하드코딩 되어 있음

 

) “악성 DLL.rar” 다운로드 및 시그니쳐 검증

악성코드 유포 서버로부터 악성 DLL을 다운로드 후 Rar 파일 MAGIC 값 검증을 수행한다.

 

OS

파일 경로

Windows Vista 이상

C:\ProgramData\fund.pas

Windows XP

C:\Windows\fund.pas

[3] 압축된 악성 DLL 파일 저장 경로

 

[그림 4] 다운로드 파일에 대한 파일 MAGIC 값 검증

 

) cmd 명령을 통해 압축 해제

악성 DLL.rar 파일을 다운로드 받으면, WSF 파일은 ) 에서 획득한 압축 해제 파라미터를 cmd 명령 파라미터로 전달한다. [4]의 경로에 압축 해제 된다.

 

OS

파일 저장 경로

Windows Vista 이상

C:\ProgramData\fund.lis

Windows XP

C:\Windows\fund.lis

[4] 악성 DLL 압축 해제 경로

 

) 압축 프로그램이 없을 경우 파워쉘 실행

압축 프로그램이 존재하지 않을 경우에 아래의 파워쉘 커맨드를 실행하는데, 이는 악성코드가 접속하는 서버로부터 BASE64로 인코딩된 또 다른 파일이 유포될 수 있다는 것을 의미한다.

 

파워쉘 명령

powershell.exe -windowstyle hidden certutil –decode “서버로부터 다운로드 받은 파일

[5] 파워쉘 명령어

 

) regsvr32.exe를 통해 fund.lis(악성 DLL) 적재 후 실행

최종적으로 복호화된 fund.lis 파일을 regsvr32 프로세스를 통해 실행한다.


fund.lis(악성 DLL) 적재

regsvr32 /s /i “fund.lis(악성 DLL) 파일 경로

[6] regsvr32에 전달되는 파라미터

 

2) fund.lis(악성 DLL) 동작 과정

regsvr32.exe의 메모리에 적재된 fund.lis는 감염 시스템의 정보를 유출하고 C&C 서버로부터 추가 악성코드를 다운로드 및 실행하는 기능을 갖고 있다. 전체적인 동작 과정은 [그림 5]와 같다.

 

[그림 5] fund.lis의 전체적인 동작 과정

 

) 자가 복제 경로 및 자동 실행 레지스트리 키 등록

fund.lis[ 7]의 경로에 자기 자신을 복사하여 재부팅 뒤에도 자동 실행되도록 Run 키에 해당 파일을 등록한다.

 

자가 복제 경로

%Appdata%\Microsoft\Protect\S-1-5-21-2955441095-2801345911-1478128028-1000\zerobase.dll

[7] fund.lis의 자가 복제 경로

 

레지스트리 키 (Key)

(Value)

데이터 (Data)

HKCU\SOFTWARE\Microsoft\

Windows\CurrentVersion\Run

msProtect

C:\Windows\System32\regsvr32.exe /s 자가 복제 경로”

[8] 자동 실행 레지스트리 등록 값

 

[그림 6] 자동 실행 레지스트리 등록

 

) 유출되는 정보

사용자 시스템에서 유출되는 정보는 [9]와 같으며 공격자의 C&C 서버에 아래의 정보가 전송된다.

 

유출되는 정보

시스템 MAC 주소

설치된 OSMajor, Minor, 빌드 버전 정보

설치된 OS의 환경 정보 (64비트 or 32비트)

[9] 유출되는 정보

 

C&C 서버 정보

http://*******.site11.com/data/zero/log.php?v=맥주소 OS Major, OS Minor,빌드버젼,OS환경

[10] 접속하는 C&C 서버 및 전달되는 파라미터 값

 

[그림 7] C&C 서버에 유출 데이터를 전송하는 GET 통신 시도

 

) 새로운 악성코드 다운로드 및 실행

fund.lis[11]의 주소에 접속하여 새로운 악성코드를 다운로드 및 실행한다. 악성코드 다운로드 주소를 MAC 주소별로 관리하는 것으로 보아 사용자 환경마다 다운로드 되는 악성코드가 다를 것으로 추정된다.

 

추가 악성코드 다운로드 주소

http://*******.site11.com/data/zero/[사용자 MAC 주소]/zerobase

[11] 추가 악성코드 다운로드 주소

 

추가로 다운로드 된 악성코드는 사용자 %Temp% 디렉터리에 [랜덤4자리].tmp로 저장되며, 특정 XOR 키로 암호화되어 있는 것으로 확인된다.

 

[그림 8] 다운로드된 악성코드를 복호화 하는 코드 일부

 

복호화된 파일은 [그림9]와 같이 regsvr32.exe의 인자로 실행된다. 실행이 완료되면 fund.lis는 C&C 서버에 [사용자 Mac 주소] : OK Sucess라는 메시지를 GET 방식으로 송신한다.

 

[그림 9] regsvr32.exe를 통해 추가 악성코드를 실행하는 부분

 

20분 간격으로 [그림 5] 2~4번 과정을 반복 수행하며 [그림 9] regsvr32.exe를 통해 실행된 [랜덤4자리].tmpfund.lis에 의해 삭제된다.

 

[그림 10] 추가로 다운로드 된 악성코드를 삭제하는 부분 (%temp%\[랜덤4자리].tmp)

 

현재 V3 제품군에서는 아래와 같은 진단명으로 위 파일들을 진단하고 있다.

- JS/Downloader (정보보고.wsf)

(엔진 반영 버전 : 2018.01.18.05)

- Trojan/Win32.Akdoor.C2358769 (fund.lis)

(엔진 반영 버전 : 2018.01.18.06)

Posted by 분석팀