Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/macawad/whatsapp-valleyrat-analysis
Indicator of Compromise (IOC) ManagementStatic AnalysisDynamic Analysis (Sandboxing)Reverse EngineeringMalware AnalysisDigital ForensicsBinary AnalysisThreat Intelligence

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Papers & Research
Incident Response
GitHubmacawad/whatsapp-valleyrat-analysis

whatsapp-valleyrat-analysis

WhatsApp으로 전달되는 Winos 4.0 / ValleyRAT 스테이저: DLL 사이드로딩, BYOVD를 통한 Defender 무력화(CVE-2026-36425), TCP 443 상의 사용자 지정 C2 프로토콜, 그리고 이전에 보고되지 않은 C2 인프라.

저장소 보기
112일 전아직 검토되지 않음

WhatsApp 악성코드 분석: BYOVD AV 킬러를 동반한 Winos 4.0 / ValleyRAT 스테이저

저자: Mac Awad, 사이버 보안 학생 (Certificate IV, TAFE Queensland) · LinkedIn 날짜: 2026년 10월 30일 ~ 11월 1일 (시간은 AEST, UTC+10 기준) 상태: ASD의 ACSC (ReportCyber), ThreatFox 및 도메인 등록기관에 신고됨

탈취된 WhatsApp 계정에서 전송된 "결제 명세서" ZIP 파일은 알고 보니 Winos 4.0 / ValleyRAT 스테이저였다. 격리된 랩 환경에서 이 악성코드는 서명된 취약한 드라이버를 이용해 Microsoft Defender를 종료시킨 뒤, TCP 443 상의 사용자 정의 바이너리 프로토콜을 통해 이전에 보고된 적 없는 C2 도메인으로 비콘을 전송했다. 수동 OSINT를 통해 C2를 홍콩에 위치한 일회용 Windows 서버 풀로 추적했다.

요약

  • 전달 방식: 탈취된 비즈니스 연락처로부터 온 WhatsApp 메시지, ZIP > VHD > 서명된 EXE + 숨겨진 DLL (DLL 사이드로딩)
  • 방어 우회: Mark-of-the-Web 우회 (VHD), RC4 암호화 문자열, UAC 우회, BYOVD: OPSWAT ardrv.sys (CVE-2026-36425)를 이용해 Microsoft Defender 종료
  • C2: wwwapko[.]top → 156.234.7[.]71, 원시 TCP/443 (TLS 아님), 16바이트 hello, 약 67초마다 비콘 전송
  • 인프라: 도메인은 공격 2일 전에 등록됨; C2는 홍콩에 위치한 신규 Windows Server 2022 박스이며, 그 기본 호스트명은 하루 전 156.234.7[.]170에서도 나타나는데, 이는 IP 변경 전의 동일 서버일 가능성이 높음
  • 계열: VirusTotal YARA 규칙은 이를 Winos 4.0 / ValleyRAT 스테이저로 식별하며, 이는 Silver Fox 그룹에 귀속된 Gh0st RAT의 후손임
  • 코드: Ghidra에서 리버싱함; 다중 드라이버 AV 킬러, 두 가지 UAC 우회, 한 쌍의 워치독, 그리고 미끼용 Microsoft 트래픽을 포함한 15개 함수를 매핑함
  • 신규 정보: C2 도메인이나 IP에 대한 공개 보고서를 찾지 못했으며, ThreatFox에 최초로 신고함

공격 체인

flowchart TD
    A[WhatsApp lure<br/>from hijacked contact] --> B[ZIP]
    B --> C[VHD mounted as drive<br/>no MOTW warning]
    C --> D[Signed SETTINGM.exe<br/>sideloads hidden Is.Dll]
    D --> E[Stage in Users\Public\Libraries<br/>relaunch via rundll32]
    E --> F[UAC bypass]
    F --> G[Drop ardrv.sys<br/>kill Defender]
    G --> H[Beacon to wwwapko.top<br/>TCP 443, every ~67 s]
    H --> I[Next stage: Winos 4.0<br/>online module, not received]

1. 전달

WhatsApp 유인 메시지, 연락처 흐림 처리

이 메시지는 전형적인 인보이스 사기 수법을 사용했습니다: 긴급성("이 결제 격차를 해결하세요"), 권위("재무 책임자에게 전달하세요"), 그리고 플랫폼 유도("컴퓨터에서 열어보세요", 페이로드가 Windows에서만 실행되기 때문). 계정 소유자는 47분 후 스팸 경고를 보냈으며, 이는 계정이 탈취되었음을 확인시켜 줍니다.

계정 소유자의 경고, 연락처 흐림 처리

2. 정적 분석

파일크기비고
E-statement Proforma Invoice (2).zip2.9 MB래퍼
10301023482034.vhd6.3 MB동적 VHD, exFAT, 볼륨 레이블 "Business", UTC+8 시계 기준 10월 30일 02:24 UTC에 빌드됨
I1030102341.exe360 KB정품 Menksoft SETTINGM.exe (2017), 유효하게 서명됨; Is.dll에서 3개 함수를 임포트함
Is.Dll4.28 MB악성, Hidden + System, 2026년 10월 29일 17:03 UTC에 컴파일됨, 내보내기 이름 MSEdgeWebView.dll

Kali에서 본 VHD 내용: 숨겨진 Is.Dll이 Linux에서 보임

Is.Dll의 주요 발견 사항:

  • 호스트가 필요로 하는 세 가지 함수를 내보내며, 추가로 rundll32를 통해 자신을 재실행하는 데 사용되는 가짜 vcruntime140_1_app도 내보냄
  • 중국어 이름(正在으로 시작)과 엔트로피 7.49를 가진 1.33 MB 섹션 (패킹된 페이로드)
  • OneDrive 데이터로 위장한 리소스; 그중 세 개(SETTINGSDATABASE, SYNCENGINEDATABASE, UXDATABASE)는 암호화된 페이로드임
  • 평문으로 된 다운로드 대체 수단: curl -L -s -o, bitsadmin /transfer, certutil -urlcache, msiexec /qn
  • 16진수로 저장되고 RC4로 암호화된 구성 문자열, 키 = ASCII 문자열 3DC0C2FE338F567442B73E4B644B4F1A

복호화기 (정적, 샘플을 절대 실행하지 않음):

import re, sys
key = b'3DC0C2FE338F567442B73E4B644B4F1A'
def rc4(k, d):
    S = list(range(256)); j = 0
    for i in range(256):
        j = (j + S[i] + k[i % len(k)]) % 256; S[i], S[j] = S[j], S[i]
    i = j = 0; out = bytearray()
    for b in d:
        i = (i + 1) % 256; j = (j + S[i]) % 256; S[i], S[j] = S[j], S[i]
        out.append(b ^ S[(S[i] + S[j]) % 256])
    return bytes(out)
data = open(sys.argv[1], 'rb').read()
for m in re.finditer(rb'(?:[0-9A-F]\x00){16,}', data):
    h = m.group().decode('utf-16le')
    if len(h) % 2: continue
    pt = rc4(key, bytes.fromhex(h))
    if sum(32 <= c < 127 for c in pt) > 0.85 * len(pt):
        print(pt.decode()[:150])

복호화된 문자열에서 드러난 내용:

  • 취약한 드라이버 장치: \\.\HWAudioX64, \\.\ardrv, \\.\Alinubx
  • AV 종료 목록: Defender, CrowdStrike, SentinelOne, Sophos, Kaspersky, ESET, Bitdefender, Trend Micro, K7, 360, AhnLab 등에 걸쳐 227개의 프로세스 이름
  • UAC 우회: HKCU\Software\Classes\ms-settings\shell\open\command + ComputerDefaults.exe, 그리고 CMSTPLUA 권한 상승 모니커 {3E5FC7F9-9A51-4367-9063-A120244FBEC7}
  • 스테이징 경로: C:\Users\Public\Libraries\<random>\<random>

3. 동적 분석 (격리된 랩)

설정: Windows 11 VM(Defender 켜짐, Sysinternals Procmon, Process Explorer, Autoruns)과 가짜 인터넷 역할을 하는 Kali VM(INetSim, 작은 가짜 DNS 스크립트, tcpdump)을 실제 인터넷이 없는 사설 VMware LAN 세그먼트에 구성했다. 각 실행 전에 깨끗한 스냅샷을 사용했다.

시간관찰 내용
21:40VHD가 "Business"로 마운트됨; EXE만 보이고 창은 나타나지 않음
21:40키트가 C:\Users\Public\Libraries의 숨겨진 무작위 이름 폴더 3개에 복사되고, 호스트 EXE는 OneDrive 파일 이름(SafeDelete.db-wal.exe, telemetry-dll-ramp-value.exe, SyncEngineDatabase.db.exe)으로 이름이 변경됨
21:40재실행: rundll32.exe "...\IS.dll",vcruntime140_1_app
21:40:2517,744바이트 드라이버를 드롭하고 커널 서비스 ardrv 생성(OPSWAT, 서명 검증됨)
21:40Defender 종료됨: MsMpEng 사라짐, 실시간 보호 꺼짐, 탐지 기록 없음
21:40:39wwwapko[.]top에 대한 첫 DNS 조회; 한 시간 이내에 1,080회 조회

피해자 화면과 재실행된 rundll32

Defender 종료 및 ardrv 드라이버 실행 중

Autoruns: 유일한 새 항목은 서명된 OPSWAT 드라이버

드롭된 드라이버의 SHA-256 7504887e...는 OPSWAT AppRemover ardrv.sys, CVE-2026-36425와 일치한다: 해당 드라이버의 IOCTL 0x2420031은 커널 모드에서 임의의 프로세스 ID를 종료시킨다. Run 키나 예약된 작업은 생성되지 않았으므로, 지속성은 다음 단계에서 확보될 것이다.

4. C2 프로토콜

가짜 DNS가 정상 동작하자 악성코드는 도메인을 확인하고 TCP 443에 연결했지만, TLS는 전혀 시작하지 않았다. 대신 16바이트 바이너리 hello를 전송했다:

10 00 00 00  2c 4b 0a 00  5d 8e 13 33 fb  00  66 62
바이트의미
0-3길이 = 16 (리틀 엔디언), 상수
4-7밀리초 단위의 Windows 가동 시간 (674,604 = 11.2분); 패킷 간 실제 경과 시간만큼 정확히 증가
8-12패킷마다 무작위
13항상 00
14-15검사 바이트; 바이트 15 = 바이트 14 XOR 0x04

재시도 패턴: 버스트 단위로 2.5초마다 새 TCP 연결, 약 67초마다 새로운 DNS 조회. 이는 Winos 4.0 스테이저가 C2에 핵심 "온라인 모듈"을 요청하는 동작과 일치한다. 실제 서버에는 의도적으로 접속하지 않았다.

4b. 코드 수준 분석 결과 (Ghidra)

Is.Dll을 Ghidra 12.1.4에 로드하여(정적 분석만 수행) 실험실에서 관찰된 동작을 코드 수준에서 추적했다. Ghidra는 23,215개의 함수를 복구했으며, 대부분 정적으로 링크된 MFC 및 C++ 런타임이었다. 악성 로직은 .text 섹션에 있는 작은 "툴박스"로, 난독화가 심하게 적용된 패킹 섹션에서 호출된다.

도구 다운로드