pwn 0.4.576 → 0.4.577

Sign up to get free protection for your applications and to get access to all the features.
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