Penetration Testing
Contents
Penetration Testing #
What is Penetration Testing?
Penetration testing, also known as pen testing or ethical hacking, is the process of testing a computer system, network or web application to find security vulnerabilities that an attacker could exploit. Penetration tests can be used to test both internal and external systems and can be conducted using a variety of methods, including manual testing, automated tools, or a combination of both. Penetration testing is an important part of any security program as it can help identify weaknesses in systems before attackers do. By conducting regular penetration tests, organizations can keep their systems secure and reduce the risk of being breached.
Free Video Course #
If you’re looking to get into penetration testing, this is the course for you! MCSI’s videos will give you the foundation you need to get started in this exciting and important field. You’ll learn about the tools and techniques used by penetration testers, and how to apply them in real-world scenarios.
Chapter 1: Introduction to Penetration Testing #
- How to learn penetration testing by yourself
- The different types of penetration tests
- Setting up your own penetration testing lab
Chapter 2: Fundamental Concepts #
- Working with Command Line Interfaces
- The top penetration testing tools every beginner should master
- The top programming languages to learn as a penetration tester
- The most common activities in any penetration test
Chapter 3: The Testing Process #
Articles #
There are several types of penetration testing techniques that can be used in order to assess the security of a system. One type of penetration testing is known as black box testing, which is where the tester has no knowledge of the system beforehand and attempts to find vulnerabilities through trial and error. Another type of penetration testing is known as white box testing, which is where the tester has full knowledge of the system and attempts to find vulnerabilities by looking for weaknesses in the system’s design. One of the most common penetration testing techniques is known as social engineering, which is where the tester tries to trick users into revealing sensitive information or granting access to the system.
- Post-Exploitation: Information Collection and Persistance via Process Migration
- Techniques Used for Malware Obfuscation
Reconnaissance #
The reconnaissance phase is the first phase of penetration testing and is used to gather information about the target system. This information can be used to identify potential vulnerabilities that can be exploited. Information gathering can be done manually or through automated tools. Automated tools can be used to scan for open ports, running services, and installed software. This information can help identify potential attack vectors.
- Network Footprinting: the Building Blocks of Any Successful Attack
- Content Discovery - Part 1
- Content Discovery - Part 2
- DNS enumeration using zone transfer
Application Vulnerabilities #
Application vulnerabilities are weaknesses in software that can be exploited by attackers to gain unauthorized access, compromise data, or cause other malicious activities. Common causes of vulnerabilities include poor coding practices, insecure configuration settings, and outdated software components. Attackers can exploit vulnerabilities to gain access to sensitive information, execute malicious code, or Denial-of-Service attacks. To prevent vulnerabilities from being exploited, developers need to follow secure coding practices and keep software up-to-date. Administrators also need to properly configure systems and deploy security controls.
- Common Code Injection Vulnerabilities
- XML External Entity Injection
- Server-side request forgery
- An Introduction to Web Shells
- Keep Your Web Application Safe by Preventing SQL Injections
- Weaknesses in default configuration settings
- IDOR Vulnerability Prevention Best Practices
- Avoid race conditions with our easy to follow strategies!
- How to Prevent Insecure Design Vulnerabilities
- Broken Access Control (BAC)
- Web App Vulnerabilities: Anatomy of an XSS
- Web App Vulnerabilities: Files and Resources Attacks
- Bypassing Authorization in Web Applications
- Finding SQL Injection: Practical Cases
- Web Application Username Enumeration and Defense Techniques
- An Overview of Directory Traversal Attacks in a Web Application
- Introduction to Web Caching and Web Cache Poisoning
- Open Redirection
Cloud Services Penetration Testing #
Cloud penetration testing is a type of security testing that is used to assess the security of a cloud computing environment. The goal of cloud penetration testing is to identify vulnerabilities and weaknesses in the security of the system that could be exploited by an attacker. Cloud penetration testing can be used to test the security of both public and private cloud environments.
- Enumerating AWS S3 Buckets
- S3 Bucket URL Enumeration
- Enumerating and Exploiting AWS S3 Buckets with S3Scanner and Flaws.cloud
Network Vulnerabilities #
A network vulnerability is a security flaw that can be exploited to gain unauthorized access to a computer network. Common network vulnerabilities include unpatched software, weak passwords, and open ports. Exploiting a network vulnerability can allow an attacker to gain access to sensitive data, install malware, or launch denial-of-service attacks.
- Find out What is Banner Grabbing and How to Prevent it
- Bypass IDS and Firewall Restrictions While Network Scanning
- Directory Traversal: What is it and How to Prevent it
- Host Discovery: Get the Information You Need About a Network
- Manual and automated password acquisition
- Scanning SMB, Telnet and FTP default ports
- Netbios Enumeration
Endpoint Vulnerabilities #
- Windows Privilege Escalation Unquoted Service Path
- Windows Privilege Escalation AlwaysInstallElevated
- Privilege Escalation Techniques Windows Unquoted Service Path
Tools #
Why do I need to master penetration testing tools?
Penetration testing tools are used to test the security of systems and networks. They are used to find vulnerabilities and weaknesses in systems and networks, and to exploit them to gain access to sensitive data or to take control of the system. Penetration testing tools are essential for ensuring the security of systems and networks, and for protecting against the ever-increasing threats posed by hackers and cyber criminals.
- Using Netcat as a Reverse Shell
- Keep your Systems Safe with Regular Vulnerability Scanning
- Mimikatz: the Post-exploitation Tool for Offensive Security Testing
- Understanding the different types of scan you can perform with Nmap
- Enumerating Active Directory with Powerview
- Mac Spoofing Made Easy With Mac Changer
- A General Overview of Nuclei Command Line
- MAC flooding attack
- SNMP Enumeration with snmp check
- An Overview of Information Disclosure Vulnerabilities
- An Overview of Nuclei Default Templates
- LLMNR Poisoning attack with Responder
- NFS Enumeration for low privilege access
Brute Force Attacks #
A brute force attack is a type of cyberattack where a hacker uses a automated tool to guess passwords or passphrases until they find the correct one. This type of attack is usually very time-consuming and can be very difficult to execute if the target has a long and complex password. However, if the hacker has a large enough list of common passwords, they may be able to successfully guess the correct one relatively quickly. Brute force attacks can be prevented by using strong and unique passwords, as well as by employing security measures such as rate-limiting or CAPTCHAs.
- A Brief Introduction to Wordlists and how to Generate them with CeWL
- Password Spraying with Hydra
- Hands on with John the Ripper: Performing a Basic Dictionary Attack
- Password Cracking Techniques, Tools and Protection Recommendations
- Single Mode Password Cracking with John the Ripper
Metasploit #
Metasploit is a free and open source penetration testing platform that enables you to find and exploit vulnerabilities in systems. It is one of the most popular tools in the ethical hacking community and is used by security professionals and Penetration testers to test the security of systems and applications. Metasploit can be used to launch attacks against systems, to test the security of systems, and to find vulnerabilities in systems.
- Metasploit: Introduction to Payloads
- Metasploit Introduction to Exploit Modules
- Metasploit Working with HTTP Auxiliaries
- Metasploit Working with Sessions
- Meterpreter for Pentesters
- Metasploit: Hands-on with Basic Commands
- Metasploit: Hands-on with Variables
- Using Metasploit to Enumerate SSH
- Windows Persistence Techniques With Metasploit
- A Gentle Introduction to MSFVenom
- Bypass UAC using metasploit
- Metasploit Introduction to Databases and Workspaces
- Enumerating SMTP with Metasploit
- TCP, UDP, and SMB Auxiliary Modules in Metasploit
- Exploiting EternalBlue With Metasploit
Workflow #
What is a workflow?
A workflow is a series of steps that are followed in order to complete an engagement. In penetration testing, a workflow is important in order to ensure that all steps are followed in order to complete the testing process. By following a workflow, penetration testers can ensure that they are thorough in their testing and that they do not miss any important steps.
The image below proposes a workflow you can use to learn penetration testing:
Articles:
- A General Overview of Penetration Testing Methodologies
- Introduction to the Penetration Testing Workflow
- Mastering the Preparation Phase in penetration testing engagements
- The Reconnaissance Phase in Penetration Testing Engagements
- Example of a penetration testing report executive summary
- Performing Regular Penetration Tests is Essential, but There Are Some Limitations to Consider
Rate This Article
Thanks for reading: Penetration Testing & Ethical Hacking, Sorry, my English is bad:)