pwn 0.5.615 → 0.5.618
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.
- checksums.yaml +4 -4
- data/README.md +109 -85
- data/README.md.bak +200 -0
- data/bin/pwn +47 -2
- data/bin/pwn_gqrx_scanner +75 -18
- data/documentation/AI-Integration.md +42 -26
- data/documentation/AWS.md +57 -0
- data/documentation/Agent-Tool-Registry.md +56 -0
- data/documentation/Banner.md +17 -0
- data/documentation/Blockchain.md +18 -0
- data/documentation/Bounty.md +21 -0
- data/documentation/BurpSuite.md +41 -16
- data/documentation/CLI-Drivers.md +58 -0
- data/documentation/Configuration.md +66 -0
- data/documentation/Contributing.md +33 -19
- data/documentation/Cron.md +47 -0
- data/documentation/Diagrams.md +123 -40
- data/documentation/Drivers.md +43 -16
- data/documentation/Extrospection.md +54 -0
- data/documentation/FFI.md +14 -0
- data/documentation/Fuzzing.md +36 -0
- data/documentation/General-PWN-Usage.md +50 -30
- data/documentation/Hardware.md +40 -0
- data/documentation/Home.md +78 -51
- data/documentation/How-PWN-Works.md +59 -57
- data/documentation/Installation.md +53 -28
- data/documentation/Metasploit.md +34 -0
- data/documentation/NmapIt.md +18 -12
- data/documentation/PWN.png +0 -0
- data/documentation/PWN_Contributors_and_Users.png +0 -0
- data/documentation/Persistence.md +38 -0
- data/documentation/Plugins.md +97 -47
- data/documentation/Reporting.md +25 -18
- data/documentation/SAST.md +39 -22
- data/documentation/SDR.md +40 -0
- data/documentation/Sessions.md +39 -0
- data/documentation/Skills-Memory-Learning.md +49 -29
- data/documentation/Swarm.md +71 -0
- data/documentation/Transparent-Browser.md +26 -22
- data/documentation/Troubleshooting.md +44 -25
- data/documentation/WWW.md +32 -0
- data/documentation/What-is-PWN.md +51 -32
- data/documentation/Why-PWN.md +41 -11
- data/documentation/diagrams/agent-tool-registry.svg +284 -0
- data/documentation/diagrams/ai-integration-tool-calling.svg +141 -103
- data/documentation/diagrams/aws-cloud-security.svg +166 -0
- data/documentation/diagrams/build.sh +20 -0
- data/documentation/diagrams/burp-vs-zap-preference.svg +47 -62
- data/documentation/diagrams/code-scanning-sast.svg +139 -79
- data/documentation/diagrams/cron-scheduling.svg +148 -0
- data/documentation/diagrams/dot/_THEME.md +27 -0
- data/documentation/diagrams/dot/agent-tool-registry.dot +59 -0
- data/documentation/diagrams/dot/ai-integration-tool-calling.dot +47 -20
- data/documentation/diagrams/dot/aws-cloud-security.dot +48 -0
- data/documentation/diagrams/dot/burp-vs-zap-preference.dot +23 -12
- data/documentation/diagrams/dot/code-scanning-sast.dot +46 -18
- data/documentation/diagrams/dot/cron-scheduling.dot +40 -0
- data/documentation/diagrams/dot/driver-framework.dot +36 -14
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +55 -0
- data/documentation/diagrams/dot/fuzzing-workflow.dot +44 -24
- data/documentation/diagrams/dot/hardware-hacking.dot +48 -0
- data/documentation/diagrams/dot/history-to-drivers.dot +31 -17
- data/documentation/diagrams/dot/memory-skills-detailed.dot +57 -25
- data/documentation/diagrams/dot/network-infra-testing.dot +51 -19
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +110 -44
- data/documentation/diagrams/dot/penetration-testing-workflow.dot +56 -25
- data/documentation/diagrams/dot/persistence-filesystem.dot +29 -0
- data/documentation/diagrams/dot/plugin-ecosystem.dot +41 -27
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +87 -46
- data/documentation/diagrams/dot/pwn-repl-prototyping.dot +49 -30
- data/documentation/diagrams/dot/reporting-pipeline.dot +43 -14
- data/documentation/diagrams/dot/reverse-engineering-flow.dot +40 -18
- data/documentation/diagrams/dot/sdr-radio-flow.dot +45 -0
- data/documentation/diagrams/dot/sessions-cron-automation.dot +41 -14
- data/documentation/diagrams/dot/swarm-multi-agent.dot +70 -0
- data/documentation/diagrams/dot/web-application-testing.dot +45 -23
- data/documentation/diagrams/dot/zero-day-research-flow.dot +46 -24
- data/documentation/diagrams/driver-framework.svg +87 -66
- data/documentation/diagrams/extrospection-world-awareness.svg +185 -0
- data/documentation/diagrams/fuzzing-workflow.svg +128 -115
- data/documentation/diagrams/hardware-hacking.svg +163 -0
- data/documentation/diagrams/history-to-drivers.svg +84 -82
- data/documentation/diagrams/memory-skills-detailed.svg +167 -119
- data/documentation/diagrams/network-infra-testing.svg +146 -84
- data/documentation/diagrams/overall-pwn-architecture.svg +356 -185
- data/documentation/diagrams/penetration-testing-workflow.svg +161 -108
- data/documentation/diagrams/persistence-filesystem.svg +174 -0
- data/documentation/diagrams/plugin-ecosystem.svg +225 -121
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +257 -185
- data/documentation/diagrams/pwn-repl-prototyping.svg +126 -137
- data/documentation/diagrams/reporting-pipeline.svg +128 -68
- data/documentation/diagrams/reverse-engineering-flow.svg +100 -80
- data/documentation/diagrams/sdr-radio-flow.svg +146 -0
- data/documentation/diagrams/sessions-cron-automation.svg +112 -68
- data/documentation/diagrams/swarm-multi-agent.svg +225 -0
- data/documentation/diagrams/web-application-testing.svg +136 -100
- data/documentation/diagrams/zero-day-research-flow.svg +116 -112
- data/documentation/fax-spectrogram.png +0 -0
- data/documentation/fax-waveform.png +0 -0
- data/documentation/pwn-REPL.md +40 -24
- data/documentation/pwn-ai-Agent.md +59 -30
- data/documentation/pwn_android_war_dialer_session.png +0 -0
- data/documentation/pwn_install.png +0 -0
- data/documentation/pwn_wallpaper.jpg +0 -0
- data/documentation/ringing-spectrogram.png +0 -0
- data/documentation/ringing-waveform.png +0 -0
- data/git_commit.sh +1 -1
- data/lib/pwn/ai/agent/assembly.rb +1 -1
- data/lib/pwn/ai/agent/btc.rb +1 -1
- data/lib/pwn/ai/agent/burp_suite.rb +1 -1
- data/lib/pwn/ai/agent/extrospection.rb +618 -0
- data/lib/pwn/ai/agent/gqrx.rb +2 -2
- data/lib/pwn/ai/agent/hacker_one.rb +1 -1
- data/lib/pwn/ai/agent/introspection.rb +91 -0
- data/lib/pwn/ai/agent/learning.rb +6 -4
- data/lib/pwn/ai/agent/loop.rb +15 -0
- data/lib/pwn/ai/agent/prompt_builder.rb +10 -1
- data/lib/pwn/ai/agent/sast.rb +1 -1
- data/lib/pwn/ai/agent/swarm.rb +437 -0
- data/lib/pwn/ai/agent/tools/cron.rb +163 -0
- data/lib/pwn/ai/agent/tools/extrospection.rb +280 -0
- data/lib/pwn/ai/agent/tools/learning.rb +108 -0
- data/lib/pwn/ai/agent/tools/memory.rb +27 -0
- data/lib/pwn/ai/agent/tools/metrics.rb +61 -0
- data/lib/pwn/ai/agent/tools/sessions.rb +139 -0
- data/lib/pwn/ai/agent/tools/skills.rb +30 -0
- data/lib/pwn/ai/agent/tools/swarm.rb +229 -0
- data/lib/pwn/ai/agent/transparent_browser.rb +1 -1
- data/lib/pwn/ai/agent/vuln_gen.rb +2 -2
- data/lib/pwn/ai/agent.rb +3 -0
- data/lib/pwn/ai/anthropic.rb +19 -4
- data/lib/pwn/ai.rb +0 -1
- data/lib/pwn/config.rb +10 -23
- data/lib/pwn/cron.rb +16 -7
- data/lib/pwn/plugins/repl.rb +90 -281
- data/lib/pwn/sdr/decoder/base.rb +251 -0
- data/lib/pwn/sdr/decoder/gsm.rb +84 -185
- data/lib/pwn/sdr/decoder/pocsag.rb +62 -217
- data/lib/pwn/sdr/decoder.rb +1 -0
- data/lib/pwn/sdr/gqrx.rb +446 -65
- data/lib/pwn/version.rb +1 -1
- data/spec/lib/pwn/ai/agent/extrospection_spec.rb +15 -0
- data/spec/lib/pwn/ai/agent/introspection_spec.rb +15 -0
- data/spec/lib/pwn/ai/agent/swarm_spec.rb +34 -0
- data/spec/lib/pwn/ai/agent/tools/cron_spec.rb +40 -0
- data/spec/lib/pwn/ai/agent/tools/extrospection_spec.rb +40 -0
- data/spec/lib/pwn/ai/agent/tools/metrics_spec.rb +20 -0
- data/spec/lib/pwn/ai/agent/tools/sessions_spec.rb +35 -0
- data/spec/lib/pwn/ai/agent/tools/swarm_spec.rb +17 -0
- data/spec/lib/pwn/{ai/introspection_spec.rb → sdr/decoder/base_spec.rb} +3 -3
- data/third_party/pwn_rdoc.jsonl +199 -37
- metadata +65 -3
- data/lib/pwn/ai/introspection.rb +0 -76
|
@@ -1,27 +1,49 @@
|
|
|
1
|
-
digraph "
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
digraph "PWN_Web" {
|
|
2
|
+
graph [
|
|
3
|
+
label=<<B>Web Application Testing</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">TransparentBrowser → BurpSuite (preferred) → SAST → Reports</FONT>>,
|
|
4
|
+
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
|
+
rankdir=LR, splines=spline, nodesep=0.45, ranksep=1.2,
|
|
6
|
+
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
|
|
7
|
+
];
|
|
8
|
+
node [fontname="Helvetica", fontsize=10, style="filled,rounded",
|
|
9
|
+
shape=box, penwidth=1.3, color="#334155", fontcolor="#0f172a"];
|
|
10
|
+
edge [fontname="Helvetica", fontsize=9, color="#94a3b8",
|
|
11
|
+
fontcolor="#cbd5e1", penwidth=1.3, arrowsize=0.8];
|
|
5
12
|
|
|
6
|
-
|
|
13
|
+
Target [label="🌐 Web App\nURL / API", fillcolor="#fda4af"];
|
|
7
14
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
subgraph cluster_drive {
|
|
16
|
+
label="Drive Traffic"; fontcolor="#a7f3d0"; style=rounded;
|
|
17
|
+
color="#047857"; bgcolor="#022c22";
|
|
18
|
+
TB [label="TransparentBrowser\nheadless · watir · devtools", fillcolor="#6ee7b7"];
|
|
19
|
+
Spider [label="Plugins::Spider\nURI buster", fillcolor="#6ee7b7"];
|
|
20
|
+
WWW [label="PWN::WWW::*\n21 site drivers", fillcolor="#6ee7b7"];
|
|
21
|
+
}
|
|
22
|
+
subgraph cluster_proxy {
|
|
23
|
+
label="Intercept + Scan"; fontcolor="#fde68a"; style=rounded;
|
|
24
|
+
color="#a16207"; bgcolor="#422006";
|
|
25
|
+
Burp [label="BurpSuite ⭐\nactive · passive · REST", fillcolor="#fcd34d", penwidth=2];
|
|
26
|
+
Zap [label="Zaproxy\n(fallback)", fillcolor="#fcd34d"];
|
|
27
|
+
}
|
|
28
|
+
subgraph cluster_deep {
|
|
29
|
+
label="Deep Analysis"; fontcolor="#ddd6fe"; style=rounded;
|
|
30
|
+
color="#6d28d9"; bgcolor="#2e1065";
|
|
31
|
+
SAST [label="PWN::SAST\n48 rules on source", fillcolor="#c4b5fd"];
|
|
32
|
+
XSS [label="pwn_xss_dom_vectors\nweb_cache_deception", fillcolor="#c4b5fd"];
|
|
33
|
+
API [label="Plugins::OpenAPI\nGraphQL introspection", fillcolor="#c4b5fd"];
|
|
34
|
+
}
|
|
35
|
+
Report [label="PWN::Reports\nDefectDojo import", fillcolor="#7dd3fc"];
|
|
16
36
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
37
|
+
Target -> TB [color="#fb7185"];
|
|
38
|
+
Target -> Spider [color="#fb7185"];
|
|
39
|
+
Target -> WWW [color="#fb7185"];
|
|
40
|
+
TB -> Burp [label="proxy 127.0.0.1:8080", color="#f59e0b", penwidth=2];
|
|
41
|
+
Spider -> Burp [color="#f59e0b"];
|
|
42
|
+
WWW -> Zap [color="#f59e0b"];
|
|
43
|
+
Burp -> SAST [color="#a78bfa"];
|
|
44
|
+
Burp -> XSS [color="#a78bfa"];
|
|
45
|
+
Zap -> API [color="#a78bfa"];
|
|
46
|
+
SAST -> Report [color="#38bdf8"];
|
|
47
|
+
XSS -> Report [color="#38bdf8"];
|
|
48
|
+
API -> Report [color="#38bdf8"];
|
|
27
49
|
}
|
|
@@ -1,27 +1,49 @@
|
|
|
1
|
-
digraph "
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
digraph "PWN_ZeroDay" {
|
|
2
|
+
graph [
|
|
3
|
+
label=<<B>Zero-Day Research Lifecycle with PWN</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">attack surface → hypothesis → prove → weaponise → disclose</FONT>>,
|
|
4
|
+
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
|
+
rankdir=LR, splines=spline, nodesep=0.45, ranksep=1.2,
|
|
6
|
+
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
|
|
7
|
+
];
|
|
8
|
+
node [fontname="Helvetica", fontsize=10, style="filled,rounded",
|
|
9
|
+
shape=box, penwidth=1.3, color="#334155", fontcolor="#0f172a"];
|
|
10
|
+
edge [fontname="Helvetica", fontsize=9, color="#94a3b8",
|
|
11
|
+
fontcolor="#cbd5e1", penwidth=1.3, arrowsize=0.8];
|
|
5
12
|
|
|
6
|
-
|
|
7
|
-
RE [label="Reverse Engineering\n+ Static Analysis"];
|
|
8
|
-
SAST [label="PWN::SAST + Custom"];
|
|
9
|
-
Fuzz [label="Fuzzing + Protocol\nAnalysis"];
|
|
10
|
-
Dyn [label="Dynamic Analysis\n(REPL + Debug)"];
|
|
11
|
-
Memory [label="PWN Memory\n(historical vulns,\nreferences)", shape=cylinder];
|
|
12
|
-
Skill [label="Skills (prior\nzero-day patterns)", shape=cylinder];
|
|
13
|
-
Exploit [label="Exploit Dev\n& Validation"];
|
|
14
|
-
Disclose [label="Responsible Disclosure\n& Fix (Reports,\nHackerOne, etc.)"];
|
|
13
|
+
Surface [label="Attack Surface\nOpenAPI · Shodan · Git", fillcolor="#7dd3fc"];
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
subgraph cluster_hyp {
|
|
16
|
+
label="Hypothesise"; fontcolor="#a7f3d0"; style=rounded;
|
|
17
|
+
color="#047857"; bgcolor="#022c22";
|
|
18
|
+
SAST [label="PWN::SAST\ntaint patterns", fillcolor="#6ee7b7"];
|
|
19
|
+
AI [label="pwn-ai\nAgent::VulnGen", fillcolor="#6ee7b7"];
|
|
20
|
+
}
|
|
21
|
+
subgraph cluster_prove {
|
|
22
|
+
label="Prove"; fontcolor="#fde68a"; style=rounded;
|
|
23
|
+
color="#a16207"; bgcolor="#422006";
|
|
24
|
+
Fuzz [label="Fuzz · Sock\nPacket", fillcolor="#fcd34d"];
|
|
25
|
+
TB [label="TransparentBrowser\nBurp replay", fillcolor="#fcd34d"];
|
|
26
|
+
}
|
|
27
|
+
subgraph cluster_weapon {
|
|
28
|
+
label="Weaponise"; fontcolor="#fecaca"; style=rounded;
|
|
29
|
+
color="#b91c1c"; bgcolor="#450a0a";
|
|
30
|
+
Asm [label="Assembly\npwn-asm shellcode", fillcolor="#fda4af"];
|
|
31
|
+
MSF [label="Metasploit\nmodule", fillcolor="#fda4af"];
|
|
32
|
+
}
|
|
33
|
+
subgraph cluster_disc {
|
|
34
|
+
label="Disclose"; fontcolor="#ddd6fe"; style=rounded;
|
|
35
|
+
color="#6d28d9"; bgcolor="#2e1065";
|
|
36
|
+
H1 [label="HackerOne\nBugCrowd · Synack", fillcolor="#c4b5fd"];
|
|
37
|
+
Rep [label="Reports · Skills\ndistill_skill", fillcolor="#c4b5fd"];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Surface -> SAST [color="#38bdf8"];
|
|
41
|
+
Surface -> AI [color="#38bdf8"];
|
|
42
|
+
SAST -> Fuzz [color="#f59e0b"];
|
|
43
|
+
AI -> TB [color="#f59e0b"];
|
|
44
|
+
Fuzz -> Asm [color="#fb7185"];
|
|
45
|
+
TB -> MSF [color="#fb7185"];
|
|
46
|
+
Asm -> H1 [color="#a78bfa"];
|
|
47
|
+
MSF -> Rep [color="#a78bfa"];
|
|
48
|
+
Rep -> AI [label="lesson → next hunt", style=dashed, color="#fbbf24", constraint=false];
|
|
27
49
|
}
|
|
@@ -3,88 +3,109 @@
|
|
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
4
|
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
5
|
-->
|
|
6
|
-
<!-- Title:
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(
|
|
10
|
-
<title>
|
|
11
|
-
<polygon fill="
|
|
12
|
-
|
|
6
|
+
<!-- Title: PWN_Driver Pages: 1 -->
|
|
7
|
+
<svg width="728pt" height="440pt"
|
|
8
|
+
viewBox="0.00 0.00 728.00 440.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 397.2)">
|
|
10
|
+
<title>PWN_Driver</title>
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-397.2 684.45,-397.2 684.45,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="184.88" y="-332" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">Driver Anatomy — bin/pwn_*</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="206.25" y="-320.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">52 shipped drivers · thin CLI over PWN::Plugins</text>
|
|
14
|
+
<g id="clust1" class="cluster">
|
|
15
|
+
<title>cluster_d</title>
|
|
16
|
+
<path fill="#022c22" stroke="#047857" d="M276,-8C276,-8 419,-8 419,-8 425,-8 431,-14 431,-20 431,-20 431,-223 431,-223 431,-229 425,-235 419,-235 419,-235 276,-235 276,-235 270,-235 264,-229 264,-223 264,-223 264,-20 264,-20 264,-14 270,-8 276,-8"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-212" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Driver Body</text>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="clust3" class="cluster">
|
|
20
|
+
<title>cluster_o</title>
|
|
21
|
+
<path fill="#2e1065" stroke="#6d28d9" d="M521,-80C521,-80 621.25,-80 621.25,-80 627.25,-80 633.25,-86 633.25,-92 633.25,-92 633.25,-295 633.25,-295 633.25,-301 627.25,-307 621.25,-307 621.25,-307 521,-307 521,-307 515,-307 509,-301 509,-295 509,-295 509,-92 509,-92 509,-86 515,-80 521,-80"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-284" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">Output</text>
|
|
23
|
+
</g>
|
|
24
|
+
<!-- Sh -->
|
|
13
25
|
<g id="node1" class="node">
|
|
14
|
-
<title>
|
|
15
|
-
<path fill="
|
|
16
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
26
|
+
<title>Sh</title>
|
|
27
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M166,-88C166,-88 12,-88 12,-88 6,-88 0,-82 0,-76 0,-76 0,-64 0,-64 0,-58 6,-52 12,-52 12,-52 166,-52 166,-52 172,-52 178,-58 178,-64 178,-64 178,-76 178,-76 178,-82 172,-88 166,-88"/>
|
|
28
|
+
<text xml:space="preserve" text-anchor="middle" x="89" y="-72.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">$ pwn_burp_suite_pro_active_scan \ </text>
|
|
29
|
+
<text xml:space="preserve" text-anchor="middle" x="89" y="-60.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">    -t https://target -o out/</text>
|
|
18
30
|
</g>
|
|
19
|
-
<!--
|
|
31
|
+
<!-- Opt -->
|
|
20
32
|
<g id="node2" class="node">
|
|
21
|
-
<title>
|
|
22
|
-
<path fill="
|
|
23
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
24
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
33
|
+
<title>Opt</title>
|
|
34
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M378,-52C378,-52 317,-52 317,-52 311,-52 305,-46 305,-40 305,-40 305,-28 305,-28 305,-22 311,-16 317,-16 317,-16 378,-16 378,-16 384,-16 390,-22 390,-28 390,-28 390,-40 390,-40 390,-46 384,-52 378,-52"/>
|
|
35
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-36.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">OptionParser</text>
|
|
36
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-24.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">ARGV → opts{}</text>
|
|
25
37
|
</g>
|
|
26
|
-
<!--
|
|
27
|
-
<g id="edge2" class="edge">
|
|
28
|
-
<title>Parser->Script</title>
|
|
29
|
-
<path fill="none" stroke="black" d="M126.33,-38.34C134.42,-38.23 142.7,-38.22 150.8,-38.33"/>
|
|
30
|
-
<polygon fill="black" stroke="black" points="150.5,-41.82 160.57,-38.51 150.64,-34.82 150.5,-41.82"/>
|
|
31
|
-
</g>
|
|
32
|
-
<!-- Script->Parser -->
|
|
38
|
+
<!-- Sh->Opt -->
|
|
33
39
|
<g id="edge1" class="edge">
|
|
34
|
-
<title>
|
|
35
|
-
<path fill="none" stroke="
|
|
36
|
-
<polygon fill="
|
|
40
|
+
<title>Sh->Opt</title>
|
|
41
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M178.63,-57.56C217.51,-52.1 261.78,-45.89 295.09,-41.22"/>
|
|
42
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="295.14,-44.04 302.67,-40.15 294.36,-38.49 295.14,-44.04"/>
|
|
37
43
|
</g>
|
|
38
|
-
<!--
|
|
44
|
+
<!-- Req -->
|
|
39
45
|
<g id="node3" class="node">
|
|
40
|
-
<title>
|
|
41
|
-
<path fill="
|
|
42
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
43
|
-
<text xml:space="preserve" text-anchor="middle" x="364" y="-63.45" font-family="Arial" font-size="9.00">Full namespace</text>
|
|
46
|
+
<title>Req</title>
|
|
47
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M370.88,-124C370.88,-124 324.12,-124 324.12,-124 318.12,-124 312.12,-118 312.12,-112 312.12,-112 312.12,-100 312.12,-100 312.12,-94 318.12,-88 324.12,-88 324.12,-88 370.88,-88 370.88,-88 376.88,-88 382.88,-94 382.88,-100 382.88,-100 382.88,-112 382.88,-112 382.88,-118 376.88,-124 370.88,-124"/>
|
|
48
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-102.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">require 'pwn'</text>
|
|
44
49
|
</g>
|
|
45
|
-
<!--
|
|
46
|
-
<g id="
|
|
47
|
-
<title>
|
|
48
|
-
<path fill="none" stroke="
|
|
49
|
-
<polygon fill="
|
|
50
|
-
</g>
|
|
51
|
-
<!-- standalone | cron | pwn-ai -->
|
|
52
|
-
<g id="node6" class="node">
|
|
53
|
-
<title>standalone | cron | pwn-ai</title>
|
|
54
|
-
<path fill="none" stroke="black" d="M412.5,-36C412.5,-36 315.5,-36 315.5,-36 309.5,-36 303.5,-30 303.5,-24 303.5,-24 303.5,-12 303.5,-12 303.5,-6 309.5,0 315.5,0 315.5,0 412.5,0 412.5,0 418.5,0 424.5,-6 424.5,-12 424.5,-12 424.5,-24 424.5,-24 424.5,-30 418.5,-36 412.5,-36"/>
|
|
55
|
-
<text xml:space="preserve" text-anchor="middle" x="364" y="-14.7" font-family="Arial" font-size="9.00">standalone | cron | pwn-ai</text>
|
|
56
|
-
</g>
|
|
57
|
-
<!-- Script->standalone | cron | pwn-ai -->
|
|
58
|
-
<g id="edge6" class="edge">
|
|
59
|
-
<title>Script->standalone | cron | pwn-ai</title>
|
|
60
|
-
<path fill="none" stroke="black" d="M267.75,-35.48C275.59,-34.04 283.81,-32.53 291.97,-31.03"/>
|
|
61
|
-
<polygon fill="black" stroke="black" points="292.36,-34.52 301.56,-29.27 291.09,-27.64 292.36,-34.52"/>
|
|
50
|
+
<!-- Sh->Req -->
|
|
51
|
+
<g id="edge2" class="edge">
|
|
52
|
+
<title>Sh->Req</title>
|
|
53
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M178.63,-82.44C220.28,-88.28 268.11,-95 302.03,-99.76"/>
|
|
54
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="301.39,-102.5 309.7,-100.84 302.17,-96.95 301.39,-102.5"/>
|
|
62
55
|
</g>
|
|
63
|
-
<!--
|
|
56
|
+
<!-- Call -->
|
|
64
57
|
<g id="node4" class="node">
|
|
65
|
-
<title>
|
|
66
|
-
<path fill="
|
|
67
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
68
|
-
|
|
58
|
+
<title>Call</title>
|
|
59
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M411,-196C411,-196 284,-196 284,-196 278,-196 272,-190 272,-184 272,-184 272,-172 272,-172 272,-166 278,-160 284,-160 284,-160 411,-160 411,-160 417,-160 423,-166 423,-172 423,-172 423,-184 423,-184 423,-190 417,-196 411,-196"/>
|
|
60
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-174.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">PWN::Plugins::X.method(opts)</text>
|
|
61
|
+
</g>
|
|
62
|
+
<!-- Opt->Call -->
|
|
63
|
+
<g id="edge3" class="edge">
|
|
64
|
+
<title>Opt->Call</title>
|
|
65
|
+
<path fill="none" stroke="#34d399" stroke-width="1.3" d="M304.47,-40.03C275.53,-46.57 239.42,-60.1 221,-88 212.18,-101.35 212.18,-110.65 221,-124 231.03,-139.19 246.3,-150.12 262.8,-157.98"/>
|
|
66
|
+
<polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="261.27,-160.36 269.72,-161.02 263.53,-155.24 261.27,-160.36"/>
|
|
69
67
|
</g>
|
|
70
|
-
<!--
|
|
68
|
+
<!-- Req->Call -->
|
|
71
69
|
<g id="edge4" class="edge">
|
|
72
|
-
<title>
|
|
73
|
-
<path fill="none" stroke="
|
|
74
|
-
<polygon fill="
|
|
70
|
+
<title>Req->Call</title>
|
|
71
|
+
<path fill="none" stroke="#34d399" stroke-width="1.3" d="M347.5,-124.56C347.5,-132.96 347.5,-141.37 347.5,-149.77"/>
|
|
72
|
+
<polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="344.7,-149.66 347.5,-157.66 350.3,-149.66 344.7,-149.66"/>
|
|
75
73
|
</g>
|
|
76
|
-
<!--
|
|
74
|
+
<!-- Std -->
|
|
77
75
|
<g id="node5" class="node">
|
|
78
|
-
<title>
|
|
79
|
-
<path fill="
|
|
80
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
81
|
-
<text xml:space="preserve" text-anchor="middle" x="636.38" y="-63.45" font-family="Arial" font-size="9.00">Findings</text>
|
|
76
|
+
<title>Std</title>
|
|
77
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M613.25,-124C613.25,-124 529,-124 529,-124 523,-124 517,-118 517,-112 517,-112 517,-100 517,-100 517,-94 523,-88 529,-88 529,-88 613.25,-88 613.25,-88 619.25,-88 625.25,-94 625.25,-100 625.25,-100 625.25,-112 625.25,-112 625.25,-118 619.25,-124 613.25,-124"/>
|
|
78
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-102.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">STDOUT / STDERR</text>
|
|
82
79
|
</g>
|
|
83
|
-
<!--
|
|
80
|
+
<!-- Call->Std -->
|
|
84
81
|
<g id="edge5" class="edge">
|
|
85
|
-
<title>
|
|
86
|
-
<path fill="none" stroke="
|
|
87
|
-
<polygon fill="
|
|
82
|
+
<title>Call->Std</title>
|
|
83
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M405.86,-159.36C436.91,-149.28 475.33,-136.8 507.2,-126.44"/>
|
|
84
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="507.82,-129.19 514.56,-124.05 506.09,-123.86 507.82,-129.19"/>
|
|
85
|
+
</g>
|
|
86
|
+
<!-- Rep -->
|
|
87
|
+
<g id="node6" class="node">
|
|
88
|
+
<title>Rep</title>
|
|
89
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M599.38,-196C599.38,-196 542.88,-196 542.88,-196 536.88,-196 530.88,-190 530.88,-184 530.88,-184 530.88,-172 530.88,-172 530.88,-166 536.88,-160 542.88,-160 542.88,-160 599.38,-160 599.38,-160 605.38,-160 611.38,-166 611.38,-172 611.38,-172 611.38,-184 611.38,-184 611.38,-190 605.38,-196 599.38,-196"/>
|
|
90
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-174.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">PWN::Reports</text>
|
|
91
|
+
</g>
|
|
92
|
+
<!-- Call->Rep -->
|
|
93
|
+
<g id="edge6" class="edge">
|
|
94
|
+
<title>Call->Rep</title>
|
|
95
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M423.53,-178C455.55,-178 492.02,-178 520.58,-178"/>
|
|
96
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="520.37,-180.8 528.37,-178 520.37,-175.2 520.37,-180.8"/>
|
|
97
|
+
</g>
|
|
98
|
+
<!-- Ex -->
|
|
99
|
+
<g id="node7" class="node">
|
|
100
|
+
<title>Ex</title>
|
|
101
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M587,-268C587,-268 555.25,-268 555.25,-268 549.25,-268 543.25,-262 543.25,-256 543.25,-256 543.25,-244 543.25,-244 543.25,-238 549.25,-232 555.25,-232 555.25,-232 587,-232 587,-232 593,-232 599,-238 599,-244 599,-244 599,-256 599,-256 599,-262 593,-268 587,-268"/>
|
|
102
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-246.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">exit code</text>
|
|
103
|
+
</g>
|
|
104
|
+
<!-- Call->Ex -->
|
|
105
|
+
<g id="edge7" class="edge">
|
|
106
|
+
<title>Call->Ex</title>
|
|
107
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M405.86,-196.64C446.07,-209.7 498.63,-226.77 533.34,-238.05"/>
|
|
108
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="532.28,-240.65 540.76,-240.46 534.01,-235.32 532.28,-240.65"/>
|
|
88
109
|
</g>
|
|
89
110
|
</g>
|
|
90
111
|
</svg>
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
|
+
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
|
+
-->
|
|
6
|
+
<!-- Title: PWN_Extrospection Pages: 1 -->
|
|
7
|
+
<svg width="794pt" height="584pt"
|
|
8
|
+
viewBox="0.00 0.00 794.00 584.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 541.2)">
|
|
10
|
+
<title>PWN_Extrospection</title>
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-541.2 750.45,-541.2 750.45,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="107.25" y="-476" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::AI::Agent::Extrospection — World Awareness</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="255" y="-464.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">snapshot · drift · observe · intel · correlate</text>
|
|
14
|
+
<g id="clust1" class="cluster">
|
|
15
|
+
<title>cluster_world</title>
|
|
16
|
+
<path fill="#450a0a" stroke="#b91c1c" stroke-dasharray="5,2" d="M20,-80C20,-80 155.5,-80 155.5,-80 161.5,-80 167.5,-86 167.5,-92 167.5,-92 167.5,-439 167.5,-439 167.5,-445 161.5,-451 155.5,-451 155.5,-451 20,-451 20,-451 14,-451 8,-445 8,-439 8,-439 8,-92 8,-92 8,-86 14,-80 20,-80"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-428" font-family="sans-Serif" font-size="20.00" fill="#fecaca">Outside World</text>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="clust3" class="cluster">
|
|
20
|
+
<title>cluster_eng</title>
|
|
21
|
+
<path fill="#422006" stroke="#a16207" stroke-width="2" d="M258.5,-8C258.5,-8 439.5,-8 439.5,-8 445.5,-8 451.5,-14 451.5,-20 451.5,-20 451.5,-367 451.5,-367 451.5,-373 445.5,-379 439.5,-379 439.5,-379 258.5,-379 258.5,-379 252.5,-379 246.5,-373 246.5,-367 246.5,-367 246.5,-20 246.5,-20 246.5,-14 252.5,-8 258.5,-8"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="349" y="-356" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Extrospection Engine</text>
|
|
23
|
+
</g>
|
|
24
|
+
<!-- Host -->
|
|
25
|
+
<g id="node1" class="node">
|
|
26
|
+
<title>Host</title>
|
|
27
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M132.88,-412C132.88,-412 42.62,-412 42.62,-412 36.62,-412 30.62,-406 30.62,-400 30.62,-400 30.62,-388 30.62,-388 30.62,-382 36.62,-376 42.62,-376 42.62,-376 132.88,-376 132.88,-376 138.88,-376 144.88,-382 144.88,-388 144.88,-388 144.88,-400 144.88,-400 144.88,-406 138.88,-412 132.88,-412"/>
|
|
28
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-397.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">host</text>
|
|
29
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-383.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">uname · distro · arch</text>
|
|
30
|
+
</g>
|
|
31
|
+
<!-- Snap -->
|
|
32
|
+
<g id="node6" class="node">
|
|
33
|
+
<title>Snap</title>
|
|
34
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M381.25,-340C381.25,-340 315.75,-340 315.75,-340 309.75,-340 303.75,-334 303.75,-328 303.75,-328 303.75,-316 303.75,-316 303.75,-310 309.75,-304 315.75,-304 315.75,-304 381.25,-304 381.25,-304 387.25,-304 393.25,-310 393.25,-316 393.25,-316 393.25,-328 393.25,-328 393.25,-334 387.25,-340 381.25,-340"/>
|
|
35
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-325.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extro_snapshot</text>
|
|
36
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-311.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">fingerprint host</text>
|
|
37
|
+
</g>
|
|
38
|
+
<!-- Host->Snap -->
|
|
39
|
+
<g id="edge1" class="edge">
|
|
40
|
+
<title>Host->Snap</title>
|
|
41
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M145.53,-378.2C189.65,-365.92 250.42,-349.01 293.75,-336.96"/>
|
|
42
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="294.42,-339.68 301.38,-334.83 292.92,-334.28 294.42,-339.68"/>
|
|
43
|
+
</g>
|
|
44
|
+
<!-- Net -->
|
|
45
|
+
<g id="node2" class="node">
|
|
46
|
+
<title>Net</title>
|
|
47
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M144.5,-340C144.5,-340 31,-340 31,-340 25,-340 19,-334 19,-328 19,-328 19,-316 19,-316 19,-310 25,-304 31,-304 31,-304 144.5,-304 144.5,-304 150.5,-304 156.5,-310 156.5,-316 156.5,-316 156.5,-328 156.5,-328 156.5,-334 150.5,-340 144.5,-340"/>
|
|
48
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-325.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">net</text>
|
|
49
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-311.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">interfaces · listening ports</text>
|
|
50
|
+
</g>
|
|
51
|
+
<!-- Net->Snap -->
|
|
52
|
+
<g id="edge2" class="edge">
|
|
53
|
+
<title>Net->Snap</title>
|
|
54
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M157.07,-322C199.72,-322 253.86,-322 293.5,-322"/>
|
|
55
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="293.28,-324.8 301.28,-322 293.28,-319.2 293.28,-324.8"/>
|
|
56
|
+
</g>
|
|
57
|
+
<!-- Tool -->
|
|
58
|
+
<g id="node3" class="node">
|
|
59
|
+
<title>Tool</title>
|
|
60
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M135.88,-268C135.88,-268 39.62,-268 39.62,-268 33.62,-268 27.62,-262 27.62,-256 27.62,-256 27.62,-244 27.62,-244 27.62,-238 33.62,-232 39.62,-232 39.62,-232 135.88,-232 135.88,-232 141.88,-232 147.88,-238 147.88,-244 147.88,-244 147.88,-256 147.88,-256 147.88,-262 141.88,-268 135.88,-268"/>
|
|
61
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-253.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">toolchain</text>
|
|
62
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-239.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">nmap · burp · msf · git</text>
|
|
63
|
+
</g>
|
|
64
|
+
<!-- Drift -->
|
|
65
|
+
<g id="node7" class="node">
|
|
66
|
+
<title>Drift</title>
|
|
67
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M384.25,-268C384.25,-268 312.75,-268 312.75,-268 306.75,-268 300.75,-262 300.75,-256 300.75,-256 300.75,-244 300.75,-244 300.75,-238 306.75,-232 312.75,-232 312.75,-232 384.25,-232 384.25,-232 390.25,-232 396.25,-238 396.25,-244 396.25,-244 396.25,-256 396.25,-256 396.25,-262 390.25,-268 384.25,-268"/>
|
|
68
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-253.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extro_drift</text>
|
|
69
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-239.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">delta vs baseline</text>
|
|
70
|
+
</g>
|
|
71
|
+
<!-- Tool->Drift -->
|
|
72
|
+
<g id="edge3" class="edge">
|
|
73
|
+
<title>Tool->Drift</title>
|
|
74
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M148.44,-250C191.13,-250 248.26,-250 290.36,-250"/>
|
|
75
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="290.22,-252.8 298.22,-250 290.22,-247.2 290.22,-252.8"/>
|
|
76
|
+
</g>
|
|
77
|
+
<!-- Repo -->
|
|
78
|
+
<g id="node4" class="node">
|
|
79
|
+
<title>Repo</title>
|
|
80
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M135.12,-196C135.12,-196 40.38,-196 40.38,-196 34.38,-196 28.38,-190 28.38,-184 28.38,-184 28.38,-172 28.38,-172 28.38,-166 34.38,-160 40.38,-160 40.38,-160 135.12,-160 135.12,-160 141.12,-160 147.12,-166 147.12,-172 147.12,-172 147.12,-184 147.12,-184 147.12,-190 141.12,-196 135.12,-196"/>
|
|
81
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-181.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">repo</text>
|
|
82
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-167.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">HEAD · dirty · branch</text>
|
|
83
|
+
</g>
|
|
84
|
+
<!-- Repo->Drift -->
|
|
85
|
+
<g id="edge4" class="edge">
|
|
86
|
+
<title>Repo->Drift</title>
|
|
87
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M147.79,-194.43C190.78,-206.39 248.65,-222.49 291.03,-234.29"/>
|
|
88
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="290.01,-236.91 298.47,-236.36 291.51,-231.51 290.01,-236.91"/>
|
|
89
|
+
</g>
|
|
90
|
+
<!-- Feeds -->
|
|
91
|
+
<g id="node5" class="node">
|
|
92
|
+
<title>Feeds</title>
|
|
93
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M147.5,-124C147.5,-124 28,-124 28,-124 22,-124 16,-118 16,-112 16,-112 16,-100 16,-100 16,-94 22,-88 28,-88 28,-88 147.5,-88 147.5,-88 153.5,-88 159.5,-94 159.5,-100 159.5,-100 159.5,-112 159.5,-112 159.5,-118 153.5,-124 147.5,-124"/>
|
|
94
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-109.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">intel feeds</text>
|
|
95
|
+
<text xml:space="preserve" text-anchor="middle" x="87.75" y="-95.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">NVD · CIRCL · Exploit-DB</text>
|
|
96
|
+
</g>
|
|
97
|
+
<!-- Intel -->
|
|
98
|
+
<g id="node9" class="node">
|
|
99
|
+
<title>Intel</title>
|
|
100
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M393.25,-124C393.25,-124 303.75,-124 303.75,-124 297.75,-124 291.75,-118 291.75,-112 291.75,-112 291.75,-100 291.75,-100 291.75,-94 297.75,-88 303.75,-88 303.75,-88 393.25,-88 393.25,-88 399.25,-88 405.25,-94 405.25,-100 405.25,-100 405.25,-112 405.25,-112 405.25,-118 399.25,-124 393.25,-124"/>
|
|
101
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-109.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extro_intel</text>
|
|
102
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-95.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">CVE / exploit lookup</text>
|
|
103
|
+
</g>
|
|
104
|
+
<!-- Feeds->Intel -->
|
|
105
|
+
<g id="edge5" class="edge">
|
|
106
|
+
<title>Feeds->Intel</title>
|
|
107
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M160.14,-106C198.04,-106 244.31,-106 281.38,-106"/>
|
|
108
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="281.12,-108.8 289.12,-106 281.12,-103.2 281.12,-108.8"/>
|
|
109
|
+
</g>
|
|
110
|
+
<!-- Store -->
|
|
111
|
+
<g id="node11" class="node">
|
|
112
|
+
<title>Store</title>
|
|
113
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M695.62,-197.69C695.62,-200.1 672.71,-202.06 644.5,-202.06 616.29,-202.06 593.38,-200.1 593.38,-197.69 593.38,-197.69 593.38,-158.31 593.38,-158.31 593.38,-155.9 616.29,-153.94 644.5,-153.94 672.71,-153.94 695.62,-155.9 695.62,-158.31 695.62,-158.31 695.62,-197.69 695.62,-197.69"/>
|
|
114
|
+
<path fill="none" stroke="#334155" stroke-width="1.4" d="M695.62,-197.69C695.62,-195.27 672.71,-193.31 644.5,-193.31 616.29,-193.31 593.38,-195.27 593.38,-197.69"/>
|
|
115
|
+
<text xml:space="preserve" text-anchor="middle" x="644.5" y="-181.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/</text>
|
|
116
|
+
<text xml:space="preserve" text-anchor="middle" x="644.5" y="-167.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extrospection.json</text>
|
|
117
|
+
</g>
|
|
118
|
+
<!-- Snap->Store -->
|
|
119
|
+
<g id="edge6" class="edge">
|
|
120
|
+
<title>Snap->Store</title>
|
|
121
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M393.84,-308.22C411.99,-302.09 433.03,-294.38 451.5,-286 503.15,-262.57 559.38,-230.05 597.56,-206.83"/>
|
|
122
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="598.86,-209.32 604.22,-202.75 595.94,-204.54 598.86,-209.32"/>
|
|
123
|
+
</g>
|
|
124
|
+
<!-- Drift->Store -->
|
|
125
|
+
<g id="edge7" class="edge">
|
|
126
|
+
<title>Drift->Store</title>
|
|
127
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M396.77,-239.03C434.24,-230.27 487.9,-217.59 534.75,-206 550.5,-202.1 567.5,-197.78 583.28,-193.72"/>
|
|
128
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="583.97,-196.43 591.02,-191.72 582.57,-191.01 583.97,-196.43"/>
|
|
129
|
+
</g>
|
|
130
|
+
<!-- Obs -->
|
|
131
|
+
<g id="node8" class="node">
|
|
132
|
+
<title>Obs</title>
|
|
133
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M385,-196C385,-196 312,-196 312,-196 306,-196 300,-190 300,-184 300,-184 300,-172 300,-172 300,-166 306,-160 312,-160 312,-160 385,-160 385,-160 391,-160 397,-166 397,-172 397,-172 397,-184 397,-184 397,-190 391,-196 385,-196"/>
|
|
134
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-181.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extro_observe</text>
|
|
135
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-167.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">record recon fact</text>
|
|
136
|
+
</g>
|
|
137
|
+
<!-- Obs->Store -->
|
|
138
|
+
<g id="edge8" class="edge">
|
|
139
|
+
<title>Obs->Store</title>
|
|
140
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M397.39,-178C448.09,-178 528.24,-178 583.21,-178"/>
|
|
141
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="583.2,-180.8 591.2,-178 583.2,-175.2 583.2,-180.8"/>
|
|
142
|
+
</g>
|
|
143
|
+
<!-- Intel->Store -->
|
|
144
|
+
<g id="edge9" class="edge">
|
|
145
|
+
<title>Intel->Store</title>
|
|
146
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M405.84,-119.8C456.69,-132.25 531.3,-150.52 583.32,-163.26"/>
|
|
147
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="582.41,-165.92 590.84,-165.1 583.74,-160.48 582.41,-165.92"/>
|
|
148
|
+
<text xml:space="preserve" text-anchor="middle" x="512.62" y="-152.52" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">record:true</text>
|
|
149
|
+
</g>
|
|
150
|
+
<!-- Corr -->
|
|
151
|
+
<g id="node10" class="node">
|
|
152
|
+
<title>Corr</title>
|
|
153
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M386.5,-52C386.5,-52 310.5,-52 310.5,-52 304.5,-52 298.5,-46 298.5,-40 298.5,-40 298.5,-28 298.5,-28 298.5,-22 304.5,-16 310.5,-16 310.5,-16 386.5,-16 386.5,-16 392.5,-16 398.5,-22 398.5,-28 398.5,-28 398.5,-40 398.5,-40 398.5,-46 392.5,-52 386.5,-52"/>
|
|
154
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-37.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extro_correlate</text>
|
|
155
|
+
<text xml:space="preserve" text-anchor="middle" x="348.5" y="-23.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">join with Learning</text>
|
|
156
|
+
</g>
|
|
157
|
+
<!-- Prompt -->
|
|
158
|
+
<g id="node12" class="node">
|
|
159
|
+
<title>Prompt</title>
|
|
160
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M695.25,-77C695.25,-77 593.75,-77 593.75,-77 587.75,-77 581.75,-71 581.75,-65 581.75,-65 581.75,-53 581.75,-53 581.75,-47 587.75,-41 593.75,-41 593.75,-41 695.25,-41 695.25,-41 701.25,-41 707.25,-47 707.25,-53 707.25,-53 707.25,-65 707.25,-65 707.25,-71 701.25,-77 695.25,-77"/>
|
|
161
|
+
<text xml:space="preserve" text-anchor="middle" x="644.5" y="-62.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">EXTROSPECTION</text>
|
|
162
|
+
<text xml:space="preserve" text-anchor="middle" x="644.5" y="-48.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">block in system prompt</text>
|
|
163
|
+
</g>
|
|
164
|
+
<!-- Corr->Prompt -->
|
|
165
|
+
<g id="edge10" class="edge">
|
|
166
|
+
<title>Corr->Prompt</title>
|
|
167
|
+
<path fill="none" stroke="#a78bfa" stroke-width="2" d="M399.37,-38.24C446.27,-42.23 517.05,-48.25 570.34,-52.78"/>
|
|
168
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="569.86,-55.55 578.07,-53.44 570.34,-49.97 569.86,-55.55"/>
|
|
169
|
+
<text xml:space="preserve" text-anchor="middle" x="512.62" y="-51.42" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">findings</text>
|
|
170
|
+
</g>
|
|
171
|
+
<!-- Store->Corr -->
|
|
172
|
+
<g id="edge12" class="edge">
|
|
173
|
+
<title>Store->Corr</title>
|
|
174
|
+
<path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M625.47,-153.5C596.26,-113.98 541.21,-40.24 534.75,-37 496.22,-17.67 447.26,-17.76 409.35,-22.23"/>
|
|
175
|
+
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="408.99,-19.45 401.42,-23.27 409.71,-25 408.99,-19.45"/>
|
|
176
|
+
</g>
|
|
177
|
+
<!-- Store->Prompt -->
|
|
178
|
+
<g id="edge11" class="edge">
|
|
179
|
+
<title>Store->Prompt</title>
|
|
180
|
+
<path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M644.5,-153.34C644.5,-134.16 644.5,-107.51 644.5,-87.42"/>
|
|
181
|
+
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="647.3,-87.56 644.5,-79.56 641.7,-87.56 647.3,-87.56"/>
|
|
182
|
+
<text xml:space="preserve" text-anchor="middle" x="636.25" y="-112.17" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">inject</text>
|
|
183
|
+
</g>
|
|
184
|
+
</g>
|
|
185
|
+
</svg>
|