대형 운송사의 운송장으로 위장하여 유포되는 Remcos RAT 악성코드
최근 AhnLab SEcurity intelligence Center(ASEC)에서는 대형 운송사의 운송장으로 위장하여 유포되는 Remcos 악성코드를 발견하였다. 해당 블로그에서는 html, javascript, autoit script 로 이어져 최종 Remcos 악성코드 실행까지의 유포 흐름을 설명한다.
하기 [그림 1]은 유포되는 메일의 원본으로 내부에 html 스크립트가 첨부되어 있다. 해당 html 파일은 실행하여 Download 버튼을 클릭하면 [그림 2]와 같이 “747031500 D747031500_A.js” 파일이 다운로드 된다. 하지만 다운로드 URL은 “blob” 형태의 URL로 외부 서버로부터 다운로드 하는 유형이 아니다. [그림 3]은 html 스크립트의 코드로 인코딩된 악성 자바스크립트를 오브젝트로 변환하여 브라우져 내에서만 접근 가능한 URL을 통해 “747031500 D747031500_A.js” 파일을 생성한다.

[그림 1] 유포 메일 원본

[그림 2] 첨부된 html 스크립트 본문

[그림 3] 첨부된 html 스크립트 코드
[그림 4] 는 html 파일로 생성된 자바스크립트 파일(747031500 D747031500_A.js) 이다. 악성행위와 관련 없는 난독화 목적의 더미코드가 대부분을 차지한다.

[그림 4] 난독화된 자바 스크립트(747031500 D747031500_A.js)
[그림 5]는 더미코드를 제거한 실제 악성행위를 수행하는 코드이다. 실행시 [그림 6]과 같이 구동 파일을 생성(knkfcutogchunsg.bls, wtine.amv) 및 다운로드(kmwdx.txt, fdilfn.dll) 하며 기능은 아래 [표 1]과 같다. 구동 파일들을 생성한 이후에 정상 오토잇 로더(kmwdx.txt)의 인자로 악성 오토잇 스크립트(fdilfn.dll)를 실행한다.
| 파일명 | 기능 |
| knkfcutogchunsg.bls | 설정 파일(악성코드 생성위치, Run key 이름, 생성파일 이름 등을 명시) |
| wtine.amv | 인코딩된 Remcos 악성코드 binary |
| kmwdx.txt | 정상 autoit 로더(EXE) |
| fdilfn.dll | 악성 autoit 스크립트 |
[표 1] 자바스크립트의 생성 파일의 기능

[그림 5] 복호화된 자바스크립트(747031500 D747031500_A.js)

[그림 6] 자바스크립트가 생성한 구동파일

[그림 7] 악성코드 구동에 사용되는 설정 파일(knkfcutogchunsg.bls)
[그림 8]은 악성 autoit 스크립트(fdilfn.dll)로 실제 행위와 관련없는 더미 코드로 난독화 되어있다.

[그림 8] 난독화된 악성 autoit 스크립트(fdilfn.dll)
[그림 9]~[그림 13]은 복호화된 오토잇 스크립트의 기능이다. 순서대로 [그림 9]는 특정 백신프로그램 실행시 종료되는 기능이다. 추가적으로 유저이름(UserName)이 “John” 일 경우 종료되는 코드가 존재했다.

[그림 9] 악성 autoit 스크립트 기능(백신 및 특정 유저명 존재시 종료)
[그림 10]은 지속성 유지를 위한 자동실행 등록 기능이다. 자동실행 레지스트리 키에 이름을 위장한 정상 오토잇 로더(kmwdxt.txt.exe)의 인자로 악성 autoit 스크립트(fdilfn.dll)을 실행하는 명령어가 [그림 11]과 같이 등록된다.

[그림 10] 악성 autoit 스크립트 기능(자동 실행 등록을 통한 지속성 유지)

[그림 11] 자동 실행 등록(악성 autoit 구동 명령)
[그림 12], [그림 13]은 인코딩된 Remcos 악성코드 binary를 복호화하고 쉘코드를 실행하는 기능이다.

[그림 12] 악성 autoit 스크립트 기능(wtine.amv 를 디코딩 하여 remcos 바이너리 획득)

[그림 13] 악성 autoit 스크립트 기능(쉘코드 실행)
[그림 14]는 쉘코드 기능의 일부 코드로 인젝션을 위해 정상 프로세스(RegSvcs.exe)를 실행(CreateProcessW) 하는 코드이다. 이후 [표 2] 와 같은 순서로 Remcos 악성코드를 인젝션 한다.

[그림 14] 쉘코드 기능 – 정상 프로세스(RegSvcs.exe)에 Remcos 악성코드를 인젝션
|
인젝션에 사용되는 API |
| CreateProcessW -> RtlMoveMemory -> ZwUnmapViewOfSection -> VirtualAllocEx -> WriteProcessMemory -> RtlMoveMemory -> GetThreadContext -> SetThreadContext -> ResumeThread |
[표 2] 인젝션에 사용되는 API 순서
[그림 15] 는 정상 프로세스(RegSvcs.exe)에서 동작하는 Remcos RAT 악성코드의 메인함수 일부이다. 최종적으로 실행된 Remcos RAT는 Remote Access Tool 악성코드로 C2 명령에 따라 사용자 PC의 정보 탈취 및 다양한 원격 명령이 수행될 수 있다.

[그림 15] 정상 프로세스(RegSvcs.exe)에서 동작되는 Remcos RAT 악성코드
출처가 불분명한 메일 열람은 사용자의 각별한 주의가 요구된다. 2차 피해를 예방하기 위해 주기적인 패스워드 변경이 필요하다. 또한, 공격자의 주소나 침해당한 주소로 정보를 유출하는 유형과 달리 정상 플랫폼을 C2로 활용하는 사례가 계속 증가하고 있으므로 사용자는 각별한 주의가 필요하다.