6. Security Misconfiguration

Introduction

I believe this name was chosen to be as ambigious as possible. It can encompass anything and everything related to configurations but if we do some effort it is possible to define a general testing guide for security misconfigurations by looking at the common properties of all the vulnerabilities we can find in writeups and hacktivities.

Is my target vulnerable?

The following properties of a system will indicate a likely vulnerability though some of these properties are a bit more ambigious and harder to test.

To prevent these kinds of vulnerabilities, we can implement some mitigations.

Mitigations

What are we hunting for?

All of these best practices serve to cover a particular goal but we also need to know what these goals are so we can test with precision.

Test network infrastructure configuration

This can be anything from an exposed admin panel to known server vulnerabilities. Pretty much any attack that can be performed over the network and relies on configuration can be put into this category.

Cloud storage misconfigurations

Companies often use services like S3 buckets from amazon without properly understanding them. This might lead to misconfigurations happening which could allow things like unauthenticated access.

Testing alternative HTTP methods

Just like we already talked about in chapter 5 (Broken access control), we can use the OPTIONS http method to find out which http methods we are able to execute and sometimes this might concern http methods which are not fully implemeted on the server.

Test HTTP Strict Transport Security

This is not interesting at all for bug bounty hunters but pentesters should reports this as a best practice. A website should always force the user onto the https version of the website.

So how do we hunt for this?

Hunting for security misconfigurations requires some special conditions because you need to either have a confirmeable guess at a certain configuration or have access to how a system works by for example looking at it's source code on github. You will also need to confirm these findings though since an unconfirmed vulnerability isn't really one at all.

We can start by doing some google dorking and looking for conf file or yaml or xml or anything related to configurations.

filtype:cfg or filetype:yml or filetype:xml or intitle:"Config" or ...

besides google dorking we can do the exact same thing for github where we might have some more luck as usually developers will mask things like passwords by putting them into environment variables but they leave all the other settings in plain sight.

whenever you come across a configuration file it is up to you to find out exactly what every setting is for and if that setting can be unsafe by simply googling around and even just reading the manuals of the components for which those config files serve.

🎩Hide01