Investigation Overview
Network traffic analysis is one of the most valuable techniques available to security analysts when investigating suspicious activity inside an environment.
Even when endpoint telemetry is unavailable, encrypted files have been deleted, or malware is no longer present on the compromised machine, network captures may still reveal communication patterns, remote infrastructure, protocols, authentication attempts, and potential data exfiltration.
This investigation analyzes a malicious network capture associated with an AgentTesla-style infection scenario. The objective is not simply to identify suspicious packets. Instead, the investigation follows the complete analytical process expected from a SOC or network forensics analyst.
Reconstruct the malicious network activity
Identify suspicious communications, determine how the affected host interacted with external infrastructure, analyze potential exfiltration behavior, and create detection logic capable of identifying similar activity.
Analyst Perspective
The goal of this investigation is not to search for a single malicious IP address. The objective is to understand the behavioral chain visible in network telemetry and convert those observations into defensible security findings.
Investigation Goals
Identify
Determine which systems, protocols, and network communications require further investigation.
Reconstruct
Rebuild the sequence of observable network events associated with the suspicious activity.
Detect
Transform confirmed forensic findings into reusable Suricata detection logic and SOC indicators.
Investigation Scope
Before analyzing network evidence, the scope of the investigation must be clearly defined. This prevents analysts from jumping directly into individual packets without understanding what questions the investigation is expected to answer.
For this case, the primary evidence source is a packet capture containing traffic generated during a suspected malware infection. The investigation therefore focuses on network-observable behavior.
Host Discovery
Identify internal systems participating in suspicious communications and determine the likely affected host.
Protocol Analysis
Examine DNS, TCP, FTP and other relevant network protocols for anomalous or malicious behavior.
Infrastructure Discovery
Identify external systems, domains, IP addresses, and services contacted by the affected endpoint.
Exfiltration Analysis
Determine whether network evidence indicates outbound transfer of information from the compromised environment.
Detection Engineering
Evaluate Suricata alerts and develop custom IDS logic based on confirmed malicious behavior.
IOC Extraction
Extract useful network indicators that can support detection, threat hunting, and future investigations.
Scope Limitation
This investigation is primarily based on network evidence. Without endpoint memory, process telemetry, registry artifacts, or disk forensics, conclusions regarding host-level execution must remain limited to what can be supported by the captured network activity.
Analysis Environment & Toolset
Malware-related packet captures should be analyzed inside a controlled laboratory environment. The investigation was structured around an isolated analyst workstation where the evidence could be inspected without interacting with production systems.
Core Analysis Tools
Wireshark
Used for packet-level inspection, stream analysis, protocol filtering, endpoint discovery and traffic reconstruction.
Suricata
Used as the network intrusion detection engine for signature analysis, alert generation and custom detection-rule validation.
tshark
Provides command-line packet analysis and allows large captures to be filtered and summarized efficiently.
tcpdump
Used for rapid command-line inspection of packet captures, protocol verification and traffic filtering.
Investigation Principle
GUI tools and command-line tools should complement each other. Wireshark provides excellent visual packet inspection while tshark and tcpdump allow analysts to rapidly validate findings and reproduce queries from the command line.
Analysis Philosophy
A packet capture should not be treated as a collection of isolated packets. It should be treated as a timeline of communication that can be reconstructed into attacker behavior.
With the investigation environment prepared and the analytical scope defined, the next stage is to establish the integrity of the evidence before performing deeper traffic analysis.
Evidence Acquisition & Integrity Verification
Before beginning the investigation, the packet capture was treated as the primary network evidence.
The sample analyzed in this investigation was:
2026-02-03-GuLoader-for-AgentTesla-style-infection-with-FTP-data-exfil.pcap
The original password-protected archive was first transferred into the dedicated project evidence directory before extraction and analysis.
Figure 1 — Evidence acquisition and project directory preparation.
After extraction, the PCAP was verified and basic capture metadata was reviewed to confirm that the evidence was readable and suitable for analysis.
Figure 2 — PCAP metadata and evidence verification.
SHA-256 Integrity Verification
A SHA-256 hash was calculated before performing the investigation. This created a reproducible integrity reference for the evidence used throughout the analysis.
sha256sum *.pcap | tee ../notes/pcap-sha256.txt
Figure 3 — SHA-256 integrity reference generated for the analyzed PCAP.
Why calculate the hash?
The hash establishes a reproducible reference for the packet capture. If the evidence changes later, the resulting hash will no longer match the original integrity value.
Forensic Practice
Evidence validation should occur before analytical processing. This helps separate evidence handling from investigation activity and improves the reproducibility of the analysis.
Establishing the Network Baseline
After verifying the integrity of the evidence, the next objective was to understand the packet capture at a high level before investigating individual connections.
Initial triage focused on three areas:
Protocol Hierarchy
TShark was used to inspect the protocol distribution within the packet capture.
tshark -r *.pcap -q -z io,phs
The capture contained 353 packets and was primarily composed of TCP traffic.
Figure 4 — Initial protocol hierarchy generated with TShark.
| Protocol | Frames | Observation |
|---|---|---|
| TCP | 345 | Majority of observed network traffic |
| TLS | 187 | Encrypted outbound communication |
| HTTP | 2 | Limited unencrypted web traffic |
| DNS | 8 | Domain resolution activity |
| FTP | 21 | FTP control-channel communication |
| FTP-DATA | 2 | FTP data-transfer sessions |
FTP-DATA immediately became an investigation lead.
The presence of both FTP control traffic and FTP-DATA indicated that the capture contained not only FTP commands, but actual file-transfer sessions.
Identifying the Primary Host of Interest
IPv4 endpoints were enumerated to determine which internal and external systems were participating in the observed network activity.
tshark -r *.pcap -q -z endpoints,ip
The primary internal endpoint identified in the capture was:
Several external IP addresses were also observed:
The host 10.2.3.101 participated in the majority
of the observed communications and was therefore selected as
the primary system of interest.
Important Analytical Distinction
At this stage, the external IP addresses were treated as investigative leads rather than automatically classified as malicious. An IP appearing in a packet capture is not sufficient evidence by itself to assign malicious intent.
TCP Conversation Analysis
TCP conversations were reviewed to determine which outbound connections from the internal host required deeper analysis.
tshark -r *.pcap -q -z conv,tcp
| Source | Destination | Port | Initial Observation |
|---|---|---|---|
| 10.2.3.101 | 142.251.186.132 | 443 | TLS communication |
| 10.2.3.101 | 162.241.123.75 | 21 | FTP control channel |
| 10.2.3.101 | 142.250.115.138 | 443 | TLS communication |
| 10.2.3.101 | 208.95.112.1 | 80 | HTTP communication |
10.2.3.101 → 162.241.123.75:21
TCP port 21 identified an outbound FTP control session. Additional high-numbered connections between the same systems were later correlated with passive-mode FTP data transfers.
Resolving the External Infrastructure
DNS traffic was analyzed to identify which domains were resolved by the internal system and determine whether those resolutions correlated with subsequent network connections.
tshark -r *.pcap \
-Y "dns.flags.response == 0" \
-T fields -e dns.qry.name \
| sort -u
Four domains were observed:
Figure 5 — DNS queries extracted from the packet capture.
The domain ftp.corvineagles.com was particularly
important because the capture already contained an outbound
FTP connection.
DNS Response Correlation
tshark -r *.pcap \
-Y 'dns.flags.response == 1' \
-T fields \
-e frame.time \
-e dns.qry.name \
-e dns.a
Figure 6 — DNS response analysis and IP correlation.
DNS response analysis confirmed:
Figure 7 — Correlation between DNS resolution and subsequent FTP infrastructure.
DNS and TCP evidence converged.
The domain resolved to the same IP address already identified during TCP conversation analysis as the destination of the outbound FTP connection.
FTP Control Channel Investigation
With the DNS relationship established, the next stage was to inspect the FTP control session between the internal host and the external server.
FTP commands were extracted from the packet capture to reconstruct the control-channel activity.
tshark -r *.pcap \
-Y "ftp.request.command" \
-T fields \
-e frame.number \
-e ip.src \
-e ip.dst \
-e ftp.request.command \
-e ftp.request.arg
Figure 8 — FTP control-channel commands observed in the PCAP.
The control channel contained authentication activity followed by commands associated with passive-mode file transfer.
Cleartext Protocol Visibility
Traditional FTP does not protect the control channel with encryption. This means authentication commands, filenames, and transfer operations may be visible directly in captured network traffic.
STOR Operations
Two outbound STOR operations were identified.
The command is used by an FTP client to upload data to the
remote server.
Filename structure suggested credential-related or password-related information.
Filename indicated Thunderbird-related contact data.
The affected host was uploading files to the external FTP server.
The presence of outbound STOR commands changed the investigation from simple suspicious communication analysis to potential data-exfiltration investigation.
Reconstructing the FTP Data Transfers
An FTP STOR command demonstrates the intention
to upload a file, but the control-channel command alone does
not prove that meaningful data was successfully transferred.
The investigation therefore moved to the corresponding FTP-DATA sessions.
Control-channel evidence should be correlated with the associated data channel whenever possible.
Figure 9 — Passive FTP data-transfer sessions correlated with the STOR operations.
Passive-Mode FTP Correlation
Additional high-numbered TCP connections between
10.2.3.101 and 162.241.123.75
were correlated with the passive FTP sessions initiated
by the control channel.
Packet-Level Validation
The corresponding TCP streams were reconstructed to determine whether the transferred data contained meaningful information.
Figure 10 — Packet-level reconstruction of the FTP data-transfer activity.
Reconstruction demonstrated that the transfers contained meaningful host and user information rather than arbitrary test data.
System & Credential-Related Data
The transferred artifact contained system, application, and credential-related information.
Thunderbird Contact Data
A second transferred artifact contained Thunderbird-related contact information.
Malicious Data Exfiltration Over FTP
Multiple independent network artifacts support the conclusion that data was transferred from the internal host to external FTP infrastructure.
Investigation Chain So Far
Suricata Detection & Alert Triage
After manually identifying suspicious FTP-based data transfers, the same packet capture was analyzed with Suricata.
The objective was not simply to determine whether Suricata generated an alert. The goal was to compare IDS telemetry with the independently reconstructed packet evidence and determine whether the resulting detections represented validated true positives.
An IDS signature provides an investigative lead. The underlying network evidence determines whether the alert can be supported.
Configuration Validation
Before processing the PCAP, the Suricata configuration and loaded rules were validated.
sudo suricata -T -c /etc/suricata/suricata.yaml
The configuration test completed successfully, confirming that Suricata was ready to process the network evidence.
Figure 11 — Suricata configuration and rule validation.
Offline PCAP Processing
sudo suricata \
-r pcap/2026-02-03-GuLoader-for-AgentTesla-style-infection-with-FTP-data-exfil.pcap \
-c /etc/suricata/suricata.yaml \
-l output/
Suricata generated multiple output artifacts, including:
Figure 12 — Offline PCAP processing and generated Suricata output.
Initial Alert Review
cat output/fast.log
Several malware-related detections were generated during the analysis.
Figure 13 — Malware-related alerts identified during initial Suricata triage.
Suricata independently detected the FTP activity already identified during manual packet analysis.
This created a second analytical layer supporting the network-forensics findings.
Structured Alert Triage with EVE JSON
Rather than relying only on the human-readable
fast.log, the structured EVE JSON telemetry
was inspected using jq.
jq 'select(.event_type=="alert")' output/eve.json
This allowed alerts to be reviewed together with fields such as:
Figure 14 — Structured Suricata alert analysis using EVE JSON.
Existing Signature Analysis
After identifying the AgentTesla FTP alert, the next objective was to determine exactly why Suricata generated the detection.
Instead of treating the signature as a black box, the corresponding Emerging Threats rule was located and compared directly with the packet content.
ET MALWARE AgentTesla Exfil via FTP
One of the most important content conditions in the rule was:
content:"STOR|20|PW_";
In Suricata content syntax, |20| represents the
hexadecimal value for an ASCII space.
The signature was therefore looking for traffic resembling:
Figure 15 — Emerging Threats AgentTesla FTP signature inspection.
Rule-to-Packet Validation
tshark -r pcap/*.pcap \
-Y 'ftp.request.command == "STOR"' \
-T fields \
-e frame.number \
-e ip.src \
-e ip.dst \
-e ftp.request.command \
-e ftp.request.arg
Figure 16 — Direct validation of the AgentTesla signature against FTP packet content.
An IDS alert is the beginning of an investigation, not the end of one.
The detection was therefore assessed as a validated true positive. The signature name was not accepted as proof by itself; the exact network content responsible for the match was identified in the PCAP.
Building a Custom Suricata Detection
After validating the existing Emerging Threats signature, independent detection logic was developed from the observed network behavior.
Generic Behavioral Detection
Detect any outbound FTP file upload using the STOR command.
Tuned Detection
Increase specificity using characteristics observed in the malicious filename.
Generic FTP Upload Rule
alert ftp $HOME_NET any -> $EXTERNAL_NET any (msg:"LOCAL SOC Suspicious FTP File Upload"; flow:established,to_server; ftp.command; content:"STOR"; sid:1000001; rev:1;)
Internal source environment
External destination
Inspect FTP command buffer
Detect outbound file upload
Custom signature identifier
Rule Validation
sudo suricata -T \
-c /etc/suricata/suricata.yaml \
-S rules/local.rules
sudo suricata \
-r pcap/2026-02-03-GuLoader-for-AgentTesla-style-infection-with-FTP-data-exfil.pcap \
-c /etc/suricata/suricata.yaml \
-S rules/local.rules \
-l output/custom-rule-test
Figure 17 — Initial custom behavioral detection for outbound FTP uploads.
The generic rule triggered twice, corresponding to both previously identified FTP uploads.
| FTP Upload | Generic Rule |
|---|---|
| PW_*.html | ALERT |
| Contacts_Thunderbird*.txt | ALERT |
Detection Weakness
The rule detected every outbound FTP STOR operation. In an environment where legitimate FTP uploads are common, this behavior could produce a high number of false positives.
Detection Tuning
To improve specificity, a second rule was developed using the filename structure observed during the credential-related upload:
alert ftp $HOME_NET any -> $EXTERNAL_NET any (msg:"LOCAL SOC Possible Credential Exfiltration via FTP - PW HTML Pattern"; flow:established,to_server; ftp.command; content:"STOR"; ftp.command_data; content:"PW_"; startswith; content:".html"; sid:1000002; rev:2;)
Figure 18 — Tuned Suricata rule based on the observed PW_ HTML filename pattern.
Rule Debugging & Validation
The initial tuned rule did not immediately generate the expected alert. Instead of modifying the rule based on assumptions, Suricata application-layer telemetry was inspected to understand how the FTP command and command data were exposed to the rule engine.
Figure 19 — Application-layer inspection and tuned-rule validation.
| FTP Upload | Generic Rule | Tuned Rule |
|---|---|---|
| PW_*.html | Alert | Alert |
| Contacts_Thunderbird*.txt | Alert | No Alert |
SID 1000001
Higher behavioral coverage
Higher false-positive potentialSID 1000002
Higher pattern specificity
Lower behavioral coverageDetection Engineering Lesson
Broad behavioral detections and highly specific signatures solve different problems. A mature SOC can combine both approaches with contextual correlation rather than relying exclusively on one detection philosophy.
IOC Extraction & Classification
Network indicators were extracted after the suspicious behavior had been reconstructed. Indicators were classified according to their role in the investigation rather than treating every observed address as malicious.
| Type | Indicator | Assessment |
|---|---|---|
| Internal IPv4 | 10.2.3.101 |
Compromised host |
| Hostname | DESKTOP-W7F98GR |
Affected endpoint |
| Type | Indicator | Evidence |
|---|---|---|
| Domain | ftp.corvineagles.com |
FTP exfiltration infrastructure |
| IPv4 | 162.241.123.75 |
FTP control/data destination |
| Service | TCP/21 |
FTP control channel |
Figure 20 — Extraction of network indicators from the investigation.
Figure 21 — IOC and transferred-artifact validation.
IOC ≠ Automatic Malicious Classification
Other infrastructure observed in the PCAP was retained as contextual network evidence unless the investigation directly connected it to malicious behavior. This prevents legitimate services from being incorrectly promoted to high-confidence IOCs.
Reconstructing the Observable Attack Sequence
Individual network artifacts become significantly more useful when they are placed into chronological context.
The packet capture was therefore used to reconstruct the observable sequence of events surrounding the exfiltration.
External Communication
The affected host communicates with external infrastructure over DNS, HTTP and TLS.
FTP Infrastructure Resolution
ftp.corvineagles.com resolves to
162.241.123.75.
FTP Session Established
10.2.3.101 establishes an outbound
FTP control connection to TCP port 21.
First STOR Operation
Credential/system-related HTML data is prepared for outbound transfer.
FTP-DATA Transfer
The associated passive-mode data channel transfers the artifact to the external server.
Second STOR Operation
Thunderbird contact information is uploaded through another FTP data-transfer session.
Figure 22 — Timeline reconstruction from packet timestamps and protocol events.
Figure 23 — Chronological correlation of FTP control and data-transfer activity.
Mapping the Observed Behavior
MITRE ATT&CK was used to describe behaviors supported by the available network evidence and reconstructed transferred content.
Exfiltration Over Unencrypted Non-C2 Protocol
FTP was used to transfer information from the affected host to external infrastructure.
HIGH CONFIDENCESystem Information Discovery
System-related information was present in the reconstructed transferred content.
CONTEXTUAL / SUPPORTEDCredentials from Password Stores
Credential-related information was observed in the transferred material.
CONTEXTUAL / SUPPORTEDEmail Collection
Thunderbird-related information was observed in the exfiltrated artifacts.
CONTEXTUAL / SUPPORTEDEvidence-Aware ATT&CK Mapping
Technique mappings should reflect the confidence supported by the available evidence. The FTP exfiltration technique is directly visible in network telemetry, while host-level collection and credential-access behaviors have more limited visibility from a PCAP-only investigation.
Validating the Independent Investigation
Ground-truth documentation was intentionally reviewed only after the network investigation had produced an independent assessment.
This prevented the expected answer from influencing the initial interpretation of the packet evidence.
Independently Identified Activity
10.2.3.101 identified.
Figure 24 — Final comparison between independent findings and the supplied ground truth.
The independent packet analysis aligned with the AgentTesla-style exfiltration activity described by the ground-truth material.
This strengthened confidence that the conclusions were derived from observable evidence rather than from prior knowledge of the expected scenario.
Final SOC Analyst Verdict
The investigation produced multiple mutually supporting sources of evidence demonstrating malicious outbound data transfer from the internal endpoint.
Malware-Related Data Exfiltration
Evidence Supporting the Verdict
Network Metadata
Identified the internal host and external FTP infrastructure.
FTP Control Traffic
Demonstrated authentication and outbound STOR operations.
FTP-DATA
Confirmed corresponding data-transfer sessions.
Stream Reconstruction
Demonstrated that meaningful host/user information was transferred.
Suricata Detection
Independently detected AgentTesla-style FTP exfiltration.
Rule Validation
Connected the IDS signature directly to packet-level content.
Confirmed FTP-Based Data Exfiltration
The affected endpoint established communication with external FTP infrastructure and transmitted system, credential-related, and Thunderbird-related information through outbound FTP data-transfer sessions.
Suricata independently generated detections consistent with AgentTesla-style exfiltration, and the relevant signature was validated directly against the underlying packet content.
Recommended Response Actions
Based on the network evidence, the affected endpoint should be treated as compromised and escalated through the incident-response process.
Isolate the Endpoint
Remove the affected system from normal network access while preserving evidence required for further analysis.
Preserve Host Evidence
Acquire endpoint telemetry, memory and relevant disk artifacts before destructive remediation where feasible.
Investigate Credentials
Identify potentially exposed credentials and initiate appropriate credential-reset and session-revocation procedures.
Block Confirmed Infrastructure
Apply network controls against infrastructure confirmed by the investigation, according to organizational policy.
Hunt Across the Environment
Search historical network and endpoint telemetry for related indicators and behavioral patterns.
Deploy Detection Logic
Operationalize appropriate Suricata signatures and correlate FTP upload behavior with endpoint context.
From Packet Capture to Defensible Detection
This investigation demonstrated how a relatively small packet capture can be transformed into a complete network-forensics case when the analysis focuses on correlation rather than isolated indicators.
Starting from raw PCAP evidence, the investigation identified the affected endpoint, reconstructed DNS and FTP activity, validated outbound data transfers, correlated Suricata alerts with packet content, and translated the observed behavior into custom IDS detection logic.
Effective SOC analysis is not about collecting the largest number of alerts. It is about turning telemetry into evidence, evidence into understanding, and understanding into detection.