pwn 0.5.561 → 0.5.562

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da1f346a63c2a3b01cdb7ec600e6ae7a727ae4598d271c314282e8277f09a27d
4
- data.tar.gz: 8226717e5181b99a8d2640fc46d97b33d7f9904d01b62f57bb919b42d3b6275b
3
+ metadata.gz: fcfdf05e72d9c3c650d02dfb875519d3a4d95591e1b32227355b316e6fc1a8a6
4
+ data.tar.gz: 1af1dc3a3a01390e7b1ee57a5168ed42f58534b2565ebb94da9df120cd5dc21c
5
5
  SHA512:
6
- metadata.gz: 5b7db3ff61f7a3c57271674712613d8501e10072f0a8442623f1ef9138d36e4444f90c3afd507f0b0946120e4e1c22393a6978c8d0d96c1aaeada080bcea0425
7
- data.tar.gz: b0d75d83a38592831c55a21b5f00fd9a362e2ad1c224afe72f27a9065ca060065b3a5425b82a059c669ca3770e8b61b9abf6454829361750412646ec34d6844b
6
+ metadata.gz: a7344c5b670d5fa5b93e1f93c3a0a79830a7d1f790b8276ebfe9e7de730ab6f06bfccbc8d43ed47827de7d0b5a2df295dde687ee8e4cc5f009e10935f83be4a9
7
+ data.tar.gz: 84d8a15f6eedf53563a3c0261c3c34544afefb195778f70bdfbf9a2db360b8e31e69ae6b747f243e6410715a50d816250655832386f01fa254d824dc9163cbee
data/Gemfile CHANGED
@@ -20,7 +20,7 @@ gem 'base32', '0.3.4'
20
20
  gem 'bitcoin-ruby', '0.0.20'
21
21
  gem 'brakeman', '8.0.4'
22
22
  gem 'bson', '5.2.0'
23
- gem 'bundler', '>=4.0.10'
23
+ gem 'bundler', '>=4.0.11'
24
24
  gem 'bundler-audit', '>=0.9.3'
25
25
  gem 'bunny', '3.1.0'
26
26
  gem 'colorize', '1.1.0'
@@ -49,17 +49,17 @@ gem 'jwt', '3.1.2'
49
49
  gem 'libusb', '0.7.2'
50
50
  gem 'luhn', '3.0.0'
51
51
  gem 'mail', '2.9.0'
52
- gem 'mcp', '0.13.0'
52
+ gem 'mcp', '0.14.0'
53
53
  gem 'meshtastic', '0.0.160'
54
54
  gem 'metasm', '1.0.5'
55
- gem 'mongo', '2.23.0'
55
+ gem 'mongo', '2.24.0'
56
56
  gem 'msfrpc-client', '1.1.2'
57
57
  gem 'netaddr', '2.0.6'
58
58
  gem 'net-ldap', '0.20.0'
59
59
  gem 'net-openvpn', '0.8.7'
60
60
  gem 'net-smtp', '0.5.1'
61
61
  gem 'nexpose', '7.3.0'
62
- gem 'nokogiri', '1.19.2'
62
+ gem 'nokogiri', '1.19.3'
63
63
  gem 'nokogiri-diff', '0.3.0'
64
64
  gem 'oily_png', '1.2.1'
65
65
  gem 'open3', '0.2.1'
@@ -73,7 +73,7 @@ gem 'pry', '0.16.0'
73
73
  gem 'pry-doc', '1.7.0'
74
74
  gem 'rake', '13.4.2'
75
75
  gem 'rb-readline', '0.5.5'
76
- gem 'rbvmomi2', '3.9.0'
76
+ gem 'rbvmomi2', '3.10.0'
77
77
  gem 'rdoc', '7.0.3'
78
78
  gem 'rest-client', '2.1.0'
79
79
  gem 'rex', '2.0.13'
@@ -93,7 +93,7 @@ gem 'selenium-devtools', '0.147.0'
93
93
  gem 'selenium-webdriver', '4.43.0'
94
94
  gem 'slack-ruby-client', '3.1.0'
95
95
  gem 'socksify', '1.8.1'
96
- gem 'spreadsheet', '1.3.4'
96
+ gem 'spreadsheet', '1.3.5'
97
97
  gem 'sqlite3', '2.9.3'
98
98
  gem 'thin', '2.0.1'
99
99
  gem 'tty-prompt', '0.23.1'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
37
37
  $ ./install.sh
38
38
  $ ./install.sh ruby-gem
39
39
  $ pwn
40
- pwn[v0.5.561]:001 >>> PWN.help
40
+ pwn[v0.5.562]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-4.0.1@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.561]:001 >>> PWN.help
55
+ pwn[v0.5.562]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
  If you're using a multi-user install of RVM do:
@@ -62,7 +62,7 @@ $ rvm use ruby-4.0.1@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.561]:001 >>> PWN.help
65
+ pwn[v0.5.562]:001 >>> PWN.help
66
66
  ```
67
67
 
68
68
  PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
@@ -0,0 +1,37 @@
1
+ # Vulnerability Report Template
2
+
3
+ **Program:** [HackerOne Program Name]
4
+ **Report Date:** [YYYY-MM-DD]
5
+ **Severity:** [Critical/High/Medium/Low]
6
+
7
+ ## 1. Detailed finding description with technical depth and PoC when possible
8
+
9
+ [Insert deep technical analysis, affected endpoints, steps to reproduce, PoC code/requests here.]
10
+
11
+ ## 2. Business impact
12
+
13
+ [Business/reputational/financial consequences.]
14
+
15
+ ## 3. Remediation recommendations, including compensating controls / stop gaps
16
+
17
+ [Fix recommendations, WAF rules, logging, etc.]
18
+
19
+ ## 4. CVSS score, vector string, and first.org calculator URI
20
+
21
+ **CVSS v3.1 Score:** X.X (High)
22
+ **Vector:** AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
23
+ **Calculator:** https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
24
+
25
+ ## 5. CWE category, brief description, and CWE URI
26
+
27
+ **CWE-XXX:** [Name] - [Brief desc]
28
+ https://cwe.mitre.org/data/definitions/XXX.html
29
+
30
+ ## 6. Relevant NIST 800-53 control
31
+
32
+ **Control:** [e.g. SI-10, AC-6]
33
+ [Description and how it maps.]
34
+
35
+ ---
36
+
37
+ *Generated with PWN::AI::Agent::VulnGen*
@@ -1,18 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'fileutils'
4
+
3
5
  module PWN
4
6
  module AI
5
7
  module Agent
6
- # This module is an AI agent designed to analyze generic vulnerability descriptions and generate detailed security findings, including business impact, remediation recommendations, CVSS scoring, CWE categorization, and relevant NIST 800-53 controls. It leverages the PWN::AI::Introspection.reflect_on method to process the input request and produce comprehensive markdown-formatted findings.
8
+ # This module is an AI agent designed to analyze generic vulnerability descriptions and generate detailed security findings following the exact bug bounty writeup structure:
9
+ # 1. Detailed finding description with technical depth and PoC when possible
10
+ # 2. Business impact
11
+ # 3. Remediation recommendations, including compensating controls / stop gaps
12
+ # 4. CVSS score, vector string, and first.org calculator URI
13
+ # 5. CWE category, brief description, and CWE URI
14
+ # 6. Relevant NIST 800-53 control
15
+ # It leverages the PWN::AI::Introspection.reflect_on method. Defaults to Jira for existing workflow compatibility.
7
16
  module VulnGen
8
17
  # Supported Method Parameters::
9
18
  # ai_analysis = PWN::AI::Agent::VulnGen.analyze(
10
19
  # request: 'required - high level description of vulnerability discovered (e.g. "Discovered a SQLi vulnerability in /login"',
11
- # markup_type: 'optional - specify the type of markup to generate :jira|:markdown|:html|:confluence|:xml (default: :jira)'
20
+ # markup_type: 'optional - specify the type of markup to generate :jira|:markdown|:html|:confluence|:xml (default: :jira)',
21
+ # output_path: 'optional - path to save the generated markdown report'
12
22
  # )
13
23
 
14
24
  public_class_method def self.analyze(opts = {})
15
25
  request = opts[:request]
26
+ output_path = opts[:output_path]
16
27
  raise 'ERROR: request parameter is required' if request.nil? || request.empty?
17
28
 
18
29
  markup_type = opts[:markup_type] ||= :jira
@@ -34,28 +45,36 @@ module PWN
34
45
  end
35
46
 
36
47
  system_role_content = "
37
- _ALWAYS_ Generate #{markup} security findings for the message provided with the following content:
48
+ _ALWAYS_ Generate #{markup} security findings for the message provided using **EXACTLY** this structure and section headers:
38
49
 
39
- 1. Detailed Finding Description: This should be a deep, detailed technical description that should include exploit proof-of-concepts when possible.
50
+ 1. Detailed Finding Description: This should be a deep, detailed technical description that should include exploit proof-of-concepts when possible. The description should be technical in nature and provide enough information for a security engineer to understand the vulnerability and how it can be exploited. Code snippets should be included where applicable to demonstrate the vulnerability and potential exploit paths.
40
51
 
41
52
  2. Business Impact: This should describe, in business terms, the importance of fixing the issue. Reputational and/or financial impact should be considered for this section.
42
53
 
43
54
  3. Remediation Recommendations: Targeted towards technical engineers that can ascertain a reasonable approach to fix the vulnerability based upon common security remediation patterns. Be sure to consider compensating controls / stop gaps that can be implemented (e.g. WAF, additional logging, etc.) until such time the vulnerability can be fixed. Provide examples in cases where code fixes may be required.
44
55
 
45
- 4. CVSS Score (Severity), Base CVSS Vector string as /AV:`N|L|A|P`/AC:`L|H`/PR:`N|L|H`/UI:`N|R`/S:`U|C`/C:`N|L|H`/I:`N|L|H`/A:`N|L|H`, and first.org CVSS calculator URI as https://www.first.org/cvss/calculator/3-1#CVSS:3.1/AV:`N|L|A|P`/AC:`L|H`/PR:`N|L|H`/UI:`N|R`/S:`U|C`/C:`N|L|H`/I:`N|L|H`/A:`N|L|H`. The Vector string must be formatted like: `/AV:%s/AC:%s/PR:%s/UI:%s/S:%s/C:%s/I:%s/A:%s`. Ensure the score and severity aligns with the vector string calculation.
56
+ 4. CVSS Score (Severity), Base CVSS Vector string as /AV:`N|L|A|P`/AC:`L|H`/PR:`N|L|H`/UI:`N|R`/S:`U|C`/C:`N|L|H`/I:`N|L|H`/A:`N|L|H`, and first.org CVSS calculator URI as https://www.first.org/cvss/calculator/3-1#CVSS:3.1/AV:`N|L|A|P`/AC:`L|H`/PR:`N|L|H`/UI:`N|R`/S:`U|C`/C:`N|L|H`/I:`N|L|H`/A:`N|L|H`. The Vector string must be formatted like: `/AV:%s/AC:%s/PR:%s/UI:%s/S:%s/C:%s/I:%s/A:%s`. _Ensure the CVSS score and severity aligns with the vector string calculation._
46
57
 
47
58
  5. CWE Category, Brief CWE description, and CWE URI
48
59
 
49
60
  6. NIST 800-53 Security Control that is impacted by this vulnerability.
50
61
  "
51
62
 
52
- PWN::AI::Introspection.reflect_on(
63
+ analysis = PWN::AI::Introspection.reflect_on(
53
64
  system_role_content: system_role_content,
54
65
  request: request,
55
66
  suppress_pii_warning: true
56
67
  )
68
+
69
+ if output_path
70
+ FileUtils.mkdir_p(File.dirname(output_path))
71
+ File.write(output_path, analysis.to_s)
72
+ puts "\nVulnerability report written to: #{output_path}"
73
+ end
74
+
75
+ analysis
57
76
  rescue StandardError => e
58
- raise e.backtrace
77
+ raise e
59
78
  end
60
79
 
61
80
  # Author(s):: 0day Inc. <support@0dayinc.com>
@@ -72,7 +91,8 @@ module PWN
72
91
  puts "USAGE:
73
92
  ai_analysis = #{self}.analyze(
74
93
  request: 'required - high level description of vulnerability discovered (e.g. \"Discovered a SQLi vulnerability in /login\"',
75
- markup_type: 'optional - specify the type of markup to generate :jira|:markdown|:html|:confluence|:xml (default: :jira)'
94
+ markup_type: 'optional - specify the type of markup to generate :jira|:markdown|:html|:confluence|:xml (default: :jira)',
95
+ output_path: 'optional - full path to save the generated report as .md (e.g. /home/claw/reports/sqli-finding.md)'
76
96
  )
77
97
 
78
98
  #{self}.authors
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.5.561'
4
+ VERSION = '0.5.562'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.561
4
+ version: 0.5.562
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -141,14 +141,14 @@ dependencies:
141
141
  requirements:
142
142
  - - ">="
143
143
  - !ruby/object:Gem::Version
144
- version: 4.0.10
144
+ version: 4.0.11
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
150
150
  - !ruby/object:Gem::Version
151
- version: 4.0.10
151
+ version: 4.0.11
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: bundler-audit
154
154
  requirement: !ruby/object:Gem::Requirement
@@ -533,14 +533,14 @@ dependencies:
533
533
  requirements:
534
534
  - - '='
535
535
  - !ruby/object:Gem::Version
536
- version: 0.13.0
536
+ version: 0.14.0
537
537
  type: :runtime
538
538
  prerelease: false
539
539
  version_requirements: !ruby/object:Gem::Requirement
540
540
  requirements:
541
541
  - - '='
542
542
  - !ruby/object:Gem::Version
543
- version: 0.13.0
543
+ version: 0.14.0
544
544
  - !ruby/object:Gem::Dependency
545
545
  name: meshtastic
546
546
  requirement: !ruby/object:Gem::Requirement
@@ -575,14 +575,14 @@ dependencies:
575
575
  requirements:
576
576
  - - '='
577
577
  - !ruby/object:Gem::Version
578
- version: 2.23.0
578
+ version: 2.24.0
579
579
  type: :runtime
580
580
  prerelease: false
581
581
  version_requirements: !ruby/object:Gem::Requirement
582
582
  requirements:
583
583
  - - '='
584
584
  - !ruby/object:Gem::Version
585
- version: 2.23.0
585
+ version: 2.24.0
586
586
  - !ruby/object:Gem::Dependency
587
587
  name: msfrpc-client
588
588
  requirement: !ruby/object:Gem::Requirement
@@ -673,14 +673,14 @@ dependencies:
673
673
  requirements:
674
674
  - - '='
675
675
  - !ruby/object:Gem::Version
676
- version: 1.19.2
676
+ version: 1.19.3
677
677
  type: :runtime
678
678
  prerelease: false
679
679
  version_requirements: !ruby/object:Gem::Requirement
680
680
  requirements:
681
681
  - - '='
682
682
  - !ruby/object:Gem::Version
683
- version: 1.19.2
683
+ version: 1.19.3
684
684
  - !ruby/object:Gem::Dependency
685
685
  name: nokogiri-diff
686
686
  requirement: !ruby/object:Gem::Requirement
@@ -869,14 +869,14 @@ dependencies:
869
869
  requirements:
870
870
  - - '='
871
871
  - !ruby/object:Gem::Version
872
- version: 3.9.0
872
+ version: 3.10.0
873
873
  type: :runtime
874
874
  prerelease: false
875
875
  version_requirements: !ruby/object:Gem::Requirement
876
876
  requirements:
877
877
  - - '='
878
878
  - !ruby/object:Gem::Version
879
- version: 3.9.0
879
+ version: 3.10.0
880
880
  - !ruby/object:Gem::Dependency
881
881
  name: rdoc
882
882
  requirement: !ruby/object:Gem::Requirement
@@ -1149,14 +1149,14 @@ dependencies:
1149
1149
  requirements:
1150
1150
  - - '='
1151
1151
  - !ruby/object:Gem::Version
1152
- version: 1.3.4
1152
+ version: 1.3.5
1153
1153
  type: :runtime
1154
1154
  prerelease: false
1155
1155
  version_requirements: !ruby/object:Gem::Requirement
1156
1156
  requirements:
1157
1157
  - - '='
1158
1158
  - !ruby/object:Gem::Version
1159
- version: 1.3.4
1159
+ version: 1.3.5
1160
1160
  - !ruby/object:Gem::Dependency
1161
1161
  name: sqlite3
1162
1162
  requirement: !ruby/object:Gem::Requirement
@@ -1463,6 +1463,7 @@ files:
1463
1463
  - documentation/pwn_wallpaper.jpg
1464
1464
  - documentation/ringing-spectrogram.png
1465
1465
  - documentation/ringing-waveform.png
1466
+ - documentation/vulnerability_report_template.md
1466
1467
  - etc/systemd/msfrpcd.service
1467
1468
  - etc/systemd/openvas.service
1468
1469
  - etc/userland/aws/apache2/jenkins_443.conf
@@ -2483,7 +2484,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2483
2484
  - !ruby/object:Gem::Version
2484
2485
  version: '0'
2485
2486
  requirements: []
2486
- rubygems_version: 4.0.10
2487
+ rubygems_version: 4.0.11
2487
2488
  specification_version: 4
2488
2489
  summary: Automated Security Testing for CI/CD Pipelines & Beyond
2489
2490
  test_files: []