꿈을꾸는 파랑새

오늘은 암호화폐 탙취 목적 Kimsuky(김수키) 에서 Base64 를 악용한 악성코드-1.log에 대해서 알아보겠습니다. 해당 악성코드는 Base64로 인코딩이 돼 있는 악성코드입니다.
파일명:1.log
사이즈:1 MB
MD5:1b7dcceeac7397ad642ecc4b0bf78eb2
SHA-1:df25c0530ea60105c273fb965f3b6b7b959f8d65
SHA-256:5a559e17234a0e3a444b92d4c37206454ae003eae771d9e6c951d187caeb9bf3
해당 악성코드는 기본적으로 Base64로 인코딩이 되어져 있는 것이 특징입니다.

Base 64 로 인코딩 된 악성코드Base 64 디코딩
Base 64 로 인코딩 된 악성코드

악성코드 분석

PowerShell 스크립트는 정보탈취(Infostealer)+원격명령(RAT) 
을 함께 가진 악성코드
특히 브라우저 저장 로그인 정보/북마크, 크립토 지갑 확장 데이터,텔레그램 세션, 파일 목록(키워드 기반) 등을 수집해 C2(quemr(.)mailhubsec(.)com) 로 업로드 하고 이후에는 서버에서 내려주는 명령을 실행하는 구조로 되어 있는 악성코드입니다.
전체 동작 흐름 요약
1.피해자 식별자 생성
(Get-WmiObject Win32_ComputerSystemProduct).UUID 값을 $id로 사용
%TEMP%\$id 폴더 생성->수집 데이터 저장소로 사용
2.중복 실행 방지
%TEMP%\pid.txt에 현재 PID 기록
pid.txt가 있고 해당 PID 프로세스가 살아있으면 즉시 종료

가상 환경 여부 확인 부분
가상 환경 여부 확인 부분

3.가상환경,분석 회피

제조사 문자열에 VMware,Microsoft,VirtualBox 포함 시 KillMe 호출 후 종료
디스크 정보에 Virtual Disk,Virtual HD,Mware,Google PersistentDisk 포함 시 종료
KillMe 는 %LOCALAPPDATA%\pipe\ 아래 로그/스크립트 흔적을 지우려 시도

4.정보 수집

시스템, 프로세스,설치 프로그램 목록을 info.tx`로 수집
Windows Recent(최근 사용 파일 바로가기 .lnk)의 실제 대상 경로를 recent.txt로 덤프
브라우저(Edge,Chrome,Whale,Firefox) 데이터 및 확장(특히 암호 화폐 지갑) 가상화폐 지갑) 관련 DB/로그 복사
Telegram Desktop 세션,데이터 복사
드라이브 전체에서 문서, 이미지, 압축, 이메일,Level DB 로그 등 확장자 파일을 재귀 탐색해 파일 리스트 생성+특정 키워드 매칭 파일/폴더도 추가 기록
키워드: wallet|UTC--|blockchain|keystore|privatekey|metamask|phrase|ledger|password|myether|dcent

구글 크로미엄 엔진에서 암화 화폐 탈취파이어폭스 에서 브라우저 저장 해둔 비밀번호 탈취
구글 크로미엄 엔진에서 암화 화폐 탈취

5.압축+업로드(유출)
$storePath(수집 폴더)를 zip->init.dat 로 이름 바꾸고 C2로 업로드
파일 리스트도 lst.dat 로 만들어 업로드
업로드 전 로컬 임시 암호화: XOR 0xFE
6.지속성 확보
HKCU:\Software\Microsoft\Windows\CurrentVersion\Run
이름:WindowsSecurityCheck
값:%LOCALAPPDATA%\pipe\1.vbs
사용자가 로그인할 때마다 VBS가 실행되도록 등록

윈도우 레지스터리 등록 및 실행
윈도우 레지스터리 등록 및 실행

7.단계 페이로드 실행/키 탈취

지속성 확보를 위한 10 분 마다 실행
지속성 확보를 위한 10 분 마다 실행

GetAppKey 함수:
Google Drive에서 loader/base64 dll 을 내려받아 %TEMP%\app64.dll 로 저장 후->rundll32.exe app64.dll,c 실행
%TEMP%\cc_appkey 업로드
GetAppKey 가 Send에서 주석 처리되어 있고 대신 Work 루프에서 서버가 appkey 플래그를 주면 실행하게 되어 있음
8.C2 폴링 루프(원격 제어
10분(600초)마다 반복:
k.log 업로드 시도
/appkey 플래그 확인 존재 하면 GetAppKey 수행
/rd:서버가 지시한 파일을 읽어 업로드 (원격 파일 탈취)
/wr:서버가 내려준 파일을 지정 경로에 다운로드
/cm:서버가 내려준 문자열을 Invoke-Expression로 실행 해당 부분은 RAT, 이 아닐까 생각이 됩니다.

구글 드라이브 에서 파일 다운로드
구글 드라이브 에서 파일 다운로드

IOC

C2
hxxps://quemr(.)mailhubsec(.0com/
로컬 흔적
%TEMP%\pid.txt
%TEMP%\<UUID>\ 하위:info.txt,recent.txt,extensions.txt,각종 _LoginData,_Bookmark,_masterkey,지갑확장 관련 .ldb/.log
%LOCALAPPDATA%\init.dat (전송 전 임시)
%LOCALAPPDATA%\pipe\1.vbs (지속성 확보)
%LOCALAPPDATA%\pipe\1.ps1,%LOCALAPPDATA%\pipe\2.log 등 (KillMe가 삭제 시도)
일단 탐지를 하지 않는 보안 제품들이 많으니 조심을 하시는걸로...

공유하기

facebook twitter kakaoTalk kakaostory naver band