Completed courseworkReports: March 2026

CyberOps & traffic investigation

In CSIA 115: Cyber Ops, I investigated a historical Pushdo malware scenario using a Cisco-provided Security Onion VM. I narrowed the alert window in Sguil, identified the affected Windows host, inspected reconstructed files in NetworkMiner and recorded existing VirusTotal findings in an after-action report.

The Snort, firewall rules & HTTP recovery case study covers a separate lab using live traffic within a supplied Mininet network: triggering an existing signature, diagnosing a failed HTTP download, inserting a routed firewall rule and recording the retest. A companion exercise recovered an HTTP object from a supplied packet capture.

Scope and dates: academic labs completed in March 2026 using course-provided environments and training data. The Pushdo alerts describe June 27, 2017 activity; the assessment screenshots show my analysis on March 8, 2026. The results are historical and have not been retested for this page.

Investigating Pushdo alerts

The assessment began with executable-download and Trojan alerts already loaded in Security Onion. The training material credits Malware Traffic Analysis as the scenario's source. I investigated the alerts to identify the affected host and associated files.

I used Sguil to establish the time window and the common internal host, then examined associated traffic with Wireshark and NetworkMiner. Keeping the time window and host together helped distinguish the related alerts from other training events in the same VM.

Establishing the timeline

The assessment screenshot records the following alert sequence. Times are UTC on June 27, 2017, as recorded in my report; the identifiers are Sguil alert IDs.

Time Alert IDs Recorded signal
13:38:34 5.410, 5.415 WinHttpRequest executable download and PE executable/DLL download over HTTP.
13:43:52 5.420 Another PE executable/DLL download.
13:43:54 5.421, 5.422 Terse executable downloader and a further PE download.
13:44:01 5.428, 5.429 Public-IP lookup and Pushdo check-in.
13:44:04 5.431 Pushdo command-and-control response.
13:44:32 5.438 Possible Tor SSL traffic.

Scroll horizontally to read the full table on a narrow screen.

Download alerts followed by Pushdo signatures supported the infection assessment. The selected alert window does not reveal the initial entry point or user action; those questions require endpoint evidence.

Connecting the host to downloaded files

NetworkMiner identified the internal endpoint as Windows and showed its MAC address and a Dell NIC vendor. Those values let me associate the host with the traffic without relying only on a malware label. Its Files view reconstructed three downloaded objects, and the object properties exposed their SHA-256 hashes.

I used those hashes to look up existing VirusTotal reports and recorded the results. The sizes below are visible in the NetworkMiner screenshots; the detection counts are from my written assessment.

Reconstructed object Size in bytes Vendor detections recorded during coursework Recorded threat label
gerv.gun 241,664 58 of 70 Shiotob / Jaik
trow.exe 330,752 65 of 72 Cutwail / Wigon
wp.exe 307,712 61 of 72 Ursnif / Nymaim

Scroll horizontally to read the full table on a narrow screen.

The hashes linked each object to an existing malware report. These counts are the historical lookup results, not current VirusTotal verdicts or a measure of detection accuracy.

The skills-assessment submission includes the Sguil timeline and NetworkMiner screenshots. The after-action report brings the host, files, hashes and recommendations together.

Separating alert interpretation from proof

Two alerts needed particular care when reviewing the original conclusions:

  • Public-IP lookup: alert 5.428 records a DNS lookup for the host's public address. It occurs after the initial downloads. Its presence does not make the public DNS resolver malicious or establish that the lookup started the infection.
  • Possible Tor traffic: alert 5.438 is a signature's classification of traffic. The assessment did not independently establish a working Tor tunnel or the purpose of any encrypted session.

The report also described downloaded files as having run on the endpoint. The preserved screenshots show downloads and network alerts, but no endpoint process telemetry verifies execution.

Response recommendations

My after-action report recommended host isolation, updated endpoint protection, blocking identified malicious destinations, network segmentation and user training. These were recommendations, not response actions I performed. The exercise ended with investigation and reporting.

A repeat investigation would need the original capture and endpoint logs to examine initial access, process execution and persistence. The repository preserves the report and screenshots, but not the full Security Onion evidence set. That limits independent replay of the incident sequence.

Testing an alert and a firewall rule

In the Mininet lab, H5 requested a file from H10's nginx service through R1, which ran Snort and iptables. My screenshots show an existing Snort signature firing, several HTTP 404 responses caused by an incorrect requested filename, and a successful HTTP 200 download after correcting the name.

I then inserted a DROP rule into R1's FORWARD chain for TCP traffic to the simulated server's listening port. The screenshot confirms the rule was present; my written retest answer records that the download was blocked.

Read the Snort, firewall rules & HTTP recovery case study for the topology, command excerpts, request failure and correction, capture results and retest limits. This used the supplied Snort rule set, not signatures I authored.

Recovering a file from captured traffic

The companion exercise used Wireshark's Follow TCP Stream and Export Objects → HTTP on a course-supplied capture. The recovered object was a renamed substitute executable, not real Nimda malware. I saved it under a different filename because a file with the original name already existed.

The stream's HTTP Content-Length and the saved file listing both show 345,088 bytes. That supports recovery of the recorded HTTP object. It is a different file from the 475,448-byte download visible in the earlier Mininet exercise, despite their similar filenames. No hash comparison or executable analysis was recorded for the recovered substitute.

HTTP recovery evidence and limitations explains the source capture and the verification shown in my submission.

Course repository

The CyberOps coursework repository also holds exercises in Windows administration, Linux logs and permissions, Nmap, protocol analysis, access control lists and incident handling.

Networking & packet analysis · Certifications · All projects