
pentest-ai v1.3.1
ओपन-सोर्स AI पेंटेस्टर जो हर निष्कर्ष को प्रमाणित करता है। मशीन ओरेकल प्रत्येक एक्सप्लॉइट को दोबारा चलाते हैं; सत्यापित बग एक प्रूफ कैप्सूल के साथ आते हैं जिसे आप स्वयं रीप्ले कर सकते हैं।
pentest-ai
यह झंडा नहीं लगाता। यह साबित करता है।
वेबसाइट · इंस्टॉल · सत्यापन क्यों · बेंचमार्क · सीमाएँ · Discord
⚠️ आक्रामक टूलिंग, केवल अधिकृत परीक्षण। इंस्टॉल करके आप AUP और नियमों को स्वीकार करते हैं। देखें जिम्मेदार उपयोग ↓
दो मिनट, कोई API key नहीं, आपका अपना कोई target नहीं
pip install ptai && ptai demo
ptai demo एक बंडल किए गए कमजोर ऐप को स्कैन करता है और 4 findings, 3 oracle-VERIFIED प्रिंट करता है।
यह एक proof capsule से लाइव रीप्ले करता है (replay 3/3), फिर उन्हीं routes को हार्डन करके चलाता है
और 0 findings प्रिंट करता है।
दो चीज़ें ध्यान देने योग्य हैं। Findings कमजोरी के साथ दिखती और गायब होती हैं, न कि इसलिए कि टूल शांत हो गया — दोनों runs के बीच केवल fix बदला है। और चार में से एक candidate ही रहता है: SQLi login bypass असली है, लेकिन कोई oracle उस route पर इसे दोबारा साबित नहीं कर सका, इसलिए इसे badge नहीं मिलता। वह अंतर उत्पाद का काम करना है, demo में कोई bug नहीं।
यहाँ VERIFIED का वास्तव में क्या मतलब है
अधिकांश स्कैनर आपको बताते हैं कि कोई चीज़ शायद exploit हो सकती है और triage आप पर छोड़ देते हैं। ptai एक finding को candidate मानता है जब तक कि एक नामित machine oracle exploit को दोबारा नहीं चलाता और उसे N में से N बार reproduce नहीं करता। तभी उसे VERIFIED मिलता है।
तीन गुण इसे एक नारे से अधिक बनाते हैं:
कोई भी LLM कभी verdict नहीं देता। यह नियम code में लागू होता है, policy से नहीं: एक verdict जो उस oracle का नाम नहीं बता सकता जिसने इसे अर्जित किया, अस्वीकार कर दिया जाता है। एक LLM run का समन्वय करता है और परिणामों पर तर्क करता है। यह कभी तय नहीं करता कि कोई bug असली है या नहीं।
हर oracle के पास एक control होता है जिसे विफल होना चाहिए। एक trusted-header bypass को header के साथ privileged content और उसके बिना denial लौटाना होता है। एक leaked-credential जाँच को असली secret के लिए स्वीकार और जानबूझकर corrupted twin के लिए अस्वीकार होना होता है। एक endpoint जो हर चीज़ पर 200 देता है, कुछ नहीं कमाता। यही "इसने 200 लौटाया" को proof समझने की गलती रोकता है।
Third-party स्कैनर आउटपुट को रोका जाता है। nuclei, nikto और zap के परिणाम अपने अधिकार से findings नहीं बनते। वे तब तक unverified रहते हैं जब तक ptai के अपने oracles उन्हें स्वतंत्र रूप से दोबारा साबित नहीं करते।
हर VERIFIED finding एक portable proof capsule के रूप में आती है — finding, उसे दोबारा साबित करने की
विधि, और receipt। कोई भी इसे लाइव target पर ptai replay कर सकता है और oracle को दोबारा पुष्टि करते देख सकता है, बिना ptai पर भरोसा किए। Capsules
जानबूझकर unsigned हैं: replay ही trust mechanism है, कोई signature नहीं जिसे आपको विश्वास पर लेना पड़े।
ईमानदार आँकड़े
| काम करने वाले oracle वाली vulnerability classes | 14 |
| लाइब्रेरी में probes | 63 |
| VERIFIED कमा सकने वाले probes | 28 |
| Oracle प्रकार | 23 |
| Tool wrappers | 203 |
| …जो आज findings में आउटपुट parse करते हैं | 18 |
| MCP tools | 52 |
| Specialist agents | 18 |
| Tests | Python 3.10 / 3.12 / 3.14 पर 2,729 |
जानबूझकर कमजोर honeypot पर, 23 findings उन 14 classes में 100% precision के साथ शून्य false positives पर verify होती हैं। एक स्टॉक OWASP Juice Shop पर, एक ही scan में 12 verify होती हैं।
उन आँकड़ों को ध्यान से पढ़ें, क्योंकि gaps ही मुद्दा हैं। 63 probes मौजूद हैं लेकिन केवल 28 verdict कमा सकते हैं; बाकी 35 ईमानदार candidates रिपोर्ट करते हैं। 203 wrappers पंजीकृत हैं लेकिन केवल 18 tool आउटपुट को findings में बदलते हैं — बाकी चलते हैं और कच्चा text लौटाते हैं। Oracle gate precision खरीदता है, catch rate नहीं: यह false positives हटाता है, यह अधिक bugs नहीं ढूंढता।
Honeypot harness (tests/honeypot/) और एक clean-app
zero-false-positive gate (tests/cleanapp/) दोनों इस repo में शामिल हैं
और CI में चलते हैं, इसलिए ये screenshots के बजाय reproducible हैं।
यह क्या नहीं करता
स्पष्ट रूप से कहा गया है, क्योंकि एक सुरक्षा टूल जो खुद को बेचता है वह बेकार से भी बदतर है।
- यह एक web application scanner है। सभी 63 probes और सभी 23 oracle प्रकार HTTP को लक्षित करते हैं। AD, cloud, mobile और wireless के पास agents और tool wrappers हैं, लेकिन उनके पीछे कोई probe लाइब्रेरी और कोई oracles नहीं हैं।
- यह local privilege escalation नहीं कर सकता। इसके लिए उस host पर code execution चाहिए जो आपके पास पहले से है। ptai दूर से परीक्षण करता है और उसके पास ऐसा कोई channel नहीं है, इसलिए privesc
agent भ्रामक शून्य के बजाय
unsupportedरिपोर्ट करता है। - यह CVE scanner नहीं है। कोई version-to-CVE database और कोई exploit लाइब्रेरी नहीं है। CVE कार्य leaked manifests पर osv.dev lookups तक सीमित है।
- Playbooks योजना बनाते हैं, execute नहीं करते।
ptai playbook rundependencies को हल करता है और plan प्रिंट करता है। इसे target के खिलाफ चलाना अभी wired up नहीं है। - यह autonomous नहीं है। पूरी तरह autonomous LLM pentest agents 21–31% कार्यों को end to end पूरा करते हैं; human-assisted setups 64% तक पहुँचते हैं। ptai दूसरे regime के लिए बनाया गया है। run के बीच में नियंत्रण लेने के लिए दो बार Ctrl+C दबाएँ।
पूरी internal defect list, जिसमें उपरोक्त सब कुछ शामिल है, चुपचाप नहीं बल्कि खुले तौर पर tracked है। यदि यहाँ कुछ गलत है, तो issue खोलें और इसे ठीक किया जाएगा।
इंस्टॉल
रास्ता 1 — इसे Claude Code, Cursor या Codex से चलाएँ (कोई API key नहीं)
आपकी मौजूदा AI subscription ही LLM है। ptai tools प्रदान करता है।
pip install ptai
ptai mcp install # आपके MCP clients का auto-detect करता है और उनके configs लिखता है
Client को restart करें और 52 tools वहाँ हैं। इस रास्ते पर कोई Anthropic key आवश्यक नहीं है — MCP server डिज़ाइन से अपना कोई LLM host नहीं करता।
रास्ता 2 — स्टैंडअलोन CLI
pip install ptai
export ANTHROPIC_API_KEY=sk-... # या OPENAI_API_KEY
ptai start https://target.example.com
# पूरी तरह local, कोई cloud नहीं:
export PENTEST_AI_LLM_PROVIDER=ollama
# या deterministic, बिल्कुल कोई LLM नहीं:
ptai start https://target.example.com --no-llm
खर्च डिफ़ॉल्ट रूप से प्रति engagement $10 पर capped है (PTAI_PRICE_LIMIT)।
सुरक्षा tools, REST API, और अन्य विकल्प
ptai tools install --tier core # या recommended / full
ptai tools install nmap nuclei # या नाम से
ptai serve # dashboards के लिए HTTP REST + WebSocket
ptai menu # interactive launcher, कोई LLM नहीं
Engagement की शुरुआत में planner भविष्यवाणी करता है कि run को कौन से tools चाहिए और missing ones को इंस्टॉल करने के लिए एक बार पूछता है। Decline करें और उत्तर बना रहता है।
बेंचमार्क
Reproducible, git में, raw artifacts के साथ। कोई "98.7% detection rate" नहीं जिसे आप audit नहीं कर सकते।
| Tool | Findings | Critical+High | OWASP buckets | FP rate |
|---|---|---|---|---|
| ptai | 88 | 46 | 5 | 0% |
| ZAP 2.17.0 | 593 | 0 | 1 | 47% |
| Nuclei 3.8.0 | 1 | 0 | 1 | 0% |
| HexStrike v6.0 | 11 | 0 | 1 | – |
n=1, single-rater, OWASP Juice Shop पर single-shot। Methodology और raw output
benchmarks/ में; पूरा write-up docs/benchmarks/juice-shop.md में।
ईमानदार निष्कर्ष: ptai curated probe coverage के साथ SPA web targets पर मजबूत है। HexStrike व्यापक है (cloud, binary, CTF) और पारंपरिक crawlable surfaces जैसे WordPress पर ptai को हराने की संभावना है। Juice Shop इंटरनेट पर सबसे अधिक documented vulnerable app भी है, इसलिए LLM और probe authors दोनों को head start मिलता है — यही कारण है कि private honeypot संख्या कम है, और यही कारण है कि दोनों प्रकाशित होते हैं।
इसे CI में डालें
- run: pip install ptai
- run: ptai start ${{ vars.STAGING_URL }} --ci --fail-on verified --sarif pentest.sarif
- uses: github/codeql-action/upload-sarif@v3
with: { sarif_file: pentest.sarif }
--fail-on verified build को केवल उस finding पर तोड़ता है जिसे oracle ने वास्तव में साबित किया है,
इसलिए gate scanner noise से नहीं ट्रिगर हो सकता। SARIF GitHub Code Scanning पर upload होता है,
findings PR comment के रूप में post होती हैं। GitLab और Jenkins templates
docs/ci-cd.md में।
यह कैसे काम करता है
recon ──▶ auth ──▶ web ──┬──▶ ad
├──▶ cloud ┌──────────────────┐
└──▶ api ──────────▶│ findings DB │
│ scope-guarded │
└────────┬─────────┘
▼
verify (oracles, N/N)
▼
chain ─▶ validate ─▶ detect ─▶ report
md · html · pdf · SARIF · JUnit
18 specialist agents phases चलाते हैं। API key के साथ प्रत्येक परिणामों पर तर्क करने के लिए LLM का उपयोग करता है; इसके बिना यह deterministic tool loop के रूप में चलता है। Phase order और detection दोनों ही मामलों में समान हैं — probes bugs ढूंढते हैं, LLM केवल समन्वय करता है।
यह किसके लिए है
AppSec teams जो हर PR में authenticated scan जोड़ना चाहते हैं, एक gate के साथ जो केवल सिद्ध findings पर ट्रिप करता है। Consultants जो चाहते हैं कि report खुद लिखी जाए और एक capsule जिसे client के अपने engineers replay कर सकें। Bug bounty hunters जो 600 maybes के बजाय 12 सिद्ध findings को triage करना पसंद करते हैं। Claude Code / Cursor / Codex उपयोगकर्ता जो अपने assistant के पीछे एक और API bill के बिना असली tooling चाहते हैं।
मेरे साथ काम करें
टूल MIT है और हमेशा के लिए मुफ्त है — यह नहीं बदलेगा।
यदि आप खुद चलाने के बजाय delivered pentest चाहते हैं, या history और team access के साथ hosted workspace चाहते हैं, तो दोनों pentestai.xyz पर हैं। Delivered engagement में हर finding एक proof capsule के साथ आती है जिसे आपके engineers खुद replay कर सकते हैं, जो severity ratings से भरे PDF से मौलिक रूप से अलग artifact है।
प्रश्न: [email protected]
जिम्मेदार उपयोग
ptai आपके निर्दिष्ट targets के खिलाफ वास्तविक network और host operations execute करता है। हर target के लिए स्पष्ट लिखित प्राधिकरण होना पूरी तरह आपकी जिम्मेदारी है। उन systems का परीक्षण करना जो आपके नहीं हैं, Computer Fraud and Abuse Act, Computer Misuse Act 1990, GDPR Article 32, और अन्य जगहों के समकक्षों का उल्लंघन कर सकता है।
पहला run AUP acceptance के लिए पूछता है और इसे बनाए रखता है। CI में PENTEST_AI_AUP_ACCEPTED=1 सेट करें। Out-of-scope hosts को tool-invocation समय पर अस्वीकार कर दिया जाता है। तीन guardrails डिफ़ॉल्ट रूप से off होते हैं और चालू करने लायक हैं: intensity=safe state-mutating probes को छोड़ देता है, respect_rate_limits 429/Retry-After का सम्मान करता है, और strict_scope off-host requests को अस्वीकार करता है।
Out-of-band callbacks (OAST) — गोपनीयता
Blind classes (blind SSRF/SQLi/XXE, stored XSS, SSTI, Log4Shell) callbacks के माध्यम से detect की जाती हैं जो डिफ़ॉल्ट रूप से ProjectDiscovery के सार्वजनिक oast.fun पर route होती हैं।
प्रत्येक engagement स्थानीय रूप से एक नई RSA-2048 keypair उत्पन्न करता है। Interaction payloads at rest AES-CTR-256 encrypted होते हैं, key आपकी public key पर RSA-OAEP-SHA256 में wrapped होती है, इसलिए केवल आपकी local process उन्हें decrypt कर सकती है। लेकिन metadata server-visible है: कि एक interaction हुआ, target का source IP, timestamp, और protocol।
PortSwigger अपने bug bounty नियमों में public-collaborator उपयोग को प्रतिबंधित करता है, और बड़े programs increasingly tester-controlled callback infrastructure की आवश्यकता रखते हैं। Paid engagements के लिए, Interactsh को self-host करें:
ptai start http://target --oast-server https://oast.example.com --oast-token <T>
ptai start http://target --no-oast # या पूरी तरह disable करें
FAQ
क्या मुझे API key चाहिए? MCP path पर नहीं — आपकी Claude Code / Cursor / Codex subscription ही LLM है। केवल स्टैंडअलोन CLI को एक चाहिए, और वहाँ भी Ollama पूरी तरह local चलता है।
क्या यह autonomous है? नहीं, और यह होने का दावा नहीं करता। Probes detect करते हैं, LLM समन्वय करता है, आप तय करते हैं। Ctrl+C दो बार दबाने से run के बीच में नियंत्रण लेता है।
Production के खिलाफ सुरक्षित? केवल लिखित प्राधिकरण और उपरोक्त तीन guardrails चालू होने पर।
क्या यह घर फोन करता है? कोई telemetry नहीं; findings आपकी disk पर रहती हैं। OAST callbacks एकमात्र अपवाद हैं — ऊपर देखें, या --no-oast चलाएँ।
यह Claude से कुछ hack करने के लिए कहने से कैसे अलग है? एक curated deterministic probe library bugs ढूंढती है और एक machine oracle उन्हें साबित करता है। अकेला LLM आपको एक plausible guess देता है जिसमें यह बताने का कोई तरीका नहीं होता कि यह असली है या नहीं।
Ecosystem
| Repo | क्या |
|---|---|
| pentest-ai | यह repo। CLI + MCP server। |
| pentest-ai-agents | स्टैंडअलोन Claude Code subagent files। वैकल्पिक। |
समुदाय: Discord · Discussions · Issues
Star history
License
MIT. इसके साथ जो चाहें करें।
यदि ptai ने आपका एक रविवार बचाया है, तो repo को star करें।