DepRaptor
Dependency Confusion Vulnerability Scanner & PoC Framework
Developer: LAKSHMIKANTHAN K (letchupkt)
Version: 2.0.0
License: MIT
________ __________ __
\______ \ ____ ______ \______ \_____ ______ _/ |_ ____ _______
| | \ _/ __ \ \____ \ | _/\__ \ \____ \\ __\/ _ \\_ __ \
| ` \\ ___/ | |_> >| | \ / __ \_| |_> >| | ( <_> )| | \/
/_______ / \___ >| __/ |____|_ /(____ /| __/ |__| \____/ |__|
\/ \/ |__| \/ \/ |__|
Dependency Confusion Scanner
Developer: LAKSHMIKANTHAN K (letchupkt)
What is DepRaptor?
DepRaptor is a production-grade dependency confusion vulnerability scanner built for security researchers and bug bounty hunters. It detects packages vulnerable to dependency confusion attacks across multiple ecosystems, generates proof-of-concept packages with modular payloads, and produces detailed reports — all from a single CLI.
Installation
pip install depraptor
Quick Start
# Interactive mode — guided step-by-step workflow
depraptor scan ./my-project
# Scan with explicit payload and callback
depraptor scan ./my-project --payload webhook --callback https://webhook.site/xxx
# Scan a GitHub repo
depraptor scan https://github.com/org/repo
# Scan an entire GitHub org
depraptor scan org:stripe
# Scan from a list of repo URLs
depraptor scan list:repos.txt
# Scan from a list of local paths
depraptor scan paths:targets.txt
# Dry-run with autopublish (no actual upload)
depraptor scan ./my-project --autopublish --simulate
# Check environment
depraptor doctor
CLI Reference
depraptor scan TARGET [OPTIONS]
| Flag | Short | Description |
|---|---|---|
--payload |
-p |
Payload type: system_info | webhook | discord | interactsh | ci_env_dump | custom |
--callback |
-c |
Callback URL for webhook/discord/interactsh payloads |
--threads |
-t |
Registry check threads (default: 10) |
--output |
-o |
Output directory (default: ./results) |
--repo-dir |
Directory for cloned repos (default: ./repos) |
|
--autopublish |
Publish PoC packages after generation (requires confirmation) | |
--simulate |
Dry-run — build PoCs but skip publishing | |
--secrets |
Run TruffleHog secret scan on the target | |
--github-token |
GitHub personal access token | |
--verbose |
-v |
Verbose logging to stderr |
Interactive Mode
Running depraptor scan <target> with no payload flags enters interactive mode:
- Scan dependencies and check registries
- Display vulnerable packages
- Prompt to choose PoC payload type
- Prompt for callback URL (if needed)
- Generate PoC packages
- Ask if you want to publish (default: No)
- Safety confirmation before any publish
Payload Types
| Payload | Description |
|---|---|
system_info |
Logs hostname, username, cwd, env vars to a local file |
webhook |
POSTs system info as JSON to an HTTP callback URL |
discord |
Sends a formatted message to a Discord webhook |
interactsh |
DNS/HTTP ping to an interact.sh OOB domain |
ci_env_dump |
Captures CI/CD tokens and secrets to a local file |
custom |
Stub for your own payload code |
Target Modes
| Format | Example | Description |
|---|---|---|
| Local path | ./project |
Scan a local directory |
| GitHub URL | https://github.com/org/repo |
Clone and scan a single repo |
| GitHub org | org:stripe |
Scan all public repos in an org |
| Repo list | list:repos.txt |
Scan repos from a URL list file |
| Path list | paths:targets.txt |
Scan multiple local paths from a file |
Output Structure
results/
├── report.json # Full JSON report
├── report.md # Markdown report
├── dependencies.json # All parsed dependencies
├── logs/
│ └── scan.log
└── pocs/
└── <package-name>/
├── payload.py
├── setup.py
├── pyproject.toml
└── README.md
Configuration File
Create ~/.depraptor/config.yaml to set defaults:
threads: 20
default_payload: webhook
simulate: false
npm_token: ""
pypi_token: ""
github_token: ""
verbose: false
CLI flags always override config file values.
Risk Scoring
Each vulnerable package gets a risk score from 0–10:
| Factor | Score |
|---|---|
| Not in public registry | +5.0 |
Internal naming pattern (internal-, private-, etc.) |
+2.0 |
| CI/CD pipeline detected | +1.5 |
| Unpinned / wildcard version | +1.0 |
| Short package name | +0.5 |
Supported Dependency Files
| Ecosystem | Files |
|---|---|
| Python | requirements*.txt, pyproject.toml, setup.py, Pipfile |
| Node.js | package.json |
| Ruby | Gemfile |
| Go | go.mod |
| Rust | Cargo.toml |
Security Notice
This tool is intended only for authorized security testing, bug bounty programs with proper scope, and security research with explicit permission.
- Do NOT publish PoC packages to public registries without authorization
- Do NOT test systems you don't own or have written permission to test
- Always follow responsible disclosure practices
Unauthorized use may be illegal. The author is not responsible for misuse.
Developer: LAKSHMIKANTHAN K (letchupkt)
Metadata
Release files for depraptor 2.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| depraptor-2.0.8.tar.gz | 28.5 kB | Without provenance | Details for depraptor-2.0.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| depraptor-2.0.8-py3-none-any.whl | Python 3 | none | any | Details for depraptor-2.0.8-py3-none-any.whl |
Total release size: 64.1 kB
Release files / depraptor-2.0.8.tar.gz
| Download URL | depraptor-2.0.8.tar.gz |
|---|---|
| Size | 28.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce865cbc4393a61b3ab63a9bc8889fdd68b0e8c1dc9155fb505454b63d173158
|
|
BLAKE2b-256 checksum How to use checksums |
76bcf331c0dfb2025b54928de1421dc81be468b17278a7105d7d8ab438345f1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|
Release files / depraptor-2.0.8-py3-none-any.whl
| Download URL | depraptor-2.0.8-py3-none-any.whl |
|---|---|
| Size | 35.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f491182355e3a167fa9a40e35029d417207f14312667c7dd206655013959242
|
|
BLAKE2b-256 checksum How to use checksums |
75eaa222b544f378e2b81e608f8a537f323bbd4b307831f0223ca1e1695943d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|
Security for depraptor 2.0.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.