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.
Linux and Scripting!
- 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 (Try Ruby), Python (Online) or Perl and learn its syntax and data types. You will need it to keep going.
- 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 received.
PHP and DNS
- 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.
- 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.
More SQL Injections
FTP and Traffic analysis
- Install and use Wireshark: inspect the traffic send by your HTTP client (use "Follow TCP stream) and HTTPs client (check the SSL handshake)
- Install a FTP server on your system:
- Write a FTP client using a socket
HTTP Server and Firewall
- 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
- If enabled, disable iptables in your vm
- Use iptables to block ICMP requests, test if it works using ping
Nmap and crypto attacks
- 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)
- 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