pwn 0.5.613 → 0.5.617
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/Gemfile +10 -10
- data/README.md +117 -17
- data/bin/pwn +47 -2
- data/bin/pwn_gqrx_scanner +75 -18
- data/documentation/AI-Integration.md +36 -0
- data/documentation/BurpSuite.md +26 -0
- data/documentation/Contributing.md +31 -0
- data/documentation/Diagrams.md +140 -0
- data/documentation/Drivers.md +25 -0
- data/documentation/General-PWN-Usage.md +60 -0
- data/documentation/Home.md +78 -0
- data/documentation/How-PWN-Works.md +62 -0
- data/documentation/Installation.md +75 -0
- data/documentation/NmapIt.md +18 -0
- data/documentation/Plugins.md +59 -0
- data/documentation/Reporting.md +28 -0
- data/documentation/SAST.md +32 -0
- data/documentation/Skills-Memory-Learning.md +44 -0
- data/documentation/Transparent-Browser.md +32 -0
- data/documentation/Troubleshooting.md +38 -0
- data/documentation/What-is-PWN.md +53 -0
- data/documentation/Why-PWN.md +48 -0
- data/documentation/diagrams/ai-integration-tool-calling.svg +172 -0
- data/documentation/diagrams/build.sh +20 -0
- data/documentation/diagrams/burp-vs-zap-preference.svg +69 -0
- data/documentation/diagrams/code-scanning-sast.svg +172 -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 +50 -0
- data/documentation/diagrams/dot/aws-cloud-security.dot +48 -0
- data/documentation/diagrams/dot/burp-vs-zap-preference.dot +26 -0
- data/documentation/diagrams/dot/code-scanning-sast.dot +49 -0
- data/documentation/diagrams/dot/cron-scheduling.dot +40 -0
- data/documentation/diagrams/dot/driver-framework.dot +39 -0
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +55 -0
- data/documentation/diagrams/dot/fuzzing-workflow.dot +47 -0
- data/documentation/diagrams/dot/history-to-drivers.dot +34 -0
- data/documentation/diagrams/dot/memory-skills-detailed.dot +60 -0
- data/documentation/diagrams/dot/network-infra-testing.dot +54 -0
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +115 -0
- data/documentation/diagrams/dot/penetration-testing-workflow.dot +60 -0
- data/documentation/diagrams/dot/plugin-ecosystem.dot +45 -0
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +98 -0
- data/documentation/diagrams/dot/pwn-repl-prototyping.dot +56 -0
- data/documentation/diagrams/dot/reporting-pipeline.dot +46 -0
- data/documentation/diagrams/dot/reverse-engineering-flow.dot +43 -0
- data/documentation/diagrams/dot/sdr-radio-flow.dot +45 -0
- data/documentation/diagrams/dot/sessions-cron-automation.dot +44 -0
- data/documentation/diagrams/dot/swarm-multi-agent.dot +70 -0
- data/documentation/diagrams/dot/web-application-testing.dot +49 -0
- data/documentation/diagrams/dot/zero-day-research-flow.dot +49 -0
- data/documentation/diagrams/driver-framework.svg +111 -0
- data/documentation/diagrams/fuzzing-workflow.svg +160 -0
- data/documentation/diagrams/history-to-drivers.svg +119 -0
- data/documentation/diagrams/memory-skills-detailed.svg +202 -0
- data/documentation/diagrams/network-infra-testing.svg +183 -0
- data/documentation/diagrams/overall-pwn-architecture.svg +405 -0
- data/documentation/diagrams/penetration-testing-workflow.svg +201 -0
- data/documentation/diagrams/plugin-ecosystem.svg +276 -0
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +306 -0
- data/documentation/diagrams/pwn-repl-prototyping.svg +168 -0
- data/documentation/diagrams/reporting-pipeline.svg +151 -0
- data/documentation/diagrams/reverse-engineering-flow.svg +134 -0
- data/documentation/diagrams/sessions-cron-automation.svg +136 -0
- data/documentation/diagrams/web-application-testing.svg +173 -0
- data/documentation/diagrams/zero-day-research-flow.svg +153 -0
- data/documentation/pwn-REPL.md +33 -0
- data/documentation/pwn-ai-Agent.md +43 -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 +379 -0
- data/lib/pwn/ai/agent/loop.rb +33 -3
- data/lib/pwn/ai/agent/metrics.rb +155 -0
- data/lib/pwn/ai/agent/prompt_builder.rb +32 -3
- 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 +221 -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 +124 -8
- 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 +5 -0
- data/lib/pwn/ai/anthropic.rb +19 -4
- data/lib/pwn/ai/grok.rb +249 -106
- data/lib/pwn/ai.rb +0 -1
- data/lib/pwn/config.rb +96 -36
- data/lib/pwn/cron.rb +16 -7
- data/lib/pwn/plugins/monkey_patch.rb +2 -2
- data/lib/pwn/plugins/repl.rb +158 -284
- 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/learning_spec.rb +68 -0
- data/spec/lib/pwn/ai/agent/metrics_spec.rb +27 -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/learning_spec.rb +30 -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 +178 -33
- metadata +110 -36
- data/documentation/PWN.png +0 -0
- data/documentation/PWN_Contributors_and_Users.png +0 -0
- data/documentation/fax-spectrogram.png +0 -0
- data/documentation/fax-waveform.png +0 -0
- data/documentation/frozen_string_literal_files_changed_from_false_to_true.txt +0 -54
- data/documentation/lifecycle_authz_replay.example.yaml +0 -27
- 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/documentation/vulnerability_report_template.md +0 -37
- data/lib/pwn/ai/introspection.rb +0 -76
|
@@ -0,0 +1,49 @@
|
|
|
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];
|
|
12
|
+
|
|
13
|
+
Target [label="🌐 Web App\nURL / API", fillcolor="#fda4af"];
|
|
14
|
+
|
|
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"];
|
|
36
|
+
|
|
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"];
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
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];
|
|
12
|
+
|
|
13
|
+
Surface [label="Attack Surface\nOpenAPI · Shodan · Git", fillcolor="#7dd3fc"];
|
|
14
|
+
|
|
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];
|
|
49
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
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_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 -->
|
|
25
|
+
<g id="node1" class="node">
|
|
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>
|
|
30
|
+
</g>
|
|
31
|
+
<!-- Opt -->
|
|
32
|
+
<g id="node2" class="node">
|
|
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>
|
|
37
|
+
</g>
|
|
38
|
+
<!-- Sh->Opt -->
|
|
39
|
+
<g id="edge1" class="edge">
|
|
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"/>
|
|
43
|
+
</g>
|
|
44
|
+
<!-- Req -->
|
|
45
|
+
<g id="node3" class="node">
|
|
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>
|
|
49
|
+
</g>
|
|
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"/>
|
|
55
|
+
</g>
|
|
56
|
+
<!-- Call -->
|
|
57
|
+
<g id="node4" class="node">
|
|
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"/>
|
|
67
|
+
</g>
|
|
68
|
+
<!-- Req->Call -->
|
|
69
|
+
<g id="edge4" class="edge">
|
|
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"/>
|
|
73
|
+
</g>
|
|
74
|
+
<!-- Std -->
|
|
75
|
+
<g id="node5" class="node">
|
|
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>
|
|
79
|
+
</g>
|
|
80
|
+
<!-- Call->Std -->
|
|
81
|
+
<g id="edge5" class="edge">
|
|
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"/>
|
|
109
|
+
</g>
|
|
110
|
+
</g>
|
|
111
|
+
</svg>
|
|
@@ -0,0 +1,160 @@
|
|
|
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_Fuzz Pages: 1 -->
|
|
7
|
+
<svg width="901pt" height="389pt"
|
|
8
|
+
viewBox="0.00 0.00 901.00 389.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 346.07)">
|
|
10
|
+
<title>PWN_Fuzz</title>
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-346.07 858.2,-346.07 858.2,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="322.75" y="-280.87" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">Fuzzing with PWN</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="299.5" y="-269.42" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">Plugins::Fuzz · Sock · Packet · Reports::Fuzz</text>
|
|
14
|
+
<g id="clust1" class="cluster">
|
|
15
|
+
<title>cluster_gen</title>
|
|
16
|
+
<path fill="#022c22" stroke="#047857" d="M182.75,-36.87C182.75,-36.87 267.25,-36.87 267.25,-36.87 273.25,-36.87 279.25,-42.87 279.25,-48.87 279.25,-48.87 279.25,-175.87 279.25,-175.87 279.25,-181.87 273.25,-187.87 267.25,-187.87 267.25,-187.87 182.75,-187.87 182.75,-187.87 176.75,-187.87 170.75,-181.87 170.75,-175.87 170.75,-175.87 170.75,-48.87 170.75,-48.87 170.75,-42.87 176.75,-36.87 182.75,-36.87"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="225" y="-164.87" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Generate</text>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="clust2" class="cluster">
|
|
20
|
+
<title>cluster_deliver</title>
|
|
21
|
+
<path fill="#422006" stroke="#a16207" d="M362.25,-36.87C362.25,-36.87 479,-36.87 479,-36.87 485,-36.87 491,-42.87 491,-48.87 491,-48.87 491,-243.87 491,-243.87 491,-249.87 485,-255.87 479,-255.87 479,-255.87 362.25,-255.87 362.25,-255.87 356.25,-255.87 350.25,-249.87 350.25,-243.87 350.25,-243.87 350.25,-48.87 350.25,-48.87 350.25,-42.87 356.25,-36.87 362.25,-36.87"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-232.87" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Deliver</text>
|
|
23
|
+
</g>
|
|
24
|
+
<g id="clust3" class="cluster">
|
|
25
|
+
<title>cluster_mon</title>
|
|
26
|
+
<path fill="#450a0a" stroke="#b91c1c" d="M574,-104.87C574,-104.87 645.75,-104.87 645.75,-104.87 651.75,-104.87 657.75,-110.87 657.75,-116.87 657.75,-116.87 657.75,-243.87 657.75,-243.87 657.75,-249.87 651.75,-255.87 645.75,-255.87 645.75,-255.87 574,-255.87 574,-255.87 568,-255.87 562,-249.87 562,-243.87 562,-243.87 562,-116.87 562,-116.87 562,-110.87 568,-104.87 574,-104.87"/>
|
|
27
|
+
<text xml:space="preserve" text-anchor="middle" x="609.88" y="-232.87" font-family="sans-Serif" font-size="20.00" fill="#fecaca">Monitor</text>
|
|
28
|
+
</g>
|
|
29
|
+
<!-- Seed -->
|
|
30
|
+
<g id="node1" class="node">
|
|
31
|
+
<title>Seed</title>
|
|
32
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M79.75,-113.87C79.75,-113.87 12,-113.87 12,-113.87 6,-113.87 0,-107.87 0,-101.87 0,-101.87 0,-89.87 0,-89.87 0,-83.87 6,-77.87 12,-77.87 12,-77.87 79.75,-77.87 79.75,-77.87 85.75,-77.87 91.75,-83.87 91.75,-89.87 91.75,-89.87 91.75,-101.87 91.75,-101.87 91.75,-107.87 85.75,-113.87 79.75,-113.87"/>
|
|
33
|
+
<text xml:space="preserve" text-anchor="middle" x="45.88" y="-98.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Seed corpus /</text>
|
|
34
|
+
<text xml:space="preserve" text-anchor="middle" x="45.88" y="-86.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">protocol grammar</text>
|
|
35
|
+
</g>
|
|
36
|
+
<!-- Fuzz -->
|
|
37
|
+
<g id="node2" class="node">
|
|
38
|
+
<title>Fuzz</title>
|
|
39
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M259.25,-148.87C259.25,-148.87 190.75,-148.87 190.75,-148.87 184.75,-148.87 178.75,-142.87 178.75,-136.87 178.75,-136.87 178.75,-124.87 178.75,-124.87 178.75,-118.87 184.75,-112.87 190.75,-112.87 190.75,-112.87 259.25,-112.87 259.25,-112.87 265.25,-112.87 271.25,-118.87 271.25,-124.87 271.25,-124.87 271.25,-136.87 271.25,-136.87 271.25,-142.87 265.25,-148.87 259.25,-148.87"/>
|
|
40
|
+
<text xml:space="preserve" text-anchor="middle" x="225" y="-133.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Fuzz</text>
|
|
41
|
+
<text xml:space="preserve" text-anchor="middle" x="225" y="-121.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">mutate · generate</text>
|
|
42
|
+
</g>
|
|
43
|
+
<!-- Seed->Fuzz -->
|
|
44
|
+
<g id="edge1" class="edge">
|
|
45
|
+
<title>Seed->Fuzz</title>
|
|
46
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M92.03,-104.8C115.37,-109.41 144.07,-115.08 168.73,-119.95"/>
|
|
47
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="167.99,-122.66 176.38,-121.46 169.08,-117.17 167.99,-122.66"/>
|
|
48
|
+
</g>
|
|
49
|
+
<!-- Char -->
|
|
50
|
+
<g id="node3" class="node">
|
|
51
|
+
<title>Char</title>
|
|
52
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M250.62,-80.87C250.62,-80.87 199.38,-80.87 199.38,-80.87 193.38,-80.87 187.38,-74.87 187.38,-68.87 187.38,-68.87 187.38,-56.87 187.38,-56.87 187.38,-50.87 193.38,-44.87 199.38,-44.87 199.38,-44.87 250.62,-44.87 250.62,-44.87 256.62,-44.87 262.62,-50.87 262.62,-56.87 262.62,-56.87 262.62,-68.87 262.62,-68.87 262.62,-74.87 256.62,-80.87 250.62,-80.87"/>
|
|
53
|
+
<text xml:space="preserve" text-anchor="middle" x="225" y="-65.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Char</text>
|
|
54
|
+
<text xml:space="preserve" text-anchor="middle" x="225" y="-53.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">encodings</text>
|
|
55
|
+
</g>
|
|
56
|
+
<!-- Seed->Char -->
|
|
57
|
+
<g id="edge2" class="edge">
|
|
58
|
+
<title>Seed->Char</title>
|
|
59
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M92.03,-87.46C118.11,-82.6 150.87,-76.5 177.22,-71.59"/>
|
|
60
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="177.7,-74.35 185.05,-70.13 176.67,-68.84 177.7,-74.35"/>
|
|
61
|
+
</g>
|
|
62
|
+
<!-- Sock -->
|
|
63
|
+
<g id="node4" class="node">
|
|
64
|
+
<title>Sock</title>
|
|
65
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M447,-216.87C447,-216.87 394.25,-216.87 394.25,-216.87 388.25,-216.87 382.25,-210.87 382.25,-204.87 382.25,-204.87 382.25,-192.87 382.25,-192.87 382.25,-186.87 388.25,-180.87 394.25,-180.87 394.25,-180.87 447,-180.87 447,-180.87 453,-180.87 459,-186.87 459,-192.87 459,-192.87 459,-204.87 459,-204.87 459,-210.87 453,-216.87 447,-216.87"/>
|
|
66
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-201.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Sock</text>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-189.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">TCP/UDP</text>
|
|
68
|
+
</g>
|
|
69
|
+
<!-- Fuzz->Sock -->
|
|
70
|
+
<g id="edge3" class="edge">
|
|
71
|
+
<title>Fuzz->Sock</title>
|
|
72
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M271.89,-146.99C302.29,-157.67 342.06,-171.63 372.68,-182.39"/>
|
|
73
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="371.54,-184.95 380.01,-184.96 373.39,-179.67 371.54,-184.95"/>
|
|
74
|
+
</g>
|
|
75
|
+
<!-- Packet -->
|
|
76
|
+
<g id="node5" class="node">
|
|
77
|
+
<title>Packet</title>
|
|
78
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M451.12,-148.87C451.12,-148.87 390.12,-148.87 390.12,-148.87 384.12,-148.87 378.12,-142.87 378.12,-136.87 378.12,-136.87 378.12,-124.87 378.12,-124.87 378.12,-118.87 384.12,-112.87 390.12,-112.87 390.12,-112.87 451.12,-112.87 451.12,-112.87 457.12,-112.87 463.12,-118.87 463.12,-124.87 463.12,-124.87 463.12,-136.87 463.12,-136.87 463.12,-142.87 457.12,-148.87 451.12,-148.87"/>
|
|
79
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-133.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Packet</text>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-121.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">raw L2/L3</text>
|
|
81
|
+
</g>
|
|
82
|
+
<!-- Fuzz->Packet -->
|
|
83
|
+
<g id="edge4" class="edge">
|
|
84
|
+
<title>Fuzz->Packet</title>
|
|
85
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M271.89,-130.87C300.72,-130.87 337.98,-130.87 367.87,-130.87"/>
|
|
86
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="367.73,-133.67 375.73,-130.87 367.73,-128.07 367.73,-133.67"/>
|
|
87
|
+
</g>
|
|
88
|
+
<!-- NetApp -->
|
|
89
|
+
<g id="node6" class="node">
|
|
90
|
+
<title>NetApp</title>
|
|
91
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M471,-80.87C471,-80.87 370.25,-80.87 370.25,-80.87 364.25,-80.87 358.25,-74.87 358.25,-68.87 358.25,-68.87 358.25,-56.87 358.25,-56.87 358.25,-50.87 364.25,-44.87 370.25,-44.87 370.25,-44.87 471,-44.87 471,-44.87 477,-44.87 483,-50.87 483,-56.87 483,-56.87 483,-68.87 483,-68.87 483,-74.87 477,-80.87 471,-80.87"/>
|
|
92
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-65.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn_fuzz_net_app_proto</text>
|
|
93
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-53.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">CLI driver</text>
|
|
94
|
+
</g>
|
|
95
|
+
<!-- Char->NetApp -->
|
|
96
|
+
<g id="edge5" class="edge">
|
|
97
|
+
<title>Char->NetApp</title>
|
|
98
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M262.88,-62.87C286.93,-62.87 319.12,-62.87 348.07,-62.87"/>
|
|
99
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="347.78,-65.67 355.78,-62.87 347.78,-60.07 347.78,-65.67"/>
|
|
100
|
+
</g>
|
|
101
|
+
<!-- PS -->
|
|
102
|
+
<g id="node7" class="node">
|
|
103
|
+
<title>PS</title>
|
|
104
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M637.75,-216.87C637.75,-216.87 582,-216.87 582,-216.87 576,-216.87 570,-210.87 570,-204.87 570,-204.87 570,-192.87 570,-192.87 570,-186.87 576,-180.87 582,-180.87 582,-180.87 637.75,-180.87 637.75,-180.87 643.75,-180.87 649.75,-186.87 649.75,-192.87 649.75,-192.87 649.75,-204.87 649.75,-204.87 649.75,-210.87 643.75,-216.87 637.75,-216.87"/>
|
|
105
|
+
<text xml:space="preserve" text-anchor="middle" x="609.88" y="-201.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::PS</text>
|
|
106
|
+
<text xml:space="preserve" text-anchor="middle" x="609.88" y="-189.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">process health</text>
|
|
107
|
+
</g>
|
|
108
|
+
<!-- Sock->PS -->
|
|
109
|
+
<g id="edge6" class="edge">
|
|
110
|
+
<title>Sock->PS</title>
|
|
111
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M459.52,-198.87C488.35,-198.87 528.27,-198.87 559.58,-198.87"/>
|
|
112
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="559.46,-201.67 567.46,-198.87 559.46,-196.07 559.46,-201.67"/>
|
|
113
|
+
</g>
|
|
114
|
+
<!-- Log -->
|
|
115
|
+
<g id="node8" class="node">
|
|
116
|
+
<title>Log</title>
|
|
117
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M632.88,-148.87C632.88,-148.87 586.88,-148.87 586.88,-148.87 580.88,-148.87 574.88,-142.87 574.88,-136.87 574.88,-136.87 574.88,-124.87 574.88,-124.87 574.88,-118.87 580.88,-112.87 586.88,-112.87 586.88,-112.87 632.88,-112.87 632.88,-112.87 638.88,-112.87 644.88,-118.87 644.88,-124.87 644.88,-124.87 644.88,-136.87 644.88,-136.87 644.88,-142.87 638.88,-148.87 632.88,-148.87"/>
|
|
118
|
+
<text xml:space="preserve" text-anchor="middle" x="609.88" y="-133.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Log</text>
|
|
119
|
+
<text xml:space="preserve" text-anchor="middle" x="609.88" y="-121.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">crash detect</text>
|
|
120
|
+
</g>
|
|
121
|
+
<!-- Packet->Log -->
|
|
122
|
+
<g id="edge7" class="edge">
|
|
123
|
+
<title>Packet->Log</title>
|
|
124
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M463.65,-130.87C493.68,-130.87 534.01,-130.87 564.55,-130.87"/>
|
|
125
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="564.54,-133.67 572.54,-130.87 564.54,-128.07 564.54,-133.67"/>
|
|
126
|
+
</g>
|
|
127
|
+
<!-- NetApp->Log -->
|
|
128
|
+
<g id="edge8" class="edge">
|
|
129
|
+
<title>NetApp->Log</title>
|
|
130
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M472.79,-81.45C501.78,-91.98 537.67,-105.01 565.3,-115.05"/>
|
|
131
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="564.01,-117.56 572.49,-117.66 565.93,-112.3 564.01,-117.56"/>
|
|
132
|
+
</g>
|
|
133
|
+
<!-- Report -->
|
|
134
|
+
<g id="node9" class="node">
|
|
135
|
+
<title>Report</title>
|
|
136
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M803,-185.87C803,-185.87 748.75,-185.87 748.75,-185.87 742.75,-185.87 736.75,-179.87 736.75,-173.87 736.75,-173.87 736.75,-161.87 736.75,-161.87 736.75,-155.87 742.75,-149.87 748.75,-149.87 748.75,-149.87 803,-149.87 803,-149.87 809,-149.87 815,-155.87 815,-161.87 815,-161.87 815,-173.87 815,-173.87 815,-179.87 809,-185.87 803,-185.87"/>
|
|
137
|
+
<text xml:space="preserve" text-anchor="middle" x="775.88" y="-170.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Reports::Fuzz</text>
|
|
138
|
+
<text xml:space="preserve" text-anchor="middle" x="775.88" y="-158.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">crash triage</text>
|
|
139
|
+
</g>
|
|
140
|
+
<!-- PS->Report -->
|
|
141
|
+
<g id="edge9" class="edge">
|
|
142
|
+
<title>PS->Report</title>
|
|
143
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M650.16,-191.45C673.06,-187.12 702.13,-181.62 726.45,-177.03"/>
|
|
144
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="726.92,-179.79 734.26,-175.55 725.88,-174.28 726.92,-179.79"/>
|
|
145
|
+
</g>
|
|
146
|
+
<!-- Log->Fuzz -->
|
|
147
|
+
<g id="edge11" class="edge">
|
|
148
|
+
<title>Log->Fuzz</title>
|
|
149
|
+
<path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M596.69,-112.47C577.77,-85.77 538.53,-37.41 491,-18.37 432.93,4.89 407.43,7.01 350.25,-18.37 307.25,-37.46 315.17,-66.5 279.25,-96.87 275.22,-100.28 270.82,-103.61 266.34,-106.77"/>
|
|
150
|
+
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="264.92,-104.34 259.87,-111.15 268.06,-108.98 264.92,-104.34"/>
|
|
151
|
+
<text xml:space="preserve" text-anchor="middle" x="420.62" y="-20.32" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">minimise + reseed</text>
|
|
152
|
+
</g>
|
|
153
|
+
<!-- Log->Report -->
|
|
154
|
+
<g id="edge10" class="edge">
|
|
155
|
+
<title>Log->Report</title>
|
|
156
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M645.25,-138.63C668.82,-143.95 700.43,-151.08 726.53,-156.97"/>
|
|
157
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="725.89,-159.69 734.31,-158.72 727.13,-154.23 725.89,-159.69"/>
|
|
158
|
+
</g>
|
|
159
|
+
</g>
|
|
160
|
+
</svg>
|
|
@@ -0,0 +1,119 @@
|
|
|
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_HistToDriver Pages: 1 -->
|
|
7
|
+
<svg width="1033pt" height="368pt"
|
|
8
|
+
viewBox="0.00 0.00 1033.00 368.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 325.2)">
|
|
10
|
+
<title>PWN_HistToDriver</title>
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-325.2 990.2,-325.2 990.2,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="263.88" y="-260" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">From REPL History → Reusable Driver / Skill</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="352" y="-248.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">explore → history → bin/pwn_* driver → distill_skill</text>
|
|
14
|
+
<g id="clust1" class="cluster">
|
|
15
|
+
<title>cluster_out</title>
|
|
16
|
+
<path fill="#2e1065" stroke="#6d28d9" d="M593.25,-8C593.25,-8 752.5,-8 752.5,-8 758.5,-8 764.5,-14 764.5,-20 764.5,-20 764.5,-223 764.5,-223 764.5,-229 758.5,-235 752.5,-235 752.5,-235 593.25,-235 593.25,-235 587.25,-235 581.25,-229 581.25,-223 581.25,-223 581.25,-20 581.25,-20 581.25,-14 587.25,-8 593.25,-8"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="672.88" y="-212" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">Reusable Artefacts</text>
|
|
18
|
+
</g>
|
|
19
|
+
<!-- Explore -->
|
|
20
|
+
<g id="node1" class="node">
|
|
21
|
+
<title>Explore</title>
|
|
22
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M95.5,-124C95.5,-124 12,-124 12,-124 6,-124 0,-118 0,-112 0,-112 0,-100 0,-100 0,-94 6,-88 12,-88 12,-88 95.5,-88 95.5,-88 101.5,-88 107.5,-94 107.5,-100 107.5,-100 107.5,-112 107.5,-112 107.5,-118 101.5,-124 95.5,-124"/>
|
|
23
|
+
<text xml:space="preserve" text-anchor="middle" x="53.75" y="-108.88" font-family="sans-Serif" font-size="10.00" fill="#0f172a">🐚  Explore in REPL</text>
|
|
24
|
+
<text xml:space="preserve" text-anchor="middle" x="53.75" y="-96.12" font-family="sans-Serif" font-size="10.00" fill="#0f172a">call PWN::Plugins::*</text>
|
|
25
|
+
</g>
|
|
26
|
+
<!-- Hist -->
|
|
27
|
+
<g id="node2" class="node">
|
|
28
|
+
<title>Hist</title>
|
|
29
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M318.25,-124C318.25,-126.21 297.86,-128 272.75,-128 247.64,-128 227.25,-126.21 227.25,-124 227.25,-124 227.25,-88 227.25,-88 227.25,-85.79 247.64,-84 272.75,-84 297.86,-84 318.25,-85.79 318.25,-88 318.25,-88 318.25,-124 318.25,-124"/>
|
|
30
|
+
<path fill="none" stroke="#334155" stroke-width="1.3" d="M318.25,-124C318.25,-121.79 297.86,-120 272.75,-120 247.64,-120 227.25,-121.79 227.25,-124"/>
|
|
31
|
+
<text xml:space="preserve" text-anchor="middle" x="272.75" y="-108.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">~/.pwn_history</text>
|
|
32
|
+
<text xml:space="preserve" text-anchor="middle" x="272.75" y="-96.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Pry `history` cmd</text>
|
|
33
|
+
</g>
|
|
34
|
+
<!-- Explore->Hist -->
|
|
35
|
+
<g id="edge1" class="edge">
|
|
36
|
+
<title>Explore->Hist</title>
|
|
37
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M108.11,-106C141.23,-106 183.7,-106 217.06,-106"/>
|
|
38
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="216.69,-108.8 224.69,-106 216.69,-103.2 216.69,-108.8"/>
|
|
39
|
+
<text xml:space="preserve" text-anchor="middle" x="167.38" y="-107.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">auto-log</text>
|
|
40
|
+
</g>
|
|
41
|
+
<!-- Extract -->
|
|
42
|
+
<g id="node3" class="node">
|
|
43
|
+
<title>Extract</title>
|
|
44
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M490.25,-124C490.25,-124 417.25,-124 417.25,-124 411.25,-124 405.25,-118 405.25,-112 405.25,-112 405.25,-100 405.25,-100 405.25,-94 411.25,-88 417.25,-88 417.25,-88 490.25,-88 490.25,-88 496.25,-88 502.25,-94 502.25,-100 502.25,-100 502.25,-112 502.25,-112 502.25,-118 496.25,-124 490.25,-124"/>
|
|
45
|
+
<text xml:space="preserve" text-anchor="middle" x="453.75" y="-102.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">copy working lines</text>
|
|
46
|
+
</g>
|
|
47
|
+
<!-- Hist->Extract -->
|
|
48
|
+
<g id="edge2" class="edge">
|
|
49
|
+
<title>Hist->Extract</title>
|
|
50
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M318.46,-106C341.68,-106 370.32,-106 395.18,-106"/>
|
|
51
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="394.89,-108.8 402.89,-106 394.89,-103.2 394.89,-108.8"/>
|
|
52
|
+
</g>
|
|
53
|
+
<!-- Driver -->
|
|
54
|
+
<g id="node4" class="node">
|
|
55
|
+
<title>Driver</title>
|
|
56
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M726.5,-196C726.5,-196 618.25,-196 618.25,-196 612.25,-196 606.25,-190 606.25,-184 606.25,-184 606.25,-172 606.25,-172 606.25,-166 612.25,-160 618.25,-160 618.25,-160 726.5,-160 726.5,-160 732.5,-160 738.5,-166 738.5,-172 738.5,-172 738.5,-184 738.5,-184 738.5,-190 732.5,-196 726.5,-196"/>
|
|
57
|
+
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-180.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">bin/pwn_<name></text>
|
|
58
|
+
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-168.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">OptionParser + PWN calls</text>
|
|
59
|
+
</g>
|
|
60
|
+
<!-- Extract->Driver -->
|
|
61
|
+
<g id="edge3" class="edge">
|
|
62
|
+
<title>Extract->Driver</title>
|
|
63
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M502.83,-121.98C533.25,-132.09 572.96,-145.29 606.2,-156.34"/>
|
|
64
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="605.05,-158.91 613.52,-158.77 606.81,-153.59 605.05,-158.91"/>
|
|
65
|
+
</g>
|
|
66
|
+
<!-- Skill -->
|
|
67
|
+
<g id="node5" class="node">
|
|
68
|
+
<title>Skill</title>
|
|
69
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M723.88,-124C723.88,-124 620.88,-124 620.88,-124 614.88,-124 608.88,-118 608.88,-112 608.88,-112 608.88,-100 608.88,-100 608.88,-94 614.88,-88 620.88,-88 620.88,-88 723.88,-88 723.88,-88 729.88,-88 735.88,-94 735.88,-100 735.88,-100 735.88,-112 735.88,-112 735.88,-118 729.88,-124 723.88,-124"/>
|
|
70
|
+
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-108.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">~/.pwn/skills/<name>.md</text>
|
|
71
|
+
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-96.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">learning_distill_skill</text>
|
|
72
|
+
</g>
|
|
73
|
+
<!-- Extract->Skill -->
|
|
74
|
+
<g id="edge4" class="edge">
|
|
75
|
+
<title>Extract->Skill</title>
|
|
76
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M502.83,-106C531.07,-106 567.32,-106 598.96,-106"/>
|
|
77
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="598.65,-108.8 606.65,-106 598.65,-103.2 598.65,-108.8"/>
|
|
78
|
+
</g>
|
|
79
|
+
<!-- Cron -->
|
|
80
|
+
<g id="node6" class="node">
|
|
81
|
+
<title>Cron</title>
|
|
82
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M699.88,-52C699.88,-52 644.88,-52 644.88,-52 638.88,-52 632.88,-46 632.88,-40 632.88,-40 632.88,-28 632.88,-28 632.88,-22 638.88,-16 644.88,-16 644.88,-16 699.88,-16 699.88,-16 705.88,-16 711.88,-22 711.88,-28 711.88,-28 711.88,-40 711.88,-40 711.88,-46 705.88,-52 699.88,-52"/>
|
|
83
|
+
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-36.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">cron_create</text>
|
|
84
|
+
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-24.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">prompt: | ruby:</text>
|
|
85
|
+
</g>
|
|
86
|
+
<!-- Extract->Cron -->
|
|
87
|
+
<g id="edge5" class="edge">
|
|
88
|
+
<title>Extract->Cron</title>
|
|
89
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M502.83,-90.02C538.64,-78.12 587.34,-61.93 623.18,-50.02"/>
|
|
90
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="623.89,-52.73 630.6,-47.55 622.12,-47.42 623.89,-52.73"/>
|
|
91
|
+
</g>
|
|
92
|
+
<!-- CI -->
|
|
93
|
+
<g id="node7" class="node">
|
|
94
|
+
<title>CI</title>
|
|
95
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M935,-124C935,-124 887.5,-124 887.5,-124 881.5,-124 875.5,-118 875.5,-112 875.5,-112 875.5,-100 875.5,-100 875.5,-94 881.5,-88 887.5,-88 887.5,-88 935,-88 935,-88 941,-88 947,-94 947,-100 947,-100 947,-112 947,-112 947,-118 941,-124 935,-124"/>
|
|
96
|
+
<text xml:space="preserve" text-anchor="middle" x="911.25" y="-108.88" font-family="sans-Serif" font-size="10.00" fill="#0f172a">⚙️  CI / CD</text>
|
|
97
|
+
<text xml:space="preserve" text-anchor="middle" x="911.25" y="-96.12" font-family="sans-Serif" font-size="10.00" fill="#0f172a">headless run</text>
|
|
98
|
+
</g>
|
|
99
|
+
<!-- Driver->CI -->
|
|
100
|
+
<g id="edge6" class="edge">
|
|
101
|
+
<title>Driver->CI</title>
|
|
102
|
+
<path fill="none" stroke="#38bdf8" stroke-width="2" d="M734.68,-159.36C775.23,-147.04 827.53,-131.14 864.46,-119.92"/>
|
|
103
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="865.19,-122.62 872.03,-117.62 863.56,-117.26 865.19,-122.62"/>
|
|
104
|
+
</g>
|
|
105
|
+
<!-- Skill->CI -->
|
|
106
|
+
<g id="edge7" class="edge">
|
|
107
|
+
<title>Skill->CI</title>
|
|
108
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M736.23,-106C776.82,-106 828.68,-106 865.19,-106"/>
|
|
109
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="865.09,-108.8 873.09,-106 865.09,-103.2 865.09,-108.8"/>
|
|
110
|
+
<text xml:space="preserve" text-anchor="middle" x="816" y="-107.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">pwn --ai</text>
|
|
111
|
+
</g>
|
|
112
|
+
<!-- Cron->CI -->
|
|
113
|
+
<g id="edge8" class="edge">
|
|
114
|
+
<title>Cron->CI</title>
|
|
115
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M712.49,-45.89C754.6,-58.69 821.48,-79.02 865.62,-92.43"/>
|
|
116
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="864.6,-95.05 873.06,-94.7 866.22,-89.69 864.6,-95.05"/>
|
|
117
|
+
</g>
|
|
118
|
+
</g>
|
|
119
|
+
</svg>
|