<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mounica</title>
    <description>The latest articles on DEV Community by Mounica (@mounica_subhag).</description>
    <link>https://dev.to/mounica_subhag</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4058417%2F9ca99583-8152-4738-8651-1903a8b82517.png</url>
      <title>DEV Community: Mounica</title>
      <link>https://dev.to/mounica_subhag</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mounica_subhag"/>
    <language>en</language>
    <item>
      <title>Hands-On SIEM Lab: Custom Rules for Threat Detection with ELK Stack</title>
      <dc:creator>Mounica</dc:creator>
      <pubDate>Thu, 06 Aug 2026 10:22:46 +0000</pubDate>
      <link>https://dev.to/mounica_subhag/hands-on-siem-lab-custom-rules-for-threat-detection-with-elk-stack-k26</link>
      <guid>https://dev.to/mounica_subhag/hands-on-siem-lab-custom-rules-for-threat-detection-with-elk-stack-k26</guid>
      <description>&lt;p&gt;Author: &lt;strong&gt;Mounica S Goodala&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Date: &lt;strong&gt;06 August 2026&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Introduction
&lt;/h3&gt;

&lt;p&gt;Security Operations Centers rely on SIEM systems to correlate logs and detect malicious activity. This tutorial walks through building three custom correlation rules in the &lt;strong&gt;ELK Stack (Elasticsearch + Kibana)&lt;/strong&gt; to detect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Credential Stuffing (T1110.004)&lt;/strong&gt; — Attackers using stolen credentials to target multiple accounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DNS Tunneling (T1071.004)&lt;/strong&gt; — Attackers abusing DNS to exfiltrate data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerShell Exploitation (T1059.001)&lt;/strong&gt; — Attackers abusing PowerShell to execute malicious scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build a complete detection pipeline—from log injection to alert generation—using open-source tools.&lt;/p&gt;




&lt;h3&gt;
  
  
  🛠️ 1. Lab Environment Setup
&lt;/h3&gt;

&lt;p&gt;The ELK Stack was deployed locally using Elastic's official one-liner, which spins up two Docker containers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Elasticsearch&lt;/strong&gt; on port &lt;code&gt;9200&lt;/code&gt; — the search and indexing engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kibana&lt;/strong&gt; on port &lt;code&gt;5601&lt;/code&gt; — the visual interface for rule creation and alert monitoring.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; &amp;lt;https://elastic.co/start-local&amp;gt; | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Authentication is enabled by default. The credentials can be retrieved from the generated &lt;code&gt;.env&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;elastic-start-local/.env | &lt;span class="nb"&gt;grep &lt;/span&gt;ELASTIC_PASSWORD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Username:&lt;/strong&gt; &lt;code&gt;elastic&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Password:&lt;/strong&gt; (from &lt;code&gt;.env&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This setup provides a lightweight, reproducible SIEM lab suitable for detection engineering.&lt;/p&gt;




&lt;h3&gt;
  
  
  📁 2. Data Views in Kibana
&lt;/h3&gt;

&lt;p&gt;Before writing any rules, Data Views (index patterns) were created in Kibana to make indices searchable. Navigate to &lt;strong&gt;Stack Management → Data Views&lt;/strong&gt; and create the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;test-logs-all&lt;/code&gt; → pattern &lt;code&gt;logs-test*&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;logs-dns&lt;/code&gt; → pattern &lt;code&gt;logs-dns*&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;logs-powershell&lt;/code&gt; → pattern &lt;code&gt;logs-powershell*&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three use &lt;code&gt;@timestamp&lt;/code&gt; as the timestamp field.&lt;/p&gt;

&lt;p&gt;This step ensures that logs injected into Elasticsearch are discoverable in Kibana's Discover interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4bc497fp7oreqxpb3lej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4bc497fp7oreqxpb3lej.png" alt="Test-logs Data View created in Kibana" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  💉 3. Attack Telemetry Injection
&lt;/h3&gt;

&lt;p&gt;To validate the rules, realistic attack telemetry was generated and injected into Elasticsearch using two methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python scripts&lt;/strong&gt; (with the &lt;code&gt;requests&lt;/code&gt; library) for structured, repeatable injections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CURL commands&lt;/strong&gt; for quick, ad-hoc injections directly from the terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All scripts were developed in Visual Studio Code and executed via the integrated terminal.&lt;/p&gt;

&lt;p&gt;Here's a sample REST API call used for injection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"&amp;lt;http://localhost:9200/logs-test/_doc&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-u&lt;/span&gt; elastic:YOUR_PASSWORD &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"@timestamp":"...", "source.ip":"203.0.113.45", ...}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach provides full control over the telemetry data, enabling precise validation of detection logic.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎯 4. Credential Stuffing (T1110.004)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; Credential stuffing occurs when attackers use username/password pairs from data breaches and "spray" them across multiple accounts. The key signature is a single source IP targeting many distinct user accounts, typically with only 1–2 attempts per account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it was tested:&lt;/strong&gt; A Python script injected 15 failed login attempts to 15 distinct users (&lt;code&gt;alice&lt;/code&gt;, &lt;code&gt;bob&lt;/code&gt;, ... &lt;code&gt;oscar&lt;/code&gt;) from a single IP (&lt;code&gt;203.0.113.45&lt;/code&gt;). Each injection received a &lt;code&gt;"result":"created"&lt;/code&gt; response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The detection logic:&lt;/strong&gt; An ES|QL rule aggregates failed authentication attempts by source IP and counts the distinct target usernames using &lt;code&gt;count_distinct()&lt;/code&gt;. If an IP targets more than 10 unique users, an alert is generated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;logs&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;category&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nv"&gt;"authentication"&lt;/span&gt; &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nv"&gt;"failure"&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;eval&lt;/span&gt; &lt;span class="n"&gt;attacker_ip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;source&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;stats&lt;/span&gt;
    &lt;span class="n"&gt;targeted_accounts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;count_distinct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;total_attempts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;example_users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;attacker_ip&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;targeted_accounts&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; The rule triggered with &lt;code&gt;targeted_accounts: 15&lt;/code&gt; from IP &lt;code&gt;203.0.113.45&lt;/code&gt;, confirming successful detection of credential stuffing behavior.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7xpj2ecd0adysk0ps2lv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7xpj2ecd0adysk0ps2lv.png" alt="Detailed view of Credential Stuffing detected in Kibana" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🌐 5. DNS Tunneling (T1071.004)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; DNS tunneling exploits the DNS protocol—which is rarely blocked by firewalls—to exfiltrate data or establish C2 channels. Attackers generate a high volume of queries to a single domain with abnormally long subdomains containing encoded payload data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it was tested:&lt;/strong&gt; A Bash loop injected 20 DNS queries, each with a random 120-character subdomain pointing to &lt;code&gt;malicious-tunnel.com&lt;/code&gt;. Each CURL request returned a successful &lt;code&gt;"result":"created"&lt;/code&gt; response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The detection logic:&lt;/strong&gt; An ES|QL rule calculates the character length of the queried domain and aggregates the total count per source IP. Queries exceeding 100 characters are flagged, and any IP generating more than 10 such queries triggers an alert.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;logs&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;dns&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;dns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="k"&gt;not&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;eval&lt;/span&gt; &lt;span class="n"&gt;attacker_ip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;source&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;eval&lt;/span&gt; &lt;span class="n"&gt;query_length&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;query_length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;stats&lt;/span&gt;
    &lt;span class="n"&gt;total_queries&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;sample_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;attacker_ip&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;total_queries&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; The rule flagged &lt;code&gt;total_queries: 20&lt;/code&gt; from IP &lt;code&gt;203.0.113.45&lt;/code&gt;, validating the detection of DNS tunneling activity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmke5uqwzrkz706lwoysc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmke5uqwzrkz706lwoysc.png" alt="Detailed view of DNS Tunneling detected in Kibana" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  💻 6. PowerShell Exploitation (T1059.001)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; PowerShell is a legitimate Windows administration tool frequently abused by attackers to execute malicious scripts, download payloads, and evade detection. Common obfuscation techniques include &lt;code&gt;-EncodedCommand&lt;/code&gt;, its shorthand &lt;code&gt;-e&lt;/code&gt;, and &lt;code&gt;WebClient.DownloadFile&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it was tested:&lt;/strong&gt; Three separate CURL commands injected PowerShell process events with suspicious argument patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One with &lt;code&gt;EncodedCommand&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;One with shorthand &lt;code&gt;e&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;One invoking &lt;code&gt;WebClient.DownloadFile&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each injection returned &lt;code&gt;"result":"created"&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The detection logic:&lt;/strong&gt; An EQL rule inspects the command-line arguments of newly started &lt;code&gt;powershell.exe&lt;/code&gt; processes, specifically looking for strings indicative of abuse.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;process&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nv"&gt;"start"&lt;/span&gt;
&lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;"powershell.exe"&lt;/span&gt;
&lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;command_line&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;"*EncodedCommand*"&lt;/span&gt; &lt;span class="k"&gt;or&lt;/span&gt;
    &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;command_line&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;"*-e *"&lt;/span&gt; &lt;span class="k"&gt;or&lt;/span&gt;
    &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;command_line&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;"*-ec *"&lt;/span&gt; &lt;span class="k"&gt;or&lt;/span&gt;
    &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;command_line&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;"*WebClient*"&lt;/span&gt; &lt;span class="k"&gt;or&lt;/span&gt;
    &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;command_line&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;"*DownloadFile*"&lt;/span&gt; &lt;span class="k"&gt;or&lt;/span&gt;
    &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;command_line&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;"*Reflection.Assembly*"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; Three separate high-severity alerts were generated, confirming the rule's ability to catch varied obfuscation techniques.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F73mvjxbv43b3ysh2zyhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F73mvjxbv43b3ysh2zyhx.png" alt="Detailed view of Suspicious Powershell Arguments detected in Kibana" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🧠 7. Key Learnings
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Choosing the Right Rule Language:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ES|QL&lt;/strong&gt; excels at statistical aggregation across large datasets—counting distinct users, calculating query lengths, and grouping events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EQL&lt;/strong&gt; is superior for parsing discrete process events and matching specific command-line strings with sequence awareness.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Threshold Tuning:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;targeted_accounts &amp;gt; 10&lt;/code&gt; proved effective for credential stuffing.&lt;/li&gt;
&lt;li&gt;Thresholds that are too low generate false positives; thresholds too high risk missing attacks.&lt;/li&gt;
&lt;li&gt;Production environments require baselining to determine optimal thresholds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Layered Detection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Combining authentication logs, DNS queries, and PowerShell telemetry provides comprehensive visibility.&lt;/li&gt;
&lt;li&gt;No single rule is sufficient; a layered approach transforms raw logs into actionable intelligence.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  📊 8. Results
&lt;/h3&gt;

&lt;p&gt;After executing all three rules via &lt;strong&gt;"Run now"&lt;/strong&gt;, the Alerts dashboard displayed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3 alerts&lt;/strong&gt; for Credential Stuffing — each confirming 15 distinct users targeted from a single IP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 alert&lt;/strong&gt; for DNS Tunneling — flagging 20 queries with domains exceeding 100 characters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 alerts&lt;/strong&gt; for PowerShell Exploitation — detecting encoded commands and &lt;code&gt;WebClient&lt;/code&gt; invocations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total:&lt;/strong&gt; 7 alerts across all three techniques, validating the detection logic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pf0iq05x1pjdlr0nylr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pf0iq05x1pjdlr0nylr.png" alt="Detailed view of all 3 MITRE ATT&amp;amp;CK techniques detected in Kibana" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🛠️ 9. Tools Summary
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Docker&lt;/strong&gt; provided a containerized, reproducible environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elasticsearch &amp;amp; Kibana (v9.5.0)&lt;/strong&gt; served as the core SIEM platform.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual Studio Code&lt;/strong&gt; was used for developing Python injection scripts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python + &lt;code&gt;requests&lt;/code&gt;&lt;/strong&gt; injected structured attack telemetry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CURL&lt;/strong&gt; enabled quick, ad-hoc log injection.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🚀 10. Explore Further
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Expand detection coverage to additional MITRE ATT&amp;amp;CK techniques.&lt;/li&gt;
&lt;li&gt;Integrate threat intelligence for alert enrichment.&lt;/li&gt;
&lt;li&gt;Implement automated response playbooks.&lt;/li&gt;
&lt;li&gt;Deploy Elastic Agents for real endpoint telemetry.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  📚 11. References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;MITRE ATT&amp;amp;CK T1110.004&lt;/li&gt;
&lt;li&gt;MITRE ATT&amp;amp;CK T1071.004&lt;/li&gt;
&lt;li&gt;MITRE ATT&amp;amp;CK T1059.001&lt;/li&gt;
&lt;li&gt;Elastic Security Docs&lt;/li&gt;
&lt;li&gt;Elastic Docker Deployment&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💬 Discussion
&lt;/h3&gt;

&lt;p&gt;What MITRE ATT&amp;amp;CK techniques have you built detection rules for? Share your experiences below.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Check out my full technical writeup of CyberDefenders!</title>
      <dc:creator>Mounica</dc:creator>
      <pubDate>Thu, 06 Aug 2026 09:39:12 +0000</pubDate>
      <link>https://dev.to/mounica_subhag/check-out-my-full-technical-writeup-of-cyberdefenders-1mfh</link>
      <guid>https://dev.to/mounica_subhag/check-out-my-full-technical-writeup-of-cyberdefenders-1mfh</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mounica_subhag/haweye-lab-blue-team-network-forensics-walkthrough-2b05" class="crayons-story__hidden-navigation-link"&gt;HawEye Lab Blue Team - Network Forensics Walkthrough&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mounica_subhag" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4058417%2F9ca99583-8152-4738-8651-1903a8b82517.png" alt="mounica_subhag profile" class="crayons-avatar__image" width="800" height="572"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mounica_subhag" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Mounica
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Mounica
                
              
              &lt;div id="story-author-preview-content-4289615" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mounica_subhag" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4058417%2F9ca99583-8152-4738-8651-1903a8b82517.png" class="crayons-avatar__image" alt="" width="800" height="572"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Mounica&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mounica_subhag/haweye-lab-blue-team-network-forensics-walkthrough-2b05" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 1&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mounica_subhag/haweye-lab-blue-team-network-forensics-walkthrough-2b05" id="article-link-4289615"&gt;
          HawEye Lab Blue Team - Network Forensics Walkthrough
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cybersecurity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cybersecurity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mounica_subhag/haweye-lab-blue-team-network-forensics-walkthrough-2b05" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mounica_subhag/haweye-lab-blue-team-network-forensics-walkthrough-2b05#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>security</category>
    </item>
    <item>
      <title>HawEye Lab Blue Team - Network Forensics Walkthrough</title>
      <dc:creator>Mounica</dc:creator>
      <pubDate>Sat, 01 Aug 2026 20:34:31 +0000</pubDate>
      <link>https://dev.to/mounica_subhag/haweye-lab-blue-team-network-forensics-walkthrough-2b05</link>
      <guid>https://dev.to/mounica_subhag/haweye-lab-blue-team-network-forensics-walkthrough-2b05</guid>
      <description>&lt;h2&gt;
  
  
  CyberDefenders HawkEye Lab – Official Blue Team Write-up
&lt;/h2&gt;

&lt;p&gt;Author: &lt;strong&gt;Mounica S Goodala&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Date: &lt;strong&gt;2026-07-31&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lab: &lt;strong&gt;Network Forensics - KeyLogger Exfiltration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Objective: &lt;strong&gt;Investigate a suspicious network trace to identify the malware variant, exfiltrated data, and attacker infrastructure.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Scenario Overview
&lt;/h2&gt;

&lt;p&gt;An accountant at the organization received a phishing email containing a link to a malicious invoice. Shortly after, SOC analysts detected suspicious outbound network traffic. This investigation focuses on analyzing the provided &lt;code&gt;stealer.pcap&lt;/code&gt; capture to identify the attack chain, the malware used, and the data exfiltrated.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Tools &amp;amp; Environment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wireshark v4.x&lt;/strong&gt; – Packet analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CyberChef&lt;/strong&gt; – Base64 decoding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac Vendor Lookup&lt;/strong&gt; – OUI identification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AbuseIPDB&lt;/strong&gt; – IP geolocation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal (macOS)&lt;/strong&gt; – MD5 hashing&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Investigation Methodology
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Phase 1: Initial Packet Reconnaissance
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open PCAP&lt;/strong&gt;: Loaded &lt;code&gt;stealer.pcap&lt;/code&gt; in Wireshark.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timezone Configuration&lt;/strong&gt;: Adjusted View → Time Display Format to &lt;strong&gt;UTC&lt;/strong&gt; to align with SIEM standards (crucial due to UAE UTC+4 offset).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File Statistics&lt;/strong&gt; (Statistics → Capture File Properties):

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Total Packets&lt;/strong&gt;: &lt;code&gt;4003&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duration&lt;/strong&gt;: &lt;code&gt;01:03:41&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First Packet UTC&lt;/strong&gt;: &lt;code&gt;2019-04-10 20:37&lt;/code&gt; &lt;em&gt;(Corrected from local time)&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Phase 2: Host &amp;amp; Network Mapping
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Most Active Device (Link Layer)&lt;/strong&gt; (Statistics → Conversations → Ethernet):

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MAC Address&lt;/strong&gt;: &lt;code&gt;00:08:02:1c:47:ae&lt;/code&gt; (Sorted by highest packet count).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NIC Manufacturer&lt;/strong&gt;: Looked up OUI &lt;code&gt;00:08:02&lt;/code&gt; via MAC lookup → &lt;strong&gt;Hewlett Packard&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manufacturer HQ&lt;/strong&gt;: &lt;strong&gt;Palo Alto, California, USA&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu03b912no1i7hucwc3y2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu03b912no1i7hucwc3y2.png" alt="MAC address" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Private IPs &amp;amp; Host Count&lt;/strong&gt; (Statistics → Endpoints → IPv4):

&lt;ul&gt;
&lt;li&gt;Identified subnet &lt;code&gt;10.4.10.0/24&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Counted actual hosts: &lt;code&gt;10.4.10.2&lt;/code&gt;, &lt;code&gt;10.4.10.4&lt;/code&gt;, and &lt;code&gt;10.4.10.132&lt;/code&gt; (broadcast &lt;code&gt;.255&lt;/code&gt; excluded).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Total Computers&lt;/strong&gt;: &lt;code&gt;3&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Victim Hostname&lt;/strong&gt; (Filter: &lt;code&gt;dhcp&lt;/code&gt; → Expand &lt;code&gt;Option: Hostname&lt;/code&gt;):

&lt;ul&gt;
&lt;li&gt;The most active host (&lt;code&gt;10.4.10.132&lt;/code&gt;) is &lt;strong&gt;&lt;code&gt;BEIJING-5CD1-PC&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Services&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DNS Server&lt;/strong&gt;: Filtered &lt;code&gt;dns&lt;/code&gt; traffic → Destination IP of queries is &lt;strong&gt;&lt;code&gt;10.4.10.4&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Phase 3: Malware Download &amp;amp; Webserver Analysis
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Malicious Domain &amp;amp; Infrastructure&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Packet 204 (DNS)&lt;/strong&gt;: Queried &lt;code&gt;proforma-invoices.com&lt;/code&gt; → Resolved to &lt;code&gt;217.182.138.150&lt;/code&gt; (Geolocation: &lt;strong&gt;France&lt;/strong&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Malicious File Download&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Filtered &lt;code&gt;http&lt;/code&gt; traffic and used &lt;strong&gt;File → Export Objects → HTTP&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Located &lt;code&gt;tkraw_Protected99.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MD5 Hash&lt;/strong&gt; (via Terminal): &lt;code&gt;71826ba081e303866ce2a2534491a2f7&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webserver Software&lt;/strong&gt;: Analyzed the HTTP response header (Server field) → &lt;strong&gt;LiteSpeed&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxj2j3c1eu97v6hynum6h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxj2j3c1eu97v6hynum6h.png" alt="WebServer Software" width="786" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Victim OS Fingerprinting&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Inspected the &lt;code&gt;User-Agent&lt;/code&gt; in the HTTP GET request → &lt;code&gt;Windows NT 6.1&lt;/code&gt; → &lt;strong&gt;Windows 7&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Victim Public IP&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Followed TCP Stream on Packet 3166 → External NAT IP: &lt;strong&gt;&lt;code&gt;173.66.146.112&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdkcchp72spfqn7jtp7b2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdkcchp72spfqn7jtp7b2.png" alt="Victim's Public IP Address" width="634" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 4: Exfiltration Analysis (SMTP / Email)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SMTP Server Identification&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Filtered &lt;code&gt;smtp&lt;/code&gt; and followed the first TCP stream.&lt;/li&gt;
&lt;li&gt;Server Banner: &lt;code&gt;ESMTP Exim 4.91&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email Server IP&lt;/strong&gt;: &lt;code&gt;23.229.162.69&lt;/code&gt; (Geolocation: &lt;strong&gt;United States&lt;/strong&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg3t07m985uzdjutdf8i7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg3t07m985uzdjutdf8i7.png" alt="SMTP Server Identification" width="799" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Recipient &amp;amp; Credentials&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;The malware sent stolen logs to: &lt;strong&gt;&lt;code&gt;sales.del@macwinlogistics.in&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;SMTP &lt;code&gt;AUTH LOGIN&lt;/code&gt; credentials decoded via CyberChef:

&lt;ul&gt;
&lt;li&gt;Username (Base64): &lt;code&gt;sales.del@macwinlogistics.in&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Password (Base64 &lt;code&gt;U2FsZXNAMjM=&lt;/code&gt;): &lt;strong&gt;&lt;code&gt;Sales@23&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stolen Data &amp;amp; Malware Variant&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Decoded the Base64 email body.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Malware Variant&lt;/strong&gt;: &lt;strong&gt;&lt;code&gt;HawkEye Keylogger - Reborn v9&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bank of America Credentials&lt;/strong&gt; (extracted from the log): &lt;strong&gt;&lt;code&gt;roman.mcguire:P@ssw0rd$&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  4. Summary of Answers
&lt;/h2&gt;

&lt;p&gt;Here is the complete list of answers derived from the investigation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;How many packets does the capture have?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;4003&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;At what time was the first packet captured (UTC)?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2019-04-10 20:37&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;What is the duration of the capture?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;01:03:41&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Most active computer at the link level (MAC)?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;00:08:02:1c:47:ae&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Manufacturer of the NIC?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Hewlett Packard&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;HQ of the manufacturer?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Palo Alto&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;How many computers are on the private /24 network?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Name of the most active computer (Network level)?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;BEIJING-5CD1-PC&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;IP of the organization's DNS server?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;10.4.10.4&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Domain asked about in packet 204?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;proforma-invoices.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;IP of the domain in Q10?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;217.182.138.150&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;Country of the IP in Q11?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;France&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;OS of the victim's computer?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Windows 7&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;Malicious file downloaded?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tkraw_Protected99.exe&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;MD5 hash of the malicious file?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;71826ba081e303866ce2a2534491a2f7&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Webserver software hosting the malware?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;LiteSpeed&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;Public IP of the victim computer?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;173.66.146.112&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;Country of the email server?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;United States&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;Email server software used?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Exim 4.91&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;To which email account is data sent?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sales.del@macwinlogistics.in&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;Password used by malware to send email?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Sales@23&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;Malware variant that exfiltrated the data?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;HawkEye Keylogger - Reborn v9&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;Bank of America access credentials?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;roman.mcguire:P@ssw0rd$&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  5. Conclusion &amp;amp; Recommendations
&lt;/h2&gt;

&lt;p&gt;The investigation confirms a successful &lt;strong&gt;HawkEye Keylogger (Reborn v9)&lt;/strong&gt; infection. The attack chain is as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Initial Access&lt;/strong&gt;: Phishing email directed the accountant to download &lt;code&gt;tkraw_Protected99.exe&lt;/code&gt; from &lt;code&gt;proforma-invoices.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution&lt;/strong&gt;: The malware executed on a Windows 7 host (&lt;code&gt;BEIJING-5CD1-PC&lt;/code&gt; with internal IP &lt;code&gt;10.4.10.132&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Theft&lt;/strong&gt;: The malware harvested credentials (including Bank of America login) and logged keystrokes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exfiltration&lt;/strong&gt;: Stolen data was Base64-encoded and exfiltrated via SMTP to &lt;code&gt;sales.del@macwinlogistics.in&lt;/code&gt; using an &lt;code&gt;Exim 4.91&lt;/code&gt; mail server located in the US.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Recommended Actions&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Immediately reset credentials for &lt;code&gt;roman.mcguire&lt;/code&gt; across all platforms.&lt;/li&gt;
&lt;li&gt;Isolate and reimage the compromised Windows 7 host (&lt;code&gt;BEIJING-5CD1-PC&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Block indicators of compromise (IOCs): &lt;code&gt;proforma-invoices.com&lt;/code&gt;, &lt;code&gt;217.182.138.150&lt;/code&gt;, and &lt;code&gt;23.229.162.69&lt;/code&gt; at the network perimeter.&lt;/li&gt;
&lt;li&gt;Educate employees on phishing awareness.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
