PentesterLab Bootcamp: Everything you need to get started in Infosec!
Bootcamp provides a learning path to get into security and especially web penetration testing.
This course is a list of things to read and do. No solutions are provided since it is, in my opinion, the best and only way to learn. If you don't manage to get one of the items done, just try harder. Spend more time googling until you find the solution. Finding something by yourself is the best way to remember it.
As Stated above please feel free to google and find the solution. If you have tried hard and still unable to get the solution or If you are in short of time then use this repo, because Finding something by yourself is the best way to remember it.
Topics covered(Image)
- Hypertext Transfer Protocol
- Domain Name System
- Whois
- Network socket
- Scoping a Pentest
Install Linux:
- Retrieve a virtualisation system (VirtualBox, VM player) and install Linux. Use a traditional distribution like Ubuntu not a security related one.
- Learn the basics of a scripting language: Pick between Ruby, Python or Perl and learn its syntax and data types. You will need it to keep going.
- TCP/IP
- Secure Sockets Layer
- Keeping notes during a pentest
- Install Apache inside your vm, change the home page of the hosted site using vim. Access this page in your browser (on the host).
- Change your host file to access the Linux system under the following names: vulnerable.
- Write an HTTP client to retrieve the home page of your site using an http library (for example net/http in ruby).
- Write an HTTP client to retrieve the home page of your site using a socket.
- Download Burp Suite (free version) and visit a website and see what requests are sent and what responses are receive.
- Learn about virtual hosting and how to setup vhosts with Apache
- Zone transfer
PHP basics:
- Install PHP in your virtual machine (using your previous Apache installation), write a script that echoes back a parameter in the URL. For example, accessing http://vulnerable/hello.php?name=Louis will return "Hello Louis".
- Install Mysql and create a script that retrieves information from it, like article.php?id=1 returns a book and article.php?id=2 returns a computer.
- Create a page that sends data to itself using a POST request.
DNS and whois:
- Install the command line tool dig in your vm.
- Find what name servers are used by PentesterLab, find what Mail servers are used by pentesterlab and find the Ip address of www.pentesterlab.com
- Obtain information about pentesterlab.com using the whois tool.
- SQL injection
- XSS
- Remote File Inclusion
Setup SSL:
- enable HTTPs on your web server
- make sure you disabled all the weak ciphers.
Play with SSL:
- write a SSL client using an HTTP library.
- write a SSL client using a socket.
- access your SSL server with your previous HTTP script and socat to do the connection socket<->ssl-socket.
- MIME
- Follow "From SQL injection to Shell": read the course and test on the ISO
- Follow "PHP Include And Post Exploitation": read the course and test on the ISO
- Antisec Movement
- DHCP
- FTP
- Request for Comments
- Fully script From SQL injection to Shell (use Burp to help you debugging)
- Do From SQL injection to shell: PostgreSQL edition without reading the course
- Check if the code you wrote during Week 3 is vulnerable to SQL injection and XSS
- Phrack
- Phrack: Happy Hacking
- Phrack profile on FX
- Install and use Wireshark: inspect the traffic send by your HTTP client (use "Follow TCP stream) and HTTPs client (check the SSL handshake)
FTP:
- Install a FTP server on your system:
- Write a FTP client using a socket
- Iptables
- Internet Control Message Protocol
- Cryptography
- Cryptographic hash function
- Follow Introduction to Linux Host Review (read the course and test on the ISO)
- Follow CVE-2012-1823: PHP CGI (read the course and test on the ISO)
- C (programming language)
- Nmap
- Setuid
- HTTP server
- Write a HTTP server (use fork to handle more than one connection)
- Connect to your HTTP server with your browser and check the requests done by your browser
- Iptables
- If enabled, disable iptables in your vm
- Use iptables to block ICMP requests, test if it works using ping
- Wifi
- WEP
- WPA
- Nmap
- Use Nmap to find the open ports on your VM.
- Use Nmap to find the open ports on your VM while blocking ICMP using iptables.
- Use iptables to close one of the open ports, check that it works using Nmap.
- Find a local security meetup (Ruxmon, 2600...) and go there
- Follow CVE-2008-1930: Wordpress 2.5 Cookie Integrity Protection Vulnerability (read the course and test on the ISO)
- Environment Variables
- Network Time Protocol
- SMB
- Setup a Wifi network using WEP and crack the key
- Follow Rack Cookies and Commands Injection (Read the course and test on the ISO)
- Memory management
- Stack
- Stack protection
- Download and solve the levels 00 to 04 of Nebula (mirror) from exploit.education
- Public key pinning
- Your app shouldn't suffer SSL's problems
- Guardian's StrongTrustManager Vulnerabilities
- Solve the levels 05 to 09 of Nebula (mirror) from exploit.education
- Follow From SQL injection to SHELL II
- Read Web For Pentester
- Solve the levels 10 to 14 of Nebula (mirror) from exploit.education
- Do the exercises from Web For Pentester
- Read Web For Pentester II
- Solve the levels 15 to 19 of Nebula (mirror) from exploit.education
- Follow the exercises from Web For Pentester II
- The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities
- The Web Application Hacker's Handbook: Discovering and Exploiting Security Flaws
- Hacking: The Art of Exploitation, 2nd Edition
- The Tangled Web: A Guide to Securing Modern Web Applications
- Underground
- Exploding the Phone: The Untold Story of the Teenagers and Outlaws who Hacked Ma Bell
- The Pleasure of Finding Things Out: The Best Short Works of Richard P. Feynman (Helix Books)