pwn 0.4.576 → 0.4.577

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: fad1d346e883ab5b4ffc291b9317e05c60137eb77341557dc01802c281316be6
4
- data.tar.gz: b368b3e029452db240d813b6c8bf93ec2ad618072672dc01b017eaa3b17ca238
3
+ metadata.gz: 82b40d0807c2179cfcf55eb8f0a39ca8b70c1ad829509cbe20df80e49c48ca2b
4
+ data.tar.gz: 3e37e2e01a9473884cc9c7c5180040378170d74e9b80e982a2620c419403ee78
5
5
  SHA512:
6
- metadata.gz: 39e5cf270589ed81bbaccba6b2e26968a6062db2930bdd73e38badadc24ab659da38ef388cbdd21cac72d62970614155b9ebd0f3051c0d0c935ef2d1c550d205
7
- data.tar.gz: 95c66d184ae2e824e93faa4bb5a81df1b9589675ee4275a2286547e6d4630465f4debb56a3e27f600190799d473b39bedc0e312c7ad4968739e32dc5ede378d3
6
+ metadata.gz: fe3e01924bdfa8ad543f2c0a62f7f08333a92e2ed4e81d69865cde205d65a92db0e328b6022ab1d6eee39cf951643711dabd3899dce92efcd97d5e2995227fb0
7
+ data.tar.gz: c4e37f4a41b60f332dc25deb4e96d4c4b04e518ac3083ca9e3eff5c8036c370597a3bbe48def228a42d89da199e298ce3d7f9eea0e6bf267a114b9d91bc99599
data/Gemfile CHANGED
@@ -18,9 +18,9 @@ gem 'aws-sdk', '3.1.0'
18
18
  gem 'bettercap', '1.6.2'
19
19
  gem 'brakeman', '5.4.0'
20
20
  gem 'bson', '4.15.0'
21
- gem 'bundler', '>=2.3.26'
21
+ gem 'bundler', '>=2.4.1'
22
22
  gem 'bundler-audit', '0.9.1'
23
- gem 'bunny', '2.19.0'
23
+ gem 'bunny', '2.20.1'
24
24
  gem 'colorize', '0.8.1'
25
25
  gem 'credit_card_validations', '6.0.0'
26
26
  gem 'eventmachine', '1.2.7'
@@ -34,7 +34,7 @@ gem 'ipaddress', '0.8.3'
34
34
  gem 'js-beautify', '0.1.8'
35
35
  gem 'json', '2.6.3'
36
36
  gem 'jsonpath', '1.1.2'
37
- gem 'jwt', '2.5.0'
37
+ gem 'jwt', '2.6.0'
38
38
  gem 'luhn', '1.0.2'
39
39
  gem 'mail', '2.8.0'
40
40
  gem 'mongo', '2.18.2'
@@ -60,24 +60,24 @@ gem 'rex', '2.0.13'
60
60
  gem 'rmagick', '5.1.0'
61
61
  gem 'rspec', '3.12.0'
62
62
  gem 'rtesseract', '3.1.2'
63
- gem 'rubocop', '1.40.0'
63
+ gem 'rubocop', '1.41.1'
64
64
  gem 'rubocop-rake', '0.6.0'
65
65
  gem 'rubocop-rspec', '2.16.0'
66
66
  gem 'ruby-audio', '1.6.1'
67
67
  gem 'ruby-nmap', '1.0.1'
68
68
  gem 'ruby-saml', '1.14.0'
69
69
  gem 'rvm', '1.11.3.9'
70
- gem 'savon', '2.13.1'
70
+ gem 'savon', '2.14.0'
71
71
  gem 'selenium-devtools', '0.108.0'
72
72
  gem 'serialport', '1.3.2'
73
- gem 'sinatra', '3.0.4'
73
+ gem 'sinatra', '3.0.5'
74
74
  gem 'slack-ruby-client', '2.0.0'
75
75
  gem 'socksify', '1.7.1'
76
76
  gem 'spreadsheet', '1.3.0'
77
77
  gem 'sqlite3', '1.5.4'
78
78
  gem 'thin', '1.8.1'
79
79
  gem 'tty-prompt', '0.23.1'
80
- gem 'watir', '7.1.0'
80
+ gem 'watir', '7.2.0'
81
81
  gem 'waveform', '0.1.2'
82
82
  gem 'webrick', '1.7.0'
83
83
  gem 'whois', '5.1.0'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.1.3@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.576]:001 >>> PWN.help
40
+ pwn[v0.4.577]: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-3.1.3@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.576]:001 >>> PWN.help
55
+ pwn[v0.4.577]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -0,0 +1,145 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ module PWN
6
+ module Plugins
7
+ # This plugin is used for interacting w/ OpenAI's REST API using
8
+ # the 'rest' browser type of PWN::Plugins::TransparentBrowser.
9
+ # This is based on the following OpenAI API Specification:
10
+ # https://developer.shodan.io/api
11
+ module OpenAI
12
+ @@logger = PWN::Plugins::PWNLogger.create
13
+
14
+ # Supported Method Parameters::
15
+ # open_ai_rest_call(
16
+ # token: 'required - open_ai bearer token',
17
+ # http_method: 'optional HTTP method (defaults to GET)
18
+ # rest_call: 'required rest call to make per the schema',
19
+ # params: 'optional params passed in the URI or HTTP Headers',
20
+ # http_body: 'optional HTTP body sent in HTTP methods that support it e.g. POST'
21
+ # )
22
+
23
+ private_class_method def self.open_ai_rest_call(opts = {})
24
+ http_method = if opts[:http_method].nil?
25
+ :get
26
+ else
27
+ opts[:http_method].to_s.scrub.to_sym
28
+ end
29
+ rest_call = opts[:rest_call].to_s.scrub
30
+ params = opts[:params]
31
+ http_body = opts[:http_body].to_s.scrub
32
+ base_open_ai_api_uri = 'https://api.openai.com/v1'
33
+ token = opts[:token]
34
+
35
+ rest_client = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)::Request
36
+
37
+ case http_method
38
+ when :get
39
+ response = rest_client.execute(
40
+ method: :get,
41
+ url: "#{base_open_ai_api_uri}/#{rest_call}",
42
+ headers: {
43
+ content_type: 'application/json; charset=UTF-8',
44
+ authorization: "Bearer #{token}",
45
+ params: params
46
+ },
47
+ verify_ssl: false
48
+ )
49
+
50
+ when :post
51
+ response = rest_client.execute(
52
+ method: :post,
53
+ url: "#{base_open_ai_api_uri}/#{rest_call}",
54
+ headers: {
55
+ content_type: 'application/json; charset=UTF-8',
56
+ authorization: "Bearer #{token}"
57
+ },
58
+ payload: http_body,
59
+ verify_ssl: false
60
+ )
61
+
62
+ else
63
+ raise @@logger.error("Unsupported HTTP Method #{http_method} for #{self} Plugin")
64
+ end
65
+ response
66
+ rescue StandardError => e
67
+ case e.message
68
+ when '400 Bad Request', '404 Resource Not Found'
69
+ "#{e.message}: #{e.response}"
70
+ else
71
+ raise e
72
+ end
73
+ end
74
+
75
+ # Supported Method Parameters::
76
+ # response = PWN::Plugins::OpenAI.get_models(
77
+ # token: 'required - Bearer token',
78
+ # )
79
+
80
+ public_class_method def self.get_models(opts = {})
81
+ token = opts[:token]
82
+
83
+ response = open_ai_rest_call(
84
+ http_method: :post,
85
+ token: token,
86
+ rest_call: 'models'
87
+ )
88
+
89
+ JSON.parse(response, symbolize_names: true)
90
+ rescue StandardError => e
91
+ raise e
92
+ end
93
+
94
+ # Supported Method Parameters::
95
+ # response = PWN::Plugins::OpenAI.chat_gpt(
96
+ # token: 'required - Bearer token',
97
+ # request: 'required - message to ChatGPT'
98
+ # )
99
+
100
+ public_class_method def self.chat_gpt(opts = {})
101
+ token = opts[:token]
102
+ request = opts[:request]
103
+
104
+ http_body = {
105
+ model: 'text-davinci-003',
106
+ prompt: request,
107
+ temperature: 0,
108
+ max_tokens: 1024
109
+ }
110
+
111
+ response = open_ai_rest_call(
112
+ http_method: :post,
113
+ token: token,
114
+ rest_call: 'completions',
115
+ http_body: http_body.to_json
116
+ )
117
+
118
+ JSON.parse(response, symbolize_names: true)
119
+ rescue StandardError => e
120
+ raise e
121
+ end
122
+
123
+ # Author(s):: 0day Inc. <request.pentest@0dayinc.com>
124
+
125
+ public_class_method def self.authors
126
+ "AUTHOR(S):
127
+ 0day Inc. <request.pentest@0dayinc.com>
128
+ "
129
+ end
130
+
131
+ # Display Usage for this Module
132
+
133
+ public_class_method def self.help
134
+ puts "USAGE:
135
+ response #{self}.chat_gpt(
136
+ token: 'required - Bearer token',
137
+ request: 'required - message to ChatGPT'
138
+ )
139
+
140
+ #{self}.authors
141
+ "
142
+ end
143
+ end
144
+ end
145
+ end
data/lib/pwn/plugins.rb CHANGED
@@ -40,6 +40,7 @@ module PWN
40
40
  autoload :NmapIt, 'pwn/plugins/nmap_it'
41
41
  autoload :OAuth2, 'pwn/plugins/oauth2'
42
42
  autoload :OCR, 'pwn/plugins/ocr'
43
+ autoload :OpenAI, 'pwn/plugins/open_ai'
43
44
  autoload :OpenVAS, 'pwn/plugins/openvas'
44
45
  autoload :OwaspZap, 'pwn/plugins/owasp_zap'
45
46
  autoload :Packet, 'pwn/plugins/packet'
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.4.576'
4
+ VERSION = '0.4.577'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.576
4
+ version: 0.4.577
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-15 00:00:00.000000000 Z
11
+ date: 2022-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 2.3.26
117
+ version: 2.4.1
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 2.3.26
124
+ version: 2.4.1
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler-audit
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 2.19.0
145
+ version: 2.20.1
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 2.19.0
152
+ version: 2.20.1
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: colorize
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -324,14 +324,14 @@ dependencies:
324
324
  requirements:
325
325
  - - '='
326
326
  - !ruby/object:Gem::Version
327
- version: 2.5.0
327
+ version: 2.6.0
328
328
  type: :runtime
329
329
  prerelease: false
330
330
  version_requirements: !ruby/object:Gem::Requirement
331
331
  requirements:
332
332
  - - '='
333
333
  - !ruby/object:Gem::Version
334
- version: 2.5.0
334
+ version: 2.6.0
335
335
  - !ruby/object:Gem::Dependency
336
336
  name: luhn
337
337
  requirement: !ruby/object:Gem::Requirement
@@ -688,14 +688,14 @@ dependencies:
688
688
  requirements:
689
689
  - - '='
690
690
  - !ruby/object:Gem::Version
691
- version: 1.40.0
691
+ version: 1.41.1
692
692
  type: :runtime
693
693
  prerelease: false
694
694
  version_requirements: !ruby/object:Gem::Requirement
695
695
  requirements:
696
696
  - - '='
697
697
  - !ruby/object:Gem::Version
698
- version: 1.40.0
698
+ version: 1.41.1
699
699
  - !ruby/object:Gem::Dependency
700
700
  name: rubocop-rake
701
701
  requirement: !ruby/object:Gem::Requirement
@@ -786,14 +786,14 @@ dependencies:
786
786
  requirements:
787
787
  - - '='
788
788
  - !ruby/object:Gem::Version
789
- version: 2.13.1
789
+ version: 2.14.0
790
790
  type: :runtime
791
791
  prerelease: false
792
792
  version_requirements: !ruby/object:Gem::Requirement
793
793
  requirements:
794
794
  - - '='
795
795
  - !ruby/object:Gem::Version
796
- version: 2.13.1
796
+ version: 2.14.0
797
797
  - !ruby/object:Gem::Dependency
798
798
  name: selenium-devtools
799
799
  requirement: !ruby/object:Gem::Requirement
@@ -828,14 +828,14 @@ dependencies:
828
828
  requirements:
829
829
  - - '='
830
830
  - !ruby/object:Gem::Version
831
- version: 3.0.4
831
+ version: 3.0.5
832
832
  type: :runtime
833
833
  prerelease: false
834
834
  version_requirements: !ruby/object:Gem::Requirement
835
835
  requirements:
836
836
  - - '='
837
837
  - !ruby/object:Gem::Version
838
- version: 3.0.4
838
+ version: 3.0.5
839
839
  - !ruby/object:Gem::Dependency
840
840
  name: slack-ruby-client
841
841
  requirement: !ruby/object:Gem::Requirement
@@ -926,14 +926,14 @@ dependencies:
926
926
  requirements:
927
927
  - - '='
928
928
  - !ruby/object:Gem::Version
929
- version: 7.1.0
929
+ version: 7.2.0
930
930
  type: :runtime
931
931
  prerelease: false
932
932
  version_requirements: !ruby/object:Gem::Requirement
933
933
  requirements:
934
934
  - - '='
935
935
  - !ruby/object:Gem::Version
936
- version: 7.1.0
936
+ version: 7.2.0
937
937
  - !ruby/object:Gem::Dependency
938
938
  name: waveform
939
939
  requirement: !ruby/object:Gem::Requirement
@@ -1592,6 +1592,7 @@ files:
1592
1592
  - lib/pwn/plugins/nmap_it.rb
1593
1593
  - lib/pwn/plugins/oauth2.rb
1594
1594
  - lib/pwn/plugins/ocr.rb
1595
+ - lib/pwn/plugins/open_ai.rb
1595
1596
  - lib/pwn/plugins/openvas.rb
1596
1597
  - lib/pwn/plugins/owasp_zap.rb
1597
1598
  - lib/pwn/plugins/packet.rb