don't panic.

[..]
[ local ] [ off site ]
Cryptography | Security
  • RC4 no more I coded the RC4 algorithm to work with any length key. I compiled the code with -O3 using gcc, and was able to walk through a 24 bit keyspace in 585 seconds (Pentium 3 500mhz). Then, I hand optimized the code to crack a 40 bit keyspace. Of course, I could assign keys from any bit range, and I could stop the search at any time. This hand optimized version could walk through the 24 bit space in 74 seconds on the same machine. Extrapolating, I can crack the entire 40 bit RC4 on a single processor in approximately 56 days. Netscape often only uses 40 bit version of this algorithm to encrypt data. The source code contains a description of the algorithm that I found on the net, and an article detailing the appearance of the RC4 code on the cypherpunks mailing list some years back. Download.
  • jumble jumble takes as input a set of n characters. These characters are then operated upon to form all n! possible permutations. A dictionary file is read into memory, and every permutation is checked against the dictionary using a binary search. Good for solving newspaper puzzles. Download.
  • cracker Cracker is a scaled down version of Crack. I wrote it not to function as a fullfledged security tool, but rather as an exercise is to see how easily I might compromise a passwd file with a little time and /usr/dict/words. Cracker reads in words from a dictionary, encrypts them with a given salt, and compares them with the encrypted text that is being attacked. This is just a basic dictionary attack. Download the source.
  • brute brute takes a character set file (containing characters that can be used in possible passwords) and an encrypted password entry (probably from /etc/passwd). brute then proceeds to test all permutations of varying lengths of symbols in the character set until the original passwd is discovered. This is not particularly practical, since there are 268 possible 8 character passwords possible from just the lowercase letters. Download the source.
  • freq Performs frequency count on text file. Download.
  • sockpipe Very similar to a program called "datapipe", except I wrote this one and I am therefore fond of it. sockpipe binds to a specified port on the localhost, and forwards all incoming data to a specified port on a specified port. As an example, sockpipe could be bound to port 9999 on localhost, and all connections to it could bounce to www.gnu.org port 80. Thus, pointing netscape to localhost:9999 would conjure the gnu website. Download the source.
  • ssh_mon I was considering how much faith I put in a remote host's sshd. Any sysadmin could monitor the traffic coming through the daemon -- in the plaintext. I made some modifications to serverloop.c to do this and made a diff of the changes. Traffic is logged in a very unorganized fashion to /tmp/ssh_mon. I didn't want to make this very spectacular and functional. I more just wanted to confirm that this was possible and simple to do. Download the patch.