Welcome to Linux Forums! With a comprehensive Linux Forum, information on various types of Linux software and many Linux Reviews articles, we have all the knowledge you need a click away, or accessible via our knowledgeable members.
Find the answer to your Linux question:
New to Linux Forums? Register here for free!
    Linux Forums > GNU Linux Zone > Wireless Internet > Libpcap and sniffing wireless packets

Forgot Password?
 Wireless Internet   Anything related to getting wireless set up in Linux. WLAN, WiFi, etc.

Site Navigation
Linux Articles
Linux Forums
Linux Downloads
Linux Hosting
Free Magazines
Job Board
IRC Chat
RSS Feeds


Linux Forum Topics
Linux Forums
Your Distro
Linux Resources
GNU Linux Zone
The Community
Reply
 
Thread Tools Display Modes
Old 03-21-2009   #1 (permalink)
Just Joined!
 
Join Date: Mar 2009
Posts: 1
Libpcap and sniffing wireless packets

Hello everyone,

I'm working on a class project and need to sniff the WEP encrypted wireless packets from a device. I need to do this to implement E-R-A's attack on WEP. The problem, however, is that I can't figure out how to get the encrypted packets. I can sniff the device easily if I have it in monitor mode. However, does monitor mode use channel hopping? If so, does it do that while maintaing integrity of packets captured across different channels?. In any case, I need to also inject packets at the same time, so monitor mode will not do. If I set my device to managed mode and set the bssid and channel appropriately, however, I am no longer able to sniff the device.

I realize there is software out there that does what I am trying to do, such as the aircrack suite. I looked at the code but could not figure out how they do it, and so I thought I'd post here. Hopefully someone can help me.

Thank you for the help.
fhydan is offline  


Reply With Quote
Old 05-13-2009   #2 (permalink)
Just Joined!
 
Join Date: May 2009
Posts: 1
Talking Sniff and inject packets with libpcap

I have done such a thing before. It is one of those "very platform, adapter, operating system, architecture" dependent things, but i will tell you all the details, so you don't miss a thing, and adjust my experiences to fix your particular problem.

Quote:
Originally Posted by fhydan View Post
The problem, however, is that I can't figure out how to get the encrypted packets. I can sniff the device easily if I have it in monitor mode.

In any case, I need to also inject packets at the same time, so monitor mode will not do. If I set my device to managed mode and set the bssid and channel appropriately, however, I am no longer able to sniff the device.

I realize there is software out there that does what I am trying to do, such as the aircrack suite. I looked at the code but could not figure out how they do it, and so I thought I'd post here. Hopefully someone can help me.

Thank you for the help.
Most commands here require root privileges. So, run everything as root with sudo or log in the terminal as root with sudo su.

First thing up, set monitor mode. I will use wlan0 as the wireless interface for the example.

In my case, i installed the aircrack suite 1.0. My laptop's wireless chipset is Atheros AR928X. From linux 2.6.27+, it comes with ath9k driver by default. I downloaded the compat-wireless-2009-05-11, then compiled and installed it(make && make install ...etc).

Instead of ath9k, i used athload madwifi to load the madwifi drivers. After this, i shut down the wlan0 interface (ifconfig wlan0 down), and then run airmon-ng check to find out problematic processes. I kill them all(kill pid).

Next i run airmon-ng start wlan0 channel, where channel is the channel you want to sniff. So far, you should be able to see all wireless packets, and perhaps inject test packets using aireplay-ng -9 mon0. I used madwifi drivers cause i need to be able to inject, and when i ran a test using ath9k with aireplay-ng -9 mon0, there was an immediate kernel panic( pc frozen). But with madwifi it should work fine.

For some reason, sometimes, although doing all that, i could not inject, I solved it by enabling wlan0 in monitor mode alongside mon0. Simply, used iwconfig wlan0 mode monitor, followed by ifconfig wlan0 up. After this, i could do both things with ease through the mon0 interface: sniff packets, and inject packets with aireplay -9 mon0.

I have libpcap 0.8 installed. I don't know much C or C++. I am a Java Programmer. So i used the JNetPcap 1.2 RC5 library to wrap around the libpcap library. There is a function named isInjectSupported() and isSendPacketSupported() in the Pcap class of the java library, both return boolean, and tell you if you can inject/send packets over that interface. I checked the methods on mon0 (created as described earlier) and both values return true. After that, i use sendPacket() or
inject() method (whichever works) and pass them a byte array for the transmitted packet. Soon after, the sent packet shows in wireshark, in both the mon0 interface and the wlan0 interface. But, there is a limitation: the radio layer packet header must be correct, or it won't get through wlan0. It will still appear in mon0 capture in wireshark, but not in wlan0(it won't be transmitted, cause it's a malformed packet). Don't know for sure why it works that way (in Ethernet, you can send malformed packets at anytime), but i guess its ok anyway.

If you don't know java, check how does the jnetpcap wrapper c code do that using the underlying libpcap library.
If you do know java, i highly recommend using jnetpcap, along with anything else you need to accomplish your objective ( like a packet decoding framework, such as JNetStream ), cause you will save time for sure.

Quote:
Originally Posted by fhydan View Post
However, does monitor mode use channel hopping? If so, does it do that while maintaining integrity of packets captured across different channels?.
You can hop between channels using airodump mon0. It will automatically capture packets hopping between channels. If you want to see them in wireshark, just open wireshark, but let airodump opened for channel hopping. Alternatively, you can do a shell script that changes the interface's channel, with iwconfig mon0 channel channel.

#EDIT:# Regarding integrity, they keep integrity. But since your Wireless NIC can only capture on one channel at any given time, you might lose some packets due to channel hopping. You should listen only on one channel if you are interested in capturing all packets within the channel

Hope this helps you.

Last edited by NovaMage; 05-13-2009 at 09:47 AM.. Reason: Some info added
NovaMage is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Free Magazines
Run Your Own Web Server Using Linux & Apache - Free 191 Page Preview
Learn about everything you'll need to build and maintain your Linux servers, and to deploy Web applications to them.
subscribe
Open Source Security Myths Dispelled
Dispel the five major myths surrounding Open Source Security and gain the tools necessary to make a truly informed decision for your IT organization
subscribe
InformationWeek
InformationWeek is the only newsweekly you'll need to stay on top of the latest developments in information technology.
subscribe



All times are GMT. The time now is 10:22 AM.






© 2000 - 2009 - All Rights Reserved - Property of  MAS Media

Content Relevant URLs by vBSEO 3.3.0 RC2