Log locations differ significantly depending on the specific Ivanti product architecture. Assuming analysts are performing offline analysis on a mounted forensic extraction (e.g., mounted at /mnt/analysis/), these are the critical targets.
The primary application logs for ICS are located within the writable data partition, specifically in /data/var/dlogs/.
Log File
Critical Forensic Value
event.log
The main system journal for the application. Contains service startups, internal errors, and broad system actions.
user_access.log
CRITICAL. Tracks user VPN connections. Details who logged in, when, from which IP, and the targeted authentication “Realm”.
admin_access.log
CRITICAL. Tracks authentications to the web administration console (/admin). Analysts use this to determine if an attacker successfully logged in using stolen administrative credentials.
web_access.log
The HTTP request log (similar to Apache/Nginx access logs). This is the primary hunting ground for web exploitation (e.g., malicious URIs) and interactions with dropped webshells.
ICS logs are not always easily readable plain text. They can feature strange delimiters, proprietary binary headers, or be compressed during the export process.
The Tool: Ivanti-Connect-Secure-Logs-Parser (Hexastrike)
To effectively analyze these files, DFIR teams rely on community parsers to clean the raw data.
Function: It ingests raw Ivanti log files and converts them into structured CSV or JSON formats.
Utility: This allows analysts to ingest the logs into spreadsheet software or a SIEM (ELK, Splunk) for rapid timeline generation and IP filtering.
parse_ivanti_logs.sh
# Example usage of the Hexastrike parser on a mounted ICS extraction
Look for GET or POST requests targeting files that should not exist or are known indicators of specific CVEs.
Webshells: Look for requests targeting .jsp, .php, .sh, or .pl (Perl) files hiding in image or script directories.
CVE-2023-46805 (Auth Bypass): Hunt for requests targeting /api/v1/totp/user-backup-code/../../system/maintenance/archiving/cloud-server-test-connection.
General Suspicion: Any HTTP request returning a 200 (OK) status code on a highly unusual path or featuring Directory Traversal sequences (../ or %2E%2E%2F).
The Unknown Admin: A successful login to the admin panel from an IP address that does not belong to legitimate IT staff (e.g., commercial VPNs, Tor exit nodes, or foreign countries).
The Phantom Account: Logs indicating the creation of a new local administrator account immediately following a suspicious web request confirm a total system compromise.
Credential Stuffing: Thousands of failed login attempts for various usernames originating from a single IP address.
Session Hijacking: A single VPN session that suddenly changes its source IP mid-session, or a user connecting simultaneously from two geographically distant countries (“Impossible Travel”).
Even though the appliance runs proprietary software, the underlying OS is Linux. Once an attacker exploits the web layer, they drop into a standard Linux shell environment.
Authentication Logs (/var/log/secure)
Attackers often enable or manipulate SSH to establish a backdoor. Look for successful SSH logins (Accepted password or Accepted publickey) for root or admin. On an Ivanti appliance, SSH is rarely exposed to the internet, making external SSH connections a critical alert. (See Linux Auth Logs Analysis).
Cron Logs (/var/log/cron)
Did the attacker create a scheduled task for persistence? Review cron logs to identify execution of unknown scripts at regular intervals. (See Linux Legacy Persistence).