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
|
@@ -3,147 +3,151 @@
|
|
|
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_ZeroDay Pages: 1 -->
|
|
7
|
+
<svg width="1064pt" height="309pt"
|
|
8
|
+
viewBox="0.00 0.00 1064.00 309.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 265.39)">
|
|
10
|
+
<title>PWN_ZeroDay</title>
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-265.39 1021.2,-265.39 1021.2,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="304.5" y="-200.19" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">Zero-Day Research Lifecycle with PWN</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="337.12" y="-188.74" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">attack surface → hypothesis → prove → weaponise → disclose</text>
|
|
14
|
+
<g id="clust1" class="cluster">
|
|
15
|
+
<title>cluster_hyp</title>
|
|
16
|
+
<path fill="#022c22" stroke="#047857" d="M210.5,-24.19C210.5,-24.19 312,-24.19 312,-24.19 318,-24.19 324,-30.19 324,-36.19 324,-36.19 324,-163.19 324,-163.19 324,-169.19 318,-175.19 312,-175.19 312,-175.19 210.5,-175.19 210.5,-175.19 204.5,-175.19 198.5,-169.19 198.5,-163.19 198.5,-163.19 198.5,-36.19 198.5,-36.19 198.5,-30.19 204.5,-24.19 210.5,-24.19"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="261.25" y="-152.19" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Hypothesise</text>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="clust2" class="cluster">
|
|
20
|
+
<title>cluster_prove</title>
|
|
21
|
+
<path fill="#422006" stroke="#a16207" d="M407,-24.19C407,-24.19 502.75,-24.19 502.75,-24.19 508.75,-24.19 514.75,-30.19 514.75,-36.19 514.75,-36.19 514.75,-163.19 514.75,-163.19 514.75,-169.19 508.75,-175.19 502.75,-175.19 502.75,-175.19 407,-175.19 407,-175.19 401,-175.19 395,-169.19 395,-163.19 395,-163.19 395,-36.19 395,-36.19 395,-30.19 401,-24.19 407,-24.19"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="454.88" y="-152.19" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Prove</text>
|
|
23
|
+
</g>
|
|
24
|
+
<g id="clust3" class="cluster">
|
|
25
|
+
<title>cluster_weapon</title>
|
|
26
|
+
<path fill="#450a0a" stroke="#b91c1c" d="M674.75,-24.19C674.75,-24.19 767.25,-24.19 767.25,-24.19 773.25,-24.19 779.25,-30.19 779.25,-36.19 779.25,-36.19 779.25,-163.19 779.25,-163.19 779.25,-169.19 773.25,-175.19 767.25,-175.19 767.25,-175.19 674.75,-175.19 674.75,-175.19 668.75,-175.19 662.75,-169.19 662.75,-163.19 662.75,-163.19 662.75,-36.19 662.75,-36.19 662.75,-30.19 668.75,-24.19 674.75,-24.19"/>
|
|
27
|
+
<text xml:space="preserve" text-anchor="middle" x="721" y="-152.19" font-family="sans-Serif" font-size="20.00" fill="#fecaca">Weaponise</text>
|
|
28
|
+
</g>
|
|
29
|
+
<g id="clust4" class="cluster">
|
|
30
|
+
<title>cluster_disc</title>
|
|
31
|
+
<path fill="#2e1065" stroke="#6d28d9" d="M862.25,-24.19C862.25,-24.19 958,-24.19 958,-24.19 964,-24.19 970,-30.19 970,-36.19 970,-36.19 970,-163.19 970,-163.19 970,-169.19 964,-175.19 958,-175.19 958,-175.19 862.25,-175.19 862.25,-175.19 856.25,-175.19 850.25,-169.19 850.25,-163.19 850.25,-163.19 850.25,-36.19 850.25,-36.19 850.25,-30.19 856.25,-24.19 862.25,-24.19"/>
|
|
32
|
+
<text xml:space="preserve" text-anchor="middle" x="910.12" y="-152.19" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">Disclose</text>
|
|
33
|
+
</g>
|
|
34
|
+
<!-- Surface -->
|
|
13
35
|
<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="
|
|
18
|
-
<text xml:space="preserve" text-anchor="middle" x="112.5" y="-487.14" font-family="Arial" font-size="9.00">Protocol, Web App)</text>
|
|
36
|
+
<title>Surface</title>
|
|
37
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M107.5,-101.19C107.5,-101.19 12,-101.19 12,-101.19 6,-101.19 0,-95.19 0,-89.19 0,-89.19 0,-77.19 0,-77.19 0,-71.19 6,-65.19 12,-65.19 12,-65.19 107.5,-65.19 107.5,-65.19 113.5,-65.19 119.5,-71.19 119.5,-77.19 119.5,-77.19 119.5,-89.19 119.5,-89.19 119.5,-95.19 113.5,-101.19 107.5,-101.19"/>
|
|
38
|
+
<text xml:space="preserve" text-anchor="middle" x="59.75" y="-85.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Attack Surface</text>
|
|
39
|
+
<text xml:space="preserve" text-anchor="middle" x="59.75" y="-73.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">OpenAPI · Shodan · Git</text>
|
|
19
40
|
</g>
|
|
20
|
-
<!--
|
|
41
|
+
<!-- SAST -->
|
|
21
42
|
<g id="node2" class="node">
|
|
22
|
-
<title>
|
|
23
|
-
<path fill="
|
|
24
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
25
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
43
|
+
<title>SAST</title>
|
|
44
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M285.25,-136.19C285.25,-136.19 236.25,-136.19 236.25,-136.19 230.25,-136.19 224.25,-130.19 224.25,-124.19 224.25,-124.19 224.25,-112.19 224.25,-112.19 224.25,-106.19 230.25,-100.19 236.25,-100.19 236.25,-100.19 285.25,-100.19 285.25,-100.19 291.25,-100.19 297.25,-106.19 297.25,-112.19 297.25,-112.19 297.25,-124.19 297.25,-124.19 297.25,-130.19 291.25,-136.19 285.25,-136.19"/>
|
|
45
|
+
<text xml:space="preserve" text-anchor="middle" x="260.75" y="-120.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">PWN::SAST</text>
|
|
46
|
+
<text xml:space="preserve" text-anchor="middle" x="260.75" y="-108.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">taint patterns</text>
|
|
26
47
|
</g>
|
|
27
|
-
<!--
|
|
48
|
+
<!-- Surface->SAST -->
|
|
28
49
|
<g id="edge1" class="edge">
|
|
29
|
-
<title>
|
|
30
|
-
<path fill="none" stroke="
|
|
31
|
-
<polygon fill="
|
|
50
|
+
<title>Surface->SAST</title>
|
|
51
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M119.92,-93.59C150.05,-98.89 186.12,-105.24 214.08,-110.16"/>
|
|
52
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="213.3,-112.86 221.67,-111.49 214.27,-107.35 213.3,-112.86"/>
|
|
32
53
|
</g>
|
|
33
|
-
<!--
|
|
54
|
+
<!-- AI -->
|
|
34
55
|
<g id="node3" class="node">
|
|
35
|
-
<title>
|
|
36
|
-
<path fill="
|
|
37
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
56
|
+
<title>AI</title>
|
|
57
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M291.25,-68.19C291.25,-68.19 230.25,-68.19 230.25,-68.19 224.25,-68.19 218.25,-62.19 218.25,-56.19 218.25,-56.19 218.25,-44.19 218.25,-44.19 218.25,-38.19 224.25,-32.19 230.25,-32.19 230.25,-32.19 291.25,-32.19 291.25,-32.19 297.25,-32.19 303.25,-38.19 303.25,-44.19 303.25,-44.19 303.25,-56.19 303.25,-56.19 303.25,-62.19 297.25,-68.19 291.25,-68.19"/>
|
|
58
|
+
<text xml:space="preserve" text-anchor="middle" x="260.75" y="-52.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn-ai</text>
|
|
59
|
+
<text xml:space="preserve" text-anchor="middle" x="260.75" y="-40.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Agent::VulnGen</text>
|
|
38
60
|
</g>
|
|
39
|
-
<!--
|
|
61
|
+
<!-- Surface->AI -->
|
|
40
62
|
<g id="edge2" class="edge">
|
|
41
|
-
<title>
|
|
42
|
-
<path fill="none" stroke="
|
|
43
|
-
<polygon fill="
|
|
63
|
+
<title>Surface->AI</title>
|
|
64
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M119.92,-73.38C147.98,-68.72 181.19,-63.22 208.2,-58.74"/>
|
|
65
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="208.48,-61.53 215.91,-57.46 207.56,-56 208.48,-61.53"/>
|
|
44
66
|
</g>
|
|
45
67
|
<!-- Fuzz -->
|
|
46
68
|
<g id="node4" class="node">
|
|
47
69
|
<title>Fuzz</title>
|
|
48
|
-
<path fill="
|
|
49
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
50
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
70
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M477.5,-136.19C477.5,-136.19 432.25,-136.19 432.25,-136.19 426.25,-136.19 420.25,-130.19 420.25,-124.19 420.25,-124.19 420.25,-112.19 420.25,-112.19 420.25,-106.19 426.25,-100.19 432.25,-100.19 432.25,-100.19 477.5,-100.19 477.5,-100.19 483.5,-100.19 489.5,-106.19 489.5,-112.19 489.5,-112.19 489.5,-124.19 489.5,-124.19 489.5,-130.19 483.5,-136.19 477.5,-136.19"/>
|
|
71
|
+
<text xml:space="preserve" text-anchor="middle" x="454.88" y="-120.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Fuzz · Sock</text>
|
|
72
|
+
<text xml:space="preserve" text-anchor="middle" x="454.88" y="-108.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Packet</text>
|
|
51
73
|
</g>
|
|
52
|
-
<!--
|
|
74
|
+
<!-- SAST->Fuzz -->
|
|
53
75
|
<g id="edge3" class="edge">
|
|
54
|
-
<title>
|
|
55
|
-
<path fill="none" stroke="
|
|
56
|
-
<polygon fill="
|
|
76
|
+
<title>SAST->Fuzz</title>
|
|
77
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M297.89,-118.19C329.74,-118.19 376.24,-118.19 410.18,-118.19"/>
|
|
78
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="409.87,-120.99 417.87,-118.19 409.87,-115.39 409.87,-120.99"/>
|
|
57
79
|
</g>
|
|
58
|
-
<!--
|
|
80
|
+
<!-- TB -->
|
|
59
81
|
<g id="node5" class="node">
|
|
60
|
-
<title>
|
|
61
|
-
<path fill="
|
|
62
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
63
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
82
|
+
<title>TB</title>
|
|
83
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M494.75,-68.19C494.75,-68.19 415,-68.19 415,-68.19 409,-68.19 403,-62.19 403,-56.19 403,-56.19 403,-44.19 403,-44.19 403,-38.19 409,-32.19 415,-32.19 415,-32.19 494.75,-32.19 494.75,-32.19 500.75,-32.19 506.75,-38.19 506.75,-44.19 506.75,-44.19 506.75,-56.19 506.75,-56.19 506.75,-62.19 500.75,-68.19 494.75,-68.19"/>
|
|
84
|
+
<text xml:space="preserve" text-anchor="middle" x="454.88" y="-52.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">TransparentBrowser</text>
|
|
85
|
+
<text xml:space="preserve" text-anchor="middle" x="454.88" y="-40.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Burp replay</text>
|
|
64
86
|
</g>
|
|
65
|
-
<!--
|
|
66
|
-
<g id="edge6" class="edge">
|
|
67
|
-
<title>RE->Dyn</title>
|
|
68
|
-
<path fill="none" stroke="black" d="M58.5,-407.87C68.57,-382.97 87.25,-336.77 99.26,-307.05"/>
|
|
69
|
-
<polygon fill="black" stroke="black" points="102.44,-308.53 102.94,-297.94 95.95,-305.9 102.44,-308.53"/>
|
|
70
|
-
</g>
|
|
71
|
-
<!-- SAST->Fuzz -->
|
|
87
|
+
<!-- AI->TB -->
|
|
72
88
|
<g id="edge4" class="edge">
|
|
73
|
-
<title>
|
|
74
|
-
<path fill="none" stroke="
|
|
75
|
-
<polygon fill="
|
|
89
|
+
<title>AI->TB</title>
|
|
90
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M303.44,-50.19C329.61,-50.19 363.82,-50.19 393,-50.19"/>
|
|
91
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="392.72,-52.99 400.72,-50.19 392.72,-47.39 392.72,-52.99"/>
|
|
92
|
+
</g>
|
|
93
|
+
<!-- Asm -->
|
|
94
|
+
<g id="node6" class="node">
|
|
95
|
+
<title>Asm</title>
|
|
96
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M758.5,-136.19C758.5,-136.19 682.5,-136.19 682.5,-136.19 676.5,-136.19 670.5,-130.19 670.5,-124.19 670.5,-124.19 670.5,-112.19 670.5,-112.19 670.5,-106.19 676.5,-100.19 682.5,-100.19 682.5,-100.19 758.5,-100.19 758.5,-100.19 764.5,-100.19 770.5,-106.19 770.5,-112.19 770.5,-112.19 770.5,-124.19 770.5,-124.19 770.5,-130.19 764.5,-136.19 758.5,-136.19"/>
|
|
97
|
+
<text xml:space="preserve" text-anchor="middle" x="720.5" y="-120.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Assembly</text>
|
|
98
|
+
<text xml:space="preserve" text-anchor="middle" x="720.5" y="-108.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn-asm shellcode</text>
|
|
76
99
|
</g>
|
|
77
|
-
<!-- Fuzz->
|
|
100
|
+
<!-- Fuzz->Asm -->
|
|
78
101
|
<g id="edge5" class="edge">
|
|
79
|
-
<title>Fuzz->
|
|
80
|
-
<path fill="none" stroke="
|
|
81
|
-
<polygon fill="
|
|
102
|
+
<title>Fuzz->Asm</title>
|
|
103
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M490.07,-118.19C533.13,-118.19 607.81,-118.19 660.24,-118.19"/>
|
|
104
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="660.12,-120.99 668.12,-118.19 660.12,-115.39 660.12,-120.99"/>
|
|
82
105
|
</g>
|
|
83
|
-
<!--
|
|
84
|
-
<g id="
|
|
85
|
-
<title>
|
|
86
|
-
<path fill="
|
|
87
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
88
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
106
|
+
<!-- MSF -->
|
|
107
|
+
<g id="node7" class="node">
|
|
108
|
+
<title>MSF</title>
|
|
109
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M739,-68.19C739,-68.19 702,-68.19 702,-68.19 696,-68.19 690,-62.19 690,-56.19 690,-56.19 690,-44.19 690,-44.19 690,-38.19 696,-32.19 702,-32.19 702,-32.19 739,-32.19 739,-32.19 745,-32.19 751,-38.19 751,-44.19 751,-44.19 751,-56.19 751,-56.19 751,-62.19 745,-68.19 739,-68.19"/>
|
|
110
|
+
<text xml:space="preserve" text-anchor="middle" x="720.5" y="-52.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Metasploit</text>
|
|
111
|
+
<text xml:space="preserve" text-anchor="middle" x="720.5" y="-40.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">module</text>
|
|
89
112
|
</g>
|
|
90
|
-
<!--
|
|
91
|
-
<g id="
|
|
92
|
-
<title>
|
|
93
|
-
<path fill="none" stroke="
|
|
94
|
-
<polygon fill="
|
|
113
|
+
<!-- TB->MSF -->
|
|
114
|
+
<g id="edge6" class="edge">
|
|
115
|
+
<title>TB->MSF</title>
|
|
116
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M507.33,-50.19C557.76,-50.19 633.56,-50.19 679.6,-50.19"/>
|
|
117
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="679.54,-52.99 687.54,-50.19 679.54,-47.39 679.54,-52.99"/>
|
|
95
118
|
</g>
|
|
96
|
-
<!--
|
|
97
|
-
<g id="
|
|
98
|
-
<title>
|
|
99
|
-
<path fill="
|
|
100
|
-
<
|
|
101
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
</g>
|
|
105
|
-
<!-- Memory->RE -->
|
|
119
|
+
<!-- H1 -->
|
|
120
|
+
<g id="node8" class="node">
|
|
121
|
+
<title>H1</title>
|
|
122
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M950,-136.19C950,-136.19 870.25,-136.19 870.25,-136.19 864.25,-136.19 858.25,-130.19 858.25,-124.19 858.25,-124.19 858.25,-112.19 858.25,-112.19 858.25,-106.19 864.25,-100.19 870.25,-100.19 870.25,-100.19 950,-100.19 950,-100.19 956,-100.19 962,-106.19 962,-112.19 962,-112.19 962,-124.19 962,-124.19 962,-130.19 956,-136.19 950,-136.19"/>
|
|
123
|
+
<text xml:space="preserve" text-anchor="middle" x="910.12" y="-120.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">HackerOne</text>
|
|
124
|
+
<text xml:space="preserve" text-anchor="middle" x="910.12" y="-108.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">BugCrowd · Synack</text>
|
|
125
|
+
</g>
|
|
126
|
+
<!-- Asm->H1 -->
|
|
106
127
|
<g id="edge7" class="edge">
|
|
107
|
-
<title>
|
|
108
|
-
<path fill="none" stroke="
|
|
109
|
-
<polygon fill="
|
|
110
|
-
<text xml:space="preserve" text-anchor="middle" x="63.25" y="-232.71" font-family="Times,serif" font-size="8.00">recall past findings</text>
|
|
128
|
+
<title>Asm->H1</title>
|
|
129
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M770.8,-118.19C794.47,-118.19 823.07,-118.19 848.11,-118.19"/>
|
|
130
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="847.9,-120.99 855.9,-118.19 847.9,-115.39 847.9,-120.99"/>
|
|
111
131
|
</g>
|
|
112
|
-
<!--
|
|
113
|
-
<g id="
|
|
114
|
-
<title>
|
|
115
|
-
<path fill="
|
|
116
|
-
<
|
|
117
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
118
|
-
<text xml:space="preserve" text-anchor="middle" x="218.5" y="-269.7" font-family="Arial" font-size="9.00">zero-day patterns)</text>
|
|
132
|
+
<!-- Rep -->
|
|
133
|
+
<g id="node9" class="node">
|
|
134
|
+
<title>Rep</title>
|
|
135
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M939.88,-68.19C939.88,-68.19 880.38,-68.19 880.38,-68.19 874.38,-68.19 868.38,-62.19 868.38,-56.19 868.38,-56.19 868.38,-44.19 868.38,-44.19 868.38,-38.19 874.38,-32.19 880.38,-32.19 880.38,-32.19 939.88,-32.19 939.88,-32.19 945.88,-32.19 951.88,-38.19 951.88,-44.19 951.88,-44.19 951.88,-56.19 951.88,-56.19 951.88,-62.19 945.88,-68.19 939.88,-68.19"/>
|
|
136
|
+
<text xml:space="preserve" text-anchor="middle" x="910.12" y="-52.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Reports · Skills</text>
|
|
137
|
+
<text xml:space="preserve" text-anchor="middle" x="910.12" y="-40.69" font-family="sans-Serif" font-size="10.00" fill="#0f172a">distill_skill</text>
|
|
119
138
|
</g>
|
|
120
|
-
<!--
|
|
139
|
+
<!-- MSF->Rep -->
|
|
121
140
|
<g id="edge8" class="edge">
|
|
122
|
-
<title>
|
|
123
|
-
<path fill="none" stroke="
|
|
124
|
-
<polygon fill="
|
|
125
|
-
<text xml:space="preserve" text-anchor="middle" x="193.53" y="-232.71" font-family="Times,serif" font-size="8.00">apply patterns</text>
|
|
141
|
+
<title>MSF->Rep</title>
|
|
142
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M751.65,-50.19C780.31,-50.19 823.98,-50.19 858.07,-50.19"/>
|
|
143
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="857.9,-52.99 865.9,-50.19 857.9,-47.39 857.9,-52.99"/>
|
|
126
144
|
</g>
|
|
127
|
-
<!--
|
|
128
|
-
<g id="
|
|
129
|
-
<title>
|
|
130
|
-
<path fill="none" stroke="
|
|
131
|
-
<
|
|
132
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
133
|
-
<text xml:space="preserve" text-anchor="middle" x="117.5" y="-106.01" font-family="Arial" font-size="9.00">HackerOne, etc.)</text>
|
|
134
|
-
</g>
|
|
135
|
-
<!-- Exploit->Disclose -->
|
|
136
|
-
<g id="edge10" class="edge">
|
|
137
|
-
<title>Exploit->Disclose</title>
|
|
138
|
-
<path fill="none" stroke="black" d="M117.5,-176.32C117.5,-168.81 117.5,-159.78 117.5,-151.2"/>
|
|
139
|
-
<polygon fill="black" stroke="black" points="121,-151.49 117.5,-141.49 114,-151.49 121,-151.49"/>
|
|
140
|
-
</g>
|
|
141
|
-
<!-- Disclose->Memory -->
|
|
142
|
-
<g id="edge11" class="edge">
|
|
143
|
-
<title>Disclose->Memory</title>
|
|
144
|
-
<path fill="none" stroke="black" d="M102.87,-99.59C94.92,-89.15 84.85,-75.91 75.53,-63.67"/>
|
|
145
|
-
<polygon fill="black" stroke="black" points="78.37,-61.62 69.53,-55.78 72.8,-65.86 78.37,-61.62"/>
|
|
146
|
-
<text xml:space="preserve" text-anchor="middle" x="122.93" y="-74.46" font-family="Times,serif" font-size="8.00">remember disclosure</text>
|
|
145
|
+
<!-- Rep->AI -->
|
|
146
|
+
<g id="edge9" class="edge">
|
|
147
|
+
<title>Rep->AI</title>
|
|
148
|
+
<path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M867.84,-36.49C842.58,-28.83 809.42,-20.07 779.25,-16.19 609.87,5.62 564.45,5.09 395,-16.19 367.6,-19.63 337.77,-26.9 313.29,-33.84"/>
|
|
149
|
+
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="312.63,-31.11 305.73,-36.03 314.19,-36.49 312.63,-31.11"/>
|
|
150
|
+
<text xml:space="preserve" text-anchor="middle" x="588.75" y="-2.92" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">lesson → next hunt</text>
|
|
147
151
|
</g>
|
|
148
152
|
</g>
|
|
149
153
|
</svg>
|
|
Binary file
|
|
Binary file
|
data/documentation/pwn-REPL.md
CHANGED
|
@@ -1,33 +1,49 @@
|
|
|
1
|
-
# The pwn REPL
|
|
1
|
+
# The `pwn` REPL
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`pwn` launches a **Pry** session with the entire `PWN::` namespace already
|
|
4
|
+
`require`d, a themed prompt, a persistent history file, and a set of custom
|
|
5
|
+
commands.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+

|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
pwn
|
|
9
|
-
pwn[v0.5.613]:001 >>>
|
|
10
|
-
```
|
|
9
|
+
## Why Pry (not IRB)?
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
- `ls PWN::Plugins::BurpSuite` — instant method listing
|
|
12
|
+
- `show-source` / `show-doc` — read any plugin without leaving the shell
|
|
13
|
+
- `edit -m` — patch a method live and retry
|
|
14
|
+
- `wtf?` — full backtrace of the last exception
|
|
15
|
+
- `history --replay 5..12` — re-run a range of lines
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
- Tab completion for classes and methods.
|
|
16
|
-
- Multi-line support.
|
|
17
|
-
- Easy prototyping of security workflows.
|
|
18
|
-
- `PWN.help` and inspection of any object.
|
|
17
|
+
## Custom commands
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
| Command | Implemented in | Purpose |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `pwn-ai` | `Agent::Loop` | Enter the AI agent TUI |
|
|
22
|
+
| `pwn-asm` | `Plugins::Assembly` | Multiline asm ↔ opcodes workbench |
|
|
23
|
+
| `pwn-ai-memory` | `PWN::Memory` | View/edit persistent memory |
|
|
24
|
+
| `pwn-ai-sessions` | `PWN::Sessions` | List/view/delete transcripts |
|
|
25
|
+
| `pwn-ai-cron` | `PWN::Cron` | List/run/toggle scheduled jobs |
|
|
26
|
+
| `pwn-ai-delegate` | `Agent::Swarm` | Send one request to a persona |
|
|
27
|
+
| `welcome-banner` | `PWN::Banner` | Redraw a random banner |
|
|
28
|
+
| `toggle-pager` | Pry | Page long output on/off |
|
|
21
29
|
|
|
22
|
-
|
|
23
|
-
pwn[v0.5.613]:001 >>> PWN::Plugins.constants.sort
|
|
24
|
-
pwn[v0.5.613]:001 >>> PWN::Plugins::BurpSuite.methods(false).sort
|
|
25
|
-
pwn[v0.5.613]:001 >>> PWN::SAST.constants
|
|
26
|
-
pwn[v0.5.613]:001 >>> pwn-ai
|
|
27
|
-
```
|
|
30
|
+
## Multi-line input
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
- [pwn-ai Agent](pwn-ai-Agent.md) — the killer feature inside the REPL
|
|
31
|
-
- [General Usage](General-PWN-Usage.md)
|
|
32
|
+
`pwn-ai` and `pwn-asm` use a custom `PWNMultiLineInput` reader:
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
- **SHIFT + ENTER** → insert newline
|
|
35
|
+
- **ENTER** → submit
|
|
36
|
+
|
|
37
|
+
> **tmux users:** requires `set -s extended-keys on` **and**
|
|
38
|
+
> `set -as terminal-features '<outerTERM>*:extkeys'` — see
|
|
39
|
+
> [Troubleshooting](Troubleshooting.md#shiftenter-submits-instead-of-newline).
|
|
40
|
+
|
|
41
|
+
## History → Driver
|
|
42
|
+
|
|
43
|
+
`~/.pwn_history` captures every line you type. When a sequence works, turn it
|
|
44
|
+
into a shipped `bin/pwn_*` driver — see
|
|
45
|
+
[From REPL History to Driver](Drivers.md).
|
|
46
|
+
|
|
47
|
+
**Next:** [pwn-ai Agent](pwn-ai-Agent.md) · [CLI Drivers](CLI-Drivers.md)
|
|
48
|
+
|
|
49
|
+
[← Home](Home.md)
|
|
@@ -1,43 +1,72 @@
|
|
|
1
|
-
# pwn-ai Autonomous Agent
|
|
1
|
+
# `pwn-ai` — The Autonomous Agent
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`pwn-ai` is a natural-language front end to everything in `PWN::`. You describe
|
|
4
|
+
the goal; the agent plans a sequence of tool calls (`pwn_eval`, `shell`,
|
|
5
|
+
`memory_*`, `skill_*`, `extro_*`, `agent_*`, …), executes them against the live
|
|
6
|
+
process, observes the results, and loops until it can give you a final answer.
|
|
4
7
|
|
|
5
|
-
##
|
|
8
|
+
## Two ways to run it
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
# 1. Interactive TUI (inside the pwn REPL)
|
|
12
|
+
pwn[v0.5.616]:001 >>> pwn-ai
|
|
13
|
+
✨ pwn-ai · anthropic · session 20260707_220802_3f39791f
|
|
14
|
+
> Use NmapIt to sweep 10.0.0.0/24, then TransparentBrowser via Burp on any
|
|
15
|
+
host with 443 open, active-scan, and give me a Reports::SAST summary.
|
|
16
|
+
```
|
|
6
17
|
|
|
7
18
|
```bash
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
>
|
|
19
|
+
# 2. Headless one-shot (CI-friendly)
|
|
20
|
+
$ pwn --ai "run bin/pwn_sast against ./src and push findings to DefectDojo"
|
|
11
21
|
```
|
|
12
22
|
|
|
13
|
-
##
|
|
23
|
+
## Anatomy of a turn
|
|
14
24
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- Persistent context across interactions via memory and skills.
|
|
25
|
+
1. **PromptBuilder** assembles the system prompt: your request + MEMORY block +
|
|
26
|
+
SKILLS list + LEARNING stats + EXTROSPECTION block.
|
|
27
|
+
2. **Loop** sends it to the active `PWN::AI::<Engine>` client.
|
|
28
|
+
3. Provider replies with `tool_calls` → **Dispatch** executes each one via the
|
|
29
|
+
[Registry](Agent-Tool-Registry.md), **Metrics** records duration/success.
|
|
30
|
+
4. Results are appended to the message list; go to 2.
|
|
31
|
+
5. When the reply has *no* tool_calls it's the **final answer** →
|
|
32
|
+
`Learning.auto_reflect` and `Extrospection.auto_extrospect` fire (if
|
|
33
|
+
enabled), transcript is flushed to `~/.pwn/sessions/`.
|
|
25
34
|
|
|
26
|
-
|
|
35
|
+

|
|
36
|
+
|
|
37
|
+
## What the agent can call
|
|
38
|
+
|
|
39
|
+
10 toolsets · 45+ tools — full table at
|
|
40
|
+
[Agent Tool Registry](Agent-Tool-Registry.md).
|
|
27
41
|
|
|
28
|
-
|
|
29
|
-
- `ENTER` submits the prompt.
|
|
30
|
-
- Type `back` or `exit` to return to normal REPL.
|
|
31
|
-
- Example prompt:
|
|
32
|
-
```
|
|
33
|
-
Scan https://target with NmapIt + TransparentBrowser (via BurpSuite),
|
|
34
|
-
run relevant SAST if source present, exploit any findings, generate report.
|
|
35
|
-
```
|
|
42
|
+
The two that matter most:
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
| Tool | Reach |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `pwn_eval` | **Any** Ruby in-process — the whole `PWN::` namespace, `require`, monkey-patch, everything |
|
|
47
|
+
| `shell` | **Any** OS command on the host |
|
|
48
|
+
|
|
49
|
+
Everything else (memory, skills, learning, extrospection, cron, swarm,
|
|
50
|
+
sessions, metrics) is a convenience wrapper the model can discover from the
|
|
51
|
+
schema alone.
|
|
52
|
+
|
|
53
|
+
## Delegating to other agents
|
|
54
|
+
|
|
55
|
+
`agent_ask`, `agent_debate`, `agent_broadcast` spin up **sub-agents** (each a
|
|
56
|
+
full `Loop.run` under a persona overlay) that share a JSONL bus. See
|
|
57
|
+
[Swarm](Swarm.md).
|
|
58
|
+
|
|
59
|
+
## Tips
|
|
38
60
|
|
|
39
|
-
|
|
61
|
+
- SHIFT+ENTER = newline, ENTER = submit.
|
|
62
|
+
- `back` / `exit` returns to the plain REPL.
|
|
63
|
+
- Set `ai.agent.max_iters` in `~/.pwn/config.yml` if long tasks get truncated.
|
|
64
|
+
- Disable `auto_reflect` during noisy fuzz loops
|
|
65
|
+
(`learning_auto_reflect_toggle(enabled: false)`), re-enable for the summary
|
|
66
|
+
turn.
|
|
40
67
|
|
|
41
|
-
See also [AI Integration](AI-Integration.md)
|
|
68
|
+
**See also:** [AI Integration](AI-Integration.md) ·
|
|
69
|
+
[Skills, Memory & Learning](Skills-Memory-Learning.md) ·
|
|
70
|
+
[Extrospection](Extrospection.md) · [Swarm](Swarm.md) · [Cron](Cron.md)
|
|
42
71
|
|
|
43
|
-
[
|
|
72
|
+
[← Home](Home.md)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/git_commit.sh
CHANGED
|
@@ -37,7 +37,7 @@ if (( $# == 3 )); then
|
|
|
37
37
|
fi
|
|
38
38
|
|
|
39
39
|
# Generate RDoc JSONL for fine-tunning LLMs
|
|
40
|
-
|
|
40
|
+
pwn_rdoc_to_jsonl --rdoc-root-dir '/opt/pwn/rdoc/PWN' --jsonl-results '/opt/pwn/third_party/pwn_rdoc.jsonl'
|
|
41
41
|
|
|
42
42
|
# Tag for every 100 commits (i.e. 0.1.100, 0.1.200, etc)
|
|
43
43
|
tag_this_version_bool=`ruby -r 'pwn' -e 'if (PWN::VERSION.split(".")[-1].to_i + 1) % 100 == 0; then print true; else print false; end'`
|
|
@@ -35,7 +35,7 @@ module PWN
|
|
|
35
35
|
raise "ERROR: Unsupported type parameter value '#{type}'. Supported values are :opcodes_to_asm and :asm_to_opcodes."
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
PWN::AI::Introspection.reflect_on(
|
|
38
|
+
PWN::AI::Agent::Introspection.reflect_on(
|
|
39
39
|
system_role_content: system_role_content,
|
|
40
40
|
request: request,
|
|
41
41
|
suppress_pii_warning: true
|
data/lib/pwn/ai/agent/btc.rb
CHANGED
|
@@ -16,7 +16,7 @@ module PWN
|
|
|
16
16
|
|
|
17
17
|
system_role_content = 'Provide a useful summary of this latest bitcoin block returned from a bitcoin node via getblockchaininfo.'
|
|
18
18
|
|
|
19
|
-
PWN::AI::Introspection.reflect_on(
|
|
19
|
+
PWN::AI::Agent::Introspection.reflect_on(
|
|
20
20
|
system_role_content: system_role_content,
|
|
21
21
|
request: request,
|
|
22
22
|
suppress_pii_warning: true
|
|
@@ -50,7 +50,7 @@ module PWN
|
|
|
50
50
|
Analyze provided HTTP request/response pairs methodically: Start with a high-level overview, then dive into specifics, flag potential issues with evidence from the traffic, and end with PoC if applicable. Be verbose in reasoning but concise in output. Prioritize high-severity findings. If data is incomplete, request clarifications. If analyzing a JavaScript source map file (i.e. .js.map), focus on deobfuscating and identifying any potentially vulnerable code patterns, especially those that could lead to client-side vulnerabilities like DOM XSS, prototype pollution, or insecure deserialization. Look for patterns such as eval, document.write, innerHTML assignments, and event handlers that could be influenced by user input. Provide detailed analysis and PoCs if vulnerabilities are identified.
|
|
51
51
|
'
|
|
52
52
|
|
|
53
|
-
PWN::AI::Introspection.reflect_on(
|
|
53
|
+
PWN::AI::Agent::Introspection.reflect_on(
|
|
54
54
|
system_role_content: system_role_content,
|
|
55
55
|
request: request,
|
|
56
56
|
suppress_pii_warning: true
|