Statik Analiz — CMDPSDropper (lods.cmd) | Tehdit: YÜKSEK

Dosya Kimliği

SHA2561a5ad9ae7b0dcdc2edb7e93556f2c59c84f113879df380d95835fb8ea3914ed8
Dosya Adılods.cmd (ZIP 201KB → 270,900 byte CMD)
TürWindows Batch Script (.cmd), HTML header (çift tür) içinde CMD kodu

vrstem.IO: C2 İndirme Sunucusu

C2 DOMAIN: vrstem.IO — obfuskasyon kaldırıldığında ortaya çıkıyor!
vrstem.IO (ham: vrsRgqvrtRgqvreRgqvrmRgqvr.IO → Rgqvr kaldır → vrstem.IO)
-- ".IO" TLD: İngiliz Hint Okyanusu bölgesi, popüler C2 TLD
-- "vrstem" = belirsiz kısaltma (VR stem? versiyon stem?)
-- İşlev: PowerShell'in bağlandığı indirme/C2 sunucusu
-- Obfuskasyon tekniği ortaya çıkarıldıktan sonra net C2 IOC

Rgqvr: Junk String CMD Obfuskasyon Tekniği

Ham kod: vrsRgqvrtRgqvreRgqvrmRgqvr.IO
Temiz kod: vrstem.IO (Rgqvr stringi her karakterden sonra ekleniyor)

-- Teknik: her gerçek karakter arasına "Rgqvr" junk dizisi ekleniyor
-- CMD decode:
  SET domain=vrsRgqvrtRgqvreRgqvrmRgqvr.IO
  ECHO %domain:Rgqvr=% → vrstem.IO
  (% :Rgqvr=% = Rgqvr stringini boşla değiştir)

-- Başka örnekler (decode edilmiş):
  TvZhmR → WindowsPowerShell\v1.0\powershell.exe
  IOvchb → $host.UI.RawUI.WindowTitle= (başlık gizleme)
  LiRslx → $yDpz='IKCWFnKCWFvoKCWFkeKCWF'.Replace('KCWF','')
           → $yDpz='Invoke' (PowerShell Invoke metot inşası)

-- Neden etkili:
  - Grep/regex aramaları "vrstem.IO"yu bulamaz (ham formda)
  - YARA kuralları tetiklenmiyor
  - Sadece 15 string çıkıyor (obfuskasyon çok başarılı)

PowerShell Gizli Başlatma + Invoke

WindowsPowerShell\v1.0\powershell.exe
start " /min (minimized window)

-- Akış:
  1. CMD: Rgqvr junk stringlerini kaldır → gerçek değişkenleri oluştur
  2. PowerShell'i minimize pencereyle başlat
  3. $yDpz = 'Invoke' (string replacement ile inşa → hook atlatma)
  4. $yDpz + 'Expression' → InvokeExpression (meşru PS cmdlet'i)
  5. Base64 payload çöz → çalıştır → vrstem.IO'ya bağlan

-- Gömülü Base64 payload (kısaltılmış):
  5/6yQHNUtIOYdrNe0mu35je0NWZtWItB1EQVBFPhDJ...
  IL/ECPB5blnTlGabS8l3urc6ryJzzJy89IKpmwbCN+PCP1A0FEkyYfLY8...
  (iki ayrı şifreli blok — çok aşamalı payload)

timeout /nobreak /t 1 >nul
-- Sandbox timing bypass: 1 saniye gecikme + /nobreak = Ctrl+C bile çalışmaz

IOC

SHA2561a5ad9ae7b0dcdc2edb7e93556f2c59c84f113879df380d95835fb8ea3914ed8
C2vrstem.io
ObfuskasyonRgqvr junk-string delimiter

CMDPSDropper — Malware Profile

CMD to PowerShell dropper. Rgqvr junk-string obfuscation in .cmd script. Contacts vrstem.IO C2. Launches PowerShell minimized. Embedded base64 encrypted payload. String replacement for InvokeExpression construction.

Malware Type
Loader
Programming Language
CMD/PowerShell
C2 Protocol
HTTPS
Target Systems
Küresel

Capabilities & Behavior

Payload İndirme
Süreç Enjeksiyonu
Modüler Mimari
Kimlik Bilgisi Hırsızlığı
Yanal Hareket
Kalıcılık
Anti-VM/Sandbox
İkincil Payload Dağıtımı

IOC List (1 indicators)

IOC — CMDPSDropper
# SHA256 1a5ad9ae7b0dcdc2edb7e93556f2c59c84f113879df380d95835fb8ea3914ed8
TypeValueNote
sha256 1a5ad9ae7b0dcdc2edb7e93556f2c59c84f113879df380d95835fb8ea3914ed8

C2 Servers (1 recorded servers for this family)

Address Type Port Protocol Status Country
vrstem.io domain 443 HTTPS inactive —

C2 addresses are provided only from malware samples manually verified by the KEYDAL team. Commercial use is prohibited.

Tags
cmppsdroppercmd-ps-dropperlods-cmdvrstem-io-c2-download-distribution-domainrgqvr-junk-string-cmd-obfuscation-delimiter-techniquewindowspowershell-v1-0-minimize-hidden-silent-launchlarge-base64-encrypted-ps-payload-embeddedsetlocal-enabledelayedexpansion-variable-obfuscationtimeout-nobreak-sandbox-timing-delaystring-replace-invoke-download-method-constructionecho-pipe-to-powershell-execution-pattern