pwn 0.4.389 → 0.4.390

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -2
  3. data/README.md +2 -2
  4. data/bin/pwn +42 -21
  5. data/lib/pwn/version.rb +1 -1
  6. metadata +1 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8be720b98ca6c0e032826960b6635f881cec7eddc7880f39d3fe203c8f3f0bca
4
- data.tar.gz: 51890215c46c839580f6b204d563a13ef71c95cfc979152e5e282c6c781b3426
3
+ metadata.gz: 1980f14b63483ec6b681ecbe3c97b18acfe587b73a3bb94cc08a6ff6cc9a940e
4
+ data.tar.gz: b8aedccf9888c441752213c20cf93281755c4e01a0e3902c7b00a5d1c57eeaf1
5
5
  SHA512:
6
- metadata.gz: 94187e08a130c04bc15ff89ddffb84b1bcd5c493b19c3b45fd18954953feb9c0ab6a6ac59b71ddf01b50a2cf1c2b9c2433c2db2870c65d8cbe5a6c218207e143
7
- data.tar.gz: 3a737824290a898e8655308d3d5f0278bc3f3faa3abf078ea331e995aed380871033d1219c9907b2055c5611a1815496373a98bf7ccc15abc69a8e9427b482d1
6
+ metadata.gz: ba09da802442ca21edf0ce271dbc68a81e30fa410e01c8d85f6c54e9dcc068702314d69215d048f87b26ba20d0cd886d8268c42f384dbaac3c6084c66932bd57
7
+ data.tar.gz: eb03adcd9751694fca6fe5023c3000ed1ec88158bf8236dc0a271a8e8bbe0deb3c95448b88c9babdddb916dcb5ee16111c689ccb065381030709e5b0dddcd48a
data/Gemfile CHANGED
@@ -16,7 +16,6 @@ gem 'anemone', '0.7.2'
16
16
  gem 'authy', '3.0.0'
17
17
  gem 'aws-sdk', '3.1.0'
18
18
  gem 'bettercap', '1.6.2'
19
- gem 'bond', '0.5.1'
20
19
  gem 'brakeman', '5.2.1'
21
20
  gem 'bson', '4.14.1'
22
21
  gem 'bundler', '>=2.3.10'
@@ -48,7 +47,6 @@ gem 'packetfu', '1.1.13'
48
47
  gem 'pdf-reader', '2.9.2'
49
48
  gem 'pg', '1.3.5'
50
49
  gem 'pry', '0.14.1'
51
- gem 'pry-bond', '0.0.1'
52
50
  gem 'pry-doc', '1.3.0'
53
51
  gem 'rake', '13.0.6'
54
52
  gem 'rb-readline', '0.5.5'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.1.1@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.389]:001 >>> PWN.help
40
+ pwn[v0.4.390]: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.1@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.389]:001 >>> PWN.help
55
+ pwn[v0.4.390]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
data/bin/pwn CHANGED
@@ -3,13 +3,14 @@
3
3
 
4
4
  require 'pwn'
5
5
  require 'pry'
6
- require 'bond'
7
- require 'pry/bond'
8
6
  require 'tty-prompt'
9
7
  require 'tty-reader'
10
8
 
11
9
  begin
12
- # TODO: Remove once this feature is available in mainline
10
+ class LineCount
11
+ attr_accessor :total
12
+ end
13
+
13
14
  class Pry
14
15
  # Overwrite Pry::History.push method in History class to get duplicate history entries
15
16
  # in order to properly replay automation in this prototyping driver
@@ -36,12 +37,15 @@ begin
36
37
  end
37
38
  end
38
39
 
39
- cli = Pry
40
+ prompt = TTY::Prompt.new
41
+ reader = TTY::Reader.new
40
42
 
41
- cli.config.hooks.add_hook(:before_eval, :autocomplete) do
42
- prompt = TTY::Prompt.new
43
- reader = TTY::Reader.new
44
- reader.on(:keypress) { |key_event| prompt(key_event) }
43
+ cli = Pry
44
+ cli.config.hooks.add_hook(:before_eval, :autocomplete) do |output, _binding, _pry|
45
+ reader.on(:keypress) do |key_event|
46
+ output.puts "Key: #{key_event.inspect}"
47
+ prompt.select('', key_event)
48
+ end
45
49
  end
46
50
 
47
51
  cli::Commands.create_command 'toggle-pager' do
@@ -55,22 +59,39 @@ begin
55
59
  # Custom Main & Wait (Multi-Line) Prompts
56
60
  title = "\001\e[1m\002\001\e[31m\002pwn\001\e[0m\002" # Bold Red
57
61
  version = "\001\e[36m\002v#{PWN::VERSION}\001\e[0m\002" # Cyan
62
+ @line_count = LineCount.new
63
+ @line_count.total = 0
58
64
  arrow = "\001\e[32m\002>>>\001\e[0m\002" # Green
59
65
  splat = "\001\e[33m\002***\001\e[0m\002" # Yellow
60
66
 
61
- prompt = [
62
- proc do |_target_self, _nest_level, pry|
63
- line_pad = format('%0.3d', pry.input_ring.size)
64
- line_count = "\001\e[34m\002#{line_pad}\001\e[0m\002" # Blue
65
- "#{title}[#{version}]:#{line_count} #{arrow} ".to_s.scrub
66
- end,
67
- proc do |_target_self, _nest_level, pry|
68
- line_pad = format('%0.3d', pry.input_ring.size)
69
- line_count = "\001\e[34m\002#{line_pad}\001\e[0m\002" # Blue
70
- "#{title}[#{version}]:#{line_count} #{splat} ".to_s.scrub
71
- end
72
- ]
73
- cli.start(self, prompt: Pry::Prompt.new(:pwn, 'PWN_PROTOTYPING_DRIVER', prompt))
67
+ # arrow_ps1_proc = proc do |_target_self, _nest_level, _pry|
68
+ arrow_ps1_proc = proc do
69
+ @line_count.total += 1
70
+ line_pad = format('%0.3d', @line_count.total)
71
+ line_count = "\001\e[34m\002#{line_pad}\001\e[0m\002" # Blue
72
+ "#{title}[#{version}]:#{line_count} #{arrow} ".to_s.scrub
73
+ end
74
+
75
+ # splat_ps1_proc = proc do |_target_self, _nest_level, _pry|
76
+ splat_ps1_proc = proc do
77
+ @line_count.total += 1
78
+ line_pad = format('%0.3d', @line_count.total)
79
+ line_count = "\001\e[34m\002#{line_pad}\001\e[0m\002" # Blue
80
+ "#{title}[#{version}]:#{line_count} #{splat} ".to_s.scrub
81
+ end
82
+
83
+ prompt_ps1 = [arrow_ps1_proc, splat_ps1_proc]
84
+
85
+ pwn_prompt = Pry::Prompt.new(
86
+ :pwn,
87
+ 'PWN_PROTOTYPING_DRIVER',
88
+ prompt_ps1
89
+ )
90
+
91
+ cli.start(
92
+ self,
93
+ prompt: pwn_prompt
94
+ )
74
95
  rescue StandardError => e
75
96
  raise e
76
97
  end
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.389'
4
+ VERSION = '0.4.390'
5
5
  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.4.389
4
+ version: 0.4.390
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.6.2
83
- - !ruby/object:Gem::Dependency
84
- name: bond
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 0.5.1
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 0.5.1
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: brakeman
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -500,20 +486,6 @@ dependencies:
500
486
  - - '='
501
487
  - !ruby/object:Gem::Version
502
488
  version: 0.14.1
503
- - !ruby/object:Gem::Dependency
504
- name: pry-bond
505
- requirement: !ruby/object:Gem::Requirement
506
- requirements:
507
- - - '='
508
- - !ruby/object:Gem::Version
509
- version: 0.0.1
510
- type: :runtime
511
- prerelease: false
512
- version_requirements: !ruby/object:Gem::Requirement
513
- requirements:
514
- - - '='
515
- - !ruby/object:Gem::Version
516
- version: 0.0.1
517
489
  - !ruby/object:Gem::Dependency
518
490
  name: pry-doc
519
491
  requirement: !ruby/object:Gem::Requirement