pwn 0.4.704 → 0.4.706

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: 9d620db070015a7a752384a7ab89962a4123d5af5a8fe934b42fdd48fced848e
4
- data.tar.gz: 4fb7055ad49d1c63ae772f29fc580b43f7f306e0756266cb116b387dd14205bc
3
+ metadata.gz: d297206c67aed46fc11f899ebeb049b99268321cfd43de12ad9bdabdbe800e18
4
+ data.tar.gz: 227bc9a6a41c960e7b8d8d9b4901d06dcf5d50fb326967113fedea7352c99dd9
5
5
  SHA512:
6
- metadata.gz: b439cd9b4dd11a9113f68b40413887e026bbe9c3e3b3104f8261158d62a4acb92b797c894d6c1fd5972e9c49ac5c23b8cdbcb010007a635c73aed276f7897f40
7
- data.tar.gz: 11c1ce9cfb9024f51c7e5c23a7a6783c27d306a356d49e00a045989107fd9818da1687f3c607bb6d3092ba13ea719ea644c89d85b69f56e4bf16fd683b92b2df
6
+ metadata.gz: 79cff249d43ec99c285f53ccf476a1a962420547f09d99733517b1c59849404b74c5abc17ee5ce3b1f17cb80489a4db38f29a6657a190b7d5361a97448ba402c
7
+ data.tar.gz: d06d828ddb31e7d6915a5615338ea52a121341fa8db5801976cec9428e94a4f6fa850a6824802327ec6e84729b02c07d496d27556c34cab445d1445ef6993a17
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.704]:001 >>> PWN.help
40
+ pwn[v0.4.706]: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.704]:001 >>> PWN.help
55
+ pwn[v0.4.706]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
data/bin/pwn CHANGED
@@ -18,6 +18,17 @@ OptionParser.new do |options|
18
18
  end.parse!
19
19
 
20
20
  begin
21
+ def cleanup_pids(opts = {})
22
+ pids_arr = opts[:pids_arr]
23
+
24
+ pids_arr.each do |pid_line|
25
+ pid = pid_line[2].to_i
26
+ Process.kill('TERM', pid)
27
+ rescue Errno::ESRCH
28
+ next
29
+ end
30
+ end
31
+
21
32
  def refresh_ps1_proc(opts = {})
22
33
  mode = opts[:mode]
23
34
 
@@ -312,21 +323,6 @@ ensure
312
323
  end
313
324
  # pp grandkid_pids_arr
314
325
 
315
- grandkid_pids_arr.each do |grandkid_pid|
316
- begin
317
- pid = grandkid_pid[2].to_i
318
- Process.kill('TERM', pid)
319
- rescue Errno::ESRCH
320
- next
321
- end
322
- end
323
-
324
- kid_pids_arr.each do |kid_pid|
325
- begin
326
- pid = kid_pid[2].to_i
327
- Process.kill('TERM', pid)
328
- rescue Errno::ESRCH
329
- next
330
- end
331
- end
326
+ cleanup_pids(pids_arr: grandkid_pids_arr)
327
+ cleanup_pids(pids_arr: kid_pids_arr)
332
328
  end
@@ -11,7 +11,10 @@ module PWN
11
11
 
12
12
  public_class_method def self.type
13
13
  return :cygwin if OS.cygwin?
14
+ return :freebsd if OS.freebsd?
14
15
  return :linux if OS.linux?
16
+ return :netbsd if OS.host_os.include?('netbsd')
17
+ return :openbsd if OS.host_os.include?('openbsd')
15
18
  return :osx if OS.osx?
16
19
  return :windows if OS.windows?
17
20
  rescue StandardError => e
@@ -12,25 +12,23 @@ module PWN
12
12
  public_class_method def self.list(opts = {})
13
13
  pid = opts[:pid]
14
14
 
15
- format = 'user,pcpu,pid,ppid,uid,gid,euid,egid,uname,group,args:1000,pmem'
15
+ which_os = PWN::Plugins::DetectOS.type
16
16
 
17
- if pid.nil?
18
- stdout, _stderr, _status = Open3.capture3(
19
- 'ps',
20
- 'ax',
21
- '-o',
22
- format
23
- )
17
+ case which_os
18
+ when :linux
19
+ format = 'user,pcpu,pid,ppid,uid,group,gid,cpu,command:1000,pmem'
20
+ cmd = ['ps', '-p', pid.to_s, '-o', format]
21
+ cmd = ['ps', 'ax', '-o', format] if pid.nil?
22
+ when :freebsd, :netbsd, :openbsd, :osx
23
+ format = 'user,pcpu,pid,ppid,uid,group,gid,cpu,command,pmem'
24
+ cmd = ['ps', '-p', pid.to_s, '-o', format]
25
+ cmd = ['ps', 'ax', '-o', format] if pid.nil?
24
26
  else
25
- stdout, _stderr, _status = Open3.capture3(
26
- 'ps',
27
- '-p',
28
- pid.to_s,
29
- '-o',
30
- format
31
- )
27
+ raise "Unsupported OS: #{which_os}"
32
28
  end
33
29
 
30
+ stdout, _stderr, _status = Open3.capture3(cmd)
31
+
34
32
  proc_list_arr = []
35
33
  stdout_arr = stdout.split("\n")
36
34
  stdout_arr.each do |line|
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.704'
4
+ VERSION = '0.4.706'
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.704
4
+ version: 0.4.706
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.