USB 꽂는 순간 퍼지는 코인 마이너, 어떻게 침투할까?

최근 국내에서 USB 저장장치를 매개로 전파되는 암호화폐 채굴 악성코드가 지속적으로 발견되고 있다. 전반적인 감염 흐름은 과거 USB 기반 공격과 유사하지만, 다단계 드로퍼 구조와 보안 제품 우회, 프로세스 은폐 등 한층 고도화된 기법이 함께 사용되고 있다. 이번 글에서는 이들 악성코드 중 최종 페이로드를 편의상 ‘PrintMiner’로 지칭하고, USB 전파 단계부터 최종 코인 마이너 실행까지의 최신 공격 흐름을 순차적으로 분석한다.

 

 

 

[그림 1] USB를 통해 전파되는 코인 마이너 악성코드 공격 흐름도

 

1. USB를 통한 전파
감염된 USB에는 겉으로는 “USB Drive.lnk” 파일이 보이지만, 실제로는 “sysvolume”, “USB Drive” 폴더가 숨김 속성으로 함께 존재한다. 윈도우 탐색기에서 폴더 옵션 → 보기 탭에서 ‘숨김 파일, 폴더 및 드라이브 표시’를 선택하면 숨겨진 “sysvolume”, “USB Drive” 폴더를 확인할 수 있다.

 

일반 사용자는 USB를 연결한 뒤 화면에 보이는 “USB Drive.lnk” 파일을 자연스럽게 더블 클릭해 실행하게 된다. 이 바로가기 파일은 “sysvolume” 폴더 하위에 존재하는 “u566387.vbs"와 같이, u로 시작하는 6자리 랜덤 숫자 이름의 VBS 악성 스크립트를 호출한다.

 

[그림 2] 감염된 USB 내의 파일들

 

VBS 악성코드는 동일 경로에 위치한 “u643257.bat” 형태의 BAT 스크립트를 추가로 실행하는 역할을 한다. BAT 스크립트는 “USB Drive” 폴더를 열어주는데, 이 폴더 안에는 원래 USB에 있던 사용자의 정상 파일들이 그대로 존재한다. 이 때문에 사용자는 평소처럼 USB를 사용하는 것처럼 느끼며, 악성코드 감염 사실을 눈치채기 어렵다.

 

추가로 BAT 스크립트는 “C:\Windows \System32\”와 같은 공백이 포함된 비정상 경로를 생성한 뒤, 드로퍼 악성코드인 “u211553.dat” 파일을 “printui.dll” 이름으로 복사한다. 그 다음, “%SystemDirectory%” 폴더에 존재하는 정상 파일 “printui.exe”를 “C:\Windows \System32\” 경로로 복사해 실행함으로써, 악성 DLL인 “printui.dll(u211553.dat)”이 정상 프로세스 “printui.exe”에 로드돼 실행되도록 한다.

 

[그림 3] 악성코드 설치 스크립트

 

2. 드로퍼
“printui.dll”는 드로퍼 악성코드로, 내부에 존재하는 또 다른 악성코드를 “%SystemDirectory%\svcinsty64.exe” 경로에 생성하고 실행한다. “svcinsty64.exe” 역시 드로퍼로 동작하며, 다음과 같은 작업을 수행한다.

 

  • “%SystemDirectory%\svctrl64.exe” 파일 생성 및 실행
  • 설정 파일인 “wlogz.dat”를 “%SystemDirectory%\wsvcz” 폴더에 생성한다.
  • 자식 프로세스로 “svctrl64.exe”를 실행한다.

마지막으로 “svctrl64.exe”는 최종 페이로드 역할을 하는 DLL을 “%SystemDirectory%” 경로에 “u826437.dll”과 같은 이름으로 생성하고, 이를 DcomLaunch 서비스에 등록해 시스템 부팅 시 자동 실행되도록 구성한다.

 

[그림 4] DcomLaunch 서비스에 등록된 악성코드

 

3. PrintMiner
DcomLaunch 서비스에 의해 실행되는 악성코드는 편의상 “PrintMiner”로 정리한다. PrintMiner는 윈도우 디펜더에서 자신의 설치 경로를 예외 폴더로 등록하고 전원 설정을 조정해 시스템이 대기 모드로 전환되지 않도록 제어한다. 또한, C&C 서버의 주소를 조회하고, 감염 대상 시스템의 CPU, GPU 등 하드웨어 정보를 수집해 전송한다.

 

그런 다음, “%SystemDirectory%\wsvcz” 폴더에 XMRig를 포함한 추가 페이로드를 다운로드 및 설치한다. 다운로드된 파일들은 암호화돼 있으며, 실행 과정에서 함께 복호화가 이뤄진다.

 

[그림 5] 복호화된 설치 파일들

 

“%SystemDirectory%\wsvcz\wlogz.dat” 경로에 위치하는 설정 파일은 [그림 6]과 같이 C&C 서버 IP 주소, 마이닝 관련 설정 정보, 설치된 악성코드 경로 등의 정보가 저장 및 갱신된다.

 

[그림 6] 업데이트된 설정 데이터

 

이후 PrintMiner는 2개의 주요 쓰레드를 생성한다. 바로 USB를 담당 쓰레드와 XMRig 실행 담당 쓰레드다.

 

먼저, USB 담당 쓰레드는 “USB Drive.lnk” 바로가기 파일을 생성하고 “sysvolume” 폴더에 USB 전파용 악성코드 및 VBS, BAT 스크립트를 생성하며, “USB Drive” 폴더에 사용자의 기존 파일들을 이동시키는 기능을 수행한다.

 

[그림 7] 검사 대상 프로세스 일부

 

XMRig 실행 담당 쓰레드는 현재 실행 중인 프로세스를 주기적으로 검사한 후 특정 프로세스들이 실행 중이지 않을 때에만 XMRig를 실행하고, 실행 중인 경우에는 종료한다.

 

검사 대상 프로세스에는 Process Explorer, TaskMgr, System Informer, Process Hacker 등 프로세스 모니터링 도구와 함께 다수의 게임 클라이언트가 포함된다. 이는 사용자가 프로세스를 점검할 때 XMRig 실행 흔적을 숨기고, 게임 실행 중에는 채굴로 인한 성능 저하로 사용자가 이상을 감지하지 못하도록 하기 위한 것으로 보인다.

 

XMRig 실행 인자: “-o r2.hashpoolpx[.]net:443 –tls –tls-fingerprint=AFE39FE58C921511972C90ACF72937F84AD96BA4C732ECF6501540E568620C2F –dns-ttl=3600 –max-cpu-usage=50”

 

[그림 8] 프로세스 트리

 

5. 결론
USB는 현재까지도 악성코드 유포에 빈번히 악용되는 매개체다. 과거 오토런(autorun.inf)을 이용한 자동 실행 방식과는 달리, 최근에는 사용자가 직접 바로가기 파일을 실행하도록 사회공학적 요소를 활용하는 방식이 주로 사용된다. 위 사례처럼, 악성코드는 숨김 폴더에 존재하고 “USB Drive”라는 이름의 바로가기 파일만 보게 된다. 사용자가 이를 실행하면 악성코드와 더불어 원래 USB에 있던 정상 파일까지 함께 보여주기 때문에 감염 여부를 직관적으로 인지하기가 매우 어렵다.

 

이번 사례에서 공격자는 다단계 드로퍼 구조와 다양한 우회 기법을 통해 최종적으로 XMRig 기반 코인 마이너를 설치했다. 특히 프로세스 감시와 게임 실행 감지 등을 통해 사용자 눈에 띄지 않도록 설계돼 있어 탐지가 쉽지 않다.

 

따라서 사용자들은 운영체제 및 설치된 소프트웨어의 최신 보안 패치를 적용해야 하며 V3 제품을 최신 버전으로 업데이트하는 기본적인 보안 관리가 필수적이다. 또한, 출처가 명확하지 않은 USB 사용을 지양하고, 알 수 없는 바로가기 파일 실행을 주의하는 등 일상적인 보안 습관을 통해 감염 위험을 줄일 수 있다.

 

 

 

출처 : AhnLab

02-553-2331
견적 요청
카카오톡 문의