<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Blue Team Labs Online on Drew Arpino (Stumblesec)</title>
        <link>https://stumblesec.com/categories/blue-team-labs-online/</link>
        <description>Recent content in Blue Team Labs Online on Drew Arpino (Stumblesec)</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Sun, 08 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://stumblesec.com/categories/blue-team-labs-online/index.xml" rel="self" type="application/rss+xml" /><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>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>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>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>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>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>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>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>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>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></channel>
</rss>
