pwn 0.5.792 → 0.5.793
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 +4 -4
- data/Gemfile +1 -1
- data/lib/pwn/plugins/yubikey/piv.rb +18 -1
- data/lib/pwn/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ad2a2e3fe7efc1387b2e1e74af3eb75a7f843fa48f6256e86670ffde794f091d
|
|
4
|
+
data.tar.gz: b48527c558f948fc39b09c8ac03a6fe90ef4be80ea042dcbe77c4f33cce00a08
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '08697b10f3966be151cca3d55d72f0c852256989bcbeb7ee3887a160d231e7463ea140e0498562783a052f05a802e35f028362e918fe2b50220a0f9f2d55e9de'
|
|
7
|
+
data.tar.gz: 0a88ece3b27161c451ddae0e20e9d6edf90328f66f0027abce7bc502117b7f999aa1b5361e423b9630c950d463ed4aa5bb4283225c9e6748256eaae6a9a58c51
|
data/Gemfile
CHANGED
|
@@ -482,11 +482,28 @@ module PWN
|
|
|
482
482
|
options['rsa_mgf1_md'] = @opts.fetch(:mgf1_hash, digest)
|
|
483
483
|
options['rsa_oaep_label'] = @opts[:label].b.unpack1('H*') if @opts[:label]
|
|
484
484
|
end
|
|
485
|
-
dummy.decrypt(wrapped, options)
|
|
485
|
+
message = dummy.decrypt(wrapped, options)
|
|
486
|
+
# OpenSSL 3 may return random bytes instead of raising when PKCS1
|
|
487
|
+
# padding is invalid. Never treat that as plaintext.
|
|
488
|
+
if padding == :pkcs1
|
|
489
|
+
verified = pkcs1_unpad(padded)
|
|
490
|
+
raise ResponseError, 'RSA decryption failed' unless verified == message
|
|
491
|
+
end
|
|
492
|
+
message
|
|
486
493
|
rescue OpenSSL::OpenSSLError
|
|
487
494
|
raise ResponseError, 'RSA decryption failed', cause: nil
|
|
488
495
|
end
|
|
489
496
|
|
|
497
|
+
def pkcs1_unpad(padded)
|
|
498
|
+
bytes = padded.b.bytes
|
|
499
|
+
tail = bytes[2..] || []
|
|
500
|
+
found = tail.index(0)
|
|
501
|
+
separator = found.nil? ? nil : found + 2
|
|
502
|
+
raise ResponseError, 'RSA decryption failed' unless bytes[0].zero? && bytes[1] == 2 && separator && separator >= 10
|
|
503
|
+
|
|
504
|
+
padded.b.byteslice(separator + 1, padded.bytesize - separator - 1)
|
|
505
|
+
end
|
|
506
|
+
|
|
490
507
|
def calculate_secret(identifier, peer)
|
|
491
508
|
selected = slot(identifier)
|
|
492
509
|
public_part = parse_key(peer)
|
data/lib/pwn/version.rb
CHANGED
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.
|
|
4
|
+
version: 0.5.793
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
@@ -547,14 +547,14 @@ dependencies:
|
|
|
547
547
|
requirements:
|
|
548
548
|
- - '='
|
|
549
549
|
- !ruby/object:Gem::Version
|
|
550
|
-
version: 2.26.
|
|
550
|
+
version: 2.26.1
|
|
551
551
|
type: :runtime
|
|
552
552
|
prerelease: false
|
|
553
553
|
version_requirements: !ruby/object:Gem::Requirement
|
|
554
554
|
requirements:
|
|
555
555
|
- - '='
|
|
556
556
|
- !ruby/object:Gem::Version
|
|
557
|
-
version: 2.26.
|
|
557
|
+
version: 2.26.1
|
|
558
558
|
- !ruby/object:Gem::Dependency
|
|
559
559
|
name: msfrpc-client
|
|
560
560
|
requirement: !ruby/object:Gem::Requirement
|