Threat Summary
A newly surfaced OTX pulse consolidates intelligence on TAG-179, a campaign designation covering sustained intrusions into Pakistani law enforcement infrastructure between February 2024 and April 2026. The operation is unusual and strategically significant: analysis indicates that two rival espionage ecosystems — suspected China-nexus and India-nexus threat groups — converged on the same victim set, most prominently the Balochistan Police.
Compromised infrastructure includes network appliances and servers hosting web applications that manage criminal records, biometric data, hotel registrations, and other highly sensitive law enforcement datasets. This is not opportunistic crime — it is a deliberate intelligence-collection operation targeting identity and population-surveillance data of exceptional value to state sponsors. When two adversaries independently compromise the same target, the victim's network effectively becomes shared espionage terrain, which also raises the risk of destructive interference: the presence of DestroyRAT in the tooling mix suggests capability — or intent — beyond passive collection.
The attack chain is characteristic of mature state-aligned tradecraft:
- Initial access via exploitation or compromise of internet-facing network appliances and web application servers.
- Implant deployment — ShadowPad and PlugX (Sogu/Korplug variants) as primary modular backdoors, supplemented by POISONPLUG.SHADOW, Thoper, and TVT loaders.
- Post-exploitation using Cobalt Strike beacons alongside commodity/criminal-market RATs (Remcos, AsyncRAT) — a deliberate tactic to muddy attribution and blend espionage traffic with lower-sophistication noise.
- C2 egress through rented VPS infrastructure spanning multiple ASNs (Voxility, M247, Cloudie, Bell Canada) — classic bulletproof/reseller hosting abuse.
Objective: long-term exfiltration of criminal records, biometric registries, and movement-tracking data (hotel registrations) from Pakistani law enforcement, with destructive fallback capability.
Threat Actor / Malware Profile
TAG-179 (Campaign Cluster)
TAG-179 is a tracking designation for convergent intrusion activity against Pakistani government targets. The cluster exhibits tooling overlap typical of Chinese state-nexus operations (ShadowPad, PlugX/Sogu/Korplug) combined with infrastructure and RAT usage patterns associated with India-nexus actors (Remcos, AsyncRAT). Security teams should treat this as two parallel adversaries sharing a victim, not a single unified group — detection must account for both toolsets simultaneously.
ShadowPad (S0596)
- Distribution: Typically deployed via DLL sideloading — a legitimate signed executable loads a malicious DLL (commonly a 3-stage structure: legit EXE + loader DLL + encrypted payload file).
- Payload behavior: Fully modular backdoor supporting plugins for keylogging, credential theft, screen capture, file management, and proxy tunneling.
- C2 communication: HTTP/HTTPS or custom TCP protocols, frequently DNS-based C2 with randomized subdomains; supports domain fronting in some variants.
- Persistence: Windows services (often installed via
sc createor registry service keys), WMI event subscriptions, and scheduled tasks. - Anti-analysis: Payload stored encrypted on disk (often an 8-byte XOR or RC4-encrypted blob decrypted in memory only), sleeps/jitter on beaconing, and in-memory-only execution of plugins.
PlugX / Sogu / Korplug (S0013)
- Distribution: DLL sideloading alongside legitimate security software executables; also spread via infected removable media in Sogu campaigns.
- Payload behavior: Modular RAT with file exfiltration, command execution, network enumeration, and USB propagation (Sogu).
- C2 communication: HTTP, TCP, UDP, and ICMP-based channels; frequently uses legitimate cloud services (e.g., Google Sheets/Docs, Dropbox) as dead-drop C2 relays.
- Persistence: Registry Run keys, services, and scheduled tasks; frequently masquerades service names as legitimate software updaters.
- Anti-analysis: Encrypted payload blobs, API hashing, debugger detection, and time-based execution delays.
DestroyRAT
- Behavior: Dual-purpose RAT with destructive wiper functionality — capable of MBR/file destruction in addition to standard remote access. Its presence signals that at least one actor retained a sabotage option against law enforcement systems.
Remcos / AsyncRAT
- Commodity RATs (sold openly) used as secondary implants. AsyncRAT persists via registry Run keys and scheduled tasks, communicates over TCP with TLS, and is frequently obfuscated .NET. Their use by state-nexus actors is a known attribution-laundering technique.
Cobalt Strike (S0154)
- Malleable C2 beacons with configurable HTTP(S) profiles; expect named pipes, process injection (rundll32/spawn chains), and SMB lateral movement within the compromised networks.
IOC Analysis
The pulse contains 67 indicators, dominated by:
- IPv4 C2 addresses — e.g.,
172.94.9.19(AS3223 Voxility, DE),172.111.233.105/.96/.12(AS9009 M247, US),193.42.25.65(AS55933 Cloudie, HK),142.171.183.8(AS577 Bell Canada, CA). These are rented VPS/reseller hosts — block at the perimeter, but also hunt retroactively: VPS C2 rotates fast, and historical NetFlow/proxy logs are where the value is. - Hostnames —
cms.balochistanpolice.gov.pkappears as victim infrastructure (compromised CMS host), not adversary C2. Treat victim-domain IOCs as sensitive: do not block your own access blindly if you are in the region; instead, monitor for anomalous traffic from such hosts (e.g., webshell beaconing, unexpected outbound connections).
Operationalization guidance for SOC teams:
- Ingest all 67 IOCs into your TI platform / SIEM with a confidence tag and a 90-day expiry (VPS indicators decay quickly).
- Push IPv4 indicators to firewalls, EDR blocklists, and DNS resolvers (sinkhole where possible).
- Run retro hunts over 90–180 days of proxy, firewall, and DNS telemetry — the campaign window is 2024–2026, so short lookbacks will miss it.
- Enrich IOCs with passive DNS (VirusTotal, SecurityTrails, OTX pulses) to pivot to sibling C2 on the same ASN ranges (M247 /24s and Cloudie ranges are high-yield).
- Tools: MISP/OpenCTI for ingestion, CrowdStrike/Defender for endpoint sweeps, Zeek/Suricata for network retro analysis.
Detection Engineering
---
title: ShadowPad or PlugX DLL Sideloading via Legitimate Signed Binary
id: 7a1c9e2d-4f3b-4c8a-9e1d-2b5f6a7c8d9e
status: experimental
description: Detects DLL sideloading patterns associated with ShadowPad and PlugX implants - a signed legitimate executable loading a DLL from an unusual path, as observed in TAG-179 intrusions against Pakistani law enforcement.
author: Security Arsenal Threat Intelligence
date: 2026/08/09
references:
- https://www.sentinelone.com/labs/one-target-china-india-espionage-converge-on-pakistani-law-enforcement/
logsource:
category: image_load
product: windows
detection:
selection_signed_parent:
Image|startswith:
- 'C:\Program Files\'
- 'C:\Program Files (x86)\'
selection_suspicious_dll_path:
ImageLoaded|contains:
- '\AppData\'
- '\ProgramData\'
- '\Users\Public\'
- '\Windows\Temp\'
- '\Temp\'
filter_signed_dll:
Signed: 'true'
SignatureStatus: 'validated'
condition: selection_signed_parent and selection_suspicious_dll_path and not filter_signed_dll
falsepositives:
- Legitimate software loading plugins from user directories
level: high
tags:
- attack.defense_evasion
- attack.t1574.002
- attack.t1218
---
title: Suspicious Service Creation for APT Backdoor Persistence
id: 8b2d0f3e-5a4c-4d9b-0f2e-3c6a7b8d9e0f
status: experimental
description: Detects creation of Windows services with characteristics consistent with ShadowPad/PlugX persistence - services created via sc.exe or registry with randomized or masquerading names executing from non-system paths.
author: Security Arsenal Threat Intelligence
date: 2026/08/09
references:
- https://www.sentinelone.com/labs/one-target-china-india-espionage-converge-on-pakistani-law-enforcement/
logsource:
category: process_creation
product: windows
detection:
selection_sc:
Image|endswith:
- '\sc.exe'
CommandLine|contains:
- 'create'
selection_suspicious_path:
CommandLine|contains:
- '\AppData\'
- '\ProgramData\'
- '\Users\Public\'
- 'rundll32.exe'
- 'regsvr32.exe'
condition: selection_sc and selection_suspicious_path
falsepositives:
- Software installers registering legitimate services
level: high
tags:
- attack.persistence
- attack.t1543.003
---
title: TAG-179 Known C2 Network Communication
id: 9c3e1a4f-6b5d-4e0c-1a3f-4d7b8c9e0f1a
status: experimental
description: Detects network connections to known TAG-179 command and control infrastructure identified in the AlienVault OTX pulse covering dual-nexus espionage against Pakistani law enforcement.
author: Security Arsenal Threat Intelligence
date: 2026/08/09
references:
- https://www.sentinelone.com/labs/one-target-china-india-espionage-converge-on-pakistani-law-enforcement/
logsource:
category: network_connection
product: windows
detection:
selection_ipv4:
DestinationIp:
- '172.94.9.19'
- '172.111.233.105'
- '172.111.233.96'
- '172.111.233.12'
- '142.171.183.8'
- '193.42.25.65'
filter_ports:
DestinationPort:
- 53
condition: selection_ipv4 and not filter_ports
falsepositives:
- None expected for confirmed C2 addresses
level: critical
tags:
- attack.command_and_control
- attack.t1071
- attack.t1572
// TAG-179 Dual-Nexus Espionage Hunt - ShadowPad / PlugX / Cobalt Strike / AsyncRAT / Remcos
// Hunts network IOCs, DLL sideloading behavior, and persistence artifacts
let C2_IPs = dynamic(["172.94.9.19","172.111.233.105","172.111.233.96","172.111.233.12","142.171.183.8","193.42.25.65"]);
let Lookback = 90d;
let NetworkHits = DeviceNetworkEvents
| where TimeGenerated > ago(Lookback)
| where RemoteIP in (C2_IPs)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemotePort, RemoteUrl, ActionType
| extend Detection = "Known TAG-179 C2 Connection";
let Sideloading = DeviceImageLoadEvents
| where TimeGenerated > ago(Lookback)
| where FileName endswith ".dll"
| where FolderPath has_any (@"\AppData\", @"\ProgramData\", @"\Users\Public\", @"\Temp\")
| where InitiatingProcessFolderPath has_any (@"C:\Program Files\", @"C:\Program Files (x86)\")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, FolderPath, SHA256
| extend Detection = "Potential DLL Sideloading (ShadowPad/PlugX pattern)";
let ServicePersistence = DeviceProcessEvents
| where TimeGenerated > ago(Lookback)
| where FileName =~ "sc.exe" and ProcessCommandLine has "create"
| where ProcessCommandLine has_any (@"\AppData\", @"\ProgramData\", @"\Users\Public\", "rundll32", "regsvr32")
| project TimeGenerated, DeviceName, AccountName, ProcessCommandLine, InitiatingProcessCommandLine
| extend Detection = "Suspicious Service Persistence";
let RunKeyPersistence = DeviceRegistryEvents
| where TimeGenerated > ago(Lookback)
| where RegistryKey has_any (@"\CurrentVersion\Run", @"\CurrentVersion\RunOnce")
| where RegistryValueData has_any (@"\AppData\", @"\ProgramData\", @"\Users\Public\", "rundll32")
| project TimeGenerated, DeviceName, RegistryKey, RegistryValueName, RegistryValueData, InitiatingProcessFileName
| extend Detection = "Registry Run Key Persistence (AsyncRAT/Remcos/PlugX pattern)";
union NetworkHits, Sideloading, ServicePersistence, RunKeyPersistence
| order by TimeGenerated desc
<#
.SYNOPSIS
TAG-179 Dual-Nexus Espionage IOC & Artifact Hunt
.DESCRIPTION
Hunts for indicators and persistence artifacts associated with ShadowPad, PlugX/Sogu/Korplug,
Remcos, AsyncRAT, and Cobalt Strike implants observed in the TAG-179 campaign against
Pakistani law enforcement infrastructure. Run elevated on endpoints and servers.
.NOTES
Security Arsenal Threat Intelligence - OTX Pulse Analysis 2026-08-09
#>
$ErrorActionPreference = 'SilentlyContinue'
$Report = @()
# --- 1. Known TAG-179 C2 Addresses ---
$C2IPs = @('172.94.9.19','172.111.233.105','172.111.233.96','172.111.233.12','142.171.183.8','193.42.25.65')
Write-Host "[+] Checking active network connections against TAG-179 C2 list..." -ForegroundColor Cyan
$Conns = Get-NetTCPConnection | Where-Object { $_.RemoteAddress -in $C2IPs }
foreach ($c in $Conns) {
$proc = Get-Process -Id $c.OwningProcess
$Report += [PSCustomObject]@{
Category = 'C2 Connection (LIVE)'
Finding = "$($c.RemoteAddress):$($c.RemotePort) - Process: $($proc.ProcessName) (PID $($c.OwningProcess)) Path: $($proc.Path)"
Severity = 'CRITICAL'
}
}
# --- 2. DNS cache check for C2 resolution history ---
Write-Host "[+] Checking DNS client cache for victim/C2 domains..." -ForegroundColor Cyan
$DnsHits = Get-DnsClientCache | Where-Object { $_.Entry -match 'balochistanpolice' -or $_.Data -in $C2IPs }
foreach ($d in $DnsHits) {
$Report += [PSCustomObject]@{ Category='DNS Cache Hit'; Finding="$($d.Entry) -> $($d.Data)"; Severity='HIGH' }
}
# --- 3. Registry Run-key persistence (AsyncRAT / Remcos / PlugX pattern) ---
Write-Host "[+] Checking Run/RunOnce keys for suspicious persistence..." -ForegroundColor Cyan
$RunKeys = @(
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce'
)
foreach ($key in $RunKeys) {
if (Test-Path $key) {
(Get-ItemProperty $key).PSObject.Properties | Where-Object {
$_.Value -match 'AppData|ProgramData|Users\\Public|rundll32|regsvr32'
} | ForEach-Object {
$Report += [PSCustomObject]@{ Category='Run Key Persistence'; Finding="$key -> $($_.Name) = $($_.Value)"; Severity='HIGH' }
}
}
}
# --- 4. Suspicious services executing from non-system paths (ShadowPad/PlugX pattern) ---
Write-Host "[+] Checking services with suspicious binary paths..." -ForegroundColor Cyan
Get-CimInstance Win32_Service | Where-Object {
$_.PathName -match 'AppData|ProgramData|Users\\Public|rundll32.*\.dll|regsvr32'
} | ForEach-Object {
$Report += [PSCustomObject]@{ Category='Suspicious Service'; Finding="$($_.Name): $($_.PathName) [State: $($_.State)]"; Severity='HIGH' }
}
# --- 5. DLL sideloading artifacts: signed EXE + unsigned DLL co-located outside Program Files ---
Write-Host "[+] Scanning common staging paths for EXE+DLL sideloading pairs..." -ForegroundColor Cyan
$StagingPaths = @("$env:ProgramData","$env:PUBLIC","$env:APPDATA")
foreach ($p in $StagingPaths) {
Get-ChildItem -Path $p -Recurse -Depth 3 -Include *.exe -ErrorAction SilentlyContinue | ForEach-Object {
$dlls = Get-ChildItem -Path $_.DirectoryName -Filter *.dll -ErrorAction SilentlyContinue
foreach ($dll in $dlls) {
$sig = Get-AuthenticodeSignature $dll.FullName
if ($sig.Status -ne 'Valid') {
$Report += [PSCustomObject]@{ Category='Possible Sideload Pair'; Finding="EXE: $($_.FullName) | Unsigned DLL: $($dll.FullName)"; Severity='MEDIUM' }
}
}
}
}
# --- 6. Scheduled tasks referencing suspicious paths ---
Write-Host "[+] Checking scheduled tasks for persistence..." -ForegroundColor Cyan
Get-ScheduledTask | ForEach-Object {
$actions = $_.Actions | Out-String
if ($actions -match 'AppData|ProgramData|Users\\Public|rundll32.*\.dll|powershell.*-enc') {
$Report += [PSCustomObject]@{ Category='Suspicious Scheduled Task'; Finding="$($_.TaskName): $($actions.Trim())"; Severity='HIGH' }
}
}
# --- Output ---
if ($Report.Count -gt 0) {
Write-Host "`n[!] $($Report.Count) FINDINGS DETECTED - INVESTIGATE IMMEDIATELY`n" -ForegroundColor Red
$Report | Sort-Object Severity | Format-Table -AutoSize -Wrap
$Report | Export-Csv -Path ".\TAG179_Hunt_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv" -NoTypeInformation
} else {
Write-Host "`n[+] No TAG-179 artifacts detected on this host.`n" -ForegroundColor Green
}
Response Priorities
Immediate (0–4 hours)
- Block all 67 pulse IOCs at the firewall, web proxy, DNS resolver, and EDR blocklist. Prioritize the seven enumerated C2 IPs; push the full pulse indicator set via your TI platform.
- Retro-hunt 90–180 days of network telemetry (firewall, proxy, DNS, NetFlow) for connections to the C2 IPs and to the M247 (AS9009) / Cloudie (AS55933) / Voxility (AS3223) ranges hosting related infrastructure.
- Sweep endpoints and servers using the KQL query and PowerShell hunt script above — focus on DLL sideloading pairs, suspicious services, and Run-key persistence.
- If any endpoint shows C2 connections, isolate immediately and acquire memory before remediation — ShadowPad plugins operate primarily in memory, and volatile evidence will be lost on reboot.
24 Hours
- Credential reset and identity verification: The victims held biometric registries and criminal records databases — assume any host that touched those systems had credential access. Reset credentials for all administrative/service accounts on affected network segments; audit privileged account logins for the full campaign window.
- Review network appliance integrity: Initial access vector includes network appliances. Verify firmware integrity, review appliance admin logs, and check for unauthorized local accounts or configuration changes on VPN concentrators, firewalls, and load balancers.
- Check for destructive staging: Given DestroyRAT's presence, verify integrity of MBR/boot records and look for mass file-access anomalies or wiper staging directories on servers hosting records databases.
- Hunt for Cobalt Strike artifacts: named pipes (
\\.\pipe\anomalies), rundll32 with no parent, and SMB beacon lateral movement patterns.
1 Week
- Segment law-enforcement/records datastores: Biometric and criminal-records databases should sit behind dedicated segmentation with allow-listed application-tier access only. Dual-adversary compromise means perimeter-only defense already failed.
- Harden internet-facing appliances: Patch cadence audit, disable unused management interfaces, enforce MFA on all appliance admin planes, and deploy integrity monitoring on firmware.
- Deploy the Sigma detections above into production SIEM rules with tuned thresholds; add ASN-level alerting for VPS-heavy ranges (M247, Cloudie, Voxility) touching sensitive segments.
- Threat-intel process update: Subscribe to OTX pulses tagged
shadowpad,plugx, andlaw enforcement targeting; establish a 24-hour SLA for new-IOC ingestion-to-block given the demonstrated multi-year dwell time.
Related Resources
Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.