in reply to Re: Kismet Drone
in thread Kismet Drone
#!/usr/bin/perl -w use Net::Pcap; my $err; my $dev = $ARGV[0]; my $object; $object = Net::Pcap::open_offline($dev, \$err); unless (defined $object) { die 'Unable to create packet capture on device ', $dev, ' - ', $er +r; } Net::Pcap::loop($object, -1, \&callback_function, ''); Net::Pcap::close($object); sub callback_function { my ($user_data,$header,$packet) =@_; if (length($packet)>36) { my $o = unpack ('H2*',substr($packet,0,1)); #find out what kind of + packet it is if ($o eq "80") { #if it is a broadcast my $sourcemac = unpack ('H12',substr($packet,10,6)); #the packet +s source mac address my $len = hex unpack ('H2',substr($packet,37)); #get the size of + the ssid my $bs = unpack ('H12',substr($packet,16,6)); #get the basestati +on mac $ssid=unpack ('A*',substr($packet,38,$len)); #get the ssid if ($len==0) { #if the ssid isnt broadcasted $ssid=">no ssid<"; } print "Beacon Frame: source mac:",$sourcemac," basestation id: $ +bs other: ",$o," ssid: $ssid len: $len\n"; } if ($o eq "40") { #if it's a probe for ssid's my $offmac=unpack ('H12',substr($packet,10,6)); #get the source +mac print "PROBE! source mac: $offmac\n"; } if ($o eq "50") { #if it's a probe response my $offmac=unpack ('H12',substr($packet,5,6)); my $sourcemac = unpack ('H12',substr($packet,10,6)); my $bs = unpack ('H12',substr($packet,16,6)); my $len = hex unpack ('H2',substr($packet,37)); my $ssid=unpack ('A*',substr($packet,38,$len)); if ($len==0) { $ssid=">no ssid<"; } print "PROBE RESPONSES! source mac: $offmac $len $ssid\n"; } } }
|
---|