ReconNinja 5.0.1__tar.gz

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.
Files changed (47) hide show
  1. reconninja-5.0.1/LICENSE +21 -0
  2. reconninja-5.0.1/MANIFEST.in +8 -0
  3. reconninja-5.0.1/PKG-INFO +331 -0
  4. reconninja-5.0.1/README.md +273 -0
  5. reconninja-5.0.1/ReconNinja.egg-info/PKG-INFO +331 -0
  6. reconninja-5.0.1/ReconNinja.egg-info/SOURCES.txt +45 -0
  7. reconninja-5.0.1/ReconNinja.egg-info/dependency_links.txt +1 -0
  8. reconninja-5.0.1/ReconNinja.egg-info/entry_points.txt +2 -0
  9. reconninja-5.0.1/ReconNinja.egg-info/requires.txt +15 -0
  10. reconninja-5.0.1/ReconNinja.egg-info/top_level.txt +4 -0
  11. reconninja-5.0.1/core/__init__.py +1 -0
  12. reconninja-5.0.1/core/ai_analysis.py +355 -0
  13. reconninja-5.0.1/core/cve_lookup.py +204 -0
  14. reconninja-5.0.1/core/orchestrator.py +555 -0
  15. reconninja-5.0.1/core/ports.py +596 -0
  16. reconninja-5.0.1/core/resume.py +181 -0
  17. reconninja-5.0.1/core/shodan_lookup.py +105 -0
  18. reconninja-5.0.1/core/ssl_scan.py +159 -0
  19. reconninja-5.0.1/core/subdomains.py +199 -0
  20. reconninja-5.0.1/core/updater.py +204 -0
  21. reconninja-5.0.1/core/virustotal.py +146 -0
  22. reconninja-5.0.1/core/vuln.py +144 -0
  23. reconninja-5.0.1/core/wayback.py +114 -0
  24. reconninja-5.0.1/core/web.py +211 -0
  25. reconninja-5.0.1/core/whois_lookup.py +92 -0
  26. reconninja-5.0.1/output/__init__.py +1 -0
  27. reconninja-5.0.1/output/report_html.py +695 -0
  28. reconninja-5.0.1/output/reports.py +508 -0
  29. reconninja-5.0.1/plugins/__init__.py +94 -0
  30. reconninja-5.0.1/plugins/cve_banner_check.py +35 -0
  31. reconninja-5.0.1/pyproject.toml +59 -0
  32. reconninja-5.0.1/requirements.txt +1 -0
  33. reconninja-5.0.1/setup.cfg +4 -0
  34. reconninja-5.0.1/tests/test_ai_analysis.py +333 -0
  35. reconninja-5.0.1/tests/test_cve_lookup.py +333 -0
  36. reconninja-5.0.1/tests/test_models.py +396 -0
  37. reconninja-5.0.1/tests/test_orchestrator.py +821 -0
  38. reconninja-5.0.1/tests/test_ports.py +198 -0
  39. reconninja-5.0.1/tests/test_report_html.py +276 -0
  40. reconninja-5.0.1/tests/test_resume.py +361 -0
  41. reconninja-5.0.1/tests/test_v4_modules.py +738 -0
  42. reconninja-5.0.1/utils/__init__.py +1 -0
  43. reconninja-5.0.1/utils/helpers.py +169 -0
  44. reconninja-5.0.1/utils/logger.py +62 -0
  45. reconninja-5.0.1/utils/models.py +210 -0
  46. reconninja-5.0.1/utils/parser.py +72 -0
  47. reconninja-5.0.1/utils/updater.py +189 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ExploitCraft
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,8 @@
1
+ include README.md
2
+ include LICENSE
3
+ include requirements.txt
4
+ include pyproject.toml
5
+ recursive-include core *.py
6
+ recursive-include utils *.py
7
+ recursive-include output *.py
8
+ recursive-include plugins *.py
@@ -0,0 +1,331 @@
1
+ Metadata-Version: 2.4
2
+ Name: ReconNinja
3
+ Version: 5.0.1
4
+ Summary: 14-phase automated reconnaissance framework for security researchers
5
+ Author-email: ExploitCraft <emonkk06@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2026 ExploitCraft
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/ExploitCraft/ReconNinja
29
+ Project-URL: Repository, https://github.com/ExploitCraft/ReconNinja
30
+ Project-URL: Issues, https://github.com/ExploitCraft/ReconNinja/issues
31
+ Keywords: recon,reconnaissance,security,penetration-testing,osint
32
+ Classifier: Development Status :: 5 - Production/Stable
33
+ Classifier: Environment :: Console
34
+ Classifier: Intended Audience :: Information Technology
35
+ Classifier: License :: OSI Approved :: MIT License
36
+ Classifier: Operating System :: POSIX :: Linux
37
+ Classifier: Programming Language :: Python :: 3
38
+ Classifier: Programming Language :: Python :: 3.10
39
+ Classifier: Programming Language :: Python :: 3.11
40
+ Classifier: Programming Language :: Python :: 3.12
41
+ Classifier: Topic :: Security
42
+ Requires-Python: >=3.10
43
+ Description-Content-Type: text/markdown
44
+ License-File: LICENSE
45
+ Requires-Dist: rich>=13.0.0
46
+ Provides-Extra: ai
47
+ Requires-Dist: groq>=0.5.0; extra == "ai"
48
+ Requires-Dist: google-generativeai>=0.5.0; extra == "ai"
49
+ Requires-Dist: openai>=1.0.0; extra == "ai"
50
+ Provides-Extra: shodan
51
+ Requires-Dist: shodan>=1.28.0; extra == "shodan"
52
+ Provides-Extra: full
53
+ Requires-Dist: groq>=0.5.0; extra == "full"
54
+ Requires-Dist: google-generativeai>=0.5.0; extra == "full"
55
+ Requires-Dist: openai>=1.0.0; extra == "full"
56
+ Requires-Dist: shodan>=1.28.0; extra == "full"
57
+ Dynamic: license-file
58
+
59
+ <div align="center">
60
+
61
+ # ReconNinja
62
+
63
+ **14-phase automated reconnaissance framework for authorized security testing.**
64
+
65
+ [![Version](https://img.shields.io/badge/version-5.0.0-6366f1?style=flat-square)](https://github.com/ExploitCraft/ReconNinja/releases)
66
+ [![Python](https://img.shields.io/badge/python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org)
67
+ [![Tests](https://img.shields.io/badge/tests-passing-22c55e?style=flat-square)](tests/)
68
+ [![License](https://img.shields.io/badge/license-MIT-f4f4f5?style=flat-square)](LICENSE)
69
+ [![Author](https://img.shields.io/badge/author-ExploitCraft-a78bfa?style=flat-square)](https://github.com/ExploitCraft)
70
+ [![Docs](https://img.shields.io/badge/docs-doc.emonpersonal.xyz-00e5ff?style=flat-square)](http://doc.emonpersonal.xyz/)
71
+
72
+ > ⚠ Use only against targets you own or have explicit written permission to test.
73
+
74
+ 📄 **Documentation available at [doc.emonpersonal.xyz](http://doc.emonpersonal.xyz/)**
75
+
76
+ </div>
77
+
78
+ ---
79
+
80
+ ## What it does
81
+
82
+ ReconNinja automates every phase of a reconnaissance engagement into a single command. Point it at a domain or IP and it drives the full pipeline — passive OSINT, port scanning, web discovery, vulnerability scanning, credential intelligence, and AI-powered threat analysis — then generates HTML, JSON, and Markdown reports.
83
+
84
+ ---
85
+
86
+ ## Install
87
+
88
+ ```bash
89
+ # From GitHub (always latest)
90
+ pip install git+https://github.com/ExploitCraft/ReconNinja.git
91
+
92
+ # From PIP
93
+ pip install ReconNinja
94
+
95
+ # From install file (RECOMMENDED)
96
+ git clone https://github.com/ExploitCraft/ReconNinja.git
97
+ cd ReconNinja && chmod +x install.sh && ./install.sh
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Quick start
103
+
104
+ ```bash
105
+ # Interactive mode — guided setup
106
+ reconninja
107
+
108
+ # Standard scan
109
+ reconninja -t example.com
110
+
111
+ # Full 14-phase pipeline
112
+ reconninja -t example.com --profile full_suite -y
113
+
114
+ # v5: WHOIS + Wayback + SSL — no keys needed
115
+ reconninja -t example.com --whois --wayback --ssl -y
116
+
117
+ # v5: Full intelligence
118
+ reconninja -t example.com --profile full_suite \
119
+ --whois --wayback --ssl \
120
+ --shodan --shodan-key YOUR_KEY \
121
+ --vt --vt-key YOUR_KEY \
122
+ --ai --ai-provider groq --ai-key YOUR_KEY \
123
+ -y
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Scan profiles
129
+
130
+ | Profile | What runs |
131
+ |---|---|
132
+ | `fast` | Top 100 ports, no scripts |
133
+ | `standard` | Top 1000 ports, scripts + versions *(default)* |
134
+ | `thorough` | All ports, OS detection, aggressive scripts |
135
+ | `stealth` | SYN scan, low timing, no banners |
136
+ | `web_only` | httpx + dir scan + nuclei |
137
+ | `port_only` | RustScan + Masscan + Nmap |
138
+ | `full_suite` | All 14 phases |
139
+ | `custom` | Interactive builder |
140
+
141
+ ---
142
+
143
+ ## Pipeline
144
+
145
+ ```
146
+ Phase 1 Passive Recon subdomain enum (amass, subfinder, crt.sh)
147
+ Phase 2 RustScan ultra-fast port discovery (all 65535 ports)
148
+ Phase 2b Async TCP asyncio fallback, no root required
149
+ Phase 3 Masscan optional SYN sweep (root required)
150
+ Phase 4 Nmap deep service / version / script analysis
151
+ Phase 4b CVE Lookup NVD API CVE matching on detected services
152
+ Phase 5 httpx live web detection + tech fingerprint
153
+ Phase 6 Dir Scan feroxbuster → ffuf → dirsearch fallback chain
154
+ Phase 7 WhatWeb technology fingerprinting
155
+ Phase 8 Nikto classic web vulnerability scanner
156
+ Phase 9 Nuclei template-based vulnerability detection
157
+ Phase 10 Screenshots aquatone → gowitness fallback
158
+ Phase 12 v5 Integrations WHOIS · Wayback · SSL · VirusTotal · Shodan
159
+ Phase 14 AI Analysis Groq / Ollama / Gemini / OpenAI threat summary
160
+ ```
161
+
162
+ ---
163
+
164
+ ## What's new in v5.0.0
165
+
166
+ **5 new intelligence modules — 3 need zero API keys:**
167
+
168
+ | Module | Flag | API Key |
169
+ |---|---|---|
170
+ | WHOIS lookup | `--whois` | None |
171
+ | Wayback Machine URL discovery | `--wayback` | None |
172
+ | SSL/TLS certificate analysis | `--ssl` | None |
173
+ | VirusTotal reputation | `--vt --vt-key KEY` | Free tier |
174
+ | Shodan host intelligence | `--shodan --shodan-key KEY` | Free tier |
175
+
176
+ **Output control (new flags):**
177
+
178
+ ```bash
179
+ --output-format html # html | json | md | txt | all
180
+ --exclude passive,vuln # skip specific phases
181
+ --timeout 60 # global per-operation timeout
182
+ --rate-limit 1.0 # seconds between requests
183
+ ```
184
+
185
+ ---
186
+
187
+ ## All flags
188
+
189
+ ```
190
+ Target
191
+ -t, --target Domain, IP, CIDR, or path to list file
192
+ -p, --profile Scan profile (see above)
193
+ -y, --yes Skip confirmation prompt (CI/automation)
194
+
195
+ Port scanning
196
+ --all-ports Scan all 65535 ports
197
+ --top-ports N Scan top N ports (default: 1000)
198
+ --timing T1-T5 Nmap timing template (default: T4)
199
+ --rustscan Enable RustScan pre-scan
200
+ --masscan Enable Masscan sweep (root required)
201
+ --masscan-rate N Masscan packets/sec (default: 5000)
202
+ --async-concurrency Async TCP concurrency (default: 1000)
203
+ --async-timeout Async TCP timeout seconds (default: 1.5)
204
+
205
+ Web & discovery
206
+ --httpx httpx live service detection
207
+ --whatweb WhatWeb fingerprinting
208
+ --ferox Feroxbuster directory scan
209
+ --nikto Nikto scanner
210
+ --nuclei Nuclei vulnerability templates
211
+ --aquatone Screenshots
212
+ --subdomains Subdomain enumeration
213
+ --wordlist-size small | medium | large
214
+
215
+ Vulnerability intelligence
216
+ --cve NVD CVE lookup for detected services
217
+ --nvd-key KEY NVD API key (raises rate limit 5→50 req/30s)
218
+
219
+ v5 integrations
220
+ --shodan Shodan host intelligence
221
+ --shodan-key KEY Shodan API key
222
+ --vt VirusTotal reputation
223
+ --vt-key KEY VirusTotal API key
224
+ --whois WHOIS lookup (no key needed)
225
+ --wayback Wayback Machine URL discovery (no key needed)
226
+ --ssl SSL/TLS certificate analysis (no key needed)
227
+
228
+ AI analysis
229
+ --ai Enable AI threat analysis
230
+ --ai-provider groq | ollama | gemini | openai (default: groq)
231
+ --ai-key KEY API key for AI provider
232
+ --ai-model MODEL Override default model
233
+
234
+ Output
235
+ --output DIR Output directory (default: reports/)
236
+ --output-format FMT all | html | json | md | txt (default: all)
237
+ --exclude PHASES Comma-separated phases to skip
238
+ --timeout N Global per-operation timeout seconds (default: 30)
239
+ --rate-limit N Seconds between requests (default: 0)
240
+
241
+ Scan management
242
+ --resume FILE Resume interrupted scan from state.json
243
+ --update Check GitHub for updates
244
+ --force-update Update even if already on latest
245
+ --check-tools Show tool availability
246
+ ```
247
+
248
+ ---
249
+
250
+ ## Output
251
+
252
+ Each scan creates a timestamped folder:
253
+
254
+ ```
255
+ reports/
256
+ └── example.com_20260307_120000/
257
+ ├── report.html ← dark-mode dashboard
258
+ ├── report.json ← full machine-readable results (includes v5 intelligence data)
259
+ ├── report.md ← markdown summary
260
+ ├── scan_config.json ← exact config used
261
+ ├── scan.log ← full execution log
262
+ ├── state.json ← resume checkpoint
263
+ ├── subdomains/
264
+ ├── nmap/
265
+ └── nuclei/
266
+ ```
267
+
268
+ ---
269
+
270
+ ## Resume interrupted scans
271
+
272
+ ```bash
273
+ # Scan crashes after Phase 8 — resume from last checkpoint
274
+ reconninja --resume reports/example.com_20260307_120000/state.json
275
+ ```
276
+
277
+ All v5 results (WHOIS, Wayback, SSL, VT, Shodan) are preserved in `state.json` and restored on resume.
278
+
279
+ ---
280
+
281
+ ## Plugin system
282
+
283
+ Drop a `.py` file into `plugins/` to extend the pipeline. It receives the full `ReconResult` and `ScanConfig` after all phases complete.
284
+
285
+ ```python
286
+ # plugins/custom.py
287
+ def run(target, out_folder, result, cfg):
288
+ print(f"Custom: {len(result.hosts)} hosts, {len(result.shodan_results)} Shodan entries")
289
+ ```
290
+
291
+ ---
292
+
293
+ ## Tool dependencies
294
+
295
+ Only `rich` is required. All external tools are optional — ReconNinja detects what's available and falls back gracefully.
296
+
297
+ ```bash
298
+ reconninja --check-tools # show availability
299
+ ```
300
+
301
+ Optional tools: `nmap`, `rustscan`, `masscan`, `amass`, `subfinder`, `httpx`, `feroxbuster`, `ffuf`, `dirsearch`, `whatweb`, `nikto`, `nuclei`, `aquatone`, `gowitness`
302
+
303
+ ---
304
+
305
+ ## Development
306
+
307
+ ```bash
308
+ git clone https://github.com/ExploitCraft/ReconNinja.git
309
+ cd ReconNinja
310
+ chmod +x install.sh
311
+ ./install.sh
312
+ python3 -m unittest discover -s tests -v # run all tests
313
+ python3 -m unittest tests.test_v4_modules -v
314
+ python3 -m unittest tests.test_orchestrator -v
315
+ ```
316
+
317
+ ---
318
+
319
+ ## License
320
+
321
+ MIT — see [LICENSE](LICENSE)
322
+
323
+ ---
324
+
325
+ <div align="center">
326
+
327
+ **[ExploitCraft](https://github.com/ExploitCraft)** · Bangladesh · Building tools that matter
328
+
329
+ 📄 Full documentation at **[doc.emonpersonal.xyz](http://doc.emonpersonal.xyz/)**
330
+
331
+ </div>
@@ -0,0 +1,273 @@
1
+ <div align="center">
2
+
3
+ # ReconNinja
4
+
5
+ **14-phase automated reconnaissance framework for authorized security testing.**
6
+
7
+ [![Version](https://img.shields.io/badge/version-5.0.0-6366f1?style=flat-square)](https://github.com/ExploitCraft/ReconNinja/releases)
8
+ [![Python](https://img.shields.io/badge/python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org)
9
+ [![Tests](https://img.shields.io/badge/tests-passing-22c55e?style=flat-square)](tests/)
10
+ [![License](https://img.shields.io/badge/license-MIT-f4f4f5?style=flat-square)](LICENSE)
11
+ [![Author](https://img.shields.io/badge/author-ExploitCraft-a78bfa?style=flat-square)](https://github.com/ExploitCraft)
12
+ [![Docs](https://img.shields.io/badge/docs-doc.emonpersonal.xyz-00e5ff?style=flat-square)](http://doc.emonpersonal.xyz/)
13
+
14
+ > ⚠ Use only against targets you own or have explicit written permission to test.
15
+
16
+ 📄 **Documentation available at [doc.emonpersonal.xyz](http://doc.emonpersonal.xyz/)**
17
+
18
+ </div>
19
+
20
+ ---
21
+
22
+ ## What it does
23
+
24
+ ReconNinja automates every phase of a reconnaissance engagement into a single command. Point it at a domain or IP and it drives the full pipeline — passive OSINT, port scanning, web discovery, vulnerability scanning, credential intelligence, and AI-powered threat analysis — then generates HTML, JSON, and Markdown reports.
25
+
26
+ ---
27
+
28
+ ## Install
29
+
30
+ ```bash
31
+ # From GitHub (always latest)
32
+ pip install git+https://github.com/ExploitCraft/ReconNinja.git
33
+
34
+ # From PIP
35
+ pip install ReconNinja
36
+
37
+ # From install file (RECOMMENDED)
38
+ git clone https://github.com/ExploitCraft/ReconNinja.git
39
+ cd ReconNinja && chmod +x install.sh && ./install.sh
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Quick start
45
+
46
+ ```bash
47
+ # Interactive mode — guided setup
48
+ reconninja
49
+
50
+ # Standard scan
51
+ reconninja -t example.com
52
+
53
+ # Full 14-phase pipeline
54
+ reconninja -t example.com --profile full_suite -y
55
+
56
+ # v5: WHOIS + Wayback + SSL — no keys needed
57
+ reconninja -t example.com --whois --wayback --ssl -y
58
+
59
+ # v5: Full intelligence
60
+ reconninja -t example.com --profile full_suite \
61
+ --whois --wayback --ssl \
62
+ --shodan --shodan-key YOUR_KEY \
63
+ --vt --vt-key YOUR_KEY \
64
+ --ai --ai-provider groq --ai-key YOUR_KEY \
65
+ -y
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Scan profiles
71
+
72
+ | Profile | What runs |
73
+ |---|---|
74
+ | `fast` | Top 100 ports, no scripts |
75
+ | `standard` | Top 1000 ports, scripts + versions *(default)* |
76
+ | `thorough` | All ports, OS detection, aggressive scripts |
77
+ | `stealth` | SYN scan, low timing, no banners |
78
+ | `web_only` | httpx + dir scan + nuclei |
79
+ | `port_only` | RustScan + Masscan + Nmap |
80
+ | `full_suite` | All 14 phases |
81
+ | `custom` | Interactive builder |
82
+
83
+ ---
84
+
85
+ ## Pipeline
86
+
87
+ ```
88
+ Phase 1 Passive Recon subdomain enum (amass, subfinder, crt.sh)
89
+ Phase 2 RustScan ultra-fast port discovery (all 65535 ports)
90
+ Phase 2b Async TCP asyncio fallback, no root required
91
+ Phase 3 Masscan optional SYN sweep (root required)
92
+ Phase 4 Nmap deep service / version / script analysis
93
+ Phase 4b CVE Lookup NVD API CVE matching on detected services
94
+ Phase 5 httpx live web detection + tech fingerprint
95
+ Phase 6 Dir Scan feroxbuster → ffuf → dirsearch fallback chain
96
+ Phase 7 WhatWeb technology fingerprinting
97
+ Phase 8 Nikto classic web vulnerability scanner
98
+ Phase 9 Nuclei template-based vulnerability detection
99
+ Phase 10 Screenshots aquatone → gowitness fallback
100
+ Phase 12 v5 Integrations WHOIS · Wayback · SSL · VirusTotal · Shodan
101
+ Phase 14 AI Analysis Groq / Ollama / Gemini / OpenAI threat summary
102
+ ```
103
+
104
+ ---
105
+
106
+ ## What's new in v5.0.0
107
+
108
+ **5 new intelligence modules — 3 need zero API keys:**
109
+
110
+ | Module | Flag | API Key |
111
+ |---|---|---|
112
+ | WHOIS lookup | `--whois` | None |
113
+ | Wayback Machine URL discovery | `--wayback` | None |
114
+ | SSL/TLS certificate analysis | `--ssl` | None |
115
+ | VirusTotal reputation | `--vt --vt-key KEY` | Free tier |
116
+ | Shodan host intelligence | `--shodan --shodan-key KEY` | Free tier |
117
+
118
+ **Output control (new flags):**
119
+
120
+ ```bash
121
+ --output-format html # html | json | md | txt | all
122
+ --exclude passive,vuln # skip specific phases
123
+ --timeout 60 # global per-operation timeout
124
+ --rate-limit 1.0 # seconds between requests
125
+ ```
126
+
127
+ ---
128
+
129
+ ## All flags
130
+
131
+ ```
132
+ Target
133
+ -t, --target Domain, IP, CIDR, or path to list file
134
+ -p, --profile Scan profile (see above)
135
+ -y, --yes Skip confirmation prompt (CI/automation)
136
+
137
+ Port scanning
138
+ --all-ports Scan all 65535 ports
139
+ --top-ports N Scan top N ports (default: 1000)
140
+ --timing T1-T5 Nmap timing template (default: T4)
141
+ --rustscan Enable RustScan pre-scan
142
+ --masscan Enable Masscan sweep (root required)
143
+ --masscan-rate N Masscan packets/sec (default: 5000)
144
+ --async-concurrency Async TCP concurrency (default: 1000)
145
+ --async-timeout Async TCP timeout seconds (default: 1.5)
146
+
147
+ Web & discovery
148
+ --httpx httpx live service detection
149
+ --whatweb WhatWeb fingerprinting
150
+ --ferox Feroxbuster directory scan
151
+ --nikto Nikto scanner
152
+ --nuclei Nuclei vulnerability templates
153
+ --aquatone Screenshots
154
+ --subdomains Subdomain enumeration
155
+ --wordlist-size small | medium | large
156
+
157
+ Vulnerability intelligence
158
+ --cve NVD CVE lookup for detected services
159
+ --nvd-key KEY NVD API key (raises rate limit 5→50 req/30s)
160
+
161
+ v5 integrations
162
+ --shodan Shodan host intelligence
163
+ --shodan-key KEY Shodan API key
164
+ --vt VirusTotal reputation
165
+ --vt-key KEY VirusTotal API key
166
+ --whois WHOIS lookup (no key needed)
167
+ --wayback Wayback Machine URL discovery (no key needed)
168
+ --ssl SSL/TLS certificate analysis (no key needed)
169
+
170
+ AI analysis
171
+ --ai Enable AI threat analysis
172
+ --ai-provider groq | ollama | gemini | openai (default: groq)
173
+ --ai-key KEY API key for AI provider
174
+ --ai-model MODEL Override default model
175
+
176
+ Output
177
+ --output DIR Output directory (default: reports/)
178
+ --output-format FMT all | html | json | md | txt (default: all)
179
+ --exclude PHASES Comma-separated phases to skip
180
+ --timeout N Global per-operation timeout seconds (default: 30)
181
+ --rate-limit N Seconds between requests (default: 0)
182
+
183
+ Scan management
184
+ --resume FILE Resume interrupted scan from state.json
185
+ --update Check GitHub for updates
186
+ --force-update Update even if already on latest
187
+ --check-tools Show tool availability
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Output
193
+
194
+ Each scan creates a timestamped folder:
195
+
196
+ ```
197
+ reports/
198
+ └── example.com_20260307_120000/
199
+ ├── report.html ← dark-mode dashboard
200
+ ├── report.json ← full machine-readable results (includes v5 intelligence data)
201
+ ├── report.md ← markdown summary
202
+ ├── scan_config.json ← exact config used
203
+ ├── scan.log ← full execution log
204
+ ├── state.json ← resume checkpoint
205
+ ├── subdomains/
206
+ ├── nmap/
207
+ └── nuclei/
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Resume interrupted scans
213
+
214
+ ```bash
215
+ # Scan crashes after Phase 8 — resume from last checkpoint
216
+ reconninja --resume reports/example.com_20260307_120000/state.json
217
+ ```
218
+
219
+ All v5 results (WHOIS, Wayback, SSL, VT, Shodan) are preserved in `state.json` and restored on resume.
220
+
221
+ ---
222
+
223
+ ## Plugin system
224
+
225
+ Drop a `.py` file into `plugins/` to extend the pipeline. It receives the full `ReconResult` and `ScanConfig` after all phases complete.
226
+
227
+ ```python
228
+ # plugins/custom.py
229
+ def run(target, out_folder, result, cfg):
230
+ print(f"Custom: {len(result.hosts)} hosts, {len(result.shodan_results)} Shodan entries")
231
+ ```
232
+
233
+ ---
234
+
235
+ ## Tool dependencies
236
+
237
+ Only `rich` is required. All external tools are optional — ReconNinja detects what's available and falls back gracefully.
238
+
239
+ ```bash
240
+ reconninja --check-tools # show availability
241
+ ```
242
+
243
+ Optional tools: `nmap`, `rustscan`, `masscan`, `amass`, `subfinder`, `httpx`, `feroxbuster`, `ffuf`, `dirsearch`, `whatweb`, `nikto`, `nuclei`, `aquatone`, `gowitness`
244
+
245
+ ---
246
+
247
+ ## Development
248
+
249
+ ```bash
250
+ git clone https://github.com/ExploitCraft/ReconNinja.git
251
+ cd ReconNinja
252
+ chmod +x install.sh
253
+ ./install.sh
254
+ python3 -m unittest discover -s tests -v # run all tests
255
+ python3 -m unittest tests.test_v4_modules -v
256
+ python3 -m unittest tests.test_orchestrator -v
257
+ ```
258
+
259
+ ---
260
+
261
+ ## License
262
+
263
+ MIT — see [LICENSE](LICENSE)
264
+
265
+ ---
266
+
267
+ <div align="center">
268
+
269
+ **[ExploitCraft](https://github.com/ExploitCraft)** · Bangladesh · Building tools that matter
270
+
271
+ 📄 Full documentation at **[doc.emonpersonal.xyz](http://doc.emonpersonal.xyz/)**
272
+
273
+ </div>