@phenixstar/talon 1.0.0

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 (112) hide show
  1. package/.env.example +72 -0
  2. package/Dockerfile +161 -0
  3. package/Dockerfile.router +16 -0
  4. package/LICENSE +661 -0
  5. package/README.md +709 -0
  6. package/bin/talon.js +96 -0
  7. package/bin/talon.mjs +96 -0
  8. package/configs/config-schema.json +160 -0
  9. package/configs/example-config.yaml +50 -0
  10. package/configs/mcp-allowlist.json +47 -0
  11. package/configs/model-routing.yaml +39 -0
  12. package/configs/router-config.json +73 -0
  13. package/configs/talon-seccomp.json +89 -0
  14. package/dist/cli/dependency-checker.d.ts +25 -0
  15. package/dist/cli/dependency-checker.d.ts.map +1 -0
  16. package/dist/cli/dependency-checker.js +165 -0
  17. package/dist/cli/dependency-checker.js.map +1 -0
  18. package/dist/cli/doctor.d.ts +2 -0
  19. package/dist/cli/doctor.d.ts.map +1 -0
  20. package/dist/cli/doctor.js +127 -0
  21. package/dist/cli/doctor.js.map +1 -0
  22. package/dist/cli/env-configurator.d.ts +27 -0
  23. package/dist/cli/env-configurator.d.ts.map +1 -0
  24. package/dist/cli/env-configurator.js +115 -0
  25. package/dist/cli/env-configurator.js.map +1 -0
  26. package/dist/cli/setup-renderer.d.ts +23 -0
  27. package/dist/cli/setup-renderer.d.ts.map +1 -0
  28. package/dist/cli/setup-renderer.js +71 -0
  29. package/dist/cli/setup-renderer.js.map +1 -0
  30. package/dist/cli/setup.d.ts +2 -0
  31. package/dist/cli/setup.d.ts.map +1 -0
  32. package/dist/cli/setup.js +302 -0
  33. package/dist/cli/setup.js.map +1 -0
  34. package/dist/types/activity-logger.d.ts +10 -0
  35. package/dist/types/activity-logger.d.ts.map +1 -0
  36. package/dist/types/activity-logger.js +7 -0
  37. package/dist/types/activity-logger.js.map +1 -0
  38. package/dist/types/agents.d.ts +39 -0
  39. package/dist/types/agents.d.ts.map +1 -0
  40. package/dist/types/agents.js +28 -0
  41. package/dist/types/agents.js.map +1 -0
  42. package/dist/types/audit.d.ts +28 -0
  43. package/dist/types/audit.d.ts.map +1 -0
  44. package/dist/types/audit.js +7 -0
  45. package/dist/types/audit.js.map +1 -0
  46. package/dist/types/backtesting.d.ts +45 -0
  47. package/dist/types/backtesting.d.ts.map +1 -0
  48. package/dist/types/backtesting.js +3 -0
  49. package/dist/types/backtesting.js.map +1 -0
  50. package/dist/types/config.d.ts +48 -0
  51. package/dist/types/config.d.ts.map +1 -0
  52. package/dist/types/config.js +7 -0
  53. package/dist/types/config.js.map +1 -0
  54. package/dist/types/errors.d.ts +55 -0
  55. package/dist/types/errors.d.ts.map +1 -0
  56. package/dist/types/errors.js +41 -0
  57. package/dist/types/errors.js.map +1 -0
  58. package/dist/types/evolution.d.ts +36 -0
  59. package/dist/types/evolution.d.ts.map +1 -0
  60. package/dist/types/evolution.js +14 -0
  61. package/dist/types/evolution.js.map +1 -0
  62. package/dist/types/index.d.ts +11 -0
  63. package/dist/types/index.d.ts.map +1 -0
  64. package/dist/types/index.js +16 -0
  65. package/dist/types/index.js.map +1 -0
  66. package/dist/types/metrics.d.ts +13 -0
  67. package/dist/types/metrics.d.ts.map +1 -0
  68. package/dist/types/metrics.js +7 -0
  69. package/dist/types/metrics.js.map +1 -0
  70. package/dist/types/resilience.d.ts +30 -0
  71. package/dist/types/resilience.d.ts.map +1 -0
  72. package/dist/types/resilience.js +7 -0
  73. package/dist/types/resilience.js.map +1 -0
  74. package/dist/types/result.d.ts +42 -0
  75. package/dist/types/result.d.ts.map +1 -0
  76. package/dist/types/result.js +30 -0
  77. package/dist/types/result.js.map +1 -0
  78. package/docker-compose.yml +91 -0
  79. package/package.json +75 -0
  80. package/prompts/exploit-auth.txt +423 -0
  81. package/prompts/exploit-authz.txt +425 -0
  82. package/prompts/exploit-injection.txt +452 -0
  83. package/prompts/exploit-ssrf.txt +502 -0
  84. package/prompts/exploit-xss.txt +442 -0
  85. package/prompts/pipeline-testing/exploit-auth.txt +31 -0
  86. package/prompts/pipeline-testing/exploit-authz.txt +31 -0
  87. package/prompts/pipeline-testing/exploit-injection.txt +31 -0
  88. package/prompts/pipeline-testing/exploit-ssrf.txt +31 -0
  89. package/prompts/pipeline-testing/exploit-xss.txt +31 -0
  90. package/prompts/pipeline-testing/pre-recon-code.txt +1 -0
  91. package/prompts/pipeline-testing/recon.txt +1 -0
  92. package/prompts/pipeline-testing/report-executive.txt +1 -0
  93. package/prompts/pipeline-testing/vuln-auth.txt +13 -0
  94. package/prompts/pipeline-testing/vuln-authz.txt +13 -0
  95. package/prompts/pipeline-testing/vuln-injection.txt +13 -0
  96. package/prompts/pipeline-testing/vuln-ssrf.txt +13 -0
  97. package/prompts/pipeline-testing/vuln-xss.txt +13 -0
  98. package/prompts/pre-recon-code.txt +403 -0
  99. package/prompts/recon.txt +382 -0
  100. package/prompts/report-executive.txt +126 -0
  101. package/prompts/shared/_exploit-scope.txt +14 -0
  102. package/prompts/shared/_rules.txt +2 -0
  103. package/prompts/shared/_target.txt +1 -0
  104. package/prompts/shared/_vuln-scope.txt +1 -0
  105. package/prompts/shared/login-instructions.txt +82 -0
  106. package/prompts/vuln-auth.txt +268 -0
  107. package/prompts/vuln-authz.txt +373 -0
  108. package/prompts/vuln-injection.txt +380 -0
  109. package/prompts/vuln-ssrf.txt +315 -0
  110. package/prompts/vuln-xss.txt +304 -0
  111. package/talon +459 -0
  112. package/talon.ps1 +348 -0
package/README.md ADDED
@@ -0,0 +1,709 @@
1
+ >[!NOTE]
2
+ > **[📢 New: Claude models on AWS Bedrock and Google Vertex AI now supported. →](https://github.com/PhenixStar/talon/discussions/categories/announcements)**
3
+
4
+ <div align="center">
5
+
6
+ <img src="./assets/github-banner.png" alt="Talon — AI Pentester for Web Applications and APIs" width="100%">
7
+
8
+ # Talon — AI Pentester by Al's Kit Tools
9
+
10
+ <a href="https://github.com/PhenixStar/talon" target="_blank"><img src="https://img.shields.io/badge/Talon-AI%20Pentester-gold?style=for-the-badge" alt="Talon - AI Pentester"/></a>
11
+
12
+ Talon is an autonomous, white-box AI pentester for web applications and APIs. <br />
13
+ It analyzes your source code, identifies attack vectors, and executes real exploits to prove vulnerabilities before they reach production.
14
+
15
+ ---
16
+
17
+ <a href="https://github.com/PhenixStar/talon"><img src="https://img.shields.io/badge/GitHub-PhenixStar%2Ftalon-blue?style=flat-square&logo=github" height="40" alt="GitHub"></a>
18
+
19
+ ---
20
+ </div>
21
+
22
+ ## 🎯 What is Talon?
23
+
24
+ Talon is an AI pentester developed by [Al's Kit Tools](https://nulled.ai). It performs white-box security testing of web applications and their underlying APIs by combining source code analysis with live exploitation.
25
+
26
+ Talon analyzes your web application's source code to identify potential attack vectors, then uses browser automation and command-line tools to execute real exploits (injection attacks, authentication bypass, SSRF, XSS) against the running application and its APIs. Only vulnerabilities with a working proof-of-concept are included in the final report.
27
+
28
+ **Why Talon Exists**
29
+
30
+ Thanks to tools like Claude Code and Cursor, your team ships code non-stop. But your penetration test? That happens once a year. This creates a *massive* security gap. For the other 364 days, you could be unknowingly shipping vulnerabilities to production.
31
+
32
+ Talon closes that gap by providing on-demand, automated penetration testing that can run against every build or release.
33
+
34
+ > [!NOTE]
35
+ > **Talon is part of the Al's Kit Tools Security and Compliance Platform**
36
+ >
37
+ > Al's Kit Tools is an integrated security and compliance platform covering IAM, MDM, compliance automation (SOC 2, HIPAA), and application security. Talon handles the AppSec layer. The broader platform automates evidence collection, audit readiness, and continuous compliance across multiple frameworks.
38
+ >
39
+ > **[Learn more at nulled.ai](https://nulled.ai)**
40
+
41
+ ## 🎬 Talon in Action
42
+
43
+ Talon identified 20+ vulnerabilities in OWASP Juice Shop, including authentication bypass and database exfiltration. [Full report →](sample-reports/talon-report-juice-shop.md)
44
+
45
+ ![Demo](assets/talon-action.gif)
46
+
47
+ ## ✨ Features
48
+
49
+ - **Fully Autonomous Operation**: A single command launches the full pentest. Talon handles 2FA/TOTP logins (including SSO), browser navigation, exploitation, and report generation without manual intervention.
50
+ - **Reproducible Proof-of-Concept Exploits**: The final report contains only proven, exploitable findings with copy-and-paste PoCs. Vulnerabilities that cannot be exploited are not reported.
51
+ - **OWASP Vulnerability Coverage**: Identifies and validates Injection, XSS, SSRF, and Broken Authentication/Authorization, with additional categories in development.
52
+ - **Code-Aware Dynamic Testing**: Analyzes source code to guide attack strategy, then validates findings with live browser and CLI-based exploits against the running application.
53
+ - **Integrated Security Tooling**: Leverages Nmap, Subfinder, WhatWeb, and Schemathesis during reconnaissance and discovery phases.
54
+ - **Parallel Processing**: Vulnerability analysis and exploitation phases run concurrently across all attack categories.
55
+
56
+ ## 📦 Product Line
57
+
58
+ Talon is developed by [Al's Kit Tools](https://nulled.ai) and available in two editions:
59
+
60
+ | Edition | License | Best For |
61
+ |---------|---------|----------|
62
+ | **Talon Lite** | AGPL-3.0 | Local testing of your own applications. |
63
+ | **Talon Pro** | Commercial | Organizations needing a single AppSec platform (SAST, SCA, secrets, business logic testing, autonomous pentesting) with CI/CD integration and self-hosted deployment. |
64
+
65
+ > **This repository contains Talon Lite,** the core autonomous AI pentesting framework. **Talon Pro** is Al's Kit Tools' all-in-one AppSec platform, combining SAST, SCA, secrets scanning, business logic security testing, and autonomous AI pentesting in a single correlated workflow. Every finding is validated with a working proof-of-concept exploit.
66
+
67
+ > [!IMPORTANT]
68
+ > **White-box only.** Talon Lite is designed for **white-box (source-available)** application security testing.
69
+ > It expects access to your application's source code and repository layout.
70
+
71
+ ### Talon Pro: Architecture Overview
72
+
73
+ Talon Pro is an all-in-one application security platform that replaces the need to stitch together separate SAST, SCA, secrets scanning, and pentesting tools. It operates as a two-stage pipeline: agentic static analysis of the codebase, followed by autonomous AI penetration testing. Findings from both stages are cross-referenced and correlated, so every reported vulnerability has a working proof-of-concept exploit and a precise source code location.
74
+
75
+ **Stage 1: Agentic Static Analysis**
76
+
77
+ Talon Pro transforms the codebase into a Code Property Graph (CPG) combining the AST, control flow graph, and program dependence graph. It then runs five analysis capabilities:
78
+
79
+ - **Data Flow Analysis (SAST)**: Identifies sources (user input, API requests) and sinks (SQL queries, command execution), then traces paths between them. At each node, an LLM evaluates whether the specific sanitization applied is sufficient for the specific vulnerability in context, rather than relying on a hard-coded allowlist of safe functions.
80
+ - **Point Issue Detection (SAST)**: LLM-based detection of single-location vulnerabilities: weak cryptography, hardcoded credentials, insecure configuration, missing security headers, weak RNG, disabled certificate validation, and overly permissive CORS.
81
+ - **Business Logic Security Testing (SAST)**: LLM agents analyze the codebase to discover application-specific invariants (e.g., "document access must verify organizational ownership"), generate targeted fuzzers to violate those invariants, and synthesize full PoC exploits. This catches authorization failures and domain-specific logic errors that pattern-based scanners cannot detect.
82
+ - **SCA with Reachability Analysis**: Goes beyond flagging CVEs by tracing whether the vulnerable function is actually reachable from application entry points via the CPG. Unreachable vulnerabilities are deprioritized.
83
+ - **Secrets Detection**: Combines regex pattern matching with LLM-based detection (for dynamically constructed credentials, custom formats, obfuscated tokens) and performs liveness validation against the corresponding service using read-only API calls.
84
+
85
+ **Stage 2: Autonomous Dynamic Penetration Testing**
86
+
87
+ The same multi-agent pentest pipeline as Talon Lite (reconnaissance, parallel vulnerability analysis, parallel exploitation, reporting), enhanced with static findings injected into the exploitation queue. Static findings are mapped to Talon's five attack domains (Injection, XSS, SSRF, Auth, Authz), and exploit agents attempt real proof-of-concept attacks against the running application for each finding.
88
+
89
+ **Static-Dynamic Correlation**
90
+
91
+ This is the core differentiator. A data flow vulnerability identified in static analysis (e.g., unsanitized input reaching a SQL query) is not reported as a theoretical risk. It is fed to the corresponding exploit agent, which attempts to exploit it against the live application. Confirmed exploits are traced back to the exact source code location, giving developers both proof of exploitability and the line of code to fix.
92
+
93
+ **Deployment Model**
94
+
95
+ Talon Pro supports a self-hosted runner model (similar to GitHub Actions self-hosted runners). The data plane, which handles code access and all LLM API calls, runs entirely within the customer's infrastructure using the customer's own API keys. Source code never leaves the customer's network. The Al's Kit Tools control plane handles job orchestration, scan scheduling, and the reporting UI, receiving only aggregate findings.
96
+
97
+ | Capability | Talon Lite | Talon Pro (All-in-One AppSec) |
98
+ | --- | --- | --- |
99
+ | **Licensing** | AGPL-3.0 | Commercial |
100
+ | **Static Analysis** | Code review prompting | Full agentic SAST, SCA, secrets, business logic testing |
101
+ | **Dynamic Testing** | Autonomous AI pentesting | Autonomous AI pentesting with static-dynamic correlation |
102
+ | **Analysis Engine** | Code review prompting | CPG-based data flow with LLM reasoning at every node |
103
+ | **Business Logic** | None | Automated invariant discovery, fuzzer generation, exploit synthesis |
104
+ | **CI/CD Integration** | Manual / CLI | Native CI/CD, GitHub PR scanning |
105
+ | **Deployment** | CLI | Managed cloud or self-hosted runner |
106
+ | **Boundary Analysis** | None | Automatic service boundary detection with team routing |
107
+
108
+ [Full technical details →](./TALON-PRO.md)
109
+
110
+ ## 📑 Table of Contents
111
+
112
+ - [What is Talon?](#-what-is-talon)
113
+ - [Talon in Action](#-talon-in-action)
114
+ - [Features](#-features)
115
+ - [Product Line](#-product-line)
116
+ - [Setup & Usage Instructions](#-setup--usage-instructions)
117
+ - [Prerequisites](#prerequisites)
118
+ - [Quick Start](#quick-start)
119
+ - [Monitoring Progress](#monitoring-progress)
120
+ - [Stopping Talon](#stopping-talon)
121
+ - [Usage Examples](#usage-examples)
122
+ - [Workspaces and Resuming](#workspaces-and-resuming)
123
+ - [Configuration (Optional)](#configuration-optional)
124
+ - [AWS Bedrock](#aws-bedrock)
125
+ - [Google Vertex AI](#google-vertex-ai)
126
+ - [[EXPERIMENTAL - UNSUPPORTED] Router Mode (Alternative Providers)](#experimental---unsupported-router-mode-alternative-providers)
127
+ - [Output and Results](#output-and-results)
128
+ - [Sample Reports](#-sample-reports)
129
+ - [Benchmark](#-benchmark)
130
+ - [Architecture](#️-architecture)
131
+ - [Coverage and Roadmap](#-coverage-and-roadmap)
132
+ - [Disclaimers](#️-disclaimers)
133
+ - [License](#-license)
134
+ - [Community & Support](#-community--support)
135
+ - [Get in Touch](#-get-in-touch)
136
+
137
+ ---
138
+
139
+ ## 🚀 Setup & Usage Instructions
140
+
141
+ ### Prerequisites
142
+
143
+ - **Docker** - Container runtime ([Install Docker](https://docs.docker.com/get-docker/))
144
+ - **AI Provider Credentials** (choose one):
145
+ - **Anthropic API key** (recommended) - Get from [Anthropic Console](https://console.anthropic.com)
146
+ - **Claude Code OAuth token**
147
+ - **AWS Bedrock** - Route through Amazon Bedrock with AWS credentials (see [AWS Bedrock](#aws-bedrock))
148
+ - **Google Vertex AI** - Route through Google Cloud Vertex AI (see [Google Vertex AI](#google-vertex-ai))
149
+ - **[EXPERIMENTAL - UNSUPPORTED] Alternative providers via Router Mode** - OpenAI or Google Gemini via OpenRouter (see [Router Mode](#experimental---unsupported-router-mode-alternative-providers))
150
+
151
+ ### Quick Start
152
+
153
+ ```bash
154
+ # 1. Clone Talon
155
+ git clone https://github.com/PhenixStar/talon.git
156
+ cd talon
157
+
158
+ # 2. Configure credentials (choose one method)
159
+
160
+ # Option A: Export environment variables
161
+ export ANTHROPIC_API_KEY="your-api-key" # or CLAUDE_CODE_OAUTH_TOKEN
162
+ export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 # recommended
163
+
164
+ # Option B: Create a .env file
165
+ cat > .env << 'EOF'
166
+ ANTHROPIC_API_KEY=your-api-key
167
+ CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
168
+ EOF
169
+
170
+ # 3. Run a pentest
171
+ ./talon start URL=https://your-app.com REPO=your-repo
172
+ ```
173
+
174
+ Talon will build the containers, start the workflow, and return a workflow ID. The pentest runs in the background.
175
+
176
+ ### Monitoring Progress
177
+
178
+ ```bash
179
+ # View real-time worker logs
180
+ ./talon logs
181
+
182
+ # Query a specific workflow's progress
183
+ ./talon query ID=talon-1234567890
184
+
185
+ # Open the Temporal Web UI for detailed monitoring
186
+ open http://localhost:8233
187
+ ```
188
+
189
+ ### Stopping Talon
190
+
191
+ ```bash
192
+ # Stop all containers (preserves workflow data)
193
+ ./talon stop
194
+
195
+ # Full cleanup (removes all data)
196
+ ./talon stop CLEAN=true
197
+ ```
198
+
199
+ ### Usage Examples
200
+
201
+ ```bash
202
+ # Basic pentest
203
+ ./talon start URL=https://example.com REPO=repo-name
204
+
205
+ # With a configuration file
206
+ ./talon start URL=https://example.com REPO=repo-name CONFIG=./configs/my-config.yaml
207
+
208
+ # Custom output directory
209
+ ./talon start URL=https://example.com REPO=repo-name OUTPUT=./my-reports
210
+
211
+ # Named workspace
212
+ ./talon start URL=https://example.com REPO=repo-name WORKSPACE=q1-audit
213
+
214
+ # List all workspaces
215
+ ./talon workspaces
216
+ ```
217
+
218
+ ### Workspaces and Resuming
219
+
220
+ Talon supports **workspaces** that allow you to resume interrupted or failed runs without re-running completed agents.
221
+
222
+ **How it works:**
223
+ - Every run creates a workspace in `audit-logs/` (auto-named by default, e.g. `example-com_talon-1771007534808`)
224
+ - Use `WORKSPACE=<name>` to give your run a custom name for easier reference
225
+ - To resume any run, pass its workspace name via `WORKSPACE=` — Talon detects which agents completed successfully and picks up where it left off
226
+ - Each agent's progress is checkpointed via git commits, so resumed runs start from a clean, validated state
227
+
228
+ ```bash
229
+ # Start with a named workspace
230
+ ./talon start URL=https://example.com REPO=repo-name WORKSPACE=my-audit
231
+
232
+ # Resume the same workspace (skips completed agents)
233
+ ./talon start URL=https://example.com REPO=repo-name WORKSPACE=my-audit
234
+
235
+ # Resume an auto-named workspace from a previous run
236
+ ./talon start URL=https://example.com REPO=repo-name WORKSPACE=example-com_talon-1771007534808
237
+
238
+ # List all workspaces and their status
239
+ ./talon workspaces
240
+ ```
241
+
242
+ > [!NOTE]
243
+ > The `URL` must match the original workspace URL when resuming. Talon will reject mismatched URLs to prevent cross-target contamination.
244
+
245
+ ### Prepare Your Repository
246
+
247
+ Talon expects target repositories to be placed under the `./repos/` directory at the project root. The `REPO` flag refers to a folder name inside `./repos/`. Copy the repository you want to scan into `./repos/`, or clone it directly there:
248
+
249
+ ```bash
250
+ git clone https://github.com/your-org/your-repo.git ./repos/your-repo
251
+ ```
252
+
253
+ **For monorepos:**
254
+
255
+ ```bash
256
+ git clone https://github.com/your-org/your-monorepo.git ./repos/your-monorepo
257
+ ```
258
+
259
+ **For multi-repository applications** (e.g., separate frontend/backend):
260
+
261
+ ```bash
262
+ mkdir ./repos/your-app
263
+ cd ./repos/your-app
264
+ git clone https://github.com/your-org/frontend.git
265
+ git clone https://github.com/your-org/backend.git
266
+ git clone https://github.com/your-org/api.git
267
+ ```
268
+
269
+ ### Platform-Specific Instructions
270
+
271
+ **For Windows:**
272
+
273
+ *Native (Git Bash):*
274
+
275
+ Install [Git for Windows](https://git-scm.com/install/windows) and run Talon from **Git Bash** with Docker Desktop installed.
276
+
277
+ *WSL2 (Recommended):*
278
+
279
+ **Step 1: Ensure WSL 2**
280
+
281
+ ```powershell
282
+ wsl --install
283
+ wsl --set-default-version 2
284
+
285
+ # Check installed distros
286
+ wsl --list --verbose
287
+
288
+ # If you don't have a distro, install one (Ubuntu 24.04 recommended)
289
+ wsl --list --online
290
+ wsl --install Ubuntu-24.04
291
+
292
+ # If your distro shows VERSION 1, convert it to WSL 2:
293
+ wsl --set-version <distro-name> 2
294
+ ```
295
+
296
+ See [WSL basic commands](https://learn.microsoft.com/en-us/windows/wsl/basic-commands) for reference.
297
+
298
+ **Step 2: Install Docker Desktop on Windows** and enable **WSL2 backend** under *Settings > General > Use the WSL 2 based engine*.
299
+
300
+ **Step 3: Clone and run Talon inside WSL.** Type `wsl -d <distro-name>` in PowerShell or CMD and press Enter to open a WSL terminal.
301
+
302
+ ```bash
303
+ # Inside WSL terminal
304
+ git clone https://github.com/PhenixStar/talon.git
305
+ cd talon
306
+ cp .env.example .env # Edit with your API key
307
+ ./talon start URL=https://your-app.com REPO=your-repo
308
+ ```
309
+
310
+ To access the Temporal Web UI, run `ip addr` inside WSL to find your WSL IP address, then navigate to `http://<wsl-ip>:8233` in your Windows browser.
311
+
312
+ Windows Defender may flag exploit code in reports as false positives; see [Antivirus False Positives](#6-windows-antivirus-false-positives) below.
313
+
314
+ **For Linux (Native Docker):**
315
+
316
+ You may need to run commands with `sudo` depending on your Docker setup. If you encounter permission issues with output files, ensure your user has access to the Docker socket.
317
+
318
+ **For macOS:**
319
+
320
+ Works out of the box with Docker Desktop installed.
321
+
322
+ **Testing Local Applications:**
323
+
324
+ Docker containers cannot reach `localhost` on your host machine. Use `host.docker.internal` in place of `localhost`:
325
+
326
+ ```bash
327
+ ./talon start URL=http://host.docker.internal:3000 REPO=repo-name
328
+ ```
329
+
330
+ ### Configuration (Optional)
331
+
332
+ While you can run without a config file, creating one enables authenticated testing and customized analysis. Place your configuration files inside the `./configs/` directory — this folder is mounted into the Docker container automatically.
333
+
334
+ #### Create Configuration File
335
+
336
+ Copy and modify the example configuration:
337
+
338
+ ```bash
339
+ cp configs/example-config.yaml configs/my-app-config.yaml
340
+ ```
341
+
342
+ #### Basic Configuration Structure
343
+
344
+ ```yaml
345
+ authentication:
346
+ login_type: form
347
+ login_url: "https://your-app.com/login"
348
+ credentials:
349
+ username: "test@example.com"
350
+ password: "yourpassword"
351
+ totp_secret: "LB2E2RX7XFHSTGCK" # Optional for 2FA
352
+
353
+ login_flow:
354
+ - "Type $username into the email field"
355
+ - "Type $password into the password field"
356
+ - "Click the 'Sign In' button"
357
+
358
+ success_condition:
359
+ type: url_contains
360
+ value: "/dashboard"
361
+
362
+ rules:
363
+ avoid:
364
+ - description: "AI should avoid testing logout functionality"
365
+ type: path
366
+ url_path: "/logout"
367
+
368
+ focus:
369
+ - description: "AI should emphasize testing API endpoints"
370
+ type: path
371
+ url_path: "/api"
372
+ ```
373
+
374
+ #### TOTP Setup for 2FA
375
+
376
+ If your application uses two-factor authentication, simply add the TOTP secret to your config file. The AI will automatically generate the required codes during testing.
377
+
378
+ #### Subscription Plan Rate Limits
379
+
380
+ Anthropic subscription plans reset usage on a **rolling 5-hour window**. The default retry strategy (30-min max backoff) will exhaust retries before the window resets. Add this to your config:
381
+
382
+ ```yaml
383
+ pipeline:
384
+ retry_preset: subscription # Extends max backoff to 6h, 100 retries
385
+ max_concurrent_pipelines: 2 # Run 2 of 5 pipelines at a time (reduces burst API usage)
386
+ ```
387
+
388
+ `max_concurrent_pipelines` controls how many vulnerability pipelines run simultaneously (1-5, default: 5). Lower values reduce the chance of hitting rate limits but increase wall-clock time.
389
+
390
+ ### AWS Bedrock
391
+
392
+ Talon also supports [Amazon Bedrock](https://aws.amazon.com/bedrock/) instead of using an Anthropic API key.
393
+
394
+ #### Quick Setup
395
+
396
+ 1. Add your AWS credentials to `.env`:
397
+
398
+ ```bash
399
+ CLAUDE_CODE_USE_BEDROCK=1
400
+ AWS_REGION=us-east-1
401
+ AWS_BEARER_TOKEN_BEDROCK=your-bearer-token
402
+
403
+ # Set models with Bedrock-specific IDs for your region
404
+ ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0
405
+ ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6
406
+ ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-6
407
+ ```
408
+
409
+ 2. Run Talon as usual:
410
+
411
+ ```bash
412
+ ./talon start URL=https://example.com REPO=repo-name
413
+ ```
414
+
415
+ Talon uses three model tiers: **small** (`claude-haiku-4-5-20251001`) for summarization, **medium** (`claude-sonnet-4-6`) for security analysis, and **large** (`claude-opus-4-6`) for deep reasoning. Set `ANTHROPIC_SMALL_MODEL`, `ANTHROPIC_MEDIUM_MODEL`, and `ANTHROPIC_LARGE_MODEL` to the Bedrock model IDs for your region.
416
+
417
+ ### Google Vertex AI
418
+
419
+ Talon also supports [Google Vertex AI](https://cloud.google.com/vertex-ai) instead of using an Anthropic API key.
420
+
421
+ #### Quick Setup
422
+
423
+ 1. Create a service account with the `roles/aiplatform.user` role in the [GCP Console](https://console.cloud.google.com/iam-admin/serviceaccounts), then download a JSON key file.
424
+
425
+ 2. Place the key file in the `./credentials/` directory:
426
+
427
+ ```bash
428
+ mkdir -p ./credentials
429
+ cp /path/to/your-sa-key.json ./credentials/gcp-sa-key.json
430
+ ```
431
+
432
+ 3. Add your GCP configuration to `.env`:
433
+
434
+ ```bash
435
+ CLAUDE_CODE_USE_VERTEX=1
436
+ CLOUD_ML_REGION=us-east5
437
+ ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
438
+ GOOGLE_APPLICATION_CREDENTIALS=./credentials/gcp-sa-key.json
439
+
440
+ # Set models with Vertex AI model IDs
441
+ ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001
442
+ ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6
443
+ ANTHROPIC_LARGE_MODEL=claude-opus-4-6
444
+ ```
445
+
446
+ 4. Run Talon as usual:
447
+
448
+ ```bash
449
+ ./talon start URL=https://example.com REPO=repo-name
450
+ ```
451
+
452
+ Set `CLOUD_ML_REGION=global` for global endpoints, or a specific region like `us-east5`. Some models may not be available on global endpoints — see the [Vertex AI Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) for region availability.
453
+
454
+ ### [EXPERIMENTAL - UNSUPPORTED] Router Mode (Alternative Providers)
455
+
456
+ Talon can experimentally route requests through alternative AI providers using claude-code-router. This mode is not officially supported and is intended primarily for:
457
+
458
+ * **Model experimentation** — try Talon with GPT-5.2 or Gemini 3–family models
459
+
460
+ #### Quick Setup
461
+
462
+ 1. Add your provider API key to `.env`:
463
+
464
+ ```bash
465
+ # Choose one provider:
466
+ OPENAI_API_KEY=sk-...
467
+ # OR
468
+ OPENROUTER_API_KEY=sk-or-...
469
+
470
+ # Set default model:
471
+ ROUTER_DEFAULT=openai,gpt-5.2 # provider,model format
472
+ ```
473
+
474
+ 2. Run with `ROUTER=true`:
475
+
476
+ ```bash
477
+ ./talon start URL=https://example.com REPO=repo-name ROUTER=true
478
+ ```
479
+
480
+ #### Experimental Models
481
+
482
+ | Provider | Models |
483
+ |----------|--------|
484
+ | OpenAI | gpt-5.2, gpt-5-mini |
485
+ | OpenRouter | google/gemini-3-flash-preview |
486
+
487
+ #### Disclaimer
488
+
489
+ This feature is experimental and unsupported. Output quality depends heavily on the model. Talon is built on top of the Anthropic Agent SDK and is optimized and primarily tested with Anthropic Claude models. Alternative providers may produce inconsistent results (including failing early phases like Recon) depending on the model and routing setup.
490
+
491
+ ### Output and Results
492
+
493
+ All results are saved to `./audit-logs/{hostname}_{sessionId}/` by default. Use `--output <path>` to specify a custom directory.
494
+
495
+ Output structure:
496
+ ```
497
+ audit-logs/{hostname}_{sessionId}/
498
+ ├── session.json # Metrics and session data
499
+ ├── agents/ # Per-agent execution logs
500
+ ├── prompts/ # Prompt snapshots for reproducibility
501
+ └── deliverables/
502
+ └── comprehensive_security_assessment_report.md # Final comprehensive security report
503
+ ```
504
+
505
+ ---
506
+
507
+ ## 📊 Sample Reports
508
+
509
+ Sample penetration test reports from industry-standard vulnerable applications:
510
+
511
+ #### 🧃 **OWASP Juice Shop** • [GitHub](https://github.com/juice-shop/juice-shop)
512
+
513
+ *A notoriously insecure web application maintained by OWASP, designed to test a tool's ability to uncover a wide range of modern vulnerabilities.*
514
+
515
+ **Results**: Identified over 20 vulnerabilities across targeted OWASP categories in a single automated run.
516
+
517
+ **Notable findings**:
518
+
519
+ - Authentication bypass and full user database exfiltration via SQL injection
520
+ - Privilege escalation to administrator through registration workflow bypass
521
+ - IDOR vulnerabilities enabling access to other users' data and shopping carts
522
+ - SSRF enabling internal network reconnaissance
523
+
524
+ 📄 **[View Complete Report →](sample-reports/talon-report-juice-shop.md)**
525
+
526
+ ---
527
+
528
+ #### 🔗 **c{api}tal API** • [GitHub](https://github.com/Checkmarx/capital)
529
+
530
+ *An intentionally vulnerable API from Checkmarx, designed to test a tool's ability to uncover the OWASP API Security Top 10.*
531
+
532
+ **Results**: Identified approximately 15 critical and high-severity vulnerabilities.
533
+
534
+ **Notable findings**:
535
+
536
+ - Root-level command injection via denylist bypass in a hidden debug endpoint
537
+ - Authentication bypass through a legacy, unpatched v1 API endpoint
538
+ - Privilege escalation via Mass Assignment in the user profile update function
539
+ - Zero false positives for XSS (correctly confirmed robust XSS defenses)
540
+
541
+ 📄 **[View Complete Report →](sample-reports/talon-report-capital-api.md)**
542
+
543
+ ---
544
+
545
+ #### 🚗 **OWASP crAPI** • [GitHub](https://github.com/OWASP/crAPI)
546
+
547
+ *A modern, intentionally vulnerable API from OWASP, designed to benchmark a tool's effectiveness against the OWASP API Security Top 10.*
548
+
549
+ **Results**: Identified over 15 critical and high-severity vulnerabilities.
550
+
551
+ **Notable findings**:
552
+
553
+ - Authentication bypass via multiple JWT attacks (Algorithm Confusion, alg:none, weak key injection)
554
+ - Full PostgreSQL database compromise via injection, exfiltrating user credentials
555
+ - SSRF attack forwarding internal authentication tokens to an external service
556
+ - Zero false positives for XSS (correctly identified robust XSS defenses)
557
+
558
+ 📄 **[View Complete Report →](sample-reports/talon-report-crapi.md)**
559
+
560
+ ---
561
+
562
+ ## 📈 Benchmark
563
+
564
+ Talon Lite scored **96.15% (100/104 exploits)** on a hint-free, source-aware variant of the XBOW security benchmark.
565
+
566
+ **[Full results with detailed agent logs and per-challenge pentest reports →](./xben-benchmark-results/README.md)**
567
+
568
+ ---
569
+
570
+ ## 🏗️ Architecture
571
+
572
+ Talon uses a multi-agent architecture that combines white-box source code analysis with dynamic exploitation across four phases:
573
+
574
+ ```
575
+ ┌──────────────────────┐
576
+ │ Reconnaissance │
577
+ └──────────┬───────────┘
578
+
579
+
580
+ ┌──────────┴───────────┐
581
+ │ │ │
582
+ ▼ ▼ ▼
583
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
584
+ │ Vuln Analysis │ │ Vuln Analysis │ │ ... │
585
+ │ (Injection) │ │ (XSS) │ │ │
586
+ └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
587
+ │ │ │
588
+ ▼ ▼ ▼
589
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
590
+ │ Exploitation │ │ Exploitation │ │ ... │
591
+ │ (Injection) │ │ (XSS) │ │ │
592
+ └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
593
+ │ │ │
594
+ └─────────┬─────────┴───────────────────┘
595
+
596
+
597
+ ┌──────────────────────┐
598
+ │ Reporting │
599
+ └──────────────────────┘
600
+ ```
601
+
602
+ ### Architectural Overview
603
+
604
+ Talon uses Anthropic's Claude Agent SDK as its reasoning engine within a multi-agent architecture. The system combines white-box source code analysis with black-box dynamic exploitation, managed by an orchestrator across four phases. The architecture is designed for minimal false positives through a "no exploit, no report" policy.
605
+
606
+ ---
607
+
608
+ #### **Phase 1: Reconnaissance**
609
+
610
+ The first phase builds a comprehensive map of the application's attack surface. Talon analyzes the source code and integrates with tools like Nmap and Subfinder to understand the tech stack and infrastructure. Simultaneously, it performs live application exploration via browser automation to correlate code-level insights with real-world behavior, producing a detailed map of all entry points, API endpoints, and authentication mechanisms for the next phase.
611
+
612
+ #### **Phase 2: Vulnerability Analysis**
613
+
614
+ To maximize efficiency, this phase operates in parallel. Using the reconnaissance data, specialized agents for each OWASP category hunt for potential flaws in parallel. For vulnerabilities like Injection and SSRF, agents perform a structured data flow analysis, tracing user input to dangerous sinks. This phase produces a key deliverable: a list of **hypothesized exploitable paths** that are passed on for validation.
615
+
616
+ #### **Phase 3: Exploitation**
617
+
618
+ Continuing the parallel workflow to maintain speed, this phase is dedicated entirely to turning hypotheses into proof. Dedicated exploit agents receive the hypothesized paths and attempt to execute real-world attacks using browser automation, command-line tools, and custom scripts. This phase enforces a strict **"No Exploit, No Report"** policy: if a hypothesis cannot be successfully exploited to demonstrate impact, it is discarded as a false positive.
619
+
620
+ #### **Phase 4: Reporting**
621
+
622
+ The final phase compiles all validated findings into a professional, actionable report. An agent consolidates the reconnaissance data and the successful exploit evidence, cleaning up any noise or hallucinated artifacts. Only verified vulnerabilities are included, complete with **reproducible, copy-and-paste Proof-of-Concepts**, delivering a final pentest-grade report focused exclusively on proven risks.
623
+
624
+
625
+ ## 📋 Coverage and Roadmap
626
+
627
+ For detailed information about Talon's security testing coverage and development roadmap, see our [Coverage and Roadmap](./COVERAGE.md) documentation.
628
+
629
+ ## ⚠️ Disclaimers
630
+
631
+ ### Important Usage Guidelines & Disclaimers
632
+
633
+ Please review the following guidelines carefully before using Talon (Lite). As a user, you are responsible for your actions and assume all liability.
634
+
635
+ #### **1. Potential for Mutative Effects & Environment Selection**
636
+
637
+ This is not a passive scanner. The exploitation agents are designed to **actively execute attacks** to confirm vulnerabilities. This process can have mutative effects on the target application and its data.
638
+
639
+ > [!WARNING]
640
+ > **⚠️ DO NOT run Talon on production environments.**
641
+ >
642
+ > - It is intended exclusively for use on sandboxed, staging, or local development environments where data integrity is not a concern.
643
+ > - Potential mutative effects include, but are not limited to: creating new users, modifying or deleting data, compromising test accounts, and triggering unintended side effects from injection attacks.
644
+
645
+ #### **2. Legal & Ethical Use**
646
+
647
+ Talon is designed for legitimate security auditing purposes only.
648
+
649
+ > [!CAUTION]
650
+ > **You must have explicit, written authorization** from the owner of the target system before running Talon.
651
+ >
652
+ > Unauthorized scanning and exploitation of systems you do not own is illegal and can be prosecuted under laws such as the Computer Fraud and Abuse Act (CFAA). Al's Kit Tools is not responsible for any misuse of Talon.
653
+
654
+ #### **3. LLM & Automation Caveats**
655
+
656
+ - **Verification is Required**: While significant engineering has gone into our "proof-by-exploitation" methodology to eliminate false positives, the underlying LLMs can still generate hallucinated or weakly-supported content in the final report. **Human oversight is essential** to validate the legitimacy and severity of all reported findings.
657
+ - **Comprehensiveness**: The analysis in Talon Lite may not be exhaustive due to the inherent limitations of LLM context windows. For a more comprehensive, graph-based analysis of your entire codebase, **Talon Pro** leverages its advanced data flow analysis engine to ensure deeper and more thorough coverage.
658
+
659
+ #### **4. Scope of Analysis**
660
+
661
+ - **Targeted Vulnerabilities**: The current version of Talon Lite specifically targets the following classes of *exploitable* vulnerabilities:
662
+ - Broken Authentication & Authorization
663
+ - Injection
664
+ - Cross-Site Scripting (XSS)
665
+ - Server-Side Request Forgery (SSRF)
666
+ - **What Talon Lite Does Not Cover**: This list is not exhaustive of all potential security risks. Talon Lite's "proof-by-exploitation" model means it will not report on issues it cannot actively exploit, such as vulnerable third-party libraries or insecure configurations. These types of deep static-analysis findings are a core focus of the advanced analysis engine in **Talon Pro**.
667
+
668
+ #### **5. Cost & Performance**
669
+
670
+ - **Time**: As of the current version, a full test run typically takes **1 to 1.5 hours** to complete.
671
+ - **Cost**: Running the full test using Anthropic's Claude 4.5 Sonnet model may incur costs of approximately **$50 USD**. Costs vary based on model pricing and application complexity.
672
+
673
+ #### **6. Windows Antivirus False Positives**
674
+
675
+ Windows Defender may flag files in `xben-benchmark-results/` or `deliverables/` as malware. These are false positives caused by exploit code in the reports. Add an exclusion for the Talon directory in Windows Defender, or use Docker/WSL2.
676
+
677
+ #### **7. Security Considerations**
678
+
679
+ Talon Lite is designed for scanning repositories and applications you own or have explicit permission to test. Do not point it at untrusted or adversarial codebases. Like any AI-powered tool that reads source code, Talon Lite is susceptible to prompt injection from content in the scanned repository.
680
+
681
+
682
+ ## 📜 License
683
+
684
+ Talon Lite is released under the [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE).
685
+
686
+ Talon is open source (AGPL v3). This license allows you to:
687
+ - Use it freely for all internal security testing.
688
+ - Modify the code privately for internal use without sharing your changes.
689
+
690
+ The AGPL's sharing requirements primarily apply to organizations offering Talon as a public or managed service (such as a SaaS platform). In those specific cases, any modifications made to the core software must be open-sourced.
691
+
692
+
693
+ ## 👥 Community & Support
694
+
695
+ - 🐛 **Report bugs** via [GitHub Issues](https://github.com/PhenixStar/talon/issues)
696
+ - 💡 **Suggest features** in [Discussions](https://github.com/PhenixStar/talon/discussions)
697
+ - 🌐 **Website**: [nulled.ai](https://nulled.ai)
698
+
699
+
700
+
701
+ ## 💬 Get in Touch
702
+
703
+ 📧 **Email**: [alaa@nulled.ai](mailto:alaa@nulled.ai)
704
+
705
+ ---
706
+
707
+ <p align="center">
708
+ <b>Built by <a href="https://github.com/PhenixStar">PhenixStar (Alaa Qweider)</a></b>
709
+ </p>