metasploit-framework/external/ruby-lorcon2/test.rb

64 lines
1.4 KiB
Ruby
Raw Normal View History

#!/usr/bin/env ruby
$:.unshift(File.dirname(__FILE__))
require "Lorcon2"
require "pp"
$stdout.puts "Checking LORCON version"
pp Lorcon.version
$stdout.puts "\nFetching LORCON driver list"
pp Lorcon.drivers
$stdout.puts "\nResolving driver by name 'mac80211'"
pp Lorcon.find_driver("mac80211")
$stdout.puts "\nAuto-detecting driver for interface wlan0"
pp Lorcon.auto_driver("mon0")
#tx = Lorcon::Device.new('kismet0', 'tuntap')
tx = Lorcon::Device.new('mon0')
$stdout.puts "\nCreated LORCON context"
if tx.openinjmon()
$stdout.puts "\nOpened as INJMON: " + tx.capiface
else
$stdout.puts "\nFAILED to open " + tx.capiface + " as INJMON: " + tx.error
end
tx.channel = 11
scan_patterns = ["^GET ([^ ?]+)"]
tx.each_packet { |pkt|
d3 = pkt.dot3
if d3 != nil then
p3pfu = PacketFu::Packet.parse(d3)
scan_patterns.each {|sig| hit = p3pfu.payload.scan(/#{sig}/i) || nil
printf "#{Time.now}: %s HTTP GET %s [%s] SEQ %u\n" % [p3pfu.ip_saddr, p3pfu.ip_daddr, sig, p3pfu.tcp_seq] unless hit.size.zero?
}
end
}
# tx.fmode = "INJECT"
# tx.channel = 11
# tx.txrate = 2
# tx.modulation = "DSSS"
#
# sa = Time.now.to_f
# tx.write(packet, 500, 0)
# ea = Time.now.to_f - sa
#
# sb = Time.now.to_f
# 500.times { tx.write(packet, 1, 0) }
# eb = Time.now.to_f - sb
#
# $stdout.puts "Sent 500 packets (C) in #{ea.to_s} seconds"
# $stdout.puts "Sent 500 packets (Ruby) in #{eb.to_s} seconds"