Code Monkey home page Code Monkey logo

wsee's Introduction

wsee

A CDN Domain Fronting Tool or Websocket Discovery. This tool provides multiple technique to ensure target endpoint can fall under specific protocol or statuses, indicated via 101 or 200 or even Any!. Can be used for Bug Hunters to find any delicate domain related to CDN, Websocket, HTTP/2, or Bug-Host in general. Should work on any CDN but only featured Cloudflare and Cloudfront as in-built ready to use.

Features

  • A Fast domain queries using Multiprocessing to interlude all cpu cores, shorten your time.
  • Has a Local WebSocket finder; that allows you to discover more websocket possibilities without domain-fronting restriction.
  • More vary technique such as ZGrab to accurately find more Local Websocket for your endpoint.
  • Don't have a wordlist? : wsee got you covered with Online Subdomain Enumeration feature using HackerTarget as source.
  • Supports for Internal Storage for Termux users.
  • Supports for HTTP/2 Protocol (clear-text only).
  • Rotate Proxy feature that will brute list of Proxy against single Hostname. Currently only Supports for Proxy that runs on 443or 80 port (Based on CloudFlare Proxy)
  • Rotate Hostname feature that will brute list of Hostname against single Proxy. This is usefull for CDN Distribution IP's that has multiple Domain on a single IP or SSL Masking.
  • Auto script updater handled with config located in .wsee/CONFIG
  • Also include Normal mode, to find SSL/Direct bugs without protocol or domain fronting.
  • HeartBeat when attempt to send a request, this prevent connection lost interrupt in mid-scan.
  • Custom Headers to Include important headers required for some endpoint.
  • Has scope feature to include supplementary Status Codes such as: 301, 302, 4xx, or Any.
  • New Enhancement each Updates

How it works

Main Propose

The tool works; is by following the general idea of Upgrading protocol indicated in 101 Status or anything that returns a Status Code, which assume that the Endpoint supports the target protocol:

headers = { "Connection": "Upgrade", "Upgrade": protocol }

Even though it uses a basic header, some Endpoint are Headers dependant. In websocket for example; it may require X-SS or Sec- or User-Agent entry in order upgrade connection to be accepted by the server, this usually happen on Amazon endpoints. Make sure to add those manually in Custom Headers and the script will do the rest.

SSL Failure

In the newer version of OpenSSL; it doesn't support Legacy Connection and consider it as an exception. Due to this, you need to install custom OpenSSL Config by simply define it into your environment variable:

export OPENSSL_CONF=./.wsee/openssl.cnf
ZGrab Resolution
  • ZGrab can bloat your DNS. Make sure to switch your DNS into 1.1.1.1 CloudFlare DNS or 8.8.8.8 Google DNS. You can achieve this by using Warp VPN that you can download at PlayStore. Alternatively, you can manually setup your DNS into /etc/resolv.conf
### CloudFlare DNS
nameserver 1.1.1.1
nameserver 1.0.0.1

### Google DNS
nameserver 8.8.8.8
nameserver 8.8.4.4
Internal Storage

For Termux users; you can now takes input from Internal Storage. Termux is able to create a symlink to your storage from mounted ./storage/shared/, you can negate manually using custom path or create host folder inside your phone storage. Make sure to create symlink first inside the Termux:

termux-setup-storage
Disable Update

Latest releases introduce auto-update feature. It's a small feature but now, you're no longer need to scrape the whole directory to install new releases. To Disable it: You can just change true statement into false inside WSee config located in .wsee/CONFIG:

{
	"config":{
		"update-wsee": false,
		"update-database": false
}}
Custom Headers

Adding Custom Headers must in Dictionary format. The new headers will override the Default Payloads mentioned in ./bin/payloads.

{'X-API-Key': 'blah123', 'X-Forwarded-For': 'blah.com'}

Installation

WSee uses 3rd-party module, make sure to install requests before running, or else:

apt install python3, python3-pip, git
git clone https://github.com/Gilts/wsee
cd wsee
chmod +x *
python3 -m pip -r requirements.txt
python3 wsee.py

Credit

This Repo is build on top of other works, I'm not a jerk that steals other people work.

Contribute

You can also contribute to this project by creating a pull-request or donating some CDN domain. Your contribution will be listed in our Guild as-well in future content related to WSee. Currently; we're looking for (GCP) Google Cloud Platform, Akamai and Fastly CDN Domain. Alternatively, you can also support my work by offering me some free Doughnut xD: https://saweria.co/mc874

Do note that :

  • Your CDN domain will be used for domain-fronting purposes.
  • The risk of being public should be taken as personal consideration.

Preview

wsee's People

Contributors

mc874 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

wsee's Issues

Custom Method

Initial

Introduce Custom Method with WildCard use of - or _. This is current alternative to CloudFlare SSL being rejects Custom Protocol Supplemented on Path. Asserting WildCard into the Method to make sure CF Upgrade the Connection Protocols.

Implementation

G-G wss://address.com/ HTTP/1.1
_GG wss://address.com/ HTTP/1.1
-_- wss://address.com/ HTTP/1.1

Websocket Attestation

Initial

Since WSee is Focused on WebSocket, it might be a good idea to add some Attestation feature to detect any WebSocket Vulnerability.

Implementation

A new Section for WebSocket Attestation:

  • Origin: Test if WebSocket accept any Origins
  • Custom Method: Check If Supports WildCard Method #5
  • Referer: Check if Accept Custom Referer
  • Ports: Test WebSocket against Series of Ports
  • etc.

DNS Lookup

Initial

Some Endpoint might not fully integrated with CDN, this feature allow us to see additional Information regarding EndPoint that are being scanned. For example: langitmusik.com aren't on CloudFlare but DNS Trace told us langitmusik.com.cdn.cloudflare.net.

Implementation

You can enable this via Scoping feature and combined with the current engine.

  • scope 4: Will Include DNS LookUp (cname, AAAA, etc)

Scoping Feature

Initial

Current CDN Engine has a problem with recent changes in CloudFlare SSL which lead to changes in 101 status to either 503, 400 or 403 status codes. I'm aware of this and a solution to SSL is to Implement Scoping feature where it's also save Domains with those Status Codes if the Users choose different Scope.

Implementation

Scope 1 : is a Default Scope which only carry 101 Success Result
Scope 2: Also carries Domains CloudFlare rejected which Includes 503, 400 & 403 Status Codes
Scope 3: Also carries Domain Fronting result which Includes 301 & 200 Status Codes

CIDR Enumeration

Initial

Add an Ability to Crawl through list of CIDR from Multiple ISP to check wether the Endpoint has WebSockets. The idea is to reasons Direct Mode of CloudFlare falls in fronted WebSocket servers.

Implementation

Had a basic template on Dev branch but scraped on Release for rough implementation. Still focus on other Features. Probably need to use another 3rd-party instead of using logic.

Multiprocessing Doesn't work on PyWin

Introduction

Executing the script on Windows Platform seems restore 0 result, no indication of script error or new child-process generation

Implementation

No other choice other than trying threading() or async ThreadPool for multiprocessing() replacement.

WSee CLI

Initial

Offers WSee with ability to use Parameters as supplement settings. This is for a better usage rather than negate into every possible of choices.

Implementation

-scan: Select supported Protocol, available Option: websocket or http2
-type: Mention the use of Protocol. Includes Rotate feature.
-3rd: Option to use 3rd-Party tool ZGrab
-inp: Specify target file to scan. Also Include template option: Host, Current, Internal.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.