source: trunk/metasploit-dect/call_scanner.rb

Last change on this file was 80, checked in by dkemp, 10 years ago
  • Property svn:executable set to *
File size: 2.2 KB
Line 
1require 'msf/core'
2
3
4class Metasploit3 < Msf::Auxiliary
5
6        include Msf::Exploit::COA
7       
8        def initialize
9                super(
10                        'Name'          => 'DECT Call Scanner',
11                        'Version'       => '$revision$',
12                        'Description'   => %q{
13                                This module scans for active DECT calls, it does not do recording yet.
14                        },
15                        'Author'        =>
16                                ['DK <privilegedmode@gmail.com>'],
17                        'References'    =>
18                                [
19                                        ['Dedected', 'http://www.dedected.org'],
20                                ],
21                        'License'       => MSF_LICENSE
22                )
23
24                register_options(
25                        [
26
27                                OptString.new('VERBOSE',[false,'Be verbose.',true])
28                        ],
29                        self.class
30                )
31
32        end
33
34        :calls
35
36        def print_results
37                        print("Time\t\t\t\tRFPI\t\tChannel\n")
38                @calls.each do |rfpi, data|
39                        print("#{data['time']}\t#{data['rfpi']}\t#{data['channel']}\t\n")
40
41                end     
42        end
43
44
45        #TODO
46        #def record_call(data)
47        #       print_status("Synchronizing..")
48        #       pp_scan_mode(data['rfpi_raw'])
49        #       while(true)
50        #               #data = poll
51        #               #puts data
52        #       end
53               
54        #end
55
56        def run
57                @calls = {}
58                scanning = true
59                #record = true
60       
61                trap("INT") {
62                        scanning = false
63                        stop
64                        close_coa
65                        print_status("Call scan stopped.")
66                        print_results
67                }               
68
69                print_status("Opening interface: #{datastore['INTERFACE']}")
70                open_coa
71                print_status("Using band: #{band}")
72                print_status("Changing to call scan mode.")
73                call_scan_mode
74                print_status("Scanning for active calls..")
75
76                while (scanning)
77                        data = poll
78                        if (data != nil)
79                                parsed_data = parse_call(data)
80                                parsed_data['time'] = Time.new
81                                print_status("Found active call on: #{parsed_data['rfpi']}")
82                                @calls[parsed_data['time']] = parsed_data
83                                #if (record)
84                                #       record_call(parsed_data)
85                                #end
86
87
88                        end
89
90                        next_channel
91
92                        if (datastore['VERBOSE'])
93                                print_status("Switching to channel: #{channel}")
94                        end
95                        sleep(1)
96                end
97        end
98end
Note: See TracBrowser for help on using the repository browser.