hellhound-spider 14.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hellhound_spider-14.1.data/data/share/man/man1/spider.1 +296 -0
- hellhound_spider-14.1.dist-info/METADATA +201 -0
- hellhound_spider-14.1.dist-info/RECORD +8 -0
- hellhound_spider-14.1.dist-info/WHEEL +5 -0
- hellhound_spider-14.1.dist-info/entry_points.txt +2 -0
- hellhound_spider-14.1.dist-info/licenses/LICENSE +674 -0
- hellhound_spider-14.1.dist-info/top_level.txt +1 -0
- spider.py +9754 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
.TH SPIDER 1 "2026-11-01" "Hellhound Spider v14.1" "User Commands"
|
|
2
|
+
.SH NAME
|
|
3
|
+
spider \- SPA and non-SPA web crawler, endpoint discoverer, and attack-surface mapper
|
|
4
|
+
.SH SYNOPSIS
|
|
5
|
+
.B spider
|
|
6
|
+
[\fIOPTIONS\fR] \fITARGET\fR
|
|
7
|
+
.SH DESCRIPTION
|
|
8
|
+
.B spider
|
|
9
|
+
is a web application crawler and attack-surface mapper for offensive
|
|
10
|
+
security assessments, bug bounty hunting, and CTF challenges. It
|
|
11
|
+
performs a full-spectrum reconnaissance pass against a target, combining
|
|
12
|
+
passive crawling, active probing, and multi-source intelligence gathering
|
|
13
|
+
into a single run.
|
|
14
|
+
.PP
|
|
15
|
+
During a scan,
|
|
16
|
+
.B spider
|
|
17
|
+
follows links, parses forms and JavaScript, renders single-page
|
|
18
|
+
applications via a headless browser, mines the Wayback Machine and
|
|
19
|
+
certificate transparency logs, and probes for admin panels, sensitive
|
|
20
|
+
files, GraphQL and OpenAPI endpoints, and directories from a
|
|
21
|
+
user-supplied wordlist. Every discovered URL is recorded with its HTTP
|
|
22
|
+
method, confidence level, and observed parameters.
|
|
23
|
+
.PP
|
|
24
|
+
After the forward crawl completes,
|
|
25
|
+
.B spider
|
|
26
|
+
also walks back up every discovered path to probe ancestor directories
|
|
27
|
+
that were never directly linked to \(em for example, finding
|
|
28
|
+
.I /js/
|
|
29
|
+
open to directory listing after only ever seeing individual
|
|
30
|
+
.I /js/*.min.js
|
|
31
|
+
hits \(em the way a recursive directory brute-forcer would. This is on
|
|
32
|
+
by default; see
|
|
33
|
+
.BR \-k .
|
|
34
|
+
.PP
|
|
35
|
+
.B spider
|
|
36
|
+
auto-detects whether its stdout is a terminal or a pipe. When piped
|
|
37
|
+
(e.g.
|
|
38
|
+
.BR "spider target.com | httpx" ),
|
|
39
|
+
the banner, progress animation, and full colour-coded report are routed
|
|
40
|
+
to stderr, and stdout carries only the structured report in the format
|
|
41
|
+
requested with
|
|
42
|
+
.BR \-f
|
|
43
|
+
(plain newline-separated URLs by default). No extra flag is required
|
|
44
|
+
for this; see the
|
|
45
|
+
.B Piping
|
|
46
|
+
section below.
|
|
47
|
+
.PP
|
|
48
|
+
The output includes a structured JSON report and a colour-coded
|
|
49
|
+
terminal summary covering: response headers and missing security
|
|
50
|
+
controls, TLS posture, detected technology stack, robots.txt and
|
|
51
|
+
sitemap findings, Wayback-archived endpoints, HTML and JS comment leaks,
|
|
52
|
+
a full parameter map per endpoint, authentication-walled paths, security
|
|
53
|
+
findings (GraphQL introspection, CORS, source maps, exposed secrets),
|
|
54
|
+
and intelligence classifications (admin panels, authentication
|
|
55
|
+
endpoints, unauthenticated APIs, sensitive data sources, legacy
|
|
56
|
+
interfaces, and file upload points). When a CTF flag format is supplied
|
|
57
|
+
via
|
|
58
|
+
.BR \-K ,
|
|
59
|
+
matched flags are surfaced in a dedicated section at the top of the
|
|
60
|
+
findings.
|
|
61
|
+
.PP
|
|
62
|
+
\fITARGET\fR is the base URL of the application to scan, e.g.
|
|
63
|
+
.IR https://example.com .
|
|
64
|
+
.SH OPTIONS
|
|
65
|
+
.SS "Scan Options"
|
|
66
|
+
.TP
|
|
67
|
+
.BR \-d ", " \-\-depth " " \fIN\fR
|
|
68
|
+
Maximum crawl depth (default: 4).
|
|
69
|
+
.TP
|
|
70
|
+
.BR \-W ", " \-\-delay " " \fIS\fR
|
|
71
|
+
Fixed delay between requests per host, in seconds (default: 0, adaptive).
|
|
72
|
+
.TP
|
|
73
|
+
.BR \-c ", " \-\-concurrency " " \fIN\fR
|
|
74
|
+
Number of concurrent crawl workers (default: 12).
|
|
75
|
+
.TP
|
|
76
|
+
.BR \-t ", " \-\-timeout " " \fIS\fR
|
|
77
|
+
Per-request timeout in seconds (default: 15).
|
|
78
|
+
.TP
|
|
79
|
+
.BR \-v ", " \-\-verbose
|
|
80
|
+
Show all discovery logs, including low-confidence and informational events.
|
|
81
|
+
.SS "Authentication"
|
|
82
|
+
.TP
|
|
83
|
+
.BR \-C ", " \-\-cookie " " \fICOOKIE\fR
|
|
84
|
+
Cookie string (e.g. \fB"session=42"\fR), dict-style string, or path to a cookie
|
|
85
|
+
file. Used to scan authenticated areas of the application. Since the spider does
|
|
86
|
+
not support automated form-login using username and password, you must manually
|
|
87
|
+
log in via a browser and supply the session cookie here.
|
|
88
|
+
.TP
|
|
89
|
+
.BR \-a ", " \-\-auth " " \fIHEADER\fR
|
|
90
|
+
Authorization header value, e.g. \fB"Bearer eyJ..."\fR.
|
|
91
|
+
.TP
|
|
92
|
+
.BR \-u ", " \-\-basic\-auth " " \fIUSER:PASS\fR
|
|
93
|
+
HTTP Basic Access Authentication credentials, e.g. \fBadmin:password\fR. Note that
|
|
94
|
+
this is for server-level basic authentication, not standard web login forms.
|
|
95
|
+
.TP
|
|
96
|
+
.BR \-X ", " \-\-header " " \fI"NAME: VALUE"\fR
|
|
97
|
+
Custom HTTP header, repeatable. Pass custom headers formatted as \fB"Name: Value"\fR.
|
|
98
|
+
Useful for program-required tester identification or custom tokens.
|
|
99
|
+
.SS "Output"
|
|
100
|
+
.TP
|
|
101
|
+
.BR \-o ", " \-\-out " " \fIFILE\fR
|
|
102
|
+
Write an additional copy of the report to \fIFILE\fR. A JSON report is
|
|
103
|
+
always saved automatically regardless of this option.
|
|
104
|
+
.TP
|
|
105
|
+
.BR \-f ", " \-\-format " " "{json,jsonl,csv,burp,urls,nuclei}"
|
|
106
|
+
Extra output format for the report written to \fB\-\-out\fR
|
|
107
|
+
(default: \fBjson\fR).
|
|
108
|
+
.SS "Feature Flags"
|
|
109
|
+
.TP
|
|
110
|
+
.BR \-P ", " \-\-no\-playwright
|
|
111
|
+
Disable headless browser SPA scanning. Without this flag, \fBspider\fR
|
|
112
|
+
attempts patchright, then playwright-stealth, then falls back to manual
|
|
113
|
+
JavaScript analysis.
|
|
114
|
+
.TP
|
|
115
|
+
.BR \-p ", " \-\-probe
|
|
116
|
+
Enable intelligent probing phase (extra method-discovery requests per
|
|
117
|
+
endpoint). Off by default.
|
|
118
|
+
.TP
|
|
119
|
+
.BR \-m ", " \-\-admin\-probe
|
|
120
|
+
Probe common admin/management panel paths. Off by default.
|
|
121
|
+
.TP
|
|
122
|
+
.BR \-e ", " \-\-sensitive\-probe
|
|
123
|
+
Probe known sensitive file paths (.env, .git, backups, etc.). Off by default.
|
|
124
|
+
.TP
|
|
125
|
+
.BR \-y ", " \-\-wayback
|
|
126
|
+
Query the Wayback Machine for archived URLs. Off by default.
|
|
127
|
+
.TP
|
|
128
|
+
.BR \-I ", " \-\-spa\-interact
|
|
129
|
+
Enable SPA form filling and button clicking during headless browser
|
|
130
|
+
scanning. Only use against targets you are authorized to test, as this
|
|
131
|
+
performs active interactions with the application.
|
|
132
|
+
.TP
|
|
133
|
+
.BR \-J ", " \-\-deep\-spa
|
|
134
|
+
After crawling, revisit every discovered page in a real browser to capture
|
|
135
|
+
background XHR/fetch API calls (the "Network tab" view). Best for smaller targets
|
|
136
|
+
with few sub-applications or lab instances — captures dynamic API endpoints
|
|
137
|
+
that only fire when page JS executes.
|
|
138
|
+
.TP
|
|
139
|
+
.BR \-R ", " \-\-no\-cors
|
|
140
|
+
Disable CORS misconfiguration checks.
|
|
141
|
+
.TP
|
|
142
|
+
.BR \-G ", " \-\-no\-graphql
|
|
143
|
+
Disable GraphQL introspection probing.
|
|
144
|
+
.TP
|
|
145
|
+
.BR \-O ", " \-\-no\-openapi
|
|
146
|
+
Disable OpenAPI / Swagger discovery.
|
|
147
|
+
.TP
|
|
148
|
+
.BR \-x ", " \-\-extract
|
|
149
|
+
Enable passive data extraction of emails, IP addresses, and cloud storage
|
|
150
|
+
bucket references found in crawled content.
|
|
151
|
+
.TP
|
|
152
|
+
.BR \-s ", " \-\-screenshot " " [\fIPRESET\fR]
|
|
153
|
+
Capture screenshots of key endpoints. \fIPRESET\fR may be one of:
|
|
154
|
+
\fBall\fR, \fBstandard\fR, \fBblocked\fR, \fBerrors\fR, \fBapi\fR,
|
|
155
|
+
\fBadmin\fR, or a regular expression matching endpoint URLs. Defaults to
|
|
156
|
+
\fBstandard\fR if no preset is given.
|
|
157
|
+
.TP
|
|
158
|
+
.BR \-F ", " \-\-no\-filter
|
|
159
|
+
Disable the noise-path filter, including VCS browser UI paths, CDN asset
|
|
160
|
+
paths, and socket.io endpoints in the output.
|
|
161
|
+
.TP
|
|
162
|
+
.BR \-N ", " \-\-no\-crawl
|
|
163
|
+
Skip BFS link crawling entirely. Only the recon and probe modules run:
|
|
164
|
+
robots.txt and sitemap parsing, admin panel probing, sensitive file
|
|
165
|
+
probing, wordlist-based discovery (\fB\-\-wordlist\fR), subdomain
|
|
166
|
+
enumeration (\fB\-\-subdomains\fR), and Wayback Machine history mining.
|
|
167
|
+
Useful for fast, targeted reconnaissance without traversing the site's
|
|
168
|
+
link graph.
|
|
169
|
+
.TP
|
|
170
|
+
.BR \-k ", " \-\-no\-backtrack
|
|
171
|
+
Disable parent-directory backtracking. On by default: after the crawl,
|
|
172
|
+
.B spider
|
|
173
|
+
probes every ancestor directory of every discovered path (e.g. finding
|
|
174
|
+
.I /js/
|
|
175
|
+
open after only ever seeing individual
|
|
176
|
+
.IR /js/*.min.js " hits)," and crawls whatever that turns up \(em
|
|
177
|
+
listed directories, in particular, often expose files the forward
|
|
178
|
+
crawl never had a link to.
|
|
179
|
+
.SS "Piping"
|
|
180
|
+
.TP
|
|
181
|
+
.BR \-Q ", " \-\-pipe
|
|
182
|
+
Force machine-pipe mode: the banner, progress animation, and full
|
|
183
|
+
colour-coded report are routed to stderr; stdout carries only the
|
|
184
|
+
structured report, in the format chosen with
|
|
185
|
+
.BR \-f .
|
|
186
|
+
This is auto-enabled whenever stdout is not a terminal, so
|
|
187
|
+
.B "spider target.com | httpx"
|
|
188
|
+
or
|
|
189
|
+
.B "spider target.com | nuclei -t cves/"
|
|
190
|
+
already work with no flag at all \(em pass
|
|
191
|
+
.B \-Q
|
|
192
|
+
explicitly to force clean stdout output even when stdout
|
|
193
|
+
.I is
|
|
194
|
+
a terminal. With multiple targets read from stdin and the default JSON
|
|
195
|
+
format, each target's report is written as one compact line (JSONL).
|
|
196
|
+
When piping, \fB\-f\fR defaults to \fBurls\fR instead of \fBjson\fR,
|
|
197
|
+
since that's what most downstream tools expect.
|
|
198
|
+
.SS "Scope"
|
|
199
|
+
.TP
|
|
200
|
+
.BR \-\-subdomains
|
|
201
|
+
Enable subdomain enumeration via certificate transparency logs.
|
|
202
|
+
.TP
|
|
203
|
+
.BR \-S ", " \-\-follow\-subdomains
|
|
204
|
+
Crawl discovered subdomains within the base domain.
|
|
205
|
+
.TP
|
|
206
|
+
.BR \-r ", " \-\-follow\-redirects
|
|
207
|
+
Follow cross-host redirects and add the destination host to scope.
|
|
208
|
+
.TP
|
|
209
|
+
.BR \-A ", " \-\-scope " " \fIHOSTS\fR
|
|
210
|
+
Comma-separated list of additional hosts to include in scope, e.g.
|
|
211
|
+
\fBapi.target.com,cdn.target.com\fR.
|
|
212
|
+
.TP
|
|
213
|
+
.BR \-w ", " \-\-wordlist " " \fIFILE\fR
|
|
214
|
+
Path to a newline-separated wordlist of directory and file names. Each
|
|
215
|
+
entry is requested against the target; responses are filtered through the
|
|
216
|
+
same soft-404 and canary-fingerprint logic used for sensitive-file
|
|
217
|
+
detection, so only meaningful hits are reported. Combine with
|
|
218
|
+
\fB\-\-no\-crawl\fR for a discovery-only pass.
|
|
219
|
+
.SS "CTF"
|
|
220
|
+
.TP
|
|
221
|
+
.BR \-\-ctf
|
|
222
|
+
Enable CTF Mode. Automatically sets target flag matching templates to common defaults (e.g. flag{}, FLAG{}, etc. if not explicitly set via \fB\-K\fR), and enables active probing (\fB\-p\fR), sensitive files scanning (\fB\-e\fR), admin panel probing (\fB\-m\fR), GraphQL/OpenAPI schema discovery, and CORS audits with a higher default concurrency of 20.
|
|
223
|
+
.TP
|
|
224
|
+
.BR \-K ", " \-\-ctf\-flag " " \fITEMPLATE\fR
|
|
225
|
+
Flag format template to scan for across all crawled content (HTML, JS,
|
|
226
|
+
CSS, JSON responses, error pages, and comments). Use \fB{}\fR as the
|
|
227
|
+
placeholder for the flag body. Multiple formats may be given
|
|
228
|
+
comma-separated, e.g. \fBflag{},ctf{}\fR.
|
|
229
|
+
.SS "Utilities"
|
|
230
|
+
.TP
|
|
231
|
+
.BR \-D ", " \-\-diff " " \fIOLD_REPORT\fR
|
|
232
|
+
Diff the results of this scan against a previous JSON report, highlighting
|
|
233
|
+
new, removed, and changed endpoints.
|
|
234
|
+
.TP
|
|
235
|
+
.BR \-H ", " \-\-har " " \fIHAR_FILE\fR
|
|
236
|
+
Import a browser HAR session file to seed the scan with authenticated or
|
|
237
|
+
otherwise hard-to-reach requests captured during manual browsing.
|
|
238
|
+
.TP
|
|
239
|
+
.BR \-U ", " \-\-upgrade
|
|
240
|
+
Upgrade \fBspider\fR to the latest version.
|
|
241
|
+
.SS "General"
|
|
242
|
+
.TP
|
|
243
|
+
.BR \-h ", " \-\-help
|
|
244
|
+
Show a summary of command-line options and exit.
|
|
245
|
+
.SH OUTPUT
|
|
246
|
+
.B spider
|
|
247
|
+
always writes a JSON report to the working directory, named after the
|
|
248
|
+
target host and scan timestamp. The on-screen summary includes:
|
|
249
|
+
.PP
|
|
250
|
+
.RS
|
|
251
|
+
.IP \(bu 3
|
|
252
|
+
response headers and missing security headers
|
|
253
|
+
.IP \(bu 3
|
|
254
|
+
TLS/certificate findings
|
|
255
|
+
.IP \(bu 3
|
|
256
|
+
detected technology stack
|
|
257
|
+
.IP \(bu 3
|
|
258
|
+
robots.txt disallowed paths and discovered endpoints
|
|
259
|
+
.IP \(bu 3
|
|
260
|
+
a parameter map of query, form, and runtime parameters per endpoint
|
|
261
|
+
.IP \(bu 3
|
|
262
|
+
authentication-walled endpoints
|
|
263
|
+
.IP \(bu 3
|
|
264
|
+
intelligence classifications: admin panels, IDOR candidates, file upload
|
|
265
|
+
endpoints, authentication endpoints, unauthenticated APIs, sensitive data
|
|
266
|
+
sources, and legacy/deprecated endpoints
|
|
267
|
+
.RE
|
|
268
|
+
.SH EXAMPLES
|
|
269
|
+
.TP
|
|
270
|
+
Scan a target with default settings:
|
|
271
|
+
.B spider http://target.example
|
|
272
|
+
.TP
|
|
273
|
+
Authenticated scan using a session cookie:
|
|
274
|
+
.B spider \-C "PHPSESSID=abc123" http://target.example
|
|
275
|
+
.TP
|
|
276
|
+
Recon-only pass with a custom wordlist, no link crawling:
|
|
277
|
+
.B spider \-N \-\-wordlist ~/wordlists/common.txt http://target.example
|
|
278
|
+
.TP
|
|
279
|
+
Full reconnaissance including subdomain enumeration, no crawl:
|
|
280
|
+
.B spider \-N \-\-subdomains \-\-wordlist ~/wordlists/common.txt http://target.example
|
|
281
|
+
.TP
|
|
282
|
+
SPA scan with headless browser interaction enabled:
|
|
283
|
+
.B spider \-I https://app.example
|
|
284
|
+
.TP
|
|
285
|
+
Import a HAR capture and diff against a previous report:
|
|
286
|
+
.B spider \-H session.har \-D previous_report.json http://target.example
|
|
287
|
+
.TP
|
|
288
|
+
Pipe discovered URLs straight into another tool, no extra flag needed:
|
|
289
|
+
.B "spider http://target.example | httpx"
|
|
290
|
+
.SH FILES
|
|
291
|
+
.TP
|
|
292
|
+
.I spider_<host>_<timestamp>.json
|
|
293
|
+
Auto-saved JSON report for each scan.
|
|
294
|
+
.SH AUTHOR
|
|
295
|
+
.B spider
|
|
296
|
+
was written by L4ZZ3RJ0D and is part of the Hellhound Pentest framework (https://github.com/project-hellhound-org).
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hellhound-spider
|
|
3
|
+
Version: 14.1
|
|
4
|
+
Summary: Autonomous web crawler and recon engine for security testing — SPA + Non-SPA crawling, header analysis, subdomain enumeration, and intelligence classification
|
|
5
|
+
Author-email: Sree Danush S <lazzer@gmail.com>
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/project-hellhound-org/hellhound-spider
|
|
8
|
+
Project-URL: Changelog, https://github.com/project-hellhound-org/hellhound-spider/blob/main/CHANGELOG.md
|
|
9
|
+
Project-URL: Issues, https://github.com/project-hellhound-org/hellhound-spider/issues
|
|
10
|
+
Keywords: security,pentest,crawler,web-crawler,spa,recon,reconnaissance,bug-bounty,ctf,attack-surface,endpoint-discovery
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Information Technology
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Security
|
|
20
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
25
|
+
Requires-Dist: beautifulsoup4>=4.12.0
|
|
26
|
+
Requires-Dist: lxml>=5.0.0
|
|
27
|
+
Provides-Extra: spa
|
|
28
|
+
Requires-Dist: playwright>=1.40.0; extra == "spa"
|
|
29
|
+
Requires-Dist: playwright-stealth>=1.0.6; extra == "spa"
|
|
30
|
+
Requires-Dist: patchright>=0.5.0; extra == "spa"
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
<img src="Images/spider.jpg" alt="Hellhound Spider" width="600"/>
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
<h1 align="center">Hellhound Spider</h1>
|
|
38
|
+
|
|
39
|
+
<p align="center">
|
|
40
|
+
Fully autonomous web crawler for security testing — maps endpoints, parameters, and security issues across traditional and SPA web applications. Drop a URL. Walk away.
|
|
41
|
+
</p>
|
|
42
|
+
|
|
43
|
+
<p align="center">
|
|
44
|
+
<img src="https://img.shields.io/badge/python-3.10+-blue?style=flat-square&logo=python&logoColor=white"/>
|
|
45
|
+
<img src="https://img.shields.io/badge/version-14.1-red?style=flat-square"/>
|
|
46
|
+
<img src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey?style=flat-square"/>
|
|
47
|
+
<img src="https://img.shields.io/badge/license-GPL--3.0-blue?style=flat-square"/>
|
|
48
|
+
</p>
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## What It Does
|
|
53
|
+
|
|
54
|
+
Hellhound Spider crawls a web application and produces a complete map of every endpoint, parameter, and security surface it can reach. The output is a structured JSON report — sorted by confidence, with parameters grouped by source, ready to feed directly into attack agents or import into Burp Suite.
|
|
55
|
+
|
|
56
|
+
It runs two crawl engines in parallel: async HTTP workers for speed, and headless Chromium for JavaScript-heavy SPAs. For SPAs it intercepts live XHR and fetch calls as the browser actually makes them — including POST body parameters and response IDs. Once the forward crawl is done, it also walks back up every discovered path to probe ancestor directories that were never directly linked to, the way a directory brute-forcer would. When the crawl finishes, it classifies every endpoint automatically so downstream agents start with context, not cold discovery.
|
|
57
|
+
|
|
58
|
+
Output pipes straight into other tools — `spider https://target.com | httpx` just works, no extra flag needed.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
### Linux / macOS
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
git clone https://github.com/project-hellhound-org/hellhound-spider.git
|
|
68
|
+
cd hellhound-spider
|
|
69
|
+
chmod +x install.sh
|
|
70
|
+
./install.sh
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The installer creates an isolated virtual environment (`.venv`) and a system-wide `spider` wrapper:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
spider https://target.com
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Windows
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
git clone https://github.com/project-hellhound-org/hellhound-spider.git
|
|
83
|
+
cd hellhound-spider
|
|
84
|
+
pip install -e . # core install
|
|
85
|
+
pip install -e ".[spa]" # with Playwright SPA support
|
|
86
|
+
playwright install chromium
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Uninstall
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
./uninstall.sh # Linux / macOS
|
|
93
|
+
pip uninstall hellhound-spider # Windows
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Usage
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
spider <target> [options]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
A handful of the flags you'll actually reach for day to day:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
-d, --depth Maximum crawl depth (default: 4)
|
|
108
|
+
-c, --concurrency Concurrent async workers (default: 12)
|
|
109
|
+
-C, --cookie Session cookie string or cookie file
|
|
110
|
+
-a, --auth Authorization header, e.g. "Bearer eyJ..."
|
|
111
|
+
-x, --extract Extract emails, IPs, cloud buckets, secrets
|
|
112
|
+
-s, --screenshot Capture screenshots (all/standard/api/admin/...)
|
|
113
|
+
-f, --format json / jsonl / csv / burp / urls / nuclei
|
|
114
|
+
-o, --out Output file path
|
|
115
|
+
-v, --verbose Show all discovery logs
|
|
116
|
+
--ctf CTF mode — probes, CORS, flag scanning, high concurrency
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
That's the short list. Spider has a lot more surface than that — auth, scope control, modular probing, SPA interaction, HAR replay, subdomain enumeration, and more. Run `spider --help` or `man spider` for the full, always-current reference rather than relying on a table here that can drift out of sync with the tool.
|
|
120
|
+
|
|
121
|
+
See [CHANGELOG.md](CHANGELOG.md) for version history.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Examples
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Basic scan — drop a URL, spider does the rest
|
|
129
|
+
spider https://target.com
|
|
130
|
+
|
|
131
|
+
# Authenticated with a session cookie
|
|
132
|
+
spider https://target.com -C "session=abc123; csrf=xyz"
|
|
133
|
+
|
|
134
|
+
# Authenticated with Bearer token / HTTP Basic Auth
|
|
135
|
+
spider https://target.com -a "Bearer eyJhbGci..."
|
|
136
|
+
spider https://target.com -u "admin:password"
|
|
137
|
+
|
|
138
|
+
# Pipe discovered URLs straight into another tool
|
|
139
|
+
spider https://target.com | httpx
|
|
140
|
+
spider https://target.com | nuclei -t cves/
|
|
141
|
+
|
|
142
|
+
# Export for Burp Suite
|
|
143
|
+
spider https://target.com -f burp -o burp.xml
|
|
144
|
+
|
|
145
|
+
# Extraction and screenshots
|
|
146
|
+
spider https://target.com -x -s all
|
|
147
|
+
|
|
148
|
+
# Deeper crawl, all logs visible
|
|
149
|
+
spider https://target.com -d 6 -v
|
|
150
|
+
|
|
151
|
+
# Seed crawl with a HAR file (authenticated session replay)
|
|
152
|
+
spider https://target.com --har session.har
|
|
153
|
+
|
|
154
|
+
# Scan and extract specific CTF flags from all source files and comments
|
|
155
|
+
spider https://target.com --ctf-flag "HELLCORP{},FLAG{}"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## What Gets Found
|
|
161
|
+
|
|
162
|
+
### Discovery Vectors
|
|
163
|
+
|
|
164
|
+
HTML crawl, live SPA XHR interception, parent-directory backtracking (probes ancestor directories the forward crawl never linked to), Intelligent Robots Analysis (Disallow/Allow mapping + comment mining), sitemap XML (with index recursion), `.well-known` (OIDC/JWKS), JSON path chaining, SPA hash routes, lazy-load attributes, CSP header hints, OpenAPI/Swagger specs, GraphQL introspection, crt.sh certificate transparency, Wayback Machine CDX API, security.txt (RFC 9116), HAR file import, HTML comment mining, response header analysis, TLS/DNS intel, WAF fingerprinting, and JS SCA analysis.
|
|
165
|
+
|
|
166
|
+
### Parameter Mining
|
|
167
|
+
|
|
168
|
+
Form fields (with type metadata: hidden, file, required), JS fetch/axios body keys, URL query strings, OpenAPI spec fields, POST body params from live browser requests, structural normalization (clustering dynamic segments).
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Output Formats
|
|
173
|
+
|
|
174
|
+
- **JSON** — Full-fidelity report with all classification metadata.
|
|
175
|
+
- **Burp** — XML format for direct import into Burp Suite.
|
|
176
|
+
- **CSV** — Spreadsheet-ready endpoint and parameter list.
|
|
177
|
+
- **JSONL** — One endpoint per line for streaming pipelines.
|
|
178
|
+
- **URLs** — Raw newline-separated list of discovered URLs (the default when piped to another tool).
|
|
179
|
+
- **Nuclei** — Target list formatted for direct piping into Nuclei.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Requirements
|
|
184
|
+
|
|
185
|
+
- Python 3.10+
|
|
186
|
+
- `aiohttp`, `beautifulsoup4`, `lxml`
|
|
187
|
+
- Playwright + Chromium *(optional, for SPA targets)*
|
|
188
|
+
- Patchright *(optional, automatic bot-bypass fallback when WAF blocks Playwright)*
|
|
189
|
+
- WhatWeb *(optional, automatic system technology fingerprinter; installed by install.sh)*
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
For authorized security testing only. This software is licensed under the **GNU General Public License v3 (GPLv3)**.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Author
|
|
198
|
+
|
|
199
|
+
<a href="https://l4zz3rj0d.github.io">
|
|
200
|
+
<img src="https://img.shields.io/badge/Founder-L4ZZ3RJ0D-c0392b?style=for-the-badge" alt="L4ZZ3RJ0D"/>
|
|
201
|
+
</a>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
spider.py,sha256=8e4KWD_Ms4Zd-3X2IA29q0bn4ZQn_Do_h3YAryendzE,464752
|
|
2
|
+
hellhound_spider-14.1.data/data/share/man/man1/spider.1,sha256=guKy61YSbAkZxiGhgiQZvCYbF-zor4PS9o2RzmevzWE,11441
|
|
3
|
+
hellhound_spider-14.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
4
|
+
hellhound_spider-14.1.dist-info/METADATA,sha256=WpPdRlspYwD89MKJDeLUjYh-xJ8mkC5mhip8TZ2Wj3c,8034
|
|
5
|
+
hellhound_spider-14.1.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
6
|
+
hellhound_spider-14.1.dist-info/entry_points.txt,sha256=QaQLy_y3v9m2wbbGcpGe_lq3gQrK0EKwyt3dIsH8OWI,39
|
|
7
|
+
hellhound_spider-14.1.dist-info/top_level.txt,sha256=-omgKN_8Zv_sz8Nh9RKvMeKEgG6ssFAFraIRpgIn8zA,7
|
|
8
|
+
hellhound_spider-14.1.dist-info/RECORD,,
|