• Stars
    star
    442
  • Rank 98,677 (Top 2 %)
  • Language
    Go
  • Created over 6 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pathbrute

pathbrute

Pathbrute

Pathbrute is a DirB/Dirbuster type of tool designed to brute force directories and files names on web/application servers.
However, it has some new tricks. It is no longer a dumb directories/files brute force tool if you use the -v and -i option.

It runs on Windows/Linux/OSX operating systems and on ARM/ARM64/x86/x64 processors.

Some of it includes:

  1. Wordlists from Exploit databases and Metasploit
  2. Identify interesting URLs eventhough websites return HTTP status code 200 for all URI paths.
  3. Identify valid paths that require authentication (HTTP status code 401)
  4. Reduce the number of results for wordlists with URI paths with nested directories (See #1 for more information)

Pathbrute has a number of wordlists from metasploit/exploit-database and other sources that it uses to discover interesting content on servers.

pathBrute contains/uses a number of self compiled wordlists for identifying โ€œinterestingโ€ content and potentially vulnerable websites.

  1. More than 18899 URI paths from Exploit-Database
  2. More than 442 URI paths from Metasploit Framework
  3. More than 9745 URI paths from Packetstorm

pathBrute can also use wordlists from other sources if you prefer.
pathBrute can also be used for identifying if any type of CMS (Joomla, WordPress and Drupal) is running on the target websites and fingerprint the versions of the CMS using the โ€“cms option.

Binaries for different platforms and architectures are available in the the release section.

Please check RELEASE section for compiled executables

$ ./pathBrute -h
Options:

  -h, --help       display help information
  -U, --filename   File containing list of websites
  -u, --url        Url of website
  -P, --Paths      File containing list of URI paths
  -p, --path       URI path
  -s, --source     Path source (default | msf | exploitdb | exploitdb-asp | exploitdb-aspx | exploitdb-cfm | exploitdb-cgi | exploitdb-cfm | exploitdb-jsp | exploitdb-perl | exploitdb-php | exploitdb-others | RobotsDisallowed | SecLists)
  -n, --threads    No of concurrent threads (default: 2)
  -c               Show only certain status code (e.g. -c 200)
  -e               Exclude certain status code (e.g. -e 404)
  -i               Intelligent mode
  -v, --verbose    Verbose mode
      --cms        Fingerprint CMS
  -x               Test a URI path across all target hosts instead of testing all URI paths against a host before moving onto next host
  -l, --log        Output to log file
  -r               Resume from x as in [x of 9999]
      --pHost      IP of HTTP proxy
      --pPort      Port of HTTP proxy (default 8080)
      --ua         Set User-Agent
      --timeout    Set timeout to x seconds
      --update     Update URI path wordlists from Github
      --skip       Skip sites that don't give any useful results (e.g. OWA, VPN, etc)
      --confirm    Confirm using more than 100 threads (use with -n option)
  -q, --query      Lookup URI paths that were found against ExploitDB)

Docker

  • Building from Dockerfile
docker build -t pathbrute .
docker run --rm pathbrute -u http://testphp.vulnweb.com/ -s default  -v -i -n 20
  • Pull latest Docker image
docker pull milo2012/pathbrute
docker run --rm pathbrute -u http://testphp.vulnweb.com/ -s default  -v -i -n 20
  • To see help menu
docker run --rm pathbrute -h

Compilation

#Manual Compilation  `
go get github.com/mkideal/cli
go get github.com/badoux/goscraper
go get github.com/fatih/color
go get github.com/hashicorp/go-version
go get github.com/xrash/smetrics
go get github.com/ti/nasync
go build pathBrute.go  

Example

./pathBrute -s default -f urls.txt -v -i -n 25 
[*] Getting Default Page Title for Invalid URI Paths
http://xxxx.com/xxx [code:404] [404 Not Found]

[*] Testing URI Paths
http://xxxx.com/AdminRealm [code:404] [168] [404 Not Found]
http://xxxx.com/AddressBookJ2WE/services/AddressBook/wsdl/ [code:404] [168] [404 Not Found]
http://xxxx.com/AdminJDBC [code:404] [168] [404 Not Found]
http://xxxx.com/AdminMain [code:404] [168] [404 Not Found]
http://xxxx.com/Admin [code:404] [168] [404 Not Found]
http://xxxx.com/AdminProps [code:404] [168] [404 Not Found]
http://xxxx.com/AddressBookJ2WB [code:404] [168] [404 Not Found]
http://xxxx.com/AE/index.jsp [code:404] [168] [404 Not Found]
http://xxxx.com/.web [code:404] [168] [404 Not Found]
http://xxxx.com/ADS-EJB [code:200] [482] []

[Found] https://127.0.0.1/.gitignore [code:200] [28] []
[Found] https://127.0.0.1/.htaccess [code:200] [1164] []
[Found] https://127.0.0.1/PMA/ [code:200] [8575] [phpMyAdmin]
[Found] https://127.0.0.1/.htaccess [code:200] [1164] []

Explanation of the output from pathBrute

https://208.88.199.241/sap/bc/webdynpro/sap/wdr_test_gantt [code:401] [458] [File or directory not found] [27736 of 38988]

Below is a description of the output from pathBrute

[401] - refers to the HTTP status code
[458] - refers to the size of the HTTP response
[File or directory not found] - refers to the title of the page
[27736 of 38988] - refers to the current position in the list


Example using the --cms option

Below is a sample output when using the --cms option to fingerprint the CMS on the target hosts. It also returns the Metasploit modules based on the version of the CMS software.

$ /git/pathbrute/pathBrute -U urls.txt --cms -i -v
[...redacted for brevity...]

[Found] https://[redacted] [Wordpress 4.8.6]

[Found] https://[redacted] [Wordpress 3.0]
Wordpress XML-RPC system.multicall Credential Collector [auxiliary/scanner/http/wordpress_multicall_creds]
WordPress Traversal Directory DoS [auxiliary/dos/http/wordpress_directory_traversal_dos]

[Found] https://[redacted] [Wordpress 3.8.26]
Wordpress XMLRPC DoS [auxiliary/dos/http/wordpress_xmlrpc_dos]
Wordpress XML-RPC system.multicall Credential Collector [auxiliary/scanner/http/wordpress_multicall_creds]
WordPress Traversal Directory DoS [auxiliary/dos/http/wordpress_directory_traversal_dos]

[Found] https://[redacted] [Wordpress 3.9.9]
Wordpress XML-RPC system.multicall Credential Collector [auxiliary/scanner/http/wordpress_multicall_creds]
WordPress Traversal Directory DoS [auxiliary/dos/http/wordpress_directory_traversal_dos]

[Found] https://[redacted] [Wordpress 3.3]
Wordpress XML-RPC system.multicall Credential Collector [auxiliary/scanner/http/wordpress_multicall_creds]
WordPress Traversal Directory DoS [auxiliary/dos/http/wordpress_directory_traversal_dos]

More Repositories

1

osintstalker

osintstalker
Python
627
star
2

CVE-2018-13379

CVE-2018-13379
Python
251
star
3

metasploitHelper

metasploitHelper
Python
239
star
4

pentest_scripts

Python
190
star
5

portia

Portia aims to automate a number of techniques commonly performed on internal network penetration tests after a low privileged account has been compromised. Portia performs privilege escalation as well as lateral movement automatically in the network
PowerShell
165
star
6

CVE-2018-13382

CVE-2018-13382
Python
146
star
7

CVE-2018-0296

Test CVE-2018-0296 and extract usernames
Go
108
star
8

ipv4Bypass

Using IPv6 to Bypass Security
Python
94
star
9

iPhone-Espionage

Objective-C
67
star
10

nmap2nessus

Python
46
star
11

owaDump

Search Email Accounts (OWA) for Passwords, PAN numbers as well as other Keywords
C#
39
star
12

Social-Engineering-Toys

Social Engineering Toys
Python
35
star
13

CVE-2021-21972

CVE-2021-21972
Python
32
star
14

burpSQL

Automating SQL injection using Burp Proxy Logs and SQLMap
Python
26
star
15

phishing-frenzy-template-cloner

Python
25
star
16

pentest_automation

Python
23
star
17

proxy_tester

Python script to test proxies
Python
15
star
18

burpXSS

Automating LFI/RFI using Burp Proxy Logs and fimap
Python
13
star
19

goSpider

Golang code to crawl website, extract links from html, paths from JavaScript code, follow and repeat.
Go
12
star
20

firebirdDump

Uses the default firebird database credentials to perform a database dump
Python
11
star
21

CVE-2020-14882

CVE-2020-14882
Python
9
star
22

CVE-2013-6117

CVE-2013-6117
Go
8
star
23

fingerprint_browser

JavaScript
8
star
24

winboxHunter

winboxHunter
Python
8
star
25

smbDumper

smbDumper
Python
6
star
26

phishing-scripts

Some miscellaneous phishing scripts
Python
5
star
27

proxies-rotator

Dockerfile for Proxies Testing/Rotation
Python
5
star
28

botstrike

Botstrike
Ruby
3
star
29

nuclei-templates-others

3
star
30

phishingfarm

Phishing Farm
Python
3
star
31

excelcrack

Automatically exported from code.google.com/p/excelcrack
2
star
32

pentest-scripts

Automatically exported from code.google.com/p/pentest-scripts
2
star
33

carbonatorMulti

Fork from Integris Security Carbonator - Carbonator to scan multiple URLs using Burpsuite at one go
Python
2
star
34

getoab

Automatically exported from code.google.com/p/getoab
2
star
35

recon

recon
1
star
36

OpenscapAlternative

Openscap Alternative for RHEL (without Installation)
HTML
1
star
37

shoretel-brute

Automatically exported from code.google.com/p/shoretel-brute
1
star
38

limekernelmodules

Kernel Modules for LIME forensics
1
star
39

xlsinjector

Automatically exported from code.google.com/p/xlsinjector
1
star
40

prefetch-tool

Automatically exported from code.google.com/p/prefetch-tool
1
star