Package Exports
- pentesting
- pentesting/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pentesting) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
π― Pentesting
μΈκ°μ²λΌ μκ°νκ³ μ€ννλ μμ¨ μΉ¨ν¬ ν μ€νΈ AI μμ΄μ νΈ
π‘ μ² ν: μ PentestingμΈκ°?
λ¬Έμ
κΈ°μ‘΄ μΉ¨ν¬ ν μ€νΈλ λꡬ μ€μ¬μ λλ€:
- nmapμΌλ‘ μ€μΊνκ³ , κ²°κ³Όλ₯Ό 보κ³
- sqlmapμΌλ‘ ν μ€νΈνκ³ , λ€λ₯Έ λκ΅¬λ‘ λμ΄κ°κ³
- κ° λꡬμ μΆλ ₯μ ν΄μνκ³ , λ€μ λ¨κ³λ₯Ό κ²°μ νκ³
μ΄κ²μ λ°λ³΅μ μ΄κ³ , μκ° μλͺ¨μ μ΄λ©°, μ λ¬Έκ° μ§μμ΄ νμν©λλ€.
ν΄κ²°μ±
Pentestingμ μ¬κ³ μ€μ¬μ λλ€:
- "μ΄ μΉ μ ν리μΌμ΄μ μ μΉ¨ν¬νλΌ"
- μμ΄μ νΈκ° μ€μ€λ‘ λꡬλ₯Ό μ ννκ³ , κ²°κ³Όλ₯Ό λΆμνκ³ , λ€μ μ λ΅μ κ²°μ ν©λλ€
Before (λꡬ μ€μ¬):
Human β [κ²°μ ] β nmap β [λΆμ] β [κ²°μ ] β sqlmap β [λΆμ] β ...
After (μ¬κ³ μ€μ¬):
Human β "μΉ¨ν¬νλΌ" β Pentesting Agent β [μλνλ μ¬κ³ -νλ 루ν] β λ³΄κ³ μν΅μ¬ μ λ
AIλ λκ΅¬κ° μλλΌ λλ£μ λλ€
- λͺ λ Ήμ μ€ννλ κ²μ΄ μλλΌ λͺ©νλ₯Ό λ¬μ±ν©λλ€
- μ€ν¨νλ©΄ μ€μ€λ‘ λ€λ₯Έ λ°©λ²μ μ°Ύμ΅λλ€
μ λ’°ν μ μλ κ²°κ³Όλ§ λ³΄κ³ ν©λλ€
- 80% μ΄μ μ λ’°λμ λ°κ²¬λ§ 보κ³
- κ±°μ§ μμ±μ μ κ·Ήμ μΌλ‘ νν°λ§
μΈκ° μ λ¬Έκ°μ μ¬κ³ κ³Όμ μ λͺ¨λ°©ν©λλ€
- "Think β Act β Observe β Reflect" 루ν
- λ§λ€λ₯Έ κΈΈμμ μκ°μ¬νμΌλ‘ 볡ꡬ (D-Mail)
π§ ReAct: μκ°νκ³ νλνκΈ°
Pentestingμ ReAct ν¨ν΄μ ν΅μ¬μΌλ‘ ν©λλ€:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β π€ THINK β
β "νκ²μ΄ Apache 2.4.49λ₯Ό μ€ν μ€μ΄λ€. β
β Path Traversal μ·¨μ½μ (CVE-2021-41773)μ΄ μμ μ μλ€." β
β β
β β‘ ACT β
β [nmap_scan] target=192.168.1.1 ports=80,443 β
β β
β ποΈ OBSERVE β
β "ν¬νΈ 80μμ Apache/2.4.49 νμΈ. β
β mod_cgi νμ±νλ¨." β
β β
β π REFLECT β
β "CVE-2021-41773 κ°λ₯μ± λμ. μ΅μ€νλ‘μ μλν΄μΌ ν¨. β
β μ λ’°λ: 85%. λ€μ: exploit-researcherμκ² μμ." β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββπ λΉ λ₯Έ μμ
μ€μΉ
npm install -g pentesting
# λλ
npx pentestingAPI ν€ μ€μ
export ANTHROPIC_API_KEY=sk-ant-xxxμ€ν
pentesting첫 λ²μ§Έ 곡격
π― Pentesting > scan 192.168.1.1μμ΄μ νΈκ° μλμΌλ‘:
- ν¬νΈ μ€μΊ μν
- μλΉμ€ λ²μ νμΈ
- μ·¨μ½μ κ²μ
- μ΅μ€νλ‘μ μλ
- κ²°κ³Ό 보κ³
ποΈ μν€ν μ²
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PENTESTING SOUL β
β β
β βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ β
β β ReAct Loop β β D-Mail β β Planner β β
β β β β System β β β β
β β Think/Act/ β β Time Travel β β Attack Plan β β
β β Observe/ β β Checkpoint β β Generation β β
β β Reflect β β Rollback β β β β
β βββββββββ¬ββββββββ βββββββββ¬ββββββββ βββββββββ¬ββββββββ β
β β β β β
β ββββββββββββββββββββΌβββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ β
β β RUNTIME β β
β β Context β Toolset β Memory β Approval β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LABOR MARKET β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Recon β β Exploit β β Web β β
β β Agent β β Agent β β Agent β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββν΅μ¬ μ»΄ν¬λνΈ
| μ»΄ν¬λνΈ | μν |
|---|---|
| PentestingSoul | λ©μΈ μμ΄μ νΈ λ£¨ν, λͺ¨λ κ²μ μ‘°μ¨ |
| ReActLoop | Think/Act/Observe/Reflect ν¨ν΄ ꡬν |
| DMailSystem | μκ°μ¬ν λλ²κΉ , 체ν¬ν¬μΈνΈ λ‘€λ°± |
| Planner | 곡격 κ³ν μμ± λ° κ΄λ¦¬ |
| LaborMarket | μ λ¬Έ μλΈμμ΄μ νΈ ν λΉ |
| ContextManager | λν νμ€ν 리 μμΆ |
| ConfidenceFilter | 80%+ μ λ’°λ νν°λ§ |
β±οΈ D-Mail: μκ°μ¬ν λλ²κΉ
λ§λ€λ₯Έ κΈΈμ λλ¬νμ λ, μμ΄μ νΈλ κ³Όκ±°λ‘ λ©μμ§λ₯Ό λ³΄λ΄ λ€λ₯Έ κ²½λ‘λ₯Ό μλν©λλ€:
νμ¬: SQLi μλ 5ν λͺ¨λ μ€ν¨
β
D-Mail μ μ‘: "SQLi μ€ν¨ν¨. XSS μλν κ²"
β
체ν¬ν¬μΈνΈλ‘ λ‘€λ°±
β
μλ‘μ΄ μ λ΅μΌλ‘ μ¬μλ// μμ΄μ νΈ λ΄λΆ λμ
if (isStuck) {
dmailSystem.sendDMail(
'SQLi approach failed. Try XSS instead.',
lastCheckpoint,
'Stuck after 5 SQLi attempts'
);
throw new BackToTheFuture('Time travel initiated', lastCheckpoint);
}π₯ λ©ν° μμ΄μ νΈ μμ€ν
μ λ¬Έ μμ΄μ νΈ
| μμ΄μ νΈ | μ λ¬Έ λΆμΌ | λꡬ |
|---|---|---|
| target-explorer | μ μ°°, μ 보 μμ§ | nmap, whois, dig |
| exploit-researcher | μ·¨μ½μ μ°κ΅¬ | searchsploit, cve-search |
| web-hacker | μΉ μ ν리μΌμ΄μ | sqlmap, nuclei |
| crypto-analyst | μνΈ λΆμ | hashcat, john |
μμ΄μ νΈ μμ
Main Agent: "μΉ μλ²μμ SQLi κ°λ₯μ± λ°κ²¬"
β
ββββ [web-hacker] "λ‘κ·ΈμΈ νΌμμ SQLi ν
μ€νΈ"
β
ββββ κ²°κ³Ό λ°ν: "SQLi νμΈ, λ°μ΄ν°λ² μ΄μ€ λ€ν κ°λ₯"λ³λ ¬ Swarm μ€ν
const swarm = new AgentSwarm(runtime);
const results = await swarm.executeParallel([
{ agentName: 'web-hacker', task: 'Test SQLi on login' },
{ agentName: 'web-hacker', task: 'Test XSS on search' },
{ agentName: 'target-explorer', task: 'Find hidden endpoints' },
]);π μ λ’°λ κΈ°λ° νν°λ§
80% μ΄μ μ λ’°λλ§ λ³΄κ³ ν©λλ€.
μ λ’°λ κ³μ°:
κΈ°λ³Έκ°: 50%
+ μ¦κ±° μ Γ 10% (μ΅λ 30%)
+ μ΅μ€νλ‘μ κ°λ₯: +15%
+ μ¬κ°λ λμ: +5-10%
+ CVE μ°Έμ‘°: +10%
= μ΅μ’
μ λ’°λconst finding = createFinding({
title: 'SQL Injection in login',
description: 'Time-based blind SQLi',
severity: 'critical',
evidence: ['sqlmap output', 'response time analysis', 'CVE-2021-xxxx'],
exploitable: true,
});
// μ λ’°λ: 50 + 30 + 15 + 10 + 10 = 115% β 100%
// β λ³΄κ³ λ¨ β
π λͺ λ Ήμ΄
| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
scan <target> |
νκ² μ€μΊ λ° μ μ°° |
exploit <target> |
μ·¨μ½μ μ΅μ€νλ‘μ |
report |
λ°κ²¬ μ¬ν λ³΄κ³ μ μμ± |
status |
νμ¬ μ§ν μν© |
plan |
곡격 κ³ν μ‘°ν |
agents |
μ¬μ© κ°λ₯ν μμ΄μ νΈ λͺ©λ‘ |
βοΈ μ€μ
// pentesting.config.ts
export default {
// LLM μ€μ
model: 'claude-opus-4-0',
maxTokens: 8096,
// μμ΄μ νΈ μ€μ
maxStepsPerTurn: 50,
confidenceThreshold: 80,
// 컨ν
μ€νΈ μ€μ
maxContextTokens: 150000,
compactionThreshold: 0.8,
// μΉμΈ μ€μ
yoloMode: false, // trueλ©΄ λͺ¨λ λꡬ μλ μΉμΈ
};π§ͺ ν μ€νΈ
npm test β tests/soul.test.ts (24 tests) 10ms
β Context
β AgentRegistry
β ConfidenceFilter
β ReActLoop
β DMailSystem
β MessageBus
β MemoryManager
β Integration Testsπ νλ‘μ νΈ κ΅¬μ‘°
src/
βββ soul/ # ν΅μ¬ μμ΄μ νΈ μμ€ν
β βββ pentesting-soul.ts # λ©μΈ μμ΄μ νΈ λ£¨ν
β βββ react.ts # ReAct ν¨ν΄
β βββ dmail.ts # μκ°μ¬ν μμ€ν
β βββ planner.ts # κ³ν μμ€ν
β βββ swarm.ts # λ³λ ¬ μμ΄μ νΈ
β βββ confidence.ts # μ λ’°λ νν°λ§
β βββ ...
βββ tools/ # λꡬ μ μ
βββ agents/ # μμ΄μ νΈ μ€ν
βββ experience/ # νμ΅ μμ€ν
βββ prompts/ # ν둬ννΈ ν
νλ¦Ώπ λ¬Έμ
- μμ€ν μν€ν μ² - μμΈ κΈ°μ λ¬Έμ
- OpenClaw λΆμ - κ°μ κ³ν
- API λ νΌλ°μ€ - API λ¬Έμ
- ꡬν μ§ν μν© - κ°λ° μν
π£οΈ λ‘λλ§΅
v1.0 (νμ¬) β
- ReAct ν¨ν΄ ꡬν
- D-Mail μκ°μ¬ν
- λ©ν° μμ΄μ νΈ μμ€ν
- μ λ’°λ νν°λ§
- 컨ν μ€νΈ μμΆ
v1.1 (λ€μ)
- μꡬ λ²‘ν° λ©λͺ¨λ¦¬
- μΈμ μμμ±
- κ°νλ ν μμ€ν
v1.2 (κ³ν)
- Docker μλλ°μ€
- μ€ν¬ λ§μΌνλ μ΄μ€
- μΈμ¦ νλ‘ν κ΄λ¦¬
π€ κΈ°μ¬
κΈ°μ¬λ₯Ό νμν©λλ€! CONTRIBUTING.mdλ₯Ό μ°Έκ³ νμΈμ.
π λΌμ΄μ μ€
MIT License - LICENSE
β οΈ λ©΄μ± μ‘°ν
μ΄ λꡬλ ν©λ²μ μΈ λ³΄μ ν μ€νΈ λͺ©μ μΌλ‘λ§ μ¬μ©ν΄μΌ ν©λλ€. νκ° μμ΄ μμ€ν μ ν μ€νΈνλ κ²μ λΆλ²μ λλ€. μ¬μ©μλ λͺ¨λ νλμ λν μ± μμ μ§λλ€.
Built with π§ by agnusdei1207