ASEC 분석팀은 지난 2021년 5월 경부터 현재까지 PseudoManuscrypt 악성코드가 국내 유포 중인 정황을 포착하였다. PseudoManuscrypt 악성코드는 ASEC 블로그에 소개해왔던 Cryptbot 악성코드와 유사한 형태의 설치 파일로 위장하여 유포되고 있으며 파일의 형태 뿐만 아니라, 검색 엔진에 Crack, Keygen 등 상용 소프트웨어 관련 불법 프로그램에 대해 검색할 경우 상위에 노출되는 악성 사이트를 통해 유포되는 방식도 Cryptbot 과 동일하다.
자사 ASD(AhnLab Smart Defense) 인프라에 확보된 PseudoManuscrypt 진단 로그 중 아래와 같은 실행 파일 경로를 확인하였으며, 윈도우 정품 인증 프로그램을 악성 사이트에서 다운 받으려던 것으로 보인다.
- 실행 파일 경로
…\downloads\60b63e_kmsauto-net-201\kmsauto-net-2016-v154-windows-10-activator-portable\60b63e21e82a660b63e21e_setup_v18.2.9\main_setup_x86x64.exe

이와 같은 방식은 불특정한 다수의 사용자를 대상으로 하는 유포 방식으로, 국내 다수의 PC 에서 감염이 발생한 것을 확인하였다. 위 그림은 유포가 시작된 2021년 5월부터 현재까지 탐지된 로그 수량을 나타내는 그래프이다. 초록색 그래프는 감염된 PC 수량이며, 빨간색 그래프는 탐지된 파일 수량을 나타낸다. 평균적으로 매일 약 30대의 PC 가 꾸준하게 감염되는 것을 확인할 수 있다.

불법 프로그램으로 위장한 최상위 파일은 NSIS(Nullsoft Scriptable Install System) Installer 형태이며 “setup_installer.exe” 파일을 생성 후 실행한다. “setup_installer.exe” 는 7z SFX 형태로, Loader 파일과 다양한 악성코드 및 다수의 dll 을 생성한다. 다수의 dll 은 모두 정상 파일로 Loader 파일의 실행에 필요한 라이브러리이다. Loader 는 함께 생성된 다양한 악성코드를 실행하는 역할이며, 이와 같은 과정은 Cryptbot 이 실행되는 과정과 동일하다. Loader 에 의해 실행되는 악성코드 중 PseudoManuscrypt 외에도 SmokeLoader, Glupteba 등 이 포함되어 있으며, PseudoManuscrypt 는 7z SFX 형태이다. 최종적으로, PseudoManuscrypt 는 %TEMP% 경로에 install.dll(디코딩을 수행하는 Loader) 와 install.dat(인코딩된 쉘코드) 파일을 생성한다. 이후 “install.dll.lnk” 명의 바로가기 파일을 생성 및 실행하여 install.dll 파일 내 특정 함수를 동작하게 한다.
- install.dll.lnk 속성
C:\Windows\system32\rUNdlL32.eXe “%TEMP%\install.dll”,install

install.dll 파일은 install.dat 파일을 디코딩하여 메모리 상에서 실행한다. install.dat 파일에는 shellcode 와 인코딩 및 압축된 pe 데이터가 존재하며, shellcode 는 인코딩 및 압축된 pe 데이터를 디코딩 후 압축 해제하여 실행하는 기능을 수행한다. 이후 해당 pe 데이터가 실제 악성 행위를 수행하게 되며, 내부에 존재하는 추가 데이터를 디코딩하여 tmp 확장자로 생성 후 서비스에 등록하게 된다. Pe 데이터에 대한 자세한 설명은 아래에서 소개한다.

호출된 pe 데이터는 먼저 현재 실행 중인 프로세스 명이 svchost.exe 인지 확인한다. 이때 현재 프로세스는 바로가기 파일에 의해 rundll32.exe 로 실행된 상태이다.

svchost.exe 프로세스가 아닌 경우, 특정 레지스트리 키를 생성하여 악성 데이터를 저장한다. 생성하는 레지스트리 키 이름은 HKLM\SOFTWARE\Microsfot\Cryptography 레지스트리에 존재하는 MachineGuid 값을 사용한다. MachineGuid 는 HardwareID 값으로 PC 마다 고유한 값을 가지며, 해당 특징을 이용하여 레지스트리 키 이름을 생성한다.
MachineGuid 값은 “Global” 문자열을 사용하여 인코딩되며, 인코딩된 MachineGuid 값을 사용하여 아래 경로에 레지스트리 키를 생성한다. 해당 레지스트리 키에 인코딩된 “install.dat” 데이터를 저장하게 된다.
– HKLM\SOFTWARE\Classes\CLSID\MachineGuid(“Global”):1 = 인코딩된 “install.dat”

레지스트리 키를 생성 후, 전체 서비스 중 인자에 “-k netsvcs” 가 포함된 서비스의 process id 를 구하여 디코딩된 “install.dat” 데이터를 해당 프로세스에 injection 한다. 이후 %TEMP% 경로에 존재하는 “install.dat” 파일은 삭제하며, 인젝션된 프로세스는 레지스트리 키에 저장된 인코딩된 “install.dat” 데이터를 참조하게 된다.
인젝션된 svchost.exe 는 이전과 동일한 과정을 거쳐 command line 을 검사하게 된다. 현재 프로세스명이 svchost.exe 인지, 인자에 netsvcs 가 포함되었는지 검사 후 두 개의 thread 를 실행하게 된다.
첫번째로 실행되는 thread 는 프로세스가 종료될 때 특정 파일을 서비스에 등록하는 기능을 수행한다. 먼저 프로세스 종료 우선 순위를 제일 낮게 설정 후 제어 처리기를 설정한다.

제어 처리기에 추가하는 함수는 위와 같으며, 수신받는 제어 신호를 확인한다. 해당 함수에서 검사하는 제어 신호 값은 5, 6 이다. 5 (사용자가 로그오프할 때) 인 경우 프로세스 종료 우선 순위 및 제어 처리기를 다시 설정하며, 6 (시스템이 종료될 때) 인 경우 악성 서비스를 생성하는 함수를 실행하게 된다. 악성 서비스는 아래 과정을 통해 생성된다.
SYSTEM\\CurrentControlSet\\Services\\AppService[a-z] 레지스트리를 생성 후 해당 서비스 레지스트리에 대한 항목을 아래와 같이 설정한다.
– Start : 0x02 (시스템이 시작할 때 자동으로 시작)
– imagepath : %SystemRoot%\System32\svchostexe -k AppService
생성할 서비스명과 해당 서비스를 통해 실행되는 파일은 아래와 같이 설정된다.
– SYSTEM\\CurrentControlSet\\ServicesAppService[a-z]\\Parameters:servicedll = %System%\인코딩된문자열.tmp
– SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Svchost:AppService =AppService[a-z]

서비스에 등록될 파일은 특정 위치에 존재하는 데이터를 디코딩하여 System 경로에 tmp 확장자로 생성한다. 생성되는 tmp 파일은 특정 레지스트리 키에 존재하는 인코딩된 “install.dat” 데이터를 디코딩하여 실행하는 Loader 역할을 수행한다. 이와 같은 과정은 사용자 PC 가 종료되고 재시작되는 경우에도 지속적인 악성 행위를 수행하기 위한 목적으로 보인다.

서비스 생성 후, System 폴더를 윈도우 디펜더 검사에서 예외 처리 후 첫번째 Thread 는 종료된다.

두번째로 실행되는 thread 는 %System%\svchost.exe -k SystemNetworkService 명령어로 프로세스를 생성하여 디코딩된 “install.dat” 데이터를 인젝션하는 기능을 수행한다.
injection 된 svchost.exe 는 이전과 동일한 과정을 거쳐 command line 을 검사하며 SystemNetworkServie 인자로 실행된 svchost.exe 인 경우 실제 악성 기능을 수행하게 된다. 해당 프로세스에 의해 아래 데이터를 포함한 다양한 사용자 정보를 탈취하여 공격자 서버에 전송하게 된다.
- VPN 연결 정보
- 클립보드 데이터
- 오디오 데이터
- 네트워크 공유 폴더 목록
- TCP 및 UDP 포트를 수락하고 있는 프로세스 정보
- 실행 중인 프로세스 파일 버전 정보
- C2 : email.yg9[.]me
위 악성 기능 외에도, C2 서버에 접속하여 공격자의 명령에 따라 파일 다운로드, 화면 캡처, 키로거, cmd 명령어 실행 등 다양한 악성 행위를 수행할 수 있다.
해당 악성코드는 불법 소프트웨어 설치 프로그램으로 위장하여 악성 사이트를 통해 불특정 다수를 대상으로 유포되고 있어, 사용자들은 관련 프로그램을 다운받지않도록 주의해야한다. 또한, 악성 파일이 서비스에 등록되어 사용자 몰래 지속적인 악성 행위를 수행할 수 있어 정기적으로 PC 를 점검해야한다.
[파일 진단]
- Trojan/Win.Generic.R420870 (2021.05.16.01)
- Malware/Win.Generic.R421780 (2021.05.21.03)
- Trojan/Win.Generic.C4512227 (2021.06.04.01)
- Trojan/Win.Generic.C4512246 (2021.06.04.01)
- Trojan/Win.Generic.R421722 (2021.08.17.03)
- Trojan/Win.Generic.R436809 (2021.08.17.03)
- Trojan/Win.Generic.R436811 (2021.08.17.03)
- Trojan/Bin.Encoded (2022.01.28.02)
[IOC 정보]
- 1fecb6eb98e8ee72bb5f006dd79c6f2f
- 5de2818ced29a1fedb9b24c1044ebd45
- 58efaf6fa04a8d7201ab19170785ce85
- 839e9e4d6289eba53e40916283f73ca6
- 89c8e5a1e24f05ede53b1cab721c53d8
- 5e6df381ce1c9102799350b7033e41df
- a29e7bbe6dee4eea95afa3f2e3a1705a
- 8ae40c8418b2c36b58d2a43153544ddd
- email.yg9[.]me
연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.

Categories:악성코드 정보
[…] [ASEC 블로그] Cryptbot 과 동일한 방식으로 PseudoManuscrypt 국내 유포 중 […]