pwn 0.4.396 → 0.4.398
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/README.md +2 -2
- data/bin/pwn +7 -13
- data/lib/pwn/banner/bubble.rb +42 -0
- data/lib/pwn/banner/matrix.rb +196 -0
- data/lib/pwn/banner/ninja.rb +54 -0
- data/lib/pwn/banner/off_the_air.rb +58 -0
- data/lib/pwn/banner/pirate.rb +61 -0
- data/lib/pwn/banner.rb +62 -0
- data/lib/pwn/version.rb +1 -1
- data/lib/pwn.rb +1 -0
- data/spec/lib/pwn/banner/bubble_spec.rb +20 -0
- data/spec/lib/pwn/banner/matrix_spec.rb +20 -0
- data/spec/lib/pwn/banner/ninja_spec.rb +20 -0
- data/spec/lib/pwn/banner/off_the_air_spec.rb +20 -0
- data/spec/lib/pwn/banner/pirate_spec.rb +20 -0
- data/spec/lib/pwn/banner_spec.rb +15 -0
- metadata +34 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b4ebf5cc001c0126e5fc6408fae0ce64f99d79985d57a366d704b3b10b96983
|
4
|
+
data.tar.gz: 0b68f232f61b082d9245bdeae80de24d4a966eca5db14f0b764c05be4decfd1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c51aceb2a34f91c882a195c370989f3530c7b6348889075695729f07c5eaeddbf3b95191251ed947f8321e4918c497efa08c6ad13180017b4c3ebdd1c611c77
|
7
|
+
data.tar.gz: c8f1dee8c386ef1508885f17a6f71bbc50e48c61122cf1d201bd08e2f26c195e3c9556ce60ecf06d93784bfb7493ea0659de61f8d9a904fe49e5b7211dee377e
|
data/Gemfile
CHANGED
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.
|
40
|
+
pwn[v0.4.398]: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.
|
55
|
+
pwn[v0.4.398]:001 >>> PWN.help
|
56
56
|
```
|
57
57
|
|
58
58
|
|
data/bin/pwn
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
require 'pwn'
|
5
5
|
require 'pry'
|
6
|
+
require 'colorize'
|
6
7
|
# require 'tty-prompt'
|
7
8
|
# require 'tty-reader'
|
8
9
|
|
@@ -10,18 +11,10 @@ begin
|
|
10
11
|
def gen_ps1_proc(opts = {})
|
11
12
|
delim = opts[:delim]
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
# Cyan Version
|
18
|
-
version = "\001\e[36m\002v#{PWN::VERSION}\001\e[0m\002"
|
19
|
-
|
20
|
-
# Green Arrows
|
21
|
-
dchars = "\001\e[32m\002>>>\001\e[0m\002"
|
22
|
-
|
23
|
-
# Yellow Splats
|
24
|
-
dchars = "\001\e[33m\002***\001\e[0m\002" if delim == :splat
|
14
|
+
title = 'pwn'.red.bold
|
15
|
+
version = PWN::VERSION.cyan
|
16
|
+
dchars = '>>>'.green
|
17
|
+
dchars = '***'.yellow if delim == :splat
|
25
18
|
|
26
19
|
proc do |_target_self, _nest_level, pry|
|
27
20
|
pry.config.pwn_repl_line += 1
|
@@ -70,7 +63,8 @@ begin
|
|
70
63
|
|
71
64
|
# Define REPL Hooks
|
72
65
|
Pry.config.hooks.add_hook(:before_session, :welcome) do |output, _binding, _pry|
|
73
|
-
output.puts
|
66
|
+
output.puts PWN::Banner.get
|
67
|
+
output.puts 'Use the #help command & methods for more options.'
|
74
68
|
output.puts 'e.g help'
|
75
69
|
output.puts 'e.g PWN.help'
|
76
70
|
output.puts 'e.g PWN::Plugins.help'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
module PWN
|
6
|
+
module Banner
|
7
|
+
# This plugin processes images into readable text
|
8
|
+
module Bubble
|
9
|
+
# Supported Method Parameters::
|
10
|
+
# PWN::Banner::Bubble.get
|
11
|
+
|
12
|
+
public_class_method def self.get
|
13
|
+
'
|
14
|
+
_ _ _
|
15
|
+
/ \ / \ / \
|
16
|
+
( P )( W )( N )
|
17
|
+
\_/ \_/ \_/
|
18
|
+
'.red
|
19
|
+
rescue StandardError => e
|
20
|
+
raise e
|
21
|
+
end
|
22
|
+
|
23
|
+
# Author(s):: 0day Inc. <request.pentest@0dayinc.com>
|
24
|
+
|
25
|
+
public_class_method def self.authors
|
26
|
+
"AUTHOR(S):
|
27
|
+
0day Inc. <request.pentest@0dayinc.com>
|
28
|
+
"
|
29
|
+
end
|
30
|
+
|
31
|
+
# Display Usage for this Module
|
32
|
+
|
33
|
+
public_class_method def self.help
|
34
|
+
puts "USAGE:
|
35
|
+
#{self}.get
|
36
|
+
|
37
|
+
#{self}.authors
|
38
|
+
"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,196 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
module PWN
|
6
|
+
module Banner
|
7
|
+
# This plugin processes images into readable text
|
8
|
+
module Matrix
|
9
|
+
# Supported Method Parameters::
|
10
|
+
# PWN::Banner::Matrix.get
|
11
|
+
|
12
|
+
public_class_method def self.get
|
13
|
+
cols = 33
|
14
|
+
|
15
|
+
matrix_arr = [
|
16
|
+
0x30a0.chr('UTF-8'),
|
17
|
+
0x30a1.chr('UTF-8'),
|
18
|
+
0x30a2.chr('UTF-8'),
|
19
|
+
0x30a3.chr('UTF-8'),
|
20
|
+
0x30a4.chr('UTF-8'),
|
21
|
+
0x30a5.chr('UTF-8'),
|
22
|
+
0x30a6.chr('UTF-8'),
|
23
|
+
0x30a7.chr('UTF-8'),
|
24
|
+
0x30a8.chr('UTF-8'),
|
25
|
+
0x30a9.chr('UTF-8'),
|
26
|
+
0x30aa.chr('UTF-8'),
|
27
|
+
0x30ab.chr('UTF-8'),
|
28
|
+
0x30ac.chr('UTF-8'),
|
29
|
+
0x30ad.chr('UTF-8'),
|
30
|
+
0x30ae.chr('UTF-8'),
|
31
|
+
0x30af.chr('UTF-8'),
|
32
|
+
0x30b0.chr('UTF-8'),
|
33
|
+
0x30b1.chr('UTF-8'),
|
34
|
+
0x30b2.chr('UTF-8'),
|
35
|
+
0x30b3.chr('UTF-8'),
|
36
|
+
0x30b4.chr('UTF-8'),
|
37
|
+
0x30b5.chr('UTF-8'),
|
38
|
+
0x30b6.chr('UTF-8'),
|
39
|
+
0x30b7.chr('UTF-8'),
|
40
|
+
0x30b8.chr('UTF-8'),
|
41
|
+
0x30b9.chr('UTF-8'),
|
42
|
+
0x30ba.chr('UTF-8'),
|
43
|
+
0x30bb.chr('UTF-8'),
|
44
|
+
0x30bc.chr('UTF-8'),
|
45
|
+
0x30bd.chr('UTF-8'),
|
46
|
+
0x30be.chr('UTF-8'),
|
47
|
+
0x30bf.chr('UTF-8'),
|
48
|
+
0x30c0.chr('UTF-8'),
|
49
|
+
0x30c1.chr('UTF-8'),
|
50
|
+
0x30c2.chr('UTF-8'),
|
51
|
+
0x30c3.chr('UTF-8'),
|
52
|
+
0x30c4.chr('UTF-8'),
|
53
|
+
0x30c5.chr('UTF-8'),
|
54
|
+
0x30c6.chr('UTF-8'),
|
55
|
+
0x30c7.chr('UTF-8'),
|
56
|
+
0x30c8.chr('UTF-8'),
|
57
|
+
0x30c9.chr('UTF-8'),
|
58
|
+
0x30ca.chr('UTF-8'),
|
59
|
+
0x30cb.chr('UTF-8'),
|
60
|
+
0x30cc.chr('UTF-8'),
|
61
|
+
0x30cd.chr('UTF-8'),
|
62
|
+
0x30ce.chr('UTF-8'),
|
63
|
+
0x30cf.chr('UTF-8'),
|
64
|
+
0x30d0.chr('UTF-8'),
|
65
|
+
0x30d1.chr('UTF-8'),
|
66
|
+
0x30d2.chr('UTF-8'),
|
67
|
+
0x30d3.chr('UTF-8'),
|
68
|
+
0x30d4.chr('UTF-8'),
|
69
|
+
0x30d5.chr('UTF-8'),
|
70
|
+
0x30d6.chr('UTF-8'),
|
71
|
+
0x30d7.chr('UTF-8'),
|
72
|
+
0x30d8.chr('UTF-8'),
|
73
|
+
0x30d9.chr('UTF-8'),
|
74
|
+
0x30da.chr('UTF-8'),
|
75
|
+
0x30db.chr('UTF-8'),
|
76
|
+
0x30dc.chr('UTF-8'),
|
77
|
+
0x30dd.chr('UTF-8'),
|
78
|
+
0x30de.chr('UTF-8'),
|
79
|
+
0x30df.chr('UTF-8'),
|
80
|
+
0x30e0.chr('UTF-8'),
|
81
|
+
0x30e1.chr('UTF-8'),
|
82
|
+
0x30e2.chr('UTF-8'),
|
83
|
+
0x30e3.chr('UTF-8'),
|
84
|
+
0x30e4.chr('UTF-8'),
|
85
|
+
0x30e5.chr('UTF-8'),
|
86
|
+
0x30e6.chr('UTF-8'),
|
87
|
+
0x30e7.chr('UTF-8'),
|
88
|
+
0x30e8.chr('UTF-8'),
|
89
|
+
0x30e9.chr('UTF-8'),
|
90
|
+
0x30ea.chr('UTF-8'),
|
91
|
+
0x30eb.chr('UTF-8'),
|
92
|
+
0x30ec.chr('UTF-8'),
|
93
|
+
0x30ed.chr('UTF-8'),
|
94
|
+
0x30ee.chr('UTF-8'),
|
95
|
+
0x30ef.chr('UTF-8'),
|
96
|
+
0x30f0.chr('UTF-8'),
|
97
|
+
0x30f1.chr('UTF-8'),
|
98
|
+
0x30f2.chr('UTF-8'),
|
99
|
+
0x30f3.chr('UTF-8'),
|
100
|
+
0x30f4.chr('UTF-8'),
|
101
|
+
0x30f5.chr('UTF-8'),
|
102
|
+
0x30f6.chr('UTF-8'),
|
103
|
+
0x30f7.chr('UTF-8'),
|
104
|
+
0x30f8.chr('UTF-8'),
|
105
|
+
0x30f9.chr('UTF-8'),
|
106
|
+
0x30fa.chr('UTF-8'),
|
107
|
+
0x30fb.chr('UTF-8'),
|
108
|
+
0x30fc.chr('UTF-8'),
|
109
|
+
0x30fd.chr('UTF-8'),
|
110
|
+
0x30fe.chr('UTF-8'),
|
111
|
+
'0 ',
|
112
|
+
'1 ',
|
113
|
+
'2 ',
|
114
|
+
'3 ',
|
115
|
+
'4 ',
|
116
|
+
'5 ',
|
117
|
+
'6 ',
|
118
|
+
'7 ',
|
119
|
+
'8 ',
|
120
|
+
'9 ',
|
121
|
+
'A ',
|
122
|
+
'c ',
|
123
|
+
'R ',
|
124
|
+
'y ',
|
125
|
+
'P ',
|
126
|
+
't ',
|
127
|
+
'U ',
|
128
|
+
'm ',
|
129
|
+
'x ',
|
130
|
+
'Z ',
|
131
|
+
': ',
|
132
|
+
'{ ',
|
133
|
+
'[ ',
|
134
|
+
'} ',
|
135
|
+
'] ',
|
136
|
+
'| ',
|
137
|
+
'` ',
|
138
|
+
'~ ',
|
139
|
+
'! ',
|
140
|
+
'@ ',
|
141
|
+
'# ',
|
142
|
+
'$ ',
|
143
|
+
'% ',
|
144
|
+
'^ ',
|
145
|
+
'& ',
|
146
|
+
'* ',
|
147
|
+
'( ',
|
148
|
+
') ',
|
149
|
+
'_ ',
|
150
|
+
'- ',
|
151
|
+
'= ',
|
152
|
+
'+ ',
|
153
|
+
'> ',
|
154
|
+
'< ',
|
155
|
+
'. ',
|
156
|
+
', '
|
157
|
+
]
|
158
|
+
|
159
|
+
last_index = matrix_arr.length - 1
|
160
|
+
|
161
|
+
matrix = ''
|
162
|
+
cols.times do
|
163
|
+
matrix_row = ''
|
164
|
+
most_cols = cols - 1
|
165
|
+
most_cols.times.each do
|
166
|
+
matrix_row += "#{matrix_arr[Random.rand(0..last_index)]} "
|
167
|
+
end
|
168
|
+
matrix_row += matrix_arr[Random.rand(0..last_index)]
|
169
|
+
matrix = "#{matrix}#{matrix_row}\n"
|
170
|
+
end
|
171
|
+
|
172
|
+
matrix.green
|
173
|
+
rescue StandardError => e
|
174
|
+
raise e
|
175
|
+
end
|
176
|
+
|
177
|
+
# Author(s):: 0day Inc. <request.pentest@0dayinc.com>
|
178
|
+
|
179
|
+
public_class_method def self.authors
|
180
|
+
"AUTHOR(S):
|
181
|
+
0day Inc. <request.pentest@0dayinc.com>
|
182
|
+
"
|
183
|
+
end
|
184
|
+
|
185
|
+
# Display Usage for this Module
|
186
|
+
|
187
|
+
public_class_method def self.help
|
188
|
+
puts "USAGE:
|
189
|
+
#{self}.get
|
190
|
+
|
191
|
+
#{self}.authors
|
192
|
+
"
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
module PWN
|
6
|
+
module Banner
|
7
|
+
# This plugin processes images into readable text
|
8
|
+
module Ninja
|
9
|
+
# Supported Method Parameters::
|
10
|
+
# PWN::Banner::Ninja.get
|
11
|
+
|
12
|
+
public_class_method def self.get
|
13
|
+
'
|
14
|
+
.=+*****=-
|
15
|
+
:#%%%%%%%%%%%=
|
16
|
+
:%%%%%%%%%%%%%%+
|
17
|
+
*%%#+=-::--=*%%%+*#*
|
18
|
+
*%+:%%-:::#@=:%%%#*-
|
19
|
+
:: =%*:==::::-=:=%#:*%-
|
20
|
+
*#*- +%%%#######%%#.
|
21
|
+
:+##=.+%%%%%%%%%=
|
22
|
+
:-+%%%%%%%%%%%%#=
|
23
|
+
-%%%%%%%%%%%%%%%%%-
|
24
|
+
-%%#:.%%%%%%%%%.:#%%:
|
25
|
+
-##- -%%%%%%%%%- -##:
|
26
|
+
*%%%#+#%%%*::.
|
27
|
+
%%%+ *%%#
|
28
|
+
.%%%. :%%%.
|
29
|
+
=**+ +##=
|
30
|
+
'.light_blue
|
31
|
+
rescue StandardError => e
|
32
|
+
raise e
|
33
|
+
end
|
34
|
+
|
35
|
+
# Author(s):: 0day Inc. <request.pentest@0dayinc.com>
|
36
|
+
|
37
|
+
public_class_method def self.authors
|
38
|
+
"AUTHOR(S):
|
39
|
+
0day Inc. <request.pentest@0dayinc.com>
|
40
|
+
"
|
41
|
+
end
|
42
|
+
|
43
|
+
# Display Usage for this Module
|
44
|
+
|
45
|
+
public_class_method def self.help
|
46
|
+
puts "USAGE:
|
47
|
+
#{self}.get
|
48
|
+
|
49
|
+
#{self}.authors
|
50
|
+
"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
module PWN
|
6
|
+
module Banner
|
7
|
+
# This plugin processes images into readable text
|
8
|
+
module OffTheAir
|
9
|
+
# Supported Method Parameters::
|
10
|
+
# PWN::Banner::OffTheAir.get
|
11
|
+
|
12
|
+
public_class_method def self.get
|
13
|
+
'
|
14
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
15
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
16
|
+
@@#####%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@
|
17
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
18
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
19
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
20
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
21
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
22
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
23
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
24
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
25
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
26
|
+
@%.....=====-::::-=====++++*%%%%%#####@@
|
27
|
+
@@+++++%%%%%+++++*%%%%*----=@@@@@:::::%@
|
28
|
+
@@######.... *###%%@@@@@@@@@@@@@%%%%%@@
|
29
|
+
@@###### *#####%@@@@@@@@@@@@@@@@@@@
|
30
|
+
@@###### *#####%@@@@@@@@@@@@@@@@@@@
|
31
|
+
@@@@@@@@######@@@@@@@@@@@@@@@@@@@@@@@@@@
|
32
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
33
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
34
|
+
'
|
35
|
+
rescue StandardError => e
|
36
|
+
raise e
|
37
|
+
end
|
38
|
+
|
39
|
+
# Author(s):: 0day Inc. <request.pentest@0dayinc.com>
|
40
|
+
|
41
|
+
public_class_method def self.authors
|
42
|
+
"AUTHOR(S):
|
43
|
+
0day Inc. <request.pentest@0dayinc.com>
|
44
|
+
"
|
45
|
+
end
|
46
|
+
|
47
|
+
# Display Usage for this Module
|
48
|
+
|
49
|
+
public_class_method def self.help
|
50
|
+
puts "USAGE:
|
51
|
+
#{self}.get
|
52
|
+
|
53
|
+
#{self}.authors
|
54
|
+
"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
module PWN
|
6
|
+
module Banner
|
7
|
+
# This plugin processes images into readable text
|
8
|
+
module Pirate
|
9
|
+
# Supported Method Parameters::
|
10
|
+
# PWN::Banner::Pirate.get
|
11
|
+
|
12
|
+
public_class_method def self.get
|
13
|
+
'
|
14
|
+
@@@@@@@%%@@%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
15
|
+
@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@
|
16
|
+
@@@@@@@@@@%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@
|
17
|
+
@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@
|
18
|
+
@@@@@@@@@@@@%@@@@%%%%%%%%%%%%#***#%%%%%%%%%%%@@@@@@@@@@@@@@@
|
19
|
+
@@@@@@@@@@@@@%@@@%%%@%%%%%+-.......:+%%%%%%%%%%@@@@@@@@@@@@@
|
20
|
+
@@@@@@@@@@@@@@@@@@@%%%%@#:............*%%%%%%%%%%%%@%@@@@@@@
|
21
|
+
@@@@@@@@@@@@@@@@@@@@@%%%:.:.....*%%*:..%%%%%%%%%%%%%%%@@@@@@
|
22
|
+
@@@@@@@@@@@@@@@@@@@@@%%%:.-%%:..%%%%*.:%%%%%%%%%%%%%%%%%%%@@
|
23
|
+
@@@@@@@@@@@@@@@@%%@%%%%%%+=##::::*##-=#%%%%%%%%%%%%%%%%%%%%@
|
24
|
+
@@@@@@@@@@@@@@@@@@@%*#%%@#==::*=.=+=*%%%%%%%%%%%%%%%%%%%%%%@
|
25
|
+
@@@@@@@@@@@@@@@@@@@*-::=#@%%+::::*@%%=..%%%%%%%%%%%%%%%%%%%%
|
26
|
+
@@@@@@@@@@@@@@@@@@@@@%*+--+#%%%%%%#+:...+%%%%%%%%%%%%%%%%%%%
|
27
|
+
@@@@@@@@@@@@@@@@@@@@@@%%@#+-:+*+=-+*#%*:-%%%%%%%%%%%%%@%%%%%
|
28
|
+
@@@@@@@@@@@@@@@@@@@@@+-+**+=-==:-+#%%%%%@%%%%%%%%%%%%%%%%%%%
|
29
|
+
@@@@@@@@@@@@@@@@@@@@@%*::=*#%@@%*=::-=#%%%%%%%%%%%%%%%%%%%%%
|
30
|
+
@@@@@@@@@@@@@@@@%%@@@@+:=%@@@@%%%@%+:..+%%%%%%%%%%%%%%%%%%%%
|
31
|
+
@@@@@@@@@@@@@@@@@@@@@@%#%@@@@@@%%@@%%%#*#%%%%%%%%%%%%%%%%%%%
|
32
|
+
@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@%%%%%###%%%%%%%%%%%%%%%%%%%%%
|
33
|
+
@@@@@@@@@@@@@@@@@@@@@%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
34
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%
|
35
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
36
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%
|
37
|
+
'.light_black
|
38
|
+
rescue StandardError => e
|
39
|
+
raise e
|
40
|
+
end
|
41
|
+
|
42
|
+
# Author(s):: 0day Inc. <request.pentest@0dayinc.com>
|
43
|
+
|
44
|
+
public_class_method def self.authors
|
45
|
+
"AUTHOR(S):
|
46
|
+
0day Inc. <request.pentest@0dayinc.com>
|
47
|
+
"
|
48
|
+
end
|
49
|
+
|
50
|
+
# Display Usage for this Module
|
51
|
+
|
52
|
+
public_class_method def self.help
|
53
|
+
puts "USAGE:
|
54
|
+
#{self}.get
|
55
|
+
|
56
|
+
#{self}.authors
|
57
|
+
"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/lib/pwn/banner.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PWN
|
4
|
+
# This file, using the autoload directive loads SP reports
|
5
|
+
# into memory only when they're needed. For more information, see:
|
6
|
+
# http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html
|
7
|
+
module Banner
|
8
|
+
autoload :Bubble, 'pwn/banner/bubble'
|
9
|
+
autoload :Matrix, 'pwn/banner/matrix'
|
10
|
+
autoload :Ninja, 'pwn/banner/ninja'
|
11
|
+
autoload :OffTheAir, 'pwn/banner/off_the_air'
|
12
|
+
autoload :Pirate, 'pwn/banner/pirate'
|
13
|
+
|
14
|
+
# Supported Method Parameters::
|
15
|
+
# PWN::Banner.get(
|
16
|
+
# index: 'optional - defaults to random banner index'
|
17
|
+
# )
|
18
|
+
|
19
|
+
public_class_method def self.get(opts = {})
|
20
|
+
index = opts[:index].to_i
|
21
|
+
index = Random.rand(1..5) unless index.positive?
|
22
|
+
|
23
|
+
banner = ''
|
24
|
+
case index
|
25
|
+
when 1
|
26
|
+
banner = PWN::Banner::Bubble.get
|
27
|
+
when 2
|
28
|
+
banner = PWN::Banner::Matrix.get
|
29
|
+
when 3
|
30
|
+
banner = PWN::Banner::Ninja.get
|
31
|
+
when 4
|
32
|
+
banner = PWN::Banner::OffTheAir.get
|
33
|
+
when 5
|
34
|
+
banner = PWN::Banner::Pirate.get
|
35
|
+
else
|
36
|
+
raise 'Invalid Index.'
|
37
|
+
end
|
38
|
+
|
39
|
+
banner
|
40
|
+
end
|
41
|
+
|
42
|
+
# Author(s):: 0day Inc. <request.pentest@0dayinc.com>
|
43
|
+
|
44
|
+
public_class_method def self.authors
|
45
|
+
"AUTHOR(S):
|
46
|
+
0day Inc. <request.pentest@0dayinc.com>
|
47
|
+
"
|
48
|
+
end
|
49
|
+
|
50
|
+
# Display Usage for this Module
|
51
|
+
|
52
|
+
public_class_method def self.help
|
53
|
+
puts "USAGE:
|
54
|
+
banner = #{self}.get(
|
55
|
+
index: 'optional - defaults to random banner index'
|
56
|
+
)
|
57
|
+
|
58
|
+
#{self}.authors
|
59
|
+
"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/pwn/version.rb
CHANGED
data/lib/pwn.rb
CHANGED
@@ -10,6 +10,7 @@ module PWN
|
|
10
10
|
$stdout.flush # < Ensure that all print statements output progress in realtime
|
11
11
|
# TODO: Determine best balance for namespace naming conventions
|
12
12
|
autoload :AWS, 'pwn/aws'
|
13
|
+
autoload :Banner, 'pwn/banner'
|
13
14
|
autoload :FFI, 'pwn/ffi'
|
14
15
|
autoload :Plugins, 'pwn/plugins'
|
15
16
|
autoload :Reports, 'pwn/reports'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe PWN::Banner::Bubble do
|
6
|
+
it 'should cointain a method for banner retrieval' do
|
7
|
+
get_response = PWN::Banner::Bubble
|
8
|
+
expect(get_response).to respond_to :get
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should display information for authors' do
|
12
|
+
authors_response = PWN::Banner::Bubble
|
13
|
+
expect(authors_response).to respond_to :authors
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should display information for existing help method' do
|
17
|
+
help_response = PWN::Banner::Bubble
|
18
|
+
expect(help_response).to respond_to :help
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe PWN::Banner::Matrix do
|
6
|
+
it 'should cointain a method for banner retrieval' do
|
7
|
+
get_response = PWN::Banner::Matrix
|
8
|
+
expect(get_response).to respond_to :get
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should display information for authors' do
|
12
|
+
authors_response = PWN::Banner::Matrix
|
13
|
+
expect(authors_response).to respond_to :authors
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should display information for existing help method' do
|
17
|
+
help_response = PWN::Banner::Matrix
|
18
|
+
expect(help_response).to respond_to :help
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe PWN::Banner::Ninja do
|
6
|
+
it 'should cointain a method for banner retrieval' do
|
7
|
+
get_response = PWN::Banner::Ninja
|
8
|
+
expect(get_response).to respond_to :get
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should display information for authors' do
|
12
|
+
authors_response = PWN::Banner::Ninja
|
13
|
+
expect(authors_response).to respond_to :authors
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should display information for existing help method' do
|
17
|
+
help_response = PWN::Banner::Ninja
|
18
|
+
expect(help_response).to respond_to :help
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe PWN::Banner::OffTheAir do
|
6
|
+
it 'should cointain a method for banner retrieval' do
|
7
|
+
get_response = PWN::Banner::OffTheAir
|
8
|
+
expect(get_response).to respond_to :get
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should display information for authors' do
|
12
|
+
authors_response = PWN::Banner::OffTheAir
|
13
|
+
expect(authors_response).to respond_to :authors
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should display information for existing help method' do
|
17
|
+
help_response = PWN::Banner::OffTheAir
|
18
|
+
expect(help_response).to respond_to :help
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe PWN::Banner::Pirate do
|
6
|
+
it 'should cointain a method for banner retrieval' do
|
7
|
+
get_response = PWN::Banner::Pirate
|
8
|
+
expect(get_response).to respond_to :get
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should display information for authors' do
|
12
|
+
authors_response = PWN::Banner::Pirate
|
13
|
+
expect(authors_response).to respond_to :authors
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should display information for existing help method' do
|
17
|
+
help_response = PWN::Banner::Pirate
|
18
|
+
expect(help_response).to respond_to :help
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe PWN::Banner do
|
6
|
+
it 'should display information for authors' do
|
7
|
+
authors_response = PWN::Banner
|
8
|
+
expect(authors_response).to respond_to :authors
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should display information for existing help method' do
|
12
|
+
help_response = PWN::Banner
|
13
|
+
expect(help_response).to respond_to :help
|
14
|
+
end
|
15
|
+
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.
|
4
|
+
version: 0.4.398
|
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-
|
11
|
+
date: 2022-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - '='
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 2.19.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: colorize
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.8.1
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.8.1
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: faye-websocket
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1438,6 +1452,12 @@ files:
|
|
1438
1452
|
- lib/pwn/aws/waf_regional.rb
|
1439
1453
|
- lib/pwn/aws/workspaces.rb
|
1440
1454
|
- lib/pwn/aws/x_ray.rb
|
1455
|
+
- lib/pwn/banner.rb
|
1456
|
+
- lib/pwn/banner/bubble.rb
|
1457
|
+
- lib/pwn/banner/matrix.rb
|
1458
|
+
- lib/pwn/banner/ninja.rb
|
1459
|
+
- lib/pwn/banner/off_the_air.rb
|
1460
|
+
- lib/pwn/banner/pirate.rb
|
1441
1461
|
- lib/pwn/ffi.rb
|
1442
1462
|
- lib/pwn/plugins.rb
|
1443
1463
|
- lib/pwn/plugins/android.rb
|
@@ -1729,6 +1749,12 @@ files:
|
|
1729
1749
|
- spec/lib/pwn/aws/workspaces_spec.rb
|
1730
1750
|
- spec/lib/pwn/aws/x_ray_spec.rb
|
1731
1751
|
- spec/lib/pwn/aws_spec.rb
|
1752
|
+
- spec/lib/pwn/banner/bubble_spec.rb
|
1753
|
+
- spec/lib/pwn/banner/matrix_spec.rb
|
1754
|
+
- spec/lib/pwn/banner/ninja_spec.rb
|
1755
|
+
- spec/lib/pwn/banner/off_the_air_spec.rb
|
1756
|
+
- spec/lib/pwn/banner/pirate_spec.rb
|
1757
|
+
- spec/lib/pwn/banner_spec.rb
|
1732
1758
|
- spec/lib/pwn/ffi_spec.rb
|
1733
1759
|
- spec/lib/pwn/plugins/android_spec.rb
|
1734
1760
|
- spec/lib/pwn/plugins/authentication_helper_spec.rb
|
@@ -1990,6 +2016,12 @@ test_files:
|
|
1990
2016
|
- spec/lib/pwn/aws/workspaces_spec.rb
|
1991
2017
|
- spec/lib/pwn/aws/x_ray_spec.rb
|
1992
2018
|
- spec/lib/pwn/aws_spec.rb
|
2019
|
+
- spec/lib/pwn/banner/bubble_spec.rb
|
2020
|
+
- spec/lib/pwn/banner/matrix_spec.rb
|
2021
|
+
- spec/lib/pwn/banner/ninja_spec.rb
|
2022
|
+
- spec/lib/pwn/banner/off_the_air_spec.rb
|
2023
|
+
- spec/lib/pwn/banner/pirate_spec.rb
|
2024
|
+
- spec/lib/pwn/banner_spec.rb
|
1993
2025
|
- spec/lib/pwn/ffi_spec.rb
|
1994
2026
|
- spec/lib/pwn/plugins/android_spec.rb
|
1995
2027
|
- spec/lib/pwn/plugins/authentication_helper_spec.rb
|