pwn 0.5.704 → 0.5.705

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: 4bd3437e2c7ee97e783659b63d69dd21368ce47a284c29f97b6d8ddd64631134
4
- data.tar.gz: 9e71c1bbabee3abd02f3d4f252fa1eed48854f2c2379b2df914515ed2a593775
3
+ metadata.gz: a46dbcdcfe0fb82880e81cbe531199c9cbcba65da71abf609b392afbfab55356
4
+ data.tar.gz: 49ff3675f07a0fd8f81ce86230ee7651316c772289ec9138a14862a92393f7e5
5
5
  SHA512:
6
- metadata.gz: ffb5ae45ac796c161ab9fa29816c823e1f937404f845a23bf3757d412f82a5ccbe950d93bfe6b1771af1ee8ffefd9b8374fbda07024bec7278195c969a04f0be
7
- data.tar.gz: 649a698b9da06319331c4d3289c603c0907e763f6a4a2a508f6c1a97426a969483fea38766002dbf364830a574cc0b5012d44ae8ea1881303c61acae4eb427b7
6
+ metadata.gz: 14ffb11e8613dcc5d24830514d4efd2ddaf7c584df93671d41843bb42c6d927d62af7703da63e54e8b4fe7d2d0bf91dc76c140b404bced65a87b57b78adfd4a5
7
+ data.tar.gz: abf7797752f082aa8d032fea627a72ceb81e2859672679f9f05898ef68d7ee4463184be9dc94c1ba45c2cada205e859566185d75ce40bac24bd9d4662ec48b4b
data/Gemfile CHANGED
@@ -89,8 +89,8 @@ gem 'ruby-nmap', '1.0.3'
89
89
  gem 'ruby-saml', '1.18.1'
90
90
  gem 'rvm', '1.11.3.9'
91
91
  gem 'savon', '2.17.4'
92
- gem 'selenium-devtools', '0.151.0'
93
- gem 'selenium-webdriver', '4.47.0'
92
+ gem 'selenium-devtools', '0.152.0'
93
+ gem 'selenium-webdriver', '4.48.0'
94
94
  gem 'slack-ruby-client', '3.2.0'
95
95
  gem 'socksify', '1.8.1'
96
96
  gem 'spreadsheet', '1.3.5'
data/lib/pwn/config.rb CHANGED
@@ -819,27 +819,12 @@ module PWN
819
819
  end
820
820
 
821
821
  DEFAULT_SKILLS_DIR = File.expand_path('../../etc/default_skills', __dir__)
822
- DEFAULT_SKILL_NAMES = %w[
823
- vulnerability-research-fundamentals
824
- deep-exploitation
825
- bug-bounty-hunting
826
- sast-code-scans
827
- reverse-engineering-binaries
828
- penetration-testing
829
- web-application-penetration-testing
830
- red-teaming
831
- hardware-and-firmware-testing
832
- social-engineering
833
- osint
834
- cwe
835
- capec
836
- att&ck
837
- ].freeze
838
822
 
839
823
  public_class_method def self.default_skill_names(opts = {})
840
- return DEFAULT_SKILL_NAMES.dup if opts.is_a?(Hash)
841
-
842
- DEFAULT_SKILL_NAMES.dup
824
+ root = opts[:source] || opts[:root] || default_skills_dir
825
+ names = []
826
+ each_skill_md(root: root) { |_path, rel_dir| names << rel_dir }
827
+ names.sort
843
828
  end
844
829
 
845
830
  public_class_method def self.default_skills_dir(opts = {})
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.704'
4
+ VERSION = '0.5.705'
5
5
  end
@@ -71,7 +71,7 @@ RSpec.describe 'PWN::Config / etc/*.EXAMPLE hygiene', :aggregate_failures do
71
71
  expect(PWN::Config).to respond_to(:install_default_skills)
72
72
  expect(PWN::Config).to respond_to(:default_skill_names)
73
73
  names = PWN::Config.default_skill_names
74
- expect(names).to eq %w[
74
+ sops = %w[
75
75
  vulnerability-research-fundamentals
76
76
  deep-exploitation
77
77
  bug-bounty-hunting
@@ -87,9 +87,16 @@ RSpec.describe 'PWN::Config / etc/*.EXAMPLE hygiene', :aggregate_failures do
87
87
  capec
88
88
  att&ck
89
89
  ]
90
+ expect(names).to include(*sops)
91
+ expect(names).to include('pwn/www/youtube')
92
+ expect(names).to include('pwn/plugins/google_workspace')
93
+ expect(names.none? { |n| n.include?('/references/') }).to eq(true)
94
+ expect(names).to eq(names.sort)
95
+ expect(names.length).to be > sops.length
96
+ sop_seeded = names.reject { |n| n == 'pwn' || n.start_with?('pwn/') }
90
97
  seeded = PWN::Config.install_default_skills(pwn_skills_path: dir)
91
- expect(seeded.map { |r| r[:name] }).to match_array(names)
92
- names.each do |name|
98
+ expect(seeded.map { |r| r[:name] }).to match_array(sop_seeded)
99
+ sops.each do |name|
93
100
  path = File.join(dir, name, 'SKILL.md')
94
101
  expect(File.file?(path)).to eq(true), path
95
102
  body = File.read(path)
@@ -157,4 +164,18 @@ RSpec.describe 'PWN::Config / etc/*.EXAMPLE hygiene', :aggregate_failures do
157
164
  PWN.const_set(:Skills, prev.freeze) if prev
158
165
  end
159
166
  end
167
+
168
+ it 'default_skill_names recursively lists SKILL.md dirs under the default_skills tree' do
169
+ Dir.mktmpdir('pwn_skill_names') do |dir|
170
+ FileUtils.mkdir_p(File.join(dir, 'research', 'nested-probe'))
171
+ File.write(File.join(dir, 'research', 'nested-probe', 'SKILL.md'), "# nested\n")
172
+ FileUtils.mkdir_p(File.join(dir, 'osint'))
173
+ File.write(File.join(dir, 'osint', 'SKILL.md'), "# osint\n")
174
+ FileUtils.mkdir_p(File.join(dir, 'osint', 'references'))
175
+ File.write(File.join(dir, 'osint', 'references', 'note.md'), "# note\n")
176
+ FileUtils.mkdir_p(File.join(dir, 'empty-dir'))
177
+ names = PWN::Config.default_skill_names(source: dir)
178
+ expect(names).to eq(%w[osint research/nested-probe])
179
+ end
180
+ end
160
181
  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.704
4
+ version: 0.5.705
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -1051,28 +1051,28 @@ dependencies:
1051
1051
  requirements:
1052
1052
  - - '='
1053
1053
  - !ruby/object:Gem::Version
1054
- version: 0.151.0
1054
+ version: 0.152.0
1055
1055
  type: :runtime
1056
1056
  prerelease: false
1057
1057
  version_requirements: !ruby/object:Gem::Requirement
1058
1058
  requirements:
1059
1059
  - - '='
1060
1060
  - !ruby/object:Gem::Version
1061
- version: 0.151.0
1061
+ version: 0.152.0
1062
1062
  - !ruby/object:Gem::Dependency
1063
1063
  name: selenium-webdriver
1064
1064
  requirement: !ruby/object:Gem::Requirement
1065
1065
  requirements:
1066
1066
  - - '='
1067
1067
  - !ruby/object:Gem::Version
1068
- version: 4.47.0
1068
+ version: 4.48.0
1069
1069
  type: :runtime
1070
1070
  prerelease: false
1071
1071
  version_requirements: !ruby/object:Gem::Requirement
1072
1072
  requirements:
1073
1073
  - - '='
1074
1074
  - !ruby/object:Gem::Version
1075
- version: 4.47.0
1075
+ version: 4.48.0
1076
1076
  - !ruby/object:Gem::Dependency
1077
1077
  name: slack-ruby-client
1078
1078
  requirement: !ruby/object:Gem::Requirement