This documentation contains the approach and steps needed for VAPT.
- Manual Inspections & Reviews
Manual inspections are human reviews that typically test the security implications of people, policies, and processes. Manual inspections can also include inspection of technology decisions such as architectural designs. - Threat Modeling
It can be seen as risk assessment for applications. In fact, it enables the designer to develop mitigation strategies for potential vulnerabilities. It is recommended that all applications have a threat model developed and documented. (As early as possible in SDLC) - Code Review
Source code review is the process of manually checking the source code of a web application for security issues. Many serious security vulnerabilities cannot be detected with any other form of analysis or testing. As the popular saying goes “if you want to know what’s really going on, go straight to the source.” - Penetration Testing
Penetration testing will never be an exact science where a complete list of all possible issues that should be tested can de defined. Indeed penetration is only an appropriate technique to test the security of web applications under certain circumstances.
- Gather all the possible Information
- Follow the different phases
- Exploit all the vulnerabilities
- Use the output of a vulnerability to re-asses application
- Report the Vulnerabilities
OWASP Web Application Penetration Checklist - Link => RFP Template, Benchmarks, Testing Checklist
Linux Distribution => Kali Linux (Debian) - Download
Hypervisior => VMware Workstation 17 Player - Download
Using Metasploitable for testing purpose - Download
Rule 1: Always use a Virtual Machine to do VAPT.
Reason for using VM:
- Isolation from Host OS
- Easy to configure, and test accross different versions
- Easy to work on networks, saving state.
- Use a Virtual environment for testing - python3-virtualenv Setting Up Virtual Environment
python -m venv virtual source virtual/bin/activate
Gain the Control over Application & Database
If you can't gain control over application, gain control over the programs in the computer (server), exploit computer.
If nothing works, exploit humans(admins, maintainers) social engineering attacks, side-channel attacks.
Rule 2: More Information => More Attack Surface
- Use
Robtex DNS
lookup under “names pointing to same IP”. - Using
bing.com
, search for ip:"target ip". Knock
can be used to find subdomains of target- Download it > git clone https://github.com/guelfoweb/knock.git
- Navigate to knock.py. > ce knock/knock.py
- Run it > python knock.py [target]
- Find files & directories in target website tool => dirb
> dirb [target] [wordlist] [options]
- Maltego is an information gathering tool that can be used to collect information about ANYTHING.
maltegoce
- Domain tools - IP information about our Target website => whois.domaintools.com & Robotex
- Netcraft - information regarding IP, Tech Stack, Deployment, Geolocation details => Netcraft
- Login to metasploitable2 > msfadmin/msfadmin
ifconfig
> Get the IP address of the Metasploitable- Setup Kali Linux => The attack machine
Rule 3: DIE (Discover - Intercept - Exploit)
Other Web Vulnerabilities - Link
- OWASP Cheatsheet - Documentation
- Metasploitable is an 'intentionally vulnerable virtual machine' by Rapid7 - Documentation
- Detailed Linux Commands Explaination - Explainshell
- DAMN VULNERABLE WEB APPLICATION (DVWA) - GitHub
- VAPT Documentation by Revanth - Document
- OWASP Testing Guide - Book