SSL-VPN
ADMIN SESSIONS
CONFIG EXPORT
T1190
DetectionBlue TeamSOCOctober 12, 2026•9 min read

Detecting VPN and SSL-VPN Appliance Exploitation

Edge appliances rarely run an endpoint agent. If you forward their logs and know what normal looks like, they become one of the quietest places to catch an intrusion early.

Scroll

VPN and SSL-VPN appliances sit at the boundary, run privileged and often hardened-but-unmonitored operating systems, and hold credentials, configuration and routes into the network. Exploitation of them is a recurring entry vector (T1190). Because you usually cannot install an agent, detection depends on forwarding the appliance’s own logs and on watching what the exploited device does next.

Signals at a Glance

SignalWhereATT&CK
Administrative login from an address outside your management rangesAppliance syslogT1078
Configuration export, backup download or support-bundle generationAppliance audit logT1005
New local admin, VPN user or API key outside change windowsAppliance audit logT1136.001
VPN session reused from a second source address or a changed user agentAppliance and proxy logsT1550.004
Appliance process crash or unexpected reboot shortly before suspicious sessionsAppliance system logT1190
Appliance initiating outbound connections to new destinationsFirewall, flowT1071.001

Administrative Session and Config Anomalies

Start with administrative access. Every appliance admin login should come from a short, known list of management addresses. Anything else is worth a ticket. Forward appliance logs through CEF or syslog to the SIEM; the field names below vary by vendor, so map them to your parser.

// Sentinel (KQL) - appliance admin activity outside management ranges
let mgmt = dynamic(["10.10.0.0/24"]);   // tune/validate: your management ranges
CommonSecurityLog
| where DeviceProduct has_any ("FortiGate", "NetScaler", "Pulse", "Connect Secure", "ASA")
| where Activity has_any ("admin login", "Admin login successful", "login success")
      or Message has_any ("admin", "administrator")
| where not(ipv4_is_in_any_range(SourceIP, mgmt))
| project TimeGenerated, DeviceVendor, DeviceProduct, DeviceName, SourceIP, SourceUserName, Activity, Message
| order by TimeGenerated desc

Configuration reads are the second thing to watch. A config export gives the attacker local account hashes, pre-shared keys and routing data. Alert on any export, backup or support-bundle event that was not scheduled:

index=network sourcetype IN ("fortinet:fortigate:event","citrix:netscaler:syslog","pulse:connectsecure")
  (config_backup OR "config export" OR "download config" OR "support bundle" OR "system backup")
| stats count min(_time) as first max(_time) as last values(src_ip) as src values(user) as user by host
| eval first=strftime(first,"%F %T"), last=strftime(last,"%F %T")
# Tune/validate: sourcetypes and field names vary; exclude your scheduled backup account.

Make the Appliance Observable

Vetted sources

Use vendor advisories and their integrity-check tools, CISA and national CERT guidance on edge device hunting, SigmaHQ and Elastic rules for VPN authentication anomalies, and Splunk ESCU analytics for network device administration. Baseline your own environment — admin locations, backup schedules and maintenance windows differ widely.

Build Detections That Fire

Mjolnir Security helps blue teams turn threat intelligence into high-fidelity detections across endpoint, network, identity and cloud telemetry.

Detection EngineeringManaged Detection & ResponseThreat HuntingIncident ResponsePurple Teaming
  • Detection Engineering We build and tune detections mapped to ATT&CK from your own telemetry.
  • Threat Hunting as a Service Hypothesis-driven hunts for the behaviours on this page.
  • 24/7 Incident Response Containment when a detection fires. Call +1 833 403 5875.
Written by: Mjolnir Threat Research (MTAC)  |  Published: October 12, 2026  |  Last reviewed: October 12, 2026