AdSense
Monday, April 2, 2018
HTTP Basic Authentication bruteforce attack with Burp proxy
HTTP BASIC AUTHENTICATION BRUTEFORCE ATTACK WITH BURP PROXY
- Layout for this exercise:
- This exercise is based in the previous post Setting up HTTP Basic Authentication.
- In this case the goal is to bruteforce HTTP Basic Authentication using the Burp Suite Proxy.
- First of all, let's enable manually a proxy connection at the Firefox browser of Kali Linux.
- Firefox -> Preferences -> Advanced > Network > Connection Settings:
- Manual proxy configuration: listening on localhost port 8080:
- Launching Burp:
- Options tab: checking that the proxy is listening on the localhost interface at port 8080:
- Connecting the browser to the web page protected with Basic Authentication:
- Burp intercepts the request to the web page:
- Forwarding the request:
- The Apache web server responds with the "Authentication Required" message. Let's introduce some arbitrary credentials, for instance "asdfg:asdfg":
- Burp intercepts the sending credentials:
- Now, Burp will help us to craft those sending credentials. For that purpose, the message is sent to the Intruder:
- The target of the attack is www.whitelist.com:
- The Positions tab helps to specify where to insert the payload for the attack. Decoding with Base64, the fake credentials "asdfg:asdfg" are revealed:
- Putting the username:password space between the section sign §:
- Going to the next tab, Payload sets the type of attack: Brute forcer.
- In this example the character set is simple, just 2 letters (ab), and the minimum and maximum number of characters is 5.
- Adding a processing rule for the prefix "admin:", corresponding to the username:
- Adding a processing rule for Base64 encoding, used by Basic Authentication:
- The two rules for proccessing the payload:
- It is also very important to remove the character = for encoding, because = is used by Base64 for padding:
- The attack is ready to be started:
- Because the charset is 2 and the number of characters is 5, the total number of tries will be 2^5 = 32.
- The attack starts, and the response status is 401 until a 200 answer is received. Obviously, the 200 message corresponds to a successful try:
- Decoding with Base64:
- The result is the correct credentials "admin:ababa":
- The web server responses, as expected, with the HTML code of the web page:
- Removing the proxy:
- Finally, authenticating the correct credentials the web page is available: