<?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[Matthew Hard]]></title><description><![CDATA[Matthew Hard]]></description><link>https://matthewhard.com</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1770402710593/bcecc196-1bc9-4c42-bb7d-06d47c01a222.png</url><title>Matthew Hard</title><link>https://matthewhard.com</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 13:43:49 GMT</lastBuildDate><atom:link href="https://matthewhard.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[🐍 How to Set Up a Python Virtual Environment (venv) on Windows, MacOS, and Linux (For Absolute Beginners)]]></title><description><![CDATA[Goal: After this, you’ll know how to create an isolated space on your computer to safely install Python packages — without breaking your system.

➡️ What’s a Virtual Environment?
Setting up a virtual environment might sound fancy, but it’s just a way...]]></description><link>https://matthewhard.com/how-to-set-up-a-python-virtual-environment-venv-on-windows-macos-and-linux-for-absolute-beginners</link><guid isPermaLink="true">https://matthewhard.com/how-to-set-up-a-python-virtual-environment-venv-on-windows-macos-and-linux-for-absolute-beginners</guid><category><![CDATA[Python]]></category><category><![CDATA[venv]]></category><category><![CDATA[Flask Framework]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[pip]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 15 Jul 2025 00:56:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1752539801879/0f7ecfe3-14e2-4d57-a8a4-2b7b654fb165.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p><strong>Goal:</strong> After this, you’ll know how to create an isolated space on your computer to safely install Python packages — without breaking your system.</p>
</blockquote>
<h2 id="heading-whats-a-virtual-environment">➡️ <strong>What’s a Virtual Environment?</strong></h2>
<p>Setting up a virtual environment might sound fancy, but it’s just a way to keep your Python projects neat and tidy — like having your own little workspace where you can install packages without messing up your whole system.</p>
<p>Here’s how to do it on <strong>Windows, MacOS, and Linux</strong> — step-by-step, no confusing stuff.</p>
<p>Think of a <strong>venv</strong> like a sandbox. It keeps all the Python packages for one project separate from all the other projects or your main Python install. That way, you don’t get version headaches or conflicts.</p>
<h2 id="heading-first-lets-check-if-python-is-ready-to-go">❓First, let’s check if python is ready to go</h2>
<ol>
<li><p>Before anything, check if Python is installed and ready.</p>
<p> Open your terminal (Command Prompt on Windows, Terminal on Mac/Linux), and type:</p>
</li>
</ol>
<pre><code class="lang-powershell">python -<span class="hljs-literal">-version</span>
</code></pre>
<p>Or if that doesn’t work ad a 3 after python:</p>
<pre><code class="lang-powershell">python3 -<span class="hljs-literal">-version</span>
</code></pre>
<p>If you see a version number like <code>Python 3.x.x</code>, you’re good. If not, go grab Python from<br />👉 <a target="_blank" href="https://www.python.org/downloads/">https://www.python.org/downloads/</a></p>
<h3 id="heading-important-add-python-to-path-on-windows-when-installing">IMPORTANT: <em>Add Python to PATH</em> on Windows when installing.</h3>
<h2 id="heading-steps-on-all-operating-systems"><strong>Steps on All Operating Systems</strong></h2>
<h3 id="heading-first-pick-or-create-a-project-folder">✅ First: Pick or Create a Project Folder</h3>
<p><strong>Note:</strong> You can totally do this part in File Explorer — no need to wrestle with the terminal just to create or move files. But heads up: you’ll still need a command line window to actually start your app.</p>
<p>For example:</p>
<pre><code class="lang-powershell">Documents/my<span class="hljs-literal">-python</span><span class="hljs-literal">-project</span>
</code></pre>
<p>Navigate there:</p>
<pre><code class="lang-powershell"><span class="hljs-built_in">cd</span> Documents/my<span class="hljs-literal">-python</span><span class="hljs-literal">-project</span>
</code></pre>
<h3 id="heading-again-you-can-totally-do-that-part-in-file-explorer-no-need-to-complicate-it">👉<strong>Again:</strong> You can totally do that part in File Explorer, no need to complicate it.</h3>
<hr />
<h3 id="heading-next-create-the-virtual-environment">✅ Next: Create the Virtual Environment</h3>
<p>Run this command:</p>
<pre><code class="lang-powershell">python <span class="hljs-literal">-m</span> venv venv
</code></pre>
<p>Or if <code>python</code> doesn’t work:</p>
<pre><code class="lang-powershell">python3 <span class="hljs-literal">-m</span> venv venv
</code></pre>
<ul>
<li><p><code>-m venv</code> says: <strong>"use the venv tool"</strong></p>
</li>
<li><p>The <strong>second</strong> <code>venv</code> is the name of the folder that will hold the virtual environment files.<br />  You can name it whatever you want, but <code>venv</code> is common.</p>
</li>
</ul>
<hr />
<h3 id="heading-3rd-step-activate-the-virtual-environment">✅ 3rd step: Activate the Virtual Environment</h3>
<p>Here’s where the OS-specific part comes in:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>OS</td><td>Command</td></tr>
</thead>
<tbody>
<tr>
<td><strong>Windows (CMD):</strong></td><td>venv\Scripts\activate.bat</td></tr>
<tr>
<td><strong>Windows (PowerShell):</strong></td><td>.\venv\Scripts\<a target="_blank" href="http://Activate.ps">Activate.ps</a>1</td></tr>
<tr>
<td><strong>MacOS / Linux:</strong></td><td>source venv/bin/activate</td></tr>
</tbody>
</table>
</div><h3 id="heading-remember-the-powershell-command-requires-the-leading-in-order-to-tell-powershell-to-run-a-script-in-the-current-directory">👉 <strong>Remember</strong>: The PowerShell command requires the leading “ . “ in order to tell PowerShell to run a script in the current directory.</h3>
<blockquote>
<p>✅ <strong>If it works:</strong> You’ll see the environment name appear at the start of your prompt:</p>
</blockquote>
<pre><code class="lang-powershell">(venv) &lt;---- like that
</code></pre>
<hr />
<h3 id="heading-fourth-install-packages-safely">✅ Fourth: Install Packages Safely</h3>
<p>While the venv is activated, install whatever you want, like:</p>
<pre><code class="lang-powershell">pip install flask
</code></pre>
<p>Everything you install here <strong>stays inside the venv</strong>, not globally.</p>
<hr />
<h3 id="heading-fifth-check-whats-installed">✅ Fifth: Check What’s Installed</h3>
<pre><code class="lang-powershell">pip list
</code></pre>
<hr />
<h3 id="heading-sixth-deactivate-when-done">✅ Sixth: Deactivate When Done</h3>
<p>Simply type:</p>
<pre><code class="lang-powershell">deactivate
</code></pre>
<p>You’re back to normal. The venv is still there — you just reactivate it next time.</p>
<hr />
<h2 id="heading-summary-cheat-sheet">S<strong>ummary Cheat Sheet</strong></h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Task</td><td>Windows</td><td>MacOS / Linux</td></tr>
</thead>
<tbody>
<tr>
<td>Create venv</td><td>python -m venv venv</td><td>python3 -m venv venv</td></tr>
<tr>
<td>Activate</td><td>CMD: venv\Scripts\activate.bat or PowerShell: .\venv\Scripts\Activate.ps1</td><td>source venv/bin/activate</td></tr>
<tr>
<td>Deactivate</td><td>deactivate</td><td>deactivate</td></tr>
</tbody>
</table>
</div><hr />
<h2 id="heading-bonus-tip-deleting-a-venv"><strong>Bonus Tip: Deleting a venv</strong></h2>
<p>To remove the whole environment:</p>
<pre><code class="lang-powershell"><span class="hljs-built_in">rm</span> <span class="hljs-literal">-rf</span> venv
</code></pre>
<p>On Windows, manually delete the <code>venv</code> folder.</p>
<hr />
<h2 id="heading-troubleshooting-common-problems"><strong>Troubleshooting Common Problems</strong></h2>
<ol>
<li><p>❌ <em>Command not found?</em><br /> Try <code>python3</code> instead of <code>python</code>.</p>
</li>
<li><p>❌ <em>Permission denied on Mac/Linux?</em></p>
</li>
</ol>
<pre><code class="lang-powershell">chmod +x venv/bin/activate
</code></pre>
<ol start="3">
<li>❌ <em>Windows PowerShell error (Execution Policy)?</em><br /> Run PowerShell as Administrator:</li>
</ol>
<pre><code class="lang-powershell"><span class="hljs-built_in">Set-ExecutionPolicy</span> RemoteSigned
</code></pre>
<hr />
<h2 id="heading-recap"><strong>Recap…</strong></h2>
<p><strong>…of what you should have learned</strong>:</p>
<ul>
<li><p>Why virtual environments exist</p>
</li>
<li><p>How to make them on any OS</p>
</li>
<li><p>How to activate, use, and deactivate them</p>
</li>
<li><p>How to clean up</p>
</li>
</ul>
<p>Now you can work on Python projects <strong>without messing up your system or other projects.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Enhance Your Online Security with Hardware Keys | Protect Against Cyber Threats]]></title><description><![CDATA[The use of hardware keys like the Yubikey or Google Titan could potentially prevent hundreds of thousands to millions of attacks per day globally. Every day we become more and more dependent on the digital world and because of this, ensuring the secu...]]></description><link>https://matthewhard.com/enhance-your-online-security-with-hardware-keys-protect-against-cyber-threats</link><guid isPermaLink="true">https://matthewhard.com/enhance-your-online-security-with-hardware-keys-protect-against-cyber-threats</guid><category><![CDATA[Hardwarekeys]]></category><category><![CDATA[CyberProtection]]></category><category><![CDATA[TwoFactorAuthentication]]></category><category><![CDATA[Online security]]></category><category><![CDATA[2FA]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Fri, 05 Apr 2024 16:28:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1712334236220/55dd0e33-ca76-4a57-b1aa-1d6ec1b22e90.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The use of hardware keys like the Yubikey or Google Titan could potentially prevent hundreds of thousands to millions of attacks per day globally. Every day we become more and more dependent on the digital world and because of this, ensuring the security of your online accounts is more crucial than ever. Relying solely on passwords for authentication can leave your accounts vulnerable to attacks. That's where hardware keys like YubiKeys come into play. I think it’s time you took a serious look into the security of your accounts. So, let’s delve into the benefits of using hardware keys and explore how they can safeguard you from various online threats.</p>
<p><strong>Benefits of Using Hardware Keys:</strong></p>
<ol>
<li><p><strong>Two-Factor Authentication (2FA) Reinforcement:</strong> Hardware keys serve as an additional layer of security alongside your passwords. Even if your password is compromised, attackers would still need physical access to your hardware key to gain unauthorized entry.</p>
</li>
<li><p><strong>Protection Against Phishing Attacks:</strong> Unlike traditional 2FA methods such as SMS or app-based authentication, hardware keys are not susceptible to phishing attacks. Since they require physical interaction, they offer robust protection against phishing attempts aiming to trick you into revealing your credentials.</p>
</li>
<li><p><strong>Versatility Across Platforms:</strong> Hardware keys are supported by a wide range of services and platforms. Major players like Microsoft, Google, Facebook, GitHub, and more allow for the use of hardware keys, making them a convenient and universal solution for enhancing account security.</p>
</li>
<li><p><strong>Offline Access Capability:</strong> Hardware keys work even when you're offline, ensuring access to your accounts even in situations where internet connectivity is limited or unavailable.</p>
</li>
</ol>
<p><strong>Threats Hardware Keys Can Mitigate:</strong></p>
<ol>
<li><p><strong>Password Theft:</strong> Hardware keys mitigate the risk of password theft by adding an extra layer of authentication, reducing the likelihood of unauthorized access even if passwords are compromised.</p>
</li>
<li><p><strong>Phishing Attacks:</strong> Since hardware keys require physical interaction, they offer protection against phishing attacks that attempt to trick users into divulging their login credentials.</p>
</li>
<li><p><strong>Credential Stuffing:</strong> By strengthening authentication, hardware keys help prevent credential stuffing attacks, where attackers use stolen credentials to gain unauthorized access to multiple accounts.</p>
</li>
</ol>
<p><strong>Sites and Services Supporting Hardware Keys:</strong></p>
<ol>
<li><p>Google (Gmail, Google Drive, etc.)</p>
</li>
<li><p>Microsoft (Microsoft Account, Office 365, etc.)</p>
</li>
<li><p>Facebook</p>
</li>
<li><p>GitHub</p>
</li>
<li><p>Dropbox</p>
</li>
<li><p>Twitter</p>
</li>
<li><p>Amazon Web Services (AWS)</p>
</li>
<li><p>Coinbase</p>
</li>
<li><p>Gemini</p>
</li>
<li><p>Kraken</p>
</li>
<li><p>Ledger</p>
</li>
<li><p>Trezor</p>
</li>
<li><p>Interactive Brokers</p>
</li>
<li><p>Charles Schwab</p>
</li>
<li><p>Many more...</p>
</li>
</ol>
<p><strong>How to Set Up Hardware Keys:</strong></p>
<p>Setting up hardware keys for your accounts generally involves the following steps:</p>
<ol>
<li><p><strong>Purchase a Hardware Key:</strong> Choose a reputable hardware key provider like Yubico or Google Titan and purchase a compatible hardware key.</p>
</li>
<li><p><strong>Enable 2FA on Your Accounts:</strong> Go to the security settings of each account you wish to protect and enable two-factor authentication (2FA).</p>
</li>
<li><p><strong>Add Hardware Key as a Second Factor:</strong> Follow the instructions provided by each service to add your hardware key as a second factor. This typically involves inserting the key into a USB port, tapping it against your phone (for NFC-enabled keys), or scanning a QR code.</p>
</li>
<li><p><strong>Verify and Backup:</strong> Once added, verify that your hardware key works properly by completing the setup process. Additionally, ensure you have backup methods in case you lose access to your hardware key (e.g., backup codes, secondary hardware key).</p>
</li>
</ol>
<p>You don’t have to use a hardware key to keep your accounts safe. While it’s possible that no bad actors will ever attempt to access your accounts, the reality is that it's more likely they will than they won't. If you've ever experienced a breach in one of your accounts, you know how incredibly violating it can be. Again, using a security key is not mandatory, but I urge you to consider the benefits. By following these steps and seriously considering the adoption of hardware keys for your online accounts, you can significantly enhance your security posture and protect yourself from a wide range of online threats. Stay secure, stay protected!</p>
]]></content:encoded></item><item><title><![CDATA[Resolving Windows Recovery Environment Issues: reagentc]]></title><description><![CDATA[The Windows Recovery Environment (WinRE) is a crucial Windows operating system tool, providing essential tools for troubleshooting and system recovery. However, users may encounter situations where WinRE becomes disabled or missing, leading to errors...]]></description><link>https://matthewhard.com/resolving-windows-recovery-environment-issues-reagentc</link><guid isPermaLink="true">https://matthewhard.com/resolving-windows-recovery-environment-issues-reagentc</guid><category><![CDATA[reagentc]]></category><category><![CDATA[Windows Recovery]]></category><category><![CDATA[WindowRE]]></category><category><![CDATA[Windows]]></category><category><![CDATA[Computer Repair]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Fri, 15 Mar 2024 20:35:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1710534604501/4c095965-fada-4e83-90ea-f8095d60602f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Windows Recovery Environment (WinRE) is a crucial Windows operating system tool, providing essential tools for troubleshooting and system recovery. However, users may encounter situations where WinRE becomes disabled or missing, leading to errors like "Could not find the recovery environment" when attempting to perform tasks such as system refreshes or restores. Let's take a look at basic reagentc commands, its options, and demonstrate how it can be used to address WinRE issues through real-life examples.</p>
<p><strong>Understanding reagentc</strong></p>
<p>The reagentc command is a command-line tool used to configure WinRE settings on Windows systems. It allows users to enable, disable, and configure various aspects of WinRE to ensure its proper functioning.</p>
<p><strong>Options</strong>:</p>
<ol>
<li><p><strong>/enable</strong>: Enables WinRE if it's currently disabled or missing.</p>
</li>
<li><p><strong>/disable</strong>: Disables WinRE.</p>
</li>
<li><p><strong>/info</strong>: Displays information about the current WinRE configuration.</p>
</li>
<li><p><strong>/setreimage</strong>: Sets the location of the WinRE image.</p>
</li>
<li><p><strong>/setosimage</strong>: Sets the location of the Windows image used for recovery operations.</p>
</li>
<li><p><strong>/setreimagepath</strong>: Sets the path to the WinRE image.</p>
</li>
<li><p><strong>/target</strong>: Specifies the location of the Windows installation to be used with the /enable option.</p>
</li>
</ol>
<p><strong>Let's take a look at a few examples</strong></p>
<p><strong>Example 1</strong>: Enabling WinRE to Fix "Could Not Find the Recovery Environment" Error Scenario: A user encounters an error message stating "Could not find the recovery environment" when attempting to run a system refresh on their Windows 11 computer.</p>
<p><strong>Solution</strong>: The user utilizes the reagentc command to enable WinRE and resolve the issue. They open Command Prompt as an administrator and execute the following command:</p>
<pre><code class="lang-plaintext">reagentc /enable
</code></pre>
<p>After enabling WinRE, the user retries the system refresh operation, and it proceeds without encountering the error.</p>
<p><strong>Example 2</strong>: Customizing WinRE Settings for Enhanced Recovery Capabilities Scenario: A system administrator wants to customize WinRE settings to specify a custom location for the WinRE image and Windows image used for recovery operations.</p>
<p><strong>Solution</strong>: The system administrator uses the reagentc command to configure WinRE settings according to their requirements. They execute the following commands in Command Prompt as an administrator:</p>
<pre><code class="lang-plaintext">reagentc /setreimage /path D:\WinRE
reagentc /setosimage /path C:\Windows
</code></pre>
<p>These commands set the locations of the WinRE image and Windows image, respectively, to the specified paths. Customizing these settings ensures that WinRE functions optimally for recovery operations.</p>
<p>Conclusion: The reagentc command is a powerful tool for managing WinRE settings on Windows systems. By understanding its options and how to use them, users can effectively address issues related to WinRE, such as the "Could not find the recovery environment" error, and customize WinRE settings to enhance recovery capabilities. Whether enabling WinRE to facilitate system recovery or customizing settings for specific requirements, reagentc empowers users to maintain a robust recovery environment on their Windows devices.</p>
]]></content:encoded></item><item><title><![CDATA[Networking Fundamentals: Subnetting]]></title><description><![CDATA[Subnetting involves dividing a network into more manageable sub-networks. Within IPv4 addressing, an IP address comprises four octets, each containing eight bits, culminating in a total of thirty-two bits. These octets are expressed in decimal format...]]></description><link>https://matthewhard.com/networking-fundamentals-subnetting</link><guid isPermaLink="true">https://matthewhard.com/networking-fundamentals-subnetting</guid><category><![CDATA[subnetting]]></category><category><![CDATA[CIDR]]></category><category><![CDATA[IPv4]]></category><category><![CDATA[networking]]></category><category><![CDATA[network security]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 06 Feb 2024 21:29:19 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1707254032825/9516641a-97b4-4159-a968-086eca6eeea4.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Subnetting involves dividing a network into more manageable sub-networks. Within IPv4 addressing, an IP address comprises four octets, each containing eight bits, culminating in a total of thirty-two bits. These octets are expressed in decimal format and are separated by dots, exemplified by <code>11111111.11111111.11111111.00000000</code>, which translates to <code>255.255.255.0</code>. The Subnet Mask allows devices to determine the range of addresses within their network, from the network address to the broadcast address.</p>
<p>For instance, given an IP address of <code>192.168.1.5</code> with a subnet mask of <code>255.255.255.128</code>, the device knows that the Network address is <code>192.168.1.0</code> and the Broadcast Address is <code>192.168.1.127</code>.</p>
<p>Each bit in the octet represents a value:</p>
<pre><code class="lang-plaintext">128  64  32  16  8  4  2  1
1    1   1   1   1  1  1  1
</code></pre>
<p>When added together (<code>128+64+32+16+8+4+2+1</code>), the result is <code>255</code>.</p>
<h3 id="heading-network-class-ranges"><strong>Network Class Ranges</strong></h3>
<p>IP addresses are classified into different classes based on the value used. Private IP addresses are commonly used in LAN networks and cannot be routed on the public Internet. Subnetting enables the subdivision of these private IP addresses to accommodate varying numbers of hosts, depending on the subnet mask used. The subnet mask distinguishes the network portion (network bits) of the address from the host portion (host bits).</p>
<h4 id="heading-typical-private-range-masks">Typical Private Range Masks</h4>
<ul>
<li><p><strong>Class A:</strong> <code>255.0.0.0</code></p>
<pre><code class="lang-plaintext">  11111111.00000000.00000000.00000000
  [-network-].[-----------------host---------------]
</code></pre>
</li>
<li><p><strong>Class B:</strong> <code>255.255.0.0</code></p>
<pre><code class="lang-plaintext">  11111111.11111111.00000000.00000000
  [----network----].[------host------]
</code></pre>
</li>
<li><p><strong>Class C:</strong> <code>255.255.255.0</code></p>
<pre><code class="lang-plaintext">  11111111.11111111.11111111.00000000
  [--------network---------].[---host---]
</code></pre>
</li>
</ul>
<h3 id="heading-cidr-notation"><strong>CIDR Notation</strong></h3>
<p>CIDR notation provides a simpler method for representing subnet masks. For example, if the subnet mask being used in a Class C network is <code>255.255.255.240</code>, the CIDR notation would be <code>/28</code>, indicating that four bits have been borrowed from the host portion. The borrowed bits are indicated below:</p>
<pre><code class="lang-plaintext">255.255.255.240 = 11111111.11111111.11111111.11110000
</code></pre>
<p>Here are a few examples to review. Below are a few practice questions.</p>
<h3 id="heading-example-1-office-network"><strong>Example 1: Office Network</strong></h3>
<ul>
<li><p><strong>Network Address:</strong> 192.168.0.0</p>
</li>
<li><p><strong>Subnet Mask:</strong> 255.255.255.0 (Class C)</p>
</li>
<li><p><strong>Number of Subnets:</strong> 4</p>
</li>
<li><p><strong>Number of Hosts per Subnet:</strong> 30</p>
</li>
<li><p><strong>Subnet Ranges:</strong></p>
<ul>
<li><p>Subnet 1: 192.168.0.0 - 192.168.0.31</p>
</li>
<li><p>Subnet 2: 192.168.0.32 - 192.168.0.63</p>
</li>
<li><p>Subnet 3: 192.168.0.64 - 192.168.0.95</p>
</li>
<li><p>Subnet 4: 192.168.0.96 - 192.168.0.127</p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-example-2-university-campus-network"><strong>Example 2: University Campus Network</strong></h3>
<ul>
<li><p><strong>Network Address:</strong> 10.0.0.0</p>
</li>
<li><p><strong>Subnet Mask:</strong> 255.255.255.128 (Class A)</p>
</li>
<li><p><strong>Number of Subnets:</strong> 8</p>
</li>
<li><p><strong>Number of Hosts per Subnet:</strong> 126</p>
</li>
<li><p><strong>Subnet Ranges:</strong></p>
<ul>
<li><p>Subnet 1: 10.0.0.0 - 10.0.0.127</p>
</li>
<li><p>Subnet 2: 10.0.0.128 - 10.0.0.255</p>
</li>
<li><p>Subnet 3: 10.0.1.0 - 10.0.1.127</p>
</li>
<li><p>Subnet 4: 10.0.1.128 - 10.0.1.255</p>
</li>
<li><p>Subnet 5: 10.0.2.0 - 10.0.2.127</p>
</li>
<li><p>Subnet 6: 10.0.2.128 - 10.0.2.255</p>
</li>
<li><p>Subnet 7: 10.0.3.0 - 10.0.3.127</p>
</li>
<li><p>Subnet 8: 10.0.3.128 - 10.0.3.255</p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-example-3-small-business-network"><strong>Example 3: Small Business Network</strong></h3>
<ul>
<li><p><strong>Network Address:</strong> 172.16.0.0</p>
</li>
<li><p><strong>Subnet Mask:</strong> 255.255.255.240 (Class B)</p>
</li>
<li><p><strong>Number of Subnets:</strong> 16</p>
</li>
<li><p><strong>Number of Hosts per Subnet:</strong> 14</p>
</li>
<li><p><strong>Subnet Ranges:</strong></p>
<ul>
<li><p>Subnet 1: 172.16.0.0 - 172.16.0.15</p>
</li>
<li><p>Subnet 2: 172.16.0.16 - 172.16.0.31</p>
</li>
<li><p>...</p>
</li>
<li><p>Subnet 16: 172.16.0.240 - 172.16.0.255</p>
</li>
</ul>
</li>
</ul>
<p>Now, here are 10 subnet practice questions for study:</p>
<ol>
<li><p>Given the IP address 192.168.1.100 with a subnet mask of 255.255.255.192, what is the network address?</p>
</li>
<li><p>How many subnets can you create from the IP address range 172.16.0.0 to 172.16.15.255 with a subnet mask of 255.255.240.0?</p>
</li>
<li><p>What is the broadcast address for the subnet 10.0.5.0/24?</p>
</li>
<li><p>If you have a Class C network with a subnet mask of 255.255.255.192, how many usable IP addresses are available per subnet?</p>
</li>
<li><p>Given the IP address 10.10.10.200 and a subnet mask of 255.255.255.128, what subnet does it belong to?</p>
</li>
<li><p>How many host bits are available in a subnet with a CIDR notation of /28?</p>
</li>
<li><p>What is the CIDR notation for the subnet mask 255.255.255.248?</p>
</li>
<li><p>If a network address is 192.168.1.0/24, what is the last valid host address?</p>
</li>
<li><p>How many bits are borrowed for subnetting in a Class B network with a subnet mask of 255.255.252.0?</p>
</li>
<li><p>What is the subnet address for the IP address 172.16.32.100/22?</p>
</li>
</ol>
<p>For the answer key, leave a comment.</p>
]]></content:encoded></item><item><title><![CDATA[Powerful OSINT Tools to Help Gather Critical Information Fast]]></title><description><![CDATA[Getting the most out of Open Source Intelligence (OSINT) often boils down to picking the right tools. I've put together a list of powerful OSINT tools that have proven to be super handy for speeding up your information-gathering tasks and making them...]]></description><link>https://matthewhard.com/powerful-osint-tools-to-help-gather-critical-information-fast</link><guid isPermaLink="true">https://matthewhard.com/powerful-osint-tools-to-help-gather-critical-information-fast</guid><category><![CDATA[#cybersecurity]]></category><category><![CDATA[infosec]]></category><category><![CDATA[DigitalInvestigation]]></category><category><![CDATA[OSINT]]></category><category><![CDATA[OSINTTools]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Mon, 30 Oct 2023 20:04:46 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698691766304/b4af640b-cec9-470b-bcc4-fe07342bd59c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Getting the most out of Open Source Intelligence (OSINT) often boils down to picking the right tools. I've put together a list of powerful OSINT tools that have proven to be super handy for speeding up your information-gathering tasks and making them more accurate. Whether you're a cybersecurity pro, investigator, or researcher, these tools will soon become your go-to tools as you get to know them better.</p>
<p><strong>1.</strong> <a target="_blank" href="https://haveibeenpwned.com/"><strong>Have I Been Pwned</strong></a><strong>: Guarding Against Data Breaches</strong></p>
<ul>
<li><p><strong>Description</strong>: Have I Been Pwned is your first line of defense against data breaches. It allows you to check if an email address has been compromised in any known data breaches.</p>
</li>
<li><p><strong>Usage</strong>: Protecting your online security, verifying the integrity of email addresses in your investigations.</p>
</li>
</ul>
<p><strong>2.</strong> <a target="_blank" href="https://haveibeenpwned.com/"><strong>Intelx.io</strong></a><strong>: The Data Explorer</strong></p>
<ul>
<li><p><strong>Description</strong>: <a target="_blank" href="https://haveibeenpwned.com/">Intelx.io</a> is your gateway to uncovering vast amounts of data from online sources. It provides powerful search capabilities to retrieve information and documents.</p>
</li>
<li><p><strong>Usage</strong>: Conducting comprehensive OSINT investigations, locating critical data across the web.</p>
</li>
</ul>
<p><strong>3.</strong> <a target="_blank" href="https://haveibeenpwned.com/"><strong>Hunter.io</strong></a><strong>: Unearthing Email Addresses</strong></p>
<ul>
<li><p><strong>Description</strong>: <a target="_blank" href="https://haveibeenpwned.com/">Hunter.io</a> specializes in finding email addresses associated with a specific domain. It simplifies the task of collecting contact information.</p>
</li>
<li><p><strong>Usage</strong>: Profiling individuals or organizations, gathering essential contact data for investigations.</p>
</li>
</ul>
<p><strong>4.</strong> <a target="_blank" href="https://clearbit.com/resources/tools/connect"><strong>Clearbit Connect</strong></a><strong>: Profiling Entities</strong></p>
<ul>
<li><p><strong>Description</strong>: Clearbit Connect helps you obtain information about individuals or companies based on email addresses or domains.</p>
</li>
<li><p><strong>Usage</strong>: Building profiles and understanding the digital footprint of entities of interest.</p>
</li>
</ul>
<p><strong>5.</strong> <a target="_blank" href="https://haveibeenpwned.com/"><strong>Phonebook.cz</strong></a><strong>: Exploring Public Information</strong></p>
<ul>
<li><p><strong>Description</strong>: <a target="_blank" href="https://haveibeenpwned.com/">Phonebook.cz</a> is your go-to resource for publicly available information about individuals and companies. It includes phone numbers and addresses.</p>
</li>
<li><p><strong>Usage</strong>: Accessing open sources for investigations, retrieving contact and location details.</p>
</li>
</ul>
<p><strong>6.</strong> <a target="_blank" href="https://tools.emailhippo.com/"><strong>EmailHippo</strong></a><strong>: Verifying Email Addresses</strong></p>
<ul>
<li><p><strong>Description</strong>: EmailHippo is a tool for verifying the validity of email addresses, ensuring their accuracy and existence.</p>
</li>
<li><p><strong>Usage</strong>: Confirming the legitimacy of email addresses during OSINT investigations.</p>
</li>
</ul>
<p><strong>7.</strong> <a target="_blank" href="https://email-checker.net/"><strong>Email-Checker</strong></a><strong>: Ensuring Email Validity</strong></p>
<ul>
<li><p><strong>Description</strong>: Email-Checker helps you validate email addresses and check for their existence, reducing the risk of using incorrect or inactive emails.</p>
</li>
<li><p><strong>Usage</strong>: Ensuring the accuracy of email addresses collected during investigations.</p>
</li>
</ul>
<p><strong>8.</strong> <a target="_blank" href="https://dehashed.com/"><strong>Dehashed</strong></a><strong>: Guardians of Breached Data</strong></p>
<ul>
<li><p><strong>Description</strong>: Dehashed is your guardian against data breaches. It enables you to search for breached data and verify if an email or username has been compromised.</p>
</li>
<li><p><strong>Usage</strong>: Identifying potential security threats, tracking data breaches in cybersecurity and OSINT investigations.</p>
</li>
</ul>
<p><strong>9.</strong> <a target="_blank" href="https://hunter.io/"><strong>Hunter</strong></a><strong>: Email Address Finder</strong></p>
<ul>
<li><p><strong>Description</strong>: Hunter is a tool that specializes in finding email addresses associated with a specific domain. It provides an email verification feature to ensure the validity of the collected email addresses.</p>
</li>
<li><p><strong>Usage</strong>: Profiling individuals or organizations, email address verification for OSINT investigations.</p>
</li>
</ul>
<p><strong>10. Whois Lookup Tools: Domain Information Retrieval</strong></p>
<ul>
<li><p><strong>Description</strong>: Whois lookup tools allow you to retrieve detailed information about domain names, including ownership details, registration dates, and contact information.</p>
</li>
<li><p><strong>Usage</strong>: Uncovering the owners of websites, tracking domain registrations, and identifying potential online entities.</p>
</li>
</ul>
<p><strong>11.</strong> <a target="_blank" href="https://datasploit.net/"><strong>DataSploit</strong></a><strong>: OSINT Framework for Gathering Information</strong></p>
<ul>
<li><p><strong>Description</strong>: DataSploit is an OSINT framework that automates the process of gathering information from various public sources, including social media, domains, and subdomains.</p>
</li>
<li><p><strong>Usage</strong>: Conducting automated OSINT investigations by aggregating data from multiple sources.</p>
</li>
</ul>
<p><strong>12.</strong> <a target="_blank" href="https://github.com/laramies/theHarvester"><strong>theHarvester</strong></a><strong>: Gathering Email Addresses and Hostnames</strong></p>
<ul>
<li><p><strong>Description</strong>: theHarvester is a tool that focuses on gathering email addresses and hostnames from different public sources like search engines, PGP key servers, and SHODAN.</p>
</li>
<li><p><strong>Usage</strong>: Profiling individuals, organizations, and gathering email addresses for OSINT purposes.</p>
</li>
</ul>
<p><strong>13.</strong> <a target="_blank" href="https://www.geocreepy.com/"><strong>Creepy</strong></a><strong>: Geolocation Information from Social Media</strong></p>
<ul>
<li><p><strong>Description</strong>: Creepy is a geolocation OSINT tool that extracts geotagged information from social media platforms, allowing you to track users' locations.</p>
</li>
<li><p><strong>Usage</strong>: Identifying the physical location of individuals using geotagged social media posts.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Gobuster Cheat Sheet]]></title><description><![CDATA[Syntax:
gobuster [Mode] [URL] [Wordlist]

Example:
gobuster dir -u http://example.com -w wordlist.txt

Options/Flags:

dir: Directory brute-force mode

dns: DNS subdomain brute-force mode

-u: Target URL

-w: Wordlist for directory and file names

-t...]]></description><link>https://matthewhard.com/gobuster-cheat-sheet</link><guid isPermaLink="true">https://matthewhard.com/gobuster-cheat-sheet</guid><category><![CDATA[#cybersecurity]]></category><category><![CDATA[gobuster]]></category><category><![CDATA[network scanning]]></category><category><![CDATA[infosec]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 24 Oct 2023 22:57:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698188215705/004d31db-305d-4a15-b50e-242b528f1890.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Syntax:</strong></p>
<pre><code class="lang-python">gobuster [Mode] [URL] [Wordlist]
</code></pre>
<p><strong>Example:</strong></p>
<pre><code class="lang-python">gobuster dir -u http://example.com -w wordlist.txt
</code></pre>
<p><strong>Options/Flags:</strong></p>
<ul>
<li><p><code>dir</code>: Directory brute-force mode</p>
</li>
<li><p><code>dns</code>: DNS subdomain brute-force mode</p>
</li>
<li><p><code>-u</code>: Target URL</p>
</li>
<li><p><code>-w</code>: Wordlist for directory and file names</p>
</li>
<li><p><code>-t</code>: Number of concurrent threads</p>
</li>
<li><p><code>-x</code>: File extensions to check</p>
</li>
<li><p><code>-o</code>: Output file</p>
</li>
<li><p><code>-q</code>: Quiet mode</p>
</li>
<li><p><code>-h</code>: Help</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Hydra Cheat Sheet]]></title><description><![CDATA[Syntax:
hydra -l [Username] -P [Password File] [Target] [Service] [Options]

Example:
hydra -l admin -P passwords.txt 192.168.1.1 ssh

Options/Flags:

-l: Username to test

-P: Password file

-s: Service (e.g., ssh, http)

-V: Show login attempts

-t...]]></description><link>https://matthewhard.com/hydra-cheat-sheet</link><guid isPermaLink="true">https://matthewhard.com/hydra-cheat-sheet</guid><category><![CDATA[Hydra]]></category><category><![CDATA[cheatsheet]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[#infosec]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 24 Oct 2023 22:55:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698188074862/5c9152cd-adcc-49bc-bf48-88e8bd936ee0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Syntax:</strong></p>
<pre><code class="lang-python">hydra -l [Username] -P [Password File] [Target] [Service] [Options]
</code></pre>
<p><strong>Example:</strong></p>
<pre><code class="lang-python">hydra -l admin -P passwords.txt <span class="hljs-number">192.168</span><span class="hljs-number">.1</span><span class="hljs-number">.1</span> ssh
</code></pre>
<p><strong>Options/Flags:</strong></p>
<ul>
<li><p><code>-l</code>: Username to test</p>
</li>
<li><p><code>-P</code>: Password file</p>
</li>
<li><p><code>-s</code>: Service (e.g., <code>ssh</code>, <code>http</code>)</p>
</li>
<li><p><code>-V</code>: Show login attempts</p>
</li>
<li><p><code>-t</code>: Number of tasks/threads</p>
</li>
<li><p><code>-vV</code>: Verbose output</p>
</li>
<li><p><code>-h</code>: Help</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Nikto Cheat Sheet]]></title><description><![CDATA[If you are looking for a more in-depth article about the usage of Nikto, see my blog about Nikto usage. Click Here

Syntax:
nikto -h [Target] [Options]

Example:
nikto -h http://example.com

Options/Flags:

-h: Target URL or IP address

-id: Host aut...]]></description><link>https://matthewhard.com/nikto-cheat-sheet</link><guid isPermaLink="true">https://matthewhard.com/nikto-cheat-sheet</guid><category><![CDATA[ #Nikto ]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[infosec]]></category><category><![CDATA[CyberSec]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 24 Oct 2023 22:51:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698187775856/b07f98f8-f717-4f70-b790-501f21f7249c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p>If you are looking for a more in-depth article about the usage of Nikto, see my blog about Nikto usage. <a target="_blank" href="https://matthewhard.com/web-vulnerability-scanning-with-nikto-a-quick-and-dirty-guide">Click Here</a></p>
</blockquote>
<p><strong>Syntax:</strong></p>
<pre><code class="lang-python">nikto -h [Target] [Options]
</code></pre>
<p><strong>Example:</strong></p>
<pre><code class="lang-python">nikto -h http://example.com
</code></pre>
<p><strong>Options/Flags:</strong></p>
<ul>
<li><p><code>-h</code>: Target URL or IP address</p>
</li>
<li><p><code>-id</code>: Host authentication username and password (e.g., <code>-id admin:password</code>)</p>
</li>
<li><p><code>-output</code>: Output file</p>
</li>
<li><p><code>-Format</code>: Output format (e.g., <code>-Format xml</code>)</p>
</li>
<li><p><code>-ssl</code>: Force SSL mode</p>
</li>
<li><p><code>-Cgidirs</code>: Scan for CGI directories</p>
</li>
<li><p><code>-Tuning</code>: Scan tuning (e.g., <code>-Tuning 3</code>)</p>
</li>
<li><p><code>-Evasion</code>: Evasion technique (e.g., <code>-Evasion 1</code>)</p>
</li>
<li><p><code>-Plugins</code>: Use specific plugins (e.g., <code>-Plugins tests/ssl</code>)</p>
</li>
<li><p><code>-list-plugins</code>: List available plugins</p>
</li>
<li><p><code>-dbcheck</code>: Check database support</p>
</li>
<li><p><code>-version</code>: Show Nikto version</p>
</li>
<li><p><code>-help</code>: Help</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Cybersecurity: Port Scanning with Nmap]]></title><description><![CDATA[So, I just wrote an article about how super awesome RustScan is, and I thought I would provide some usage for Nmap. Nmap is still my go-to tool, and I use it by default. But you see, if you know me, you know I'm not content with just one tool in my a...]]></description><link>https://matthewhard.com/cybersecurity-port-scanning-with-nmap</link><guid isPermaLink="true">https://matthewhard.com/cybersecurity-port-scanning-with-nmap</guid><category><![CDATA[network scanning]]></category><category><![CDATA[infosec]]></category><category><![CDATA[nmap]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[portscanner]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 24 Oct 2023 21:17:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698182424494/9a62a1f6-1c2a-4788-a97e-d4ae1907ac6d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So, I just wrote an article <a target="_blank" href="https://matthewhard.com/cybersecurity-port-scanning-with-rustscan">about how super awesome RustScan is</a>, and I thought I would provide some usage for Nmap. Nmap is still my go-to tool, and I use it by default. But you see, if you know me, you know I'm not content with just one tool in my arsenal. I love exploring new hacking tools and, of course, sharing my discoveries. So, I thought, why not do a quick usage for Nmap, show what it is, and how to make the most of it, and the advanced features it brings to the table.</p>
<p>Let's dive into Nmap, the good old classic, and see what makes it tick.</p>
<h2 id="heading-what-is-nmap"><strong>What is Nmap?</strong></h2>
<p>Nmap, short for Network Mapper, is an open-source and powerful network scanning tool that has been a favorite in the cybersecurity community for years. It is designed to discover open ports, identify services running on target hosts, and provide valuable information about the network's topology. It is widely used for security assessments, system administration, and network troubleshooting.</p>
<h2 id="heading-installation"><strong>Installation</strong></h2>
<p>Before we delve into using Nmap, you'll need to install it. The good news is that Nmap is pre-installed in Kali Linux, a popular penetration testing distribution. For other Linux distributions, you can easily install Nmap using your package manager. Here's how:</p>
<pre><code class="lang-plaintext">sudo apt install nmap
</code></pre>
<p>For Windows and macOS users, you can download the installer from the <a target="_blank" href="https://nmap.org/download.html">official Nmap website</a> and follow the installation instructions.</p>
<h2 id="heading-basic-usage"><strong>Basic Usage</strong></h2>
<p>Let's start with a basic scan using Nmap. The simplest way to use Nmap is by specifying the target host you want to scan. Here's the basic syntax:</p>
<pre><code class="lang-plaintext">nmap &lt;target&gt;
</code></pre>
<p>For example, to scan a target with the IP address "10.10.10.1," you would use:</p>
<pre><code class="lang-plaintext">nmap 10.10.10.1
</code></pre>
<p>This command will perform a basic scan of common ports on the specified target and display the results.</p>
<h2 id="heading-scanning-specific-ports"><strong>Scanning Specific Ports</strong></h2>
<p>Nmap allows you to scan specific ports or a range of ports using the "-p" option. For example, to scan only port 80 and 443, use the following command:</p>
<pre><code class="lang-plaintext">nmap -p 80,443 10.10.10.1
</code></pre>
<p>To scan a range of ports, you can specify the range like this:</p>
<pre><code class="lang-plaintext">nmap -p 80-100 10.10.10.1
</code></pre>
<h2 id="heading-aggressive-scanning"><strong>Aggressive Scanning</strong></h2>
<p>Nmap has an "aggressive" scan mode, which can provide more information about target hosts. To use this mode, you can add the "-A" flag to your scan:</p>
<pre><code class="lang-plaintext">nmap -A 10.10.10.1
</code></pre>
<p>The aggressive scan includes version detection, script scanning, and traceroute, giving you a comprehensive view of the target's services and potential vulnerabilities.</p>
<h2 id="heading-script-scanning"><strong>Script Scanning</strong></h2>
<p>One of Nmap's standout features is its scripting engine. You can use pre-built scripts or create custom scripts to extend Nmap's functionality. For example, to perform a script scan using the default scripts, use:</p>
<pre><code class="lang-plaintext">nmap -sC 10.10.10.1
</code></pre>
<p>To run a specific script, you can use:</p>
<pre><code class="lang-plaintext">nmap --script &lt;script-name&gt; 10.10.10.1
</code></pre>
<p>Nmap is not just a network scanning tool; it's a versatile and robust solution for network reconnaissance, security assessments, and network administration. Its flexibility, combined with a wealth of features and a large user community, makes it a must-have tool for anyone working in the field of cybersecurity.</p>
<p>So, the next time you need to scan a network, identify open ports, and uncover potential security issues, Nmap should be your go-to choice. It's a tool that's stood the test of time and remains one of the best options in the cybersecurity arsenal.</p>
<p>Nmap's ease of use, powerful features, and extensive documentation make it a solid choice for both beginners and experienced professionals. Give it a try and let me know what you think.</p>
]]></content:encoded></item><item><title><![CDATA[Cybersecurity: Port Scanning with RustScan]]></title><description><![CDATA[You know, in the realm of network reconnaissance and scanning, finding the right tool can be a game-changer, especially when versatility is a must. Now, my trusty companion in the world of network scanning has always been good ol' Nmap. It's reliable...]]></description><link>https://matthewhard.com/cybersecurity-port-scanning-with-rustscan</link><guid isPermaLink="true">https://matthewhard.com/cybersecurity-port-scanning-with-rustscan</guid><category><![CDATA[network scanning]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[infosec]]></category><category><![CDATA[Rustscan]]></category><category><![CDATA[SecurityAssessment]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Mon, 23 Oct 2023 15:16:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698182496052/4858b43c-c53a-4925-bb6c-109182a9338b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You know, in the realm of network reconnaissance and scanning, finding the right tool can be a game-changer, especially when versatility is a must. Now, my trusty companion in the world of network scanning has always been good ol' Nmap. It's reliable, it's a classic, and it's been my go-to for years.</p>
<p>And here's the kicker: Nmap is like that reliable old friend who's always there when you need them. It comes pre-installed in Kali Linux, it's a breeze to install on most systems, and it's tried and tested. Nmap is dependable, and it's always right at your fingertips.</p>
<p>But let me tell you about a little something that might just find a place in your toolbox – RustScan. I mean, I'm not about to stop using Nmap; it's a fantastic tool that's stood the test of time. But I have to admit that I'm impressed by RustScan. I was introduced to RustScan when I was working on a project, and someone used it at the same time I was running Nmap. It finished scanning before my computer could even spit out an Nmap header!</p>
<p>Now, I get it; we're not talking about a production server here. The server he used it on wasn't meant for anything but pentesting. But the sheer power of RustScan, the ability to unleash that speed when you need it, it's just mind-blowing.</p>
<p>Ok, no more sales pitch, let's just dive in and take a closer look.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">🪣</div>
<div data-node-type="callout-text"><em>I got most of the information for this article from the RustScan documentation. For more detailed information and additional usage options, see the </em><a target="_blank" href="https://github.com/RustScan/RustScan/wiki/Usage"><em>official RustScan documentation</em></a><em>.</em></div>
</div>

<h2 id="heading-what-is-rustscan"><strong>What is RustScan?</strong></h2>
<p>RustScan is a versatile and lightweight port scanning tool designed to simplify the process of network reconnaissance. It excels in swiftly identifying open ports on target hosts, making it invaluable for both beginners and experienced professionals.</p>
<h3 id="heading-speed-and-efficiency"><strong>Speed and Efficiency</strong></h3>
<p>One of RustScan's defining characteristics is its speed. It's optimized for quick port scans, making it an excellent choice for time-sensitive tasks. Whether you're scanning a single host or an entire network, RustScan gets the job done efficiently.</p>
<h3 id="heading-simplicity"><strong>Simplicity</strong></h3>
<p>RustScan prides itself on its simplicity. Even if you're new to network scanning, its straightforward command-line interface allows you to initiate scans with ease. You don't need to be a seasoned pro to use RustScan effectively.</p>
<h3 id="heading-versatility"><strong>Versatility</strong></h3>
<p>RustScan's versatility is a standout feature. It can be a valuable tool for various scenarios, from security assessments to network administration. Whether you're a security researcher or a system administrator, RustScan is designed to enhance your toolkit.</p>
<h2 id="heading-installation-and-download"><strong>Installation and Download</strong></h2>
<p>Getting started with RustScan is a breeze. You can download the tool from the official release page on GitHub: <a target="_blank" href="https://github.com/RustScan/RustScan/releases/download/2.0.1/rustscan_2.0.1_amd64.deb">RustScan 2.0.1</a></p>
<p>After downloading, installation is a simple matter of using the following command:</p>
<pre><code class="lang-plaintext">sudo dpkg -i rustscan_2.0.1_amd64.deb
</code></pre>
<h2 id="heading-basic-usage"><strong>Basic Usage</strong></h2>
<p>Now, let's dive into the basics of using RustScan. We'll start with a simple scan of a single target IP address. Here's how you can do it:</p>
<h3 id="heading-basic-scan"><strong>Basic Scan</strong></h3>
<p>To perform a basic scan on a target IP address, use the following command:</p>
<pre><code class="lang-plaintext">rustscan -a 10.10.154.251
</code></pre>
<p>This straightforward command will scan the common ports on the specified target, providing you with an overview of the open ports.</p>
<h3 id="heading-scanning-multiple-ips"><strong>Scanning Multiple IPs</strong></h3>
<p>RustScan is versatile, allowing you to scan multiple IP addresses by specifying them in a comma-separated list:</p>
<pre><code class="lang-plaintext">rustscan -a 10.10.154.251,10.10.154.252
</code></pre>
<h3 id="heading-host-scanning"><strong>Host Scanning</strong></h3>
<p>You can also use RustScan to scan hosts. For instance:</p>
<pre><code class="lang-plaintext">rustscan -a www.example.com
</code></pre>
<h3 id="heading-cidr-support"><strong>CIDR Support</strong></h3>
<p>RustScan supports CIDR notation for scanning a range of IP addresses:</p>
<pre><code class="lang-plaintext">rustscan -a 192.168.0.0/30
</code></pre>
<h3 id="heading-hosts-file-as-input"><strong>Hosts File as Input</strong></h3>
<p>If you have a list of IPs or hosts to scan, you can provide a file containing these entries. The file should be formatted as a newline-separated list. Here's an example:</p>
<p><strong>hosts.txt:</strong></p>
<pre><code class="lang-plaintext">192.168.0.1
192.168.0.2
www.example.com
192.168.0.0/30
10.10.154.251
</code></pre>
<p>To scan the IPs and hosts from the file, use the following command:</p>
<pre><code class="lang-plaintext">rustscan -a 'hosts.txt'
</code></pre>
<h3 id="heading-individual-port-scanning"><strong>Individual Port Scanning</strong></h3>
<p>RustScan allows you to scan individual ports. For example:</p>
<pre><code class="lang-plaintext">rustscan -a 10.10.154.251 -p 53
</code></pre>
<h3 id="heading-multiple-selected-port-scanning"><strong>Multiple Selected Port Scanning</strong></h3>
<p>You can specify a comma-separated list of ports to scan:</p>
<pre><code class="lang-plaintext">rustscan -a 10.10.154.251 -p 53,80,121,65535
</code></pre>
<h3 id="heading-port-ranges"><strong>Port Ranges</strong></h3>
<p>To scan a range of ports, use this command:</p>
<pre><code class="lang-plaintext">rustscan -a 10.10.154.251 --range 1-1000
</code></pre>
<h3 id="heading-adjusting-nmap-arguments"><strong>Adjusting Nmap Arguments</strong></h3>
<p>By default, RustScan runs Nmap. You can adjust Nmap's arguments like this:</p>
<pre><code class="lang-plaintext">rustscan -a 10.10.154.251 -- -A -sC
</code></pre>
<h3 id="heading-random-port-ordering"><strong>Random Port Ordering</strong></h3>
<p>If you want to scan ports in a random order (useful for avoiding firewall detection), run RustScan like this:</p>
<pre><code class="lang-plaintext">rustscan -a 10.10.154.251 --range 1-1000 --scan-order "Random"
</code></pre>
<h2 id="heading-increasing-speed-and-accuracy"><strong>Increasing Speed and Accuracy</strong></h2>
<p>RustScan offers options to improve the speed and accuracy of your scans. Here are some strategies to consider:</p>
<h3 id="heading-batch-size"><strong>Batch Size</strong></h3>
<p>Increasing the batch size allows RustScan to process more data at once, resulting in faster scans. You can experiment with changing the open file limit using <code>ulimit -n 70000</code> and running RustScan with <code>-b 65535</code> for simultaneous scanning of all 65,535 ports. However, this approach is experimental and might not be suitable for all scenarios.</p>
<p>For non-experimental speed improvements, gradually increase the batch size until you find the optimal setting where it no longer misses open ports or breaks.</p>
<h3 id="heading-timeout-for-accuracy"><strong>Timeout for Accuracy</strong></h3>
<p>To enhance accuracy, consider increasing the timeout value. The default timeout is 1.5 seconds, but you can set it to a longer duration, such as 4 seconds (4000). This adjustment tells RustScan to assume a port is closed if there's no response within the specified timeout. Increasing the timeout can improve accuracy.</p>
<h3 id="heading-false-positives"><strong>False Positives</strong></h3>
<p>RustScan's architecture is based on a full TCP 3-way handshake connection using Rust's built-in sockets module. This module has been extensively tested and is used by large companies like Google and Apple. Rust's networking features are known for their reliability and correctness. Therefore, claims of false positives in RustScan are highly unlikely and may result from the use of another scanner that doesn't guarantee against false positives.</p>
<h3 id="heading-false-negatives"><strong>False Negatives</strong></h3>
<p>In cases of false negatives, where ports are missed, it may be due to the operating system struggling with high-speed scanning. This can happen with any fast scanner or I/O-intensive program. To address false negatives, refer to the section on increasing speed and accuracy to find potential solutions.</p>
<p>Instead of restricting you with limited options, RustScan empowers you with control over the level of speed and accuracy you desire. The tool continues to evolve, with future plans to provide predefined levels of speed and accuracy.</p>
<h3 id="heading-time-to-give-it-a-try"><strong>Time to give it a try!</strong></h3>
<p>RustScan is a powerful asset for both beginners and experts in the field of network reconnaissance. Its speed, simplicity, and versatility make it an awesome adition to my tool bag.</p>
<p>So, the next time you need to scan a network for open ports or vulnerabilities, give RustScan a try. It might just become your preferred tool for all your network scanning needs. As we've seen, in the world of network reconnaissance and scanning, having the right tool can make all the difference. Whether you're going with RustScan or another trusted tool like Nmap, it's all about finding the perfect fit for your needs.</p>
<p>Stay vigilant, stay curious, and stay secure.</p>
<p><em>For more detailed information and additional usage options, you can refer to the</em> <a target="_blank" href="https://github.com/RustScan/RustScan/wiki/Usage"><em>official RustScan documentation</em></a><em>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Web Vulnerability Scanning with Nikto: A Quick and Dirty Guide]]></title><description><![CDATA[In the chaotic landscape of digital security, tools are like stars in the sky. Choosing the best tool is something only you can decide. Having said that, I would like to present one for consideration: Nikto. If you're looking for a versatile web vuln...]]></description><link>https://matthewhard.com/web-vulnerability-scanning-with-nikto-a-quick-and-dirty-guide</link><guid isPermaLink="true">https://matthewhard.com/web-vulnerability-scanning-with-nikto-a-quick-and-dirty-guide</guid><category><![CDATA[websecurity]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[#OnlineProtection]]></category><category><![CDATA[ #VulnerabilityScanning ]]></category><category><![CDATA[ #Nikto ]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Fri, 06 Oct 2023 16:53:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698182625427/496649b5-4415-4346-a959-0b3dcc38e132.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the chaotic landscape of digital security, tools are like stars in the sky. Choosing the best tool is something only you can decide. Having said that, I would like to present one for consideration: Nikto. If you're looking for a versatile web vulnerability scanner that can help you fortify your online defenses, Nikto might just be that shining star in the night sky. Before you skip past this tool, let’s take a quick and dirty – my favorite type – look into this simple tool’s capabilities, customization options, and usage scenarios.</p>
<h3 id="heading-what-is-nikto">What is Nikto?</h3>
<p>Nikto is a versatile web vulnerability scanner renowned for its capability to meticulously detect and analyze security issues and vulnerabilities in web servers and web applications. This powerful tool accomplishes this by actively sending a series of HTTP requests to the target, meticulously inspecting and dissecting the responses it receives. Through this rigorous examination, Nikto unveils potential weaknesses, misconfigurations, and vulnerabilities, equipping you with valuable insights to fortify your web-based assets.</p>
<p><strong>Getting Started with Nikto</strong></p>
<p>Now for the dirty part, let's dive straight into it:</p>
<p>Before we dive into the details, let's kick things off with the basics:</p>
<ol>
<li><p><strong>Installation</strong>: Nikto can be installed on most Linux distributions. If it's not already installed, a straightforward installation command will do the trick. Ensure you have it up and running before proceeding.</p>
</li>
<li><p><strong>Basic Usage</strong>: Nikto operates via the command line. To initiate a scan, you'll use a command structure like this:</p>
<pre><code class="lang-python"> nikto -h http://example.com
</code></pre>
<p> Replace <a target="_blank" href="http://example.com"><code>http://example.com</code></a> with the target website's URL. This basic command will perform a default scan, highlighting any discovered vulnerabilities.</p>
</li>
</ol>
<p><strong>Customizing Your Nikto Scans</strong></p>
<p>Here's where the magic begins. Nikto's true power lies in its flexibility and customization options. Let's explore some of the essential flags and usage examples:</p>
<ul>
<li><p><strong>Port Specification</strong>: Nikto allows you to specify the port to scan. For example, to scan a specific port (e.g., 8080), use:</p>
<pre><code class="lang-python">  nikto -h http://example.com:<span class="hljs-number">8080</span>
</code></pre>
</li>
<li><p><strong>Output Format</strong>: Nikto provides various output formats, including plain text, HTML, XML, and CSV. To generate an HTML report, use the <code>-o</code> flag:</p>
<pre><code class="lang-python">  nikto -h http://example.com -o scan_report.html
</code></pre>
</li>
<li><p><strong>Custom Plugins</strong>: Nikto supports custom plugins, allowing you to extend its functionality. Use the <code>-Plugins</code> flag to specify custom plugins:</p>
<pre><code class="lang-python">  nikto -h http://example.com -Plugins=custom_plugin.nasl
</code></pre>
</li>
<li><p><strong>Tuning Profiles</strong>: Adjust the scan intensity with tuning profiles. For example, use the <code>-Tuning</code> flag to specify a tuning profile (e.g., <code>3</code> for a comprehensive scan):</p>
<pre><code class="lang-python">  nikto -h http://example.com -Tuning <span class="hljs-number">3</span>
</code></pre>
</li>
</ul>
<p><strong>Advanced Nikto Tactics</strong></p>
<p>Take your Nikto skills to the next level with these advanced tactics:</p>
<ul>
<li><p><strong>Authentication</strong>: Nikto supports basic authentication. To scan protected areas of a website, use the <code>-id</code> flag with your credentials:</p>
<pre><code class="lang-python">  nikto -h http://example.com -id <span class="hljs-string">"username:password"</span>
</code></pre>
</li>
<li><p><strong>Proxy Support</strong>: If you need to scan websites behind a firewall, Nikto can operate through a proxy server. Utilize the <code>-useproxy</code> flag:</p>
<pre><code class="lang-python">  nikto -h http://example.com -useproxy http://proxy.example.com:<span class="hljs-number">8080</span>
</code></pre>
</li>
<li><p><strong>Integration and Automation</strong>: Integrate Nikto into your security workflows and scripts for automated scans and reporting.</p>
</li>
</ul>
<p>I hope I was able to convey the utility of Nikto for your toolbag. It can help you uncover vulnerabilities and secure your online domains. Whether you're conducting routine scans or delving into the intricacies of web security, Nikto can be a valuable part of your arsenal, equipping you for success. But that’s just my opinion; do with it what you will. Let me know in the comments if you use Nikto and, if not, which tool you use. Remember: stay vigilant, stay curious, and stay secure.</p>
]]></content:encoded></item><item><title><![CDATA[Protecting Your Data: What to Do When a Breach Happens]]></title><description><![CDATA[If there's one thing we all need to be on guard about these days, it's data breaches. And if you think, 'I don't need to worry about those; I have a super-secret password!' Well, you could be right, but you could also be wrong. I'm going to use the w...]]></description><link>https://matthewhard.com/protecting-your-data-what-to-do-when-a-breach-happens</link><guid isPermaLink="true">https://matthewhard.com/protecting-your-data-what-to-do-when-a-breach-happens</guid><category><![CDATA[Data Breach]]></category><category><![CDATA[password manager]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[Windows]]></category><category><![CDATA[Multi Factor Authentication]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Mon, 02 Oct 2023 18:57:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1696273011174/94d5310d-ec2e-48f8-b216-889e2cd4a977.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If there's one thing we all need to be on guard about these days, it's data breaches. And if you think, 'I don't need to worry about those; I have a super-secret password!' Well, you could be right, but you could also be wrong. I'm going to use the word 'hacker' loosely here, but the complexity of your password becomes irrelevant if your credentials were compromised in a data breach. Hackers can get their hands on your personal info without you even knowing it, simply by buying them online after a data breach.</p>
<p>I've been through a data breach myself, and today, while helping a coworker deal with compromised credentials, it got me thinking about the importance of knowing what to do when you find out you're part of one. That's where this article comes in. I want to walk you through the steps to take when you suspect your data might have been compromised and how to figure out which of your email addresses and credentials got caught up in the mess. Once we've figured that part out, let's break down what you can do to mitigate the problem and how to prevent any unauthorized access to your accounts.</p>
<p><strong>Understanding Data Breaches</strong></p>
<p>So, what's a data breach anyway? In plain English, it's when someone gets into a place they're not supposed to be and grabs your personal stuff. Imagine a digital burglar sneaking into your virtual house and snooping around.</p>
<p>Why's it a big deal? Well, because it can lead to some serious trouble. Think identity theft, financial losses, and a whole bunch of headaches you don't want. That's why we need to act fast when we notice something might be off.</p>
<p><strong>Identifying Compromised Email Addresses</strong></p>
<p>Okay, here's where things get interesting. The first thing we need to do is find out if our email address has been compromised and in what data breaches. There are these nifty tools out there, like <a target="_blank" href="http://HaveIBeenPwned.com">HaveIBeenPwned.com</a>, that can do some detective work for you. They'll help you figure out if your email addresses have been caught in a data breach. Don't worry too much about what the word "pwned" means; just know that it was a funny typo and was meant to say "owned." Nerds everywhere started using it because, well, we're nerds and it's funny.</p>
<p>Also, please note that when I use the word 'credentials,' I am referring to your username and password. However, in the context of a data breach, I may also be talking about your home address, phone number, and any other personal information that was compromised in the breach.</p>
<p><strong>Take Immediate Action</strong></p>
<p>If you find that your email has not been compromised, you don't need to take any further action. However, I would recommend changing your password often. I update my passwords every few months. I know that might seem like a lot, but what's worse: changing your passwords or losing your life savings?</p>
<p>Once you confirm that your data has been compromised, it's time to take action:</p>
<ol>
<li><p><strong>Identify the accounts</strong> you use with that email address and check if any of them share the same password. Go to <a target="_blank" href="http://haveibeenpowned.com"><strong>http://haveibeenpowned.com</strong></a> and enter an email address. If that email and password have been compromised, you will see the bottom of the site turn RED and say "Oh no - pwned!".</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1696271193579/b933acd0-1dfc-4bd7-916b-b6dc30316eab.png" alt class="image--center mx-auto" /></p>
<p> You can scroll down to see which data breaches your email address was involved with.</p>
<p> For Example:</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1696271279413/f8b484c8-04a0-4bfe-8b86-c6138b489679.png" alt class="image--center mx-auto" /></p>
<p> You can see that Luxottica reported a data breach in March of 2001. It involved: Dates of birth, email addresses, genders, names, phone numbers, and physical addresses.</p>
</li>
<li><p><strong>Change the passwords</strong> for EVERY site that uses the compromised password. I strongly advise against reusing the same password for every site. Instead, use unique passwords to prevent similar issues in the future. If you're concerned about keeping track of them all, consider using a password manager like <a target="_blank" href="http://1password.com">1password.com</a>. Make sure to use a strong master password that you can write down and store in a secure location—preferably an actual safe if you have one.</p>
</li>
<li><p><strong>Set up two-factor or multi-factor authentication</strong>. Basic two-factor authentication might involve using a text message with a code to verify that it's you attempting to access your accounts. This added layer of security can significantly enhance the protection of your accounts, even if someone gains access to your password.</p>
<p> Multi-factor authentication (MFA) can employ various forms of authentication and provide alternatives if you lose your phone and can't use it for authentication. I've personally used Microsoft Authentication (available as an app for both Apple and Android) or Google Authenticator (also compatible with both Apple and Android).</p>
</li>
</ol>
<p><strong>Good old-fashioned advice</strong></p>
<ol>
<li><p>Having a tough password and 2FA/MFA is a good foundation but oversharing on social media can be a good way to give hackers more information that can potentially lead to gaining access to your data. Those harmless posts about your dog's birthday or your favorite pizza place can be gold mines for cyber crooks looking for personal info.</p>
</li>
<li><p>Be cautious when opening emails. Don't fall for those sneaky phishing emails. Always double-check email senders and avoid clicking on suspicious links. If possible don’t follow links sent to you by email unless you requested the information.</p>
</li>
<li><p>One more thing to help keep your systems safe, don't forget to keep your software and antivirus programs updated. Updates and patches often have fixes for potential pathways for hackers to use to get into systems.</p>
</li>
</ol>
<p>I always emphasize the importance of being aware of your surroundings because it can make a huge difference in staying safe. This principle applies just as much to the online world. You've got to be vigilant in your virtual space, making sure you don't fall into the trap of taking the easy path. Regularly check your accounts, refresh your passwords, and consider using 2FA or MFA to add that extra layer of protection. Oh, and when it comes to passwords, don't forget to change them frequently. If you find it challenging to keep track, think about using a trusted password manager. So, remember: stay vigilant, stay curious, and, above all, stay secure.</p>
<p>Now, here's your call to action. Don't just sit there; take action to secure those compromised accounts. Share your own experiences and tips in the comments below so we can all learn together. And let's work together to make the internet a safer place—spread the word by sharing this article on your social media profiles. Together, we'll lock those digital doors and protect ourselves from unauthorized access!</p>
<h3 id="heading-more-links"><strong>More Links</strong></h3>
<ol>
<li><p><strong>Have I Been Pwned (HIBP)</strong> | <a target="_blank" href="https://haveibeenpwned.com/"><strong>https://haveibeenpwned.com</strong></a></p>
</li>
<li><p><strong>Data Breach Notifications</strong> | <a target="_blank" href="https://monitor.firefox.com/"><strong>https://monitor.firefox.com/</strong></a></p>
</li>
<li><p><strong>1Password</strong> | <a target="_blank" href="https://1password.com/"><strong>https://1password.com/</strong></a></p>
</li>
<li><p><strong>Password Generator</strong> | <a target="_blank" href="https://www.lastpass.com/password-generator"><strong>https://www.lastpass.com/password-generator</strong></a></p>
</li>
<li><p><strong>Data Breach Notifications</strong> | <a target="_blank" href="https://monitor.firefox.com/"><strong>https://monitor.firefox.com/</strong></a></p>
</li>
<li><p><strong>Email Encryption Services</strong> | <a target="_blank" href="https://protonmail.com/"><strong>https://protonmail.com/</strong></a></p>
</li>
<li><p><strong>NordVPN (VPN)</strong> | <a target="_blank" href="https://www.expressvpn.com/"><strong>https://www.NordVPN.com/</strong></a></p>
</li>
<li><p><strong>Dark Web Monitoring Services</strong> | <a target="_blank" href="https://www.experian.com/protection/free-dark-web-email-scan/">https://www.experian.com/free-dark-web-email-scan/</a></p>
</li>
<li><p><strong>Online Security Blogs and Resources</strong> | <a target="_blank" href="https://krebsonsecurity.com/"><strong>https://krebsonsecurity.com/</strong></a></p>
</li>
<li><p><strong>Password Policies and Guidelines</strong> | <a target="_blank" href="https://pages.nist.gov/800-63-3/"><strong>https://pages.nist.gov/800-63-3/</strong></a></p>
</li>
</ol>
<h3 id="heading-key-definitions"><strong>Key Definitions:</strong></h3>
<ol>
<li><p><strong>Data Breach:</strong> A data breach is an unauthorized access, disclosure, or acquisition of sensitive information. It occurs when cybercriminals gain access to a system or database containing personal or confidential data, potentially leading to identity theft, financial losses, or other security risks.</p>
</li>
<li><p><strong>Credentials:</strong> Credentials refer to the login information used to access online accounts. They typically include a username or email address and a password.</p>
</li>
<li><p><strong>2FA (Two-Factor Authentication):</strong> Two-factor authentication is an additional layer of security for online accounts. It requires users to provide two forms of verification before gaining access, often combining something they know (e.g., a password) with something they have (e.g., a mobile device).</p>
</li>
<li><p><strong>MFA (Multi-Factor Authentication):</strong> Multi-factor authentication is an advanced security method that involves using multiple forms of verification, such as something you know, something you have, and something you are (biometrics). MFA provides enhanced protection against unauthorized access.</p>
</li>
<li><p><strong>Password Manager:</strong> A password manager is a tool or application that helps users securely store, generate, and manage passwords. It can create strong, unique passwords for each online account and store them in an encrypted vault.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Learn Docker: Quick and Dirty]]></title><description><![CDATA[Docker has revolutionized the way we deploy and manage applications. It's a powerful tool for containerization, allowing you to package and run applications and their dependencies in isolated environments called containers. If you're new to Docker an...]]></description><link>https://matthewhard.com/learn-docker-quick-and-dirty</link><guid isPermaLink="true">https://matthewhard.com/learn-docker-quick-and-dirty</guid><category><![CDATA[Docker]]></category><category><![CDATA[Docker compose]]></category><category><![CDATA[containers]]></category><category><![CDATA[docker images]]></category><category><![CDATA[Windows]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 19 Sep 2023 19:22:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1695151092727/4207c949-b596-45c5-8240-f00dd7be59a2.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Docker has revolutionized the way we deploy and manage applications. It's a powerful tool for containerization, allowing you to package and run applications and their dependencies in isolated environments called containers. If you're new to Docker and want to get started quickly, this guide will walk you through the basics.</p>
<h3 id="heading-step-1-install-docker"><strong>Step 1: Install Docker</strong></h3>
<p>The first step is to install Docker on your system. Go to the <a target="_blank" href="https://www.docker.com/"><strong>Docker website</strong></a> and download the Docker Desktop application for your operating system (Windows, macOS, or Linux). Follow the installation instructions for your OS and launch Docker Desktop.</p>
<h3 id="heading-step-2-verify-installation"><strong>Step 2: Verify Installation</strong></h3>
<p>After installation, open a terminal or command prompt and run:</p>
<pre><code class="lang-python">docker --version
</code></pre>
<p>This command should display the Docker version, confirming that it's installed and running.</p>
<h3 id="heading-step-3-hello-world-container"><strong>Step 3: Hello World Container</strong></h3>
<p>Let's start by running a simple "Hello World" container to ensure everything is working correctly. In your terminal, enter:</p>
<pre><code class="lang-python">docker run hello-world
</code></pre>
<p>Docker will download the "hello-world" image (if not already downloaded) and run it in a container, displaying a confirmation message.</p>
<h3 id="heading-step-4-understanding-images-and-containers"><strong>Step 4: Understanding Images and Containers</strong></h3>
<p>Docker uses images as blueprints to create containers. You can search for images on <a target="_blank" href="https://hub.docker.com/"><strong>Docker Hub</strong></a> and pull them to your system using <code>docker pull</code>.</p>
<h3 id="heading-step-5-running-a-custom-container"><strong>Step 5: Running a Custom Container</strong></h3>
<p>To run your own application in a container, create a Dockerfile that describes the application and its dependencies. Then, build an image from the Dockerfile using:</p>
<pre><code class="lang-python">docker build -t my-custom-app .
</code></pre>
<p>Replace <code>my-custom-app</code> with a suitable name for your image. Run a container from the image with:</p>
<pre><code class="lang-python">docker run -d -p <span class="hljs-number">8080</span>:<span class="hljs-number">80</span> my-custom-app
</code></pre>
<p>This command runs the container in detached mode and maps port 8080 on your host to port 80 in the container.</p>
<h3 id="heading-step-6-managing-containers"><strong>Step 6: Managing Containers</strong></h3>
<p>You can manage containers with simple commands. To list running containers:</p>
<pre><code class="lang-python">docker ps
</code></pre>
<p>To stop a container:</p>
<pre><code class="lang-python">docker stop container_id
</code></pre>
<p>And to remove a stopped container:</p>
<pre><code class="lang-python">docker rm container_id
</code></pre>
<h3 id="heading-step-7-cleanup"><strong>Step 7: Cleanup</strong></h3>
<p>Docker can consume disk space, so periodically clean up images and containers you no longer need with:</p>
<pre><code class="lang-python">docker system prune
</code></pre>
<h3 id="heading-step-8-learn-more"><strong>Step 8: Learn More</strong></h3>
<p>Docker has many advanced features and options. To learn more, refer to the <a target="_blank" href="https://docs.docker.com/"><strong>official Docker documentation</strong></a>. You can also explore Docker Compose for managing multi-container applications.</p>
]]></content:encoded></item><item><title><![CDATA[Hacking WIFI is too easy!]]></title><description><![CDATA[Wireless networks have become ubiquitous in our daily lives. They provide us with access to the internet and connect us to the world. However, as convenient as they are, Wi-Fi networks come with a certain amount of risks. Unauthorized access to these...]]></description><link>https://matthewhard.com/hacking-wifi-is-too-easy</link><guid isPermaLink="true">https://matthewhard.com/hacking-wifi-is-too-easy</guid><category><![CDATA[WiFi Hacking]]></category><category><![CDATA[Ethical Hacking]]></category><category><![CDATA[penetration testing]]></category><category><![CDATA[WirelessNetworks]]></category><category><![CDATA[CybersecurityTools]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Mon, 26 Jun 2023 01:00:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1687732300184/0f511071-60a0-425f-aa7a-f32491a959d3.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Wireless networks have become ubiquitous in our daily lives. They provide us with access to the internet and connect us to the world. However, as convenient as they are, Wi-Fi networks come with a certain amount of risks. Unauthorized access to these networks can lead to privacy breaches and identity theft.</p>
<blockquote>
<p>Note: A huge reminder that hacking into someone's Wi-Fi network without permission is illegal and can lead to severe consequences.</p>
</blockquote>
<p>With that said, let's explore some of the traditional Wi-Fi hacking tools and the newer tool, Wifite, and their ease of use.</p>
<p>Aircrack-ng is one of the most powerful wireless network auditing tools available. It is a command-line tool that requires a comprehensive understanding of wireless networking protocols and the command-line interface to operate. It has been around for over a decade, and it is still widely used by ethical hackers and penetration testers.</p>
<p>Wifite, on the other hand, is a newer wireless auditing tool designed to automate and simplify the process of hacking Wi-Fi networks. It is a user-friendly tool that automates the hacking process and <strong><em>makes it easier</em></strong> for inexperienced users to carry out wireless audits.</p>
<p>Let's take a closer look at how these tools differ in terms of usage.</p>
<p>Aircrack-ng:</p>
<p>The Aircrack-ng tool requires the user to have some knowledge of the command-line interface. To use it, you need to install it on your computer and follow a series of commands. Here is an example:</p>
<pre><code class="lang-bash">airmon-ng start wlan0
airodump-ng mon0
aireplay-ng -0 0 -a 00:11:22:33:44:55 -c 00:11:22:33:44:55 mon0
</code></pre>
<p>Wifite:</p>
<p>Wifite is a user-friendly tool that automates the Wi-Fi hacking process. It requires no knowledge of the command-line interface to use. Here is an example of how to use Wifite:</p>
<pre><code class="lang-bash">wifite -i wlan0 -wpa
</code></pre>
<p>While Wifite is easier to use than Aircrack-ng, it is important to note that both tools require the user to have some degree of skill and knowledge of wireless networking protocols to be effective. Hacking into a Wi-Fi network is not a simple task, even with Wifite's automated process.</p>
<p>That being said, both Aircrack-ng and Wifite are powerful wireless network auditing tools that require the user to have some level of expertise in wireless networking protocols. While Wifite is more user-friendly than Aircrack-ng, both tools require careful usage and respect for the law. Again, hacking into someone's Wi-Fi network without permission is illegal and unethical. These tools should only be used for authorized penetration testing or auditing purposes. If you're interested in learning more about Wi-Fi hacking, we recommend you explore these tools further and gain the necessary knowledge and expertise before attempting any wireless auditing.</p>
<p>If you would like me to cover the usage of Aircrack-ng or Wifite in detail, let me know in the comments and I will do a full tutorial for them.</p>
]]></content:encoded></item><item><title><![CDATA[Windows Sandbox: Safeguarding Your System from Malicious Software and Threats]]></title><description><![CDATA[As a cybersecurity specialist, ensuring maximum safety when handling sketchy computer-related tasks is super important. It has never been easier thanks to Windows Sandbox’s distinct ability to provide a secure isolation environment within your device...]]></description><link>https://matthewhard.com/windows-sandbox-safeguarding-your-system-from-malicious-software-and-threats</link><guid isPermaLink="true">https://matthewhard.com/windows-sandbox-safeguarding-your-system-from-malicious-software-and-threats</guid><category><![CDATA[#cybersecurity]]></category><category><![CDATA[Microsoft]]></category><category><![CDATA[ #WindowsSandbox ]]></category><category><![CDATA[#SecureEnvironment ]]></category><category><![CDATA[ #SystemProtection]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Wed, 21 Jun 2023 16:55:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1687366245540/e7777f0b-365a-41ec-92d3-226a011859a3.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As a cybersecurity specialist, ensuring maximum safety when handling sketchy computer-related tasks is super important. It has never been easier thanks to Windows Sandbox’s distinct ability to provide a secure isolation environment within your device's operating system. Designed specifically for running uncertified files and applications without undermining your computer's integrity, it acts as an impenetrable shield from malignant software or any damaging procedures executed unknowingly by inappropriate programs installed on your machine. In this article, we will explore the remarkable features of Windows Sandbox, a powerful tool provided by Microsoft to protect your system from potential security risks. We'll delve into its key characteristics and provide practical steps for configuring it to ensure optimal performance.</p>
<h3 id="heading-getting-started-with-windows-sandbox">Getting Started with Windows Sandbox</h3>
<p>Before diving into the configuration options and advanced features, let's quickly cover the basics of setting up and running Windows Sandbox on your Windows 10/11 Pro machine. Follow these simple steps:</p>
<ol>
<li><p>Open the Start menu and search for "Windows Features."</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687364335493/8392946d-d80b-427e-815c-235bb927471f.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Click on "Turn Windows features on or off" to open the Windows Features dialog.</p>
</li>
<li><p>Scroll down and locate "Windows Sandbox" in the list.</p>
</li>
<li><p>Check the box next to "Windows Sandbox" and click "OK."</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687364649920/15f9a005-13e1-459b-9a14-d6a94ab7d901.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Windows will apply the changes and install the necessary components for Windows Sandbox.</p>
</li>
</ol>
<h3 id="heading-exploring-windows-sandbox-features">Exploring Windows Sandbox Features</h3>
<p>Windows Sandbox offers several features that contribute to its effectiveness as a secure testing environment. Let's take a closer look at some of these features:</p>
<ol>
<li><p><strong>Isolation</strong>: Windows Sandbox operates in an isolated environment, separate from your main operating system. This isolation prevents any potential damage or changes to your system files, registry, or installed applications.</p>
</li>
<li><p><strong>Disposable</strong>: Each time you start Windows Sandbox, it creates a clean, fresh instance of the Windows operating system. Any modifications made during a session, such as downloaded files or installed applications, are discarded once you close Windows Sandbox.</p>
</li>
<li><p><strong>Secure Kernel</strong>: Windows Sandbox uses a secure, lightweight kernel to provide enhanced security measures. This ensures that any exploits or vulnerabilities within the sandbox environment do not pose a threat to your host system.</p>
</li>
</ol>
<h3 id="heading-configuring-windows-sandbox">Configuring Windows Sandbox</h3>
<p>Windows Sandbox offers configuration options that allow you to tailor the sandbox environment according to your needs. By modifying the configuration file, you can customize various aspects of Windows Sandbox. Let's explore some common configurations:</p>
<ol>
<li><p><strong>Configured Sandbox</strong>: To configure Windows Sandbox, you need to modify the configuration file named "sandbox.wsb." The file is located in the folder: "%UserProfile%\Documents\Windows Sandbox." Open the file using a text editor and make the necessary changes.</p>
<ul>
<li><p><strong>Networking</strong>: By default, Windows Sandbox uses a virtual network adapter that allows internet access. You can disable the networking feature by setting the "Networking" value to "Disable" in the configuration file.</p>
</li>
<li><p><strong>Shared Folders</strong>: You can enable access to specific folders on your host system within Windows Sandbox. Add the following lines to the configuration file, replacing "C:\Path\to\your\folder" with the actual path of the folder you want to share:</p>
<pre><code class="lang-python">  xmlCopy code&lt;MappedFolders&gt;
    &lt;MappedFolder&gt;
      &lt;HostFolder&gt;C:\Path\to\your\folder&lt;/HostFolder&gt;
      &lt;ReadOnly&gt;false&lt;/ReadOnly&gt;
    &lt;/MappedFolder&gt;
  &lt;/MappedFolders&gt;
</code></pre>
</li>
<li><p><strong>Hardware Acceleration</strong>: To enable hardware acceleration within Windows Sandbox, ensure that your host system has virtualization support enabled in the BIOS settings.</p>
</li>
<li><p><strong>Automatic Script Execution</strong>: You can set up Windows Sandbox to automatically execute scripts when it starts. For example, you can run a PowerShell script by adding the following lines to the configuration file, replacing "C:\Path\to\your\script.ps1" with the actual path to your script:</p>
<pre><code class="lang-python">  xmlCopy code&lt;LogonCommand&gt;
    &lt;Command&gt;PowerShell.exe -ExecutionPolicy Bypass -File <span class="hljs-string">"C:\Path\to\your\script.ps1"</span>&lt;/Command&gt;
  &lt;/LogonCommand&gt;
</code></pre>
<p>  This will run the script every time Windows Sandbox starts.</p>
</li>
</ul>
</li>
</ol>
<h3 id="heading-installing-software-at-launch-in-windows-sandbox-visual-studio-code">Installing Software at launch in Windows Sandbox: Visual Studio Code</h3>
<p>In this example, I wanted to use Visual Studio Code because it is a useful application if we are testing code in our sandbox environment. If you want to have Visual Studio Code or any software for that matter pre-installed in your Windows Sandbox, you can include the installation steps in your script. Here's an example PowerShell script that installs Visual Studio Code:</p>
<pre><code class="lang-python"><span class="hljs-comment"># Download Visual Studio Code installer</span>
$vsCodeUrl = <span class="hljs-string">"https://go.microsoft.com/fwlink/?LinkID=760868"</span>
$vsCodeInstallerPath = <span class="hljs-string">"$env:TEMP\vscode_installer.exe"</span>
Invoke-WebRequest -Uri $vsCodeUrl -OutFile $vsCodeInstallerPath

<span class="hljs-comment"># Install Visual Studio Code</span>
Start-Process -Wait -FilePath $vsCodeInstallerPath -ArgumentList <span class="hljs-string">"/silent"</span>

<span class="hljs-comment"># Remove the installer</span>
Remove-Item -Path $vsCodeInstallerPath
</code></pre>
<p>Save this script as a .ps1 file and update the configuration file accordingly. With this configuration, Windows Sandbox will run the script, which will download and install Visual Studio Code during the sandbox startup process.</p>
<h3 id="heading-quick-recap">Quick Recap</h3>
<p>Windows Sandbox provides a secure and isolated environment for running untrusted applications and files. By leveraging its features and configurations, you can ensure the safety of your system and protect it from potential threats. Whether you're testing suspicious software or experimenting with code, Windows Sandbox is an invaluable tool that combines convenience with robust security.</p>
<p>By following the steps outlined in this blog post, you can set up, configure, and maximize the potential of Windows Sandbox. Enjoy exploring new software, testing applications, and experimenting with peace of mind, knowing that your system remains safeguarded.</p>
<p>Remember to adjust the configurations and paths in the examples to match your own setup. Stay secure and stay protected.</p>
]]></content:encoded></item><item><title><![CDATA[Exploring God Mode in Windows]]></title><description><![CDATA[Unleash the hidden potential of your Windows operating system with God Mode. This intriguing feature provides a centralized control panel with an extensive array of configuration options, offering users unprecedented control over their Windows experi...]]></description><link>https://matthewhard.com/exploring-god-mode-in-windows</link><guid isPermaLink="true">https://matthewhard.com/exploring-god-mode-in-windows</guid><category><![CDATA[Windows]]></category><category><![CDATA[windows god mode]]></category><category><![CDATA[god mode]]></category><category><![CDATA[windows secrets]]></category><category><![CDATA[advanced windows tools]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Sun, 18 Jun 2023 09:01:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1687204751637/b3f01718-a2b2-449e-bd06-93adb68fdd7b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Unleash the hidden potential of your Windows operating system with God Mode. This intriguing feature provides a centralized control panel with an extensive array of configuration options, offering users unprecedented control over their Windows experience. In this comprehensive guide, we will walk you through the steps to activate God Mode and delve into its essential tools.</p>
<p><strong>Step-by-Step Guide to Activating God Mode:</strong></p>
<ol>
<li><p>Create a new folder anywhere on your system</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687076270435/ad3a35fc-2a23-4118-babf-8482ee24f9c4.png" alt class="image--center mx-auto" /></p>
<p> .</p>
</li>
<li><p>Right-click on the folder and select "Rename."</p>
</li>
<li><p>Copy and paste the following folder name (including the braces) into the rename field: "<strong>GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}</strong>"</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687076305466/e6eb224c-bd9f-43af-9943-181197d2522f.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Press Enter to apply the new folder name.</p>
</li>
<li><p>The folder icon will transform into a Control Panel-style icon, indicating that God Mode is now activated</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687076595888/84cfc332-e419-4517-a027-20d495bc04e4.png" alt class="image--center mx-auto" /></p>
<p> .</p>
</li>
</ol>
<p><strong>Exploring the Essential Tools within God Mode:</strong></p>
<p>Once you have successfully activated God Mode, you gain access to a wide range of tools and configuration options, empowering you to optimize and customize your Windows system. Here are some noteworthy tools available within God Mode:</p>
<ol>
<li><p><strong>Device Manager:</strong> Manage hardware devices, update drivers, and troubleshoot issues.</p>
</li>
<li><p><strong>Power Options:</strong> Customize power plans, adjust sleep settings, and optimize power usage.</p>
</li>
<li><p><strong>Administrative Tools:</strong> Access various system management tools, such as Event Viewer and Task Scheduler.</p>
</li>
<li><p><strong>Folder Options:</strong> Modify folder settings, display hidden files, and enhance file management.</p>
</li>
<li><p><strong>Performance Monitor:</strong> Monitor system performance, analyze resource usage, and view real-time graphs.</p>
</li>
<li><p><strong>User Accounts:</strong> Manage user accounts, control privileges, and configure user-related settings.</p>
</li>
<li><p><strong>Windows Firewall:</strong> Adjust firewall settings, create rules, and enhance network security.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687076556259/9ed687a9-7db8-4cb9-ad06-d6e9b71d1a0e.png" alt class="image--center mx-auto" /></p>
<p>By leveraging these powerful tools within God Mode, you can fine-tune your Windows experience, troubleshoot issues, and personalize your system to suit your needs effectively.</p>
<p>Activate God Mode in Windows today to unlock centralized control and gain access to a vast range of configuration options. Explore its tools, optimize your system, and enhance productivity effortlessly.</p>
]]></content:encoded></item><item><title><![CDATA[Gmail Aliases: Unlocking the Secret to Inbox Organization and Control]]></title><description><![CDATA[I found a lot of really cool features while digging around in various online services, but one that I discovered in Gmail is particularly awesome. Ever wondered shady website you signed up for sold your email address and who you should be angry with?...]]></description><link>https://matthewhard.com/gmail-aliases-unlocking-the-secret-to-inbox-organization-and-control</link><guid isPermaLink="true">https://matthewhard.com/gmail-aliases-unlocking-the-secret-to-inbox-organization-and-control</guid><category><![CDATA[gmail]]></category><category><![CDATA[aliases]]></category><category><![CDATA[GmailAliases]]></category><category><![CDATA[TrackEmailSources ]]></category><category><![CDATA[EmailAliases]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Sat, 17 Jun 2023 07:55:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1686988148041/82175f54-5526-41fa-92f3-dd23c2bb7911.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I found a lot of really cool features while digging around in various online services, but one that I discovered in Gmail is particularly awesome. Ever wondered shady website you signed up for sold your email address and who you should be angry with? Well, Gmail has a mind-blowing feature that can absolutely help you with that.</p>
<p>Gmail has this super-secret feature called "aliases." I know, it sounds all cloak-and-dagger, but it's actually quite simple and incredibly useful. Well, I don't actually know if it's "super-secret," but it sounded cool when I wrote it. Anyway, with aliases, you can create unique variations of your email address, and here's the best part—they help you track where the heck those pesky emails are coming from!</p>
<p>Here's how it works. Take your regular Gmail address, let's say it's <a target="_blank" href="mailto:example@gmail.com"><strong>example@gmail.com</strong></a> (you can use your own, of course!), and add a "+" symbol followed by any text you want. Seriously, any text at all! For instance, you could have <a target="_blank" href="mailto:example+newsletter@gmail.com"><strong>example+newsletter@gmail.com</strong></a> or <a target="_blank" href="mailto:example+shopping@gmail.com"><strong>example+shopping@gmail.com</strong></a>. It's like hiding an AirTag in your email address!</p>
<p>Now, let's put it to use. You know how sometimes you sign up for different services or websites, and suddenly your inbox explodes with a barrage of emails? Well, with these aliases, you can assign a unique one to each place you share your email. That way, when you receive an email, you'll know right away which alias they used, and you can pinpoint exactly where they got your address from. Okay, it's not like having an AirTag, but it's the next best thing.</p>
<p>But wait, there's more! Or, well, I guess it's what I think Gmail intended aliases to be used for. These aliases also help you organize your inbox. You can set up filters in Gmail that sort, label, and even forward emails based on the aliases. You can have the aliases filtered into different folders for newsletters, online shopping, and whatever else you created an alias for.</p>
<p>So, go ahead and use those aliases, set up filters, and maybe even write a strongly worded letter to companies you find out are selling your email address.</p>
<p>Give it a shot and let me know how it goes! I'm curious to hear about your experiences with aliases in Gmail.</p>
]]></content:encoded></item><item><title><![CDATA[Understanding SPAM, SPIM, and SPIT: Protecting Against Unwanted Intrusions]]></title><description><![CDATA[In today's digital age, spam has become an unavoidable annoyance for internet users. Unwanted advertisements and unsolicited emails flood our inboxes, resembling the door-to-door salesmen of the internet. However, spam isn't limited to emails alone. ...]]></description><link>https://matthewhard.com/understanding-spam-spim-and-spit-protecting-against-unwanted-intrusions</link><guid isPermaLink="true">https://matthewhard.com/understanding-spam-spim-and-spit-protecting-against-unwanted-intrusions</guid><category><![CDATA[spam]]></category><category><![CDATA[#Spam protection]]></category><category><![CDATA[spit]]></category><category><![CDATA[spim]]></category><category><![CDATA[spam spit and spim]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Thu, 15 Jun 2023 11:00:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1686775041676/5ba23faa-426d-479b-a613-0ed83073822f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In today's digital age, spam has become an unavoidable annoyance for internet users. Unwanted advertisements and unsolicited emails flood our inboxes, resembling the door-to-door salesmen of the internet. However, spam isn't limited to emails alone. Have you ever heard of SPIM or SPIT? In this article, we'll explore these forms of unwanted intrusions and provide simple and practical tips to safeguard against them. Understanding these concepts will also prove beneficial for those preparing for the Security+ exam from CompTIA.</p>
<ol>
<li><p>SPIM: Spam over Instant Messaging SPIM refers to spam that is transmitted through instant messaging platforms. Unlike email spam, SPIM poses greater risks as users are more likely to click on links in real-time conversations. These sneaky intrusions often bypass antivirus software and firewalls. To protect yourself from SPIM, follow these steps: a) Keep your instant messaging username and personal information private. By limiting public access to this information, you can reduce the chances of receiving spam messages. b) Exercise caution when adding contacts to your buddy list. Treat suspicious links or messages with skepticism, even if they appear harmless. c) Utilize a reliable virus scanner to protect your system from SPIM attacks. Regularly update your scanner to ensure the latest security measures are in place.</p>
</li>
<li><p>SPIT: Spam over Internet Telephone SPIT, also known as spam over internet telephone, refers to unsolicited spam messages transmitted through voice over IP (VoIP) systems. While not as common as email spam or SPIM, it's important to be aware of the risks associated with SPIT. Consider the following measures to protect your network: a) Choose a reputable service provider for your VoIP communications. Reliable providers often employ security measures that can help prevent SPIT attacks. b) Encrypt your VoIP calls to enhance the security of your communications. Encryption scrambles the data, making it difficult for malicious actors to intercept and exploit your conversations. c) Consider implementing additional security measures, such as software that prompts users with human verification questions. This extra layer of security ensures that only human users can access your network, reducing the chances of automated SPIT attacks.</p>
</li>
</ol>
<p>While spam remains a persistent nuisance, understanding its various forms, including SPIM and SPIT, is crucial for protecting yourself and your network. By following simple yet effective practices, such as keeping personal information private, exercising caution with buddy lists, utilizing antivirus software, choosing reputable service providers, encrypting VoIP calls, and implementing human verification systems, you can significantly reduce the risks associated with unwanted intrusions. As technology evolves, so do the tactics of spammers and spitters. Stay informed, stay vigilant, and safeguard your digital presence against these unwelcome nuisances.</p>
]]></content:encoded></item><item><title><![CDATA[Windows Subsystem for Linux (WSL): Bridging the Gap Between Windows and Linux]]></title><description><![CDATA[In recent years, Windows Subsystem for Linux (WSL) has emerged as a powerful tool that allows Windows users to harness the capabilities of Linux right on their Windows machines. Whether you're a developer, system administrator, or an enthusiast, WSL ...]]></description><link>https://matthewhard.com/windows-subsystem-for-linux-wsl-bridging-the-gap-between-windows-and-linux</link><guid isPermaLink="true">https://matthewhard.com/windows-subsystem-for-linux-wsl-bridging-the-gap-between-windows-and-linux</guid><category><![CDATA[Linux]]></category><category><![CDATA[WSL]]></category><category><![CDATA[Windows]]></category><category><![CDATA[command line]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Wed, 14 Jun 2023 17:59:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1686765218224/32f366bb-a048-4c8c-9647-d8d2a2601422.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In recent years, Windows Subsystem for Linux (WSL) has emerged as a powerful tool that allows Windows users to harness the capabilities of Linux right on their Windows machines. Whether you're a developer, system administrator, or an enthusiast, WSL brings the best of both worlds by seamlessly integrating the Linux environment within Windows. In this blog post, we'll explore the strengths of WSL and highlight its limitations, focusing on popular distributions like Ubuntu and Kali Linux while mentioning others.</p>
<h2 id="heading-strengths-of-wsl"><strong>Strengths of WSL:</strong></h2>
<h3 id="heading-1-seamless-integration-with-windows"><strong>1. Seamless integration with Windows:</strong></h3>
<p>WSL offers native integration between Windows and Linux, allowing you to run Linux commands and applications directly from the Windows command prompt or PowerShell. This integration facilitates easy file sharing, enabling you to access and manipulate Windows files from within the Linux environment and vice versa. You can seamlessly switch between both systems, taking advantage of the best features each has to offer.</p>
<h3 id="heading-2-broad-compatibility-with-linux-distributions"><strong>2. Broad compatibility with Linux distributions:</strong></h3>
<p>WSL supports a wide range of Linux distributions, ensuring compatibility with your preferred Linux environment. Distributions like Ubuntu, Debian, and Fedora are readily available for installation, opening up access to an extensive ecosystem of Linux software, libraries, and tools. For example, developers can leverage Ubuntu on WSL to develop and test Linux-based applications, enjoying the familiarity and power of Linux without leaving their Windows environment.</p>
<h3 id="heading-3-development-and-testing-made-easier"><strong>3. Development and testing made easier:</strong></h3>
<p>WSL is particularly beneficial for developers and system administrators working with Linux-based applications and environments. With WSL, you can seamlessly execute Linux commands and scripts within Windows, making it easier to automate tasks, perform system administration, and utilize a vast array of command-line tools available in Linux. It provides a convenient environment for developing, testing, and fine-tuning applications before deployment on Linux systems.</p>
<h2 id="heading-limitations-of-wsl"><strong>Limitations of WSL:</strong></h2>
<h3 id="heading-1-no-direct-access-to-linux-kernel"><strong>1. No direct access to Linux kernel:</strong></h3>
<p>It's important to note that WSL operates through a compatibility layer rather than a native Linux kernel. While it supports a wide range of Linux software, certain low-level functionalities and kernel-specific features may not be fully supported or perform optimally. WSL translates Linux system calls into equivalent Windows operations, which may introduce slight differences or limitations in functionality.</p>
<h3 id="heading-2-limited-graphical-application-support"><strong>2. Limited graphical application support:</strong></h3>
<p>Although WSL has made significant progress in recent versions, it still has limited support for running graphical applications or those with a graphical user interface (GUI). While command-line tools work seamlessly, graphical applications may require additional configuration or third-party tools to run within the Windows environment. Although distributions like Ubuntu with a lightweight desktop environment can run GUI applications to some extent, it's not as seamless as on a native Linux system.</p>
<h3 id="heading-3-performance-considerations"><strong>3. Performance considerations:</strong></h3>
<p>While WSL performs well for most common tasks, it may exhibit differences in performance compared to a native Linux environment. Workloads involving heavy I/O operations or extensive file system operations might experience performance variations due to architectural differences between Windows and Linux. However, for general usage, development, and scripting tasks, the performance difference is typically negligible.</p>
<h3 id="heading-4-hardware-limitations"><strong>4. Hardware limitations:</strong></h3>
<p>WSL does not provide direct access to hardware devices. This means that certain hardware-related functionalities, such as USB device passthrough or direct hardware control, may not be available or may require additional workarounds. However, it's worth noting that WSL supports accessing and utilizing Windows hardware resources, such as network interfaces and storage devices, within the Linux environment.</p>
<h2 id="heading-how-to-install-wsl"><strong>How to Install WSL:</strong></h2>
<p>To install WSL on your Windows machine, follow these steps:</p>
<ol>
<li><p>Enable the Windows Subsystem for Linux feature:</p>
<ul>
<li><p>Open PowerShell as an administrator.</p>
</li>
<li><p>Run the following command: <code>wsl --install</code> (This command is available on Windows 10 version 2004 or higher.)</p>
</li>
</ul>
</li>
<li><p>Install a Linux distribution from the Microsoft Store:</p>
<ul>
<li><p>Open the Microsoft Store application.</p>
</li>
<li><p>Search for your preferred Linux distribution (e.g., Ubuntu, Debian, or others).</p>
</li>
<li><p>Select the distribution and click "Install" to download and set up the Linux environment.</p>
</li>
</ul>
</li>
<li><p>Launch and configure the Linux distribution:</p>
<ul>
<li><p>Once the installation is complete, launch the installed Linux distribution from the Start menu or by typing the distribution name in the Windows search bar.</p>
</li>
<li><p>Follow the initial setup instructions to create a user account and configure the Linux environment.</p>
</li>
</ul>
</li>
</ol>
<p>Once you have the Linux distribution up and running through WSL, you can install additional packages, explore the Linux file system, and execute Linux commands using the Windows command prompt or PowerShell.</p>
<p>Windows Subsystem for Linux (WSL) is a powerful tool that bridges the gap between Windows and Linux, providing Windows users with a taste of the Linux experience. It seamlessly integrates the Linux environment within Windows, offering compatibility with popular distributions like Ubuntu and Kali Linux, along with a wide range of Linux software and tools. While it has certain limitations regarding kernel-level features, graphical applications, and hardware access, WSL is a valuable tool for development, testing, and general usage scenarios, enabling users to leverage the power of Linux while remaining within the familiar Windows environment.</p>
]]></content:encoded></item><item><title><![CDATA[Linux for Beginners: Using grep]]></title><description><![CDATA[I am attempting to cover all of the tools that are built into the Linux operating system when you install it. However, I am also including popular or useful tools. If you haven't used grep, you will immediately see what makes it a useful and remarkab...]]></description><link>https://matthewhard.com/linux-for-beginners-using-grep</link><guid isPermaLink="true">https://matthewhard.com/linux-for-beginners-using-grep</guid><category><![CDATA[Linux]]></category><category><![CDATA[linux for beginners]]></category><category><![CDATA[linux-commands]]></category><category><![CDATA[grep]]></category><category><![CDATA[learn-linux]]></category><dc:creator><![CDATA[Matthew Hard]]></dc:creator><pubDate>Tue, 13 Jun 2023 03:10:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1686625427018/bd214ecd-9667-43d8-ba52-e899b2f1ec39.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I am attempting to cover all of the tools that are built into the Linux operating system when you install it. However, I am also including popular or useful tools. If you haven't used <code>grep</code>, you will immediately see what makes it a useful and remarkable command. My goal with this post is to provide you with the knowledge and capabilities to use <code>grep</code> to its full potential. Let's dive in and discover <code>grep</code> together.</p>
<h2 id="heading-understanding-the-basics">Understanding the Basics</h2>
<p>At its core, <code>grep</code> is a command-line tool that allows you to search for specific patterns within files. It's like a magnifying glass that helps you find needles in the haystack of text-based data. For example, you can search for a particular word, phrase, or even a complex pattern using <code>grep</code>.</p>
<h3 id="heading-basic-usage"><strong>Basic Usage</strong></h3>
<p>Using <code>grep</code> is straightforward. Start by specifying the pattern you want to search for, followed by the name of the file or directory you want to search within. For instance, if you have a file named "data.txt" and want to find lines containing the word "example", you can use the following command:</p>
<pre><code class="lang-dart">grep <span class="hljs-string">"example"</span> data.txt
</code></pre>
<p><code>grep</code> will then display all the lines in "data.txt" that match the specified pattern, making it easy to find relevant information quickly.</p>
<h3 id="heading-searching-multiple-files">Searching Multiple Files</h3>
<p>Grep also allows you to search for patterns across multiple files. Simply provide the names of the files you want to search, and <code>grep</code> will display the matching lines for each file. For example:</p>
<pre><code class="lang-dart">grep <span class="hljs-string">"error"</span> file1.txt file2.txt file3.txt
</code></pre>
<p>This command will search for the word "error" in "file1.txt," "file2.txt," and "file3.txt," and display the matching lines from each file.</p>
<h3 id="heading-ignoring-case-sensitivity">Ignoring Case Sensitivity</h3>
<p>By default, <code>grep</code> is case-sensitive, meaning it will only match patterns with the same capitalization. However, you can make it case-insensitive by using the <code>-i</code> option. For example:</p>
<pre><code class="lang-dart">grep -i <span class="hljs-string">"example"</span> data.txt
</code></pre>
<p>This command will match lines containing "example," "Example," "EXAMPLE," and so on, regardless of their capitalization.</p>
<h3 id="heading-using-regular-expressions">Using Regular Expressions</h3>
<p>One of the most powerful aspects of <code>grep</code> is its support for regular expressions (regex). Regular expressions allow you to define complex patterns to search for. For example, if you want to find lines containing either "cat" or "dog," you can use the following command:</p>
<pre><code class="lang-dart">grep <span class="hljs-string">"cat\|dog"</span> animals.txt
</code></pre>
<p>Here, the <code>\|</code> symbol acts as an "OR" operator within the regular expression.</p>
<p>Here's a list of commonly used regular expressions (regex) that you can utilize with <code>grep</code> to enhance your searching capabilities:</p>
<ol>
<li><p>Search for lines containing the word "hello" in a file:</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"hello"</span> file.txt
</code></pre>
</li>
<li><p>Match lines starting with "start" in a file:</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"^start"</span> file.txt
</code></pre>
</li>
<li><p>Find lines ending with "end" in a file:</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"end$"</span> file.txt
</code></pre>
</li>
<li><p>Search for lines with vowels (a, e, i, o, u) in a file:</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"[aeiou]"</span> file.txt
</code></pre>
</li>
<li><p>Match uppercase letters in a file:</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"[A-Z]"</span> file.txt
</code></pre>
</li>
<li><p>Find lines with non-digit characters in a file:</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"[^0-9]"</span> file.txt
</code></pre>
</li>
<li><p>Search for lines with "a" followed by zero or more "b" and then "c":</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"ab*c"</span> file.txt
</code></pre>
</li>
<li><p>Match lines with "a" followed by one or more "b" and then "c":</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"ab+c"</span> file.txt
</code></pre>
</li>
<li><p>Find lines with "a" followed by optional "b" and then "c":</p>
<pre><code class="lang-dart"> grep <span class="hljs-string">"ab?c"</span> file.txt
</code></pre>
</li>
<li><p>Search for lines with "apple" or "banana":</p>
<pre><code class="lang-dart">grep <span class="hljs-string">"apple\|banana"</span> file.txt
</code></pre>
</li>
<li><p>Match lines with a number enclosed in parentheses:</p>
<pre><code class="lang-dart">grep <span class="hljs-string">"(\d+)"</span> file.txt
</code></pre>
</li>
<li><p>Find lines with exactly three consecutive "a" characters:</p>
<pre><code class="lang-dart">grep <span class="hljs-string">"a{3}"</span> file.txt
</code></pre>
</li>
</ol>
<h3 id="heading-advanced-options">Advanced Options</h3>
<p><code>grep</code> offers advanced options and the ability to combine it with other Linux command-line tools, enabling you to construct powerful pipelines and unleash its full potential. Let's explore some examples of how you can leverage these capabilities:</p>
<h3 id="heading-inverting-the-match-v">Inverting the Match (-v)</h3>
<p>The <code>-v</code> option allows you to invert the match, displaying lines that do not match the specified pattern. For instance, to find all lines in a file named "log.txt" that do not contain the word "error", you can use the following command:</p>
<pre><code class="lang-dart">grep -v <span class="hljs-string">"error"</span> log.txt
</code></pre>
<h3 id="heading-displaying-line-numbers-n">Displaying Line Numbers (-n)</h3>
<p>To search through large files or log files, you can use the <code>-n</code> option to display the line numbers along with the matching lines. For example, searching for the word "warning" in a file named "log.txt" with line numbers displayed can be done using the following command:</p>
<pre><code class="lang-dart">grep -n <span class="hljs-string">"warning"</span> log.txt
</code></pre>
<h2 id="heading-combining-grep-with-other-tools">Combining <code>grep</code> with Other Tools</h2>
<h3 id="heading-piping-output-to-grep">Piping Output to <code>grep</code></h3>
<p>You can pipe the output of another program directly into <code>grep</code> to search for patterns within that output. For example, to search for lines containing the word "error" in the output of the <code>ls</code> command (which lists files and directories), you can use the following command:</p>
<pre><code class="lang-dart">ls -l | grep <span class="hljs-string">"error"</span>
</code></pre>
<p>This command executes <code>ls -l</code> to list the files and directories, and then pipes the output to <code>grep</code> to search for lines containing the word "error". Only the matching lines will be displayed.</p>
<h3 id="heading-piping-output-from-cat-to-grep">Piping Output from <code>cat</code> to <code>grep</code></h3>
<p>The <code>cat</code> command concatenates and displays the contents of files. You can pipe the output of <code>cat</code> into <code>grep</code> to search for patterns within the contents of one or more files. For example, to search for lines containing the word "example" in multiple files, use the following command:</p>
<pre><code class="lang-dart">cat file1.txt file2.txt | grep <span class="hljs-string">"example"</span>
</code></pre>
<p>This command combines the contents of <code>file1.txt</code> and <code>file2.txt</code> using <code>cat</code>, and then pipes the output to <code>grep</code> to search for lines containing the word "example". The matching lines will be displayed.</p>
<p>Congratulations! You've unlocked the power of <code>grep</code>. Armed with its search capabilities, you can efficiently sift through vast amounts of data, extract valuable information, and uncover hidden insights. Practice, experiment, and explore the vast landscape of <code>grep</code> to become a true master of this incredible command. Happy searching!</p>
]]></content:encoded></item></channel></rss>