← All Threat Hunting ReportsThreat Hunting Exercise

Threat Hunting Exercise: Analyzing SH ARP Cache Dataset

Expanding our hunts to Linux with this Mordor auditd log (sh_arp_cache_2020-11-10074812.log) - your log analysis skills apply seamlessly to auditd SYSCALLs. This simulates T1018: Remote System Discovery, where an adversary enumerates the ARP cache (arp -a) to map local network devices (IPs/MACs), often piped to grep for cleanup (filtering incomplete entries starting with "?"). It's a stealthy recon step post-initial access (e.g., via SSH as wardog).

Step 1: Hypothesis Formation

Hypothesis: Adversary in a compromised Linux host (user: wardog) runs arp -a | grep -v "^?" to dump and filter the ARP table, identifying live local hosts for lateral movement. Indicators:

Null Hypothesis: Benign network troubleshooting (e.g., admin checking connectivity). Invalidate via pipe chaining (arp|grep) without output redirect or non-root context.

Rationale: Mordor atomic for Linux T1018; arp -a reveals broadcast domain without noisy tools like nmap.

Step 2: Data Sources and Scope

Step 3: Key Findings

Single block with two chained execves (full dataset ~5 events, including shell spawn). Core: Interactive recon dumping ARP table (~entries for local net, filtered for complete MACs).

Timestamp (UTC)Event TypeKey DetailsIOC/Why Suspicious?
2020-11-10 07:48:16SYSCALL (59: execve)arch=x86_64, success=yes, exit=0; pid=1631, ppid=29002; auid=1000 (wardog); comm="arp", exe="/usr/sbin/arp"; items=2 (/usr/sbin/arp, ld-linux.so).Core IOC: Execve for arp - network recon tool. Non-root + pts0 = potential adversary shell.
2020-11-10 07:48:16EXECVEargc=2; args: "arp", "-a".Dumps full ARP cache; reveals local IPs/MACs for discovery.
2020-11-10 07:48:16CWDcwd="/home/wardog".User home; common for post-access enum (e.g., after T1133).
2020-11-10 07:48:16PATH (item=0/1)Legit paths/modes for arp and loader.Rules out tampering; benign binary.
2020-11-10 07:48:16PROCTITLEproctitle=arp -a (hex: 617270002D61).Confirms args; hex in title evades basic proc monitoring.
2020-11-10 07:48:16SYSCALL (59: execve)pid=1632, ppid=29002; comm="grep", exe="/bin/grep".Pipe child: Filters arp output.
2020-11-10 07:48:16EXECVEargc=3; args: "grep", "-v", "^?".Filtering IOC: Excludes incomplete entries (e.g., ? (incomplete)) - cleans recon data for analysis. Anomalous combo for benign use.
2020-11-10 07:48:16PROCTITLEproctitle=grep -v ^? (hex: 67726570002D76005E3F).Matches; chain confirms arpgrep pipeline.

Validation:

Step 4: Recommendations & Next Steps

Hypothesis confirmed - ARP cache recon for local discovery! In your SOC, syscall chaining would alert. Got a Linux audit snippet? Let's hunt it. Module 9: Cross-OS case studies?