Code Monkey home page Code Monkey logo

eapmd5pass's Introduction

eapmd5pass - offline EAP-MD5 dictionary attack.

Copyright(c) 2007-2008, Joshua Wright <[email protected]>

--------------------------------------------------------------------------------

EAP-MD5 is a legacy authentication mechanism that does not provide sufficient
protection for user authentication credentials.  Users who authenticate using
EAP-MD5 subject themselves to an offline dictionary attack vulnerability.

This tool reads from a live network interface in monitor-mode, or from a
stored libpcap capture file, and extracts the portions of the EAP-MD5 
authentication exchange.  Once the challenge and response portions have been
collected from this exchange, eapmd5pass will mount an offline dictionary
attack against the user's password.


SAMPLE CAPTURES

The following sample EAP-MD5 packet captures have the corresponding
passwords:

File				Password
----				--------
eapmd5-sample.dump		beaVIs
EAPMD5-Challenge-01.cap		bradtest
brad.eaptest.cap		bradtest
bra.eaptest2.cap		bradtest


USE NOTES

Normal operation of this tool will be to specify a dictionary file of words
to use as potential passwords, one per line, along with a packet capture file
from wireless network of an EAP-MD5 exchange, as shown below:


$ ./eapmd5pass -w dict -r eapmd5-sample.dump 
eapmd5pass - Dictionary attack against EAP-MD5
Collected all data necessary to attack password for "jwright", starting attack.
User password is "beaVIs".
3917111 passwords in 6.55 seconds: 598165.01 passwords/second.


However, there may be cases where mounting an EAP-MD5 attack is necessary
even when a packet capture is not available.  If you have observed an EAP-MD5
exchange but do not have the data in a wireless packet capture that is 
understood by this tool, you can manually specify the following parameters
as command-line arguments:

	+ username
	+ EAP challenge (16 bytes)
	+ EAP response (16 bytes)
	+ EAP Id of the EAP response frame (usually "2")
	+ Dictionary file

An example of using eapmd5pass in this manner is shown below:


$ ./eapmd5pass -w dict -U jwright -C d7:ec:2f:ff:2a:da:43:7f:9d:cd:4e:3b:0d:f4:4d:50 -R 1f:fc:6c:26:59:bc:5b:b9:41:44:fd:01:eb:75:6e:37 -E 2
eapmd5pass - Dictionary attack against EAP-MD5
User password is "beaVIs".
3917111 passwords in 7.05 seconds: 555990.03 passwords/second.


Note that this tool isn't particularly useful; with no native supplicant
support for EAP-MD5 in Microsoft Windows, and the lack of support for 
encryption in an EAP-MD5 network, it is rare to see EAP-MD5 in use.  However,
the Windows IAS server has support for EAP-MD5 enabled by default, so it is
conceivable that a user could setup their own workstation to use this
protocol, unaware of the risks associated with this EAP type.  It should be
noted that the Funk Odyssey and Mac OS X supplicants both support EAP-MD5
authentication.

Why did I write this?  I'm not sure.  It's possible that I wrote this during a
chrono-synclastic infundibulum experience, where it may have meant more to me
at the time.


THANKS

Special thanks to Brad Antoniewicz for his patches and additional test
capture files.

Special thanks to Dhiru Kholia for identifying some security bugs and for
supplying fixes (CVE-2017-11668, CVE-2017-11669, and CVE-2017-11670)!

COMMENTS/QUESTIONS/CONCERNS?

Please contact me at [email protected].  Thanks!

eapmd5pass's People

Contributors

joswr1ght avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.