pwn 0.4.389 → 0.4.393

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 +43 -22
  5. data/lib/pwn/version.rb +1 -1
  6. metadata +2 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8be720b98ca6c0e032826960b6635f881cec7eddc7880f39d3fe203c8f3f0bca
4
- data.tar.gz: 51890215c46c839580f6b204d563a13ef71c95cfc979152e5e282c6c781b3426
3
+ metadata.gz: 9638834cb2c2444a04cd23b17e5c0e187c396a712677dd2f02a0be933b7aea3e
4
+ data.tar.gz: 49240e2aec06df7358db080036c326969112bad268d0fa08a5b36456f1a6559f
5
5
  SHA512:
6
- metadata.gz: 94187e08a130c04bc15ff89ddffb84b1bcd5c493b19c3b45fd18954953feb9c0ab6a6ac59b71ddf01b50a2cf1c2b9c2433c2db2870c65d8cbe5a6c218207e143
7
- data.tar.gz: 3a737824290a898e8655308d3d5f0278bc3f3faa3abf078ea331e995aed380871033d1219c9907b2055c5611a1815496373a98bf7ccc15abc69a8e9427b482d1
6
+ metadata.gz: b9375a72e7962e7945f4f8eff2ca994331617e4f4bb392c620510cf5c303795956c27f0a214712d6bb866478bb14d16fb5de52e434fdbee70094b6c6b99fe791
7
+ data.tar.gz: 33ea8a6147132f1aa1ccea87c94c25718a865628056bb3517d80453ae70a3b7ba80c5eefd2e8765b7edb9a67f93316ba3e71dae7f016295d6bffc9618ec5c694
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.393]: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.393]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
data/bin/pwn CHANGED
@@ -3,13 +3,10 @@
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
13
10
  class Pry
14
11
  # Overwrite Pry::History.push method in History class to get duplicate history entries
15
12
  # in order to properly replay automation in this prototyping driver
@@ -23,8 +20,6 @@ begin
23
20
  last_line = nil
24
21
  end
25
22
 
26
- # return line if line == last_line
27
-
28
23
  @history << line
29
24
  @history_line_count += 1
30
25
  @saver.call(line) if !should_ignore?(line) &&
@@ -37,11 +32,17 @@ begin
37
32
  end
38
33
 
39
34
  cli = Pry
35
+ cli.config.prompt_name = :pwn
36
+ cli.config.pwn_repl_line = 0
37
+ cli.config.tty_prompt = TTY::Prompt.new
38
+ cli.config.tty_reader = TTY::Reader.new
40
39
 
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) }
40
+ cli.config.hooks.add_hook(:before_session, :welcome) do |output, _binding, _pry|
41
+ output.puts 'Use the #help method for more options.'
42
+ output.puts 'e.g help'
43
+ output.puts 'e.g PWN.help'
44
+ output.puts 'e.g PWN::Plugins.help'
45
+ output.puts 'e.g PWN::Plugins::TransparentBrowser.help'
45
46
  end
46
47
 
47
48
  cli::Commands.create_command 'toggle-pager' do
@@ -55,22 +56,42 @@ begin
55
56
  # Custom Main & Wait (Multi-Line) Prompts
56
57
  title = "\001\e[1m\002\001\e[31m\002pwn\001\e[0m\002" # Bold Red
57
58
  version = "\001\e[36m\002v#{PWN::VERSION}\001\e[0m\002" # Cyan
59
+ # @line = cli.config.custom_attrs[:line_number]
58
60
  arrow = "\001\e[32m\002>>>\001\e[0m\002" # Green
59
61
  splat = "\001\e[33m\002***\001\e[0m\002" # Yellow
60
62
 
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))
63
+ arrow_ps1_proc = proc do |_target_self, _nest_level, pry|
64
+ pry.config.pwn_repl_line += 1
65
+ line_pad = format(
66
+ '%0.3d',
67
+ pry.config.pwn_repl_line
68
+ )
69
+ line_count = "\001\e[34m\002#{line_pad}\001\e[0m\002" # Blue
70
+ "#{title}[#{version}]:#{line_count} #{arrow} ".to_s.scrub
71
+ end
72
+
73
+ splat_ps1_proc = proc do |_target_self, _nest_level, pry|
74
+ pry.config.pwn_repl_line += 1
75
+ line_pad = format(
76
+ '%0.3d',
77
+ pry.config.pwn_repl_line
78
+ )
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.393'
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.389
4
+ version: 0.4.393
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-04-01 00:00:00.000000000 Z
11
+ date: 2022-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -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