<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>NETRESEC Network Security Blog</title>
    <atom:link href="https://www.netresec.com/rss.ashx" rel="self" type="application/rss+xml" />
    <link>https://www.netresec.com/?page=Blog</link>
    <description>Network Security Monitoring and Network Forensics</description>
    <lastBuildDate>Mon, 08 Jun 2026 07:00:00 GMT</lastBuildDate>
    <language>en</language>
    <sy:updatePeriod>daily</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <generator>NETRESEC RSS Engine</generator>
    <copyright>2010-2023</copyright>
    <category>posts</category>
    <ttl>1440</ttl>
    <image>
      <url>https://media.netresec.com/images/Netresec_N_144x144.png</url>
      <title>NETRESEC Network Security Blog</title>
      <link>https://www.netresec.com/?page=Blog</link>
    </image>
    <item>
      <title>Maximizing IOC Impact</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-06&amp;post=Maximizing-IOC-Impact</link>
      <pubDate>Mon, 08 Jun 2026 07:00:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/network-iocs-meme_809x692.png" type="image/png" />
      <category>IOC</category>
      <category>C2</category>
      <category>threat intelligence</category>
      <category>threat-intel</category>
      <category>ThreatFox</category>
      <category>OTX</category>
      <category>MISP</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-06&amp;post=Maximizing-IOC-Impact</guid>
      <description>Ive been thinking about threat intelligence lately. Specifically: indicators of compromise (IOC), how and where to share them to cause maximum pain to adversaries and help as many organizations as possible protect themselves. I regularly analyze malware traffic from sandboxes such as ANY.RUN, Triage[...]</description>
      <content:encoded>&lt;p&gt;
		I’ve been thinking about threat intelligence lately. Specifically: indicators of compromise (IOC), how and where to share them to cause maximum pain to adversaries and help as many organizations as possible protect themselves.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/network-iocs-meme_809x692.png" alt="Network IOCs are without doubt causing less pain to adversaries than other IOCs. But they are causing pain!" width="809" height="692" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		I regularly analyze malware traffic from sandboxes such as &lt;a href="https://app.any.run/"&gt;ANY.RUN&lt;/a&gt;, &lt;a href="https://tria.ge/"&gt;Triage&lt;/a&gt;, &lt;a href="https://www.joesandbox.com/"&gt;JoeSandbox&lt;/a&gt; and &lt;a href="https://hybrid-analysis.com/"&gt;Hybrid Analysis&lt;/a&gt;. Pulling fresh PCAPs is an easy way to find malware command-and-control (C2) traffic to previously unknown C2 servers. This method can even reveal new and unreported C2 protocols. I often use &lt;a href="https://www.netresec.com/?page=CapLoader"&gt;CapLoader&lt;/a&gt; and &lt;a href="https://www.netresec.com/?page=NetworkMiner"&gt;NetworkMiner&lt;/a&gt; to extract network IOCs, such as:
		&lt;ul&gt;&lt;li&gt;Domain names&lt;/li&gt;&lt;li&gt;IP:port&lt;/li&gt;&lt;li&gt;URIs&lt;/li&gt;&lt;li&gt;JA3 / JA3S hashes&lt;/li&gt;&lt;li&gt;JA4 fingerprints&lt;/li&gt;&lt;li&gt;X.509 certificate thumbprints&lt;/li&gt;&lt;li&gt;packet pattern/signature&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		These indicators can be found in the lower sections of David J. Bianco’s &lt;a href="https://detect-respond.blogspot.com/2013/03/the-pyramid-of-pain.html"&gt;pyramid of pain&lt;/a&gt;. But that doesn’t mean they’re not worth sharing — they’re easy to detect, have low false-positive rates, and are very actionable. Their main drawback is short lifetime, so rapid and wide IOC distribution matters.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/IOC-Pyramid-of-Pain_2048x1123.webp" alt="ASCII IOC Pyramid of Pain" width="2048" height="1123" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: ASCII pyramid from &lt;a href="https://netresec.com/?b=25Be9dd"&gt;Optimizing IOC Retention Time&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;

		False positives are a real concern, so manual verification of an IOC is required before sharing. Many IOCs are already reported to threat-intel sharing platforms, like &lt;a href="https://threatfox.abuse.ch/"&gt;ThreatFox&lt;/a&gt;, &lt;a href="https://otx.alienvault.com/"&gt;OTX&lt;/a&gt; or one of the many &lt;a href="https://www.misp-project.org/communities/"&gt;MISP&lt;/a&gt; instances out there, but I frequently find ones that aren’t. When I discover an IOC, I typically consider these options:
		&lt;ul&gt;&lt;li&gt;Report directly to the hosting provider, registrar or network owner.&lt;/li&gt;&lt;li&gt;Share with a national or sector CERT.&lt;/li&gt;&lt;li&gt;Share with an ISAC.&lt;/li&gt;&lt;li&gt;Publish to threat-sharing platforms (&lt;a href="https://threatfox.abuse.ch/"&gt;ThreatFox&lt;/a&gt;/&lt;a href="https://urlhaus.abuse.ch/"&gt;URLhaus&lt;/a&gt;/&lt;a href="https://otx.alienvault.com/"&gt;OTX&lt;/a&gt;/&lt;a href="https://www.misp-project.org/communities/"&gt;MISP&lt;/a&gt;/&lt;a href="https://www.abuseipdb.com/"&gt;AbuseIPDB&lt;/a&gt;/etc).&lt;/li&gt;&lt;li&gt;
			Publish in a &lt;a href="https://netresec.com/?b=261f535"&gt;blog&lt;/a&gt; &lt;a href="https://netresec.com/?b=262adb9"&gt;post&lt;/a&gt; or on &lt;a href="https://infosec.exchange/@netresec/115905237000922504"&gt;social&lt;/a&gt; &lt;a href="https://infosec.exchange/@netresec/116046513072954545"&gt;media.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		I generally pick outlets case-by-case. Sometimes by convenience, sometimes by where I expect to achieve the greatest impact. Is there a single best destination? Often not, it depends.
	  &lt;/p&gt;&lt;p&gt;
		Sending an IOC to every channel is comprehensive, but time-consuming. Ideally, a verified IOC drop point that automatically propagates to all the right places would be fantastic! But as far as I know, no such service exists.
	  &lt;/p&gt;&lt;p&gt;
		I mostly look at malware that hit many victims, which is why it makes sense to prioritize fast, broad distribution (free threat-intel services and blog/social posts). But I have also investigated APT attacks and state-sponsored campaigns, such as &lt;a href="https://www.youtube.com/watch?v=AIlFENir-8E"&gt;Man-on-the-Side attacks&lt;/a&gt;, &lt;a href="https://netresec.com/?b=14AA3E6"&gt;SSL&lt;/a&gt; &lt;a href="https://netresec.com/?b=14955CB"&gt;MITM&lt;/a&gt; attacks &lt;a href="https://netresec.com/?b=1328C6B"&gt;in China&lt;/a&gt; as well as DNS traffic from &lt;a href="https://netresec.com/?b=21A27a0"&gt;Cozy Bear’s SolarWinds hack&lt;/a&gt;. The right place to share IOCs for APT attacks is often different than for mainstream malware. For targeted or sensitive operations, I recommend reaching out to victims, CERTs or a trusted intermediary.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/crossroads_1800x1064.webp" alt="crossroads signs" width="1800" height="1064" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		Factors affecting the choice of IOC sharing method:
		&lt;ul&gt;&lt;li&gt;Scope and scale of impact: Mass-distribution malware should be blocked widely. Notify specific victims or CERTs on targeted attacks.&lt;/li&gt;&lt;li&gt;Lifetime and volatility: Short-lived IOCs (IPs, domains) benefit from fast, broad distribution. Longer-lived indicators are better shared in reports or blog posts that provide more depth and context.&lt;/li&gt;&lt;li&gt;False-positive risk: Prefer channels that support easy updates/removals and allow others to validate or comment.&lt;/li&gt;&lt;li&gt;Remediation: If a takedown or abuse report is appropriate, contact providers or registrars directly.&lt;/li&gt;&lt;li&gt;Victimology: Choose platforms aligned with who needs to act. ISACs/CERTs for sectors, targeted notifications for known victims, open feeds for broad coverage.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		Many companies and organizations engage in mutual sharing in closed trust groups, expecting that by sharing with others, they will return the favor. This creates a "win-win" situation for the trust group members, while the wider community misses out. As someone who doesn't require IOCs, I find that this approach can limit my reach. I prefer to get information out to as many people as possible, as quickly as possible, with minimum effort.

		I’ve also noticed a growing commercialization of threat intelligence, which is both good and bad. It can provide funding for threat-intel platforms, but may also limit reach when threat feeds and APIs get paywalled.
	  &lt;/p&gt;&lt;p&gt;
		Workflow for IOC sharing:
		&lt;ol&gt;&lt;li&gt;Identify a potential malicious indicator (IP/domain/JA4 etc).&lt;/li&gt;&lt;li&gt;Pivot on the indicator to verify maliciousness and check for false positives.&lt;/li&gt;&lt;li&gt;If uncertain, ask in a trust-group, forum or request input on social media.&lt;/li&gt;&lt;li&gt;Check existing public feeds and databases for the IOC.&lt;/li&gt;&lt;li&gt;Assess urgency, impact, and victimology.&lt;/li&gt;&lt;!--&lt;li&gt;Share or report the IOC&lt;/li&gt;--&gt;&lt;li&gt;If new and high-impact: submit to one or several open sharing platforms.&lt;/li&gt;&lt;li&gt;If you have additional context: share it in a blog post or social notice.&lt;/li&gt;&lt;li&gt;If targeted or sensitive: notify the appropriate CERT or affected organizations privately.&lt;/li&gt;&lt;li&gt;If abuse/takedown is feasible: report to provider/registrar or request assistance from a national CERT.&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;p&gt;
		I’m interested in hearing how others approach this. What works for you, and how do you maximize IOC sharing with minimal effort? Reach out via &lt;a href="https://infosec.exchange/@netresec/116713213615485124"&gt;social&lt;/a&gt; &lt;a href="https://bsky.app/profile/netresec.com/post/3mnr4qrmzb22n"&gt;media&lt;/a&gt;, &lt;a href="https://www.netresec.com/?page=AboutNetresec"&gt;email&lt;/a&gt; or share your thoughts in a writeup or blog post. Also, if you run an automated IOC propagation service, please &lt;a href="https://www.netresec.com/?page=AboutNetresec"&gt;reach out&lt;/a&gt;!
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>PolarProxy 2.0.1 Released</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-06&amp;post=PolarProxy-2-0-1-Released</link>
      <pubDate>Fri, 05 Jun 2026 06:45:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <category>PolarProxy</category>
      <category>PCAP</category>
      <category>TLS</category>
      <category>proxy</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-06&amp;post=PolarProxy-2-0-1-Released</guid>
      <description>Our TLS inspection proxy PolarProxy has been updated with bug fixes, improved performance and more reliable PCAP output. The recent PolarProxy 2.0 release added musl/Alpine compatibility and support for unencrypted HTTP proxy requests. But there were a few small, yet very important, updates that unf[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/PolarProxy_2-0-1_2000x2000.webp" alt="PolarProxy 2.0.1" width="2000" height="2000" style="float: right; max-width: 50%; height:auto" /&gt;&lt;p&gt;
		Our TLS inspection proxy &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;PolarProxy&lt;/a&gt; has been updated with bug fixes, improved performance and more reliable PCAP output.
	  &lt;/p&gt;&lt;p&gt;
		The recent &lt;a href="https://netresec.com/?b=2658a26"&gt;PolarProxy 2.0 release&lt;/a&gt; added musl/Alpine compatibility and support for unencrypted HTTP proxy requests. But there were a few small, yet very important, updates that unfortunately didn’t make it into that release. The new PolarProxy 2.0.1 release takes care of this.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Bug Fixes&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		The PolarProxy 2.0.1 release fixes three bugs affecting non-TLS traffic: two that could block non-TLS connections under certain conditions, and one that could corrupt packets in output PCAP data.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Improved Performance&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Memory overhead has been reduced as part of a major overhaul of PolarProxy’s data-flow logic. PolarProxy now caches less data, reducing CPU and memory use while supporting more simultaneous sessions.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/pcap-vs-throughput_1000x679.webp" alt="PCAP vs. throughput" width="1000" height="679" style="float: right; max-width: 50%; height:auto;" /&gt;&lt;p&gt;&lt;b&gt;PCAP vs Throughput&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;PolarProxy&lt;/a&gt; now prioritizes accurate PCAP output over raw proxy throughput. If the consumer of a real-time &lt;a href="https://en.wikipedia.org/wiki/PCAP-over-IP"&gt;PCAP-over-IP&lt;/a&gt; stream (for example &lt;a href="https://arkime.com/settings#reader-poi"&gt;Arkime&lt;/a&gt; or &lt;a href="https://github.com/emnahum/zeek-pcapovertcp-plugin"&gt;Zeek&lt;/a&gt;) cannot process encrypted traffic fast enough, PolarProxy may rate-limit proxied traffic to avoid dropping packets in the PCAP output.  This preserves every decrypted packet for forensic analysis, unlike many TLS-inspection products that sacrifice decrypted packets to maximize throughput.
	  &lt;/p&gt;&lt;p&gt;
		A single dropped packet can cause major problems, particularly in forensic investigations. To ensure analysts see every decrypted packet, &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;PolarProxy&lt;/a&gt; avoids dropping packets when possible.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>CapLoader 2.1.0 Released</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=CapLoader-2-1-0-Released</link>
      <pubDate>Wed, 27 May 2026 09:15:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/CapLoader_2-1-0-0_TLS-and-QUIC_1050x926.png" type="image/png" />
      <category>CapLoader</category>
      <category>JA3</category>
      <category>JA4</category>
      <category>TLS</category>
      <category>QUIC</category>
      <category>RFC9849</category>
      <category>RFC8086</category>
      <category>RFC8926</category>
      <category>Encrypted Client Hello</category>
      <category>post-quantum</category>
      <category>OSINT</category>
      <category>encapsulation</category>
      <category>decapsulation</category>
      <category>Rösti</category>
      <category>ScanMalware</category>
      <category>GRE</category>
      <category>q13d0311h3_55b375c5d22e_5a1f323ef56d</category>
      <category>t13d1516h2_8daaf6152771_02713d6af862</category>
      <category>t13d1517h2_8daaf6152771_b0da82dd1658</category>
      <category>t13d1515h2_8daaf6152771_f37e75b10bcc</category>
      <category>t13d1516h2_8daaf6152771_9b887d9acb53</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=CapLoader-2-1-0-Released</guid>
      <description>CapLoader has been updated to version 2.1.0. The new release comes with better JA3/JA4 extraction and integration of additional threat-intel and OSINT services. We have also added support for more encapsulation protocols. TLS Client Hello Reassembly TLS handshakes no longer reliably fit in a single[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/CL_2-1-0_770x770.webp" alt="CapLoader 2.1.0" width="770" height="770" style="float: right; max-width: 50%; height:auto" /&gt;&lt;p&gt;&lt;a href="https://www.netresec.com/?page=CapLoader"&gt;CapLoader&lt;/a&gt; has been updated to version 2.1.0. The new release comes with better JA3/JA4 extraction and integration of additional threat-intel and OSINT services. We have also added support for more encapsulation protocols.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;TLS Client Hello Reassembly&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		TLS handshakes no longer reliably fit in a single packet. Modern TLS features, like &lt;a href="https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem/"&gt;post-quantum key exchanges&lt;/a&gt; and &lt;a href="https://datatracker.ietf.org/doc/html/rfc9849"&gt;Encrypted Client Hello&lt;/a&gt; (ECH), often expand handshake sizes across multiple TCP segments. The same trend appears in QUIC traffic, where TLS handshakes now often are too large to fit in a single UDP packet.
	  &lt;/p&gt;&lt;p&gt;
		As a result, packet‑analysis tools that parse live traffic or PCAP files (like CapLoader) must cache partial TLS handshakes and reassemble them to recover the complete TLS ClientHello messages. &lt;a href="https://www.netresec.com/?page=NetworkMiner"&gt;NetworkMiner&lt;/a&gt; and &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; already perform TLS handshake reassembly; CapLoader now supports it as well. This enables CapLoader to extract metadata from large TLS handshakes, including SNI hostnames, JA3 hashes and JA4 fingerprints.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/CapLoader_2-1-0-0_TLS-and-QUIC_1050x926.png" alt="TLS and QUIC sessions in CapLoader 2.1.0.0" width="1050" height="926" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		The screenshot above shows CapLoader displaying information extracted from PCAP files that contain TLS and QUIC traffic with multi‑segment TLS 1.3 handshakes. The visible JA4 fingerprints for the client handshakes are:
		&lt;ul&gt;&lt;li&gt;q13d0311h3_55b375c5d22e_5a1f323ef56d − HTTP/3 w/ ECH&lt;/li&gt;&lt;li&gt;t13d1516h2_8daaf6152771_02713d6af862 − HTTP/2 w/ ECH&lt;/li&gt;&lt;li&gt;t13d1517h2_8daaf6152771_b0da82dd1658 − HTTP/2 w/ ECH&lt;/li&gt;&lt;li&gt;t13d1515h2_8daaf6152771_f37e75b10bcc − HTTP/2&lt;/li&gt;&lt;li&gt;t13d1516h2_8daaf6152771_9b887d9acb53 − HTTP/2&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		All these handshakes support post-quantum key agreements with a 1216 byte X25519MLKEM768 key. The first three listed JA4 fingerprints also use ECH.
	  &lt;/p&gt;&lt;img src="https://www.netresec.com/images/JA4_t13i010400_0f2cb44170f4_5c4c70b73fa0_518x136.webp" width="518" height="136" alt="JA4 fingerprint t13i010400_0f2cb44170f4_5c4c70b73fa0_518x136" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;b&gt;Threat Intel and OSINT&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.netresec.com/?page=CapLoader"&gt;CapLoader&lt;/a&gt; now matches network traffic against indicators of compromise (IOCs) from &lt;a href="https://infosec.exchange/@viql"&gt;Johannes Bader&lt;/a&gt;'s open source threat intelligence platform &lt;a href="https://rosti.dev/"&gt;Rösti&lt;/a&gt;. An alert is raised whenever the analysed traffic matches any of the following IOC types on Rösti:
		&lt;ul&gt;&lt;li&gt;domain&lt;/li&gt;&lt;li&gt;domain:port&lt;/li&gt;&lt;li&gt;IP&lt;/li&gt;&lt;li&gt;IP:port&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		When a match occurs, CapLoader raises an alert on the flow/service and includes the matching IOC type and value.
		Rösti aggregates IOCs from public feeds, researchers, and threat‑intel providers (including IOCs published on this blog).
	  &lt;/p&gt;&lt;p&gt;
		We have also extended the OSINT lookup shortcuts in CapLoader to include the following websites:
		&lt;ul&gt;&lt;li&gt;&lt;a href="https://bgp.tools"&gt;BGP.Tools&lt;/a&gt; (IP lookup)&lt;/li&gt;&lt;li&gt;&lt;a href="https://ipinfo.io"&gt;IPinfo&lt;/a&gt; (IP lookup)&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.netify.ai"&gt;Netify&lt;/a&gt; (IP lookup)&lt;/li&gt;&lt;li&gt;&lt;a href="https://scanmalware.com"&gt;ScanMalware&lt;/a&gt; (domain, IP and ASN lookups)&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		Right-click a flow/service/host/alert in &lt;a href="https://www.netresec.com/?page=CapLoader"&gt;CapLoader&lt;/a&gt; and select "Lookup [domain/IP/ASN] at...", which opens the chosen OSINT site in a browser tab with info about the domain/IP/ASN.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Encapsulated Protocols&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		CapLoader already decapsulates &lt;a href="https://datatracker.ietf.org/doc/html/rfc2784"&gt;GRE&lt;/a&gt;, &lt;a href="https://datatracker.ietf.org/doc/html/rfc7348"&gt;VXLAN&lt;/a&gt;, &lt;a href="https://datatracker.ietf.org/doc/html/rfc5415"&gt;CapWap&lt;/a&gt;, &lt;a href="https://www.rfc-editor.org/rfc/rfc4380.html"&gt;Teredo&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/GPRS_Tunnelling_Protocol#GTP-U_-_GTP_user_data_tunneling"&gt;GTP-U&lt;/a&gt;, &lt;a href="https://wiki.mikrotik.com/wiki/Manual:Tools/Packet_Sniffer"&gt;TZSP&lt;/a&gt; as well as &lt;a href="https://datatracker.ietf.org/doc/html/rfc1853"&gt;IP-in-IP&lt;/a&gt;.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/Decapsulate_all-the-things_1336x1000.webp" alt="Decapsulate all the things" width="1336" height="1000" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		With this release we add support for extracting traffic from the following encapsulation protocols:
		&lt;ul&gt;&lt;li&gt;Aruba GRE encapsulated WiFi&lt;/li&gt;&lt;li&gt;Geneve (&lt;a href="https://datatracker.ietf.org/doc/html/rfc8926"&gt;RFC 8926&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;GRE in UDP (&lt;a href="https://datatracker.ietf.org/doc/html/rfc8086"&gt;RFC 8086&lt;/a&gt;) to ports 4754 and 4755&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Improved Protocol Detection&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		The precision of &lt;a href="https://www.netresec.com/?page=CapLoader"&gt;CapLoader&lt;/a&gt;'s built-in port independent protocol identification has been improved and several additional protocols can now be detected, including &lt;a href="https://www.gsocket.io/"&gt;GSocket&lt;/a&gt;, Hioles, &lt;a href="https://malpedia.caad.fkie.fraunhofer.de/details/elf.mirai"&gt;Mirai&lt;/a&gt;, &lt;a href="https://malpedia.caad.fkie.fraunhofer.de/details/win.pulsar_rat"&gt;Pulsar RAT&lt;/a&gt;, &lt;a href="https://malpedia.caad.fkie.fraunhofer.de/details/win.pure_rat"&gt;PureRAT&lt;/a&gt;, &lt;a href="https://malpedia.caad.fkie.fraunhofer.de/details/win.svcstealer"&gt;SVCStealer&lt;/a&gt; and &lt;a href="https://malpedia.caad.fkie.fraunhofer.de/details/win.xenorat"&gt;XenoRAT&lt;/a&gt;.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>PolarProxy 2.0 Released</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=PolarProxy-2-0-Released</link>
      <pubDate>Mon, 18 May 2026 07:01:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <category>PolarProxy</category>
      <category>systemd</category>
      <category>docker</category>
      <category>cutoff</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=PolarProxy-2-0-Released</guid>
      <description>A new major release of PolarProxy is out with a self-contained single-file binary, expanded platform support (musl/ARM64), and improved container and service plumbing. PolarProxy is a transparent TLS/SSL inspection proxy built for incident responders, malware analysts and security researchers. It de[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/PolarProxy_2-0_2000x2000.webp" alt="PolarProxy 2.0" width="2000" height="2000" style="float: right; max-width: 50%; height:auto" /&gt;&lt;p&gt;A new major release of &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;PolarProxy&lt;/a&gt; is out  with a self-contained single-file binary, expanded platform support (musl/ARM64), and improved container and service plumbing.&lt;/p&gt;&lt;p&gt;
	  PolarProxy is a transparent TLS/SSL inspection proxy built for incident responders, malware analysts and security researchers. It decrypts and re‑encrypts TLS traffic and writes decrypted sessions to PCAP for analysis in Wireshark or an IDS.
	&lt;/p&gt;&lt;p&gt;&lt;b&gt;What's new&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Packaged as a self-contained, single-file binary for easier installation and management.&lt;/li&gt;&lt;li&gt;Improved HTTP proxy server: support for unencrypted HTTP traffic with &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--nontls allow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Upgraded runtime: migrated from .NET 8 to .NET 10.&lt;/li&gt;&lt;li&gt;More supported platforms: Linux musl (Alpine) builds for the ARM64 architecture added.&lt;/li&gt;&lt;li&gt;Simplified container deployment: Dockerfile and docker-compose.yml included with all musl/Alpine releases.&lt;/li&gt;&lt;li&gt;Service installer for Linux: systemd unit (polarproxy.service) and install script included in non-musl Linux releases.&lt;/li&gt;&lt;li&gt;
			New runtime flags:
			&lt;ul&gt;&lt;li&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--tlstimeout &amp;lt;seconds&amp;gt;&lt;/span&gt; — sets a TLS handshake/authentication timeout.&lt;/li&gt;&lt;li&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--cutoff &amp;lt;bytes&amp;gt;&lt;/span&gt; — limits PCAP output to the specified number of bytes per flow.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Why this release matters&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Self-contained single binary simplifies deployment and maintenance. This is a breaking change, at least for container/pod deployments, so make sure to validate your deployment before rolling out the new 2.0 release to production.&lt;/li&gt;&lt;li&gt;The .NET 10 upgrade brings improved runtime performance and security updates.&lt;/li&gt;&lt;li&gt;Better container support with musl/Alpine build for ARM64 in addition to existing x64 builds, and simplified container deployments with included config files.&lt;/li&gt;&lt;li&gt;The new timeout for TLS handshakes improves error handling of connections to broken TLS middleboxes and extremely slow web servers.&lt;/li&gt;&lt;li&gt;The flow cutoff CLI option enables users to prevent large downloads from filling up disk volumes. This setting also limits the per-flow size of decrypted traffic that is made available through &lt;a href="https://netresec.com/?b=228fddf"&gt;PCAP-over-IP&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Quick start for Linux (regular user)&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;
		  Download the appropriate tar archive for your platform (see &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;download links&lt;/a&gt;).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;
		  Create directory:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;mkdir ~/PolarProxy&lt;/div&gt;&lt;/li&gt;&lt;li&gt;
		  Change directory:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;cd ~/PolarProxy/&lt;/div&gt;&lt;/li&gt;&lt;li&gt;
		  Extract the archive:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;tar -xzf ~/Downloads/PolarProxy_2.0.0_linux-x64.tar.gz&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Create log directory:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;sudo mkdir -p /var/log/polarproxy&lt;/div&gt;&lt;/li&gt;&lt;li&gt;
		  Change log dir owner:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;sudo chown "$USER" /var/log/polarproxy&lt;/div&gt;&lt;/li&gt;&lt;li&gt;
		  Start PolarProxy:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;./PolarProxy -p 10443,80,443 --socks 1080 --httpconnect 8080 --nontls allow --certhttp 10080 -x /var/log/polarproxy/polarproxy.cer -f /var/log/polarproxy/proxyflows.log --pcapoverip 0.0.0.0:57012 -o /var/log/polarproxy/ -v&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;Quick start for Linux with systemd&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Download the appropriate tar archive for your platform (see &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;download links&lt;/a&gt;).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create and change into a new temp directory:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;cd $(mktemp -d)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;
		  Extract the archive:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;tar -xzf ~/Downloads/PolarProxy_2.0.0_linux-x64.tar.gz&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Run install script:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;sudo ./install-polarproxy-service.sh&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Show service status:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;systemctl status polarproxy.service&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Show logs:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;sudo journalctl -t polarproxy&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
		The install script creates a system user “polarproxy”, a systemd service called “polarproxy.service”, and then starts that service. You are, of course, free to modify the installation script and polarproxy.service file if you want a different configuration.
	&lt;/p&gt;&lt;p&gt;&lt;b&gt;Quick start for Alpine Docker&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;
		  Download the appropriate Linux musl archive for your platform (see &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;download links&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Create and change into a new temp directory:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;cd $(mktemp -d)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Extract:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;tar -xzf ~/Downloads/PolarProxy_2.0.0_linux-musl-x64.tar.gz&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Deploy to docker:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;sudo docker compose up -d --build&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Show container status:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;sudo docker ps --filter "name=polarproxy"&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Show logs:&lt;br /&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;sudo docker logs polarproxy&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
		The docker-compose.yml will create a container named “polarproxy” with a non-root user called “polarproxy” without a password.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Listening services in quick start examples&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		All three quick start deployments above expose the following TCP ports:
	  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New';"&gt;10443&lt;/span&gt; — Transparent TLS proxy&lt;/li&gt;&lt;li&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New';"&gt; 1080&lt;/span&gt; — SOCKS server
		&lt;/li&gt;&lt;li&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New';"&gt; 8080&lt;/span&gt; — HTTP Proxy server
		&lt;/li&gt;&lt;li&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New';"&gt;10080&lt;/span&gt; — Web server hosting the root CA certificate
		&lt;/li&gt;&lt;li&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New';"&gt;57012&lt;/span&gt; — &lt;a href="https://netresec.com/?b=228fddf"&gt;PCAP-over-IP&lt;/a&gt; server providing decrypted traffic&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		A port forwarding (DNAT) firewall rule must be configured, which redirects TCP 443 traffic to the transparent TLS proxy, in order to run PolarProxy as a transparent TLS proxy that intercepts outgoing TLS traffic.
		See the Routing Option alternatives on the &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;official PolarProxy page&lt;/a&gt; for more details.
	  &lt;/p&gt;&lt;p&gt;
		Decrypted traffic from all proxy services is accessible through the &lt;a href="https://netresec.com/?b=228fddf"&gt;PCAP-over-IP&lt;/a&gt; service on TCP port 57012. They are also written to PCAP files in /var/log/polarproxy/.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Test your deployment&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Download PolarProxy’s root CA certificate:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		curl -L -o /tmp/polarproxy.cer http://localhost:10080
	  &lt;/div&gt;&lt;p&gt;
		Convert to PEM format:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		openssl x509 -inform DER -in /tmp/polarproxy.cer -out /tmp/pp.crt
	  &lt;/div&gt;&lt;p&gt;
		Monitor decrypted traffic via &lt;a href="https://netresec.com/?b=228fddf"&gt;PCAP-over-IP&lt;/a&gt; in one terminal/shell:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		nc 127.0.0.1 57012 | tcpdump -Anr -
	  &lt;/div&gt;&lt;p&gt;
		Test transparent proxy in another terminal/shell:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
  	  curl --cacert /tmp/pp.crt --connect-to www.netresec.com:443:127.0.0.1:10443 https://www.netresec.com/
	  &lt;/div&gt;&lt;p&gt;
		Test SOCKS proxy:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		curl --cacert /tmp/pp.crt --socks5 127.0.0.1 https://www.netresec.com/
	  &lt;/div&gt;&lt;p&gt;
		Test HTTP proxy:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		curl --cacert /tmp/pp.crt --proxy 127.0.0.1:8080 https://www.netresec.com/
	  &lt;/div&gt;&lt;p&gt;&lt;b&gt;Downloads and docs&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		See the &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;PolarProxy product page&lt;/a&gt; for downloads, full command-line options, sample configurations etc.
	  &lt;/p&gt;&lt;img src="https://www.netresec.com/images/PolarProxy-flow-chart_TLS-added-and-removed_680x234.png" alt="TLS added and removed here" width="680" height="234" style="max-width: 100%; height: auto;" /&gt;&lt;p&gt;Feel free to &lt;a href="https://www.netresec.com/?page=AboutNetresec"&gt;share feedback or report bugs&lt;/a&gt; about PolarProxy.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Remcos Alerts from FlowCarp in EveBox</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=Remcos-Alerts-from-FlowCarp-in-EveBox</link>
      <pubDate>Fri, 08 May 2026 11:49:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/pcap-FlowCarp-json-EveBox_3000x1500.webp" type="image/webp" />
      <category>FlowCarp</category>
      <category>EveBox</category>
      <category>Remcos</category>
      <category>a85be79f7b569f1df5e6087b69deb493</category>
      <category>t13i010400_0f2cb44170f4_5c4c70b73fa0</category>
      <category>t13i010400_0f2cb44170f4_1b583af8cc09</category>
      <category>Eve JSON</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=Remcos-Alerts-from-FlowCarp-in-EveBox</guid>
      <description>There is a wonderful little web-based alert and event front-end called EveBox, which renders Eve JSON formatted data to a web UI. This blog post demonstrates how EveBox can be used to show alert and flow information that FlowCarp has extracted from a Remcos malware infection. Remcos RAT The starting[...]</description>
      <content:encoded>&lt;p&gt;
		There is a wonderful little web-based alert and event front-end called EveBox, which renders Eve JSON formatted data to a web UI. This blog post demonstrates how EveBox can be used to show alert and flow information that FlowCarp has extracted from a Remcos malware infection.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/pcap-FlowCarp-json-EveBox_3000x1500.webp" alt="pcap to FlowCarp to json to EveBox" width="3000" height="1500" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;b&gt;Remcos RAT&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		The starting point of my analysis will be a PCAP file with network traffic from a &lt;a href="https://malpedia.caad.fkie.fraunhofer.de/details/win.remcos"&gt;Remcos RAT&lt;/a&gt; infection, which &lt;a href="https://infosec.exchange/@malware_traffic"&gt;Brad Duncan&lt;/a&gt; has &lt;a href="https://malware-traffic-analysis.net/2026/03/12/index.html"&gt;published on Malware-Traffic-Analysis.net&lt;/a&gt;. The password scheme for the zip file containing the PCAP can be found &lt;a href="https://malware-traffic-analysis.net/about.html"&gt;here&lt;/a&gt;, in case you'd like to follow along and perform the same analysis steps yourself. All commands and examples in this blog post can be run in both Linux and Windows.
	  &lt;/p&gt;&lt;p&gt;
		JSON formatted alerts and flow data can be extracted from the PCAP file with &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; like this:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		flowcarp --input 2026-03-12-SmartApeSG-ClickFix-activity-for-Remcos-RAT.pcap --format EveJson --output -
	  &lt;/div&gt;&lt;p&gt;
		But the free community license of &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; doesn't include a protocol model for Remcos, which is why this command will generate flow events but no alerts about detected Remcos malware traffic. I will therefore submit the pcap file to the free FlowCarp demo server instead, which has a &lt;a href="https://www.netresec.com/?page=FlowCarp"&gt;commercial license&lt;/a&gt; that can identify over 600 protocols. No registration or API key is required to use this demo server (as long as users behave − please behave).
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		curl --data-binary @2026-03-12-SmartApeSG-ClickFix-activity-for-Remcos-RAT.pcap -o remcos-eve.json https://demo.flowcarp.com
	  &lt;/div&gt;&lt;p&gt;
		The downloaded remcos-eve.json file uses the &lt;a href="https://docs.suricata.io/en/latest/output/eve/eve-json-format.html"&gt;Suricata Eve JSON format&lt;/a&gt;, so &lt;a href="https://jqlang.org/"&gt;jq&lt;/a&gt; queries typically used to process Suricata eve.json log files can be used to parse and filter the JSON output from FlowCarp as well.
	  &lt;/p&gt;&lt;ul style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #cccccc; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;&lt;li style="color: #ffffff;"&gt;jq -c 'select(.event_type=="alert")|[.dest_ip, .dest_port, .proto, .alert.signature]' &amp;lt; remcos-eve.json&lt;/li&gt;&lt;li&gt;["193.178.170.155",443,"TCP","MALWARE protocol detected: TLS, Remcos"]&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		This FlowCarp alert indicates that the PCAP file contains TLS-encrypted Remcos traffic, which means that FlowCarp has performed a so-called sub-protocol match to detect the protocol inside of TLS without decrypting the TLS layer. A quick way to verify if this traffic is Remcos in TLS is to check the JA3 hash or JA4 fingerprint of the client's TLS handshake.
	  &lt;/p&gt;&lt;ul style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #cccccc; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;&lt;li style="color: #ffffff;"&gt;tshark -r 2026-03-12-SmartApeSG-ClickFix-activity-for-Remcos-RAT.pcap -Y "ip.dst == 193.178.170.155 and tls.handshake" -T fields -e tls.handshake.ja3 -e tls.handshake.ja4&lt;/li&gt;&lt;li&gt;a85be79f7b569f1df5e6087b69deb493	t13i010400_0f2cb44170f4_5c4c70b73fa0&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		This nicely matches what we expect to see from TLS encrypted Remcos traffic. For reference these are the JA3 and JA4 fingerprints typically associated with Remcos:
	  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;JA3: a85be79f7b569f1df5e6087b69deb493&lt;/li&gt;&lt;li&gt;JA4: t13i010400_0f2cb44170f4_5c4c70b73fa0&lt;/li&gt;&lt;li&gt;JA4: t13i010400_0f2cb44170f4_1b583af8cc09&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		There is always a risk of false positives associated with JA3 or JA4 fingerprints, so a rule of thumb is to not blindly trust JA3/JA4 based alerts without having additional indicators of compromise. FlowCarp performs a much deeper identification of sub-TLS protocols than JA3/JA4, but there's still a false positive risk associated with detection of encrypted malware traffic — so make sure to verify alerts like this with other types of data sources, such as event logs from the infected device or OSINT information about the suspected C2 server. For this alert we can see that &lt;a href="https://x.com/DonPasci" rel="nofollow"&gt;@DonPasci&lt;/a&gt; has reported &lt;a href="https://threatfox.abuse.ch/ioc/1740873/"&gt;193.178.170.155:443&lt;/a&gt; to ThreatFox as being a Remcos C2 server.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;EveBox&lt;/b&gt;&lt;/p&gt;&lt;p&gt;

		EveBox is a web-based front-end for Suricata "EVE" alerts and events, created by &lt;a href="https://infosec.exchange/@ish"&gt;Jason Ish&lt;/a&gt;. The EveBox source code lives on &lt;a href="https://github.com/jasonish/evebox"&gt;GitHub&lt;/a&gt; and pre-built EveBox binaries for Linux and Windows are available on &lt;a href="https://evebox.org/"&gt;evebox.org&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;
		This evebox command will fire up a browser and render information about the flows and alerts in the Eve JSON file from FlowCarp:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		evebox oneshot remcos-eve.json
	  &lt;/div&gt;&lt;img src="https://media.netresec.com/images/Remcos-events-from-FlowCarp-in-EveBox_1122x1405.png" alt="Remcos events from FlowCarp in EveBox" width="1122" height="1405" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		The flows and alerts are displayed in reverse order, so that the most recent events are on top. The Remcos alert stands out in red and immediately catches your eye. Let's change Event Type from "All" to "Alert" just to make sure there are no other alerts.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/Remcos-alert-from-FlowCarp-in-EveBox_1148x648.png" alt="Remcos alert from FlowCarp in EveBox" width="1148" height="648" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		Looks like this was the only alert in this JSON file.
	  &lt;/p&gt;&lt;p&gt;
		EveBox is built for Suricata, but it's really nice that it can be used out-of-the-box to read FlowCarp's JSON logs as well. For reference, let's also see what it looks like when we run the same PCAP file through &lt;a href="https://suricata.io/" rel="nofollow"&gt;Suricata&lt;/a&gt; and import eve.json into EveBox.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/Remcos-events-from-Suricata-in-EveBox_1148x1405.png" alt="Remcos events from Suricata in EveBox" width="1148" height="1405" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		I'm happy to see that Suricata also alerts on the same TCP session as &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt;. This alert was raised by the Emerging Threats signature ID 2036594, which triggers whenever the JA3 hash of a TLS handshake is a85be79f7b569f1df5e6087b69deb493.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>FlowCarp Identifies Protocols</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=FlowCarp-Identifies-Protocols</link>
      <pubDate>Mon, 04 May 2026 14:53:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/tria-ge_260504-hkcr6adt5x_1147x1051.webp" type="image/webp" />
      <category>FlowCarp</category>
      <category>Mirai</category>
      <category>protocol identification</category>
      <category>Triage</category>
      <category>pcap-broker</category>
      <category>tcpdump</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-05&amp;post=FlowCarp-Identifies-Protocols</guid>
      <description>I am thrilled to announce the release of a brand new tool called FlowCarp! FlowCarp is a simple command line tool that performs a very complicated task. It identifies the application layer protocol in network traffic without relying on port numbers, static signatures or code that tries to parse the[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/FlowCarp_2000x2000.webp" alt="FlowCarp logo" width="2000" height="2000" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;&lt;p&gt;
		I am thrilled to announce the release of a brand new tool called FlowCarp!
	  &lt;/p&gt;&lt;p&gt;&lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; is a simple command line tool that performs a very complicated task. It identifies the application layer protocol in network traffic without relying on port numbers, static signatures or code that tries to parse the application layer protocols. Instead, FlowCarp simply computes some statistical measurements on the traffic it sees and compares those measurements to models of known protocols. This allows FlowCarp to identify even proprietary and undocumented protocols, including malware C2 protocols.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;FlowCarp Demo Service&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		There’s a demo FlowCarp web service running on demo.flowcarp.com, which accepts PCAP or PcapNG data via HTTP POST requests. The demo service returns a data structure, which follows the &lt;a href="https://docs.suricata.io/en/latest/output/eve/eve-json-format.html"&gt;Suricata Eve JSON&lt;/a&gt; format, containing flows and alerts. I’d like to stress, however, that the returned flow and alert data is generated by FlowCarp and NOT by Suricata. The Suricata Eve JSON format supports pretty much everything we look for in a good flow and alert output format, which is why we decided to use their format instead of inventing yet another JSON based log format.
	  &lt;/p&gt;&lt;p&gt;
		Let’s give the FlowCarp demo server a spin to see what it can do! I’ll start by downloading the PcapNG file from a suspected &lt;a href="https://tria.ge/260504-hkcr6adt5x"&gt;Mirai sample execution&lt;/a&gt; on Recorded Future’s Triage sandbox.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/tria-ge_260504-hkcr6adt5x_1147x1051.webp" alt="260504-hkcr6adt5x on Tria.ge" width="1147" height="1051" style="max-width: 98%; height:auto; style: clear: both;" /&gt;&lt;p&gt;
		I’ve saved the capture file from Triage locally as “260504-hkcr6adt5x-behavioral1.pcapng”. This file can now be submitted to the FlowCarp demo service like this:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		curl --data-binary @260504-hkcr6adt5x-behavioral1.pcapng -o mirai-eve.json https://demo.flowcarp.com
	  &lt;/div&gt;&lt;p&gt;
		The generated mirai-eve.json file should now contain information about the flows and alerts that FlowCarp has found in the pcapng file. Let’s check which unique services that were contacted in the sandbox execution of this malware sample. I’m using jq to filter on event_type “flow” to show connection information instead of alerts.
	  &lt;/p&gt;&lt;ul style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #cccccc; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;&lt;li style="color: #ffffff;"&gt;jq -c 'select(.event_type=="flow")|[.dest_ip, .dest_port, .proto, .app_proto]' &amp;lt; mirai-eve.json | sort -u&lt;/li&gt;&lt;li&gt;["107.189.17.70",80,"TCP","Mirai"]&lt;/li&gt;&lt;li&gt;["107.189.17.70",80,"TCP",null]&lt;/li&gt;&lt;li&gt;["1.1.1.1",53,"UDP","DNS"]&lt;/li&gt;&lt;li&gt;["185.125.188.61",443,"TCP","DNS"]&lt;/li&gt;&lt;li&gt;["185.125.188.62",443,"TCP","DNS"]&lt;/li&gt;&lt;li&gt;["224.0.0.251",5353,"UDP","DNS"]&lt;/li&gt;&lt;li&gt;["44.219.148.160",443,"TCP","TLS"]&lt;/li&gt;&lt;li&gt;["84.17.50.24",443,"TCP","DNS"]&lt;/li&gt;&lt;li&gt;["84.17.50.8",443,"TCP","TLS"]&lt;/li&gt;&lt;li&gt;["8.8.8.8",53,"UDP","BACnet"]&lt;/li&gt;&lt;li&gt;["8.8.8.8",53,"UDP","DNS"]&lt;/li&gt;&lt;li&gt;["8.8.8.8",53,"UDP","GTPv2"]&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		Alright, let’s see if any of those connections generated an alert:
	  &lt;/p&gt;&lt;ul style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #cccccc; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;&lt;li style="color: #ffffff;"&gt;jq -r -c 'select(.event_type=="alert")|[.dest_ip, .dest_port, .proto, .alert.signature]' &amp;lt; mirai-eve.json | sort -u&lt;/li&gt;&lt;li&gt;["107.189.17.70",80,"TCP","MALWARE protocol detected: Mirai"]&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		FlowCarp tells us that the malware implant is using the Mirai C2 protocol to connect to a C2 server on TCP 107.189.17.70:80.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Running FlowCarp Locally&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		You can, of course, run FlowCarp locally on your own computer or in a container/pod instead of using the demo service. There are pre-compiled binaries of FlowCarp available for download on &lt;a href="https://flowcarp.com/"&gt;flowcarp.com&lt;/a&gt; for most platforms.
	  &lt;/p&gt;&lt;p&gt;
		Let’s re-analyze the Mirai pcapng file, which was sent to the online demo service, but this time FlowCarp will run locally.
	  &lt;/p&gt;&lt;ul style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #cccccc; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;&lt;li style="color: #ffffff;"&gt;./flowcarp --input 260504-hkcr6adt5x-behavioral1.pcapng --output - 2&amp;gt;/dev/null | cut -d, -f 2,3,4 | sort -u&lt;/li&gt;&lt;li&gt;107.189.17.70:80, TCP&lt;/li&gt;&lt;li&gt;107.189.17.70:80, TCP, Mirai&lt;/li&gt;&lt;li&gt;1.1.1.1:53, UDP, DNS&lt;/li&gt;&lt;li&gt;185.125.188.61:443, TCP, DNS&lt;/li&gt;&lt;li&gt;185.125.188.62:443, TCP, DNS&lt;/li&gt;&lt;li&gt;224.0.0.251:5353, UDP, DNS&lt;/li&gt;&lt;li&gt;44.219.148.160:443, TCP, TLS&lt;/li&gt;&lt;li&gt;84.17.50.24:443, TCP, DNS&lt;/li&gt;&lt;li&gt;84.17.50.8:443, TCP, TLS&lt;/li&gt;&lt;li&gt;8.8.8.8:53, UDP, DNS&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		I let FlowCarp use its CSV output format instead of Eve JSON here, which is why cut was used to filter the output instead of jq. Nevertheless, the results are pretty much the same as before; FlowCarp detects Mirai traffic to 107.189.17.70:80.
	  &lt;/p&gt;&lt;p&gt;
		You can try sending this same capture file to an IDS of your choice to see what alerts you get. Chances are that you might not get any alert for the Mirai traffic, since it is rather tricky to create good signatures for the Mirai C2 protocol. FlowCarp, on the other hand, doesn’t need any signatures to detect a protocol. All that is needed to build detection in FlowCarp is some example traffic of the protocol you’d like to identify. This unique feature is what makes FlowCarp so fantastic!
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Real-Time Protocol Identification&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		FlowCarp is designed to run fast and use little resources, so that it can be used for local real-time analysis of network traffic. My general recommendation would be to run FlowCarp as a systemd service or to put it in a container or pod, but if you just want to test its real-time abilities then I suggest that you run this command:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		tcpdump -U -w - | flowcarp --input - --realtime --preview --output -
	  &lt;/div&gt;&lt;p&gt;
		FlowCarp will then read real-time PCAP data from standard input and print flow information – with identified application protocols – to standard output.
	  &lt;/p&gt;&lt;p&gt;
		FlowCarp can also read real-time packet data through &lt;a href="https://netresec.com/?b=228fddf"&gt;PCAP-over-IP&lt;/a&gt;, which allows us to utilize services like Fox-IT’s &lt;a href="https://github.com/fox-it/pcap-broker"&gt;pcap-broker&lt;/a&gt;. You can start a pcap-broker listener like this:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		./pcap-broker -listen 127.0.0.1:57012 -cmd "sudo tcpdump -i eth0 -U -w -"
	  &lt;/div&gt;&lt;p&gt;
		FlowCarp can then access a real-time packet stream from the pcap-broker:
	  &lt;/p&gt;&lt;div style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #ffffff; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;
		./flowcarp --input tcpconnect:127.0.0.1:57012 --realtime --preview --output -
	  &lt;/div&gt;&lt;p&gt;
		I hope you'll find &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; useful!
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>CISA mixup of IOC domains</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-02&amp;post=CISA-mixup-of-IOC-domains</link>
      <pubDate>Thu, 26 Feb 2026 09:35:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/accesscan-glize_2048x887.webp" type="image/webp" />
      <category>Dynu</category>
      <category>CISA</category>
      <category>IOC</category>
      <category>GTIG</category>
      <category>Mandiant</category>
      <category>glize</category>
      <category>accesscam</category>
      <category>accesscan</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-02&amp;post=CISA-mixup-of-IOC-domains</guid>
      <description>Googles Threat Intelligence Group (GTIG) and Mandiants recent Disrupting the GRIDTIDE Global Cyber Espionage Campaign report is great and it has lots of good Indicators of Compromise (IOC). Many of these IOCs had already been shared by CISA last year as part of their Alert AA25-141A titled Russian G[...]</description>
      <content:encoded>&lt;p&gt;
				Google's Threat Intelligence Group (GTIG) and Mandiant's recent &lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/disrupting-gridtide-global-espionage-campaign/"&gt;Disrupting the GRIDTIDE Global Cyber Espionage Campaign&lt;/a&gt; report is great and it has lots of good Indicators of Compromise (IOC). Many of these IOCs had already been shared by CISA last year as part of their &lt;a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa25-141a"&gt;Alert AA25-141A&lt;/a&gt; titled "Russian GRU Targeting Western Logistics Entities and Technology Companies".
				The IOC overlap between these two reports is surprisingly big, provided that the GTIG report covers a Chinese espionage group while the CISA report covers the Russian GRU unit 26165 (aka APT28 / Fancy Bear).
			&lt;/p&gt;&lt;p&gt;
				But some of the domain names in CISA's report from last year are strange. For example, the domain name "accesscan[.]org" doesn't seem to ever have been registered. The GTIG report, however, contains the very similar domain "accesscam[.]org". This accesscam domain is registered to the dynamic DNS provider Dynu Systems, whose services are often &lt;a href="https://threatfox.abuse.ch/asn/398019/"&gt;abused&lt;/a&gt; by malicious actors. Is it possible that there are typos in the IOCs published by CISA? I think so.
			&lt;/p&gt;&lt;img src="https://media.netresec.com/images/accesscan-glize_2048x887.webp" width="2048" height="887" alt="accesscan glize spelling mistakes" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
				Another odd domain in CISA's AA25-141A is "glize[.]com", which I suspect is a typo from either "giize[.]com" or "gleeze[.]com". The two latter domains are listed in the GTIG report and both of them also belong to the dynamic DNS provider Dynu Systems. The domain listed in CISA's alert, on the other hand, appears to be a legit website (&lt;a href="https://web.archive.org/web/20241007094326/https://glize.com/"&gt;archived page from 2024&lt;/a&gt;) from the marketing company &lt;a href="https://www.facebook.com/glizecom"&gt;Glize&lt;/a&gt; in Malta.
			&lt;/p&gt;&lt;img src="https://media.netresec.com/images/glize_520x337.png" alt="Screenshot of Glize's website from 2024" width="520" height="337" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;Glize's website seems to have disappeared sometime in 2025.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update 2026-02-27&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
				The IOC list published by CISA originates from cybersecurity advisory &lt;a href="https://media.defense.gov/2025/May/21/2003719846/-1/-1/0/CSA_RUSSIAN_GRU_TARGET_LOGISTICS.PDF"&gt;157019-25&lt;/a&gt; / &lt;a href="https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Cyber-Security/GRU_Western_Logistics.pdf?__blob=publicationFile&amp;amp;v=3"&gt;PP-25-2107&lt;/a&gt;, which was created as a joint effort by the following 21 organizations:
			&lt;/p&gt;&lt;img src="https://media.netresec.com/images/gru-paper-authors-2_1690x720.webp" alt="authors of joint cybersecurity advisory Russian GRU Targeting Western Logistics Entities and Technology Companies" width="1690" height="720" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;ul&gt;&lt;li&gt;United States National Security Agency (NSA)&lt;/li&gt;&lt;li&gt;United States Federal Bureau of Investigation (FBI)&lt;/li&gt;&lt;li&gt;United Kingdom National Cyber Security Centre (NCSC-UK)&lt;/li&gt;&lt;li&gt;Germany Federal Intelligence Service (BND)&lt;/li&gt;&lt;li&gt;Germany Federal Office for Information Security (BSI)&lt;/li&gt;&lt;li&gt;Germany Federal Office for the Protection of the Constitution (BfV)&lt;/li&gt;&lt;li&gt;Czech Republic Military Intelligence (VZ)&lt;/li&gt;&lt;li&gt;Czech Republic National Cyber and Information Security Agency (NÚKIB)&lt;/li&gt;&lt;li&gt;Czech Republic Security Information Service (BIS)&lt;/li&gt;&lt;li&gt;Poland Internal Security Agency (ABW)&lt;/li&gt;&lt;li&gt;Poland Military Counterintelligence Service (SKW)&lt;/li&gt;&lt;li&gt;United States Cybersecurity and Infrastructure Security Agency (CISA)&lt;/li&gt;&lt;li&gt;United States Department of Defense Cyber Crime Center (DC3)&lt;/li&gt;&lt;li&gt;United States Cyber Command (USCYBERCOM)&lt;/li&gt;&lt;li&gt;Australian Signals Directorate’s Australian Cyber Security Centre (ASD’s ACSC)&lt;/li&gt;&lt;li&gt;Canadian Centre for Cyber Security (CCCS)&lt;/li&gt;&lt;li&gt;Danish Defence Intelligence Service (DDIS)&lt;/li&gt;&lt;li&gt;Estonian Foreign Intelligence Service (EFIS)&lt;/li&gt;&lt;li&gt;Estonian National Cyber Security Centre (NCSC-EE)&lt;/li&gt;&lt;li&gt;French Cybersecurity Agency (ANSSI)&lt;/li&gt;&lt;li&gt;Netherlands Defence Intelligence and Security Service (MIVD)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It is therefore unclear which organization(s) reported the erroneous IOCs as well as who were responsible for verifying them before publication.&lt;/p&gt;&lt;p&gt;In summary, these are the incorrect and correct IOC domains:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Incorrect IOC: &lt;del&gt;*.accesscan[.]org&lt;/del&gt; (not registered)&lt;/li&gt;&lt;li&gt;Correct IOC: *.accesscam[.]org (registered by Dynu Systems)&lt;/li&gt;&lt;li&gt;Incorrect IOC: &lt;del&gt;*.glize[.]com&lt;/del&gt; (legitimate website, now closed)&lt;/li&gt;&lt;li&gt;Correct IOC: *.giize[.]com (registered by Dynu Systems)&lt;/li&gt;&lt;li&gt;Correct IOC: *.gleeze[.]com (registered by Dynu Systems)&lt;/li&gt;&lt;/ul&gt;</content:encoded>
    </item>
    <item>
      <title>njRAT runs MassLogger</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-02&amp;post=njRAT-runs-MassLogger</link>
      <pubDate>Mon, 02 Feb 2026 19:39:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/NetworkMinerProfessional_3-1_njRAT_images_523x582.webp" type="image/webp" />
      <category>njRAT</category>
      <category>NetworkMiner Professional</category>
      <category>malware-traffic-analysis.net</category>
      <category>MassLogger</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-02&amp;post=njRAT-runs-MassLogger</guid>
      <description>njRAT is a remote access trojan that has been around for more than 10 years and still remains one of the most popular RATs among criminal threat actors. This blog post demonstrates how NetworkMiner Professional can be used to decode the njRAT C2 traffic to extract artifacts like screenshots, command[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/njRAT-purple_2000x1323.webp" alt="njRAT" width="2000" height="1323" style="float: right; margin-left: 5px; max-width: 50%; height:auto" /&gt;&lt;p&gt;
				njRAT is a remote access trojan that has been around for more than 10 years and still remains one of the most popular RATs among criminal threat actors. This blog post demonstrates how &lt;a href="https://www.netresec.com/?page=BuyNetworkMiner"&gt;NetworkMiner Professional&lt;/a&gt; can be used to decode the njRAT C2 traffic to extract artifacts like screenshots, commands and transferred files.
			&lt;/p&gt;&lt;p&gt;
				A PCAP file with njRAT traffic was &lt;a href="https://malware-traffic-analysis.net/2026/01/29/index.html"&gt;published on malware-traffic-analysis.net&lt;/a&gt; last week. After loading this PCAP file, NetworkMiner Professional reveals that the attacker downloaded full resolution screenshots of the victim’s screen.
			&lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMinerProfessional_3-1_njRAT_images_523x582.webp" alt="Overview of screenshots sent to C2 server" width="523" height="582" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Overview of screenshots sent to C2 server&lt;/i&gt;&lt;/p&gt;&lt;img src="https://media.netresec.com/images/njRAT_Desktop_260129030346.jpg" alt="Screenshot extracted from njRAT traffic by NetworkMiner" width="820" height="460" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Screenshot extracted from njRAT traffic by NetworkMiner&lt;/i&gt;&lt;/p&gt;&lt;p&gt;The file “New Purchase Order and Specifications.exe” in this screenshot is the njRAT binary that was used to infect the PC.&lt;/p&gt;&lt;p&gt;
				A list of njRAT commands sent from the C2 server to the victim can be viewed on NetworkMiner’s Parameters tab by filtering for ”njRAT server command”.
			&lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMinerProfessional_3-1_Parameters_njRAT_523x479.webp" alt="njRAT commands" width="523" height="479" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
				The following njRAT commands are present here:
				&lt;ul&gt;&lt;li&gt;CAP = take screenshot&lt;/li&gt;&lt;li&gt;inv = invoke (run) a plugin (dll)&lt;/li&gt;&lt;li&gt;rn = run a tool (executable)&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
				Additional njRAT commands can be found in our writeup for the &lt;a href="https://netresec.com/?b=2541a39"&gt;Decoding njRAT traffic with NetworkMiner video&lt;/a&gt;, which we published last year.
			&lt;/p&gt;&lt;p&gt;&lt;b&gt;njRAT File Transfers&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
				The “inv” and “rn” commands both transfer and execute additional code on the victim machine. The “inv” command typically transfers a DLL file that is used as a plugin, while the “rn” commands sends an executable file. These DLL and EXE files are transferred in gzip compressed format, which is why NetworkMiner extracts them as .gz files.
			&lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMinerProfessional_3-1_Files_njRAT_516x296.webp" alt="njRAT files extracted from PCAP" width="516" height="296" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Gzip compressed files extracted from njRAT traffic&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
				This oneliner command lists the internal/original file names and corresponding MD5 hashes of the gzip compressed executables sent to the victim PC:
			&lt;/p&gt;&lt;ul style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #111111; color: #cccccc; border: 1px solid #999999; padding: 6px; margin: 4px; word-break: break-all" x-ms-format-detection="none"&gt;&lt;li style="color: #ffffff;"&gt;for f in njRAT-rn*.gz; do echo $f; gunzip -c $f | exiftool - | grep Original; gunzip -c $f | md5sum; done&lt;/li&gt;&lt;li&gt;njRAT-rn-260129030403.gz&lt;/li&gt;&lt;li&gt;Original File Name              : Stub.exe&lt;/li&gt;&lt;li&gt;ca819e936f6b913e2b80e9e4766b8e79  -&lt;/li&gt;&lt;li&gt;njRAT-rn-260129030433.gz&lt;/li&gt;&lt;li&gt;Original File Name              : Stub.exe&lt;/li&gt;&lt;li&gt;e422a4ce321be1ed989008d74ddb6351  -&lt;/li&gt;&lt;li&gt;njRAT-rn-260129030451.gz&lt;/li&gt;&lt;li&gt;Original File Name              : CloudServices.exe&lt;/li&gt;&lt;li&gt;fcbb7c0c68afa04139caa55efe580ff5  -&lt;/li&gt;&lt;li&gt;njRAT-rn-260129031041.gz&lt;/li&gt;&lt;li&gt;Original File Name              : Stub.exe&lt;/li&gt;&lt;li&gt;0ae3798c16075a9042c5dbb18bd10a5c  -&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
				The MD5 hashes of the files inside the gzip compressed streams can also be seen on the Parameters tab in NetworkMiner.
			&lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMinerProfessional_3-1_Parameters_njRAT_md5_516x296.webp" alt="njRAT file MD5 hashes" width="516" height="296" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;b&gt;MassLogger&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
				The “CloudServices.exe” executable is a known credential stealer called MassLogger. This particular &lt;a href="https://bazaar.abuse.ch/sample/ea32ac24bd8dbac770beec79fa78d790a6156ceb5ff28d2bdba9b1f28a8b4628/"&gt;MassLogger sample&lt;/a&gt; is hard coded to exfiltrate data in an email to kingsnakeresult@mcnzxz[.]com. The email is sent through the SMTP server cphost14.qhoster[.]net. See the execution of this sample &lt;a href="https://tria.ge/260129-qpr2msg16c"&gt;on Triage&lt;/a&gt; for additional details regarding the MassLogger payload in CloudServices.exe.
			&lt;/p&gt;&lt;p&gt;&lt;b&gt;IOC List&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
				njRAT (splitter = "|Ghost|")
				&lt;ul&gt;&lt;li&gt;58f1a46dba84d31257f1e0f8c92c59ec = njRAT sample&lt;/li&gt;&lt;li&gt;104.248.130.195:7492 = njRAT C2 server&lt;/li&gt;&lt;li&gt;burhanalassad.duckdns[.]org:7492 = njRAT C2 server&lt;/li&gt;&lt;li&gt;801a5d1e272399ca14ff7d6da60315ef = sc2.dll&lt;/li&gt;&lt;li&gt;ca819e936f6b913e2b80e9e4766b8e79 = Stub.exe&lt;/li&gt;&lt;li&gt;e422a4ce321be1ed989008d74ddb6351 = Stub.exe&lt;/li&gt;&lt;li&gt;fcbb7c0c68afa04139caa55efe580ff5 = CloudServices.exe&lt;/li&gt;&lt;li&gt;0ae3798c16075a9042c5dbb18bd10a5c = Stub.exe&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
				MassLogger
				&lt;ul&gt;&lt;li&gt;fcbb7c0c68afa04139caa55efe580ff5&lt;/li&gt;&lt;li&gt;kingsnakeresult@mcnzxz[.]com&lt;/li&gt;&lt;li&gt;cphost14.qhoster.net:587&lt;/li&gt;&lt;li&gt;78.110.166.82:587&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</content:encoded>
    </item>
  </channel>
</rss>