
pentest-ai v1.4.0
ओपन-सोर्स AI पेंटेस्टर जो हर निष्कर्ष को प्रमाणित करता है। मशीन ओरेकल प्रत्येक एक्सप्लॉइट को दोबारा चलाते हैं; सत्यापित बग एक प्रूफ कैप्सूल के साथ आते हैं जिसे आप स्वयं रीप्ले कर सकते हैं।
pentest-ai
यह फ्लैग नहीं करता। यह साबित करता है।
वेबसाइट · इंस्टॉल · सत्यापन क्यों · बेंचमार्क · सीमाएँ · Discord
⚠️ आक्रामक टूलिंग, केवल अधिकृत परीक्षण। इंस्टॉल करके आप AUP और शर्तें स्वीकार करते हैं। देखें जिम्मेदार उपयोग ↓
दो मिनट, कोई API key नहीं, अपना कोई टारगेट नहीं
pip install ptai && ptai demo
ptai demo एक बंडल किए गए कमज़ोर ऐप को स्कैन करता है और 4 findings, 3 oracle-VERIFIED प्रिंट करता है।
यह एक को प्रूफ कैप्सूल से लाइव रीप्ले करता है (replay 3/3), फिर उन्हीं रूट्स को
हार्डन करके चलाता है और 0 findings प्रिंट करता है।
दो बातें ध्यान देने योग्य हैं। findings कमज़ोरी के साथ आते और गायब होते हैं, न कि इसलिए कि टूल चुप हो गया — दोनों रनों के बीच केवल फिक्स बदला है। और चार में से एक candidate बना रहता है: SQLi लॉगिन बायपास असली है, लेकिन उस रूट पर कोई oracle इसे दोबारा साबित नहीं कर सका, इसलिए इसे बैज नहीं मिलता। यह अंतर प्रोडक्ट के काम करने का सबूत है, डेमो में बग नहीं।
यहाँ VERIFIED का वास्तव में क्या मतलब है
अधिकांश स्कैनर आपको बताते हैं कि कोई चीज़ शायद शोषणीय है और ट्रायाज आप पर छोड़ देते हैं। ptai किसी finding को तब तक candidate मानता है जब तक कोई नामित मशीन oracle exploit को दोबारा चलाकर इसे N में से N बार रिप्रोड्यूस न कर दे। तभी यह VERIFIED अर्जित करता है।
तीन गुण इसे नारे से अधिक बनाते हैं:
कोई भी LLM कभी निर्णय नहीं देता। यह नियम कोड में लागू है, नीति से नहीं: ऐसा निर्णय जो उस oracle का नाम नहीं बता सकता जिसने उसे अर्जित किया, अस्वीकार कर दिया जाता है। एक LLM रन को कोऑर्डिनेट करता है और परिणामों पर तर्क करता है। यह कभी तय नहीं करता कि बग असली है या नहीं।
हर oracle के पास एक कंट्रोल होता है जिसे फेल होना ही है। एक trusted-header बायपास को हेडर के साथ विशेषाधिकार प्राप्त कंटेंट और उसके बिना इनकार लौटाना होता है। एक leaked-credential चेक को असली सीक्रेट के लिए स्वीकार और जानबूझकर करप्ट किए गए जुड़वाँ के लिए अस्वीकार होना चाहिए। ऐसा एंडपॉइंट जो हर चीज़ को 200 लौटाता है, कुछ भी अर्जित नहीं करता। यही "इसने 200 लौटाया" को सबूत समझ लेने से रोकता है।
थर्ड-पार्टी स्कैनर आउटपुट को रोका जाता है। nuclei, nikto और zap के परिणाम अपने अधिकार से findings नहीं बनते। वे तब तक unverified रहते हैं जब तक ptai के अपने किसी oracle उन्हें स्वतंत्र रूप से दोबारा साबित न कर दे।
प्रत्येक VERIFIED finding एक पोर्टेबल प्रूफ कैप्सूल के रूप में आता है — finding,
इसे दोबारा साबित करने की रेसिपी, और रसीद। कोई भी इसे लाइव टारगेट के विरुद्ध ptai replay कर सकता है
और oracle को दोबारा पुष्टि करते देख सकता है, ptai पर भरोसा किए बिना। कैप्सूल जानबूझकर
अहस्ताक्षरित हैं: रीप्ले ही विश्वास का तंत्र है, कोई हस्ताक्षर नहीं जिसे आपको
आस्था पर लेना पड़े।
ईमानदार आँकड़े
| कार्यशील oracle वाली कमज़ोरी श्रेणियाँ | 14 |
| लाइब्रेरी में प्रोब | 64 |
| VERIFIED अर्जित कर सकने वाले प्रोब | 30 |
| Oracle प्रकार | 24 |
| टूल रैपर | 203 |
| …जो आज आउटपुट को findings में पार्स करते हैं | 18 |
| MCP टूल | 52 |
| विशेषज्ञ एजेंट | 18 |
| टेस्ट | 2,729 on Python 3.10 / 3.12 / 3.14 |
जानबूझकर कमज़ोर बनाए गए हनीपॉट पर, उन 14 श्रेणियों में 23 findings 100% परिशुद्धता
के साथ सत्यापित होते हैं, शून्य false positives के साथ। एक स्टॉक OWASP Juice Shop पर, 17
findings 2026-08-23 स्वीप में सत्यापित हुए — रिपोर्ट in-scope HTTP / verified /
precision के रूप में करें, 17/116 नहीं। एक 2026-08-25 Path 1 MCP सेशन (MCP क्लाइंट
run_probe चला रहा था, orchestrator verify से पहले टारगेट मर गया) ने 64 in-scope HTTP
चैलेंजों (20 will-not-chase) के विरुद्ध 100% परिशुद्धता पर 12 सत्यापित प्रूफ अर्जित किए। OSINT,
Web3, और UI-only Juice Shop keys डिज़ाइन से ऑटोमेशन स्कोरबोर्ड से बाहर हैं।
इन आँकड़ों को ध्यान से पढ़ें, क्योंकि अंतराल ही मुद्दा है। 64 प्रोब मौजूद हैं लेकिन केवल 30 निर्णय अर्जित कर सकते हैं; बाकी 34 ईमानदार candidates रिपोर्ट करते हैं। 203 रैपर रजिस्टर्ड हैं लेकिन केवल 18 टूल आउटपुट को findings में बदलते हैं — बाकी चलते हैं और कच्चा टेक्स्ट लौटा देते हैं। oracle गेट परिशुद्धता खरीदता है, कैच रेट नहीं: यह false positives हटाता है, यह अधिक बग नहीं ढूँढता।
हनीपॉट हार्नेस (tests/honeypot/) और एक क्लीन-ऐप
शून्य-false-positive गेट (tests/cleanapp/) दोनों इस
रेपो में शिप होते हैं और CI में चलते हैं, इसलिए ये स्क्रीनशॉट के बजाय रिप्रोड्यूसिबल हैं।
यह क्या नहीं करता
स्पष्ट रूप से कहा गया है, क्योंकि जो सुरक्षा टूल खुद को बढ़ा-चढ़ाकर बेचता है वह बेकार से भी बदतर है।
- यह एक वेब एप्लिकेशन स्कैनर है। सभी 64 प्रोब और सभी 24 oracle प्रकार HTTP को लक्षित करते हैं। AD, क्लाउड, मोबाइल और वायरलेस के पास एजेंट और टूल रैपर हैं, लेकिन उनके पीछे कोई प्रोब लाइब्रेरी और कोई oracle नहीं है।
- यह लोकल प्रिविलेज एस्केलेशन नहीं कर सकता। इसके लिए उस होस्ट पर कोड एक्ज़ीक्यूशन चाहिए
जो पहले से आपके पास है। ptai रिमोट से टेस्ट करता है और उसका ऐसा कोई चैनल नहीं है, इसलिए privesc
एजेंट भ्रामक शून्य के बजाय
unsupportedरिपोर्ट करता है। - यह CVE स्कैनर नहीं है। कोई version-to-CVE डेटाबेस और कोई exploit लाइब्रेरी नहीं है। CVE कार्य लीक हुए manifests पर osv.dev लुकअप तक सीमित है।
- Playbooks योजना बनाते हैं, निष्पादित नहीं करते।
ptai playbook runनिर्भरताएँ हल करता है और योजना प्रिंट करता है। इसे किसी टारगेट के विरुद्ध चलाना अभी जोड़ा नहीं गया है। - यह स्वायत्त नहीं है। पूरी तरह स्वायत्त LLM पेंटेस्ट एजेंट 21–31% कार्य एंड-टू-एंड पूरे करते हैं; मानव-सहायता प्राप्त सेटअप 64% तक पहुँचते हैं। ptai दूसरे शासन के लिए बनाया गया है। रन के बीच में नियंत्रण लेने के लिए Ctrl+C दो बार दबाएँ।
पूरी आंतरिक दोष सूची, जिसमें ऊपर की सब कुछ शामिल है, चुपचाप के बजाय खुले तौर पर ट्रैक की जाती है। अगर यहाँ कुछ गलत है, तो एक issue खोलें और इसे ठीक किया जाएगा।
इंस्टॉल
Path 1 — इसे Claude Code, Cursor या Codex से चलाएँ (कोई API key नहीं)
आपकी मौजूदा AI सदस्यता ही LLM है। ptai टूल्स प्रदान करता है।
pip install ptai
ptai mcp install # auto-detects your MCP clients and writes their configs
क्लाइंट को रीस्टार्ट करें और 52 टूल्स वहाँ हैं। इस पथ पर कोई Anthropic key आवश्यक नहीं — MCP सर्वर डिज़ाइन से अपना कोई LLM होस्ट नहीं करता।
Path 2 — स्टैंडअलोन CLI
pip install ptai
export ANTHROPIC_API_KEY=sk-... # or OPENAI_API_KEY
ptai start https://target.example.com
# fully local, no cloud:
export PENTEST_AI_LLM_PROVIDER=ollama
# or deterministic, no LLM at all:
ptai start https://target.example.com --no-llm
खर्च डिफ़ॉल्ट रूप से प्रति एंगेजमेंट $10 पर सीमित है (PTAI_PRICE_LIMIT)।
सुरक्षा टूल्स, REST API, और अन्य विकल्प
ptai tools install --tier core # or recommended / full
ptai tools install nmap nuclei # or by name
ptai serve # HTTP REST + WebSocket for dashboards
ptai menu # interactive launcher, no LLM
एंगेजमेंट शुरू होने पर प्लानर भविष्यवाणी करता है कि रन को कौन से टूल्स चाहिए और एक बार गुम टूल्स इंस्टॉल करने के लिए पूछता है। मना करें और उत्तर बना रहता है।
बेंचमार्क
रिप्रोड्यूसिबल, git में, कच्चे आर्टिफैक्ट्स के साथ। कोई "98.7% डिटेक्शन रेट" नहीं जिसे आप ऑडिट न कर सकें।
| 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, सिंगल-रेटर, OWASP Juice Shop पर सिंगल-शॉट। कार्यप्रणाली और कच्चा आउटपुट
benchmarks/ में; पूरा लेख docs/benchmarks/juice-shop.md में।
ईमानदार पाठ: ptai क्यूरेटेड प्रोब कवरेज वाले SPA वेब टारगेट्स पर मजबूत है। HexStrike व्यापक है (क्लाउड, बाइनरी, CTF) और WordPress जैसी पारंपरिक क्रॉल करने योग्य सतहों पर संभवतः ptai को हरा देगा। Juice Shop इंटरनेट पर सबसे अधिक प्रलेखित कमज़ोर ऐप भी है, इसलिए LLM और प्रोब लेखक दोनों को बढ़त मिलती है — यही कारण है कि निजी हनीपॉट संख्या कम है, और यही कारण है कि दोनों प्रकाशित होते हैं।
इसे 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 बिल्ड को केवल तब तोड़ता है जब कोई finding वास्तव में किसी oracle द्वारा साबित हुआ हो,
इसलिए गेट स्कैनर शोर से ट्रिगर नहीं हो सकता। SARIF GitHub Code
Scanning पर अपलोड होता है, findings PR कमेंट के रूप में पोस्ट होते हैं। GitLab और Jenkins टेम्पलेट्स
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 विशेषज्ञ एजेंट चरणों को चलाते हैं। API key के साथ प्रत्येक परिणामों पर तर्क करने के लिए LLM का उपयोग करता है; उसके बिना यह एक नियतात्मक टूल लूप के रूप में चलता है। चरण क्रम और डिटेक्शन दोनों तरह से समान हैं — प्रोब बग ढूँढते हैं, LLM केवल कोऑर्डिनेट करता है।
यह किसके लिए है
AppSec टीमें जो हर PR में एक प्रमाणित स्कैन जोड़ रही हैं, ऐसे गेट के साथ जो केवल साबित findings पर ट्रिगर होता है। सलाहकार जो चाहते हैं कि रिपोर्ट खुद लिखी जाए और एक कैप्सूल हो जिसे क्लाइंट के अपने इंजीनियर रीप्ले कर सकें। बग बाउंटी हंटर्स जो 600 maybes के बजाय 12 साबित findings का ट्रायाज करना पसंद करेंगे। Claude Code / Cursor / Codex उपयोगकर्ता जो अपने असिस्टेंट के पीछे एक और API बिल के बिना असली टूलिंग चाहते हैं।
मेरे साथ काम करें
टूल MIT है और हमेशा के लिए मुफ़्त है — यह नहीं बदलेगा।
अगर आप खुद चलाने के बजाय एक पेंटेस्ट डिलीवर करवाना चाहते हैं, या इतिहास और टीम एक्सेस वाला होस्टेड वर्कस्पेस चाहते हैं, दोनों pentestai.xyz पर हैं। डिलीवर किए गए एंगेजमेंट में प्रत्येक finding एक प्रूफ कैप्सूल के साथ आता है जिसे आपके इंजीनियर खुद रीप्ले कर सकते हैं, जो गंभीरता रेटिंग से भरे PDF से बिल्कुल अलग आर्टिफैक्ट है।
प्रश्न: [email protected]
जिम्मेदार उपयोग
ptai आपके निर्दिष्ट टारगेट्स के विरुद्ध असली नेटवर्क और होस्ट ऑपरेशन निष्पादित करता है। प्रत्येक टारगेट के लिए स्पष्ट लिखित प्राधिकरण रखने की पूरी ज़िम्मेदारी आपकी है। ऐसे सिस्टम का परीक्षण करना जो आपके नहीं हैं, Computer Fraud and Abuse Act, Computer Misuse Act 1990, GDPR Article 32, और अन्यत्र समकक्षों का उल्लंघन कर सकता है।
पहला रन AUP स्वीकृति के लिए प्रॉम्प्ट करता है और इसे बनाए रखता है। CI में
PENTEST_AI_AUP_ACCEPTED=1 सेट करें। Out-of-scope होस्ट्स को
टूल-इनवोकेशन के समय अस्वीकार कर दिया जाता है। तीन गार्डरेल डिफ़ॉल्ट रूप से बंद शिप होते हैं और इन्हें चालू करना उचित है:
intensity=safe स्टेट-म्यूटेटिंग प्रोब छोड़ देता है, respect_rate_limits 429/Retry-After का पालन करता है, और
strict_scope ऑफ-होस्ट अनुरोधों को अस्वीकार करता है।
Out-of-band callbacks (OAST) — गोपनीयता
Blind श्रेणियाँ (blind SSRF/SQLi/XXE, stored XSS, SSTI, Log4Shell) callbacks के माध्यम से
पकड़ी जाती हैं जो डिफ़ॉल्ट रूप से ProjectDiscovery के सार्वजनिक oast.fun पर रूट होती हैं।
प्रत्येक एंगेजमेंट स्थानीय रूप से एक नई RSA-2048 keypair जनरेट करता है। Interaction payloads आपकी पब्लिक key पर RSA-OAEP-SHA256 में रैप की गई key के साथ AES-CTR-256 एन्क्रिप्टेड at rest होते हैं, इसलिए केवल आपकी स्थानीय प्रक्रिया ही उन्हें डिक्रिप्ट कर सकती है। लेकिन मेटाडेटा सर्वर-दृश्य है: कि एक interaction हुआ, टारगेट का सोर्स IP, टाइमस्टैम्प, और प्रोटोकॉल।
PortSwigger अपने बग बाउंटी नियमों में सार्वजनिक-कोलैबोरेटर उपयोग को मना करता है, और बड़े प्रोग्राम तेजी से टेस्टर-नियंत्रित callback इंफ्रास्ट्रक्चर की मांग कर रहे हैं। सशुल्क एंगेजमेंट के लिए, Interactsh को स्वयं होस्ट करें:
ptai start http://target --oast-server https://oast.example.com --oast-token <T>
ptai start http://target --no-oast # or disable entirely
FAQ
क्या मुझे API key चाहिए? MCP पथ पर नहीं — आपकी Claude Code / Cursor / Codex सदस्यता ही LLM है। केवल स्टैंडअलोन CLI को इसकी आवश्यकता है, और वहाँ भी Ollama पूरी तरह स्थानीय रूप से चलता है।
क्या यह स्वायत्त है? नहीं, और यह ऐसा दावा नहीं करता। प्रोब पकड़ते हैं, LLM कोऑर्डिनेट करता है, आप निर्णय लेते हैं। Ctrl+C दो बार रन के बीच में नियंत्रण ले लेता है।
प्रोडक्शन के विरुद्ध सुरक्षित? केवल लिखित प्राधिकरण और ऊपर दिए गए तीन गार्डरेल चालू होने पर।
क्या यह घर फोन करता है? डिफ़ॉल्ट रूप से नहीं। Findings आपकी डिस्क पर रहते हैं। आप
ptai telemetry enable के साथ अनाम उपयोग काउंटरों में ऑप्ट इन कर सकते हैं (कोई टारगेट नहीं,
कोई findings नहीं; स्कीमा engine/telemetry.py में)। OAST callbacks डिफ़ॉल्ट रूप से
ProjectDiscovery के oast.fun पर जाते हैं जब तक आप --oast-server या --no-oast पास न करें।
यह Claude से कुछ हैक करने के लिए कहने से कैसे अलग है? एक क्यूरेटेड नियतात्मक प्रोब लाइब्रेरी बग ढूँढती है और एक मशीन oracle उन्हें साबित करता है। अकेला LLM आपको एक प्रशंसनीय अनुमान देता है जिसके असली होने का पता लगाने का कोई तरीका नहीं।
इकोसिस्टम
| Repo | What |
|---|---|
| pentest-ai | यह रेपो। CLI + MCP सर्वर। |
| pentest-ai-agents | स्टैंडअलोन Claude Code सबएजेंट फ़ाइलें। वैकल्पिक। |
कम्युनिटी: Discord · Discussions · Issues
स्टार इतिहास
पुराना इनलाइन चार्ट (api.star-history.com) खाली है: GitHub ने उन SVGs की निर्भरता वाली
सार्वजनिक stargazers API को प्रतिबंधित कर दिया। लाइव सीरीज़ star-history.com पर है। README किसी प्रतिस्थापन होस्ट को हॉटलिंक नहीं करता — हर विज़िटर का ब्राउज़र उस SVG को फ़ेच करता।
लाइसेंस
MIT. इसके साथ जो चाहें करें।
अगर ptai ने आपका एक रविवार बचाया, तो रेपो को स्टार करें।