pwn 0.4.697 → 0.4.699

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2572514219bb53ad28d5bdb441d795b192a4f18b8bcf371652ef8661be793d06
4
- data.tar.gz: 6afc53d56f23965bebfed008a7e7819457e6fc0face0daa5c4dd21110e1d7c9a
3
+ metadata.gz: d745dcbcd6c2a339cc95cd95cf520971dd1cb5d382e440222cad856b610899d4
4
+ data.tar.gz: 0fbe7d75659820c93ff70d1803fc397d4496a43e9148ee303e0d661cc7e88446
5
5
  SHA512:
6
- metadata.gz: 986d271d939c0652a3c8c8ba943a51c56884e95102faad3ee36393f0e3c275af78c3edcdb8cde327424ab487dcc60fd87522010e6e2f587132d88fbd384fc573
7
- data.tar.gz: 5158e21c12952017324123711dfb88776bc802c10a6cc5519cf10bff9607a8147bf452cae98f9769971c6f7e77510899d37376aba95bbf8d19b1fcf23089488a
6
+ metadata.gz: ccb00ebd0473169fef1745f37cdf988344afa39709590ff96d3d304f041a1a8fa664ade80425eb554649872bc891742466975826a3e79c0e34bbb24238bdb438
7
+ data.tar.gz: a0c6cbcfe85105ace99b455f38804c75f03a24457a0b9b713e9b87cc66927610a09f2366f147cde39f298d8bf02554eb505f83a2c21b15fc7113102b1bc28b7c
data/Gemfile CHANGED
@@ -80,7 +80,8 @@ gem 'sinatra', '3.0.6'
80
80
  gem 'slack-ruby-client', '2.1.0'
81
81
  gem 'socksify', '1.7.1'
82
82
  gem 'spreadsheet', '1.3.0'
83
- gem 'sqlite3', '1.6.2'
83
+ gem 'sqlite3', '1.6.3'
84
+ gem 'sys-proctable', '1.3.0'
84
85
  gem 'thin', '1.8.2'
85
86
  gem 'tty-prompt', '0.23.1'
86
87
  gem 'tty-spinner', '0.9.3'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.2.2@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.697]:001 >>> PWN.help
40
+ pwn[v0.4.699]: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.2.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.697]:001 >>> PWN.help
55
+ pwn[v0.4.699]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
data/bin/pwn CHANGED
@@ -4,6 +4,7 @@
4
4
  require 'optparse'
5
5
  require 'pwn'
6
6
  require 'pry'
7
+ require 'sys/proctable'
7
8
  require 'yaml'
8
9
 
9
10
  opts = {}
@@ -292,10 +293,27 @@ begin
292
293
  )
293
294
 
294
295
  # Start PWN REPL
296
+ pwn_pid = Process.pid
295
297
  Pry.start(
296
298
  self,
297
299
  prompt: prompt
298
300
  )
299
301
  rescue StandardError => e
300
302
  raise e
303
+ ensure
304
+ child_pids = Sys::ProcTable.ps(smaps: false).select do |pe|
305
+ pe.ppid == pwn_pid
306
+ end.map(&:pid)
307
+
308
+ grandkid_pids = Sys::ProcTable.ps(smaps: false).select do |pe|
309
+ child_pids.include?(pe.ppid)
310
+ end.map(&:pid)
311
+
312
+ grandkid_pids.each do |grandkid_pid|
313
+ Process.kill('TERM', grandkid_pid)
314
+ end
315
+
316
+ child_pids.each do |child_pid|
317
+ Process.kill('TERM', child_pid)
318
+ end
301
319
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'netaddr'
3
4
  require 'pty'
4
5
 
5
6
  module PWN
@@ -77,6 +78,7 @@ module PWN
77
78
  # ip: 'optional - IP address to listen (default: 127.0.0.1)',
78
79
  # port: 'optional - socks port to listen (default: 1024-65535)',
79
80
  # ctrl_port: 'optional - tor control port to listen (default: 1024-65535)',
81
+ # net: 'optional - CIDR notation to accept connections (default: 127.0.0.0.1/32)',
80
82
  # data_dir: 'optional - directory to keep tor session data (default: /tmp/tor_pwn-TIMESTAMP)'
81
83
  # )
82
84
 
@@ -92,6 +94,11 @@ module PWN
92
94
  break if ctrl_port != port
93
95
  end
94
96
  end
97
+
98
+ net = opts[:net]
99
+ net ||= "#{ip}/32"
100
+ acl_net = NetAddr.parse_net(net)
101
+
95
102
  timestamp = Time.now.strftime('%Y-%m-%d_%H-%M-%S.%N%z')
96
103
  data_dir = opts[:data_dir]
97
104
  data_dir ||= "/tmp/tor_pwn-#{timestamp}"
@@ -115,7 +122,11 @@ module PWN
115
122
  'ControlPort',
116
123
  ctrl_port.to_s,
117
124
  'CookieAuthentication',
118
- '1'
125
+ '1',
126
+ 'SocksPolicy',
127
+ "accept #{acl_net}",
128
+ 'SocksPolicy',
129
+ 'reject *'
119
130
  ) do |stdout, _stdin, pid|
120
131
  File.write(pid_file, pid)
121
132
  stdout.each do |line|
@@ -201,6 +212,7 @@ module PWN
201
212
  ip: 'optional - IP address to listen (default: 127.0.0.1)',
202
213
  port: 'optional - socks port to listen (default: 9050)',
203
214
  ctrl_port: 'optional - tor control port to listen (default: 9051)',
215
+ net: 'optional - CIDR notation to accept connections (default: 127.0.0.1/32)',
204
216
  data_dir: 'optional - directory to keep tor session data (default: /tmp/tor_pwn-TIMESTAMP)'
205
217
  )
206
218
 
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.697'
4
+ VERSION = '0.4.699'
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.697
4
+ version: 0.4.699
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-15 00:00:00.000000000 Z
11
+ date: 2023-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -982,14 +982,28 @@ dependencies:
982
982
  requirements:
983
983
  - - '='
984
984
  - !ruby/object:Gem::Version
985
- version: 1.6.2
985
+ version: 1.6.3
986
986
  type: :runtime
987
987
  prerelease: false
988
988
  version_requirements: !ruby/object:Gem::Requirement
989
989
  requirements:
990
990
  - - '='
991
991
  - !ruby/object:Gem::Version
992
- version: 1.6.2
992
+ version: 1.6.3
993
+ - !ruby/object:Gem::Dependency
994
+ name: sys-proctable
995
+ requirement: !ruby/object:Gem::Requirement
996
+ requirements:
997
+ - - '='
998
+ - !ruby/object:Gem::Version
999
+ version: 1.3.0
1000
+ type: :runtime
1001
+ prerelease: false
1002
+ version_requirements: !ruby/object:Gem::Requirement
1003
+ requirements:
1004
+ - - '='
1005
+ - !ruby/object:Gem::Version
1006
+ version: 1.3.0
993
1007
  - !ruby/object:Gem::Dependency
994
1008
  name: thin
995
1009
  requirement: !ruby/object:Gem::Requirement