Web Enumeration

Introduction to Gobuster

allows you to scan the website, but it will return the status codes as well. also allows for searching files.

Useful Global Flags

Flag Long Flag Description

-t --threads Number of concurrent threads (default 10) to increase speed of scans (64)

-v --verbose Verbose output

-z --no-progress Don't display progress

-q --quiet Don't print the banner and other noise

-o --output Output file to write results to

dir mode

allows the user to enumerate website directories for pentesting

goburster dir - directory search

-u -w: Add URL and wordlist

full command : gobuster dir -u http://10.10.10.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

-c --cookies Cookies to use for requests

-x --extensions File extension(s) to search for

-H --headers Specify HTTP headers, -H 'Header1: val1' -H 'Header2: val2'

-k --no-tls-validation Skip TLS certificate verification

-n --no-status Don't print status codes

-P --password Password for Basic Auth

-s --status-codes Positive status codes

-b --status-codes-blacklist Negative status codes

-U --username Username for Basic Auth

use it's -x or --extensions flag to search for the contents of directories. a command that would allow us to search the "myfolder" directory on a webserver for the following three files: 1. html 2. js 3. css

gobuster dir -u http://10.10.252.123/myfolder -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x.html,.css,.js

-k flag will bypass invalid certificate error and continue scanning and deliver the goods!

dns Mode

allows Gobuster to brute-force subdomains

to use dns mode - gobuster dns

gobuster dns -d mydomain.thm -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt

-c --show-cname Show CNAME Records (cannot be used with '-i' option)

-i --show-ips Show IP Addresses

-r --resolver Use custom DNS server (format server.com or server.com:port)

vhost mode

to brute-force virtual hosts, virtual hosts are different websites on the same machine

gobuster vhost - to use vhost

gobuster vhost -u http://example.com -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt

Useful Wordlists

Kali Linux Default Lists

SecLists - sudo apt install seclists

to add "webenum.thm" to your /etc/hosts:

echo "MACHINE_IP webenum.thm" >> /etc/hosts

to add any virtual hosts

echo "10.10.138.10 mysubdomain.webenum.thm" >> /etc/hosts

WPScan

WPScan is capable of discovering on a system running WordPress

--enumerate t: look for theme (wpscan --url http://wpscan.thm --enumerate t)

--enumerate p: look for plugins (wpscan --url http://wpscan.thm --enumerate p)

--enumerate u - brute forcing usernames ( wpscan --url http://wpscan.thm --enumerate u)

--enumerate vp - vulnerable scans

--plugins-detection aggressive: aggressive

"Directory Listing" occurs when there is no file present that the webserver has been told to process. common file is "index.html" and "index.php".

for password attack - wpscan –-url http://cmnatics.playground –-passwords rockyou.txt –-usernames cmnatic

(wpscan --url http://wpscan.thm --passwords '/root/Tools/wordlists/rockyou.txt')

WPScan will try to be as least "noisy" as possible. Lots of requests to a web server can trigger things such as firewalls and ultimately result in you being blocked by the server.

we can use arguments such as --plugins-detection and an aggressiveness profile (passive/aggressive) to specify this. For example: --plugins-detection aggressive.

Nikto:

vulnerability scanner, performing an assessment on all types of webservers (and isn't application-specific such as WPScan.

can be used to discover possible vulnerabilities including

Sensitive files

Outdated servers and programs (i.e. vulnerable web server installs)

Common server and software misconfigurations (Directory indexing, cgi scripts, x-ss protections)

can be installed by a simple sudo apt update && sudo apt install nikto

Modes:

nikto -h ip_domain_name - basic scan

nikto -h 10.10.10.1 -p 80,8000,8080 - scanning multiple ports on one specific host

For example, we can scan 172.16.0.0/24 (subnet mask 255.255.255.0, resulting in 254 possible hosts) with Nmap (using the default web port of 80) and parse the output to Nikto like so:

nmap -p80 172.16.0.0/24 -oG - | nikto -h - (#nmap --allports 10.10.139.215 -oG - | nikto -h -)

--list-plugins - list the plugins

-Plugin apacheuser: Specify the plugin we wish to use and the name of the plugin

-Display: Increase Verbose

1 Show any redirects that are given by the web server.

2 Show any cookies received ( #nikto -h 10.10.139.215 -p 8080 -D 2)

E Output any errors

-Tuning: Tuning Your Scan for Vulnerability Searching

Tuning options

File Upload - 0

Misconfigurations / Default Files - 2

Information Disclosure - 3

Injection - 4

Command Execution - 8

SQl Injection - 9

-o -Output: Save findings (Text file, HTML)

cURL

In the previous section, we saw how using the -v flag with cURL shows us the full details of the HTTP request and response. If we were only interested in seeing the response headers, then we can use the -I flag to send a HEAD request and only display the response headers. Furthermore, we can use the -i flag to display both the headers and the response body (e.g. HTML code). The difference between the two is that -I sends a HEAD request (as will see in the next section), while -i sends any request we specify and prints the headers as well.

curl -I https://www.inlanefreight.com

Last updated