<?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, 19 Oct 2026 08:48: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>CapLoader 2.2 Released</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=CapLoader-2-2-Released</link>
      <pubDate>Mon, 19 Oct 2026 08:48:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/videos/CapLoader-flow-transcript_short_1056x516.mp4" type="video/mp4" />
      <category>CapLoader</category>
      <category>transcript</category>
      <category>alerts</category>
      <category>IFIN</category>
      <category>IPFS</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=CapLoader-2-2-Released</guid>
      <description>CapLoader 2.2 adds new alerts for services and infrastructure that may be abused, makes flow transcripts easier to navigate and improves alert-based coloring. It also includes more helpful BPF filter feedback and several bug fixes. More alerts CapLoaders alerting has been expanded with built-in dete[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/CL_2-2_770x770.webp" alt="CapLoader 2.2" width="770" height="770" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;&lt;p&gt;&lt;a href="https://www.netresec.com/?page=CapLoader"&gt;CapLoader&lt;/a&gt; 2.2 adds new alerts for services and infrastructure that may be abused, makes flow transcripts easier to navigate and improves alert-based coloring. It also includes more helpful BPF filter feedback and several bug fixes.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;More alerts&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		CapLoader’s alerting has been expanded with built-in detections for online services and infrastructure that are commonly abused, along with support for external blocklists from &lt;a href="https://lists.ifin.network/about.html"&gt;IFIN&lt;/a&gt;, &lt;a href="https://intel.gayint.org/blocklists"&gt;GAYINT&lt;/a&gt; and &lt;a href="https://www.spamhaus.org/resource-hub/dnsbl/the-return-of-the-asn-drop/"&gt;Spamhaus&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;
		New alert types include:
	  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/InterPlanetary_File_System"&gt;IPFS&lt;/a&gt; services and gateways&lt;/li&gt;&lt;li&gt;Port forwarding services&lt;/li&gt;&lt;li&gt;Abused web hosting and cloud storage services&lt;/li&gt;&lt;li&gt;VPN, proxy and tunnel protocols&lt;/li&gt;&lt;li&gt;&lt;a href="https://lists.ifin.network/lists/rpc-nodes/index.html"&gt;Blockchain RPC nodes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://lists.ifin.network/lists/paste-bins---code/index.html"&gt;Paste bin domains&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Bulletproof, scanner and VPN ASNs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		Many of these alerts are informational, while others are low severity.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Transcript navigation and row coloring&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		You can now move between flow transcripts using the arrow keys. To make moving to the next transcript quicker, CapLoader anticipates the next Flow Index and pre-fetches its frames.
	  &lt;/p&gt;&lt;p&gt;
		Thanks to André for suggesting the transcript navigation feature during one of my &lt;a href="https://www.netresec.com/?page=Training"&gt;trainings&lt;/a&gt;!
	  &lt;/p&gt;&lt;video width="1056" height="516" controls="true" clip="CapLoader-flow-transcript_short_1056x516" style="clear: both; max-width: 100%; height:auto"&gt;&lt;source src="https://media.netresec.com/videos/CapLoader-flow-transcript_short_1056x516.mp4" type="video/mp4" /&gt;&lt;source src="https://media.netresec.com/videos/CapLoader-flow-transcript_short_1056x516.webm" type="video/webm" /&gt;&lt;/video&gt;&lt;p&gt;&lt;i&gt;
		  Video: Transcript of flows in Johannes Weber’s &lt;a href="https://weberblog.net/the-ultimate-pcap/"&gt;Ultimate PCAP&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		CapLoader 2.2 also adds the &lt;b&gt;AlertSeverity&lt;/b&gt; row color scheme. It colors each flow, service and host according to the highest-severity alert associated with it.
	  &lt;/p&gt;&lt;p&gt;
		Here’s CapLoader with the traditional Wireshark style color scheme:
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/CapLoader_Wireshark-colors_540x548.webp" alt="CapLoader with Wireshark style colors" width="540" height="548" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		This is what the same traffic looks like with the new AlertSeverity color scheme:
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/CapLoader_AlertSeverity-colors_540x548.webp" alt="CapLoader with AlertSeverity style colors" width="540" height="548" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		Both screenshots show the same capture file, which contains traffic from an &lt;a href="https://tria.ge/261019-jv1seagy9x/behavioral2"&gt;XMRig sample on Triage&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;
		BPF filter boxes now provide better error checking, with colors and tooltips to warn about possible syntax mistakes. You can also press Enter to open the transcript for a selected flow from any tab, not just the Flows tab. If you select multiple flows, Enter opens multiple transcripts.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Bug fixes&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		This release fixes an issue that could prevent the “About CapLoader” window from opening, as well as a crash that could occur when reading very large frames. It also fixes JA4 fingerprints when TLS Signature Algorithms contain GREASE values.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Detecting AtlasRAT C2</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=Detecting-AtlasRAT-C2</link>
      <pubDate>Mon, 12 Oct 2026 14:30:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/AtlasRAT_2000x973.webp" type="image/webp" />
      <category>AtlasRAT</category>
      <category>Atlas RAT</category>
      <category>BFuck</category>
      <category>SFuck</category>
      <category>Silver Fox</category>
      <category>update.microsoft.com</category>
      <category>JA3</category>
      <category>e26606c572e55d499b0676e9095e3df8</category>
      <category>f98a4985f829b6513fbeccf5b751b458</category>
      <category>a66308a1fb09c8345228ca00335e633b2dabde53</category>
      <category>Suricata</category>
      <category>FlowCarp</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=Detecting-AtlasRAT-C2</guid>
      <description>Around May 2026 Atlas RAT began using a new variant of its command-and-control (C2) protocol. Earlier versions started with a distinctive byte sequence: 53 46 75 63 6b 00 00 00 In ASCII, that is SFuck followed by three null bytes. The newer traffic starts with BFuck, also followed by three null byte[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/AtlasRAT_2000x973.webp" alt="AtlasRAT" width="2000" height="973" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		Around May 2026 &lt;a href="https://malpedia.caad.fkie.fraunhofer.de/details/win.atlas_rat"&gt;Atlas RAT&lt;/a&gt; began using a new variant of its command-and-control (C2) protocol. Earlier versions started with a distinctive byte sequence:
	  &lt;/p&gt;&lt;p&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #eeeeee; color: #000000; padding: 8px; border-radius: 0.4em;" x-ms-format-detection="none"&gt;53 46 75 63 6b 00 00 00&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
		In ASCII, that is “SFuck” followed by three null bytes. The newer traffic starts with “BFuck”, also followed by three null bytes:
	  &lt;/p&gt;&lt;p&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #eeeeee; color: #000000; padding: 8px; border-radius: 0.4em;" x-ms-format-detection="none"&gt;42 46 75 63 6b 00 00 00&lt;/span&gt;&lt;/p&gt;&lt;img src="https://media.netresec.com/images/AtlasRAT-BFuck_CapLoader-Transcript_1200x429.webp" alt="CapLoader transcript of AtlasRAT traffic" width="1200" height="429" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;
		  Image: CapLoader transcript of AtlasRAT traffic in PCAP from &lt;a href="https://tria.ge/260925-abldyatt2l/behavioral1"&gt;Triage&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Attribution&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Atlas RAT has been linked to Silver Fox (银狐), a Chinese-nexus threat group also tracked as Void Arachne, TA4922, SwimSnake and UTG-Q-1000. The group has been associated with trojanized software and malware including &lt;a href="https://netresec.com/?b=2666e31"&gt;ValleyRAT&lt;/a&gt; (Winos4.0) and Gh0st RAT.
	  &lt;/p&gt;&lt;p&gt;
		The Atlas RAT link remains circumstantial. However, we have observed ValleyRAT and AtlasRAT using the same C2 servers on different ports, suggesting a shared operator.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;The New C2 Variant&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		We found that &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; could detect the new BFuck variant even though its Atlas RAT detection model had originally been built using examples of the older “SFuck” traffic.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/AtlasRAT_FlowCarp-alert_1174x961.webp" alt="Alert on win.atlas_rat malware from FlowCarp" width="1174" height="961" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;
		  Image: FlowCarp win.atlas_rat alert for Atlas RAT PCAP from &lt;a href="https://app.any.run/tasks/912d297e-9a75-4333-84c0-3b3b92d6e9ee/"&gt;ANY.RUN&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		The updated model now includes examples of both variants. Because FlowCarp analyzes more than just the initial check-in sequence, we expect it to reliably detect Atlas RAT traffic even if that sequence changes again.
	  &lt;/p&gt;&lt;p&gt;
		The initial check-in also reveals a change in the C2 server’s port. The older variant was primarily seen on TCP ports 886 and 9899. The new variant was observed on TCP port 443.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Stage 1 Loader&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		The initial “BFuck” or “SFuck” check-in comes from a loader. The loader retrieves 300 to 500 kB of shellcode containing a DLL with the full Atlas RAT backdoor. Atlas RAT then opens another connection to the same C2 server, this time using a different protocol.
	  &lt;/p&gt;&lt;p&gt;
		For more details on the loader, backdoor and C2 traffic structure, see HexaStrike’s &lt;a href="https://hexastrike.com/resources/blog/threat-intelligence/trust-the-tunnel-get-the-trojan-silver-fox-delivers-atlas-rat-via-weaponized-vpn-installers/"&gt;Trust the Tunnel, Get the Trojan&lt;/a&gt; write-up by &lt;a href="https://www.linkedin.com/in/mauricefielenbach"&gt;Maurice Fielenbach&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Changes to the Legacy C2 Traffic&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Maurice determines that Atlas RAT’s C2 protocol uses ChaCha20 encryption. Each encrypted packet also carries a 56-byte header in cleartext:
		&lt;ul&gt;&lt;li&gt;4 bytes: sequence number&lt;/li&gt;&lt;li&gt;4 bytes: compressed size&lt;/li&gt;&lt;li&gt;4 bytes: original size&lt;/li&gt;&lt;li&gt;4 bytes: padding or flags&lt;/li&gt;&lt;li&gt;32 bytes: ChaCha20 key&lt;/li&gt;&lt;li&gt;8 bytes: ChaCha20 nonce&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;img src="https://media.netresec.com/images/CapLoader-Transcript_AtlasRAT-C2_1200x472.webp" alt="CapLoader transcript of Atlas RAT C2 traffic" width="1200" height="472" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;
		  Image: Atlas RAT C2 traffic in PCAP from &lt;a href="https://tria.ge/260318-pgxrgshx2y/behavioral1"&gt;Triage&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		By the end of March 2026, just a few days after HexaStrike’s publication, we observed the actors change their approach. They began XOR-encrypting the transmitted data with a fixed key that starts with &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #eeeeee; color: #000000; " x-ms-format-detection="none"&gt;a7 3b f1 8c&lt;/span&gt;.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/CapLoader-Transcript_AtlasRAT-C2_XOR_1200x475.webp" alt="CapLoader transcript of Atlas RAT C2 trafficw with XOR encryption" width="1200" height="475" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;
		  Image: Atlas RAT XOR-encrypted C2 header in PCAP from &lt;a href="https://tria.ge/260331-dzjf2afz9v/behavioral3"&gt;Triage&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		I won’t go into more detail about this XOR-encrypted variant here. The actors abandoned it in July 2026 in favor of a new approach.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;TLS becomes the new Atlas RAT C2&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		In July 2026, Atlas RAT began using TLS for C2 communication. After the initial “BFuck” check-in, the backdoor established a new TLS-encrypted session with the C2 server.
	  &lt;/p&gt;&lt;p&gt;
		The TLS client and server handshakes have distinctive JA3 fingerprints:
		&lt;ul&gt;&lt;li style="word-break: break-all"&gt;JA3:  e26606c572e55d499b0676e9095e3df8&lt;/li&gt;&lt;li style="word-break: break-all"&gt;JA3S: f98a4985f829b6513fbeccf5b751b458&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		The C2 server typically presents a self-signed X.509 certificate that impersonates update.microsoft.com.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/X-509_a66308a1fb09c8345228ca00335e633b2dabde53_405x515.webp" alt="Self-signed certificate for update.microsoft.com" width="405" height="515" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;
		The certificate thumbprint is:
	  &lt;/p&gt;&lt;p&gt;&lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; background-color: #eeeeee; color: #000000; padding: 8px; word-break: break-all; border-radius: 0.4em;" x-ms-format-detection="none"&gt;a66308a1fb09c8345228ca00335e633b2dabde53&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Suricata Signatures&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		If you’re not ready to deploy &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; for C2 detection, these Suricata rules can detect the SFuck and BFuck check-ins:
	  &lt;/p&gt;&lt;div style="font-family: 'Lucida Console', Consolas, Monaco, 'Courier New'; background-color: #8a629e; color: #ffffff; border: 0px solid #000000; padding: 10px; margin: 10px; max-width: 100%; word-break: break-all; border-radius: 0.4em;" x-ms-format-detection="none"&gt;
		alert tcp-pkt $HOME_NET any -&amp;gt; $EXTERNAL_NET any (msg:"Atlas RAT loader SFuck checkin"; flow:to_server; content:"|53 46 75 63 6b 00 00 00|"; startswith; metadata: malware_family win.atlas_rat; classtype:trojan-activity; reference:url,https://netresec.com/?b=26A6cc8; sid:1471105; rev:1;)&lt;br /&gt;&lt;br /&gt;
		alert tcp-pkt $HOME_NET any -&amp;gt; $EXTERNAL_NET any (msg:"Atlas RAT loader BFuck checkin"; flow:to_server; content:"|42 46 75 63 6b 00 00 00|"; startswith; metadata: malware_family win.atlas_rat; classtype:trojan-activity; reference:url,https://netresec.com/?b=26A6cc8; sid:1471106; rev:1;)
	  &lt;/div&gt;&lt;p&gt;
		This rule alerts on Atlas RAT’s C2 TLS handshake:
	  &lt;/p&gt;&lt;div style="font-family: 'Lucida Console', Consolas, Monaco, 'Courier New'; background-color: #8a629e; color: #ffffff; border: 0px solid #000000; padding: 10px; margin: 10px; max-width: 100%; word-break: break-all; border-radius: 0.4em;" x-ms-format-detection="none"&gt;
		alert tcp-pkt $HOME_NET any -&amp;gt; $EXTERNAL_NET 443 (msg:"Atlas RAT TLS handshake"; flow:established,to_server; content:"|00 00 0c 00 3d 00 35 00 9c 00 3c 00 2f 00 ff 01 00 00 10 00 0d 00 04 00 02 04 01 00 16 00 00 00 17 00 00|"; offset:43; metadata: malware_family win.atlas_rat; classtype:trojan-activity; reference:url,https://netresec.com/?b=26A6cc8; sid:1471107; rev:1;)
	  &lt;/div&gt;&lt;p&gt;
		And this one on the self-signed  X.509 certificate:
	  &lt;/p&gt;&lt;div style="font-family: 'Lucida Console', Consolas, Monaco, 'Courier New'; background-color: #8a629e; color: #ffffff; border: 0px solid #000000; padding: 10px; margin: 10px; max-width: 100%; word-break: break-all; border-radius: 0.4em;" x-ms-format-detection="none"&gt;
		alert tls $EXTERNAL_NET 443 -&amp;gt; $HOME_NET any (msg:"Atlas RAT fake Microsoft certificate"; flow:established,to_client; content:"|03 7d 30 82 03 79 30 82 02 61 a0 03 02 01 02 02 14 64 72 4e 8c f1 71 88 bc ff e5 19 0b 69 e0 cb 52 6d 38 9a df 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 4c 31 1d 30 1b 06 03 55 04 03 0c 14 75 70 64 61 74 65 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d|"; offset:12; depth:107; classtype:trojan-activity; reference:url,https://netresec.com/?b=26A6cc8; sid:1471108; rev:1;)
	  &lt;/div&gt;&lt;p&gt;
		These Suricata rules are also available for download from our Suricata GitHub repo:&lt;br /&gt;&lt;a href="https://github.com/Netresec/Suricata"&gt;https://github.com/Netresec/Suricata&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Further Reading&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		More information about Atlas RAT is available in write-ups from &lt;a href="https://www.proofpoint.com/us/blog/threat-insight/ta4922-suspected-chinese-crime-group-going-global"&gt;Proofpoint&lt;/a&gt; and &lt;a href="https://hexastrike.com/resources/blog/threat-intelligence/trust-the-tunnel-get-the-trojan-silver-fox-delivers-atlas-rat-via-weaponized-vpn-installers/"&gt;Hexastrike&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;IOC Lists&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		IP-port:
		&lt;ul&gt;&lt;li&gt;23.226.57.50:443&lt;/li&gt;&lt;li&gt;38.76.177.46:443&lt;/li&gt;&lt;li&gt;43.99.101.175:443&lt;/li&gt;&lt;li&gt;45.142.152.180:443&lt;/li&gt;&lt;li&gt;116.204.169.70:443&lt;/li&gt;&lt;li&gt;150.158.50.175:443&lt;/li&gt;&lt;li&gt;156.234.7.48:443&lt;/li&gt;&lt;li&gt;192.252.180.45:443&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		Domains:
		&lt;ul&gt;&lt;li&gt;laicaishuli[.]com&lt;/li&gt;&lt;li&gt;yilufafafa[.]club&lt;/li&gt;&lt;li&gt;zixungongsi[.]top&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		Other:
		&lt;ul&gt;&lt;li&gt;JA3: e26606c572e55d499b0676e9095e3df8&lt;/li&gt;&lt;li&gt;JA3S: f98a4985f829b6513fbeccf5b751b458&lt;/li&gt;&lt;li&gt;Cert SHA-1: a66308a1fb09c8345228ca00335e633b2dabde53&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>NetworkMiner 3.2 Released</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=NetworkMiner-3-2-Released</link>
      <pubDate>Wed, 07 Oct 2026 11:30:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/NetworkMiner _3-2_UMAS_write_539x412.png" type="image/png" />
      <category>NetworkMiner</category>
      <category>UMAS</category>
      <category>IEC-104</category>
      <category>ICS</category>
      <category>RADIUS</category>
      <category>JA4</category>
      <category>ja4db.com</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=NetworkMiner-3-2-Released</guid>
      <description>NetworkMiner 3.2 parses RADIUS authentication data and extracts more details from the OT/ICS protocols UMAS and IEC-104. The release also improves several existing protocol parsers and fixes file-reassembly issues, helping analysts extract more information from captured network traffic. OT Protocol[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/NetworkMiner_3-2_707x707.webp" alt="NetworkMiner 3.2" width="770" height="770" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;&lt;p&gt;
		NetworkMiner 3.2 parses RADIUS authentication data and extracts more details from the OT/ICS protocols UMAS and IEC-104. The release also improves several existing protocol parsers and fixes file-reassembly issues, helping analysts extract more information from captured network traffic.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;OT Protocol Support&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		NetworkMiner parses many OT/SCADA/ICS communication protocols, such as &lt;a href="https://netresec.com/?b=254caa9"&gt;CIP&lt;/a&gt;, &lt;a href="https://netresec.com/?b=245092b"&gt;COTP&lt;/a&gt;, &lt;a href="https://netresec.com/?b=254caa9"&gt;EtherNet/IP&lt;/a&gt;, &lt;a href="https://netresec.com/?b=224e357"&gt;IEC 60870-5-104&lt;/a&gt;, &lt;a href="https://netresec.com/?b=245092b"&gt;Modbus/TCP&lt;/a&gt; and &lt;a href="https://netresec.com/?b=254caa9"&gt;UMAS&lt;/a&gt;. The parsers for UMAS and IEC-104 have been updated in this release.
	  &lt;/p&gt;&lt;p&gt;
		The parser for Schneider Electric’s proprietary UMAS protocol in NetworkMiner has been improved. NetworkMiner can now extract data from UMAS commands “Read Physical Address” and “Write Physical Address”. This addition enables analysts to determine not only if data stored in memory of a Schneider Modicon PLC has been modified, but also what changed. This visibility is particularly valuable when performing forensic analysis of OT network traffic after an incident.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMiner _3-2_UMAS_write_539x412.png" alt="UMAS write in NetworkMiner 3.2" width="539" height="412" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Data 0x43 written to address 0x0001FF4E on a Modicon M221 PLC&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		NetworkMiner can parse most commands defined by the IEC 60870-5-104 protocol, which is used for monitoring and controlling systems in European and Asian power grids.
	  &lt;/p&gt;&lt;p&gt;
		In this release we’ve added support for IEC-104 command ID 60 (C_RC_TA_1) “Regulating step command with time tag CP56Time2a”, which is used to increase or decrease a data-point by one.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMiner_3-2_IEC-104_DOWN_539x260.webp" alt="IEC-104 DOWN command extracted by NetworkMiner 3.2" width="539" height="260" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Data-point at IOA 16 decremented using IEC-104 command ID 60&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;RADIUS&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		NetworkMiner now includes a parser for the authentication and authorization protocol RADIUS. The parser extracts usernames, passwords (encrypted or hashed), IP addresses, messages and various RADIUS-specific identifiers.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMiner_3-2_Credentials_RADIUS_539x511.webp" alt="RADIUS credentials extracted with NetworkMiner 3.2" width="539" height="511" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Usernames and password related attributes extracted from RADIUS traffic&lt;/i&gt;&lt;/p&gt;&lt;img src="https://media.netresec.com/images/NetworkMiner_3-2_Parameters_RADIUS_539x759.webp" alt="RADIUS parameters extracted with NetworkMiner 3.2" width="539" height="759" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Parameters extracted from RADIUS packets&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		RADIUS traffic for the screenshots above comes from Wireshark’s &lt;a href="https://wiki.wireshark.org/SampleCaptures"&gt;Sample Captures&lt;/a&gt; (radius_localhost.pcap) and Johannes Weber’s &lt;a href="https://weberblog.net/the-ultimate-pcap/"&gt;Ultimate PCAP&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;JA4 Download in NetworkMiner Professional&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Many users of NetworkMiner Professional have received an error message saying “JA4 database download failed”.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/JA4-database-download-failed_199x133.png" alt="JA4 database download failed error" width="199" height="133" style="clear: both; max-width: 80%; height:auto; padding-left: 10%;" /&gt;&lt;p&gt;
		This error message is displayed when NetworkMiner Professional tries to download a JA4 database from FoxIO’s website ja4db.com. After consulting FoxIO in 2024, we implemented a solution that automatically retrieved the JA4 database and checked for updates every 30 days.
	  &lt;/p&gt;&lt;p&gt;
		FoxIO no longer provides this database for download, which is why users saw “JA4 database download failed” messages. We apologize for any inconvenience this may have caused.
	  &lt;/p&gt;&lt;p&gt;
		Version 3.2 no longer attempts to download this database.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Bug Fixes and Other Improvements&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		NetworkMiner 3.2 includes fixes for several bugs reported by Jeliazko Zlatev, which relate to how files are extracted from PCAP data (thank you Jeliazko!). We have also improved parsers for protocols like HTTP, SIP and DNS to extract even more data from the analyzed network traffic to the various tabs on the user interface.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Upgrading to Version 3.2&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Users who have purchased NetworkMiner Professional can download version 3.2 from our &lt;a href="https://www.netresec.com/portal/"&gt;customer portal&lt;/a&gt;, or use the “Check for Updates” feature from NetworkMiner’s Help menu. Users who prefer to use the free and open source version can grab the latest release of NetworkMiner from the official &lt;a href="https://www.netresec.com/?page=NetworkMiner"&gt;NetworkMiner page&lt;/a&gt;.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Stop Feeding the SOC Garbage</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=Stop-Feeding-the-SOC-Garbage</link>
      <pubDate>Tue, 06 Oct 2026 06:30:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/EDR-alerts-into-false-positives_1148x1371.webp" type="image/webp" />
      <category>FlowCarp</category>
      <category>SOC</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-10&amp;post=Stop-Feeding-the-SOC-Garbage</guid>
      <description>Security operations teams are handling increasing volumes of network events and security alerts. Whether those alerts are reviewed by human analysts, processed by AI, or handled through a combination of both, the result depends on the quality of the underlying detections. No SOC can investigate an i[...]</description>
      <content:encoded>&lt;p&gt;
		Security operations teams are handling increasing volumes of network events and security alerts. Whether those alerts are reviewed by human analysts, processed by AI, or handled through a combination of both, the result depends on the quality of the underlying detections.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/SOC_garbage_2000x2000.webp" alt="Feeding the SOC Garbage" width="2000" height="2000" style="float: right; margin-left: 10px; max-width: 50%; height:auto" /&gt;&lt;p&gt;
		No SOC can investigate an intrusion that never generated an alert. And if the incoming alerts are incomplete, noisy, or biased toward known attack patterns, the result is inefficient investigations and missed malicious activity.
	  &lt;/p&gt;&lt;p&gt;
		Simply spending more on AI tokens will not solve this problem. AI can prioritize, correlate, and summarize the alerts it receives, but it cannot recover activity that was never detected or reliably compensate for systematically noisy inputs. Detection quality still depends on input quality. Or in other words, Garbage-In-Garbage-Out (&lt;a href="https://en.wikipedia.org/wiki/Garbage_in,_garbage_out"&gt;GIGO&lt;/a&gt;) still applies.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;False positives and false negatives&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		False positives are a constant pain for many SOCs. They waste analyst time, cause alert fatigue, and may lead teams to disable or ignore useful detections. So-called &lt;a href="https://blog.gigamon.com/2022/08/05/revisiting-the-idea-of-the-false-positive/"&gt;benign alerts&lt;/a&gt; are almost just as bad. This image &lt;a href="https://infosec.exchange/@cR0w/117355609332532834"&gt;shared by @cR0w&lt;/a&gt; humorously captures the analyst experience.
	  &lt;/p&gt;&lt;a href="https://infosec.exchange/@cR0w/117355609332532834"&gt;&lt;img src="https://media.netresec.com/images/EDR-alerts-into-false-positives_1148x1371.webp" alt="Skeleton doing a squat with the text: My body is a machine that turns shitty EDR alerts into Closed - False Positive." width="1148" height="1371" style="clear: both; max-width: 80%; margin-left: 8%; height:auto" /&gt;&lt;/a&gt;&lt;p&gt;
		While false positives waste time, false negatives may waste nothing at all. That's an even bigger problem!
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;A different way to identify protocols&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Traditional intrusion detection systems (IDS) are valuable, but they depend on static signatures and protocol-specific rules. Creating a reliable signature can require expertise and large PCAP datasets to test for false positives. Some protocols are especially difficult to detect with such techniques. They may be proprietary, undocumented, encrypted, obfuscated, or designed to resemble benign traffic.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/FlowCarp_2000x2000.webp" alt="FlowCarp" width="2000" height="2000" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;&lt;p&gt;&lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; takes a different approach. It identifies application-layer protocols by analyzing statistical characteristics of network traffic and comparing them with models of known protocols. This does not require a formal protocol specification. A protocol model can be created from example traffic, including traffic from a protocol that is difficult to express as a conventional IDS signature.
	  &lt;/p&gt;&lt;p&gt;
		FlowCarp can identify both legitimate and malicious protocols, including protocols used for malware command-and-control (C2) traffic. It can also generate alerts and integrate with existing monitoring workflows.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;A complementary detection method&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		FlowCarp is not intended to replace a traditional IDS. One of its key features is that it provides another view of network activity.
	  &lt;/p&gt;&lt;p&gt;
		A traditional IDS signature may stop matching when an attacker changes an indicator. A parser may not support an undocumented protocol. A port-based rule may fail when traffic moves to an unexpected port. Because it identifies protocols based on statistical traffic characteristics, FlowCarp can provide an alternative when static signatures and protocol parsers are unavailable, insufficient, or unreliable.
	  &lt;/p&gt;&lt;p&gt;
		The reverse can also be true: a conventional signature may be the better detector in a particular situation. Using different detection methods together can make monitoring more resilient.
	  &lt;/p&gt;&lt;p&gt;
		This additional perspective is useful in any SOC. These alerts can provide additional investigative leads for analysts and additional evidence for automated triage systems. In both cases, the benefit depends on receiving alerts that are relevant and accurate.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Better detection benefits every SOC&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		The goal should not simply be to maximize the number of alerts a SOC can process. It should be to produce alerts that cover meaningful activity without overwhelming the people and systems responsible for investigating them.
	  &lt;/p&gt;&lt;p&gt;
		Whether a SOC relies on human analysts, AI, or a combination of both, the foundation is the same: high-quality inputs lead to better detections. Before asking a SOC to handle higher alert volumes, it is worth asking whether those alerts provide an accurate view of the network and what might still be missing.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Unmasking Malware Families</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-09&amp;post=Unmasking-Malware-Families</link>
      <pubDate>Mon, 21 Sep 2026 10:00:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <category>FlowCarp</category>
      <category>IDS</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-09&amp;post=Unmasking-Malware-Families</guid>
      <description>Identifying malware families is hard. Malware samples are often packed, strings encrypted and configurations may only appear after several stages of execution. Even experienced reverse engineers can get the malware family wrong and commercial sandboxes do not always produce correct classifications.[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/malware-researcher-unknown_1850x1151.webp" alt="Malware Researcher, Unknown Virus" width="1850" height="1151" style="float: right; margin-left: 10px; max-width: 50%; height:auto" /&gt;&lt;p&gt;
	  Identifying malware families is hard. Malware samples are often packed, strings encrypted and configurations may only appear after several stages of execution. Even experienced reverse engineers can get the malware family wrong and commercial sandboxes do not always produce correct classifications.
&lt;/p&gt;&lt;p&gt;
		Malware C2 network traffic can provide another way to approach the problem. C2 traffic often contains enough information to identify the application-layer protocol and the malware family using it.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;FlowCarp&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; identifies application-layer protocols in network traffic by analyzing observable characteristics of the traffic. It computes statistical measurements from a capture and compares them with models for known protocols.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/FlowCarp_2000x2000.webp" alt="FlowCarp" width="2000" height="2000" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;&lt;p&gt;
		Unlike traditional IDS signatures, FlowCarp protocol models do not describe protocols using specific strings or byte sequences. To add detection for a new protocol to FlowCarp, you provide example traffic that is used to build a statistical model.
	  &lt;/p&gt;&lt;p&gt;
		This makes it possible to identify proprietary protocols, including C2 protocols used by malware.
	  &lt;/p&gt;&lt;p&gt;
		FlowCarp &lt;a href="https://www.netresec.com/?page=FlowCarp"&gt;can detect hundreds of malware protocols&lt;/a&gt;, so I often run it against PCAP files captured during sandbox executions. It often correctly identifies which C2 protocol a sample is using and points out the IP and port number of the C2 server.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Reporting Misclassifications&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		I occasionally contact cybersecurity companies or malware researchers when FlowCarp indicates that there's a mismatch between a sample’s reported family and its C2 protocol.
	  &lt;/p&gt;&lt;p&gt;
		Some decide not to update their publications, while others revisit their findings after being informed of the misclassification. Companies often don’t provide public credit for such feedback. Instead, they typically revise their publication with updated findings and thank the broader research community, with wording like:
		"We extend our sincere gratitude to the researchers who provided critical feedback"
		or
		"Thank you to the community members who prompted us to take another look".
	  &lt;/p&gt;&lt;p&gt;&lt;a href="https://infosec.exchange/@malware_traffic"&gt;Brad Duncan&lt;/a&gt; is a notable exception. His &lt;a href="https://www.malware-traffic-analysis.net/index.html"&gt;malware-traffic-analysis.net&lt;/a&gt; writeups regularly give credit after receiving &lt;a href="https://www.malware-traffic-analysis.net/2025/05/12/index.html"&gt;useful&lt;/a&gt; &lt;a href="https://www.malware-traffic-analysis.net/2025/07/02/index.html"&gt;corrections&lt;/a&gt; or &lt;a href="https://www.malware-traffic-analysis.net/2026/02/02/index.html"&gt;additional&lt;/a&gt; &lt;a href="https://www.malware-traffic-analysis.net/2026/02/02/index.html"&gt;analysis&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Statistical Classification and Signatures&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		FlowCarp takes a different approach from traditional signature-based network detection.
	  &lt;/p&gt;&lt;p&gt;
		A typical IDS signature might look for a known byte sequence, string, header, protocol field or other recognizable pattern. This works well when the pattern is stable and distinctive. It is also easy to understand: the rule matched, so the alert was generated.
	  &lt;/p&gt;&lt;p&gt;
		FlowCarp's statistical classification looks at several traffic characteristics, such as:
		&lt;ul&gt;&lt;li&gt;Packet sizes&lt;/li&gt;&lt;li&gt;Timing between packets&lt;/li&gt;&lt;li&gt;Message length distributions&lt;/li&gt;&lt;li&gt;Request and response behavior&lt;/li&gt;&lt;li&gt;Protocol structure&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		This approach can be useful when recognizable strings or byte sequences are unavailable. Encryption may hide the contents of a message, but it does not necessarily hide every recognizable property of the network protocol. FlowCarp may still be able to distinguish traffic based on its structure and behavior.
	  &lt;/p&gt;&lt;p&gt;
		Statistical protocol detection doesn't require hand-built rules or deep protocol knowledge. Collect some example traffic, build a model, and FlowCarp automatically identifies the distinguishing characteristics.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Reducing Alert Overlap&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		A single network connection might generate IDS alerts associated with multiple malware families. This can happen when a generic signature matches traffic from several different families or when multiple signatures happen to match the same traffic. An analyst may therefore receive several possible family labels for one connection.
	  &lt;/p&gt;&lt;p&gt;
		FlowCarp takes a simpler approach: it assigns a single protocol or malware label to each flow.
	  &lt;/p&gt;&lt;p&gt;
		Traditional IDS tools are still great for spotting malicious traffic and identifying infected hosts and C2 servers. FlowCarp is not intended to replace those tools. It works best as an additional classification layer. It can help identify protocols that do not have useful signatures, provide a more specific label for some traffic and simplify the process of adding detection for new protocols.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Adding a New Protocol&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Suppose you have identified a new C2 protocol used by a malware you call &lt;span style="background-color: #eeeeee; list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;MalwareXYZ&lt;/span&gt;.
	  &lt;/p&gt;&lt;p&gt;
		You collect several C2 sessions from sandbox executions and save them in a capture file called &lt;span style="background-color: #eeeeee; list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;xyz.pcap&lt;/span&gt;. If possible, use sessions from more than one execution or sample rather than relying on a single session.
	  &lt;/p&gt;&lt;p&gt;
		You can then use those examples to build a custom protocol model:
	&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 xyz.pcap --output model:MalwareXYZ:MALICIOUS:malwarexyz.fcp
	&lt;/div&gt;&lt;p&gt;
		The model is given the label &lt;span style="background-color: #eeeeee; list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;MalwareXYZ&lt;/span&gt;, marked as &lt;span style="background-color: #eeeeee; list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;MALICIOUS&lt;/span&gt;, and saved as &lt;span style="background-color: #eeeeee; list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;malwarexyz.fcp&lt;/span&gt;. Once the model has been created, you can use it to classify traffic in another PCAP:
	  &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 --model malwarexyz.fcp --input new.pcap --output -
	  &lt;/div&gt;&lt;p&gt;
	  This lets you test the model against captures from other samples or sandbox executions.
&lt;/p&gt;&lt;p&gt;
	  The quality of the result depends heavily on the examples used to build the model. If the training data contains only one narrow variation of the protocol, the model may not generalize well.
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Trying the Demo Server&lt;/b&gt;&lt;/p&gt;&lt;p&gt;

		There is a free FlowCarp demo server at demo.flowcarp.com. It runs a FlowCarp web service with a &lt;a href="https://www.netresec.com/?page=FlowCarp"&gt;commercial license&lt;/a&gt; and can identify more than 600 protocols.
	  &lt;/p&gt;&lt;p&gt;
	  The demo server provides a quick way to evaluate FlowCarp's protocol identification feature before building a local workflow. To submit a PCAP, use:
&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 @dump.pcap https://demo.flowcarp.com
	  &lt;/div&gt;&lt;p&gt;
		The server returns a JSON response containing detected flows, protocols, and alerts. For example, the output can be passed to tools such as &lt;a href="https://jqlang.org/"&gt;jq&lt;/a&gt; or processed by an existing incident response pipeline.
	  &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 @dump.pcap https://demo.flowcarp.com | jq
	  &lt;/div&gt;&lt;p&gt;&lt;b&gt;C2 Traffic as Additional Evidence&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; does not replace reverse engineering, IDS signatures or analyst judgment. Its value is that it gives analysts another way to examine a sample. Statistical protocol classification can be a practical addition to malware analysis and incident response workflows. When a sample’s code and configuration are difficult to analyze, its C2 traffic may still reveal the underlying malware family.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>PolarProxy 2.0.2 Released</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-09&amp;post=PolarProxy-2-0-2-Released</link>
      <pubDate>Tue, 08 Sep 2026 12:35:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <category>PolarProxy</category>
      <category>SOCKS</category>
      <category>Tor</category>
      <category>SBOM</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-09&amp;post=PolarProxy-2-0-2-Released</guid>
      <description>A few more handy features have been added to PolarProxy, our TLS inspection proxy. PolarProxy can now tunnel outgoing connections through SOCKS proxies and supports environment variables as an alternative to command-line arguments. PolarProxy also ships with a software bill of materials (SBOM), prov[...]</description>
      <content:encoded>&lt;img src="https://media.netresec.com/images/PolarProxy_2-0-2_2000x2000.webp" alt="PolarProxy 2.0.2" width="2000" height="2000" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;&lt;p&gt;
		A few more handy features have been added to &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;PolarProxy&lt;/a&gt;, our TLS inspection proxy. PolarProxy can now tunnel outgoing connections through SOCKS proxies and supports environment variables as an alternative to command-line arguments. PolarProxy also ships with a software bill of materials (SBOM), providing greater transparency into its dependencies.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;SOCKS Proxy Client&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		PolarProxy has been able to accept incoming connections over SOCKS &lt;a href="https://netresec.com/?b=221953b"&gt;since version 0.9&lt;/a&gt;. With this release, PolarProxy can also send outgoing connections through another SOCKS proxy server. Both SOCKS4 and SOCKS5 are supported. This feature enables many use cases, including inspecting your own HTTPS requests before sending them through the Tor network.
	  &lt;/p&gt;&lt;p&gt;
		The following command starts a SOCKS proxy on TCP port 1080 and forwards all traffic to a Tor SOCKS5 proxy listening on TCP port 9050. A copy of the traffic transmitted through the tunnel, including decrypted TLS traffic, is made available through a PCAP-over-IP service on TCP port 57012.
	  &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;
		PolarProxy --socks 1080 --connect socks5:127.0.0.1:9050 --nontls allow --pcapoverip 57012 --writeall
	  &lt;/div&gt;&lt;br /&gt;&lt;fieldset style="border-color: #8a629e; border-style: solid;"&gt;&lt;legend style="color: #8a629e"&gt;Note&lt;/legend&gt;
		  PolarProxy normally serves only decrypted TLS traffic over PCAP-over-IP. The &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--writeall&lt;/span&gt; option extends the PCAP output to include all proxied traffic.
	  &lt;/fieldset&gt;&lt;p&gt;
		PolarProxy’s SOCKS client can also be used as a protocol converter. For example, incoming HTTP proxy and HAProxy connections can be converted into SOCKS proxy requests with the following 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;
		PolarProxy --httpconnect 8080 --haproxy 7654 --nontls allow --connect socks5:localhost:1080
	  &lt;/div&gt;&lt;br /&gt;&lt;fieldset style="border-color: #8a629e; border-style: solid;"&gt;&lt;legend style="color: #8a629e"&gt;Pro-Tip&lt;/legend&gt;
		  Use PolarProxy’s &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--bypass&lt;/span&gt; switch if you want to use PolarProxy only as a protocol converter, without decrypting and re-encrypting TLS traffic.
	  &lt;/fieldset&gt;&lt;p&gt;&lt;b&gt;Simplified and Flexible Deployments&lt;/b&gt;&lt;/p&gt;&lt;p&gt;


		PolarProxy 2.0.2 enables users to supply configuration settings through environment variables as an alternative to command-line arguments. PolarProxy environment variables use uppercase names with the PP_ prefix. For example, the PP_SOCKS environment variable corresponds to the &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--socks&lt;/span&gt; command-line option.
	  &lt;/p&gt;&lt;fieldset style="border-color: #8a629e; border-style: solid;"&gt;&lt;legend style="color: #8a629e"&gt;Pro-Tip&lt;/legend&gt;
		  Use PolarProxy’s &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--helpenv&lt;/span&gt; switch to print a list of supported environment variables.
	  &lt;/fieldset&gt;&lt;p&gt;
		Environment variables provide a clean separation between an application and its configuration. This is particularly useful when running PolarProxy with systemd, Docker, Podman, Kubernetes, Helm or other orchestration tools. They can simplify deployments and make ongoing configuration changes more flexible.
	  &lt;/p&gt;&lt;p&gt;
		PolarProxy 2.0.2 also ships with a docker-compose.yml (musl builds only) or a systemd unit file (non-musl Linux builds), depending on which target the downloaded release is built for. These files simplify deployment. A docker container can, for example, be deployed by running:
	  &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 https://www.netresec.com/?download=PolarProxy_linux-musl-x64 | tar -xzf -&lt;br /&gt;
		# Modify polarproxy.env&lt;br /&gt;
		docker compose up -d
	  &lt;/div&gt;&lt;p&gt;
		A systemd service can be deployed with:
	  &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 https://www.netresec.com/?download=PolarProxy | tar -xzf -&lt;br /&gt;
		# Modify polarproxy.env&lt;br /&gt;
		./install-polarproxy-service.sh
	  &lt;/div&gt;&lt;p&gt;&lt;b&gt;More Timeouts&lt;/b&gt;&lt;/p&gt;&lt;p&gt;

		PolarProxy 2.0.2 adds a new type of timeout that allows connections to be closed when the client or server has been idle for a specified period. Closing unused “dead” connections helps maintain a clean state and prevents zombie connections from lingering in PolarProxy or in clients connected through PolarProxy.
	  &lt;/p&gt;&lt;p&gt;
		PolarProxy can now close connections based on timeouts at the following communication stages:
	  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;
		  TCP handshake: &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--timeout &amp;lt;seconds&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;TLS handshake: &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;&lt;/li&gt;&lt;li&gt;Idle client connection: &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--idletimeoutclient &amp;lt;seconds&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Idle server connection: &lt;span style="list-style: none; font-family: Consolas, 'Lucida Console', Monaco, 'Courier New'; word-break: break-all" x-ms-format-detection="none"&gt;--idletimeoutserver &amp;lt;seconds&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		The default timeout for TCP and TLS handshakes is 30 seconds, while the idle timeout is disabled by default.&lt;/p&gt;&lt;p&gt;&lt;b&gt;

		  SBOM: Software Bill of Materials
		&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		PolarProxy 2.0.2 includes a software bill of materials (SBOM), providing an overview of the components, libraries, and dependencies included in PolarProxy.
	  &lt;/p&gt;&lt;p&gt;
		The SBOM supports software transparency and helps users assess their software supply chain. The file shipped with PolarProxy uses the SPDX format and is named polarproxy.spdx.json.
	  &lt;/p&gt;&lt;p&gt;
		PolarProxy's SBOM can be integrated into your security and compliance workflows using standard vulnerability scanning tools. For more info about SBOMs, refer to NIST's &lt;a href="https://www.nist.gov/itl/executive-order-14028-improving-nations-cybersecurity/software-supply-chain-security-guidance-20"&gt;Software Supply Chain Security Guidance&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Downloading and Installing PolarProxy&lt;/b&gt;&lt;/p&gt;&lt;p&gt;For more information on how to download and deploy PolarProxy in your environment, see the &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;official PolarProxy product page&lt;/a&gt;.
	&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>OT Networks Still Need Monitoring</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-08&amp;post=OT-Networks-Still-Need-Monitoring</link>
      <pubDate>Mon, 31 Aug 2026 11:50:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/CHP-PL_ascii-attack-path_v2_1624x500.png" type="image/png" />
      <category>Netresec</category>
      <category>NSM</category>
      <category>OT</category>
      <category>ICS</category>
      <category>Teltonika</category>
      <category>Siemens</category>
      <category>Simatic</category>
      <category>WAGO</category>
      <category>CERT Polska</category>
      <category>ASCII-art</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-08&amp;post=OT-Networks-Still-Need-Monitoring</guid>
      <description>CERT Polska recently published a follow-up report detailing the hack of a Polish combined heat and power (CHP) plant in December 2025. CERT Polskas report concludes with several important recommendations, including protecting OT systems through network segmentation and monitoring traffic entering an[...]</description>
      <content:encoded>&lt;p&gt;
		CERT Polska recently published a &lt;a href="https://cert.pl/uploads/docs/CERT_Polska_Energy_Sector_Incident_Follow_up_Report_2025.pdf"&gt;follow-up report&lt;/a&gt; detailing the hack of a Polish combined heat and power (CHP) plant in December 2025.
	  &lt;/p&gt;&lt;p&gt;
		CERT Polska’s report concludes with several important recommendations, including protecting OT systems through network segmentation and monitoring traffic entering and leaving OT networks. It has now been more than 15 years since I first publicly advocated almost exactly these same two recommendations in my blog post &lt;a href="https://netresec.com/?b=1185A14"&gt;Monitor Those Control System Networks&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;
		One might get the impression that nothing has changed during those 15 years, but I can attest that many OT systems now have effective perimeter protection. Operators of critical infrastructure are also beginning to embrace the concept of network security monitoring for OT systems.
	  &lt;/p&gt;&lt;p&gt;
		Unfortunately, it appears that the hacked CHP plant in Poland did not have sufficient perimeter protection or network security monitoring in place. The apparent lack of monitoring and logging also left CERT Polska with very limited forensic data. As the report states, “Due to the lack of logs, our investigation relied on the development and testing of hypotheses.” Despite these limitations, I am very impressed by the level of technical detail that CERT Polska were able to reconstruct during their investigation of the CHP hack.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Attack Path&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		As CERT Polska outline in their report, the attackers’ initial access vector was an Internet-facing FortiGate VPN at a wind farm. From the VPN device, they pivoted via a Teltonika cellular 5G router into a WAGO PLC, which ultimately gave them access to the control system network of a CHP plant.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/CHP-PL_ascii-attack-path_v2_1624x500.png" alt="Attack path from the Internet to the CHP network" width="1624" height="500" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Attack path from the Internet to the CHP network&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		The lack of perimeter protection, which would otherwise have prevented direct connections between different remote sites, gave the attackers access to the PLCs and other industrial equipment that directly controlled the physical process at the CHP plant.
	  &lt;/p&gt;&lt;p&gt;
		With that type of access, attackers do not need to exploit a vulnerability. They can simply issue “normal” commands over the OT network to shut down the process at the plant. In this specific case, the attackers performed the following operations, apparently in an attempt to cause maximum disruption:
		&lt;ul&gt;&lt;li&gt;Switched multiple Siemens S7 PLCs to STOP mode&lt;/li&gt;&lt;li&gt;Enabled password protection on Siemens S7 PLCs to prevent operators from switching them back to RUN mode&lt;/li&gt;&lt;li&gt;Changed the configurations of several industrial serial device servers and network switches, making them inaccessible from the network&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;img src="https://media.netresec.com/images/CERT-PL_SIMATIC_S7-1500_STOP-mode_960x1036.webp" alt="Siemens S7-1500 PLC in STOP mode, from CERT Polska’s report" width="960" height="1036" style="clear: both; max-width: 60%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Siemens S7-1500 PLC in STOP mode, from CERT Polska’s report&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		As a result of the attack, a steam turbine and the system used to produce process water in the CHP plant were both shut down on December 29.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Network Security Monitoring&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		Better perimeter protection might have prevented the initial access path used against the Polish CHP plant. However, it is not always easy for asset owners and operators to identify every boundary around an OT environment or segment it without affecting operations. This is where network security monitoring plays an important role.
	  &lt;/p&gt;&lt;p&gt;
		OT networks are often well suited to passive monitoring. Most industrial protocols are unencrypted, communication patterns are more deterministic than those in enterprise networks, and traffic volumes are often modest.
		By monitoring OT network traffic and alerting on suspicious or anomalous behavior and known attack techniques, defenders may be able to detect an intrusion early enough to investigate, contain, and stop it before destructive actions are carried out.
	  &lt;/p&gt;&lt;p&gt;
		Examples of useful detections include:
		&lt;ul&gt;&lt;li&gt;Reconnaissance activity, such as TCP SYN scans&lt;/li&gt;&lt;li&gt;Attempts to access canary or honeypot systems that normal operations should not touch&lt;/li&gt;&lt;li&gt;Connections from unexpected systems to ICS-specific ports, such as TCP ports 102, 502, 2404, 5094, 20000, 44818 and 47808&lt;/li&gt;&lt;li&gt;Potentially dangerous protocol commands, such as putting a PLC into STOP mode, changing its operating mode, downloading a new program, or modifying its configuration outside a scheduled maintenance window&lt;/li&gt;&lt;li&gt;New communication paths, such as traffic between IP address pairs that have not previously communicated&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		The Polish incident illustrates the value of detecting reconnaissance activity, not just the final destructive commands. The disruptive actions occurred on December 29, but CERT Polska uncovered malicious activity as early as December 18.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/CERT-PL_Teltonika-ssh-log_901x310.webp" alt="Log from the Teltonika RUTX50 cellular router" width="901" height="310" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Log from the Teltonika RUTX50 cellular router&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		This suggests that the attackers had access to the environment more than 10 days before the destructive actions. This period is known as the dwell time: the time between an attacker gaining access to an environment and being detected or taking disruptive action.
	  &lt;/p&gt;&lt;p&gt;
		Had the intrusion been detected early, this dwell time would have provided multiple opportunities for defenders to contain it before the attackers carried out their disruptive actions.
	  &lt;/p&gt;&lt;p&gt;
		Long dwell times are common in attacks against OT systems. Attackers may spend weeks or months learning about the environment, identifying important assets, and determining how to disrupt the physical process. In some cases, access to critical infrastructure is established as part of pre-positioning, where a state-sponsored threat actor gains and maintains access to an OT environment without immediately causing disruption, preserving the ability to deliver a destructive payload at a later point. This makes early detection especially important, even when an intrusion does not initially appear to be affecting plant operations.
	  &lt;/p&gt;&lt;p&gt;
		Captured network traffic, preferably stored as PCAP files, is one of the most valuable sources of evidence when analyzing a suspected attack against an OT system. It can help investigators reconstruct the attacker’s activity, validate alerts, and identify affected systems. If the captured traffic is stored on a system that is not accessible from the OT network, the risk of an attacker tampering with the evidence is reduced.
	  &lt;/p&gt;&lt;p&gt;
		This is one reason we have been teaching &lt;a href="https://www.netresec.com/?page=TrainingICS"&gt;Network Forensics for Industrial Control Systems&lt;/a&gt; for more than 10 years. Feel free to &lt;a href="https://www.netresec.com/?page=AboutNetresec"&gt;reach out&lt;/a&gt; if you want to learn more about our network forensics training.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Siemens S7 Advisory&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		On a related note, the NSA, CISA, FBI, DOE, and EPA published a joint cybersecurity advisory titled &lt;a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa26-231a"&gt;Defending Against an Active Threat to Siemens S7 Series PLCs&lt;/a&gt; on August 19 (&lt;a href="https://media.defense.gov/2026/Aug/18/2003983494/-1/-1/0/CSA_Active_Threat_to_Siemens_S7_Series_PLCs.PDF"&gt;PDF&lt;/a&gt;). In the advisory, the authoring agencies called for mitigation measures such as verifying network segmentation and monitoring network traffic to detect and alert on anomalous or malicious activity. These recommendations are very much in line with what CERT Polska stated in their report, as well as with what I have been recommending since 2011.
	  &lt;/p&gt;&lt;p&gt;
		The question isn't whether we should implement these recommendations, 15+ years of evidence answers that. The question is what it will take to make them happen.
	  &lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>CNCMachineRMS C2 Protocol</title>
      <link>https://www.netresec.com/?page=Blog&amp;month=2026-08&amp;post=CNCMachineRMS-C2-Protocol</link>
      <pubDate>Fri, 21 Aug 2026 14:45:00 GMT</pubDate>
      <dc:creator>Erik Hjelmvik</dc:creator>
      <enclosure url="https://media.netresec.com/images/ANY-RUN_notepadreleased_1322x422.webp" type="image/webp" />
      <category>CNCMachineRMS</category>
      <category>FlowCarp</category>
      <category>malware-traffic-analysis.net</category>
      <category>ANY.RUN</category>
      <category>DoH</category>
      <category>BabaDeda</category>
      <guid>https://www.netresec.com/?page=Blog&amp;month=2026-08&amp;post=CNCMachineRMS-C2-Protocol</guid>
      <description>This post describes the binary command-and-control (C2) protocol used by CNCMachineRMS, a recently identified remote access trojan (RAT). We cover how the protocol was discovered, how its infrastructure was identified, and how network defenders can detect it. Background We have been tracking a previ[...]</description>
      <content:encoded>&lt;!--&lt;img src="https://media.netresec.com/images/CNCMachineRMS_2000x2005.png" alt="CNCMachineRMS" width="2000" height="2005" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;--&gt;&lt;img src="https://media.netresec.com/images/CNCMachineRMS_2000x2005.webp" alt="CNCMachineRMS" width="2000" height="2005" style="float: right; margin-left: 10px; max-width: 40%; height:auto" /&gt;&lt;p&gt;
		This post describes the binary command-and-control (C2) protocol used by CNCMachineRMS, a recently identified remote access trojan (RAT). We cover how the protocol was discovered, how its infrastructure was identified, and how network defenders can detect it.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		We have been tracking a previously unknown malware C2 protocol for several months. It first came to our attention back in April through packet captures from two &lt;a href="https://www.malware-traffic-analysis.net/2026/04/06/index.html"&gt;sandbox&lt;/a&gt; &lt;a href="https://www.malware-traffic-analysis.net/2026/04/23/index.html"&gt;executions&lt;/a&gt; created by &lt;a href="https://infosec.exchange/@malware_traffic"&gt;Brad Duncan&lt;/a&gt;.
	  &lt;/p&gt;&lt;p&gt;
		The captures showed ClickFix attacks in which a fake CAPTCHA was used to deliver a previously unknown remote access trojan. The RAT communicated with 89.110.110.119 over TCP port 443. Although the traffic used port 443, it was not protected by TLS and did not resemble any previously known C2 protocol.
	  &lt;/p&gt;&lt;p&gt;
		We later added a detection model for the protocol to &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt;. At that point, the protocol was labeled "Unknown_16". Using FlowCarp, we identified additional C2 servers using the same protocol. All of them exposed the C2 service on TCP port 443:
	  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;85.158.110.78&lt;/li&gt;&lt;li&gt;89.110.110.119&lt;/li&gt;&lt;li&gt;89.124.79.98&lt;/li&gt;&lt;li&gt;144.124.242.171&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
		Brad Duncan’s malware captures were instrumental in identifying this infrastructure. We then used the IP addresses and hashes from Brad’s executions to find additional samples and executions of the same malware family on ANY.RUN, Joe Sandbox, and Triage.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;CNCMachineRMS&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		I only recently read Rodel Mendrez’s excellent writeup &lt;a href="https://www.levelblue.com/blogs/spiderlabs-blog/cncmachinerms-the-undocumented-rat-at-the-end-of-a-babadeda-chain"&gt;CNCMachineRMS: The Undocumented RAT At the End of a BabaDeda Chain&lt;/a&gt;. The report confirmed that the malware Rodel had reverse engineered was the same malware we had observed communicating in Brad Duncan’s PCAP files. In particular, the report mentions the IP address 85.158.110.78 and the domain notepadreleased[.]com.
	  &lt;/p&gt;&lt;p&gt;
		Rodel notes that CNCMachineRMS includes several features typical of RATs, including:
		&lt;ul&gt;&lt;li&gt;Interactive shell&lt;/li&gt;&lt;li&gt;File manager&lt;/li&gt;&lt;li&gt;Screen capture&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;
		The name “CNCMachineRMS” is taken from a hardcoded directory name used by the malware’s loader:
		&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;
		  %TEMP%\CNCMachineRMS\tasks\[TASK_ID]\task_payload.bin
		&lt;/div&gt;&lt;/p&gt;&lt;p&gt;
		One notable behavior is the malware’s use of DNS over HTTPS (DoH). Rather than sending the C2 domain lookup to the system’s usual DNS resolver, CNCMachineRMS sends the query over HTTPS to an external DoH provider. Rodel also mentioned this in his report:
	  &lt;/p&gt;&lt;blockquote&gt;
		The payload resolves its C2 domain over DNS over HTTPS, using dns.google, cloudflare-dns.com and dns.quad9.net. Local DNS logs will not show the lookup.
	  &lt;/blockquote&gt;&lt;img src="https://media.netresec.com/images/ANY-RUN_notepadreleased_1322x422.webp" alt="notepadreleased domain resolved using DoH" width="1322" height="422" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: Decrypted DoH query for notepadreleased[.]com from &lt;a href="https://app.any.run/tasks/537425cf-d112-4500-9189-ed3ec8f982ba"&gt;ANY.RUN&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		Even without extracting crypto keys from memory or using a TLS inspection tool like &lt;a href="https://www.netresec.com/?page=PolarProxy"&gt;PolarProxy&lt;/a&gt;, you can still see a TLS encrypted connection to a DoH provider such as dns.google. This usually happens just seconds before CNCMachineRMS connects to its C2 server.
	  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Network Detection&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
		FlowCarp uses a statistical model of the CNCMachineRMS binary protocol to detect similar traffic. This made it possible to add support for the CNCMachineRMS C2 protocol by providing FlowCarp with some example C2 sessions.
	  &lt;/p&gt;&lt;p&gt;
		To our knowledge, no IDS signatures currently exist for this protocol. However, the traffic appears relatively straightforward to identify. Several fields contain consecutive 0x00 or 0xff bytes at fixed offsets, creating a distinctive pattern across the protocol’s messages.
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/CNCMachineRMS_C2_markup_1200x726.png" alt="CapLoader flow transcript of CNCMachineRMS traffic" width="1200" height="726" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;i&gt;Image: CapLoader flow transcript of CNCMachineRMS traffic&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
		Note: Yellow 0xff fields contain 0x00 in some connections.
	  &lt;/p&gt;&lt;p&gt;
		You can test a PCAP file for CNCMachineRMS traffic by submitting it to the free &lt;a href="https://flowcarp.com/"&gt;FlowCarp&lt;/a&gt; demo server:
	  &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 @suspicious.pcap https://demo.flowcarp.com
	  &lt;/div&gt;&lt;p&gt;
		If the file contains CNCMachineRMS traffic, the response includes a JSON alert similar to the following:
	  &lt;/p&gt;&lt;img src="https://media.netresec.com/images/FlowCarp-CNCMachineRMS_1094x833.webp" alt="JSON alert for CNCMachineRMS from FlowCarp" width="1094" height="833" style="clear: both; max-width: 100%; height:auto" /&gt;&lt;p&gt;&lt;b&gt;IOC List&lt;/b&gt;&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;Indicator&lt;/th&gt;&lt;th&gt;Details&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;89.110.110.119:443&lt;/td&gt;&lt;td&gt;first seen 2026-04-06&lt;br /&gt;last seen 2026-05-27&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;85.158.110.78:443&lt;/td&gt;&lt;td&gt;first seen 2026-06-30&lt;br /&gt;last seen 2026-08-02&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;89.124.79.98:443&lt;/td&gt;&lt;td&gt;first seen 2026-06-30&lt;br /&gt;last seen 2026-07-31&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;144.124.242.171:443&lt;/td&gt;&lt;td&gt;first seen 2026-08-12&lt;br /&gt;last seen 2026-08-12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;notepadreleased[.]com&lt;/td&gt;&lt;td&gt;registered 2026-04-02&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;triotmelon[.]com&lt;/td&gt;&lt;td&gt;registered 2026-08-04&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="word-break: break-all;"&gt;b0bc47a7308bd39a5b638781874a3d8e&lt;/td&gt;&lt;td&gt;JSONSchema.zip&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="word-break: break-all;"&gt;ca88a6c055a96e1a6fa47e2586d41d2a&lt;/td&gt;&lt;td&gt;python.zip&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="word-break: break-all;"&gt;e421ad53b169282b04e50e1b9d1faa9e&lt;/td&gt;&lt;td&gt;403404323857317050-pdf.zip&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="word-break: break-all;"&gt;eba2bbd380b6949a249aba5c3ed13245&lt;/td&gt;&lt;td&gt;81241123044010750.pdf&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</content:encoded>
    </item>
  </channel>
</rss>