
NWH Stealer의 정적 분석 및 페이로드 추출. Bun JavaScript Runtime을 통한 파일리스 실행, 메모리 내 클립보드 이미지 탈취(image/png), AWS/Cloudflare R2를 악용한 Cloud C2 유출에 대한 심층 분석 기능을 제공합니다.
Binary Ninja에서 로드된 NWH Stealer 샘플은 놀라운 기법을 드러냅니다. 이는 Bun(정당한 JavaScript 런타임)의 문자열, CLI 인수, 문서 링크를 대량으로 활용합니다. "Learn more about Bun" 및 Discord 초대 링크와 같은 정당한 텍스트를 삽입함으로써, 악성코드는 무해한 개발자 도구나 프레임워크로 위장하려 시도하며, .rdata 섹션에 진정한 악성 의도를 숨깁니다.
bun install --help / bun test --help / bun build --help – Bun CLI 사용법을 모방합니다 https://bun.com/docs / Join our Discord community: https://bun.com/discord – 공식 Bun 문서 및 커뮤니티 링크를 삽입합니다. markdown / ToAsymmetricMatcher / Invalid regex: bunx – 표준 Bun 오류 메시지 및 테스트 매처입니다. 난독화: 문자열 사이에 제어 문자와 ANSI 이스케이프 코드(예: [1m, [0m, \n)가 삽입되어 있어 정적 시그니처 스캔을 어렵게 만듭니다.
Living off the Land (LotL): Bun 런타임에서 정당한 문자열을 복사함으로써 NWH Stealer는 개발자 환경에 섞여 들어갑니다. AV 솔루션과 샌드박스는 "Bun"처럼 보이는 실행 환경에서 발생하는 트래픽이나 API 호출을 탐지할 가능성이 낮습니다. 문자열 난독화: 정당한 문자열을 암호화되거나 난독화된 페이로드 배열(data_143aba5b8)과 함께 삽입하면 실제 악성 지표를 분리하기가 훨씬 어려워집니다. 설계에 의한 회피: 악성코드 작성자는 개발자 또는 CI/CD 환경에서 스틸러의 존재를 위장하기 위해 인기 있는 현대적 개발자 도구(Bun)를 특별히 선택했습니다.

Binary Ninja에서 분석을 계속하면 NWH Stealer는 드로퍼와 실행 체인을 드러냅니다. 악성코드는 단순히 Bun인 척하는 것이 아니라, 공식 GitHub 저장소에 적극적으로 접속하여 정당한 bun-windows-x64 아카이브를 다운로드합니다. 그러나 이어지는 문자열은 다운로드한 페이로드를 회피 플래그와 함께 실행하도록 설계된 악성 PowerShell 실행 루틴을 노출합니다.
다운로드 URL: https://github.com/oven-sh/bun/releases/download/canary/bun-windows-x64-baseline.zip – 위장 스토리를 구축하거나 LOLBin으로 사용하기 위해 정당한 Bun 런타임을 다운로드합니다. 추출된 페이로드 경로: bun-windows-x64-baseline\bun-profile.exe bun-windows-x64-baseline\bun.exe PowerShell 실행 체인:
powershell
-NoProfile (사용자의 PowerShell 프로필 로드를 건너뜀)
-ExecutionPolicy Bypass (스크립트 실행 제한을 우회함)
-Command (인라인 명령을 실행함)
--revision / --version (정당한 버전 확인처럼 보이도록 다운로드한 페이로드의 인수로 사용될 가능성이 높음).
공급망 / GitHub 악용: 공식 github.com/oven-sh/bun 저장소에서 다운로드함으로써 스틸러는 알 수 없는 도메인을 차단하는 네트워크 필터를 우회합니다. LOLBin 실행: 다운로드한 bun.exe 또는 bun-profile.exe는 정당한 래퍼로 사용되어 악성 명령을 실행하며, 정상적인 개발자 활동에 섞여 들어갑니다. PowerShell 회피: -NoProfile 및 -ExecutionPolicy Bypass 플래그는 악성 스크립트가 시스템 정책이나 사용자 구성에 의해 차단되지 않고 실행되도록 보장하는 고전적인 기법입니다.

NWH Stealer의 중요한 섹션은 인메모리 페이로드 전달 메커니즘을 드러냅니다. http://localhost:data:;base64, 문자열과 V8 엔진 바이트코드(--filename, use asm, bytecode)의 존재는 스틸러가 파일리스 실행 기법을 사용함을 나타냅니다. 이는 Base64로 인코딩된 데이터 URI를 구성하고 이를 로컬에서 실행하며, 아마도 파일을 디스크에 쓰지 않고 실행 중인 환경에 악성 JavaScript/WebAssembly를 직접 주입하기 위한 것입니다.
Data URI 스킴: http://localhost:data:;base64 – localhost를 가리키는 인라인 Base64 페이로드를 구성합니다. 이는 네트워크 필터를 우회하고 메모리에서 코드를 실행하는 알려진 기법입니다. V8 / Node.js / *Bun 내부 구조: // @bun / bun-cjs / bytecode – Bun 런타임이 JavaScript 또는 사전 컴파일된 V8 바이트코드를 실행하는 데 사용하는 특정 플래그입니다. --filename / --dirname / use asm – 메모리에서 원시 WebAssembly 또는 JavaScript 모듈을 로드하고 최적화하는 데 사용되는 V8 엔진 플래그입니다. 컴파일된 페이로드 아티팩트: bundler\bundle_v2.zig – Bun 번들러를 참조하며, 위장 스토리를 더욱 강화합니다. SEHRefreshSigS / SEHRefreshSigS_57azaspm – Base64 페이로드에 대한 난독화된 함수 이름 또는 암호화 키로 보입니다. 파일리스 주입 지표: seTaskComplete.read_file / resolve – 비동기 파일/스트림 읽기 및 모듈 해석 루틴입니다.
파일리스 실행 (회피): data:;base64 URI를 사용함으로써 이 스틸러는 페이로드를 전적으로 메모리에서 실행합니다. 이는 AV가 스캔할 실행 파일을 디스크에 남기지 않아 전통적인 시그니처 기반 탐지를 우회합니다. Localhost 악용: localhost 접두사는 방화벽과 EDR이 트래픽을 내부 트래픽(따라서 안전하다고)으로 착각하게 만드는 반면, 실제 악성 콘텐츠는 디코딩되어 실행됩니다. V8 바이트코드 악용: --filename 및 use asm을 통해 바이트코드를 로드한다는 것은 스틸러가 원시 컴파일된 JavaScript/WebAssembly를 실행할 수 있음을 의미하며, 이는 일반 텍스트 스크립트보다 리버스 엔지니어링을 훨씬 어렵게 만듭니다. Bun 런타임 악용: // @bun 및 bun-cjs 문자열은 스틸러가 다운로드한 Bun 런타임을 악성 인메모리 코드의 합법적인 실행 엔진으로 사용하고 있음을 확인시켜 줍니다.
Living off the Cloud: 합법적인 클라우드 서비스(AWS, Cloudflare R2)를 사용함으로써 스틸러는 유출 트래픽을 정상적인 기업 클라우드 사용과 섞어 탐지를 극히 어렵게 만듭니다

이 섹션은 NWH Stealer가 클라우드 인프라와 개발자 자산을 표적으로 삼는 방식을 추가로 드러냅니다. 단일 하드코딩된 C2 IP에 의존하는 대신, 이 악성코드는 주요 클라우드 제공업체(Cloudflare R2, AWS), 개발자 툴체인(Visual Studio, Node.js), 그리고 HTTP 상태 코드에 대한 문자열을 포함합니다. 이는 동적 C2 해석 또는 클라우드 환경을 겨냥한 광범위한 자격 증명 수집 목록을 나타냅니다.
클라우드 및 C2 인프라: r2.cloudflarestorage.com – Cloudflare R2 스토리지(데이터 유출 또는 페이로드 호스팅에 사용). amazonaws.com – AWS 인프라(자격 증명 탈취를 표적으로 하거나 C2 릴레이로 사용될 가능성). us-east-1 – AWS 리전 식별자(S3 버킷 표적화에 사용). 개발자 / IDE 표적 (자격 증명 수집): NDARD.STANDARD.TA.INTELLIGENT.I / ERING.EXPRESS..ONEZONE.ONEZONE.IA – Visual Studio / IntelliJ를 참조하는 명백히 난독화/분할된 문자열. GLACIER.GLACIER.IR.REDUCED.REDU – AWS Glacier(백업/아카이브 서비스) 참조. 클라우드 권한 플래그 (측면 이동 / 권한 상승용): private / public-read / private-read-write / aws-exec-read **bucket-owner-read **/ bucket-owner-full-control
클라우드 자격 증명 탈취: AWS/GCP/Cloudflare 문자열과 S3 ACL 권한의 존재는 이 스틸러가 피해자 머신에서 클라우드 액세스 키, IAM 토큰, 버킷 구성을 특별히 노리고 있음을 의미합니다. 데이터 유출: r2.cloudflarestorage.com과 amazonaws.com은 스틸러들이 탈취한 데이터를 업로드하는 데 흔히 악용됩니다. 클라우드 스토리지 도메인은 방화벽에서 차단되는 경우가 거의 없기 때문입니다. 개발자 겨냥: devDependencies, Visual Studio, IntelliJ에 대한 참조는 이 스틸러가 클라우드 자격 증명의 가치가 매우 높은 소프트웨어 개발자와 CI/CD 파이프라인을 겨냥하고 있음을 나타냅니다. 동적 C2: 다양한 상태 코드(200 OK, 404 Not Found 등)는 악성코드가 HTTP 응답을 파싱하여 C2 통신을 동적으로 적응시킨다는 것을 시사합니다 클라우드 악용(Living off the Cloud): 합법적인 클라우드 서비스(AWS, Cloudflare R2)를 사용함으로써 스틸러는 유출 트래픽을 정상적인 기업 클라우드 사용과 섞어 탐지를 극히 어렵게 만듭니다

NWH Stealer의 최종 분석은 그 진정한 목적을 드러냅니다. Bun 위장 아래에서 실제 페이로드는 클립보드 데이터를 가로채고 분석하도록 설계된 전용 함수(sub_140207e80)를 포함하고 있습니다. 특정 이미지 형식(image/png, image/webp, JFIF)을 모니터링함으로써 이 스틸러는 암호화폐 지갑 주소, 비밀번호, 민감한 스크린샷을 노립니다. 교차 참조와 임포트된 API 목록은 전형적인 자격 증명 탈취 동작을 확인해 줍니다.
클립보드 모니터링 루틴: IsClipboardFormatAvailable / RegisterClipboardFormatA / OpenClipboard – 민감한 데이터가 복사되는지 지속적으로 확인합니다. "image/png", "image/webp", "JFIF" – 표적이 되는 클립보드 형식으로, 암호화폐 지갑 QR 코드나 개인 키가 담긴 스크린샷을 탈취하는 데 자주 사용됩니다. 임포트된 네이티브 API (교차 참조 및 심볼): NtQueryInformationProcess / NtSetInformationProcess – 고급 프로세스 조작(안티 디버깅 또는 인젝션용으로 추정). NtCreateNamedPipeFile / NtDeviceIoControlFile – 저수준 IPC 및 드라이버 통신(은밀한 데이터 전송). NtFreeVirtualMemory / NtQueryVirtualMemory – 수동 메모리 관리(메모리 스캐너 회피). Ordinal_WSOCK32 – Winsock을 통한 네트워크 통신(C2 또는 데이터 유출용으로 추정). MiniDumpWriteDump – !!! 이것은 거대한 위험 신호입니다. 이 스틸러가 비밀번호를 추출하기 위해(예: LSASS에서) 프로세스 메모리를 덤프하고 있음을 나타냅니다.
클립보드 하이재킹 (암호화폐 탈취): image/png 또는 webp를 지속적으로 확인한다는 것은 사용자가 암호화폐 지갑 주소나 2FA QR 코드를 복사할 경우 악성코드가 즉시 이를 바꿔치기하거나 탈취한다는 의미입니다. 자격 증명 덤핑: MiniDumpWriteDump의 존재는 이 스틸러가 Windows 로그인 비밀번호를 추출하기 위해 핵심 프로세스(예: lsass.exe)의 메모리를 덤프할 수 있음을 확인해 줍니다. 저수준 회피: 표준 Win32 API(예: ReadProcessMemory) 대신 네이티브 Nt* API를 사용함으로써 악성코드는 EDR 솔루션이 배치한 사용자 모드 후크를 우회할 수 있습니다. 데이터 유출: WSOCK32와 NtCreateNamedPipeFile은 탈취한 클립보드 및 메모리 데이터를 공격자에게 다시 전송할 수 있는 여러 채널(직접 네트워크 또는 로컬 파이프)을 제공합니다. 진짜 페이로드: 이 섹션은 외부 레이어가 합법적인 "Bun" 개발자 도구인 척하는 반면, 핵심 기능은 완전한 능력을 갖춘 정보 탈취기이자 클립보드 하이재커임을 입증합니다.