pwn 0.4.452 → 0.4.456

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48f1885a09a8dab8a4d1404d9f142385e1e401c46248cec44d9444a3fd90b9b1
4
- data.tar.gz: 499d0c4a1a613da0cab30df3eeb3402a27d6913aeb18588ed2680ff8af96118f
3
+ metadata.gz: b3b1843c0855572815309240a50172a80b69cb45ac5deb69680209ad1a8c7d67
4
+ data.tar.gz: 943a67a010803ace7adc4aac78c18b43c168dfb5014a29058a7245a84ae07424
5
5
  SHA512:
6
- metadata.gz: b4d1bf2a6ada8c50b996406ef176425af6753c4f91b6a26fb2da77fdc5abacddb84ceee4dbdfefb385053bc6bba22d0a0eac5d7e5d4cc913ff10bf5e2aa2d884
7
- data.tar.gz: b0a4de3193f5ce0df525745650a0f0ea76df6752e3f8a693606efb09e8461bd7e572d043047e9adf88cb44b5962e0bea692c5117c31f090d1bd4358b79cdd6fc
6
+ metadata.gz: 4f46dc1fa6e26ddab03a457400456670b6ce163669ed26b89932d27f22e597535f0b4e92d95035df91bb0eec7b2650e3a2e8d8a05eef01b71716433cc83a10b5
7
+ data.tar.gz: 1732ba89f610c2a50c20f932bee5fb9707e292ca3cb667f4bd937b7aa7fd27e80a8a431bc0a5032866c41d215d0f8e95b55a6407e3daacf32962a3d3ccadebca
data/Gemfile CHANGED
@@ -67,7 +67,7 @@ gem 'ruby-nmap', '0.10.0'
67
67
  gem 'ruby-saml', '1.14.0'
68
68
  gem 'rvm', '1.11.3.9'
69
69
  gem 'savon', '2.12.1'
70
- gem 'selenium-devtools', '0.101.0'
70
+ gem 'selenium-devtools', '0.102.0'
71
71
  gem 'serialport', '1.3.2'
72
72
  gem 'sinatra', '2.2.0'
73
73
  gem 'slack-ruby-client', '1.0.0'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.1.2@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.452]:001 >>> PWN.help
40
+ pwn[v0.4.456]: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.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.452]:001 >>> PWN.help
55
+ pwn[v0.4.456]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -314,10 +314,10 @@ begin
314
314
  name: scan_name
315
315
  )
316
316
  if scan.any?
317
- scan_uuid = scan[:uuid]
317
+ scan_id = scan[:id]
318
318
  update_scan_resp = PWN::Plugins::NessusCloud.update_scan(
319
319
  nessus_obj: nessus_obj,
320
- scan_uuid: scan_uuid,
320
+ scan_id: scan_id,
321
321
  scan_template_uuid: scan_template_uuid,
322
322
  settings: settings,
323
323
  credentials: credentials,
@@ -58,11 +58,11 @@ begin
58
58
  nessus_obj: nessus_obj,
59
59
  name: scan_name
60
60
  )
61
- scan_uuid = scan[:uuid]
61
+ scan_id = scan[:id]
62
62
 
63
63
  PWN::Plugins::NessusCloud.launch_scan(
64
64
  nessus_obj: nessus_obj,
65
- scan_uuid: scan_uuid
65
+ scan_id: scan_id
66
66
  )
67
67
 
68
68
  scan_status = 'initializing'
@@ -73,7 +73,7 @@ begin
73
73
 
74
74
  scan_status_resp = PWN::Plugins::NessusCloud.get_scan_status(
75
75
  nessus_obj: nessus_obj,
76
- scan_uuid: scan_uuid
76
+ scan_id: scan_id
77
77
  )
78
78
 
79
79
  scan_status = scan_status_resp[:status]
@@ -87,7 +87,7 @@ begin
87
87
  print "Exporting results to #{path_to_export}..."
88
88
  PWN::Plugins::NessusCloud.export_scan_results(
89
89
  nessus_obj: nessus_obj,
90
- scan_uuid: scan_uuid,
90
+ scan_id: scan_id,
91
91
  path_to_export: path_to_export,
92
92
  format: format
93
93
  )
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PWN
4
+ module Plugins
5
+ # This plugin is used for interacting with a three track
6
+ # MSR206 Magnetic Stripe Reader / Writer
7
+ module MSR206
8
+ # Supported Method Parameters::
9
+ # msr206_obj = PWN::Plugins::MSR206.connect(
10
+ # block_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)',
11
+ # baud: 'optional - (defaults to 9600)',
12
+ # data_bits: 'optional - (defaults to 8)',
13
+ # stop_bits: 'optional - (defaults to 1)',
14
+ # parity: 'optional - (defaults to SerialPort::NONE)',
15
+ # flow_control: 'optional - (defaults to SerialPort::HARD) SerialPort::NONE|SerialPort::SOFT|SerialPort::HARD'
16
+ # )
17
+
18
+ public_class_method def self.connect(opts = {})
19
+ # Default Baud Rate for this Device is 19200
20
+ opts[:baud] = 19_200 if opts[:baud].nil?
21
+ msr206_obj = PWN::Plugins::Serial.connect(opts)
22
+ rescue StandardError => e
23
+ disconnect(msr206_obj: msr206_obj) unless msr206_obj.nil?
24
+ raise e
25
+ end
26
+
27
+ # Supported Method Parameters::
28
+ # PWN::Plugins::MSR206.disconnect(
29
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
30
+ # )
31
+
32
+ public_class_method def self.disconnect(opts = {})
33
+ PWN::Plugins::Serial.disconnect(
34
+ serial_obj: opts[:msr206_obj]
35
+ )
36
+ rescue StandardError => e
37
+ raise e
38
+ end
39
+
40
+ # Author(s):: 0day Inc. <request.pentest@0dayinc.com>
41
+
42
+ public_class_method def self.authors
43
+ "AUTHOR(S):
44
+ 0day Inc. <request.pentest@0dayinc.com>
45
+ "
46
+ end
47
+
48
+ # Display Usage for this Module
49
+
50
+ public_class_method def self.help
51
+ puts "USAGE:
52
+ msr206_obj = #{self}.connect(
53
+ block_dev: 'optional serial block device path (defaults to /dev/ttyUSB0)',
54
+ baud: 'optional (defaults to 9600)',
55
+ data_bits: 'optional (defaults to 8)',
56
+ stop_bits: 'optional (defaults to 1)',
57
+ parity: 'optional (defaults to SerialPort::NONE)',
58
+ flow_control: 'optional (defaults to SerialPort::NONE)'
59
+ )
60
+
61
+ #{self}.disconnect(
62
+ msr206_obj: 'required msr206_obj returned from #connect method'
63
+ )
64
+
65
+ #{self}.authors
66
+ "
67
+ end
68
+ end
69
+ end
70
+ end
@@ -46,6 +46,19 @@ module PWN
46
46
  verify_ssl: false
47
47
  )
48
48
 
49
+ when :put
50
+ response = rest_client.execute(
51
+ method: :put,
52
+ url: "#{base_nessus_cloud_api_uri}/#{rest_call}",
53
+ headers: {
54
+ x_apikeys: "accessKey=#{access_key}; secretKey=#{secret_key}",
55
+ accept: 'application/json',
56
+ content_type: 'application/json; charset=UTF-8'
57
+ },
58
+ payload: http_body,
59
+ verify_ssl: false
60
+ )
61
+
49
62
  when :post
50
63
  response = rest_client.execute(
51
64
  method: :post,
@@ -445,7 +458,7 @@ module PWN
445
458
  # Supported Method Parameters::
446
459
  # PWN::Plugins::NessusCloud.update_scan(
447
460
  # nessus_obj: 'required - nessus_obj returned from #login method',
448
- # scan_uuid: 'required - the scan UUID to update. Run #get_scans for a list of UUIDs',
461
+ # scan_id: 'required - the scan id to update. Run #get_scans for a list',
449
462
  # scan_template_uuid: 'required - the UUID for the Tenable-provided scan template to use. Run #get_canned_scan_templates for a list of UUIDs',
450
463
  # settings: 'required - settings object as defined by https://developer.tenable.com/reference/scans-create',
451
464
  # credentials: 'required - credentials object as defined by https://developer.tenable.com/reference/scans-create',
@@ -454,7 +467,7 @@ module PWN
454
467
 
455
468
  public_class_method def self.update_scan(opts = {})
456
469
  nessus_obj = opts[:nessus_obj]
457
- scan_uuid = opts[:scan_uuid]
470
+ scan_id = opts[:scan_id]
458
471
  scan_template_uuid = opts[:scan_template_uuid]
459
472
  settings = opts[:settings]
460
473
  credentials = opts[:credentials]
@@ -470,7 +483,7 @@ module PWN
470
483
  update_scan_resp = nessus_cloud_rest_call(
471
484
  http_method: :put,
472
485
  nessus_obj: nessus_obj,
473
- rest_call: "scans/#{scan_uuid}",
486
+ rest_call: "scans/#{scan_id}",
474
487
  http_body: http_body
475
488
  ).body
476
489
 
@@ -482,17 +495,17 @@ module PWN
482
495
  # Supported Method Parameters::
483
496
  # PWN::Plugins::NessusCloud.launch_scan(
484
497
  # nessus_obj: 'required - nessus_obj returned from #login method',
485
- # scan_uuid: 'required - scan uuid to launch'
498
+ # scan_id: 'required - scan uuid to launch'
486
499
  # )
487
500
 
488
501
  public_class_method def self.launch_scan(opts = {})
489
502
  nessus_obj = opts[:nessus_obj]
490
- scan_uuid = opts[:scan_uuid]
503
+ scan_id = opts[:scan_id]
491
504
 
492
505
  launch_scan_resp = nessus_cloud_rest_call(
493
506
  http_method: :post,
494
507
  nessus_obj: nessus_obj,
495
- rest_call: "scans/#{scan_uuid}/launch"
508
+ rest_call: "scans/#{scan_id}/launch"
496
509
  ).body
497
510
 
498
511
  JSON.parse(launch_scan_resp, symbolize_names: true)
@@ -503,16 +516,16 @@ module PWN
503
516
  # Supported Method Parameters::
504
517
  # PWN::Plugins::NessusCloud.get_scan_status(
505
518
  # nessus_obj: 'required - nessus_obj returned from #login method',
506
- # scan_uuid: 'required - scan uuid to retrieve status'
519
+ # scan_id: 'required - scan uuid to retrieve status'
507
520
  # )
508
521
 
509
522
  public_class_method def self.get_scan_status(opts = {})
510
523
  nessus_obj = opts[:nessus_obj]
511
- scan_uuid = opts[:scan_uuid]
524
+ scan_id = opts[:scan_id]
512
525
 
513
526
  scan_status_resp = nessus_cloud_rest_call(
514
527
  nessus_obj: nessus_obj,
515
- rest_call: "scans/#{scan_uuid}/latest-status"
528
+ rest_call: "scans/#{scan_id}/latest-status"
516
529
  ).body
517
530
 
518
531
  JSON.parse(scan_status_resp, symbolize_names: true)
@@ -555,16 +568,16 @@ module PWN
555
568
  # Supported Method Parameters::
556
569
  # PWN::Plugins::NessusCloud.get_scan_history(
557
570
  # nessus_obj: 'required - nessus_obj returned from #login method'
558
- # scan_uuid: 'required - scan uuid to launch'
571
+ # scan_id: 'required - scan uuid to launch'
559
572
  # )
560
573
 
561
574
  public_class_method def self.get_scan_history(opts = {})
562
575
  nessus_obj = opts[:nessus_obj]
563
- scan_uuid = opts[:scan_uuid]
576
+ scan_id = opts[:scan_id]
564
577
 
565
578
  scan_hist_resp = nessus_cloud_rest_call(
566
579
  nessus_obj: nessus_obj,
567
- rest_call: "scans/#{scan_uuid}/history"
580
+ rest_call: "scans/#{scan_id}/history"
568
581
  ).body
569
582
 
570
583
  JSON.parse(scan_hist_resp, symbolize_names: true)
@@ -575,7 +588,7 @@ module PWN
575
588
  # Supported Method Parameters::
576
589
  # PWN::Plugins::NessusCloud.export_scan_results(
577
590
  # nessus_obj: 'required - nessus_obj returned from #login method',
578
- # scan_uuid: 'required - scan uuid to export',
591
+ # scan_id: 'required - scan uuid to export',
579
592
  # path_to_export: 'required - filename to export results',
580
593
  # history_id: 'optional - defaults to last scan',
581
594
  # format: 'optional - :csv|:db|:html|:nessus|:pdf (defaults to :csv')
@@ -583,14 +596,14 @@ module PWN
583
596
 
584
597
  public_class_method def self.export_scan_results(opts = {})
585
598
  nessus_obj = opts[:nessus_obj]
586
- scan_uuid = opts[:scan_uuid]
599
+ scan_id = opts[:scan_id]
587
600
  path_to_export = opts[:path_to_export]
588
601
  if opts[:history_id]
589
602
  history_id = opts[:history_id]
590
603
  else
591
604
  scan_history_resp = get_scan_history(
592
605
  nessus_obj: nessus_obj,
593
- scan_uuid: scan_uuid
606
+ scan_id: scan_id
594
607
  )
595
608
 
596
609
  if scan_history_resp[:history].empty?
@@ -605,7 +618,7 @@ module PWN
605
618
  format = opts[:format].to_s.to_sym if opts[:format]
606
619
 
607
620
  http_body = {
608
- scan_uuid: scan_uuid,
621
+ scan_id: scan_id,
609
622
  history_id: history_id,
610
623
  format: format
611
624
  }.to_json
@@ -613,7 +626,7 @@ module PWN
613
626
  export_scan_resp = nessus_cloud_rest_call(
614
627
  http_method: :post,
615
628
  nessus_obj: nessus_obj,
616
- rest_call: "scans/#{scan_uuid}/export",
629
+ rest_call: "scans/#{scan_id}/export",
617
630
  http_body: http_body
618
631
  ).body
619
632
 
@@ -624,7 +637,7 @@ module PWN
624
637
 
625
638
  download_export_resp = nessus_cloud_rest_call(
626
639
  nessus_obj: nessus_obj,
627
- rest_call: "scans/#{scan_uuid}/export/#{file_id}/download"
640
+ rest_call: "scans/#{scan_id}/export/#{file_id}/download"
628
641
  ).body
629
642
 
630
643
  File.open(path_to_export, 'wb') do |f|
@@ -707,7 +720,7 @@ module PWN
707
720
 
708
721
  #{self}.update_scan(
709
722
  nessus_obj: 'required - nessus_obj returned from #login method',
710
- scan_uuid: 'required - the scan UUID to update. Run #get_scans for a list of UUIDs',
723
+ scan_id: 'required - the scan id to update. Run #get_scans for a list',
711
724
  scan_template_uuid: 'required - the UUID for the Tenable-provided scan template to use. Run #get_canned_scan_templates for a list of UUIDs',
712
725
  settings: 'required - settings object as defined by https://developer.tenable.com/reference/scans-create',
713
726
  credentials: 'required - credentials object as defined by https://developer.tenable.com/reference/scans-create',
@@ -716,12 +729,12 @@ module PWN
716
729
 
717
730
  #{self}.launch_scan(
718
731
  nessus_obj: 'required - nessus_obj returned from #login method',
719
- scan_uuid: 'required - scan uuid to launch'
732
+ scan_id: 'required - scan uuid to launch'
720
733
  )
721
734
 
722
735
  #{self}.get_scan_status(
723
736
  nessus_obj: 'required - nessus_obj returned from #login method',
724
- scan_uuid: 'required - scan uuid to retrieve status'
737
+ scan_id: 'required - scan uuid to retrieve status'
725
738
  )
726
739
 
727
740
  #{self}.create_tag(
@@ -733,12 +746,12 @@ module PWN
733
746
 
734
747
  #{self}.get_scan_history(
735
748
  nessus_obj: 'required - nessus_obj returned from #login method'
736
- scan_uuid: 'required - scan uuid to launch'
749
+ scan_id: 'required - scan uuid to launch'
737
750
  )
738
751
 
739
752
  #{self}.export_scan_results(
740
753
  nessus_obj: 'required - nessus_obj returned from #login method',
741
- scan_uuid: 'required - scan uuid to export',
754
+ scan_id: 'required - scan uuid to export',
742
755
  path_to_export: 'required - filename to export results',
743
756
  history_id: 'optional - defaults to last scan',
744
757
  format: 'optional - :csv|:db|:html|:nessus|:pdf (defaults to :csv')
data/lib/pwn/plugins.rb CHANGED
@@ -32,6 +32,7 @@ module PWN
32
32
  autoload :JSONPathify, 'pwn/plugins/json_pathify'
33
33
  autoload :MailAgent, 'pwn/plugins/mail_agent'
34
34
  autoload :Metasploit, 'pwn/plugins/metasploit'
35
+ autoload :MSR206, 'pwn/plugins/msr206'
35
36
  autoload :NessusCloud, 'pwn/plugins/nessus_cloud'
36
37
  autoload :NexposeVulnScan, 'pwn/plugins/nexpose_vuln_scan'
37
38
  autoload :NmapIt, 'pwn/plugins/nmap_it'
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.452'
4
+ VERSION = '0.4.456'
5
5
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::Plugins::MSR206 do
6
+ it 'should display information for authors' do
7
+ authors_response = PWN::Plugins::MSR206
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::Plugins::MSR206
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.452
4
+ version: 0.4.456
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-05-24 00:00:00.000000000 Z
11
+ date: 2022-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -786,14 +786,14 @@ dependencies:
786
786
  requirements:
787
787
  - - '='
788
788
  - !ruby/object:Gem::Version
789
- version: 0.101.0
789
+ version: 0.102.0
790
790
  type: :runtime
791
791
  prerelease: false
792
792
  version_requirements: !ruby/object:Gem::Requirement
793
793
  requirements:
794
794
  - - '='
795
795
  - !ruby/object:Gem::Version
796
- version: 0.101.0
796
+ version: 0.102.0
797
797
  - !ruby/object:Gem::Dependency
798
798
  name: serialport
799
799
  requirement: !ruby/object:Gem::Requirement
@@ -1531,6 +1531,7 @@ files:
1531
1531
  - lib/pwn/plugins/json_pathify.rb
1532
1532
  - lib/pwn/plugins/mail_agent.rb
1533
1533
  - lib/pwn/plugins/metasploit.rb
1534
+ - lib/pwn/plugins/msr206.rb
1534
1535
  - lib/pwn/plugins/nessus_cloud.rb
1535
1536
  - lib/pwn/plugins/nexpose_vuln_scan.rb
1536
1537
  - lib/pwn/plugins/nmap_it.rb
@@ -1827,6 +1828,7 @@ files:
1827
1828
  - spec/lib/pwn/plugins/json_pathify_spec.rb
1828
1829
  - spec/lib/pwn/plugins/mail_agent_spec.rb
1829
1830
  - spec/lib/pwn/plugins/metasploit_spec.rb
1831
+ - spec/lib/pwn/plugins/msr206_spec.rb
1830
1832
  - spec/lib/pwn/plugins/nessus_cloud_spec.rb
1831
1833
  - spec/lib/pwn/plugins/nexpose_vuln_scan_spec.rb
1832
1834
  - spec/lib/pwn/plugins/nmap_it_spec.rb
@@ -2096,6 +2098,7 @@ test_files:
2096
2098
  - spec/lib/pwn/plugins/json_pathify_spec.rb
2097
2099
  - spec/lib/pwn/plugins/mail_agent_spec.rb
2098
2100
  - spec/lib/pwn/plugins/metasploit_spec.rb
2101
+ - spec/lib/pwn/plugins/msr206_spec.rb
2099
2102
  - spec/lib/pwn/plugins/nessus_cloud_spec.rb
2100
2103
  - spec/lib/pwn/plugins/nexpose_vuln_scan_spec.rb
2101
2104
  - spec/lib/pwn/plugins/nmap_it_spec.rb