FakeIKEd
Latest release:
fiked-0.0.5.tar.bz2 .asc
Development:
droe/fiked
— follow @droethlisberger for news
FakeIKEd, or fiked
for short, is a fake IKE daemon supporting
just enough of the standards and Cisco extensions to attack commonly
found insecure Cisco VPN PSK+XAUTH based IPsec authentication setups
in what could be described as a semi MitM attack. Fiked can
impersonate a VPN gateway’s IKE responder in order to capture XAUTH
login credentials; it doesn’t currently do the client part of full MitM.
Fiked is partially based on low-level ISAKMP packet manipulation code taken from vpnc and uses libgcrypt and optionally libnet.
Fiked supports IKEv1 in aggressive mode, using pre-shared keys and XAUTH. Supported algorithms are DES, 3DES, AES-128, AES-192, AES-256; MD5, SHA1; and DH groups 1, 2 and 5. IKE main mode is not supported.
The Attack
Basically, if you know the pre-shared key, also known as shared secret or group password, you can play Man in the Middle, impersonate the VPN gateway in IKE phase 1, and learn XAUTH user credentials in phase 2.
This attack is not new. It has been known for a long time that IKE using PSK with XAUTH is insecure, and this is not the first actual implementation of the attack.
To successfully demonstrate an attack on a VPN site, you need to know the shared secret, and you must be able to intercept the IKE traffic between the clients and the VPN gateway.
There are several ways to find out the shared secret, including being a legitimate user, grabbing it from some Cisco config file, using ike-crack, or layer 8 hackery.
There are also several ways to redirect the IKE traffic to your running fiked instance, including ARP spoofing, 802.11 hostap, or layer 1 hackery.
Usage
Usage: fiked [-rdqhV] -g gw -k id:psk [-k ..] [-u user] [-l file] [-L file]
-r use raw socket: forge ip src addr to match <gateway> (disables -u)
-d detach from tty and run as a daemon (implies -q)
-q be quiet, don't write anything to stdout
-h print help and exit
-V print version and exit
-g gw VPN gateway address to impersonate
-k i:k pre-shared key aka. group password, shared secret, prefixed
with its group/key id (first -k sets default)
-u user drop privileges to unprivileged user account
-l file append results to credential log file
-L file verbous logging to file instead of stdout
See the README
file and fiked(1)
manpage for more details.
Fiked builds and runs on FreeBSD, OpenBSD and Linux, and probably other BSD variants too. MacOS X is reported not to work. Please send me patches or problem reports. All you should need are the library dependencies, a C99 capable GCC (3.2.x is fine), and GNU make.
Installation
Fiked is available as a package or port on the following systems:
- FreeBSD: security/fiked
- DragonFly BSD: security/fiked
- BlackArch Linux: fiked
- Kali Linux: fiked
Related Information
- Cisco Advisory about this and related Cisco VPN vulnerabilities
- Authentication Vulnerabilities in IKE and Xauth with Weak Pre-Shared Secrets by John Pliam (note that this is from 1999)
In the Press
- http://yz.mit.edu/wp/howto-crack-yahoos-intranet/
- http://pentestit.com/2009/08/03/fakeiked-attack-unsecure-cisco-vpn-setups/
- http://78.46.103.77/blag/?p=62
- http://www.darknet.org.uk/2009/08/fakeiked-fake-ike-daemon-tool-for-mitm/
- http://seclists.org/pen-test/2009/Jul/0118.html
- http://www.macosxhints.com/article.php?story=20070827135109248
- http://www.nta-monitor.com/wiki/index.php/Ike-scan_Desired_New_Features