일본 사용자들을 대상으로 유포 중인 인포스틸러

ASEC(AhnLab Security Emergency response Center)에서는 최근 일본 사용자들을 대상으로 성인 게임을 위장한 정보 탈취형 악성코드가 유포 중인 것을 확인하였다. 유포 경로는 확인되지 않지만 성인 게임이기 때문에 토렌트나 불법 공유 사이트를 통해 유포되고 있는 것으로 추정된다.

성인 게임을 위장하여 악성코드를 유포하는 방식은 국내에서도 자주 사용되는 방식이다. 공격자는 알려진 악성코드 대신 직접 제작한 것으로 보이는 악성코드들을 사용하였으며, PDB 정보를 통해 Stellar, ReceiverNeo라는 이름을 확인할 수 있었다. 다음 경로들은 악성코드가 탐지된 경로이며 여기에서 다룬 유형 외에도 다양한 성인 게임에 포함되어 유포된 것으로 추정된다.

  • %UserProfile%\Desktop\bubbledehousede_trial\バブルdeハウスde〇〇〇 体験版\
  • %UserProfile%\Download\anim_あねつまみ 体験版\

일반적으로 이러한 성인 게임은 압축 파일로 유포되며 다음과 같은 형태를 가지고 있다. 압축 해제 폴더 안에 있는 “Start.exe”가 게임의 런처 프로그램이며, “Lib” 폴더에는 게임 프로그램이 사용할 라이브러리 파일들이 존재한다.

Figure 1. 정상적인 게임 설치 폴더

악성코드 또한 압축 파일로 유포되었으며 차이점이 있다면 “Lib” 폴더에 악성코드가 포함되어 있다는 점이다. 악성코드 루틴을 보면 다음과 같은 형태일 것으로 추정된다. 드로퍼 악성코드는 “Sound.dll” 이름으로 존재하며, 대신 원본 “Sound.dll”은 “SoundDX.dll” 이름을 갖는다. 이외에도 방화벽을 설정하는 악성코드가 “Vorbis64.dll”이라는 이름으로 존재한다.

Figure 2. 악성코드가 포함된 Lib 폴더


1. DLL 하이재킹을 이용한 악성코드 실행

Figure 3. 프로세스 트리

악성코드는 DLL 하이재킹 방식을 통해 실행된다. 게임 프로그램인 “Start.exe”가 실행되면 “Lib” 폴더에 존재하는 “Sound.dll”을 로드하는데, 공격자는 악성코드를 “Sound.dll” 경로에 두었기 때문에 정상 라이브러리 파일 대신 악성코드가 로드된다. 악성 “Sound.dll”은 정상 파일처럼 위장하고 있으며 실제 Export 함수들도 동일하다.

Figure 4. 정상 라이브러리를 위장한 악성코드

“Start.exe”가 동작 과정에서 정상 “Sound.dll”의 특정 함수를 실행하려고 시도할 경우 악성코드 “Sound.dll”는 동일 경로에 존재하는 “SoundDX.dll”의 해당 함수가 실행되도록 한다. 악성 루틴은 DllMain() 함수에 존재하기 때문에 DLL 로드 시 바로 실행되며, 정상 라이브러리에 대한 함수 호출도 지원하기 때문에 성인 게임 자체도 정상적으로 동작한다. 이에 따라 사용자들은 게임이 정상적으로 동작하는 것으로 인지하게 되며, 동시에 게임과 함께 악성 루틴도 실행된다.


2. 드로퍼 악성코드

“Sound.dll”은 드로퍼 악성코드이다. 파일 내부의 .data 섹션에 실제 인포스틸러 악성코드들을 가지고 있다가 다음과 같은 경로에 생성한다.

  • %APPDATA%\Roaming\SakuradaInc\UpdChk.exe
  • %APPDATA%\SakuradaInc\UpdChk.exe.config
  • %TEMP%\taskdiskmgr.exe
  • %TEMP%\taskdiskmgr.exe.config
Figure 5. .data 섹션에 존재하는 악성코드들

생성된 악성코드들 중에서 “taskdiskmgr.exe”는 직접 실행하고, “UpdChk.exe”는 “App”이라는 이름으로 작업 스케줄러에 등록하여 8시간마다 실행될 수 있도록 한다.

Figure 6. 생성한 악성코드들을 실행시키는 명령

“Sound.dll”는 위와 같은 드로퍼 기능 외에도 권한 상승을 통해 또 다른 악성코드를 실행시키는 루틴도 존재한다. “Lib” 폴더에는 “Sound.dll” 외에도 “Vorbis64.dll“가 존재하는데, “Sound.dll”은 UAC 우회 방식을 이용해 “Vorbis64.dll”이 관리자 권한으로 실행될 수 있도록 한다.

“Sound.dll”은 .NET의 Code Profiling 기능을 악용하는 방식으로 UAC를 우회한다. 다음과 같은 레지스트리 키는 관리자 권한 없이도 쓸 수 있는데, 해당 키에 악성 DLL의 경로를 지정하고 “mmc.exe”를 실행할 경우 “mmc.exe” 프로세스에 지정한 DLL이 로드되어 실행된다. 문제는 “mmc.exe”가 UAC 프롬프트의 팝업 없이도 관리자 권한으로 실행되는 프로그램임에 따라 결국 관리자 권한 없이도 UAC 프롬프트의 팝업 없이도 관리자 권한으로 실행될 수 있는 것이다.

Figure 7. UAC 우회 루틴

“Sound.dll”이 생성하는 악성코드들은 인포스틸러이며 이에 따라 탈취한 정보를 C&C 서버에 전송해야 한다. 공격자는 이를 위해 방화벽을 설정하여 설치한 악성코드들의 네트워크 행위를 허용케 할 필요가 있다. “Vorbis64.dll”은 이러한 기능을 담당하며, 방화벽 작업 시 관리자 권한을 필요로 하기 때문에 UAC 우회 방식을 통해 “Vorbis64.dll”을 관리자 권한으로 동작시키는 것이다.

Figure 8. 방화벽 설정 루틴


3. 인포스틸러 악성코드

3.1. Stellar

최초로 실행되는 “taskdiskmgr.exe”는 웹 브라우저, FTP 클라이언트, 비밀번호 관리자, 암호화폐 지갑 파일 등 다양한 사용자 정보들을 탈취하는 인포스틸러 악성코드이다. 악성코드 제작자는 해당 악성코드를 Stellar라는 이름으로 제작하였으며, 다음과 같은 PDB 정보를 통해 확인 가능하다.

  • 악성코드 PDB 정보 : C:\Users\Visual\Documents\Visual Studio 2015\Projects\Stellar\Stellar\Stellar\obj\Release\Informatiq.pdb

Stellar는 먼저 “%TEMP%\2568da71-f70d-4fb2-b12c-2e277b618cbe”와 같은 폴더를 생성하는데, 여기에는 이후 과정에서 탈취한 정보들이 저장된다.

Figure 9. Stellar의 Main 루틴
분류상세
기본 정보OS 정보, 사용자 이름, 프로세스 목록.
웹 브라우저 계정 정보Chrome, FireFox, Edge.
이메일 클라이언트 계정 정보Thunderbird.
FTP 클라이언트 계정 정보NextFTP, WinSCP.
비밀번호 관리자KeePass, 1Password.
암호화폐비트코인
사용자 파일바탕화면(%USERPROFILE%\Desktop\), 문서(%USERPROFILE%\Documents\) 폴더 내의 파일들.
기타Dropbox, Putty.
Table 1. 정보 탈취 대상

바탕화면과 문서 폴더에 존재하는 파일들의 경우 특정 키워드를 포함하는 파일명이거나 특정 키워드를 포함하는 폴더 안에 존재하는 파일들이 탈취 대상이 된다. 비트코인의 경우도 설치 경로에 존재하는 특정 이름의 파일들이 탈취 대상이 된다. 다음은 각각의 목록이다.

Figure 10. 탈취 대상 파일 및 폴더 이름
  • 바탕화면(%USERPROFILE%\Desktop\) 폴더에 존재하는 사용자 파일들 (파일 이름) : “.fmp12”, “.fm7”, “Admin”, “admin”, “1PasswordExport”, “.1pux”, “.kdbx”, “.keyx”, “kdb”, “wallet”, “Vpn”, “vpn”, “Ftp”, “PASS”, “ftp”, “Backup”, “backup”, “パスワード”, “メモ”, “めも”, “memo”, “Memo”, “MEMO”, “アカウント”, “account”, “Account”, “ACCOUNT”, “id”, “Id”, “ID”, “pw”, “Pw”, “PW”, “pass”, “Pass”, “サーバ”
  • 바탕화면(%USERPROFILE%\Desktop\) 폴더에 존재하는 사용자 파일들 (폴더 이름) : “Wallet”, “wallet”, “Vpn”, “vpn”, “Ftp”, “PASS”, “ftp”, “Backup”, “backup”, “パスワード”, “メモ”, “めも”, “memo”, “Memo”, “MEMO”, “アカウント”, “account”, “Account”, “ACCOUNT”, “id”, “Id”, “ID”, “pw”, “Pw”, “PW”, “pass”, “Pass”, “PASS”, “サーバ”,”Admin”, “admin”,”ADMIN”
  • 문서(%USERPROFILE%\Documents\) 폴더에 존재하는 사용자 파일들 (파일 이름) : “Admin”, “admin”, “1PasswordExport”, “.1pux”, “.kdbx”, “.keyx”, “.kdb”, “wallet”, “Vpn”, “vpn”, “Ftp”, “PASS”, “ftp”, “Backup”, “backup”, “パスワード”, “メモ”, “めも”, “memo”, “Memo”, “MEMO”, “アカウント”, “account”, “Account”, “ACCOUNT”, “id”, “Id”, “ID”, “pw”, “Pw”, “PW”, “pass”, “Pass”, “サーバ”
  • 문서(%USERPROFILE%\Documents\) 폴더에 존재하는 사용자 파일들 (폴더 이름) : “Wallet”, “wallet”, “Vpn”, “vpn”, “Ftp”,”PASS”, “ftp”, “Backup”, “backup”, “パスワード”, “メモ”, “めも”, “memo”, “Memo”, “MEMO”, “アカウント”,”account”, “Account”, “ACCOUNT”, “id”, “Id”, “ID”, “pw”, “Pw”, “PW”, “pass”, “Pass”, “PASS”, “サーバ”, “Admin”, “admin”, “ADMIN”
  • 비트코인 설치 폴더에 존재하는 설정 파일들 (파일 이름) : “banlist.dat”, “fee_estimates.dat”, “mempool.dat”, “peers.dat”, “db.log”, “debug.log”, “.lock”

수집한 정보 및 파일들은 C&C 서버에 HTTP로 접속하여 POST 방식으로 전송한다. Stellar는 다양한 사용자 파일들을 탈취하기 때문에 수집한 파일들을 나누어서 전송한다.

Figure 11. 수집한 정보를 탈취하는 루틴

대부분의 정보 탈취 루틴들은 이미 알려진 인포스틸러 악성코드의 방식과 동일하지만 Edge 웹 브라우저의 경우 파워쉘의 PasswordVault를 이용한다는 점이 특징이다. 참고로 Stellar는 보안 제품의 AMSI로 인해 PasswordVault 파워쉘 명령이 차단되는 것을 방지하기 위해 해당 명령을 실행하기 이전에 AMSI 비활성화를 시도한다.

Figure 12. PasswordVault를 이용한 Edge 계정 정보 수집

AMSI 비활성화는 위의 어셈블리를 통해 이루어지는데, Stellar는 내부에 문자열로 존재하는 DLL을 로드한 후 AMSI 비활성화를 담당하는 off() 함수를 호출한다. off() 함수는 AmsiScanBuffer() 함수를 패치하여 이후 Stellar에서 실행하는 파워쉘 명령이 AMSI의 버퍼에 전달되지 않도록 한다.

Figure 13. AmsiScanBuffer를 비활성화하는 루틴

마지막으로 탈취한 정보가 저장되어 있는 폴더를 삭제하고, 레지스트리 키 “HKCU\Software\Kdslnc”의 “Id” 항목에 랜덤한 문자열을 쓴 후 종료한다.


3.2. ReceiverNeo

작업 스케줄러에 등록되어 주기적으로 실행되는 “UpdaChk.exe”는 감염 시스템의 스크린샷을 탈취하는 정보 탈취형 악성코드이다. PDB 정보를 보면 악성코드 제작자는 해당 악성코드를 ReceiverNeo라는 이름으로 제작하였다.

  • 악성코드 PDB 정보 : C:\Users\Visual\Documents\Visual Studio 2015\Projects\ReceiverNeo\ReceiverNeo\ReceiverNeo\obj\Release\UpdateCheck.pdb

ReceiverNeo는 위의 Stellar가 설정한 레지스트리 키 즉, “HKCU\Software\Kdslnc”의 “Id” 항목을 검사한 후 해당 키가 존재하지 않을 경우에는 동작하지 않고 종료한다. 공격자는 Stellar가 먼저 동작하도록 설계하고 이후 주기적으로 스크린샷을 탈취하는 ReceiverNeo가 동작하도록 하였다.

Figure 14. ReceiverNeo의 정보 Main 루틴

스크린샷은 “%TEMP%\29b4f6eb-ef41-4563-a989-c3d2ca47dbe5\scrnshot.jpg”와 같은 경로에 저장된다. ReceiverNeo는 단순하게 스크린샷을 탈취하는 기능이 전부이며, 저장된 스크린샷은 Stellar처럼 C&C 서버에 전송된다.


4. 결론

최근 일본 사용자들을 대상으로 성인 게임을 위장한 인포스틸러 악성코드가 활발하게 유포되고 있어 사용자의 주의가 필요하다. 자료 공유 사이트에서 다운로드한 실행 파일은 각별히 주의해야 하며, 유틸리티 및 게임 등의 프로그램은 반드시 공식 홈페이지에서 다운로드하는 것을 권장한다. 사용자들은 V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.

파일 진단
– Trojan/Win.Generic.C5424217 (2023.05.09.01)
– Trojan/Win.InfoStealer.C5424223 (2023.05.09.01)
– Infostealer/Win.Agent.C5424884 (2023.05.10.03)
– Infostealer/Win.Agent.C5424920 (2023.05.10.03)
– Dropper/Win.Agent.C5424923 (2023.05.10.03)
– Dropper/Win.Agent.C5424924 (2023.05.10.03)

행위 진단
– Malware/MDP.Infostealer.M2499

IOC
MD5

– 0e4d58680ea90bc4840694571e823a58 : Dropper (Sound.dll)
– 393a9015d6ccfa61b9f3824fdf00fb61 : Trojan (Vorbis64.dll)
– a6c9ef96866913cd0a9443061451a43c : Dropper (hid.dll)
– 1ec7fdd8444138c84ae766cdee8dcb4b : Dropper (hid.dll)
– ac513b749dc1c9f73eae5598dac651ea : Dropper
– db6659f917ddc2f28cd38dc4be86bb90 : Stellar (taskdiskmgr.exe)
– 4ab2be7e1f935f498577cbcc15684ed9 : Stellar (taskdiskmgr.exe)
– 886a071fecc488cbdb7ca3f1f7e8585d : Stellar (taskdiskmgr.exe)
– 6413a1dd52a0335cf774be770eab151f : Stellar (Update.exe)
– c06b7f31b91f1386f7453fe52e6f9ce5 : ReceiverNeo (updchk.exe)
– 75663b7e5879317a182b06eb9f273b7a : ReceiverNeo (UpdateCheck.exe)

C&C 주소
– hxxp://hokuto-kyoto[.]jp/Library/books/index.php : Stellar
– hxxp://kyoto-senbon.or[.]jp/info/news/index.php : Stellar
– hxxps://gestiss[.]org/news_/data/index.php : ReceiverNeo
– hxxp://kyoto-med[.]jp/news/index.php : ReceiverNeo

연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.

0 0 votes
별점 주기
Subscribe
Notify of
guest

0 댓글
Inline Feedbacks
View all comments