kekpath - Recursive web endpoint scanner

0x90

Administrator
Staff member
Member
Joined
Aug 6, 2024
Messages
3
Introduction
During the solving of my OSCP labs I had alot of repetitive tasks, like enumarating web applications. In addition i have realized that many web applications have thousands of pages and enumarrating all of them ist just not feasible. In addition many tools I have used were just not reliable, robust enough, got blocked or just missed important endpoints. With kekpath, im solving the problem of enumarating bigger web applications, with basically crawling all links of a web application blazingly fast and reliable. Im taking advantage of threading and async operations with C++, in order to crawl a whole application incredibly fast, in addition i have spent quiet some time to connectivity probing befoe and during the execution of kekpath, in oder to dynamically adjust request speed rates and timeouts, too prevent accidental denial of services. Alot of thought also went into the parsing of URL of the target host, it had to be reliable but also performant.

Visit the official GitHub for source & releases! kekpath - GitHub


How to use kekpath
KekPath provides a range of options to customize your web scanning. Below are some of the key options:
Code:
./kekpath -u <URL> [OPTIONS]

Options

  • -u <URL> : Set the target URL (required)
  • -p <PORT> : Set the port number (default: 80)
  • -excl <EXTS> : Exclude certain file extensions (comma-separated, e.g., .php,.js)
  • -t <TIMEOUT> : Set the request timeout in milliseconds (500-10000)
  • -ua <USER_AGENT> : Set the User-Agent string (or use 'rand' for random)
  • -dbg : Enable debug mode
  • -tr <THREADS> : Set the number of threads (1-200)
  • -rl <RATE> : Set the max request rate per second (1-50)
  • -n <INTERFACE> : Specify the network interface to use
  • -o <OUTPUT> : Specify the output file path (if not set, default naming is used)
  • -h, -help : Show help message
Code:
kekpath -u https://example.com -excl .png,.jpg,.gif -t 3000 -tr 4 -rl 10

This command will scan https://example.com using 4 threads, excluding image files, with a 3000ms timeout and a rate limit of 10 requests per second.
kekpath in action


Installation

Prerequisites

  • CMake: Ensure CMake is installed on your system. You can install it using your package manager or from the official CMake website.
  • libcurl: KekPath requires libcurl for HTTP requests. Install it using your package manager:
    • Debian/Ubuntu:
      Code:
      sudo apt-get update
      Code:
      sudo apt-get install libcurl4-openssl-dev

    • CentOS/Fedora:
      Code:
      sudo yum install libcurl-devel[

    • macOS:
      Code:
      brew install curl

Building KekPath

  1. Clone the repository:
    Code:
    git clone https://github.com/yourusername/kekpath.git
    Code:
    cd kekpath

  2. Create a build directory and navigate to it:
    Code:
    mkdir build
    Code:
    cd build

  3. Run CMake to generate the build files:
    Code:
    cmake ..

  4. Compile the project:
    Code:
    [/SIZE]make[SIZE=4]

  5. The binary will be generated in the build directory. You can run KekPath using:
    Code:
    [/SIZE]./kekpath[SIZE=4]
 
Back
Top