메모리 패치를 이용해 보안 소프트웨어의 탐지를 회피하는 SweatRAT 악성코드가 발견됐다. 해당 악성코드는 윈도우 이벤트 기록 함수 EtwEventWrite와 AMSI(Antimalware Scan Interface) 관련 함수 AmsiScanBuffer의 시작 코드를 수정해 탐지를 우회한다. 또한, SweatRAT는 프로세스 할로잉을 이용해 정상 프로세스로 위장한 후 공격자가 운영하는 C&C 서버와 통신해 키로깅, 원격 제어 및 추가 파일 실행 등의 동작을 수행한다.
동작 순서
SweatRAT은 파이썬 스크립트를 PyInstaller로 패키징한 실행 파일인 “_OneDrive.exe”로 유포되며 실행 시 파일 내부에 저장된 PE 데이터를 디코딩한 후 .NET Assembly로 실행한다. 이후, 시작 프로그램 폴더에 바로가기를 생성해 지속성을 획득하고 SweatRAT의 페이로드를 정상 프로세스인 “aspnet_compiler.exe”에 할로잉해 실행한다.
_OneDrive.exe (Loader)
메모리 패치
SweatRAT은 가장 먼저 윈도우 보안과 관련된 함수인 EtwEventWrite와 AmsiScanBuffer의 코드를 패치해 탐지를 우회한다. EtwEventWrite는 윈도우 이벤트 추적 매커니즘인 ETW(Event Tracing for Windows)에서 제공하는 함수로 악성코드로 인해 발생하는 이벤트를 윈도우에 전달하며, AmsiScanBuffer는 AMSI(Anti-Malware Scan Interface) 서비스에서 악성코드를 검사하는 데 사용되는 함수이다. 패치된 EtwEventWrite 함수는 작업 성공을 나타내는 0을 반환하고 AmsiScanBuffer 함수는 인수 오류를 나타내는 0x80070057을 반환해 각 함수의 본래의 역할을 수행하지 못하도록 유도한다.
PE 디코딩
메모리 패치가 완료되면 파이썬 스크립트 내부에 저장된 PE 데이터를 Base64로 디코딩하고 Pythonnet 라이브러리의 Assembly를 이용해 해당 PE 데이터를 메모리에 로드 후 EntryPoint를 호출한다.
실행된 PE 페이로드는 현재 프로세스의 실행 파일인 로더를 ‘%LocalAppData%\Microsoft\_OneDrive.exe’ 경로에 자가 복제한 후 현재 프로세스의 실행 경로가 복제 경로와 동일한지 확인해 일치하지 않는다면 복제한 파일을 실행하고 현재 프로세스를 종료한다.
현재 프로세스의 실행 경로와 자가 복제 경로가 일치하면 해당 경로를 레지스트리에 등록한 후 CLSID를 이용해 WScript의 인스턴스를 만든다. WScript는 레지스트리에서 복제 파일의 경로 값을 읽어와 실행하는 바로가기를 시작 프로그램 폴더에 생성해 지속성을 획득한다.
- 레지스트리 등록 정보 : HKCU\Software\STD, DDD
= “%LocalAppData%\Microsoft\_OneDrive.exe”
자동 실행 등록을 완료하면 파일 내부에 하드코딩된 SweatRAT의 페이로드를 .NET 프레임워크의 구성 파일 중 하나인 “aspnet_compiler.exe”의 프로세스에 할로잉해 실행한다.
SweatRAT
키로깅
SweatRAT이 실행되면 ‘%AppData%\CCleaner.exe’ 경로에 자가 복제 후 복제된 파일을 작업 스케줄러에 등록해 지속성을 획득한다. 그리고 키보드 입력 이벤트가 발생했을 때 호출되는 LowLevelKeyboardProc 훅 프로시저를 이용해 사용자의 입력을 ‘%Temp%\Log.tmp’ 파일에 기록한다.
C&C 서버 연결
키로거 설치가 완료된 후 악성코드는 공격자가 운영하는 C&C 서버와 연결해 추가 명령어를 수신하고 파일 다운로드, 화면 캡처 및 원격 제어 등을 포함한 [표 1]의 동작을 수행한다.
서버 명령어 중 RemoteDesktop과 RD+는 감염된 시스템의 원격 제어를 목적으로 화면 해상도, 스크린샷 및 마우스 커서 등 사전 정보를 수집하는 역할을 한다. 수집된 정보는 서버로 전송하고 SweatRAT은 제어 명령을 기다린다.
서버로부터 Click 및 Key 명령을 수신하면 각각의 이벤트 발생 함수를 이용해 마우스 클릭과 키보드 입력을 제어하고, ScrollUp/Down 명령은 활성화된 창에 메시지를 전송해 스크롤 이동을 지시한다.
또한, UAC 명령어는 Process 클래스의 ProcessStartInfo.Verb 속성을 runas로 설정하고 cmd 명령어를 실행해 현재 프로세스를 관리자 권한으로 다시 시작하도록 한다.
SweatRAT은 보안 관련 함수의 메모리 패치로 보안 소프트웨어의 탐지를 회피할 수 있고, 프로세스 할로잉을 이용해 정상 프로세스로 위장할 수 있어 주의가 필요하다. 따라서, 출처가 불분명한 파일의 다운로드와 실행을 지양하고, 보안 프로그램과 OS를 항상 최신버전으로 유지할 것을 권고한다.
상기 악성코드는 잉카인터넷 안티바이러스 제품 TACHYON Internet Security 6.0에서 진단 및 치료가 가능하다.
'분석 정보 > 악성코드 분석 정보' 카테고리의 다른 글
SvcStealer, 정보 탈취 후 ClipBanker 유포 (0) | 2025.04.11 |
---|---|
NodeStealer, 페이스북 광고 관리자 계정 정보 탈취 (0) | 2024.12.31 |
HORUS Protector를 이용해 유포되는 Snake Keylogger (0) | 2024.12.09 |
텔레그램에서 판매 중인 Angry Stealer 악성코드 (2) | 2024.09.30 |
Teams 설치 파일로 위장한 Oyster 백도어 (2) | 2024.09.24 |