<?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" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ #infosec - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ #infosec - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 13 Jun 2026 16:42:25 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/infosec/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Key Security Concepts to Learn for a Career in Cybersecurity ]]>
                </title>
                <description>
                    <![CDATA[ This tutorial is designed to be your stepping stone into the fascinating world of cybersecurity. I’ll introduce you to key concepts and terminology you’ll need to know, giving you a solid foundation to build upon as you continue your learning journey... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/key-cybersecurity-concepts-for-career/</link>
                <guid isPermaLink="false">6705c1b504f7d6b2916c46c1</guid>
                
                    <category>
                        <![CDATA[ #cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ CyberSec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ José Toledo ]]>
                </dc:creator>
                <pubDate>Tue, 08 Oct 2024 23:35:17 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1728332788775/d815c2f6-dea0-4c9d-ad33-1715cb0778c5.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>This tutorial is designed to be your stepping stone into the fascinating world of cybersecurity. I’ll introduce you to key concepts and terminology you’ll need to know, giving you a solid foundation to build upon as you continue your learning journey.</p>
<h3 id="heading-heres-what-well-cover">Here’s what we’ll cover:</h3>
<ul>
<li><p><a class="post-section-overview" href="#heading-what-is-cybersecurity">What is Cybersecurity?</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-cybersecurity-a-world-of-opportunities">Cybersecurity: A World of Opportunities</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-emerging-trends-and-threats-in-cybersecurity">Emerging Trends and Threats in Cybersecurity</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-understanding-cyber-risk">Understanding Cyber Risk</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-common-cyber-threats">Common Cyber Threats</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-the-cia-triad-and-iaaa">The CIA Triad and IAAA</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-people-processes-and-technology">People, Processes, and Technology</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-domains-of-cybersecurity">Domains of Cybersecurity</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-operating-systems-the-foundation">Operating Systems: The Foundation</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-security-controls-your-first-line-of-defense">Security Controls: Your First Line of Defense</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-cryptography-basics">Cryptography Basics</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-advanced-terminology-and-concepts">Advanced Terminology and Concepts</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></p>
</li>
</ul>
<h2 id="heading-what-is-cybersecurity">What is Cybersecurity?</h2>
<p>Cybersecurity is the practice of protecting computer systems, networks, and data from unauthorized access, use, disclosure, disruption, modification, or destruction. It's like a digital shield, safeguarding our valuable information and ensuring that systems run smoothly.</p>
<p>In today's interconnected world, where we rely on technology for everything from banking and shopping to communication and healthcare, cybersecurity is more critical than ever.</p>
<h3 id="heading-fundamental-security-concepts">Fundamental Security Concepts</h3>
<ul>
<li><p><strong>Software:</strong> Software refers to the set of instructions that tell a computer what to do. It's the brain behind everything computers do, from browsing the web and playing games to controlling complex machinery and enabling critical infrastructure.</p>
</li>
<li><p><strong>Software Flaws and Vulnerabilities:</strong> Software is written by humans, and humans make mistakes. These mistakes in code can lead to software flaws or bugs, creating vulnerabilities that attackers can exploit.</p>
</li>
<li><p><strong>Exploits:</strong> Exploits are the tools and techniques attackers use to take advantage of vulnerabilities. They can be a piece of software, a command, or a sequence of actions that exploit a weakness to compromise a system.</p>
</li>
</ul>
<h2 id="heading-cybersecurity-a-world-of-opportunities">Cybersecurity: A World of Opportunities</h2>
<p>The field of cybersecurity is vast and dynamic, offering a variety of career paths for diverse skill sets. Here are a few examples of the many roles in this exciting field:</p>
<ul>
<li><p><strong>Governance, Risk, and Compliance (GRC)</strong> are the architects of an organization's security framework. They focus on developing and implementing security policies, managing risks, and ensuring compliance with industry standards and government regulations.</p>
</li>
<li><p><strong>Penetration Testers</strong> are often called "ethical hackers," and they use their skills to identify vulnerabilities and improve security systems before malicious actors can exploit them. They conduct authorized, simulated attacks to test an organization's defenses and identify weaknesses.</p>
</li>
<li><p><strong>Security Analysts</strong> are the front-line soldiers in the fight against cyber threats. They monitor networks for suspicious activity, analyze security breaches to identify causes and vulnerabilities, and implement security measures to prevent future attacks.</p>
</li>
</ul>
<p>This is just a small sample of the diverse opportunities within cybersecurity. Now, let's look at some emerging trends and threats, then explore the concept of cyber risk.</p>
<h2 id="heading-emerging-trends-and-threats-in-cybersecurity">Emerging Trends and Threats in Cybersecurity</h2>
<p>The cybersecurity landscape is constantly evolving, with new threats and technologies emerging at a rapid pace.</p>
<p>As we navigate the digital world in 2024, several key trends and threats are shaping the field:</p>
<ul>
<li><p><strong>AI-Powered Attacks:</strong> Cybercriminals are increasingly leveraging artificial intelligence to create more sophisticated and targeted attacks. AI-generated phishing emails and deepfakes are becoming harder to detect, posing new challenges for security professionals</p>
</li>
<li><p><strong>Ransomware Evolution:</strong> Ransomware attacks continue to evolve, with attackers now employing double extortion tactics. They not only encrypt data but also threaten to leak sensitive information (double extortion), putting additional pressure on victims</p>
</li>
<li><p><strong>IoT Vulnerabilities:</strong> The sharp increase in of Internet of Things (IoT) devices (think smart thermostats, refrigerators, door locks) has expanded the attack surface for cybercriminals. Securing these interconnected devices remains a significant challenge</p>
</li>
<li><p><strong>Supply Chain Attacks:</strong> Threat actors are increasingly targeting software supply chains to compromise multiple organizations simultaneously. These attacks can have far-reaching consequences and are particularly difficult to detect</p>
</li>
<li><p><strong>State-Sponsored Cyber Warfare:</strong> The rise of state-sponsored cyber attacks is blurring the lines between traditional warfare and cybercrime. These sophisticated attacks often target critical infrastructure and can have geopolitical implications</p>
</li>
<li><p><strong>Cloud Security Challenges:</strong> As more organizations migrate to the cloud, securing cloud environments has become a top priority. Misconfigurations and inadequate access controls in cloud services are common vulnerabilities exploited by attackers</p>
</li>
</ul>
<h2 id="heading-understanding-cyber-risk">Understanding Cyber Risk</h2>
<p>In the context of cybersecurity, <strong>risk</strong> is the potential for loss or damage resulting from a cyberattack or security breach. My favorite way to explain is it to think of it like a boxer with a "glass jaw" – a known weakness that an opponent can exploit.</p>
<p>To understand cyber risk better, let's break it down:</p>
<ul>
<li><p><strong>Vulnerabilities:</strong> These are weaknesses in systems or processes that can be exploited by attackers. In our boxing analogy, this is the boxer's "glass jaw" – a vulnerability that makes them susceptible to a knockout.</p>
</li>
<li><p><strong>Exploits:</strong> The act of actually punching the person with the glass jaw is the exploit. It's the action taken to leverage the vulnerability and cause harm. Similarly, in cybersecurity, an exploit is a specific technique or code used to take advantage of a vulnerability.</p>
</li>
<li><p><strong>Threats:</strong> The possibility of someone throwing a punch at the person with the glass jaw is a threat. It's a potential danger that could exploit the vulnerability. In the digital world, threats are malicious actors or events like viruses, hackers, or even natural disasters that can harm systems or data.</p>
</li>
<li><p><strong>Threat Actor</strong>: The person throwing the punch is the threat actor. They are the specific entity with the intent and capability to exploit the vulnerability. In cybersecurity, threat actors can be individuals, groups, or even nation-states that seek to compromise systems or steal data.</p>
</li>
<li><p><strong>Impact</strong>: The injury from the punch represents the impact. It is the damage caused by the successful exploitation of the vulnerability. In a cyber attack, the impact could be the data loss, financial damage, or disruption of operations.</p>
</li>
<li><p><strong>Risk</strong>: The overall risk is the combination of the vulnerability (the glass jaw), the threat (the potential punch), the threat actor (the person punching), and the potential impact (serious injury). In cybersecurity, risk is the likelihood that a threat will exploit a vulnerability and the resulting damage to the organization.</p>
</li>
<li><p><strong>Risk Appetite</strong>: The person's willingness to step into the boxing ring despite their glass jaw represents their risk appetite. It's the level of risk they are willing to accept. In cybersecurity, risk appetite is the amount of risk an organization is willing to take in pursuit of its objectives.</p>
</li>
</ul>
<p>The relationship between these concepts is crucial: a <strong>threat</strong> exploits a <strong>vulnerability</strong> using an <strong>exploit</strong> to create <strong>risk</strong>. The greater the vulnerability and the more determined the threat, the higher the risk.</p>
<h2 id="heading-common-cyber-threats">Common Cyber Threats</h2>
<p>The digital world is full of threats, just like the physical world. Here are some common types of cyber threats:</p>
<ul>
<li><p><strong>Viruses:</strong> A computer virus is a malicious program that self-replicates and spreads from one computer to another, like a biological virus. They can corrupt files, steal data, and disrupt system operations.</p>
</li>
<li><p><strong>Trojans:</strong> A Trojan horse disguises itself as legitimate software to trick users into installing it. Once inside, it can steal data, damage files, or take control of the system.</p>
</li>
<li><p><strong>Ransomware:</strong> Ransomware encrypts a victim's files, making them inaccessible. Attackers then demand a ransom to decrypt the files.</p>
</li>
<li><p><strong>Malware:</strong> Malware is a broad term encompassing any malicious software, including viruses, Trojans, ransomware, and spyware. Spyware secretly monitors user activity and steals sensitive information.</p>
</li>
<li><p><strong>Phishing:</strong> Phishing attacks use deceptive emails, messages, or websites to trick individuals into revealing sensitive information, such as passwords or credit card numbers. These often appear to come from a trusted source, like a bank or online retailer.  </p>
</li>
<li><p><strong>Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks:</strong> These attacks aim to disrupt a service or network by overwhelming it with traffic from multiple sources. This makes the service unavailable to legitimate users. Imagine a website being flooded with so many requests that it crashes and can't be accessed by anyone.</p>
</li>
</ul>
<h2 id="heading-the-cia-triad-and-iaaa">The CIA Triad and IAAA</h2>
<p>The CIA triad is a core principle in cybersecurity and one that I constantly preach and bring my work back to. It stands for <strong>Confidentiality</strong>, <strong>Integrity</strong>, and <strong>Availability</strong>.</p>
<h3 id="heading-confidentiality"><strong>Confidentiality</strong></h3>
<p>Confidentiality is all about keeping things protected. It’s like having a secret diary with an unbreakable lock, or sending a coded message that only your best friend can crack.</p>
<p>In cybersecurity, we use fancy tools like encryption and access controls to make sure only the right people can see sensitive information. When I say confidentiality, I generally want the association to be encryption.</p>
<h3 id="heading-integrity"><strong>Integrity</strong></h3>
<p>Integrity is like a superhero protecting your data from sneaky villains who want to mess with it. It’s about making sure your information stays accurate and trustworthy. Think of your bank statement — you’d be pretty upset if someone changed the numbers, right?</p>
<p>We use things like checksums and version control to keep our data safe and sound. Think of a hash or checksum as a unique fingerprint for a file or piece of data. If even a tiny bit of the data changes, the fingerprint will completely change, allowing you to easily verify if something has been tampered with. When I say integrity, I generally want the association to be hashes or checksums.</p>
<h3 id="heading-availability"><strong>Availability</strong></h3>
<p>Imagine trying to get into your favorite coffee shop, but the door is locked! Availability makes sure that the good actors (aka authorized users) can always access the data and systems they need, when they need them — and the bad actors can’t. It’s like having a friendly doorman who knows your face and lets you right in. Redundancy, backups, and disaster recovery plans (more on this later) are some of the tools we use to keep those digital doors open.</p>
<p><img src="https://upload.wikimedia.org/wikipedia/commons/8/88/Confidentiality_Integrity_Availability_triangle.png" alt="Confidentiality_Integrity_Availability_triangle" class="image--center mx-auto" width="416" height="350" loading="lazy"></p>
<p><strong>IAAA</strong> builds upon the CIA triad by focusing on how access to information and systems is managed:</p>
<ul>
<li><p><strong>Identification:</strong> The process of claiming an identity, like providing a username.</p>
</li>
<li><p><strong>Authentication:</strong> Verifying the claimed identity, like entering a password.</p>
</li>
<li><p><strong>Authorization:</strong> Granting appropriate access levels based on the verified identity.</p>
</li>
<li><p><strong>Accountability:</strong> Tracking and recording user actions to ensure they are responsible for their activities.</p>
</li>
</ul>
<h2 id="heading-people-processes-and-technology">People, Processes, and Technology</h2>
<p>Cybersecurity is not just about technology – it's also about people and processes. These three elements work together to create a strong security posture.</p>
<h3 id="heading-people-and-security"><strong>People and Security</strong></h3>
<p>We are both the strongest and weakest link in the cybersecurity chain. We can create strong passwords, be vigilant against phishing attacks, and follow security best practices. But we can also fall victim to social engineering, click on malicious links, or inadvertently introduce vulnerabilities into our systems.</p>
<p>That's why security awareness training is so important – it helps us become more resilient and less likely to be tricked by attackers.</p>
<h3 id="heading-implementing-secure-processes"><strong>Implementing Secure Processes</strong></h3>
<p>Processes are the policies, procedures, and guidelines that govern how we do things. They provide a framework for security, ensuring that everyone knows what to do and how to do it securely.</p>
<p>For example, a strong password policy might require users to create complex passwords and change them regularly.</p>
<h3 id="heading-using-technology-securely"><strong>Using Technology Securely</strong></h3>
<p>Technology provides the tools and solutions we need to implement and enforce security measures. This includes everything from firewalls and antivirus software to encryption and intrusion detection systems.</p>
<p>But technology alone is not enough. It needs to be combined with effective processes and user awareness to create a truly secure environment.</p>
<h2 id="heading-domains-of-cybersecurity">Domains of Cybersecurity</h2>
<p>Cybersecurity is a vast field with many different domains, each focusing on a specific aspect of digital security. Some of the major domains include:</p>
<ul>
<li><p><strong>Network Security:</strong> Protecting computer networks from unauthorized access and attacks. This involves implementing devices like firewalls, intrusion detection systems, and other security measures to safeguard network infrastructure.</p>
</li>
<li><p><strong>Data Security:</strong> Safeguarding data from unauthorized access, use, disclosure, disruption, modification, or destruction. This includes data encryption, access controls, and data loss prevention techniques.</p>
</li>
<li><p><strong>Application Security:</strong> Securing software applications from vulnerabilities and attacks. This involves secure coding practices, vulnerability assessments, and penetration testing.</p>
</li>
<li><p><strong>Cloud Security:</strong> Protecting data and applications stored in the cloud. This includes understanding cloud security architectures, implementing access controls, and securing cloud storage.</p>
</li>
<li><p><strong>Cryptography:</strong> Using codes and ciphers to protect information from unauthorized access. This includes encryption techniques, digital signatures, and key management.</p>
</li>
</ul>
<h2 id="heading-operating-systems-the-foundation">Operating Systems: The Foundation</h2>
<p>An <strong>Operating System (OS)</strong> is the software that manages all the hardware and software on a computer.</p>
<p>In the context of cybersecurity, understanding operating systems is crucial because they are often the primary target for cyberattacks and the first line of defense against threats. It's like the conductor of an orchestra, making sure everything works together in harmony.</p>
<p>Popular examples include:</p>
<ul>
<li><p><strong>Windows:</strong> Developed by Microsoft, it's the most widely used OS for personal computers. Its popularity makes it a frequent target for malware, necessitating regular security updates and patches</p>
</li>
<li><p><strong>macOS:</strong> Developed by Apple, it powers Apple's Mac computers. While generally considered more secure due to its Unix-based architecture, it’s not immune to threats and requires ongoing security maintenance.</p>
</li>
<li><p><strong>Linux:</strong> An open-source OS known for its stability and flexibility, often used in servers and embedded systems. Its open-source nature allows for community driven security improvements, but also means vulnerabilities can be publicly exposed.</p>
</li>
</ul>
<p>Each OS has its own security features, vulnerabilities, and patching processes. Cybersecurity professionals need to understand these differences to effectively secure systems, implement appropriate security measures, and respond to OS specific threats.</p>
<p>Also, many cyberattacks exploit OS level vulnerabilities, making OS security a critical component of overall cybersecurity strategy.</p>
<h2 id="heading-security-controls-your-first-line-of-defense"><strong>Security Controls: Your First Line of Defense</strong></h2>
<p>Let's imagine your digital life as a castle. You've got valuable treasures inside, like your personal information, photos, and financial data. Naturally, you want to protect those treasures from any thieves or invaders. Security controls are the various defenses you put in place to keep your castle safe.</p>
<h3 id="heading-technical-controls-the-castle-walls-and-moat">Technical Controls: The Castle Walls and Moat</h3>
<p>Technical controls are like the sturdy walls and the deep moat surrounding your castle. They are the hardware and software solutions that act as barriers, filters, and alarms to keep the bad guys out.</p>
<ul>
<li><p>A firewall is like a drawbridge, carefully controlling who and what can enter your network.</p>
</li>
<li><p>Antivirus software is like a vigilant guard patrolling your castle grounds, searching for and eliminating any malicious intruders (like viruses or malware) that manage to slip past the walls.</p>
</li>
<li><p>Encryption is like a secret code that scrambles your data, making it unreadable to anyone who doesn't have the key.</p>
</li>
</ul>
<p>These technical defenses work together to create a strong perimeter around your digital castle, making it much harder for attackers to break in.</p>
<h3 id="heading-administrative-controls-the-castle-rules-and-regulations">Administrative Controls: The Castle Rules and Regulations</h3>
<p>Even with the strongest walls and moat, a castle is vulnerable if the people inside are careless or untrained. Administrative controls are the rules and regulations that govern how people and systems operate within your castle.</p>
<ul>
<li><p>Security awareness training is like educating your castle staff on how to recognize and respond to potential threats.</p>
</li>
<li><p>Password policies are like requiring strong, unique passwords for every door and gate in your castle.</p>
</li>
<li><p>Access control procedures are like assigning different levels of access to different areas of the castle, ensuring that only authorized personnel can enter sensitive areas.</p>
</li>
</ul>
<p>These administrative measures help to create a culture of security within your organization, ensuring that everyone is aware of their role in protecting the castle.</p>
<h3 id="heading-physical-controls-the-guards-and-locks">Physical Controls: The Guards and Locks</h3>
<p>Of course, even the most sophisticated digital defenses can be bypassed if someone gains physical access to your castle. Physical controls are the measures you take to protect your physical assets, such as servers, computers, and other equipment.</p>
<ul>
<li><p>Locks on doors and server racks are like the heavy bolts on your castle gates, preventing unauthorized entry.</p>
</li>
<li><p>Security cameras are like the watchful eyes of your guards, monitoring for any suspicious activity.</p>
</li>
<li><p>Security guards themselves are the ultimate physical control, providing a human presence to deter and respond to potential threats.</p>
</li>
</ul>
<p>These physical measures work in conjunction with your technical and administrative controls to create a comprehensive security strategy.</p>
<h2 id="heading-cryptography-basics">Cryptography Basics</h2>
<p>Remember those secret decoder rings you might have used as a kid? Cryptography is the adult, high-tech version of that, but instead of just scrambling letters, we're protecting sensitive information like your credit card details, medical records, and even classified government communications.</p>
<p>At its core, cryptography is the practice of securing communication and data through the use of codes and ciphers. It's like having a secret language that only you and your intended recipient can understand. This helps ensure that even if someone intercepts your message, they won't be able to read it without the key to decode it.</p>
<p>Encryption is a crucial tool in cryptography. It takes your readable data (plaintext) and transforms it into an unreadable format (ciphertext) using a complex algorithm and a secret key. Only someone with the correct decryption key can reverse the process and turn the ciphertext back into plaintext.</p>
<p>Think of it like putting your valuables in a locked safe. The safe is the encryption, and the key is the decryption key. Without the key, no one can access your valuables without a ton of work.</p>
<p>Common encryption algorithms you might hear about include AES (Advanced Encryption Standard) and RSA (Rivest-Shamir-Adleman). These algorithms are used in a wide range of applications, from securing online banking transactions to protecting sensitive government data.</p>
<ul>
<li><p><strong>Cryptographic Hashing:</strong> A technique used to verify the <strong>integrity</strong> of data. It takes an input (like a file or message) and generates a unique "fingerprint" called a hash. Even a tiny change in the input results in a completely different hash, helping detect if data has been tampered with.</p>
</li>
<li><p><strong>Symmetric Cryptography:</strong> Uses the same key for encryption and decryption. It's fast and efficient but requires a secure way to share the key between parties.</p>
</li>
<li><p><strong>Asymmetric Cryptography:</strong> Uses two different keys: a public key for encryption and a private key for decryption. It's more secure for key exchange but can be slower.</p>
</li>
</ul>
<h2 id="heading-advanced-terminology-and-concepts">Advanced Terminology and Concepts</h2>
<ul>
<li><p><strong>Advanced Persistent Threats (APTs):</strong> Stealthy and continuous computer hacking processes, often orchestrated by skilled hackers targeting specific organizations or individuals. They often employ sophisticated techniques and remain undetected for extended periods.</p>
</li>
<li><p><strong>Threat Actors:</strong> Individuals or groups who intentionally try to exploit vulnerabilities for malicious purposes. They can range from individual hackers to organized crime groups and state-sponsored actors.</p>
</li>
<li><p><strong>Zero-Day Exploits:</strong> Exploits that take advantage of vulnerabilities unknown to the software vendor or security community. They are particularly dangerous because there is no known defense against them.</p>
</li>
<li><p><strong>Social Engineering:</strong> Manipulating individuals into divulging confidential information or performing actions that compromise security. This can include phishing attacks, pretexting, and baiting.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>You've now completed a journey through the fundamentals of cybersecurity! You've learned about various career opportunities, the concept of cyber risk, common cyber threats, the CIA triad, essential security domains, operating systems, and cryptography basics. You've even touched on more advanced concepts like APTs and social engineering.</p>
<p>Remember, this is just the beginning of your cybersecurity adventure. Dive in deeper to learn more about each of these key concepts.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Learn Wireshark – Computer Networking Tutorial ]]>
                </title>
                <description>
                    <![CDATA[ In this post, you will learn about the single most important and useful tool in Computer Networks – Wireshark. This post relies on basic knowledge of computer networks. Be sure to check my previous post about the five layers model if you need a refre... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-wireshark-computer-networking/</link>
                <guid isPermaLink="false">66c17c3dea5637f064224a0a</guid>
                
                    <category>
                        <![CDATA[ computer network ]]>
                    </category>
                
                    <category>
                        <![CDATA[ computer networking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Omer Rosenbaum ]]>
                </dc:creator>
                <pubDate>Mon, 23 Jan 2023 23:35:33 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/01/Computer-Networks-Ethernet--3-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this post, you will learn about the single most important and useful tool in Computer Networks – Wireshark.</p>
<p>This post relies on basic knowledge of computer networks. Be sure to check my <a target="_blank" href="https://www.freecodecamp.org/news/the-five-layers-model-explained/">previous post about the five layers model</a> if you need a refresher.</p>
<h1 id="heading-what-is-wireshark">What is Wireshark?</h1>
<p>Wireshark is a sniffer, as well as a packet analyzer.</p>
<p>What does that mean?</p>
<p>You can think of a <strong>sniffer</strong> as a measuring device. We use it to examine what’s going on inside a network cable, or in the air if we are dealing with a wireless network. A sniffer shows us the data that passes through our network card.</p>
<p>But Wireshark does more than that. A sniffer could just display a stream of bits - ones and zeroes, that the network card sees. Wireshark is also a <strong>packer analyzer</strong> that displays lots of meaningful data about the frames that it sees.</p>
<p>Wireshark is an open-source and free tool, and is widely used to analyze network traffic.</p>
<p>Wireshark can be helpful in many cases. It might be helpful for debugging problems in your network, for instance – if you can’t connect from one computer to another, and want to understand what’s going on. </p>
<p>It can also help programmers. For example, imagine that you were implementing a chat program between two clients, and something was not working. In order to understand what exactly is being sent, you may use Wireshark to see the data transmitted over the wire.</p>
<p>So, let’s get to know Wireshark.</p>
<h1 id="heading-how-to-download-and-install-wireshark">How to Download and Install Wireshark</h1>
<p>Start by downloading Wireshark from its official website:</p>
<p><a target="_blank" href="https://www.wireshark.org/#download">https://www.wireshark.org/#download</a></p>
<p>Follow the instructions on the installer and you should be good to go.</p>
<h1 id="heading-how-to-sniff-traffic-with-wireshark">How to Sniff Traffic with Wireshark</h1>
<p>Launch Wireshark, and start by sniffing some data. For that, you can hit <code>Ctrl+K</code> (PC) or <code>Cmd+K</code> (Mac)  to get the <code>Capture Options</code> window. Notice that you can reach this window in other ways. You can go to <code>Capture-&gt;Options</code>. Alternatively, you can click the <code>Capture Options</code> icon.</p>
<p>I encourage you to use keyboard shortcuts and get comfortable with them right from the start, as they'll allow you to save time and work more efficiently.</p>
<p>So, again, I’ve used <code>Ctrl+K</code> (or <code>Cmd+K</code>) and got this screen:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-208.png" alt="Image" width="600" height="400" loading="lazy">
<em>The <code>Capture Options</code> window in Wireshark (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>Here we can see a list of interfaces, and I happen to have quite a few. Which one is relevant? If you’re not sure at this point, you can look at the <code>Traffic</code> column, and see which interfaces currently have traffic. </p>
<p>Here we can see that <code>Wi-Fi 3</code> has got traffic going through it, as the line is high. Select the relevant network interface, and then hit <code>Enter</code>, or click the button <code>Start</code>.</p>
<p>Let Wireshark sniff the network for a bit, and then stop the sniff using <code>Ctrl+E</code> / <code>Cmd+E</code>. Again, this can be achieved in other ways – such as going to <code>Capture-&gt;Stop</code> or clicking the <code>Stop</code> icon.</p>
<p>Consider the different sections:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-210.png" alt="Image" width="600" height="400" loading="lazy">
<em>Wireshark's sections (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>The section marked in red includes Wireshark’s menu, with all kinds of interesting options.</p>
<p>The main toolbar is marked in blue, providing quick access to some items from the menu.</p>
<p>Next, marked in green, is the <strong>display filter</strong>. We will get back to it shortly, as this is one of the most important features of Wireshark.</p>
<p>Then follows:</p>
<h1 id="heading-the-packet-list-pane">The Packet List Pane</h1>
<p>The packet list pane is marked in orange. It displays a short summary of each packet captured.</p>
<p>(Note: the term Frame belongs to a sequence of bytes in the <a target="_blank" href="https://www.freecodecamp.org/news/the-five-layers-model-explained/">Data Link layer</a>, while a Packet is a sequence of bytes from the <a target="_blank" href="https://www.freecodecamp.org/news/the-five-layers-model-explained/">Network layer</a>. In this post I will use the terms interchangeably, though to be accurate, every packet is a frame, but not every frame is a packet, as there are frames that don't hold network layer data.)</p>
<p>As you can see in the image above, we have a few columns here:</p>
<p>NUMBER (No.) – The number of the packet in the capture file. This number won’t change, even if we use filters. This is just a sequential number – the first frame that you have sniffed gets the number 1, the second frame gets the number 2, and so on.</p>
<p>Time – The timestamp of the packet. It shows how much time has passed from the very first packet we have sniffed until we sniffed the packet in question. Therefore, the time for packet number 1 is always 0.</p>
<p>Source – The address where this packet is coming from. Don’t worry if you don’t understand the format of the addresses just yet, we will cover different addresses in future tutorials.</p>
<p>Destination – The address where this packet is going.</p>
<p>Protocol – The protocol name in a short version. This will be the top protocol – that is, the protocol of the highest layer.</p>
<p>Length – The length of each packet, in bytes.</p>
<p>Info – Additional information about the packet content. This changes according to the protocol.</p>
<p>By clicking on packets in this pane, you control what is displayed in the other two panes which I will now describe.</p>
<h1 id="heading-the-packet-details-pane">The Packet Details Pane</h1>
<p>Click on one of the captured packets. In the example below I clicked on packet number 147:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-211.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting a specific packet changes the packet details pane (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>Now, the <strong>packet details pane</strong> displays the packet selected in the packet list pane in more detail. You can see the layers here. </p>
<p>In the example above, we have Ethernet II as the second layer, IPv4 as the third layer, UDP as the fourth layer, and some data as a payload.</p>
<p>When we click on a specific layer, we actually see the <strong>header</strong> of that layer.</p>
<p>Notice that we don’t see the first layer on its own. As a reminder, the first layer is responsible for <strong>transmitting a single bit</strong> – 0 or 1 – over the network (if you need a refresher about the different layers, <a target="_blank" href="https://www.freecodecamp.org/news/the-five-layers-model-explained/">check out this post</a>).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-215.png" alt="Image" width="600" height="400" loading="lazy">
<em>The packet bytes pane in Wireshark (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>Below the packet details pane, we have the <strong>packet bytes pane</strong>. It displays the data from the packet selected in the packet list pane. This is the actual data being sent over the wire. We can see the data in hexadecimal base, as well as ASCII form.</p>
<h1 id="heading-how-to-use-the-display-filter">How to Use the Display Filter</h1>
<p>Wireshark has many different functions, and today we will focus on one thing – the display filter. </p>
<p>As you can see, once you start sniffing data, you get a LOT of traffic. But you definitely don’t want to look at everything. </p>
<p>Recall the example from before – using Wireshark in order to debug a chat program that you’ve implemented. In that case, you would like to see the traffic related to the chat program only.</p>
<p>Let’s say I want to filter only messages sent by the source address of frame number 149 ( <code>192.168.1.3</code> ). I will cover IP addresses in future posts, but for now you can see that it consists four numbers, delimited by a dot:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-217.png" alt="Image" width="600" height="400" loading="lazy">
<em>The <code>display filter</code> in Wireshark (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>Now, even if you don’t know how to filter only packets sent from this IP address, you can use Wireshark to show you how it’s done. </p>
<p>For that, go to the right field we would like to filter – in this case, the source IP address. Then right click -&gt; and choose <code>filter -&gt; Apply as Filter</code>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-218.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying a display filter (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>After applying the filter, you only see packets that have been sent from this address. Also, you can look at the display filter line and see the command used. In this way, you can learn about the display filter syntax (in this example, it is <code>ip.src</code> for the IP source address field):</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-219.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying a display filter (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>Now, try to filter only packets that have been sent from this address, and <strong>to</strong> the address <code>172.217.16.142</code> (as in Frame 130 in the image above). How would you do that?</p>
<p>Well, you could go to the relevant field – in this case, the IP destination address. Now, right click -&gt; <code>Apply as Filter</code> -&gt; and select <code>...and Selected</code>:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-220.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying a display filter (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>If you look at the display filter line after applying this filter:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-221.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying a display filter (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>You can also learn that you can use the <code>&amp;&amp;</code> operand in order to perform <code>and</code>. You could also write the word <code>and</code>, instead, and get the same result.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-222.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying multiple conditions using <code>&amp;amp;&amp;amp;</code> or <code>and</code> (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<h1 id="heading-how-to-use-wireshark-to-research-the-ping-utility">How to Use Wireshark to Research the Ping Utility</h1>
<p><strong>Ping</strong> is a useful utility to check for remote servers’ connectivity.</p>
<p><a target="_blank" href="https://www.howtogeek.com/235101/10-ways-to-open-the-command-prompt-in-windows-10/">This page</a> explains how to use <code>ping</code> in Windows, and <a target="_blank" href="https://macpaw.com/how-to/use-terminal-on-mac">this page</a> explains how to do that in OSX.</p>
<p>Now, we can try to <code>ping &lt;address&gt;</code> using the command line. By default, ping sends <code>4</code> requests and waits for a <strong>pong</strong> answer. If we want it to send a single request, we could use <code>-n 1</code>:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-224.png" alt="Image" width="600" height="400" loading="lazy">
<em>Using the command line to ping Google (Source: <a target="_blank" href="https://www.youtube.com/watch?v=nbTJXIdEzlo">Brief</a>)</em></p>
<p>You can see that Google has responded. The time it took for the message to return was 92 milliseconds. We will learn about the meaning of TTL in future posts.</p>
<p>Ping is useful to determine whether a remote service is available, and how fast it is to reach that service. If it takes a very long time to reach a reliable server such as google.com, we might have a connectivity problem.</p>
<h2 id="heading-try-it-yourself">Try it yourself</h2>
<p>Now, try to use Wireshark to answer the following questions:</p>
<p>1) What protocol does the <strong>ping</strong> utility use?</p>
<p>2) Using only Wireshark, compute the RTT (Round Trip Time) – how long it took since your ping request was sent and until the ping reply was received?</p>
<p>Next, run the following command:</p>
<p><code>ping -n 1 -l 342 www.google.com</code></p>
<p>3) What is the main difference between the packet sent by this command, and the packet sent by the previous command? Where in Wireshark can you see this difference, inspecting the packets?  </p>
<p>4) What is the content (data) provided in the ping request packet? What is the content provided in the ping response packet?</p>
<h2 id="heading-lets-solve-it-together">Let's solve it together</h2>
<p>So the first question is:</p>
<h3 id="heading-what-protocol-does-the-ping-utility-use">What protocol does the ping utility use?</h3>
<p>To answer that question, start sniffing in Wireshark, and simply run the <code>ping</code> command. Stop the sniff, and consider the packets pane:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-225.png" alt="Image" width="600" height="400" loading="lazy">
<em>Sniffing while running ping (source: <a target="_blank" href="https://www.youtube.com/watch?v=B5iEmaZK9xI&amp;t=2s">Brief</a>)</em></p>
<p>Wireshark marks the packets as <code>Echo (ping) request</code> and <code>Echo (ping) reply</code>.</p>
<p>Considering these packets, we can see they consist of <code>Ethernet</code> for the Data Link layer (though that may differ from one network to another), <code>IPv4</code> as the Network layer, and then <code>ICMP</code> as the protocol for Ping itself. So the answer we found is: <strong>ICMP</strong>.</p>
<p>Next question:</p>
<h3 id="heading-using-only-wireshark-compute-the-round-trip-time">Using only Wireshark, compute the Round Trip Time</h3>
<p>Looking at the captured packets, we can see the <code>Time</code> column, and subtract the time of the Pong packet ( <code>7.888...</code> ) from the time of the Ping packet ( <code>7.796...</code>).</p>
<p>So in this case the RTT was: <strong>92 ms</strong>. Of course, the value can be different when you run the <code>ping</code> utility.</p>
<h3 id="heading-what-is-the-main-difference-between-the-packet-sent-by-this-command-and-the-packet-sent-by-the-previous-command">What is the main difference between the packet sent by this command, and the packet sent by the previous command?</h3>
<p>For question number 3, we are asked to run the following command:</p>
<blockquote>
<p>ping -n 1 -l 342 www.google.com</p>
</blockquote>
<p>Looking at the first run of <code>ping</code>, we can see the length of the packets are <code>74</code> bytes:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-225.png" alt="Image" width="600" height="400" loading="lazy">
<em>Sniffing while running ping (source: <a target="_blank" href="https://www.youtube.com/watch?v=B5iEmaZK9xI&amp;t=2s">Brief</a>)</em></p>
<p>Observing the packets sent after running <code>ping</code> with the <code>-l 342</code> argument, we can see that the value is bigger:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-228.png" alt="Image" width="600" height="400" loading="lazy">
<em>Sniffing while running ping (source: <a target="_blank" href="https://www.youtube.com/watch?v=B5iEmaZK9xI&amp;t=2s">Brief</a>)</em></p>
<p>So the main difference is the amount of bytes sent as the data.</p>
<p>Question number four:</p>
<h3 id="heading-what-is-the-content-data-provided-in-the-ping-request-packet">What is the content (data) provided in the ping request packet?</h3>
<h3 id="heading-what-is-the-content-provided-in-the-ping-response-packet">What is the content provided in the ping response packet?</h3>
<p>Click on the request packet to observe the data sent:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/01/image-230.png" alt="Image" width="600" height="400" loading="lazy">
<em>Observing the data sent by the <code>ping</code> utility (source: <a target="_blank" href="https://www.youtube.com/watch?v=B5iEmaZK9xI&amp;t=2s">Brief</a>)</em></p>
<p>The answer for the ping request is <code>a</code> through <code>w</code>, over and over again.</p>
<p>Regarding the ping response – it is the same as the request.</p>
<h1 id="heading-summary">Summary</h1>
<p>Wireshark is a wonderful tool for anyone working with Computer Networks. It can help you understand how protocols work and also help you debug applications or network issues. </p>
<p>As you have seen, you can learn how things work by simply running Wireshark in the background while using them and then inspect the traffic. With this tool under your belt, the sky is the limit. </p>
<p>In future tutorials, we will also rely on our knowledge of Wireshark and use it to further understand various concepts in computer networks.</p>
<h2 id="heading-about-the-author">About the Author</h2>
<p><a target="_blank" href="https://www.linkedin.com/in/omer-rosenbaum-034a08b9/">Omer Rosenbaum</a> is <a target="_blank" href="https://swimm.io/">Swimm</a>’s Chief Technology Officer. He's the author of the Brief <a target="_blank" href="https://youtube.com/@BriefVid">YouTube Channel</a>. He's also a cyber training expert and founder of Checkpoint Security Academy. He's the author of <a target="_blank" href="https://data.cyber.org.il/networks/networks.pdf">Computer Networks (in Hebrew)</a>. You can find him on <a target="_blank" href="https://twitter.com/Omer_Ros">Twitter</a>.</p>
<h3 id="heading-additional-references">Additional References</h3>
<ul>
<li><a target="_blank" href="https://www.youtube.com/playlist?list=PL9lx0DXCC4BMS7dB7vsrKI5wzFyVIk2Kg">Computer Networks Playlist - on my Brief channel</a>.</li>
<li><a target="_blank" href="https://www.wireshark.org/">Wireshark's website</a>.</li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Become an Ethical Hacker — A Step-by-Step Guide ]]>
                </title>
                <description>
                    <![CDATA[ Have you wondered what it takes to be an ethical hacker? Ethical hacking is also known as “white hat” hacking or pentesting. It is the practice of using hacking techniques and tools to test the security of a computer system. The goal of an ethical ha... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-become-an-ethical-hacker/</link>
                <guid isPermaLink="false">66d035d612c679876b0602db</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ethical Hacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Mon, 16 Jan 2023 14:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/01/hacker-image.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Have you wondered what it takes to be an ethical hacker?</p>
<p>Ethical hacking is also known as “white hat” hacking or pentesting. It is the practice of using hacking techniques and tools to test the security of a computer system.</p>
<p>The goal of an ethical hacker is to improve the security of the system. This involves identifying and addressing weaknesses that can be exploited by malicious hackers.</p>
<p>Ethical hacking involves simulating the types of attacks a malicious hacker might use. This helps us find the vulnerabilities in a system and apply fixes to prevent or reduce them.</p>
<p><a target="_blank" href="https://www.prnewswire.com/news-releases/cybersecurity-remains-one-of-the-most-in-demand-professions-new-data-from-cyberseek-confirms-301651014.html">Recent reports say</a> that the demand for Cybersecurity engineers is at an all-time high. If you are thinking of a career in cybersecurity, this is a perfect time.</p>
<p>Whether you are new to the field or have some experience under your belt, this guide will help you get started on your ethical hacking journey. So let’s dive in!</p>
<h2 id="heading-learn-the-different-types-of-cyber-attacks">Learn the Different Types of Cyber Attacks.</h2>
<p>The first thing you have to do is understand the different types of attacks. This will help give you an idea about what you will be dealing with as a cybersecurity engineer.</p>
<p>Here are some common types of cyber attacks.</p>
<ol>
<li><p><strong>Malware attacks:</strong> These attacks involve the use of malicious software. This includes viruses or ransomware that lock the system and ask for payment. You might remember the <a target="_blank" href="https://www.malwarebytes.com/wannacry">Wannacry ransomware</a> that ravaged businesses in 2017.</p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-recognize-phishing-email/"><strong>Phishing attacks</strong></a><strong>:</strong> These attacks use fake emails, websites, and social media messages. This attack tricks users into giving out their private information like logins, credit card details, and so on.</p>
</li>
<li><p><strong>Denial of service (DoS) attacks:</strong> These attacks try to crash a target system using too much traffic. A server can only handle a specific number of requests. If the server exceeds its capacity due to a DoS attack, it will become unavailable to other users.</p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/what-is-sql-injection-how-to-prevent-it/"><strong>SQL injection attacks</strong></a><strong>:</strong> These attacks involve injecting malicious code into a database. This happens due to poor security practices in building a web application. If successful, hackers can take over and even destroy an entire database.</p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-protect-against-dom-xss-attacks/"><strong>Cross-site scripting (XSS) attacks</strong></a><strong>:</strong> These attacks involve injecting malicious code into a website. For example, if your website has a comments section without proper checks, malicious scripts can be injected into it. This script can then get saved into your database and also run on your customer’s browsers.</p>
</li>
<li><p><strong>Password attacks:</strong> These attacks involve attempting to guess or crack passwords. There are many tools available like <a target="_blank" href="https://blog.stealthsecurity.io/cracking-passwords-using-john-the-ripper/">John the Ripper</a> and <a target="_blank" href="https://blog.stealthsecurity.io/hacking-with-hashcat-a-practical-guide/">Hashcat</a>.</p>
</li>
<li><p><strong>Wireless attacks:</strong> These attacks involve targeting wireless networks like cracking a company’s WiFi. Once a hacker gains access to the WiFi, they can listen to every computer that connects to that WiFi.</p>
</li>
</ol>
<p>These are a few examples of the many types of cyber attacks that exist in today’s world. It is important that you understand different types of attacks and their impact. This will help you plan your training as well as choose a sub-category to specialize in.</p>
<h2 id="heading-develop-your-skillset">Develop Your Skillset</h2>
<p>Now that you know the different types of cyber attacks, how do you develop your skillset? Here are five steps that will help you move from beginner to professional.</p>
<h3 id="heading-learn-linux-fundamentals">Learn Linux Fundamentals</h3>
<p>Most servers run on Linux operating systems. Though most users use Windows, Linux is still the dominant server operating system in use. From AWS to Azure, most cloud servers are also deployed using Linux.</p>
<p>You can opt-in for Linux certifications like the <a target="_blank" href="https://www.redhat.com/en/services/certification/rhcsa">Red Hat Certification</a> or <a target="_blank" href="https://www.lpi.org/our-certifications/linux-essentials-overview">Linux essentials</a>. You can also play <a target="_blank" href="https://overthewire.org/wargames/">Wargames in OverTheWire</a> to learn some practical Linux commands.</p>
<p>Also, here's a <a target="_blank" href="https://www.freecodecamp.org/news/linux-essentials-for-hackers/">beginner-friendly course</a> that teaches you the basics of Linux for ethical hacking.</p>
<h3 id="heading-learn-networking-fundamentals">Learn Networking Fundamentals</h3>
<p>Learning networking is essential for cybersecurity. It helps you understand how computers talk to each other. Understanding protocols, architecture, and topology also help in building effective security measures against attackers.</p>
<p>A solid understanding of networking also helps with incident response and forensics. A strong networking background will get you from beginner to intermediate in a shorter time frame.</p>
<p>I would recommend <a target="_blank" href="https://www.youtube.com/playlist?list=PLBlnK6fEyqRgMCUAG0XRw78UA8qnv6jEx">this Youtube playlist</a> from Neso Academy. They have done a great job in putting all the Networking concepts together.</p>
<h3 id="heading-learn-basic-programming">Learn Basic Programming</h3>
<p>There is no alternative to learning to code. Tools like <a target="_blank" href="https://openai.com/blog/chatgpt/">ChatGPT</a> only enhance the way you work, they don't do it for you. So you need some programming basics. Or you will run into the risk of remaining a <a target="_blank" href="https://en.wikipedia.org/wiki/Script_kiddie">Script Kiddie</a>.</p>
<p>Programming knowledge helps you understand how computer systems work. Knowing programming also helps you to create secure software and systems. Programming skills are also needed to analyze and reverse-engineer malicious code. This is a crucial skillset for both offensive and defensive Pentesters.</p>
<p>Try these two resources:</p>
<ul>
<li><p>Learn <a target="_blank" href="https://www.learnshell.org/">basic Bash scripting</a></p>
</li>
<li><p>Learn <a target="_blank" href="https://www.learnpython.org/">basic Python programming</a></p>
</li>
</ul>
<h3 id="heading-tryhackme-pathways">TryHackme Pathways</h3>
<p><a target="_blank" href="https://tryhackme.com/">TryHackMe</a> is a platform that provides virtual rooms for learning cybersecurity skills. These rooms are interactive and they help you learn the method of finding and exploiting vulnerabilities. This is all done in a simulated network, so you will get some real-world practice without causing any damage.</p>
<p>They have also grouped rooms together to create pathways. These pathways help you to focus on a single topic, for example offensive security, defensive security, web app security, and so on.</p>
<p>Here are two pathways you can start with:</p>
<ul>
<li><p><a target="_blank" href="https://tryhackme.com/path/outline/introtocyber">Introduction to Cyber Security</a></p>
</li>
<li><p><a target="_blank" href="https://tryhackme.com/path/outline/jrpenetrationtester">Junior Penetration Tester</a></p>
</li>
</ul>
<h3 id="heading-labs-certifications-community">Labs / Certifications / Community</h3>
<p>Once you have completed the above steps, you can call yourself a mid-level ethical hacker. The next step is to get proficient by gaining some real-world hacking skills.</p>
<p>Here are the things you can do:</p>
<ul>
<li><p>Join <a target="_blank" href="https://www.hackthebox.com/">HackTheBox</a> and start cracking some virtual machines.</p>
</li>
<li><p>Prepare for a certification like <a target="_blank" href="https://www.comptia.org/certifications/pentest">Pentest+</a> or <a target="_blank" href="https://www.offensive-security.com/pwk-oscp">OSCP</a></p>
</li>
<li><p>Join a community like <a target="_blank" href="https://stealthsecurity.io/">Stealth Security</a> to keep learning about new tools and techniques.</p>
</li>
</ul>
<p>By doing these steps and continuing to learn and practice, you can build a strong skillset. Do note that ethical hacking requires a strong foundation in Linux and networking, so don’t skip those steps.</p>
<h2 id="heading-pentesting-tools-to-learn">Pentesting Tools to Learn</h2>
<p>There are a few tools you should learn if you want to be an effective and skilled ethical hacker. These tools are industry-standard and will most likely be used in the company you are looking to get into. Let’s look at each one of them.</p>
<ul>
<li><p><a target="_blank" href="https://nmap.org/"><strong>Nmap</strong></a><strong>:</strong> Nmap is a popular scanning and enumeration tool. Nmap helps us to find open ports, services, and vulnerabilities in a system. This is usually the first tool you will learn as an ethical hacker. You can <a target="_blank" href="https://www.freecodecamp.org/news/what-is-nmap-and-how-to-use-it-a-tutorial-for-the-greatest-scanning-tool-of-all-time/">read more about it here</a>.</p>
</li>
<li><p><strong>Wireshark:</strong> Wireshark helps us to analyze networks. When you connect to a <a target="_blank" href="https://www.wireshark.org/">network</a>, you can use Wireshark to see the packets of data in real-time. As an offensive tool, Wireshark also helps to perform <a target="_blank" href="https://www.imperva.com/learn/application-security/man-in-the-middle-attack-mitm/">man-in-the-middle</a> attacks. You can <a target="_blank" href="https://www.freecodecamp.org/news/how-to-use-wireshark-packet-analyzer/">read more about it here</a>.</p>
</li>
<li><p><a target="_blank" href="https://portswigger.net/burp"><strong>Burpsuite</strong></a><strong>:</strong> Burpsuite is an all-in-one web application auditing tool. Burpsuite helps us to debug issues in web apps, capture requests and responses, and even brute-force login attempts. Burpsuite is also popular among bug-bounty hunters.</p>
</li>
<li><p><a target="_blank" href="https://www.metasploit.com/"><strong>Metasploit</strong></a><strong>:</strong> Once you have found a way to get into a system, Metasploit will help you generate the payload. Metasploit is a powerful tool that comes with a lot of scanners, payloads, and exploits. You can also import results from other tools like Nmap into Metasploit. You can <a target="_blank" href="https://www.freecodecamp.org/news/metasploit-a-walkthrough-of-the-powerful-exploitation-framework/">read more about it here</a>.</p>
</li>
<li><p><a target="_blank" href="https://www.tenable.com/products/nessus"><strong>Nessus</strong></a><strong>:</strong> Nessus is an all-in-one scanner that helps us find vulnerabilities. It also provides recommendations on how to resolve those vulnerabilities. Nessus is a paid tool with a limited free option but is commonly used in enterprises.</p>
</li>
</ul>
<p>I have also recently written a blog post on the <a target="_blank" href="https://medium.com/@manishmshiva/10-tools-you-should-know-as-a-cybersecurity-engineer-3b9809c7bbc2">top ten tools you need to know as an ethical hacker</a>, so you can check it out if you are interested.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>In conclusion, ethical hacking is a valuable and rewarding career choice. Given the gap in demand and available security engineers, this is the perfect time to start a cybersecurity career.</p>
<p>Just remember that ethical hacking requires a strong foundation in networking and Linux, so don’t skip those lessons before you start working with a pentesting tool.</p>
<p>Hope you enjoyed this article. You can find more about my articles and videos on <a target="_blank" href="https://www.manishmshiva.com/">my website</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Get Your First Job in InfoSec ]]>
                </title>
                <description>
                    <![CDATA[ By Megan Kaczanowski Getting your first job in information security (infosec, or cybersecurity) can be tough.  It's (still) a relatively new industry, and job roles and descriptions aren't always consistent. Plus, it can be hard to figure out where t... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-get-your-first-job-in-infosec/</link>
                <guid isPermaLink="false">66d4605733b83c4378a51814</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 19 Dec 2022 23:32:44 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/12/pexels-tima-miroshnichenko-5380665.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Megan Kaczanowski</p>
<p>Getting your first job in information security (infosec, or cybersecurity) can be tough. </p>
<p>It's (still) a relatively new industry, and job roles and descriptions aren't always consistent. Plus, it can be hard to figure out where to get started, what skills you need, and how you can acquire them.</p>
<p>What's more, there are a lot of statistics that talk about how many jobs there are in cyber security. This makes it sound as though it should be very easy to get a job without any experience. </p>
<p>The issue is that many of these statistics don't account for the fact that a lot of those open jobs are for more senior roles. And it can be quite difficult to find a junior role, especially for someone who doesn't have any experience. </p>
<p>So, where do you get started, and how can you show that you have the experience to be great at the job?</p>
<h2 id="heading-figure-out-what-part-of-cyber-youd-like-to-work-in">Figure Out What Part of Cyber You'd Like to Work In</h2>
<p>Contrary to what movies usually show, cyber is a big field and encompasses a lot of jobs other than actively hacking into a mainframe. </p>
<p>Jobs span from risk management, to security awareness, to penetration testing (red teaming – this is the hacking most people think of, but it's actually a pretty small percentage of jobs), to security operations center (SOC) analysts (blue teaming), to security architecture (and a lot more).  </p>
<p><a target="_blank" href="https://trailhead.salesforce.com/en/career-path/cybersecurity/">This is a great place</a> to start exploring different career paths, <a target="_blank" href="https://niccs.cisa.gov/workforce-development/nice-framework">as is this resource</a>. There's a lot of overlap in the types of skills you need to develop for most entry level jobs, but it can be helpful to figure out which skills to prioritize, based on what you're interested in. </p>
<p><a target="_blank" href="https://techbootcamps.utexas.edu/blog/cybersecurity-with-non-technical-background/">Here's an overview of common paths</a> from non-technical backgrounds into jobs in cyber.</p>
<h2 id="heading-decide-what-makes-you-interested-in-cyber">Decide What Makes You Interested in Cyber</h2>
<p>In many ways, information security can be a tough industry. The hours are often long, and it's frequently expected that you will spend time outside of work continuing to study and work on projects (like blogs, podcasts, or labs) throughout your career. </p>
<p>The most successful folks I know at every level are constantly learning. That's the case for a lot of fields, but it's worth noting for security.</p>
<p>This is particularly because I often hear people tell me that they're interested in getting into security because they think it will pay well or because they think it sounds sexy or cool. </p>
<p>Those things can be true, but it often comes with long hours and long stretches of very dull tasks, which can be somewhat disillusioning for people who expect the type of hacking you see in movies. It's worth determining if you're committed or passionate enough on the topic to want to keep studying throughout your career. </p>
<h2 id="heading-start-studying">Start Studying</h2>
<p>Since we're assuming you don't have any experience (or formal education) in security, we'll start there. Ideally you need to gain some knowledge and experience in these technical areas: </p>
<ul>
<li>Networking (protocols like DNS, TCP/IP, and so on)</li>
<li>Programming (concepts, scripting, and so on)</li>
<li>System administration (Windows/Linux/AD/and so on)</li>
<li>Applications (programs which run on servers)</li>
</ul>
<p>Before you learn how to break something, or to secure it, you need to understand how it works. Plus, as a security professional, you'll have to work closely with network/infrastructure engineers, developers, and sys admins. The more you understand of their jobs, the better you'll able to work with them. </p>
<p>There are a number of different ways to get that knowledge:</p>
<h3 id="heading-university-degree-program">University degree program</h3>
<p>First, if a degree-granting program is an option for you (without being too expensive), it can be beneficial. Many employers and government agencies (at least in the United States) still require a degree in order to consider a job applicant.</p>
<p>Though 4-year college degrees can be cost-prohibitive, community colleges can be a more cost effective option, and <a target="_blank" href="https://www.freecodecamp.org/news/free-accredited-bachelors-degrees-in-computer-science-how-do-we-get-there/">freeCodeCamp is working on an affordable degree program</a>.</p>
<p>Additionally, university reduces the need for self motivation, since someone else is setting your curriculum and testing you on it (which can be very helpful!). </p>
<p>That's not to say that you can't get a job (or an education) without a degree – but it does make it a little harder, and there's a less straightforward path.  </p>
<p>One of the biggest advantages of universities is that you have built-in mentors in the form of your professors and teaching assistants and study groups in the form of your peers. Also, employers will try to directly recruit candidates from the university (often via job fairs dedicated to the university, or to university students more generally and hosted by third parties) and are prepared to hire for entry level roles. </p>
<p>If you're pursuing a self-study plan, you have to go find those opportunities yourself. On the other hand, degrees are expensive and can be time intensive! </p>
<p>If you opt for the degree route, I typically recommend a computer science degree. Computer science is a fairly well understood discipline and teaches skills which are easy for interviewers to test (it also offers you a wide range of career options).</p>
<p>Cybersecurity majors are relatively new, and vary in curricula. Some are essentially computer science degrees with a couple security classes tacked on, and some are primarily risk-based degrees, with a relatively small technical component (which is great if you're looking for a role in risk, but not if you're looking for a job as a SOC analyst or penetration tester). </p>
<p>Given the relative newness of these degrees, and most hiring managers' (un)familiarity with them, I typically recommend opting for a better understood and more standardized computer science degree.</p>
<h3 id="heading-cybersecurity-certifications">Cybersecurity certifications</h3>
<p>A second option is certifications. They can also show that you have some basic skills, though how important they are and how well they're regarded depends on the hiring manager and the certification. I typically advise Security+ for folks just getting started in cyber. </p>
<p>I also recommend that folks usually avoid EC-Council certifications. The one you're most likely to see referenced is the CEH (Certified Ethical Hacker). But I don't recommend it, because it isn't a well-respected technical certification for penetration testing, and because in recent years there have been some concerns about how EC-Council (the organization which administers the exam) approaches sexism and racism within cyber. There's also concern about how often they update the technical information in their exams. </p>
<p>I'm not a big fan of any of their certifications. You can read my full guide to information security certifications <a target="_blank" href="https://megankaczanowski.com/an-overview-of-cyber-training-and-certification-programs/">here</a>.</p>
<h3 id="heading-bootcamps">Bootcamps</h3>
<p>Alternatively, there are boot camps specifically targeted at helping people get cybersecurity jobs. They typically provide flexible options for attendance, and a structure/curriculum for learning. </p>
<p>These have the advantage of usually being much cheaper and shorter than a 4 year degree, but aren't usually as comprehensive, and vary significantly in quality. </p>
<p>Universities typically have to be accredited by a governing body, and there's no similar governance for boot camps. I don't recommend (or recommend avoiding) any specific bootcamps, but I do advise doing careful research before committing to one (reading reviews, talking to past students, asking what the rate of job placement is, and so on). This will help you make sure you end up with a return on your investment. </p>
<p>Typically bootcamps work best for folks who are self-motivated and eager to learn. They provide the structure, and they depend upon the students to do a lot of studying and work outside of the class structure.</p>
<h3 id="heading-self-study">Self-study</h3>
<p>Finally, there's self-study! The benefit of self-study is that it's free and you can set your own schedule. The downside is that it can be hard to both set your curriculum and teach yourself without knowing if you're missing key pieces. Determining how to set a curriculum is hard. </p>
<p>Also, there are a TON of cybersecurity learning resources out there and it can be hard to figure out which ones are high quality, and which ones you should skip.</p>
<p>Finally, self study requires a lot of dedication and self-accountability. It can be very easy to put your studies on a pause or for life to get in the way.</p>
<p>If you opt for self-study, here are a couple resources to get you started:</p>
<p>I would recommend freeCodeCamp as the first stop - it's well structured, clearly laid out, and there's lots of support along the way. </p>
<p>Past this, there's much less structure, and the best way to learn is to pick something that you find interesting, dig into it, and when you get stuck, start googling. </p>
<p>Some of the smartest people I've met in security are folks who followed that template: they read something, or heard something in a meeting that they didn't understand, and they googled it. That led them to something else they didn't understand, so they googled that, and so on, all the way down the rabbit hole. </p>
<p>This can be a frustrating process, but it's also an effective one over the long term, and one which will mean you have in-depth knowledge over a range of domains.</p>
<p>Here are some links to some helpful resources:</p>
<ul>
<li><a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp</a> is a great place to learn how to code (and to join a very supportive community to help you on your journey!) </li>
<li><a target="_blank" href="https://www.cybrary.it/?c=1692847587&amp;ag=133438485330&amp;ext=&amp;kw=cybrary&amp;dv=c&amp;utm_term=cybrary&amp;utm_campaign=BL%7CBrand%7CNon+Users%7CExact&amp;utm_source=adwords&amp;utm_medium=ppc&amp;hsa_acc=5080772077&amp;hsa_cam=1692847587&amp;hsa_grp=133438485330&amp;hsa_ad=607097995677&amp;hsa_src=g&amp;hsa_tgt=kwd-296132148142&amp;hsa_kw=cybrary&amp;hsa_mt=b&amp;hsa_net=adwords&amp;hsa_ver=3&amp;gclid=CjwKCAiAheacBhB8EiwAItVO2_4Z194YjWYMMGBebLguxn3Sht_gNi1cxkMx9DXWkMDgXwuJzv2-IRoCSO4QAvD_BwE">Cybrary</a> offers a number of free and paid courses, though they are very certification-focused. I used their CISSP class as one of my studying resources for that exam and found it very helpful. This can be helpful if you have a specific certification in mind (like Sec+).</li>
<li><a target="_blank" href="https://danielmiessler.com/blog/build-successful-infosec-career/">Daniel Miessler has a list of suggested projects to complete here (it serves as a nice mini curriculum for building an at-home lab for any security professional)</a> </li>
<li><a target="_blank" href="https://www.hacker101.com/">A free web security course</a> (penetration testing)</li>
</ul>
<p>The most important part here is not so much that you study specific things. It's rather that you set goals (h<a target="_blank" href="https://megansdoingfine.com/goal-setting/">ere's how to do so effectively</a>), and that you stick to them. </p>
<p>You'll need to learn <a target="_blank" href="https://megansdoingfine.com/how-to-learn-constantly-without-burning-out/">how to keep learning sustainably, without burning out</a>, because learning all of the above takes time. And even once you have a job in security, you'll constantly be learning. Any new vulnerability, exploit, or technology will mean that you have to learn something new in order to effectively protect your assets and networks.</p>
<h2 id="heading-get-involved-with-your-local-community">Get Involved with Your Local Community</h2>
<p>Getting to know people in your area who already work in cyber can be hugely beneficial. It's a great way to learn new skills, find out who is hiring, find a study buddy, and make professional connections. </p>
<p>Meetup is a great place to get started, as are international groups which have local affiliates like <a target="_blank" href="http://www.securitybsides.com/w/page/12194156/FrontPage">BSides</a>, <a target="_blank" href="https://defcongroups.org/">DefCon</a>, <a target="_blank" href="https://www.owasp.org/index.php/OWASP_Chapter">OWASP</a>, <a target="_blank" href="https://www.wicys.org/">WiCyS</a> (Women in Cybersecurity), <a target="_blank" href="https://www.womenofsecurity.com/">WoSEC</a> (Women of Security), <a target="_blank" href="https://www.cyversity.org/">Cyversity</a>, <a target="_blank" href="https://www.wisporg.com/">WISP</a> (Women in Security and Privacy), <a target="_blank" href="https://www.blacksincyberconf.com/">Blacks in Cybersecurity</a>, and <a target="_blank" href="https://womenscyberjutsu.org/">Women's Cyber Jutsu</a>. </p>
<p>Many of these groups also offer free webinars and training options for folks (even if you don't identify with the affinity group which they represent). </p>
<p>Once you've started going to events (and introducing yourself to the folks who are running the event), try volunteering for one! Community groups are almost always looking for more volunteers. If you are dedicated, show up on time, and help out, they're likely to be thrilled to have you. </p>
<p>After you've shown that you're a reliable volunteer who isn't afraid to jump in and help out, see if you can join a committee or the board of a group (this may take a few months). This will help you make friends, and it's a great thing to talk about in a job interview (especially if you don't have much on the job experience to talk about).</p>
<p>Start checking out conferences, as they're another great way to meet people in cybersecurity and pick up some additional skills. </p>
<p><a target="_blank" href="https://www.cfptime.org/home">CFP Time</a> and C<a target="_blank" href="https://infosec-conferences.com/">ybersecurity Conferences</a> list security conferences across the globe and are a good place to get started looking for events in your area. You don't have to go to expensive ones (though some of the affiliate groups I listed above offer scholarships to conferences, as well as their own conferences, which is a great way to attend for free or a low cost). Many local ones are fairly cheap, or have a free/cheap virtual option. </p>
<p>Go and treat it as a learning opportunity (not a partying one). Take notes and strike up a conversation with the people who attend the same talks (that's a great ice breaker!). </p>
<p>If you really liked a talk, reach out to the speaker on LinkedIn or Twitter and tell them what you liked about the talk – be specific. Now you have topics to talk about in a job interview!</p>
<h2 id="heading-get-involved-with-the-global-cyber-community">Get Involved with the Global Cyber Community</h2>
<p>A lot of the security community is on Twitter, LinkedIn, or Mastodon, and joining these sites is a great way to get connected with them. </p>
<p>Following people and groups who work in cybersecurity can be very helpful because they will often post about jobs they're hiring for, free classes, trainings, webinars, and conferences, among other things. It can also be helpful to start engaging in the conversation and treating it like an opportunity to network. </p>
<p>Looking at the authors of freeCodeCamp's cyber articles is a great place to start. From there, check out the authors of the blogs listed in the resources section below, as well as their followers and the folks they follow. This is a great way to find jobs to apply to, as well as interviewing advice, or to stay up to date with the latest cybersecurity vulnerabilities and news (a popular job interview question).</p>
<h2 id="heading-start-producing-content">Start Producing Content</h2>
<p>Once you've started learning, it's time to start creating content to show what you've learned. You can start a podcast, give a conference talk, write a blog, create projects on GitHub, or stand up a home lab. </p>
<p>The goal is really just that you have something to show for the learning that you're doing – that you can demonstrate what you've learned to a hiring manager. </p>
<p>Also, it doesn't have to be ground-breaking. Often I see folks get stumped. They think that they're not the foremost expert on C++, for example, and so they're hesitant to create any content on the topic at all. </p>
<p>However, often just having a unique perspective can be helpful. You can (for example) write (or give a talk on) 'An introduction to C++' and chances are you can reach someone who isn't quite as far along on their coding journey as you are who can benefit from your experience. </p>
<p>This is a great way to add content to your résumé, to help out the community, and to give you a chance to practice skills like writing, communicating with different audiences, and presenting (a<a target="_blank" href="https://megansdoingfine.com/why-soft-skills-are-key-to-success-in-tech/">ll of which are incredibly important in information security</a>).</p>
<h2 id="heading-write-a-great-resume">Write a Great Résumé</h2>
<p>Now that you've gained some experience, it's time to put together a résumé. You'll want to include all the projects you've built, the groups you've joined (and are now on the board of!), and the things you've produced. You should also include past jobs with transferrable skills. </p>
<p>If you're applying for a job in security awareness, do you have any experience creating trainings which aren't related to security? If you're applying for a job as a SOC analyst, can you highlight past experience writing daily reports? </p>
<p>Even if none of your past jobs were in technology roles, you can probably identify skills or responsibilities you had which are similar to those in the job posting. Those can be valuable skills to highlight on a résumé when applying for jobs.</p>
<p>You can find my full guide to writing a <a target="_blank" href="https://megansdoingfine.com/how-to-write-a-developer-resume-hiring-managers-will-actually-read/">résumé</a> and <a target="_blank" href="https://megansdoingfine.com/10-ways-to-improve-your-cover-letter/">cover letter here</a>, as well as <a target="_blank" href="https://megansdoingfine.com/10-things-youre-doing-wrong-when-job-hunting/">my tips on job hunting</a>.</p>
<h2 id="heading-finally-start-applying-for-jobs">Finally, Start Applying for Jobs</h2>
<p>Leverage your connections from in-person groups and conferences, any volunteering you've done, and your online connections. </p>
<p>Tell people that you're looking for entry level roles doing X, and ask them to think of you if they hear of any similar opportunities. </p>
<p>Often recruiters go to local tech events, and you can connect with them about potential job opportunities there. Use those leads, in addition to online job boards and in person job fairs at conferences, and start applying!</p>
<p>Some other advice on breaking into security from some very smart folks:</p>
<ul>
<li><a target="_blank" href="https://tisiphone.net/2015/10/12/starting-an-infosec-career-the-megamix-chapters-1-3/">Starting an InfoSec Career - Lesley Carhart</a></li>
<li><a target="_blank" href="https://danielmiessler.com/blog/build-successful-infosec-career/">Building a Successful InfoSec Career - Daniel Miessler</a></li>
<li><a target="_blank" href="https://krebsonsecurity.com/2020/07/thinking-of-a-cybersecurity-career-read-this/">Thinking of a Cybersecurity Career? Krebs on Security</a></li>
<li><a target="_blank" href="https://krebsonsecurity.com/2012/08/how-to-break-into-security-miller-edition/">How to Break into Security - Charlie Miller</a></li>
<li><a target="_blank" href="https://krebsonsecurity.com/2012/07/how-to-break-into-security-bejtlich-edition/">How to Break into Security - Richard Bejtlich</a></li>
<li><a target="_blank" href="https://krebsonsecurity.com/2012/07/how-to-break-into-security-grossman-edition/">How to Break into Security - Jeremiah Grossman</a></li>
<li><a target="_blank" href="https://krebsonsecurity.com/2012/07/how-to-break-into-security-schneier-edition/">How to Break into Security - Bruce Schneier</a></li>
<li><a target="_blank" href="https://krebsonsecurity.com/2012/06/how-to-break-into-security-ptacek-edition/">How to Break into Security - Thomas Ptacek</a></li>
</ul>
<p>Thank you for reading – and good luck!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ SQL Injection Attacks – How to Use SQLMap to Find Database Vulnerabilities ]]>
                </title>
                <description>
                    <![CDATA[ Databases are the backbone of any application. They give us a way to store and organize large amounts of data in a way that we can easily access, manage, and update it. From small businesses to large-scale enterprises, databases play a critical role ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-protect-against-sql-injection-attacks/</link>
                <guid isPermaLink="false">66d035e5c1024fe75b758f1c</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ database ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ penetration testing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ SQL ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Tue, 13 Dec 2022 00:40:15 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/12/Stealth-Security---Blog-Banner--27-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Databases are the backbone of any application. They give us a way to store and organize large amounts of data in a way that we can easily access, manage, and update it.</p>
<p>From small businesses to large-scale enterprises, databases play a critical role in keeping the systems up and running. Malicious actors always look to gain control of databases during cyberattacks.</p>
<p>In this article, you'll learn how attackers can gain control of databases and what you can do about it. </p>
<p><strong>Note that this article is for educational purposes only</strong>. If you do anything illegal and get in trouble, I'm not responsible. Always get permission from the site/system owner before scanning / brute-forcing / exploiting a system. </p>
<h2 id="heading-what-is-sql-injection">What is SQL Injection?</h2>
<p>SQL injection is a type of cyber attack in which an attacker inserts malicious code into an SQL statement. If successful, it will help the attacker gain access to sensitive data in a database. </p>
<p>Once the attacker takes control of the database, they can steal, modify or even delete the data.</p>
<p>Here are a few scenarios of SQL Injection.</p>
<ul>
<li>An attacker might insert a malicious piece of code into a login form. For example, if the login form expects the user to enter their username and password, the attacker might enter a username like admin’ OR ‘1’=’1. This will always evaluate to true and will allow the attacker to log in without knowing the actual password.</li>
<li>An attacker might insert a malicious piece of code into a search form. For example, if the search form expects the user to enter a keyword, the attacker can enter a keyword like ‘ OR ‘1’=’1. This will return all the records from the database, rather than the ones that match the keyword.</li>
<li>An attacker can insert a malicious piece of code into a form that allows users to update their information. For example, if the form expects the user to enter their phone number, the attacker might enter a phone number like ‘; DROP TABLE users; — ,. This will delete the entire users table from the database.</li>
</ul>
<p>These are just a few examples of SQL injection attacks. There are many other ways that attackers can use these techniques to gain access to a database. Databases that are not updated/maintained regularly will often be vulnerable to SQL injection attacks.</p>
<h2 id="heading-what-is-sql-map">What is SQL Map?</h2>
<p><a target="_blank" href="https://sqlmap.org/">SQLmap</a> is an open-source tool that automatically finds and exploits SQL injection vulnerabilities. We can use it to test web applications for SQL injection vulnerabilities and gain access to a vulnerable database.</p>
<p>SQLmap is a favorite tool among pen-testers for its ease of use and flexibility. It is written in Python and runs on Windows, Linux, and MacOS.</p>
<p>We can use SQLmap to perform a wide range of attacks. This includes database fingerprinting, data extraction, and even taking over an entire database. We can also use it to bypass login forms and execute arbitrary commands on the underlying operating system.</p>
<h2 id="heading-how-to-install-sqlmap">How to Install SQLMap</h2>
<p>SQLMap comes pre-installed in Kali Linux and Parrot OS. To install SQLMap in Ubuntu / Debian-based systems, use the apt package manager.</p>
<pre><code>apt install sqlmap
</code></pre><p>To install SQLMap on Mac, we can use <a target="_blank" href="https://brew.sh/">Homebrew</a>.</p>
<pre><code>brew install sqlmap
</code></pre><p>If you are using other platforms, you can <a target="_blank" href="https://sqlmap.org/">find the installation instructions here</a>.</p>
<p>Once installation is complete, we can check the help menu using the <code>-h</code> command. This will also be a handy reference when working with SQLMap.</p>
<pre><code>sqlmap -h
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-28.png" alt="Image" width="600" height="400" loading="lazy">
<em>SQLMap help menu</em></p>
<p>SQLMap also provides a detailed help menu. We can access it using the <code>-hh</code> command.</p>
<pre><code>sqlmap -hh
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-29.png" alt="Image" width="600" height="400" loading="lazy">
<em>SQLMap advanced help menu</em></p>
<p>Now that we have installed SQLMap, let's look at how to work with it.</p>
<h2 id="heading-how-to-use-sql-map"><strong>How to Use SQL Map</strong></h2>
<p>SQLMap is a tool used for the automated exploitation of SQL injection vulnerabilities. We can use SQLMap to test websites and databases for vulnerabilities and exploit those vulnerabilities to take over the database.</p>
<p>To use SQLMap, we first need to identify a website or database that is vulnerable to SQL injection. We can either do it manually or use SQLMap to scan the website. Once we have identified a vulnerable website or database, we can use SQLMap to exploit it.</p>
<p>Here is the basic SQLMap command:</p>
<pre><code>$ sqlmap -u [URL] -p [parameter] --dbs
</code></pre><p>This command will tell SQLMap to scan the specified URL and parameter for vulnerabilities. This includes exposing data, updating data, or even dumping the entire database.</p>
<p>The simplest way to check if a website is vulnerable to SQL injection is via query parameters. Let's assume a website lists user information using an id parameter – for example, testsite.com/page.php?id=1.</p>
<p>This can be passed as input to SQLMap and SQLMap will automatically scan the site to see if the database is vulnerable. Here is the command:</p>
<pre><code>sqlmap -u http:<span class="hljs-comment">//testsite.com/page.php?id=1 --dbs</span>
</code></pre><p>The <code>-u</code> flag is used to specify an URL and the <code>--dbs</code> command tells SQLMap to try to enumerate the database.</p>
<p>If the attack is successful, SQLMap will list the database used along with the list of tables.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-30.png" alt="Image" width="600" height="400" loading="lazy">
<em>SQLMap output</em></p>
<p>Once we have gained an initial foothold, we can now work with the database. Here is the command to list the tables in a database.</p>
<pre><code>sqlmap -u https:<span class="hljs-comment">//testsite.com/page.php?id=1 -D &lt;db_name&gt; --tables</span>
</code></pre><p>To list the column in a table, we can use this command:</p>
<pre><code>sqlmap -u https:<span class="hljs-comment">//testsite.com/page.php?id=7 -D &lt;database_name&gt; -T &lt;table_name&gt; --columns</span>
</code></pre><p>To dump an entire database, this is the command:</p>
<pre><code>sqlmap -u https:<span class="hljs-comment">//testsite.com/page.php?id=7 -D &lt;database_name&gt; --dump-all</span>
</code></pre><p>SQLMap provides many other useful commands like setting cookies, cycling user agents, and many others. For more information and a complete list of options, you can <a target="_blank" href="https://github.com/sqlmapproject/sqlmap/wiki/Introduction">refer to the SQLMap documentation</a>.</p>
<h2 id="heading-how-to-defend-against-sql-injection-attacks">How to Defend Against SQL Injection Attacks</h2>
<p>To prevent SQL injection attacks, we should follow these steps:</p>
<h3 id="heading-use-parameterized-queries">Use parameterized queries</h3>
<p>Always use parameterized queries when interacting with a database. This means that we should use placeholders in our SQL statements for any user input. We can then supply the input as a separate parameter when the query is executed. </p>
<p>This will prevent an attacker from being able to inject arbitrary SQL into our SQL statements.</p>
<h3 id="heading-never-trust-user-input">Never trust user input</h3>
<p>We should always check and sanitize any user input to ensure that it is safe. We must make sure the input does not contain any dangerous characters or malicious code. </p>
<p>This will help prevent an attacker from being able to inject SQL queries even if they are able to find a way to bypass our use of parameterized queries.</p>
<h3 id="heading-use-prepared-statements">Use prepared statements</h3>
<p>If the database supports prepared statements, we should use them instead of parameterized queries. </p>
<p>Prepared statements are pre-compiled SQL statements. We can execute these statements multiple times with different parameters. </p>
<p>This will make it more difficult for an attacker to inject malicious code since the prepared statements are pre-compiled.</p>
<h3 id="heading-authentication-and-access-controls">Authentication and access controls</h3>
<p>We should have strong authentication and access controls to our database. This will ensure that only authorized users are able to access our database and protects it from malicious actors.</p>
<h3 id="heading-monitoring-and-alerts">Monitoring and alerts</h3>
<p>Always watch your database for suspicious activity and set alerts. This includes failed login attempts or high numbers of SQL queries. </p>
<p>This can help us detect an SQL injection attack early on, and take appropriate action to stop it.</p>
<h2 id="heading-summary">Summary</h2>
<p>Databases are the backbone of every business. Updating, maintaining, and securing databases is essential to protect them from malicious actors. </p>
<p>SQLmap is a powerful tool that helps us audit database vulnerabilities. It is important for developers and security professionals to be familiar with SQLMap for defending against SQL injection attacks.</p>
<p><em>Loved this article? Join Stealth Security</em> <em><a target="_blank" href="https://stealthsecurity.io/">Weekly Newsletter</a> and get articles delivered to your inbox every Friday. You can also</em> <a target="_blank" href="https://www.linkedin.com/in/manishmshiva/"><em>connect with me</em></a> <em>on Linkedin.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Cyber Security Certifications – What Certs to Get for a Career in Infosec ]]>
                </title>
                <description>
                    <![CDATA[ By Megan Kaczanowski Certifications aren't strictly necessary in order to get hired as a cybersecurity analyst (with the notable exception of many government jobs). But they can help you demonstrate to an HR recruiter or hiring manager that you have ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/overview-of-cyber-security-certifications/</link>
                <guid isPermaLink="false">66d46065b3016bf139028d75</guid>
                
                    <category>
                        <![CDATA[ Certification ]]>
                    </category>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 13 Dec 2022 00:22:54 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/12/pexels-martijn-adegeest-633565.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Megan Kaczanowski</p>
<p>Certifications aren't strictly necessary in order to get hired as a cybersecurity analyst (with the notable exception of many government jobs). But they can help you demonstrate to an HR recruiter or hiring manager that you have a specific skillset via a third party's assessment of your skills.  </p>
<p>The process of studying for an exam can also help you to gain additional skills. I know that I find the prospect of an exam at the end of my studying to be an effective motivator! </p>
<p>Certifications can't take the place of on-the-job experience (and shouldn't). But they may be particularly helpful for folks coming into the field with a non-traditional background to demonstrate skills. </p>
<p>It can be overwhelming to sort your way through all of the possible certifications, so here's my suggestion for how to progress.*</p>
<h2 id="heading-certifications-if-youre-just-getting-started-in-cybersecurity">Certifications if you're just getting started in cybersecurity:</h2>
<h3 id="heading-securityhttpswwwcomptiaorgcertificationssecurity"><a target="_blank" href="https://www.comptia.org/certifications/security">Security+</a></h3>
<p>This is the best certification if you're new to cyber. It's an overview of a number of topics (almost like a shorter, simpler version of the CISSP) and studying for it will probably help you figure out what parts of cyber interest you.</p>
<ul>
<li>Pre-requisites: None</li>
<li>Cost: ~$400</li>
<li>Organization: CompTIA</li>
</ul>
<h3 id="heading-ceh">CEH</h3>
<p>I'm including a note about the CEH (Certified Ethical Hacker) exam here because I see it referenced pretty regularly. </p>
<p>Still, I don't recommend it because it isn't a well-respected technical certification for penetration testing. Also, in recent years there have been some concerns about how EC-Council (the organization which administers the exam) approaches sexism and racism within cyber, and about how often they update the technical information in their exams. I'm not a big fan of any of their certifications. </p>
<p>I'd advise Security+ for folks just getting started in cyber, and advise more specific penetration testing certs for folks more interested in that area.</p>
<h2 id="heading-certifications-if-youre-a-few-years-into-your-career">Certifications if you're a few years into your career...</h2>
<h3 id="heading-certified-information-systems-security-professional-cissphttpswwwisc2orgcertificationscissp"><a target="_blank" href="https://www.isc2.org/Certifications/CISSP">Certified Information Systems Security Professional (CISSP</a>)</h3>
<p>This is generally the most widely-recognized, broad certification within information security. If you're only going to get one certification, this is the one.</p>
<p>It's not particularly technical (it's technical for a management certification), but it's widely recognized by HR teams. It's an inch deep and a mile wide – a HUGE amount of information grouped into 8 domains:</p>
<ul>
<li>Domain 1. Security and Risk Management (15%)</li>
<li>Domain 2. Asset Security (10%)</li>
<li>Domain 3. Security Architecture and Engineering (13%)</li>
<li>Domain 4. Communication and Network Security (14%)</li>
<li>Domain 5. Identity and Access Management (IAM) (13%)</li>
<li>Domain 6. Security Assessment and Testing (12%)</li>
<li>Domain 7. Security Operations (13%)</li>
<li>Domain 8. Software Development Security (10%)</li>
</ul>
<p>It's tough, but do-able. How long it takes to study will likely depend on how long you've worked in information security.</p>
<ul>
<li>Pre-requisites: 5 years of work experience in two or more of the domains listed below (though if you don't have that, you can still pass the exam and have an 'Associate of ISC^2', giving you 6 years to gain the required 5 years of work experience.  You can also substitute some other certifications or a 4 year degree for a year of required work experience.)</li>
<li>Cost: ~$750</li>
<li>Organization: ISC^2</li>
</ul>
<p>For more details on this exam, I wrote a post on my experience taking it <a target="_blank" href="https://megansdoingfine.com/how-to-pass-the-cissp-exam-information-security-certification/">here.</a></p>
<h2 id="heading-next-steps-for-security-certifications">Next Steps for Security Certifications</h2>
<p>Once you have the two certs above, it's typically time to think about where in security you'd like to specialize, or what you'd like to focus on. </p>
<p>Which certifications you pursue past this point depends heavily on where you'd like your career to go.</p>
<h3 id="heading-cisahttpswwwisacaorgcredentialingcisa-certified-information-systems-auditor"><a target="_blank" href="https://www.isaca.org/credentialing/cisa">CISA</a>: Certified Information Systems Auditor</h3>
<p>If you're looking to move into auditing work, this is the certification to take (after your CISSP). It's tough, but not a particularly technical certification. This seems to be slightly less difficult than the CISSP exam.</p>
<ul>
<li>Pre-requisites: 5 years of work experience in systems auditing, control or security work (though if you don't have that, you can still pass the exam and have 5 years to gain the required work experience. You can also substitute a 2 or 4 year bachelor's degree for 1-2 years of experience, and a master's degree for a year of required work experience.)</li>
<li>Cost: ~$760</li>
<li>Organization: ISACA</li>
</ul>
<h3 id="heading-cismhttpswwwisacaorgcredentialingcism-certified-information-security-manager"><a target="_blank" href="https://www.isaca.org/credentialing/cism">CISM</a>: Certified Information Security Manager</h3>
<p>If you're interested in being a manager, this is a widely recognized certification, and a good follow up to the CISSP. It's tough, but not particularly technical. This seems to be slightly less difficult than the CISSP exam.</p>
<ul>
<li>Pre-requisites: 5 years of work experience in professional information security management (though if you don't have that, you can still pass the exam and have 5 years to gain the required work experience. You can also substitute several other certifications for a year or two of required work experience.)</li>
<li>Cost: ~$760</li>
<li>Organization: ISACA</li>
</ul>
<h3 id="heading-giac-certificationshttpswwwgiacorgcertificationssecurity-essentials-gsec"><a target="_blank" href="https://www.giac.org/certifications/security-essentials-gsec/">GIAC Certifications</a></h3>
<p>GIAC certifications are extremely well-regarded in the cyber security field, but they're also pretty expensive (not including the SANS course that often accompanies the exam). </p>
<p>Typically folks acquire them when their employer is willing to pay for the course + cert attempt. All of their courses are well regarded, but I'd advise starting with GSEC (Security Essentials) or GCIH (Certified Incident Handler). </p>
<p>There are GIAC certifications for pretty much any topic from Security Architecture to Forensics to Network Security. So depending on where you'd like your career to go, or which areas you're looking to upskill in, you can find a GIAC course/cert for that skill.</p>
<p>They vary in difficulty, but are generally regarded as pretty tough, technical certifications.</p>
<ul>
<li>Requirements: Most have no requirements</li>
<li>Cost: ~$2000</li>
<li>Organization: GIAC</li>
</ul>
<h3 id="heading-oscphttpswwwoffensive-securitycompwk-oscp"><a target="_blank" href="https://www.offensive-security.com/pwk-oscp/">OSCP</a></h3>
<p>This is the certification if you're looking to do penetration testing (though some folks start with the GIAC pen testing cert - GPEN - and then move onto OSCP). </p>
<p>It's tough, it's extremely technical, and it's the gold standard for getting into penetration testing. It is an entry level cert for highly skilled penetration testers, but it's a great place to start.</p>
<ul>
<li>Requirements: You have to take their penetration testing course before sitting for the exam</li>
<li>Cost: ~$1400</li>
<li>Organization: Offensive Security</li>
</ul>
<p>**The <a target="_blank" href="https://www.crest-approved.org/certification-careers/crest-certifications/crest-registered-penetration-tester/">CRT</a> is a roughly equivalent cert outside of the United States. If you've passed both the OSCP and the CREST Practitioner Security Analyst (CPSA) exam, you can apply for 'CRT equivalency'.</p>
<h3 id="heading-cloud-certifications">Cloud Certifications</h3>
<p>Cloud knowledge (and certifications) are in extremely high demand. They're a particular subset of vendor certifications which are becoming increasingly popular.</p>
<p>I'll cover AWS certs here, as they are the among most commonly requested certifications (as they're currently the most used cloud platform, followed by Azure, and then GCP). </p>
<p>There's also a large amount of overlap between the cloud platforms, as all three major providers have similar offerings and services and if you can build services on one, it's easier to do so on another. </p>
<h3 id="heading-awshttpsawsamazoncomcertification"><a target="_blank" href="https://aws.amazon.com/certification/">AWS</a></h3>
<p>None of AWS' certifications have any pre-requisites and all certifications are good for three years before requiring re-certification (re-taking the test, or taking a more advanced certification test). </p>
<p>That's different than the rest of the certs on this list which are typically good forever as long as you pay the maintenance fees and complete some continuing professional education credits (CPEs). </p>
<p>The cost is $100 for the Cloud Practitioner exam, $150 for Associate level exams, and $300 for Professional or Specialty exams.</p>
<p><strong>Cloud Practitioner</strong> - This is a good cert if you're working in a non-technical field, but work with technical folks often and you'd like to better understand what they're talking about! I don't recommend it for technical folks, as it's a relatively easy certification and won't demonstrate many technical skills.</p>
<p>While it's no longer a requirement to take one of the associate exams before pursuing a professional level certification, I'd still recommend doing so.</p>
<p><strong>Solutions Architect Associate</strong> - Designed for folks who want to understand how applications are structured in AWS and how various services work together. A solid all-around cert for folks in security. </p>
<p><strong>Developer Associate</strong> - Tests understanding of how a developer leverages AWS, with a heavy focus on their code pipeline and developer tools. Requires both conceptual knowledge and hands on knowledge of how to write code with AWS. A solid all-around cert for folks in security.</p>
<p><strong>SysOps Administrator Associate</strong> - Designed to focus on how a system administrator would use AWS - both a conceptual knowledge of the tools, and some understanding of the exact steps someone would take to carry out to administer servers in AWS. A solid all-around cert for folks in security.</p>
<p><strong>Solutions Architect Professional</strong> - A far more in-depth look at how various services work together and how you should architect infrastructure. It's a pretty tough, relatively technical exam. A solid all-around certification for folks in security.</p>
<p><strong>DevOps Engineer Professional</strong> - A combination of the knowledge required for both the SysOps Administrator and Developer Associate exams, but far more in depth. A useful cert for folks who need a pretty in-depth understanding of DevOps, but not strictly necessary for many security roles.</p>
<p><strong>Specialty: Advanced Networking, Data Analytics, Database, Machine Learning, Security, SAP on AWS</strong></p>
<p>These can be useful to demonstrate specific expertise with AWS services - the Security specialty cert is particularly useful in nearly any cybersecurity role.</p>
<h3 id="heading-vendor-certifications">Vendor Certifications</h3>
<p>Many vendors carry their own certifications, and they can be useful if they're a product you're likely to use often in your role (Splunk certifications, for example).</p>
<p>But you're probably already aware if you fall into this category, and they're generally less broadly applicable than the rest of the certifications on this list. </p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Before I close out, a brief note: while certifications can be useful, by the time you reach a certain point in your career, you'll see significantly diminishing returns from certifications (with a caveat that this may not apply to specific fields, like government agencies). This is largely because most of your demonstrated value will come with your on-the-job experience. </p>
<p>While certifications are designed to show that someone has a specific skill set, nothing shows that better than someone who can demonstrate they've actually leveraged that skill set/done the thing in the past.</p>
<p>*Of the certs on this list, I currently hold the CISSP and GPEN certs, as well as 4 AWS certifications and a few other third party certifications.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Gobuster Tutorial – How to Find Hidden Directories, Sub-Domains, and S3 Buckets ]]>
                </title>
                <description>
                    <![CDATA[ There’s much more to web servers and websites than what appears on the surface. The first step an attacker uses when attacking a website is to find the list of URLs and sub-domains. Web developers often expose sensitive files, URL paths, or even sub-... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/gobuster-tutorial-find-hidden-directories-sub-domains-and-s3-buckets/</link>
                <guid isPermaLink="false">66d035c5c1024fe75b758f16</guid>
                
                    <category>
                        <![CDATA[ Application Security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Security ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Mon, 05 Dec 2022 23:40:58 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/12/Stealth-Security---Blog-Banner--25-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>There’s much more to web servers and websites than what appears on the surface.</p>
<p>The first step an attacker uses when attacking a website is to find the list of URLs and sub-domains. Web developers often expose sensitive files, URL paths, or even sub-domains while building or maintaining a site.</p>
<p>This is a great attack vector for malicious actors.</p>
<p>For example, if you have an e-commerce website, you might have a sub-domain called “admin”. This might not be linked anywhere on the site but since the keyword “admin” is common, the URL is very easy to find. This is why you must often scan your websites to check for unprotected assets.</p>
<p>The usual approach is to rely on passive enumeration sites like <a target="_blank" href="http://crt.sh/">crt.sh</a> to find sub-domains. But these passive approaches are very limited and can often miss critical attack vectors.</p>
<p>Gobuster is a tool that helps you perform active scanning on web sites and applications. Attackers use it to find attack vectors and we can use it to defend ourselves.</p>
<p>In this article, we’ll learn to install and work with Gobuster. We will also look at the options provided by Gobuster in detail. Finally, we will learn how to defend against these types of brute-force attacks.</p>
<p>Note: <strong>All my articles are for educational purposes.</strong> If you use this information illegally and get into trouble, I am not responsible. Always get permission from the owner before scanning / brute-forcing / exploiting a system.</p>
<h2 id="heading-what-is-gobuster"><strong>What is Gobuster?</strong></h2>
<p>Written in the <a target="_blank" href="https://go.dev/">Go language</a>, Gobuster is an aggressive scanner that helps you find hidden Directories, URLs, Sub-Domains, and S3 Buckets seamlessly.</p>
<p>This is where people ask: <a target="_blank" href="https://blog.stealthsecurity.io/fuzzing-web-applications-using-ffuf-c4ad74190b72">What about Ffuf</a>?</p>
<p>Ffuf is a wonderful web fuzzer, but Gobuster is a faster and more flexible alternative. Gobuster also has support for extensions with which we can amplify its capabilities. Gobuster also can scale using multiple threads and perform parallel scans to speed up results.</p>
<h2 id="heading-how-to-install-gobuster"><strong>How to Install Gobuster</strong></h2>
<p>Let’s see how to install Gobuster. If you are using Kali or Parrot OS, Gobuster will be pre-installed.</p>
<p>If you are using Ubuntu or Debian-based OS, you can use <code>apt</code> to install Gobuster.</p>
<pre><code>$ apt install gobuster
</code></pre><p>To install Gobuster on Mac, you can use Homebrew.</p>
<pre><code>$ brew install gobuster
</code></pre><p>To install Gobuster on Windows and other versions of Linux, you can find the <a target="_blank" href="https://github.com/OJ/gobuster">installation instructions here</a>.</p>
<p>Once you have finished installing, you can check your installation using the help command.</p>
<pre><code>$ gobuster -h
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Gobuster help command</em></p>
<h2 id="heading-what-are-wordlists"><strong>What are Wordlists?</strong></h2>
<p>If you are new to wordlists, a wordlist is a list of commonly used terms. This can be a <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10-million-password-list-top-100.txt">password wordlist</a>, <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Usernames/Names/names.txt">username wordlist</a>, subdomain wordlist, and so on. You can find a lot of <a target="_blank" href="https://github.com/danielmiessler/SecLists">useful wordlists here</a>.</p>
<p>I would recommend downloading <a target="_blank" href="https://github.com/danielmiessler/SecLists">Seclists</a>. Seclists is a collection of multiple types of lists used during security assessments. This includes usernames, passwords, URLs, etc. If you are using Kali Linux, you can find seclists under /usr/share/wordlists.</p>
<p>To try Gobuster in real-time, you can either use your own website or use a practice web app like the <a target="_blank" href="https://github.com/digininja/DVWA">Damn Vulnerable Web app</a> (DVWA). DVWA is an intentionally misconfigured vulnerable web application that is used by pen testers for practicing web application attacks.</p>
<h2 id="heading-how-to-work-with-gobuster"><strong>How to Work with Gobuster</strong></h2>
<p>Now that we have installed Gobuster and the required wordlists, let’s start busting with Gobuster.</p>
<p>Note: I have DWVA running at 10.10.171.247 at port 80, so I ll be using that for the examples. Just replace that with your website URL or IP address. I'll also be using Kali linux as the attacking machine.</p>
<p>If you look at the help command, we can see that Gobuster has a few modes.</p>
<ol>
<li>dir — Directory enumeration mode.</li>
<li>dns — Subdomain enumeration mode.</li>
<li>fuzz — Fuzzing mode.</li>
<li>s3 — S3 enumeration mode.</li>
<li>vhost — Vhost enumeration mode.</li>
</ol>
<p>In this article, we will look at three modes: dir, dns, and s3 modes.</p>
<p>Each mode serves a unique purpose and helps us to brute force and find what we are looking for. Let's look at the three modes in detail.</p>
<h3 id="heading-how-to-use-directory-mode-dir">How to use directory mode (dir)</h3>
<p>Gobuster's directory mode helps us to look for hidden files and URL paths. This can include images, script files, and almost any file that is exposed to the internet.</p>
<p>Here is the command to run the dir mode:</p>
<pre><code>$ gobuster dir -u &lt;url&gt; -w &lt;wordlist&gt;
</code></pre><p>We can also use the help mode to find the additional flags that Gobuster provides with the dir mode.</p>
<pre><code>$ gobuster dir -h
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>Gobuster dir mode help</em></p>
<p>Now let’s try the dir mode. Here is the command to look for URLs with the common wordlist.</p>
<pre><code>$ gobuster dir -u <span class="hljs-number">10.10</span><span class="hljs-number">.171</span><span class="hljs-number">.247</span>:<span class="hljs-number">80</span> -w /usr/share/wordlists/dirb/common.txt
</code></pre><p>And here is the result. We can see that there are some exposed files in the DVWA website.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>dir enumeration results</em></p>
<p>If we want to look just for specific file extensions, we can use the -x flag. Here is a sample command to filter images:</p>
<pre><code>$ gobuster dir -u <span class="hljs-number">10.10</span><span class="hljs-number">.171</span><span class="hljs-number">.247</span>:<span class="hljs-number">80</span> -w /usr/share/wordlists/dirb/common.txt -x jpg,png,jpeg
</code></pre><h3 id="heading-how-to-use-dns-mode-dns">How to use DNS mode (dns)</h3>
<p>You can use DNS mode to find hidden subdomains in a target domain. For example, if you have a domain named mydomain.com, sub-domains like admin.mydomain.com, support.mydomain.com, and so on can be found using Gobuster.</p>
<p>Let’s start by looking at the help command for dns mode.</p>
<pre><code>$ gobuster dns -h
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-4.png" alt="Image" width="600" height="400" loading="lazy">
<em>Gobuster dns help</em></p>
<p>To execute a dns enumeration, we can use the following command:</p>
<pre><code>$ gobuster dns -d mydomain.com -w /usr/share/wordlists/dirb/common.txt
</code></pre><p>Since we can't enumerate IP addresses for sub-domains, we have to run this scan only on websites we own or the ones we have permission to scan.</p>
<pre><code>$gobuster s3 -h
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-5.png" alt="Image" width="600" height="400" loading="lazy">
<em>Gobuster S3 mode help</em></p>
<p>S3 mode was recently added to Gobuster and is a great tool to discover public S3 buckets. Since S3 buckets have unique names, they can be enumerated by using a specific wordlist.</p>
<p>For example, if we have a company named Acme, we can use a wordlist with acme-admin, acme-user, acme-images, and so on. This wordlist can then be fed into Gobuster to find if there are public buckets matching the bucket names in the wordlist.</p>
<p>Here is the command to execute an S3 enumeration using Gobuster:</p>
<pre><code>$gobuster s3 -w bucket_list.txt
</code></pre><h2 id="heading-how-to-defend-against-gobuster"><strong>How to Defend Against Gobuster</strong></h2>
<p>Gobuster is a remarkable tool that you can use to find hidden directories, URLs, sub-domains, and S3 Buckets.</p>
<p>But this enables malicious hackers to use it and attack your web application assets as well. So how do we defend against Gobuster?</p>
<p>You can use the following steps to prevent and stop brute-force attacks on your web application.</p>
<ol>
<li><strong>Audit yourself:</strong> Use Gobuster on your own applications and perform an audit. This will help you find the information that will be visible to the attackers.</li>
<li><strong>Apply security policies:</strong> To prevent resources like S3 from being exposed on the internet, use AWS bucket policies to prevent unauthorized access.</li>
<li><strong>Use bot protection solutions:</strong> Bot protection services like Cloudflare will stop any brute-force attacks making it incredibly difficult to attack your web application.</li>
</ol>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>Gobuster is a fast brute-force tool to discover hidden URLs, files, and directories within websites. This will help us to remove/secure hidden files and sensitive data.</p>
<p>Gobuster also helps in securing sub-domains and virtual hosts from being exposed to the internet. Overall, Gobsuter is a fantastic tool to help you reduce your application’s attack surface.</p>
<p><em>Loved this article? Join</em> <a target="_blank" href="https://tinyletter.com/stealthsecurity"><em>Stealth Security Weekly Newsletter</em></a> <em>and get articles delivered to your inbox every Friday. You can also</em> <a target="_blank" href="https://www.linkedin.com/in/manishmshiva/"><em>connect with me</em></a> _on Linked_I<em>n.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use Hydra  to Hack Passwords – Penetration Testing Tutorial ]]>
                </title>
                <description>
                    <![CDATA[ Hydra is a brute-forcing tool that helps penetration testers and ethical hackers crack the passwords of network services.  Hydra can perform rapid dictionary attacks against more than 50 protocols. This includes telnet, FTP, HTTP, HTTPS, SMB, databas... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-hydra-pentesting-tutorial/</link>
                <guid isPermaLink="false">66d035f112c679876b0602e0</guid>
                
                    <category>
                        <![CDATA[ Ethical Hacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ penetration testing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Fri, 18 Nov 2022 17:28:29 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/11/Stealth-Security---Blog-Banner--4-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Hydra is a brute-forcing tool that helps penetration testers and ethical hackers crack the passwords of network services. </p>
<p>Hydra can perform rapid dictionary attacks against more than 50 protocols. This includes telnet, FTP, HTTP, HTTPS, SMB, databases, and several other services.</p>
<p>Hydra was developed by the hacker group “<a target="_blank" href="https://www.thc.org/">The Hacker’s Choice</a>”. Hydra was first released in 2000 as a proof of concept tool that demonstrated how you can perform attacks on network logon services.</p>
<p>Hydra is also a parallelized login cracker. This means you can have more than one connection in parallel. Unlike in sequential brute-forcing, this reduces the time required to crack a password.</p>
<p><a target="_blank" href="https://www.freecodecamp.org/news/crack-passwords-using-john-the-ripper-pentesting-tutorial/">In my last article</a>, I explained another brute-force tool called <a target="_blank" href="https://stealthsecurity.io/cracking-passwords-using-john-the-ripper-977943d7ab38">John the Ripper</a>. Though John and Hydra are brute-force tools, John works offline while Hydra works online.</p>
<p>In this article, we will look at how Hydra works followed by a few real-world use cases.</p>
<blockquote>
<p><em>Note: All my articles are for educational purposes. If you use it illegally and get into trouble, I am not responsible. Always get permission from the owner before scanning / brute-forcing / exploiting a system.</em></p>
</blockquote>
<h1 id="heading-how-to-install-hydra">How to Install Hydra</h1>
<p>Hydra comes pre-installed with Kali Linux and Parrot OS. So if you are using one of them, you can start working with Hydra right away.</p>
<p>On Ubuntu, you can use the apt package manager to install it:</p>
<pre><code>$ apt install hydra
</code></pre><p>In Mac, you can find Hydra under Homebrew:</p>
<pre><code>$ brew install hydra
</code></pre><p>If you are using Windows, I would recommend using a virtual box and installing Linux. Personally, I don't recommend using Windows if you want to be a professional penetration tester.</p>
<h1 id="heading-how-to-work-with-hydra">How to Work with Hydra</h1>
<p>Let’s look at how to work with Hydra. We will go through the common formats and options that Hydra provides for brute-forcing usernames and passwords. This includes single username/password attacks, password spraying, and dictionary attacks.</p>
<p>If you have installed Hydra, you can start with the help command like this:</p>
<pre><code>$ hydra -h
</code></pre><p>This will give you the list of flags and options that you can use as a reference when working with Hydra.</p>
<p><img src="https://miro.medium.com/max/1400/1*8vU8A1khpqIpOElesAkl4A.png" alt="Image" width="600" height="400" loading="lazy">
<em>Hydra help command</em></p>
<h2 id="heading-how-to-perform-a-single-usernamepassword-attack-with-hydra"><strong>How to Perform a Single Username/Password Attack with Hydra</strong></h2>
<p>Let’s start with a simple attack. If we have the username and password that we expect a system to have, we can use Hydra to test it.</p>
<p>Here is the syntax:</p>
<pre><code>$ hydra -l &lt;username&gt; -p &lt;password&gt; &lt;server&gt; &lt;service&gt;
</code></pre><p>Let’s assume we have a user named “molly” with a password of “butterfly” hosted at 10.10.137.76. Here is how we can use Hydra to test the credentials for SSH:</p>
<pre><code>$ hydra -l molly -p butterfly <span class="hljs-number">10.10</span><span class="hljs-number">.137</span><span class="hljs-number">.76</span> ssh
</code></pre><p>If it works, here is what the result will look like:</p>
<p><img src="https://miro.medium.com/max/1400/1*8aNN3Hnbfd-ZqbqFUlfm3A.png" alt="Image" width="600" height="400" loading="lazy">
<em>Hydra single username and password</em></p>
<h2 id="heading-how-to-perform-a-password-spraying-attack-with-hydra"><strong>How to Perform a Password Spraying Attack with Hydra</strong></h2>
<p>What if we know a password that someone is using, but we are not sure who it is? We can use a password spray attack to determine the username.</p>
<p>A password spray attack is where we use a single password and run it against a number of users. If someone is using the password, Hydra will find the match for us.</p>
<p>This attack assumes we know a list of users in the system. For this example, we will create a file called users.txt with the following users:</p>
<pre><code>root
admin
user
molly
steve
richard
</code></pre><p>Now we are going to test who has the password “butterfly”. Here is how we can run a password spray attack using Hydra.</p>
<pre><code>$ hydra -L users.txt -p butterfly <span class="hljs-number">10.10</span><span class="hljs-number">.137</span><span class="hljs-number">.76</span> ssh
</code></pre><p>We will get a similar result to the following output if any of the users match with the given password. You should also notice that we have used the flag -L instead of -l. -l is for a single username and -L is for a list of usernames.</p>
<p><img src="https://miro.medium.com/max/1400/1*2ASFNBpuONPVC-YabYaDMQ.png" alt="Image" width="600" height="400" loading="lazy">
<em>Hydra password spraying</em></p>
<h2 id="heading-how-to-perform-a-dictionary-attack-with-hydra"><strong>How to Perform a Dictionary Attack with Hydra</strong></h2>
<p>Let’s look at how to perform a dictionary attack. In real-world scenarios, this is what we will be using Hydra regularly for.</p>
<p>A dictionary attack is where we have single/multiple usernames and we provide a password wordlist to Hydra. Hydra then tests all these passwords against every user in the list.</p>
<p>I am going to use the <a target="_blank" href="https://github.com/teamstealthsec/wordlists">Rockyou wordlist</a> for this example along with the users.txt file we created in the previous attack. If you are using Kali Linux, you can find the RockYou wordlist under /usr/share/wordlists/rockyou.txt.</p>
<p>Here is the command for a dictionary attack:</p>
<pre><code>$ hydra -L users.txt -P /usr/share/wordlists/rockyou.txt <span class="hljs-number">1010.137</span><span class="hljs-number">.76</span> ssh
</code></pre><p>If this attack is successful, we will see a similar result to the other two commands. Hydra will highlight the successful username/password combinations in green for all the matches.</p>
<h2 id="heading-how-to-use-the-verbosity-and-debugging-flags-in-hydra"><strong>How to Use the Verbosity and Debugging Flags in Hydra</strong></h2>
<p>Hydra can be awfully quiet when running large brute-force attacks. If we have to make sure Hydra is doing what it is expected to do, there are two flags we can use.</p>
<p>The verbosity (-v) flag will show us the login attempt for each username/password combination. This can be a bit much when there are a lot of combinations to go through, but if it is something you need, we can use the verbosity flag.</p>
<p>Here is a sample result. We can see that Hydra prints information about failed attempts in addition to the successful matches.</p>
<p><img src="https://miro.medium.com/max/1400/1*CRsDQ3dMnDyvx-D1X_QKug.png" alt="Image" width="600" height="400" loading="lazy">
<em>Hydra verbose mode</em></p>
<p>We can also use the debug (-d) flag to gather even more information. Here is the same result when using the debug flag:</p>
<p><img src="https://miro.medium.com/max/1400/1*xKUdCTic-qF2lVc9Q4w9LA.png" alt="Image" width="600" height="400" loading="lazy">
<em>Hydra debug mode</em></p>
<p>We can see that Hydra prints way more information than we need. We will only use debug mode rarely, but it is good to know that we have the option to watch every action Hydra takes when brute-forcing a service.</p>
<h2 id="heading-how-to-save-your-results-in-hydra"><strong>How to Save Your Results in Hydra</strong></h2>
<p>Let's look at how to save results. There is no point in spending hours cracking a password and losing it due to a system crash.</p>
<p>We can use the -o flag and specify a file name to save the result. Here is the syntax.</p>
<pre><code>$ hydra -l &lt;username&gt; -p &lt;password&gt; &lt;ip&gt; &lt;service&gt; -o &lt;file.txt&gt;
</code></pre><h3 id="heading-more-flags-and-formats">More flags and formats</h3>
<p>Hydra also offers a few additional flags and formats that will be useful for us as pen testers. Here are a few:</p>
<h4 id="heading-service-specification">Service specification</h4>
<p>Instead of specifying the service separately, we can use it with the IP address. For example, to brute force SSH, we can use the following command:</p>
<pre><code>$ hydra -l &lt;username&gt; -p &lt;password&gt; ssh:<span class="hljs-comment">//&lt;ip&gt;</span>
</code></pre><h4 id="heading-how-to-resume-attacks">How to resume attacks</h4>
<p>If Hydra’s session exits when an attack is in progress, we can resume the attack using the -R flag instead of starting from scratch.</p>
<pre><code>$ hydra -R
</code></pre><h4 id="heading-how-to-use-custom-ports">How to use custom ports</h4>
<p>Sometimes system administrators will change the default ports for service. For example, FTP can run in port 3000 instead of its default port 21. In those cases, we can specify ports using the -s flag.</p>
<pre><code>$ hydra -l &lt;username&gt; -p &lt;password&gt; &lt;ip&gt; &lt;service&gt; -s &lt;port&gt;
</code></pre><h4 id="heading-how-to-attack-multiple-hosts">How to attack multiple hosts</h4>
<p>What if we have multiple hosts to attack? Easy, we can use the -M flag. The files.txt will contain a list of IP addresses or hosts instead of a single IP address.</p>
<pre><code>$ hydra -l &lt;username&gt; -p &lt;password&gt; -M &lt;host_file.txt&gt; <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">service</span>&gt;</span></span>
</code></pre><h4 id="heading-targeted-combinations">Targeted combinations</h4>
<p>If we have a list of usernames and passwords, we can implement a dictionary attack. But if we have more information on which usernames are likely to have a set of passwords, we can prepare a custom list for Hydra.</p>
<p>For example, we can create a list of usernames and passwords separated by semicolons like the one below.</p>
<pre><code>username1:password1
<span class="hljs-attr">username2</span>:password2
<span class="hljs-attr">username3</span>:password3
</code></pre><p>We can then use the -C flag to tell Hydra to run these specific combinations instead of looping through all the users and passwords. This drastically reduces the time taken to complete a brute-force attack.</p>
<p>Here is the syntax.</p>
<pre><code>$ hydra -C &lt;combinations.txt&gt; &lt;ip&gt; &lt;service&gt;
</code></pre><p>We have seen how to work with Hydra in detail. Now you should be ready to perform real-world audits of network services like FTP, SSH, and Telnet.</p>
<p>But as a pen-tester, it is important to understand how to defend against these attacks. Remember, we are the good actors 😎.</p>
<h1 id="heading-how-to-defend-against-hydra">How to Defend Against Hydra</h1>
<p>The clear solution to help you defend against brute-force attacks is to set strong passwords. The stronger a password is, the harder it is to apply brute-force techniques.</p>
<p>We can also enforce password policies to change passwords every few weeks. Unfortunately, many individuals and businesses use the same passwords for years. This makes them easy targets for brute-force attacks.</p>
<p>Another way to prevent network-based brute-forcing is to limit authorization attempts. Brute-force attacks do not work if we lock accounts after a few failed login attempts. This is common in apps like Google and Facebook that lock your account if you fail a few login attempts.</p>
<p>Finally, tools like re-captcha can be a great way to prevent brute-force attacks. Automation tools like Hydra cannot solve captchas like a real human being.</p>
<h1 id="heading-summary">Summary</h1>
<p>Hydra is a fast and flexible network brute-forcing tool to attack services like SSH, and FTP. With a modular architecture and support for parallelization, Hydra can be extended to include new protocols and services easily. </p>
<p>Hydra is undoubtedly a powerful tool to have in your pen-testing toolkit.</p>
<p>Hope this article helped you to understand how Hydra works. If you have any questions, let me know in the comments. </p>
<p>You can <a target="_blank" href="https://www.linkedin.com/in/manishmshiva/">connect with me</a> or signup for the <a target="_blank" href="https://tinyletter.com/stealthsecurity">Stealth Security Newsletter</a>. If you really enjoyed the article, you can <a target="_blank" href="https://www.buymeacoffee.com/manishmshiva">buy me a coffee here</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Crack Passwords using John The Ripper – Pentesting Tutorial ]]>
                </title>
                <description>
                    <![CDATA[ If you are a pen-tester, cracking passwords is something you will be doing on a daily basis. This can include login passwords, file passwords, and almost anything that is protected using a password. John the Ripper (JtR) is a popular password-crackin... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/crack-passwords-using-john-the-ripper-pentesting-tutorial/</link>
                <guid isPermaLink="false">66d035b72b211a17e00e36d5</guid>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ penetration testing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Thu, 17 Nov 2022 18:13:08 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/11/john-the-ripper.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>If you are a pen-tester, cracking passwords is something you will be doing on a daily basis. This can include login passwords, file passwords, and almost anything that is protected using a password.</p>
<p>John the Ripper (JtR) is a popular password-cracking tool. John supports many encryption technologies for Windows and Unix systems (Mac included).</p>
<p>One remarkable feature of John is that it can autodetect the encryption for common formats. This will save you a lot of time in researching the hash formats and finding the correct tool to crack them.</p>
<p>John is also a dictionary-based tool. This means that it works with a dictionary of common passwords to compare it with the hash in hand. Here is a common password list called <a target="_blank" href="https://github.com/praetorian-inc/Hob0Rules/blob/master/wordlists/rockyou.txt.gz">rockyou.txt</a>.</p>
<p>While you can use popular wordlists like RockYou, John also has its own set of wordlists with thousands of common passwords. This makes John very effective when cracking systems with weak passwords.</p>
<p>This is how John works by default:</p>
<ul>
<li>recognize the hash type of the current hash</li>
<li>generate hashes on the fly for all the passwords in the dictionary</li>
<li>stop when a generated hash matches the current hash.</li>
</ul>
<p>This is not the only way John finds a password. You can also customize John based on your requirements. For example, you can specify the password format using the — — format flag.</p>
<p>In this article, we will first install John followed by a walkthrough of the different modes you can use. We will then use John to crack passwords for three different use cases — a Windows password, a Linux password, and a zip file password.</p>
<p>A <strong>quick disclaimer</strong> before we get started: do not use this tool for nefarious purposes. This is meant to be an educational tutorial to help you protect yourself and your clients or team from password attacks. Use this information responsibly and safely!</p>
<p>Let's get cracking.</p>
<h2 id="heading-how-to-install-john-the-ripper">How to Install John the Ripper</h2>
<p>If you are using Kali Linux, John is pre-installed. You can use John by typing the following command:</p>
<pre><code>$ john
</code></pre><p>For Ubuntu/Debian, you can get John from the apt source. Here is the command to install John in Ubuntu:</p>
<pre><code>$ apt install John
</code></pre><p>In Mac, you can find John in <a target="_blank" href="https://brew.sh/">Homebrew</a>:</p>
<pre><code>$ brew install john
</code></pre><p>For windows and other operating systems, you can <a target="_blank" href="https://www.openwall.com/john/">find the binaries here</a>.</p>
<p>Once you have installed John, try the help command to make sure your installation is working. The help command can also be used as a reference when working with John.</p>
<pre><code>$ john -h
</code></pre><p>Here is the output of the help command:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-89.png" alt="Image" width="600" height="400" loading="lazy">
<em>John help command</em></p>
<h2 id="heading-how-to-use-john-the-ripper">How to Use John the Ripper</h2>
<p>Now that we know what John is, let's look at the three modes it offers you. You will be using one of these three for most of your use cases.</p>
<ul>
<li>Single crack mode</li>
<li>Wordlist mode</li>
<li>Incremental mode</li>
</ul>
<p>Let’s look at each one of them in detail.</p>
<h3 id="heading-what-is-single-crack-mode">What is Single Crack Mode?</h3>
<p>In single-crack mode, John takes a string and generates variations of that string in order to generate a set of passwords. </p>
<p>For example, if our username is “stealth” and the password is “StEaLtH”, we can use the single mode of John to generate password variations (STEALTH, Stealth, STealth, and so on).</p>
<p>We use the “format” flag to specify the hash type and the “single” flag to let John know we want to use the single crack mode. We will also create a crack.txt file which will contain the username and the hash value of the password.</p>
<pre><code>stealth:d776dd32d662b8efbdf853837269bd725203c579
</code></pre><p>Now we can use the following command to use John’s single crack mode:</p>
<pre><code>$ john --single --format=raw-sha1 crack.txt
</code></pre><p>And here is the result. You can see that John has successfully found the correct password “StEaLtH”.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-90.png" alt="Image" width="600" height="400" loading="lazy">
<em>John single crack mode</em></p>
<p>That was fun, wasn't it? Now let’s look at the dictionary mode to crack more complicated passwords.</p>
<h3 id="heading-what-is-dictionary-mode">What is Dictionary Mode?</h3>
<p>In dictionary mode, we will provide John with a list of passwords. John will generate hashes for these on the fly and compare them with our password hash.</p>
<p>For this example, we will use the RockYou wordlist. If you are using Kali, you can find it at /usr/share/wordlists/rockyou.txt. We will also have a crack.txt file with just the password hash.</p>
<pre><code>edba955d0ea15fdef4f61726ef97e5af507430c0
</code></pre><p>Here is the command to run John in dictionary mode using the wordlist.</p>
<pre><code>$ john --wordlist=<span class="hljs-regexp">/usr/</span>share/wordlists/rockyou.txt --format=raw-sha1 crack.txt
</code></pre><p>And John finds the password pretty quickly.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-91.png" alt="Image" width="600" height="400" loading="lazy">
<em>John wordlist mode</em></p>
<p>The weaker the password is, the quicker John can figure it out. This is why it is always recommended to have strong passwords.</p>
<h3 id="heading-what-is-incremental-mode">What is Incremental Mode?</h3>
<p>Incremental mode is the most powerful mode provided by John. It tries all possible character combinations as passwords.</p>
<p>This sounds great, but there is a problem. The cracking can go on for a long time if the password is too long or if it's a combination of alphanumeric characters and symbols.</p>
<p>You will rarely use this mode unless you have no other option. In typical cases, a combination of Social Engineering attacks and wordlist mode will help you crack most of the hashes.</p>
<p>If you would like to try the incremental mode, here is the syntax.</p>
<pre><code>$ john -i:digits passwordfile.txt
</code></pre><p>Here, the -i flag tells John that we want to use the increment mode. The “digits” placeholder can be used to set the maximum number of digits in the password.</p>
<p>You can also add the “format” option to make it easier for John to start cracking.</p>
<h2 id="heading-use-cases-for-john-the-ripper">Use Cases for John the Ripper</h2>
<p>Now that you understand the different modes of John, let’s look at a few use cases.</p>
<p>We will use John to crack three types of hashes: a windows NTLM password, a Linux shadow password, and the password for a zip file.</p>
<h3 id="heading-how-to-crack-a-windows-password">How to Crack a Windows Password</h3>
<p>Let's start with Windows. In Windows, the password hashes are stored in the <a target="_blank" href="https://en.wikipedia.org/wiki/Security_Account_Manager">SAM database</a>. SAM uses the LM/NTLM hash format for passwords, so we will be using John to crack one.</p>
<p>Getting passwords from the SAM database is out of scope for this article, but let's assume you have acquired a password hash for a Windows user.</p>
<p>Here is the command to crack it:</p>
<pre><code>$ john --format=lm crack.txt
</code></pre><p>The crack.txt will contain the password hash. If John is unable to crack the password using its default wordlist, you can use the RockYou wordlist using the — — wordlist flag.</p>
<h3 id="heading-how-to-crack-a-linux-password">How to Crack a Linux Password</h3>
<p>Now, let's crack a Linux password. In Linux, there are two important files saved in the /etc folder: passwd and shadow.</p>
<ul>
<li>/etc/passwd -&gt; stores information like username, user id, login shell, and so on.</li>
<li>/etc/shadow -&gt; contains password hash, password expiry, and so on.</li>
</ul>
<p>In addition to the “john” command, John comes with a few other utilities. One of them is called “unshadow”.</p>
<p>The unshadow command combines the passwd and shadow files together into a single file. This can then be used by John to crack passwords.</p>
<p>Here is how we use the unshadow command:</p>
<pre><code>$ unshadow /etc/passwd /etc/shadow &gt; output.db
</code></pre><p>This command will combine the files together and create an output.db file. We can now crack the output.db file using John.</p>
<pre><code>$ john output.db
</code></pre><p>John tries to find the password for all the users in the passwd file and generates the output with the list of cracked passwords. Again, you can use custom wordlists via the  — — wordlist flag.</p>
<h3 id="heading-how-to-crack-a-zip-file-password">How to Crack a Zip File Password</h3>
<p>Finally, let's crack a zip file password. To do that, we first have to get the hash of the zip file’s password.</p>
<p>Like unshadow, John has another utility called zip2john. zip2john helps us to get the hash from zip files. If you are cracking a .rar file, you can use the rar2john utility.</p>
<p>Here is the syntax to get the password hash of a zip file:</p>
<pre><code>$ zip2john file.zip &gt; zip.hashes
</code></pre><p>The above command will get the hash from the zip file and store it in the zip.hashes file. You can then use John to crack the hash.</p>
<pre><code>$john zip.hashes
</code></pre><p>John also has several other functionalities that will help you crack a variety of passwords. You can find the <a target="_blank" href="https://www.openwall.com/john/doc/">complete documentation for John</a> here.</p>
<h2 id="heading-how-to-defend-against-password-attacks">How to Defend Against Password Attacks</h2>
<p>So far we have seen how to crack passwords with John the Ripper. But how do we defend against these types of brute-force attacks?</p>
<p>The simplest way to defend against password attacks is to set a strong password. The stronger the password is, the harder it is to crack.</p>
<p>The second step is to stop using the same passwords for multiple sites. If one site gets hacked, your password will be exposed to the internet. A hacker can then use the email/password combination to test your credentials across other sites. You can check <a target="_blank" href="https://haveibeenpwned.com/">if your password is on the internet</a> here.</p>
<p>The final step would be to generate random passwords and use a password manager. There are a variety of options including the Chrome built-in <a target="_blank" href="https://passwords.google.com/">Google password manager</a>. If you use a strong password for each site you use, it becomes extremely hard to crack your password.</p>
<h2 id="heading-summary">Summary</h2>
<p>John is a popular and powerful password-cracking tool. It is often used by both penetration testers and black hat hackers for its versatility and ease of use. </p>
<p>From automated hash discovery to dictionary-based attacks, John is a great tool to have in your pentesting toolkit.</p>
<p>Hope this article helped you to understand John the Ripper in detail. You can <a target="_blank" href="https://www.linkedin.com/in/manishmshiva/">connect with me here</a> or <a target="_blank" href="https://stealthsecurity.io/">visit my blog here</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Fuzz Web Applications using FFuf – Web Security Tutorial ]]>
                </title>
                <description>
                    <![CDATA[ Building strong authentication systems is crucial for web applications. Now that many businesses have a growing online presence, a malicious actor taking control of your website can be devastating. In this article, we will learn how to use Ffuf, a fa... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/web-security-fuzz-web-applications-using-ffuf/</link>
                <guid isPermaLink="false">66d03629ec0a2e1087e8242d</guid>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Security ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Thu, 10 Nov 2022 17:21:43 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/11/ffuf.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Building strong authentication systems is crucial for web applications. Now that many businesses have a growing online presence, a malicious actor taking control of your website can be devastating.</p>
<p>In this article, we will learn how to use Ffuf, a fast web fuzzer written in Go. You will learn how to fuzz your way to find directories and files and bypass the authentication of a website using ffuf. Then you'll learn how to defend against these types of attacks.</p>
<p>Remember – to protect yourself and your websites, it helps to know how an attacker would try to get in. That way, you can more effectively keep them out.</p>
<p><strong>Note:</strong> Before we dive into using ffuf, I would like to emphasize that this tutorial is only meant to help you defend yourself against fuzzing attacks. If you use this material for malicious purposes, I am not responsible.</p>
<h2 id="heading-what-is-ffuf">What is FFuf?</h2>
<p>Ffuf is a fuzzer written in the <a target="_blank" href="https://go.dev/">Go programming language</a>.</p>
<p>Ffuf belongs to the exploitation phase in the <a target="_blank" href="https://exploitable.manishmshiva.com/ethical-hacking-lifecycle-five-stages-of-a-penetration-test-c201e8e5bbf7">pentesting lifecycle</a>. It is also the fastest open-source fuzzing tool available in the market. </p>
<p>But before we start using Ffuf, let's understand what fuzzing is.</p>
<h2 id="heading-what-is-fuzzing">What is Fuzzing?</h2>
<p>Fuzzing is a method of sending malformed or abnormal data to a system in order to get it to misbehave in some way, which could lead to the discovery of vulnerabilities.</p>
<p>Finding hidden files, sending random data to forms, or even login attempts to web applications can be considered fuzzing.</p>
<p>Then you might be wondering “How is it different from Brute forcing?”.</p>
<p>Brute forcing can be considered a part of fuzzing. In brute force, the attacker uses valid data, for example, to check if a login attempt works. But with Fuzzing, they can send random data to break the expected behavior of a system.</p>
<p>For example, if you use a tool like Ffuf and load it with hundreds of username-password combinations to try on a website, it is fuzzing. And that’s exactly what we will do using Ffuf.</p>
<p>Make sure you have written permission if you are going to try this tool on a third-party website.</p>
<h2 id="heading-how-to-install-ffuf-and-wordlists">How to Install Ffuf and Wordlists</h2>
<p>Ffuf comes pre-packaged with the Kali Linux distribution. If you want to install Ffuf on your personal computer, <a target="_blank" href="http://ffuf.me/install">here are the instructions</a>. </p>
<p>Since Ffuf is written in the Go programming language, make sure you have the Go compiler installed in your system before trying to install Ffuf.</p>
<p>If you are new to wordlists, a wordlist is a list of commonly used terms. This can be a <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10-million-password-list-top-100.txt">password wordlist</a>, <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Usernames/Names/names.txt">username wordlist</a>, subdomain wordlist, and so on. You can find a lot of <a target="_blank" href="https://github.com/danielmiessler/SecLists">useful wordlists here</a>.</p>
<p>I would recommend downloading <a target="_blank" href="https://github.com/danielmiessler/SecLists">Seclists</a>. Seclists is a collection of multiple types of lists used during security assessments. This includes usernames, passwords, URLs, etc. If you are using Kali Linux, you can find seclists under /usr/share/wordlists.</p>
<p>To try this tool in real-time, you can either use your own website or use a practice web app like the <a target="_blank" href="https://github.com/digininja/DVWA">Damn Vulnerable Web app</a> (DVWA). DVWA is an intentionally misconfigured vulnerable web application that is used by pen testers for practicing web application attacks.</p>
<h2 id="heading-fuzzing-with-ffuf">Fuzzing with Ffuf</h2>
<p>Now that you understand what Fuzzing and Wordlists are, let's start using Ffuf.</p>
<p>We will use ffuf to fuzz the web application to discover directories, find usernames, enumerate virtual hosts, and even brute-force email/password combinations.</p>
<p>You can use the help command (-h) if you want to quickly look at the options provided by Ffuf. This is useful since you don't have to memorize all the options provided by Ffuf. </p>
<pre><code>ffuf -h
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-26.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Do remember that the URL (-u) and wordlist (-w) parameters are always required.</p>
<p>Note that I'll be using <a target="_blank" href="http://localhost:3000">http://localhost:3000</a> for my examples. If you setup your own web app or use an existing website, you have to replace “localhost:3000” with the ip address or the domain name of the website.</p>
<h3 id="heading-how-to-enumerate-urls-with-ffuf">How to Enumerate URLs with Ffuf</h3>
<p>Let's see how to find some URL paths.</p>
<p>Finding URLs is useful, especially if they are being hidden from being publicly indexed. We will use the <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/big.txt">web content wordlist</a> from seclists to fuzz the web app for hidden URLs.</p>
<p>You can use the following command to look for URLs:</p>
<pre><code>ffuf -u http:<span class="hljs-comment">//localhost:3000/FUZZ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/big.txt</span>
</code></pre><p>Here, the “FUZZ” keyword is used as a placeholder. Ffuf will try to hit the URL by replacing the word “FUZZ” with every word in the wordlist.</p>
<p>Here is what I found from the DVWA:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-27.png" alt="Image" width="600" height="400" loading="lazy">
<em>Result of looking for URLs</em></p>
<p>Interesting. You can see that we have found a few (possibly important) locations like /config, /docs, and /server-status.</p>
<p>If a real-world web app had pages that were not linked anywhere but used standard names, Ffuf would easily spot them.</p>
<h3 id="heading-how-to-enumerate-files-with-ffuf">How to Enumerate Files with Ffuf</h3>
<p>What if you want to look for specific files? Thankfully, Ffuf provides us with the extension option (-e) that we can use. We can tell Ffuf to look only for files that have certain extensions – in our case, .html,.php, and .txt.</p>
<p>We will be using the <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/raft-medium-words-lowercase.txt">raft-medium-words</a> wordlist for this. Here is the command to look for specific files:</p>
<pre><code>ffuf -u http:<span class="hljs-comment">//localhost:3000/FUZZ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/raft-medium-words-lowercase.txt -e .php,.html,.txt</span>
</code></pre><p>This command looks for all the files at the root of the domain with an extension of .html, .php, and .txt. Here is the result from DVWA:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-28.png" alt="Image" width="600" height="400" loading="lazy">
<em>Result of looking for specific files</em></p>
<p>We have found a long list of files. Even if some files are not served on the web app (403 status), we can learn that there are files, just that we cannot access them yet.</p>
<p>Let’s run the same command, but now, we will only look for files that are accessible to the public. We will use the match code (-mc) flag to only look for files with a status of 200.</p>
<p>Here is the command:</p>
<pre><code>ffuf -u http:<span class="hljs-comment">//localhost:3000/FUZZ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/raft-medium-words-lowercase.txt -e .php,.html,.txt -mc 200</span>
</code></pre><p>And here is the result.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-31.png" alt="Image" width="600" height="400" loading="lazy">
<em>Files accessible to the public</em></p>
<p>You can see that we have found a few files that we can access. The login.php looks interesting, and we will use it for bypassing authentication in the following sections.</p>
<h3 id="heading-how-to-enumerate-sub-domains-using-ffuf">How to Enumerate Sub Domains using Ffuf</h3>
<p>You can also look for sub-domains in a web app using Ffuf.</p>
<p>You might have guessed the approach that we are going to use. We will replace the subdomain of the URL with the word “FUZZ” and try looking for URLs that are up.</p>
<p>Since my web app is hosted on my local system, it does not contain any subdomains. But in the real world, if you want to enumerate subdomains, here is the command. You can use the <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Discovery/DNS/subdomains-top1million-5000.txt">sub domains wordlist</a> from seclists. </p>
<pre><code>ffuf -u http:<span class="hljs-comment">//FUZZ.mydomain.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt</span>
</code></pre><h3 id="heading-how-to-find-usernames-with-ffuf">How to Find Usernames with Ffuf</h3>
<p>Have you been annoyed when web applications don’t tell you whether you have the wrong username or password? They just tell you “This combination doesn’t work”.</p>
<p>This is to protect the web app from username/email fuzzing attacks. If authentication systems give you specific information about your login attempt, it gets easier for attackers to brute force and discover a list of usernames or emails.</p>
<p>Let’s assume that our web application tells you that you have the wrong username with the message “username does not exist”. We can use this error message to find valid usernames with the following command:</p>
<pre><code>ffuf -w /usr/share/SecLists/Usernames/top-usernames-shortlist.txt -X POST -d <span class="hljs-string">"username=FUZZ&amp;&amp;password=x"</span> -H <span class="hljs-string">"Content-Type: application/x-www-form-urlencoded"</span> -u http:<span class="hljs-comment">//mydomain.com/login -mr "username already exists"</span>
</code></pre><p>Here, we are sending POST requests to the login page, with the fuzzed usernames and a dummy password to check if the expected error message is returned. You can use a <a target="_blank" href="https://github.com/danielmiessler/SecLists/blob/master/Usernames/top-usernames-shortlist.txt">username wordlist</a> from seclists for fuzzing.</p>
<p>The -mr flag is used to match a regular expression. You can have complicated regular expressions or a simple string message to validate the requests.</p>
<p>Here is a sample response.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-32.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-brute-forcing-using-ffuf">Brute Forcing using Ffuf</h3>
<p>Now, let's do some brute forcing with Ffuf. We will try a bunch of common username/password combinations and see if anything works.</p>
<p>If the web application you are testing uses a combination of email and password, you can replace the username wordlist with a email wordlist.</p>
<p>So for this attack, we need two parameters: username and password. Also, we will be using two-word lists: as you guessed, a username wordlist and a password wordlist.</p>
<p>In addition the default placeholder <strong>FUZZ,</strong> Ffuf supports the use of variables. So we will use W1 for our username wordlist and W2 for the password wordlist.</p>
<p>Here is the command: </p>
<pre><code>ffuf -w usernames.txt:W1,<span class="hljs-regexp">/usr/</span>share/wordlists/SecLists/Passwords/Common-Credentials/<span class="hljs-number">10</span>-million-password-list-top<span class="hljs-number">-100.</span>txt:W2 -X POST -d <span class="hljs-string">"username=W1&amp;password=W2"</span> -H <span class="hljs-string">"Content-Type: application/x-www-form-urlencoded"</span> -u http:<span class="hljs-comment">//localhost:3000/login -fc 200</span>
</code></pre><p>If Ffuf finds any valid combinations, you will see the combination in the results. You can also filter by status codes (for examle filter 400 or look for 200) using the -fc or -mc flags to reduce the noise.</p>
<p>Here is a sample response.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-33.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>That was fun, wasn’t it? We can find a lot of interesting information about a web app without using a complicated tool like <a target="_blank" href="https://www.kali.org/tools/burpsuite/">Burpsuite</a>.</p>
<h2 id="heading-how-to-protect-your-site-from-fuzzing">How to Protect Your Site from Fuzzing</h2>
<p>But since we are not the malicious attackers, let’s look at how to defend against fuzzing.</p>
<p>The easiest way to protect your website from fuzzing attacks is to be careful about the type of files on the web server. If you don't want something to be found, don't put it on the web server.</p>
<p>To prevent authentication bypass, it is important not to allow multiple attempts to log in. Most modern websites don't allow more than 5 consecutive login attempts. It is more secure to ask your users to reset their passwords via email instead of letting them try multiple combinations.</p>
<p>You should also be careful about the error messages returned on failed attempts. Displaying that “Email does not exist” or “Password not correct” will let the hacker know that an email or username exists. This just makes their job easier.</p>
<p>Finally, you can use <a target="_blank" href="https://www.cloudflare.com/en-gb/learning/ddos/glossary/web-application-firewall-waf/">Web Application Firewalls</a> (WAF) to monitor traffic and block suspicious IP addresses. WAFs also have options to set alerts if it comes across brute forcing attempts on your authentication methods.</p>
<h2 id="heading-summary">Summary</h2>
<p>Ffuf is a great tool to have in your pentesting toolkit. It is a simple yet fast fuzzer that makes it easy to enumerate directories, discover virtual hosts, and brute-force web applications.</p>
<p>Ffuf also has more options that will help you to look for specific information. It has support for regular expressions, rate limiting of requests, and saving your results to a file.</p>
<p>Hope you enjoyed this article. You can <a target="_blank" href="https://www.linkedin.com/in/manishmshiva/">connect with me on Linkedin</a> or <a target="_blank" href="https://blog.manishmshiva.com/">read more articles on my blog</a>. I’ll see you soon with another article.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Build an Effective Cyber Tabletop Exercise ]]>
                </title>
                <description>
                    <![CDATA[ By Aaron Katz What is a cybersecurity tabletop exercise (TTX)? Cybersecurity breaches are resulting in an increasing number of losses ($4.2 million in 2021). So it's important to do as much as possible to prepare and train before experiencing a poten... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/build-an-effective-cyber-tabletop-exercise/</link>
                <guid isPermaLink="false">66d45d5b23b027d0ff16f2c6</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 02 Nov 2022 16:41:13 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/11/pexels-fauxels-3183197.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Aaron Katz</p>
<h2 id="heading-what-is-a-cybersecurity-tabletop-exercise-ttx">What is a cybersecurity tabletop exercise (TTX)?</h2>
<p>Cybersecurity breaches are resulting in an increasing number of losses (<a target="_blank" href="https://purplesec.us/resources/cyber-security-statistics/#Cybercrime">$4.2 million in 2021</a>). So it's important to do as much as possible to prepare and train before experiencing a potential incident yourself. </p>
<p>A cybersecurity tabletop exercise (TTX) is one of the best methods that you can use to exercise your incident response plan – short of experiencing a real incident.</p>
<p>In short, the TTX is designed to help assess the preparedness of your company to handle an incident. The exercise should reinforce a culture of learning and training – there are no failures during an exercise, just opportunities to iterate and refine processes.</p>
<h3 id="heading-main-benefits-of-a-cybersecurity-tabletop-exercise">Main Benefits of a Cybersecurity Tabletop Exercise</h3>
<ul>
<li>Develop a better understanding of the impact of a breach in a <em>cost-efficient</em> manner</li>
<li>Maintain a positive reputation through transparency and communication</li>
<li>Solidify roles and responsibilities and explore decision making processes</li>
<li>Assess the capabilities of your existing resources</li>
<li>Identify and address deficiencies in planning</li>
</ul>
<h2 id="heading-what-makes-a-tabletop-exercise-effective">What Makes a Tabletop Exercise Effective?</h2>
<p>Given that this exercise is a critical component of testing how prepared your company is to handle an incident, it is important to go into the exercise with <strong>clear objectives</strong>.  </p>
<p>The following components will help ensure that your exercise is as efficient as possible.</p>
<ol>
<li><strong>Have an incident response plan.</strong> Without an incident response plan, the exercise will likely be extremely chaotic, as you will be figuring out roles and responsibilities on the fly, without defined processes to follow. The goal is to test your plan, not create a new one!</li>
<li><strong>Perform risk analysis ahead of time</strong>. Unless the goal of the tabletop is to reinforce that a formal risk analysis is needed, it is important to have performed at least a cursory analysis to understand the key risks to the business. Why do they care about funding the security program? What do they care about protecting? What is the potential harm to the company if an adverse event occurs?</li>
<li><strong>Have clear objectives.</strong> Think of what you want to accomplish with this exercise – what <em>outcomes</em> are you looking for? You may have numerous scenarios testing various components of the business you want to run, but you might also have limited time with senior executives. Make sure you don't throw too many objectives into the exercise. Keep focused. <em>Develop the scenario only after you've decided what you want to get out of the exercise</em>.</li>
<li><strong>Get stakeholder/executive buy-in</strong>. To be successful, the exercise needs to be performed willingly with the intent to learn, not just to tick a checkbox for compliance. Executive leadership needs to be involved and willing to learn from the results, transforming the lessons learned into actionable changes within the company where appropriate.</li>
<li><strong>Strong facilitator.</strong> The facilitator needs to keep everyone on track, ensuring that all important points during each inject are covered. While open discussion is great, the facilitator needs to ensure that the conversation stays on point rather than going down various rabbit holes and tangents.</li>
</ol>
<h2 id="heading-how-does-a-ttx-generally-flow">How Does a TTX Generally Flow?</h2>
<p>The general flow of a cybersecurity tabletop exercise will walk participants through the process of an incident from inception until conclusion. There will be a focus on exploring the various decision points that come up during the process, ensuring that all participants understand who the key decision makers and stakeholders are in an incident. </p>
<p>The below diagram illustrates the various key components of the exercise itself, from planning to execution:</p>
<h3 id="heading-exercise-flow">Exercise Flow:</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-255.png" alt="Image" width="600" height="400" loading="lazy">
<em>Typical flow for a cybersecurity TTX</em></p>
<p>Let's go through each element in this flow:</p>
<h4 id="heading-building-valuable-objectives">Building valuable objectives</h4>
<p>It is important to identify key learning opportunities that stakeholders can take from the exercise (for example, "Does leadership know who is responsible for deciding whether to halt trading activity of our company's stock on the exchange?" or "Who makes the call to unplug a critical, revenue generating system.").  </p>
<p>Once these objectives are identified, it will be possible to inform the scenario's design. Example objectives could include:</p>
<ul>
<li>Test efficacy of out of band communication processes</li>
<li>Assess training gaps</li>
<li>Determine inconsistencies between the incident response plan and implemented processes</li>
<li>Evaluate current decision making processes</li>
</ul>
<h4 id="heading-who-needs-to-be-involved-in-the-exercise">Who needs to be involved in the exercise?</h4>
<p><strong>Participants</strong> should be actively involved in the exercise, taking part in the discussion and decision making process. It is important to involve a variety of stakeholders as appropriate for the scenario. </p>
<p>Typically, representatives of the following groups will be present:</p>
<ul>
<li>C-suite: CEO, CFO, COO, CIO, CTO, and so on.</li>
<li>Human Resources</li>
<li>Legal/CLO</li>
<li>Compliance and Privacy</li>
<li>Business unit leadership</li>
</ul>
<p>A <strong>facilitator</strong> is an internal or external resource who will walk participants through the scenario, the various injects, and control the flow of conversation.  </p>
<p>It is critical to keep everyone focused on the scenario and to ensure that participants don't fall down rabbit holes poking holes in the scenario or addressing unnecessary elements.</p>
<p>Note: Consider having a third party, such as an incident response forensics firm, take on this role as a primary or supporting facilitator.  They can provide broader background information on attacks they have observed and answer macro-level questions posed by executives.</p>
<p><strong>Outside agencies</strong> can include law enforcement, outside counsel, security forensics firms, or regulators.</p>
<p>Finally, you'll need a <strong>scribe</strong> to take notes of participant's reactions and decisions, lessons learned, what went well, and what did not.</p>
<h4 id="heading-what-types-of-exercise-formats-are-there">What types of exercise formats are there?</h4>
<p>There are generally two main forms an exercise can take: a <em>discussion</em> or <em>live-fire/wargame</em>. There is no right or wrong format. The type of exercise selected should match the participants and desired outcomes and objectives of the exercise itself.</p>
<p>A <strong>live-fire exercise</strong>, sometimes known as a wargame, is when an incident is simulated in real-time, requiring swift action by teams that may or may not be aware the event is taking place.  </p>
<p>This type of exercise is typically performed for the incident response team and the "boots on the ground" responders - for example, network, firewall, application, and database teams.  </p>
<p>This exercise is designed to measure how efficiently the company's people, process, and technologies will operate in an environment as close to a real incident as possible.</p>
<p>A <strong>discussion-based exercise</strong> will typically feature a presentation where general, high-level information is provided to the participants, who are typically a cross section of senior leaders across various business functions in the company. </p>
<p>Periodically, an <em>inject</em> will be used throughout the presentation. These are often meant to provide some new information or other type of curveball to the participants. Examples of an inject can be an internal memo, a media report, a phone call, or even a slide with further information.  </p>
<p>You should perform the following after each inject:</p>
<ul>
<li>Assess situation</li>
<li>Revalidate assumptions</li>
<li>Identify security and organizational implications</li>
<li>Develop a course of action</li>
<li>Review resources</li>
<li>Develop recommendations</li>
<li>Take actions to implement changes</li>
<li>Outputs – document the discussion, lessons learned, and so on.</li>
</ul>
<h4 id="heading-how-do-i-design-a-relevant-scenario">How do I design a relevant scenario?</h4>
<p>When building your scenarios, here are some example questions you can use to help structure your exercise:</p>
<ul>
<li>Who is the threat actor?</li>
<li>What is the threat actor's intent?</li>
<li>What threats are occurring against your industry? This can inform your scenario or various decision points.</li>
<li>How will the team handle and respond to the attack?</li>
<li>What external entities should be involved?</li>
<li>Will employees, customers, or regulators need to be informed?</li>
</ul>
<p>Make sure that each slide that conveys information has a timestamp to let the participants know how much time has elapsed between events.  The scenario should not include too many slides or injects – typically 2-4 injects and some for of media content should be sufficient, alongside the general information slides.</p>
<h4 id="heading-logistics">Logistics</h4>
<p>Discussion-based exercises work best when performed for approximately 3-4 hours, with the majority of participants physically located in the same room. </p>
<p>Prior to the exercise, the facilitator should have a list of key topics that should be explored for each slide and ensure that these are discussed throughout the exercise. Make sure to have coffee and snacks too 😊.</p>
<h5 id="heading-the-rules">The rules</h5>
<p>Make sure everyone understands the "rules" of the event. Suspend disbelief, no enemies, work together. </p>
<p>Provide rules both several days before as well as during the event. Include the IR plan. <strong>Do not fight the scenario!</strong></p>
<h3 id="heading-how-to-leverage-the-hot-wash-and-lessons-learned">How to leverage the "hot wash" and lessons learned</h3>
<p>A short review (the "hot wash") should occur immediately after the exercise (optionally with or without any third parties that may have been present) to review what went well and what could be improved while information is still fresh.  </p>
<p>Close out the session by asking each participant to name one takeaway they have from the event.</p>
<p>Over the next couple of weeks, review all notes and observations from the exercise and compile a list of lessons learned. Distill these into several themes that you can share with leadership, after which you can construct a plan to address these items.</p>
<p>Some example lessons can include:</p>
<ul>
<li>Create a "pocket runbook" so that individuals "on the ground" have a clear and concise set of instructions on what to do / not do during an incident</li>
<li>Establish authority for the incident commander</li>
<li>Implement an asset inventory system that takes into account systems, applications, critical suppliers, and critical personnel</li>
<li>Onboard an alternate communication system to allow for communicating with staff if core systems such as email and chat are inaccessible</li>
<li>Retain a crisis PR firm on retainer in the event of an incident and ensure executives undergo media communication training</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Well, that was a LOT of information. Hopefully you've learned quite a bit about how a tabletop exercise works, and how to build a valuable exercise.  </p>
<p>Here are some key takeaways to help ensure that you are building an effective tabletop:</p>
<ul>
<li>Establish clear objectives – what is the <em>desired</em> outcome after running this exercise? Use that to identify valuable objectives to achieve throughout the exercise.</li>
<li>Be engaging – slides can be dull. Never just read off the slides. Try to add some form of multimedia (like a fake news report about leaked data causing stock price to decline, a phone call from a journalist, and so on.) to break up the flow.</li>
<li>Action the lessons learned – Once you have consensus on the lessons learned, put together a roadmap and project plan for each item, along with an owner. The goal of the exercise is to produce actionable tasks that will improve the readiness of the company when responding to an incident while also mitigating the impact of any future incidents.</li>
</ul>
<p>Last, if you are looking for inspiration, be sure to check out CISA's <a target="_blank" href="https://www.cisa.gov/cisa-tabletop-exercise-packages">Tabletop Exercise Packages</a> for some ready to go templates!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How Can DevSecOps Improve Cloud Security? ]]>
                </title>
                <description>
                    <![CDATA[ By Andrej Kovacevic There’s no doubt that DevSecOps is on the rise, as the need for fast but highly secure application delivery increases. A report by Emergen Research shows that the DevSecOps market is set to reach a $23.42 billion value in 2028 wit... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-devsecops-can-improve-cloud-security/</link>
                <guid isPermaLink="false">66d45d9d052ad259f07e4a67</guid>
                
                    <category>
                        <![CDATA[ Application Security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Devops ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 26 Oct 2022 21:28:20 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/10/devsecops-role-guide.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Andrej Kovacevic</p>
<p>There’s no doubt that DevSecOps is on the rise, as the need for fast but highly secure application delivery increases.</p>
<p>A <a target="_blank" href="https://www.prnewswire.com/news-releases/devsecops-market-size-to-reach-usd-23-42-billion-in-2028--rising-need-for-repeatable-and-adaptive-processes-and-increasing-need-for-custom-code-security-are-key-factors-driving-industry-demand-says-emergen-research-301481508.html">report by Emergen Research</a> shows that the DevSecOps market is set to reach a $23.42 billion value in 2028 with a CAGR of 32.2 percent over the forecast period 2020-2028. </p>
<p>Notably, this growth does not only address the growing importance of security in rapid application development and delivery. It also has a significant positive impact on cloud security. </p>
<p>As organizations see increased use of cloud computing and SaaS applications, the adoption of DevSecOps is also becoming more appealing.</p>
<h2 id="heading-the-current-cloud-security-situation">The Current Cloud Security Situation</h2>
<p>A <a target="_blank" href="https://cloudsecurityalliance.org/blog/2022/05/02/the-state-of-data-security-in-2022">survey</a> on the state of cloud data security in 2022 conducted in partnership with Gartner shows that an overwhelming majority of organizations (over 90 percent) say they struggle with the enforcement of security policies around their data. This is because of various reasons, which add to cloud security difficulties.</p>
<p>Conventional solutions no longer cut it, and <a target="_blank" href="https://www.checkpoint.com/cyber-hub/cloud-security/what-is-cloud-security/">cloud security</a> needs to level up to match the different challenges brought about by growing cloud adoption and the complexities that come with it. </p>
<p>These challenges include the following:</p>
<h3 id="heading-visibility-and-tracking-inadequacies">Visibility and tracking inadequacies</h3>
<p>As organizations embrace Software-as-a-Service (SaaS) apps and the Infrastructure-as-a-Service (IaaS) model, they face the challenge of protecting data and assets that are usually beyond their control. </p>
<p>Typically, cloud service providers do not provide customers full control over the infrastructure layer. This produces a lack of visibility and control in the context of security.</p>
<h3 id="heading-broader-attack-surfaces">Broader attack surfaces</h3>
<p>Threat actors are particularly attracted to organizations that use the public cloud environment. It is relatively easy to attack with zero-day, malware, account takeover, and other attacks in the absence of reliable security solutions.</p>
<h3 id="heading-workload-changes">Workload changes</h3>
<p>The dynamic nature of cloud asset provisioning and decommissioning makes it difficult to protect them, especially when scaling and agility are involved.</p>
<h3 id="heading-complex-environments">Complex environments</h3>
<p>Hybrid and multi-cloud environments appear to be preferred by many organizations at present because of <a target="_blank" href="https://www.techradar.com/news/benefits-of-a-hybrid-multicloud-strategy">various advantages</a>. But this results in security management complexities and the need for security tools and solutions that seamlessly work with each other.</p>
<h3 id="heading-the-need-for-granular-privilege-and-key-management">The need for granular privilege and key management</h3>
<p>Because of the number of users that access cloud assets, it is not uncommon for access or privileges to be granted loosely. Extensive privileges are usually provided to avoid having to implement specific configurations for different users or user groups. </p>
<p>This can be problematic for security. With the use of SaaS apps, for example, when keys and privileges are given carelessly, sessions can be exposed to various security risks.</p>
<h3 id="heading-weakening-of-cloud-standards-compliance-benefits">Weakening of cloud standards compliance benefits</h3>
<p>The top cloud service providers notably advertise their compliance with various security accreditations or standards such as the NIST 800-53, PCI 3.2, and GDPR. But the benefits of compliance are diluted or almost entirely eroded because workload and data process management is usually relegated to customers (organizations). </p>
<p>Since most organizations have visibility and tracking difficulties, poor attack surface management capabilities, and the lack of granular privilege management, the security compliance of cloud providers do not necessarily benefit their customers.</p>
<h3 id="heading-the-rise-of-devops">The rise of DevOps</h3>
<p>Many organizations have shifted to DevOps as they seek to shorten the lifecycle of systems development and promote rapid and continuous app delivery. </p>
<p>This can impact cloud security, though, especially when there are security-related changes implemented post workload deployment.</p>
<h2 id="heading-how-devsecops-can-help">How DevSecOps Can Help</h2>
<p>As I explained above, it is not only the expansion of attack surfaces and security management complexities that come with cloud adoption that make cloud security more challenging. The increased adoption of DevOps practices also adds to the problem. This is where DevSecOps comes into play.</p>
<p>DevSecOps adds the crucial security component to DevOps and guides developers to embrace “security by design.” </p>
<p>It is a step-up from the previous shift-and-adopt strategy used in incremental cloud re-platforming. It involves an integrated team of multi-skilled specialists in the field of cloud and cybersecurity working together under a common operating paradigm. </p>
<p>Teams can establish a center of excellence (usually helmed by the organization's digital transformation point person) to take charge of the coordination of the cloud and cybersecurity specialists working together in the new development operating model.</p>
<p>DevSecOps ensures that flexible and agile practices do not disregard security, allowing development processes to proceed at the same pace an organization wants its business to move. </p>
<p>Teams can achieve this with an emphasis on shared responsibilities. Organizations nurture collaboration, cross-skilling, and cross-teaming to attain better outcomes. </p>
<p><a target="_blank" href="https://devops.com/devsecops-rethinking-and-reengineering-cloud-security/">Diana Kearns-Manolatos</a>, Senior Manager in Deloitte’s Center for Integrated Research, characterizes DevSecOps as “more than moving existing security processes earlier into the development process.” </p>
<p>DevSecOps entails the rethinking and rearchitecting of the way app design processes work. "It is about elevating, embedding, and evolving (your) organization’s risk response," Kearns-Manolatos adds.</p>
<p>To answer the question "What is DevSecOps’ role in cloud security?", teams need to incorporate security into the efficiency, rapidness, and continuousness thrust of DevOps. </p>
<p>Simply put, it is about quickly rolling out apps or software products that are already secure to help better manage the expansion of cyber attack surfaces.</p>
<p>Instead of having another team (the security team) undertake rigorous app security review, the apps can be deployed immediately. Tweaks and patching will still be needed eventually, but they will no longer be as exhausting as compared to deploying apps developed conventionally.</p>
<h2 id="heading-devsecops-in-practice-not-easy-but-very-doable">DevSecOps in Practice – Not Easy but Very Doable</h2>
<p>Embracing DevSecOps to achieve the quick, secure, and efficient rollout of applications or software products is not going to be a walk in the park. But it is not overly tricky to be restrictively achievable. </p>
<p>Organizations will face the need for process innovation and they'll need to rethink their cloud security and development operations.</p>
<p>One crucial factor in successfully adopting DevSecOps practices to improve development outcomes (especially in terms of security) is communication. </p>
<p>Teams need to properly communicate with each other to ascertain that everyone is on the same page during the development process. Real-time knowledge sharing is important and it may also be necessary to integrate <a target="_blank" href="https://www.techtarget.com/searchitoperations/definition/ChatOps">ChatOps</a>, automation, as well as artificial intelligence in the process. </p>
<h2 id="heading-final-thoughts">Final Thoughts</h2>
<p>DevSecOps and cloud security may appear unrelated or remotely connected concepts. But the former does have an impact on the latter. </p>
<p>DevSecOps will not address all cloud security issues or threats. But it can make DevOps-driven apps used on the cloud or in hybrid environments less vulnerable, and can limit means for threat actors to penetrate cyber defenses.</p>
<p>If you want to learn more about DevSecOps in depth, <a target="_blank" href="https://www.freecodecamp.org/news/what-is-devsecops/">check out this free article and course from freeCodeCamp</a>.</p>
<p><em>Image via Murrstock / Adobe Stock</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Wi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks ]]>
                </title>
                <description>
                    <![CDATA[ Welcome to the world of Wi-Fi hacking, everybody. 💻. In my previous article, we talked about some basic Linux skills and tricks. In this article you are going to learn a basic Wi-Fi hacking procedure using those skills. You'll learn things such as h... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/wi-fi-hacking-101/</link>
                <guid isPermaLink="false">66bb902ccaaeb78feb348949</guid>
                
                    <category>
                        <![CDATA[ Ethical Hacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ hacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ wifi ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Iwugo ]]>
                </dc:creator>
                <pubDate>Tue, 18 Oct 2022 20:37:37 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/10/image-74-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Welcome to the world of Wi-Fi hacking, everybody. 💻.</p>
<p>In my <a target="_blank" href="https://www.freecodecamp.org/news/linux-basics/">previous article</a>, we talked about some basic Linux skills and tricks. In this article you are going to learn a basic Wi-Fi hacking procedure using those skills.</p>
<p>You'll learn things such as how to:</p>
<ol>
<li>Monitor Wi-Fi networks around you</li>
<li>Perform a DOS attack</li>
<li>Protect yourself against Wi-Fi attacks</li>
</ol>
<p><strong>Disclaimer: This is strictly for educational purposes only (and, of course, for a little fun). Do not under any circumstances, conditions, or influence of unwise friends use the hacks you learn here on organisations, individuals, or your probably annoying neighbour. You would be committing a crime and you'll either be fined, sent to jail, or just get your parents embarrassed.</strong></p>
<p>And now that we have that lovely introduction out of the way, let’s proceed.🙃</p>
<h2 id="heading-what-well-cover">What We'll Cover:</h2>
<p>Here's a basic rundown of what this tutorial contains:</p>
<ol>
<li>Introduction</li>
<li>What is a Packet?</li>
<li>How to Crack WPA2<ul>
<li>Prerequisites</li>
<li>How to put the network card into monitor mode</li>
<li>How to look for the target</li>
<li>How to capture the handshake packets</li>
<li>How to perform a DOS attack</li>
<li>How to obtain the password (hopefully)</li>
</ul>
</li>
<li>Mitigations Against WiFi Attacks</li>
<li>Conclusion</li>
</ol>
<h2 id="heading-introduction">Introduction</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-75.png" alt="A router" width="600" height="400" loading="lazy">
<em>A router ¦ Credit: Unsplash.com</em></p>
<p>Wireless Fidelity (Wi-Fi) is a common technology many of us use in our daily lives. Wether it's at school, home, or simply bingeing Netflix, it’s increasingly rare to see anyone carry out Internet related activities without it. </p>
<p>But have you ever tried to hack Wi-Fi? 🤔 (I’m sure you’ve been tempted 😏).</p>
<p>In order to hack something, you need to know how it works. This means you need to understand how the tech works in the first place. So let’s start from the basics: The Packet.</p>
<h2 id="heading-what-is-a-packet">What is a Packet?</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-76.png" alt="A Basic Packet" width="600" height="400" loading="lazy">
<em>A Basic Packet. Credit: ResearchGate.com</em></p>
<p>A Packet is the basic unit/building block of data in a computer network. When data is transferred from one computer to another, it is broken down and sent in packets. </p>
<p>Think of packets like Lego building blocks. You (the computer) receive the complete set (the complete data) in pieces (packets) from the seller (another computer). You will then assemble the blocks together to build up the figure based on the instructions given in order to enjoy it (or in this case, for the whole data to make sense).</p>
<p>A packet, also known as a datagram, is made up of two basic parts:</p>
<ol>
<li>A Header</li>
<li>The Payload/Data</li>
</ol>
<p>The Header contains information about the packet. This helps the network and the receiving computer know what to do with it, such as the source and destination IP addresses. </p>
<p>The Payload is the main content the packet contains. It’s also worth mentioning that packets can be encrypted so that their data can't be read if gotten by an attacker.</p>
<p>In a network, packets are a requirement for packet switching. Packet switching means breaking down data into packets and sending them to various computers using different routes. When received, the computers can then assemble these packets to make sense of it all. The Internet is the largest known packet switching network on earth.</p>
<p>Now let's see how we can apply this knowledge to wireless networks.</p>
<h2 id="heading-how-to-crack-wpa2">How to Crack WPA2</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-77.png" alt="A bunch of random code" width="600" height="400" loading="lazy">
<em>A bunch of random code. Credit: Unsplash.com</em></p>
<p>Wi-Fi can use a number of various protocols to give you a secure internet connection. From the least to most secure, they are:</p>
<ol>
<li>Open</li>
<li>WEP (Wired Equivalent Privacy)</li>
<li>WPA2 (Wi-Fi Protected Access 2)</li>
<li>WPA3 (Wi-Fi Protected Access 3)</li>
</ol>
<p>An open network is pretty much as the name implies – open. It has no password and practically anyone can connect to it. </p>
<p>WEP is an old protocol, rarely in use and requires a password like its successors.</p>
<p>WPA2 is the most commonly used protocol around the world. WPA3 is a newest and the most secure protocol known till date. But it is rarely used and only available on newer devices.</p>
<h3 id="heading-prerequisites">Prerequisites</h3>
<p>Wi-Fi works by constantly sending packets of data to your authenticated device. In order to hack it, you’ll need:</p>
<ol>
<li>A Linux machine (Preferably Kali Linux)</li>
<li>A wireless adapter</li>
</ol>
<p>To install Kali from scratch, you can follow <a target="_blank" href="https://www.freecodecamp.org/news/how-to-install-kali-linux/">this tutorial</a>. </p>
<p>If you haven’t already, you’ll need to install a tool called Aircrack-ng on your machine. To install it, just type in the command below.</p>
<pre><code>sudo apt install aircrack-ng
</code></pre><h3 id="heading-how-to-put-the-network-card-into-monitor-mode">How to Put the Network Card into Monitor Mode</h3>
<p>You first want to get information about the target. This is what hackers call reconnaissance. </p>
<p>In order to do that you need to first change your wireless card from ‘managed’ mode to ‘monitor’ mode. This will turn it from a mere network card to a wireless network reader.</p>
<p>First you need to find out the name of your wireless card. Plug in your adapter and run the <code>iwconfig</code> command to find out. It’s usually the last one on the list.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-78.png" alt="iwconfig" width="600" height="400" loading="lazy">
<em>iwconfig. Credit: Daniel Iwugo</em></p>
<p>As you can see, mine is <code>wlan1</code>. Now run the following commands:</p>
<pre><code>sudo airmon-ng check rfkillsudo
airmon-ng start &lt;network interface&gt;
</code></pre><p><code>sudo</code> indicates the need for root privileges, <code>check rfkill</code> stops processes that could hinder the card from going into monitor mode, and <code>start</code> tells airmon-ng which network card to execute on. Replace the <code>&lt;network interface&gt;</code> with the name of your wireless card.</p>
<p><code>airmon-ng</code> is a script that instantly changes your card to monitor mode. You actually can do this manually or make a script of your own but I personally prefer something rather simple.</p>
<h3 id="heading-how-to-look-for-the-target">How to Look for the Target</h3>
<p>To see what networks are around you, run the following command:</p>
<pre><code>sudo airodump-ng &lt;network interface&gt;
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-81.png" alt="Airodump" width="600" height="400" loading="lazy">
<em>Airodump. Credit: Daniel Iwugo</em></p>
<p><code>airodump-ng</code> is a part of the <code>aircrack-ng</code> suite that allows a network card to view the wireless traffic around it.</p>
<p>As you can see we get a lot of information. But let's take a quick look at the ESSID (Extended Service Set Identifier) column. Also known as the AP (Access Point) name, this column shows the name of the target network, which in my case will be ‘Asteroid’.</p>
<p>You want to concentrate on the target AP and ignore the rest. To do this, press Ctrl+C to cancel the current scan and this time, append the bssid of the network with the bssid flag as shown below.</p>
<pre><code>sudo airodump-ng &lt;network interface&gt; --bssid &lt;AP&gt;
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-82.png" alt="Airodump in action" width="600" height="400" loading="lazy">
<em>Airodump in action. Credit: Daniel Iwugo</em></p>
<p>The BSSID stands for Basic Service Set Identifier, a fancy name for the MAC address of the device. You use it to identify the device on a network, along with the ESSID (Name of the AP). Technically, you could just use the ESSID flag instead but different APs could have the same name. However, no two APs can ever have the same BSSID.</p>
<p>Below is a code snippet of what you would type to get info about the AP using the ESSID only.</p>
<pre><code>sudo airodump-ng &lt;network interface&gt; --bssid &lt;AP ESSID&gt;
</code></pre><p>Note: If the name has a space, enclose it with quotes. For example, <code>--bssid “Asteroid 1”</code> .</p>
<p>You’ll notice I highlighted the MAC address of a client connected to the AP under the ‘Station’ column. To its left is the MAC address of the AP it is connected to.</p>
<h3 id="heading-how-to-capture-the-handshake-packets">How to Capture the Handshake Packets</h3>
<p>The next step is to capture the handshake packets (Remember packets? 👀). Handshake packets are the first four packets sent from the AP when an authenticated device connects to an AP. </p>
<p>This means we have two options:</p>
<ol>
<li>Wait for a device to connect to the AP</li>
<li>De-authenticate the device and then let it connect to the AP</li>
</ol>
<p>The second one sounds a lot more fun so let’s go for it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-83.png" alt="An LED keyboard" width="600" height="400" loading="lazy">
<em>An LED keyboard. Credit: Unsplash.com</em></p>
<h3 id="heading-how-to-perform-a-dos-attack">How to Perform a DOS Attack</h3>
<p>You can use <code>aireplay-ng</code> or <code>mdk4</code> to disconnect devices from APs for a time. This is called a de-authentication attack or a wireless DOS (Denial-Of-Service) attack.</p>
<p>Now here’s the game plan:</p>
<ol>
<li>Setup airodump-ng to capture packets and save them</li>
<li>De-authenticate the device for some time while airodump-ng is running</li>
<li>Capture the handshake</li>
</ol>
<p>Got all that? Good. Let’s roll. 👨‍💻👩‍💻</p>
<p>First, run the command to capture and save packets:</p>
<pre><code>sudo airodump-ng -c &lt;channel number&gt; --bssid &lt;AP BSSID&gt; &lt;network interface&gt; -w &lt;path for saved packets file&gt;
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-84.png" alt="Airodump capturing packets" width="600" height="400" loading="lazy">
<em>Airodump capturing packets. Credit: Daniel Iwugo</em></p>
<p>Here, we're using the <code>-c</code> flag to specify the channel to search, the <code>--bssid</code> flag for the MAC address of the AP, and the <code>-w</code> flag to give a path you want to save the captured packets to.</p>
<p>Quick lesson: Channels reduce the chances of APs interfering with each other. When running <code>airodump-ng</code>, you can identify the channel number under the CH column.</p>
<p>While that is running, you’re going to run your de-authentication attack against the device connected to it using the command:</p>
<pre><code>sudo aireplay-ng -a &lt;BSSID <span class="hljs-keyword">of</span> the AP&gt; --deauth &lt;time&gt; <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">network</span> <span class="hljs-attr">interface</span>&gt;</span></span>
</code></pre><p>The <code>-a</code> flag specifies the MAC address of the AP, <code>--deauth</code> specifies how long you want the attack to run in seconds, followed up by the network card.</p>
<p>A de-authentication attack involves using your own network card to send packets to interrupt communication between the AP and the client. It’s not perfect and sometimes the client may connect back, but only for a short time. </p>
<p>If your Wi-Fi is acting crazy and you seem to be disconnecting and connecting randomly back to it, you may be experiencing a de-authentication attack.</p>
<p>In the command above, you’re targeting the AP and running the attack. Note that you can instead attack any device connected to the AP and you should get the same result. All you need to do is to change the <code>-a</code> flag to the MAC address of any device connected.</p>
<p>While the DOS attack is underway, check on your airodump scan. You should see at the right top : <code>WPA handshake: &lt;mac address&gt;</code>. Once you have verified that, you can stop the replay attack and the <code>airodump-ng</code> scan.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-85.png" alt="Carrying out the replay attack to get the handshake" width="600" height="400" loading="lazy">
<em>Carrying out the replay attack to get the handshake. Credit: Daniel Iwugo</em></p>
<h3 id="heading-how-to-obtain-the-password-hopefully">How to Obtain the Password (Hopefully)</h3>
<p>In the final steps, you are going to run a bunch of generated Pairwise Master Keys (PMKs) against the captured packets to get the password. Let me break it down.</p>
<p>A PMK is basically an algorithmic combination of a word and the APs name. Our intention is to continuously generate PMKs using a wordlist against the handshake. If the PMK is valid, the word used to generate it is the <strong>password</strong>. If the PMK is not valid, it skips to the next word on the list.</p>
<p>I’m going to use the rockyou wordlist located in the <code>/usr/share/wordlists</code> directory. I think this is only found in Kali so if you have a different OS, you might make one of your own manually or generate one using <code>crunch</code>. </p>
<p>If it isn’t already extracted, just run the command:</p>
<pre><code>sudo gunzip /usr/share/wordlists/rockyou.txt.gz
</code></pre><p>Quick history lesson: The rockyou wordlist is a bunch of passwords gotten from one of the most infamous cybersecurity data breaches that affected a company of the same name. It contains approximately 14 million unique passwords that were used in over 32 million accounts and as such, is one of the most dependable wordlists on the planet.</p>
<p>Now run the command:</p>
<pre><code>sudo aircrack-ng &lt;captured file <span class="hljs-keyword">with</span> .cap&gt; -w &lt;path to wordlist&gt;
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-86.png" alt="Image" width="600" height="400" loading="lazy">
<em>Password cracking. Credit: Mercury</em></p>
<p>Alright, everyone – mission accomplished 😎.</p>
<p>The password was, well… ‘password’. Pretty disappointing from a security perspective, but I set this network up just for fun for the purposes of this tutorial. In reality, this could take minutes to hours depending on the length and strength of the password.</p>
<p>To clean up, simply remove the file captures, close your terminals, and run the command <code>service NetworkManager restart</code> to change your network card back to managed mode so you can connect to the Wi-Fi.</p>
<h2 id="heading-mitigations-against-wifi-attacks">Mitigations Against WiFi Attacks</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/image-87.png" alt="Image" width="600" height="400" loading="lazy">
<em>A basic personal workspace setup ¦ Credit: Wallpaperflare.com</em></p>
<p>Basic Wi-Fi security should cover this attack from a defensive perspective. Using WPA3 which is a newer protocol is your best bet against such an attack. To mitigate against de-authentication attacks, use an ethernet connection if possible.</p>
<p>Assuming that option is not on the table, you can use a strong passphrase (not a password) to minimise the attackers chances of getting it. A passphrase is a string of words simply used as a password. Passphrases tend to be longer than passwords, easier to remember, and are a rarer practice. Therefore, they will hardly be found in wordlists.</p>
<p>For example, ‘mercury’ is more likely to be found in a wordlist than ‘mercurylovespluto’. The later is a 15-character passphrase and as simple as it is, it would be hard for an attacker to find, guess, or generate.</p>
<p>Another mitigation would be to disable WPS (Wi-Fi Protected Setup) and avoid under any circumstance using a router that uses the WEP protocol. You’d just be asking for unwanted attention as it’s a lot easier to hack both of these than WPA2.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Let’s summarise what you’ve learned:</p>
<ol>
<li>Change the wireless adaptor to monitor mode using airmon-ng</li>
<li>Scan for the target AP using airodump-ng and capture the packets</li>
<li>Perform a DOS attack on the AP to get the handshake packets</li>
<li>End the DOS once you have verified you captured the necessary packet</li>
<li>Use aircrack-ng to generate PMKs to run against the handshake packets</li>
</ol>
<p>Sometimes, the password may not be in the wordlist. In that case, there are many other ways to get the password such as an Evil Twin Attack or variations of what you have learned here. I also encourage you to practice this and many other attacks you discover out there, as this helps make you a master hacker.</p>
<p>Remember, this is <strong>strictly for educational purposes</strong>. Only perform this on others with their consent, or on your own devices.</p>
<p>And with that, we have come to the end of this article. Hope you enjoyed it. And as I always say, Happy hacking! 🙃</p>
<h3 id="heading-resources">Resources</h3>
<ol>
<li><a target="_blank" href="https://www.javatpoint.com/handshake-theory">A little more explanation on the handshake theory</a></li>
<li><a target="_blank" href="https://www.cloudflare.com/learning/network-layer/what-is-a-packet/">More details on packets</a></li>
<li><a target="_blank" href="https://www.diffen.com/difference/WPA2_vs_WPA3">WPA2 vs WPA3</a></li>
</ol>
<h3 id="heading-acknowledgements">Acknowledgements</h3>
<p>Thanks to <a target="_blank" href="https://twitter.com/Anuoluwap__o?t=4Cv6VR2c2_wK5HLXwbvXCQ&amp;s=09">Anuoluwapo Victor</a>, <a target="_blank" href="https://www.linkedin.com/in/chinaza-nwukwa-22a256230/">Chinaza Nwukwa</a>, <a target="_blank" href="https://www.linkedin.com/in/mercy-holumidey-88a542232/">Holumidey Mercy</a>, <a target="_blank" href="https://www.linkedin.com/in/favour-ojo-906883199/">Favour Ojo</a>, <a target="_blank" href="https://www.linkedin.com/in/georgina-awani-254974233/">Georgina Awani</a>, and my family for the inspiration, support and knowledge used to put this post together. You’re my unsung heroes.</p>
<p>Cover photo credit: Lego Gentlemen working on a router from Wallpaperflare.com</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Recognize a Phishing Email – And What to Do When You Get One ]]>
                </title>
                <description>
                    <![CDATA[ You know the drill: you open your email client and there is it an email saying that you will be in trouble if you do not follow certain instructions in short time, no questions asked. All it takes is a single click, and you're in trouble. This kind o... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-recognize-phishing-email/</link>
                <guid isPermaLink="false">66d85143ec0a9800d5b8e6e8</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                    <category>
                        <![CDATA[ phishing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jose Vicente Nunez ]]>
                </dc:creator>
                <pubDate>Wed, 12 Oct 2022 00:52:32 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1725458523382/ab4b959e-8c84-4e48-88a5-bbc716255d1b.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>You know the drill: you open your email client and there is it an email saying that you will be in trouble if you do not follow certain instructions in short time, no questions asked.</p>
<p>All it takes is a single click, and you're in trouble.</p>
<p>This kind of email has a very <a target="_blank" href="https://www.phishing.org/what-is-phishing">clear definition</a>:</p>
<blockquote>
<p><a target="_blank" href="https://www.knowbe4.com/phishing?hsLang=en">Phishing</a> is a <a target="_blank" href="https://www.merriam-webster.com/dictionary/cybercrime">cybercrime</a> in which a target or targets are contacted by email, telephone or text message by someone posing as a legitimate institution to lure individuals into providing sensitive data such as personally identifiable information, banking and credit card details, and passwords.</p>
</blockquote>
<p>In this article, I'll explain what phishing is and how to recognize the signs that an email may not be legit. For that, we will learn to do the following:</p>
<ul>
<li><p>Recognize some obvious flags of a phishing email</p>
</li>
<li><p>Use some command tools on Linux to carefully inspect suspicious links</p>
</li>
<li><p>Analyze the suspicious emails with several free online tools</p>
</li>
</ul>
<p>All this while having some fun.</p>
<h2 id="heading-example-of-a-phishing-email">Example of a Phishing Email</h2>
<p>Let me share a quite clever example email (some details have been changed to protect the innocent):</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/godaddy_phishing_emails.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Phishing email pretending to be GoDaddy</em></p>
<p>Let me show you how you can quickly spot scammers, without using a single line of code</p>
<p>You will need the following to go through some of the steps of this tutorial:</p>
<ul>
<li><p>A Linux installation, with <a target="_blank" href="https://curl.se/">curl</a> installed.</p>
</li>
<li><p>A Web browser (Brave or Firefox are good choices)</p>
</li>
<li><p><strong>Curiosity</strong></p>
</li>
</ul>
<p>Now let's move on and see what we've got in our mailbox...</p>
<h2 id="heading-common-sense-phishing-red-flags">Common Sense Phishing Red Flags</h2>
<p>Right out of the box, this email violates two simple rules, despite having proper grammar and nice presentation:</p>
<p>First, of all, it <strong>forces you to act immediately to fix an issue</strong> (Urgent action required), <strong>no questions asked</strong> (Click the nice button).</p>
<p>To make it worse, there's no way to verify that the person contacting you really works for the company. Reputable companies ask you to log into their website and offer a case # so you can track the issue. Neither of those are here.</p>
<p>Second, despite their best efforts, <strong>scammers make qualitative mistakes</strong>. Do you see that <em>customer #</em> on the upper right part of the screenshot? I compared it to mine on the real website and guess what? It's a different number.</p>
<p>But where is the fun of analyzing this if we cannot do even a little bit of poking? Well, when I moved my mouse over the button image I could see the link and it was pointing to tiny URL (an URL shortening service):</p>
<pre><code class="lang-python">https://tinyurl.com/xszszasxdxdxdxdxdxdxdzs?a=xxx@xxxx.com
</code></pre>
<p>So whoever is doing this is trying to conceal the real URL. No problem, copy the URL address (<strong>never click it</strong>), change the email part of the GET request to some garbage (?a=xxx@xxx.com)) and then run it through curl. I got this:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">table</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"75%"</span> <span class="hljs-attr">bgcolor</span>=<span class="hljs-string">"#FFFFFF"</span> <span class="hljs-attr">align</span>=<span class="hljs-string">"center"</span> <span class="hljs-attr">cellpadding</span>=<span class="hljs-string">"10"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>
                <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>URL Terminated<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
                <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>
                    The TinyURL (xszszasxdxdxdxdxdxdxdzs) you visited was used by its creator in violation of our terms of use.
                    TinyURL has a strict no abuse policy and we apologize for the intrusion this user has caused you.
                    Such violations of our terms of use include:
                <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
                <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
                    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Spam - Unsolicited Bulk E-mail<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
                    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Fraud or Money Making scams<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
                    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Malware<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
                    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>or any other use that is illegal.<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
                <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
                <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<p>So the good people from Tiny URL noticed this too and terminated the URL. Nice work!</p>
<p><a target="_blank" href="https://asciinema.org/a/526911"><img src="https://asciinema.org/a/526911.svg" alt="asciicast" width="2425.91999904" height="746.6664800000001" loading="lazy"></a></p>
<p>Let's use other tools to confirm what we know already.</p>
<h2 id="heading-online-tools-you-can-use-to-analyze-suspicious-urls">Online Tools You Can Use to Analyze Suspicious URLs</h2>
<p>Tiny URL was nice enough to tell us about the original URL:</p>
<pre><code class="lang-text">https://parasolhealth.org/resources/sass/hgjhgbgb/%20hxghxhgcgzvzvhgxvgzhxgvvgvcgvhgvjhvxhgvzhgvshgvhgvhgvhgwvhgwvhgwvhgwvhgvhgvdshvshgvhgvhgdvhgdsvhgdvhjgdvjhdgdvhgfvhgvf/vhgvjhgvghgvghvhgvghvhgvjlnkjndkjdkjdhbgytdvghdvhvshgvshgvjsvhvahgvhvwgvhwvhvajgvsgshgvhsgvjhsvgavjgvsgvahgvahgvhgsvjgavhgsvhgsvhjvshgvahgvsjvshgvajvshvhgwvhgvehgvehgvehjvegvejhgvhgavhavhs/dhbjhjfhjfkbkjfhbjkbfjbjdbkjbsjhbdjbjkdbhbdjkbjdbjdbjhbdkjbsjbjkdbjkdhbjdbjbsjhbsjbjdkbjhdbkjhbdkjbsbdjbjdbkjhbjhbsjkhbdjbjdbjdbjhsbjhbejhbejhbjwhbjhwbjkwhbjbhbs/jdbhdhdbkjbsjbsjbwjbjwbjkbwhbehbjhbejbebebjebjbejbjhbsjhbshbahbjhsbshbjkhdbjhbjhbdbdjkbdhbjhsbjhbajhbsjbkjshbhbdjhbjdhbjkbshbsjhbsjbdbdhbdhbjehbjhebjhbrrhbjbjekhbjhbjsbjhsbjhbdjhd/jbdjhbdkjbdjhbkjabjhbsjbdjbksjbhsbjhdbjhbjkbdjhbjhbkjbejhbwkhbjkwhbjhwbjkwhbjhwbjhbwhbwkjhbwjhbjhbajhbajhbsjhbsjhbdjkhbdjhbdjhbjdhbjshbjhsbjhbjhsbkjhbdjhbsjbjabjhabjkbs/redirect.php
</code></pre>
<p>If you go to the Virus Total website and search for the URL you will see that this <a target="_blank" href="https://www.virustotal.com/gui/url/1a5a1a3385c2d6c2c76b0ca721138ba9eeae7b8a12cc6e28c206216c103c3fc3?nocache=1">was also reported here</a>:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/10/godaddy_virustotal_malicious.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Interestingly enough, only a single vendor reported the URL as malicious. That will do it for me :-)</p>
<p>Also <a target="_blank" href="https://www.abuseipdb.com/report?ip=66.85.143.2">Abuse IP DB</a> doesn't know anything about the offending website. However keep this tool around as it is known to reports multiple other actors.</p>
<p>There is anything else we can learn from the original message? Most email readers allow you to copy and paste the email headers. I'm sharing mine here (with a few changes):</p>
<pre><code class="lang-text">Received: from MN2PR19MB4030.namprd19.prod.outlook.com (2603:10b6:208:1e8::11)
 by MW3PR19MB4204.namprd19.prod.outlook.com with HTTPS; Tue, 4 Oct 2022
 16:35:05 +0000
Received: from BN9PR03CA0959.namprd03.prod.outlook.com (2603:10b6:408:108::34)
 by MN2PR19MB4030.namprd19.prod.outlook.com (2603:10b6:208:1e8::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.31; Tue, 4 Oct
 2022 16:35:01 +0000
Received: from BN7NAM10FT104.eop-nam10.prod.protection.outlook.com
 (2603:10b6:408:108:cafe::cc) by BN9PR03CA0959.outlook.office365.com
 (2603:10b6:408:108::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24 via Frontend
 Transport; Tue, 4 Oct 2022 16:34:59 +0000
Authentication-Results: spf=softfail (sender IP is 170.10.162.128)
 smtp.mailfrom=bounce.com; dkim=none (message not signed)
 header.d=none;dmarc=fail action=oreject header.from=godaddy.com;compauth=fail
 reason=000
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
 bounce.com discourages use of 170.10.162.128 as permitted sender)
Received: from host.solutiononellc.com (170.10.162.128) by
 BN7NAM10FT104.mail.protection.outlook.com (10.13.157.118) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.5676.17 via Frontend Transport; Tue, 4 Oct 2022 16:34:59 +0000
Received: from ip250.ip-37-187-205.eu ([37.187.205.250]:38823)
    by altar47.supremepanel47.com with esmtpsa  (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    (Exim 4.95)
    (envelope-from &lt;postmaster@bounce.com&gt;)
    id 1ofksk-0005Zd-LV
    for xxx@xxxx.com;
    Tue, 04 Oct 2022 16:34:58 +0000

Using [MXToolbox](https://mxtoolbox.com/Public/Tools/EmailHeaders.aspx?huid=4205dc8f-5147-4da5-a448-d633f2bbca61) shows that 2 of the email addresses used in the chain are **blacklisted**, another red flag.

![Image](https://www.freecodecamp.org/news/content/images/2022/10/godaddy_scammer_mxtoolbox.png)
_2 blocked emails from this list. Another read flag_

I think that's good enough. Delete the email and move on with your life, and be sure a new email is coming your way (hopefully landing in the SPAM folder automatically).

## What's Next?

There are many tools on the Internet you can use to identify phishing emails, but there is no substitute for common sense. It if looks too good to be true then it probably is.

As usual, do not click the link right away! Do a little investigating first, just to be safe.
</code></pre>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is Hacking? The Hacker Methodology Explained ]]>
                </title>
                <description>
                    <![CDATA[ Time to learn the basics of the splendid art of hacking 👨‍💻👩‍💻.  In this article, you will learn what the hacking process really looks like. And hopefully one day, you'll get to say those famous words: “I’m in”. Disclaimer: This is for educationa... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-hacking/</link>
                <guid isPermaLink="false">66bb90240eaca026d8cfa5de</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ethical Hacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ hacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ information security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #infosec ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Iwugo ]]>
                </dc:creator>
                <pubDate>Thu, 22 Sep 2022 15:21:49 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/09/hacker-methodology-image.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Time to learn the basics of the splendid art of hacking 👨‍💻👩‍💻. </p>
<p>In this article, you will learn what the hacking process really looks like. And hopefully one day, you'll get to say those famous words: “I’m in”.</p>
<p><strong>Disclaimer: This is for educational purposes only.</strong> Please (with a cherry on top), do not use this knowledge to perform illegal activities. I might be one of the white hats to put you in jail someday 🙃. Thank you.</p>
<h2 id="heading-how-do-hackers-hack">How do Hackers Hack?</h2>
<p><img src="https://miro.medium.com/max/1050/1*jHEa9VlHhb1cRF0szm_HRw.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>Tony Stark attempting to hack S.H.E.I.L.D | Credit: animatedtimes.com</em></p>
<p>Since you are reading this article, I’ll assume that you already know the basics of what hacking is, so let's jump right in. </p>
<p>There really is no general agreed upon process of hacking, in part because there are a few different <a target="_blank" href="https://www.freecodecamp.org/news/white-hat-black-hat-red-hat-hackers/">types of hackers</a>. But, I will tell you the steps the majority of hackers (and I myself) follow. </p>
<p>They are:</p>
<ol>
<li>Reconnaissance</li>
<li>Enumeration</li>
<li>Exploitation</li>
<li>Privilege Escalation</li>
<li>Post Exploitation</li>
<li>Covering Tracks</li>
<li>Report Writing</li>
</ol>
<p>We'll go through each one in detail so you get a good feel for the process.</p>
<p>If you want to dive deeper and learn more about what white hat (ethical) hackers do, <a target="_blank" href="https://www.freecodecamp.org/news/linux-essentials-for-hackers/">check out this course</a>.</p>
<h2 id="heading-reconnaissance">Reconnaissance</h2>
<p><img src="https://miro.medium.com/max/1050/1*r4786dLhJKeD4X9Eh-tqdg.jpeg" alt="A neon themed hollywood hacker" width="600" height="400" loading="lazy">
<em>A neon themed hollywood hacker | Credit: Wallpaperflare.com</em></p>
<p>Recon (aka footprinting) is the first, longest, and most important step. This entails getting as much information as you can about the target without interacting directly with the target. </p>
<p>Basic OSINT (Open Source Intelligence) skills are a hacker's best friend here.</p>
<p>Quick lesson: OSINT is the collection and analysis of information from public sources in order to gain actionable intelligence. National security agencies, investigative journalists, and hackers legally gather such information in order to create measures, stories, and dossiers, respectively, about targets. </p>
<p>You can find the OSINT framework guide <a target="_blank" href="https://osintframework.com/">here</a>.</p>
<p>The greatest resource for recon is the Internet, and the greatest tool is the search engine, Google. To make this a lot easier, <a target="_blank" href="https://www.techopedia.com/definition/30938/google-dorking">Google dorking</a> would be a good place to start. Dorking in this sense means the use of advanced search techniques to find out more information about a target that you normally wouldn’t be able to find using normal methods.</p>
<p>Other resources for recon include:</p>
<ol>
<li>Wikipedia (The biggest encyclopedia to this date)</li>
<li>Social Media such as Instagram, Twitter, and Facebook (Best resource for social engineers)</li>
<li>who.is (To get information about a website)</li>
<li>sublist3r (Lists subdomains publicly available)</li>
<li>Media such as newspapers, radio, and television</li>
</ol>
<h2 id="heading-enumeration">Enumeration</h2>
<p><img src="https://miro.medium.com/max/1050/1*XbORSf1nFpWBKEu285-Azg.jpeg" alt="Magnifying glass over binary ID fingerprint" width="600" height="400" loading="lazy">
<em>Magnifying glass over binary ID fingerprint | Credit: Wallpaperflare.com</em></p>
<p>This is like reconnaissance, except you gain information about the target by interacting with it for the purpose of looking for a vulnerability. </p>
<p>Do note, though, that things can get a lot riskier as the target could discover that you are trying to find out information about them, and could put countermeasures in place to hinder you.</p>
<p>Network enumeration involves port scanning and network mapping. This helps you learn about the target’s operating system, open ports, and services being run, along with their version. Nmap (network mapper), burp suite, and exploit-db/searchsploit are common tools you can use for network enumeration.</p>
<p>Tip: Knowing the version of services is a great way to find a vulnerability. Old versions of software may have a known vulnerability which could be on the exploit-db site. You could then use this to perform an exploit.</p>
<p>Physical enumeration involves gaining information through physical means. This could be done via dumpster diving (getting credentials and confidential information from the trash) and <a target="_blank" href="https://www.freecodecamp.org/news/social-engineering-the-art-of-hacking-humans/">social engineering</a>. </p>
<p>Social engineering is quite a broad topic and will get an article of its own later. However, in simple terms, it means hacking humans using manipulative social skills.</p>
<h2 id="heading-exploitation">Exploitation</h2>
<p><img src="https://miro.medium.com/max/1050/1*mJMn9jW6b0S4-EhX1fnk2g.jpeg" alt="A fake terminal access" width="600" height="400" loading="lazy">
<em>A fake terminal access | Credit: Wallpaperflare.com</em></p>
<p>Exploitation involves gaining access to the target successfully using a vulnerability discovered during enumeration. </p>
<p>A common technique for exploitation is to deliver a payload after taking advantage of the vulnerability. In simple terms, this is finding a hole in the target, and then running code or software that lets you manipulate the system, such as a bash shell.</p>
<p>Infamous vulnerabilities that are commonly exploited are EternalBlue (Windows) and the Apache log4j (web servers) vulnerabilities.</p>
<p>Common tools you can use for exploitation include:</p>
<ol>
<li>Metasploit (The big gun 🔫)</li>
<li>Burpsuite (For web applications)</li>
<li>Sqlmap (For databases)</li>
<li>Msfvenom (Used to create custom payloads)</li>
</ol>
<p>Quick lesson: A payload is software run after a vulnerability has been exploited. Once exploited, the target computer doesn’t have anything to give you access with. And so you need a payload to give you access and allow you to manipulate the target. </p>
<p>A very common payload many hackers use is meterpreter. It is a payload by metasploit that allows you to easily transverse the hacked computer.</p>
<h2 id="heading-privilege-escalation">Privilege Escalation</h2>
<p><img src="https://miro.medium.com/max/1050/1*dga9Ef2bvTg0BtG5_u5VxA.jpeg" alt="Random Text with “Administrator”" width="600" height="400" loading="lazy">
<em>Random Text with “Administrator” | Credit: Wallpaperflare.com</em></p>
<p>In order to understand privilege escalation, you need to grasp two concepts:</p>
<ol>
<li>User Accounts</li>
<li>Privileges</li>
</ol>
<p>A User Account is a profile on a computer or network that contains information that's accessed via a username and password. </p>
<p>There are two kinds of user accounts: Administrator account and Standard account. Home computer users usually only have one user account, which is the administrator. In contrast, organisations have multiple accounts on a network or computer, with a system administrator having the administrator account and the basic employees having various standard accounts.</p>
<p>Privileges are the permissions that let you write, read and execute files and applications. A standard user doesn’t have privileges (permissions) to critical files and applications which we want. However, an administrative account will have privileges for everything.</p>
<p>Escalation is the movement from one user account to another. This could either be vertical or horizontal. </p>
<p>Vertical escalation is when a hacker moves from an account with fewer privileges (standard account) to an account with more privileges (administrative account).</p>
<p>Horizontal escalation is when a hacker moves from one user account to a similar account of the same privilege level in hopes of performing vertical escalation with the new compromised account (standard account to standard account).</p>
<p>The administrative user accounts you would want to target are root (Linux) or Administrator/System (Windows). These accounts have <strong>all</strong> the privileges and are practically a goldmine if you get access to them, as you can take absolute control of the computer.</p>
<p>Techniques to perform privilege escalation include:</p>
<ol>
<li>Password spraying (Reusing passwords)</li>
<li>Cracking password hashes (Finding passwords of other users)</li>
<li>Finding ssh keys (Used for horizontal escalation)</li>
<li>Abusing SUID binaries (Taking advantage of misconfigured privileges in Linux)</li>
<li>Running tools scripts to look for escalation routes (<a target="_blank" href="https://www.kali.org/tools/enum4linux/">enum4linux</a> is nice and <a target="_blank" href="https://github.com/carlospolop/PEASS-ng">PEASS-ng</a> has a great suite)</li>
</ol>
<h2 id="heading-post-exploitation">Post-Exploitation</h2>
<p><img src="https://miro.medium.com/max/1050/1*qidw-Mivgag6dqiyU2-y9g.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>Code with text “malicious virus” | Credit: Wallpaperflare.com</em></p>
<p>Usually, white hats skip over to the very last step. But I will include this and the next for the sake of knowledge. </p>
<p>Post exploitation is the use of tools with the aim of gaining persistence and obtaining sensitive information from the target computer.</p>
<p>This could be done in a number of ways including:</p>
<ol>
<li>Installing a permanent backdoor, listener, or rootkit</li>
<li>Installing malware such as viruses and trojans</li>
<li>Downloading intellectual property, sensitive information, and Personal Identifiable Information (PII)</li>
</ol>
<h2 id="heading-covering-tracks">Covering Tracks</h2>
<p><img src="https://miro.medium.com/max/1050/1*be1OfXU8MoaoqvhM_X6ecw.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>An Anonymous themed background | Credit: Wallpaperflare.com</em></p>
<p>This is as simple as it gets, but can be incriminating if there is even a slight mistake. A malicious hacker has to be careful to not leave behind files, scripts, or anything that can be used by a digital forensics expert to track the hacking back to them. </p>
<p>Some basic things to do would be to delete log files and the history file in Linux. The meterpreter payload even has a feature to delete all logs on the Windows Event Manager.</p>
<h2 id="heading-reporting">Reporting</h2>
<p><img src="https://miro.medium.com/max/1050/1*kpf_vAmFagqzk5nevBwgUg.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>Digital report writing | Credit: Wallpaperflare.com</em></p>
<p>This is the final step of the hacker methodology. It involves writing down a basic rundown of the entire process you went through above. </p>
<p>There are various formats, but a basic one will include:</p>
<ol>
<li>Vulnerabilities found and their risk level</li>
<li>A brief description of how the vulnerabilities were discovered</li>
<li>Recommendations on how to remediate the vulnerabilities</li>
</ol>
<p>Tip: Note taking when hacking is very important. I personally learned this the hard way when doing CTFs (Capture The Flag). </p>
<p>Not only does it make it easier when writing reports, but they also allow you to avoid repeating failed attempts and sort through information easily. They also let you look back on what you’ve done later on. Taking screenshots is also a great idea<em>.</em></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Alright so let's do a quick recap of the hacker methodology:</p>
<ol>
<li>Reconnaissance</li>
<li>Enumeration</li>
<li>Exploitation</li>
<li>Privilege Escalation</li>
<li>Post-Exploitation</li>
<li>Covering Tracks</li>
<li>Report Writing</li>
</ol>
<h3 id="heading-resources-to-help-you-practice">Resources to help you practice:</h3>
<ol>
<li><a target="_blank" href="https://tryhackme.com/room/hackermethodology">Test your knowledge</a> on the hacker methodology</li>
<li>Tips on <a target="_blank" href="https://www.cybervie.com/blog/hackers-methodology-cyber-security/">how to protect yourself from hackers</a></li>
<li><a target="_blank" href="https://en.wikipedia.org/wiki/Open-source_intelligence">More information about OSINT</a></li>
</ol>
<h3 id="heading-acknowledgements">Acknowledgements</h3>
<p>Thanks to <a target="_blank" href="https://www.linkedin.com/in/chinaza-nwukwa-22a256230/">Chinaza Nwukwa</a>, <a target="_blank" href="https://www.linkedin.com/in/mercy-holumidey-88a542232/">Holumidey Mercy</a>, <a target="_blank" href="https://www.linkedin.com/in/georgina-awani-254974233/">Georgina Awani</a>, and my family for the inspiration, support, and knowledge used put this post together. You guys are the best.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
