JuliaScope is a fast, parallelized subdomain enumeration and vulnerability scanning tool written in Julia. It combines passive and active techniques to discover subdomains and can scan them for common web vulnerabilities. Inspired by tools like subfinder, JuliaScope is designed for security researchers, bug bounty hunters, and network defenders.
- Subdomain Enumeration
- Passive: Uses crt.sh (Certificate Transparency logs)
- Active: DNS brute-forcing with a customizable wordlist
- Vulnerability Scanning
- Scans discovered domains/subdomains for common web vulnerabilities (SQLi, XSS, RCE, etc.) using pattern matching
- Parallel Processing
- Utilizes Julia's multithreading and multiprocessing for speed
- Command-Line Interface
- Flexible options for different scanning modes
- Colorful, User-Friendly Output
- Clone the repository:
git clone <repo-url> cd JuliaScope
- Install Julia (if not already):
- Install dependencies:
JuliaScope will auto-install required packages on first run, but you can pre-install them for speed:
import Pkg Pkg.add(["HTTP", "JSON3", "Crayons", "ThreadsX", "ArgParse"])
Run JuliaScope from the command line:
julia src/juliascope.jl [option] <domain>| Option | Description |
|---|---|
-s |
Search for subdomains (crt.sh + brute-force) |
-dns |
Only brute-force subdomains using wordlist |
-ss |
Scan domain and subdomains for vulnerabilities |
-h |
Show help menu |
- Find subdomains using all methods:
julia src/juliascope.jl -s example.com
- Brute-force subdomains only:
julia src/juliascope.jl -dns example.com
- Scan for vulnerabilities:
julia src/juliascope.jl -ss example.com
- Show help:
julia src/juliascope.jl -h
- The brute-force mode uses a file named
wordlist.txtin the project root. - You can customize this file with your own subdomain prefixes (one per line):
www mail admin test dev api ...
- The
-ssoption scans each found (sub)domain for common web vulnerabilities using pattern matching. - Vulnerabilities checked include:
- SQL Injection
- Cross-Site Scripting (XSS)
- Directory Traversal
- Exposed Admin Panels
- Misconfigurations
- Sensitive Files
- Information Disclosure
- SSRF
- Remote Code Execution (RCE)
- Patterns are defined in the
VULNERABILITY_PATTERNSdictionary insrc/juliascope.jl.
- Julia 1.6+
- HTTP.jl
- JSON3.jl
- Crayons.jl
- ThreadsX.jl
- ArgParse.jl
All dependencies are open source and installable via Julia's package manager.
Contributions, bug reports, and feature requests are welcome!
- Fork the repository
- Create a new branch (
git checkout -b feature-xyz) - Make your changes
- Commit and push (
git commit -am 'Add new feature' && git push) - Open a pull request
MIT License. See LICENSE for details.
This tool is for educational and authorized security testing purposes only. Do not use against systems you do not own or have explicit permission to test.
JuliaScope is designed to be run as a command-line tool, not as an interactive REPL script.
Open a terminal (Command Prompt, PowerShell, or a Julia REPL in shell mode with ;) and run:
julia src/juliascope.jl -s example.comor, if you are in the src directory:
julia juliascope.jl -s example.comIf you run include("juliascope.jl") in the Julia REPL, the script will only print the help menu and exit unless you set ARGS manually. For example:
ARGS = ["-s", "example.com"]
include("juliascope.jl")- If you run
include("juliascope.jl")with no arguments, the script sees an emptyARGSarray, prints the help (which may not show in the REPL), and exits. - The main logic is only triggered by command-line arguments.
For best results, always run JuliaScope from your system's command line with the desired options.
Suppose Muffin has cloned JuliaScope to C:\Users\Muffin\JuliaScope. To enumerate subdomains for example.com, Muffin would:
cd C:\Users\Muffin\JuliaScope
julia src/juliascope.jl -s example.comThis will run JuliaScope using both crt.sh and DNS brute-forcing, and print all discovered subdomains for example.com.