./c0de/others/ipb_cracker.txt

0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
#!/usr/bin/env bash
# InvisionPowerBoard Cracker V1.0
# coded By 0x90 2008
# 0x90[at]bsdmail.org
# This small tool will bruteForce "Invision Power Board" MD5 hash
# work only on FreeBSD
#
#    I do not take any reponsibilty for what you do with this tool 
#    Hopefully it will make your life easier rather then making other 
#    peoples lives more difficult!
##############################
#  ___        ___   ___  
# / _ \      / _ \ / _ \ 
#| | | |_  _| (_) | | | |
#| | | \ \/ /\__, | | | |
#| |_| |>  <   / /| |_| |
# \___//_/\_\ /_/  \___/ 
##############################  
 
echo ".:: InvisionPowerBoard Cracker, Coded By 0x90 ::."
echo -n "Enter IPB md5 Hash: "
read hash
if [ -z "$hash" ] || [ "${#hash}" != "32" ]; then
echo "Error: please Enter a valid md5 hash"
exit
	fi
echo
echo -n "Enter IPB Salt: "
read salt
md5_salt=`echo "$salt" | md5sum | awk '{ print $1 }'`
 
echo -n "Select BruteForce Method:
1: Random BruteForce
2: Dictionary BruteForce
Enter your choise 1 or 2: "
read choise
if [ -z "$choise" ] || [ "$choise" != "1" ] && [ "$choise" != "2" ]; then
echo "Error: please choise between 1 or 2"
exit 1
	fi
#########################
# Random BruteForce
#########################
 
if [ "$choise" == "1" ]; then
echo "use Random method to crack"
echo "trying to bruteforce IPB MD5 hash ..."
 
echo -n "enter min lengh: "
read minlen
echo -n "enter max lengh: "
read maxlen
 
echo -n "Select bruteForce mode:
all, alnum, lower, upper, digit, alpha
> "
read mode
 
if [ "$mode" = "all" ]; then
char="a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % & ' ( ) * + , - . / : ; & < = > ? @ [ \ ] ^ _ { | } ~"
 
if [ "$mode" = "alnum" ]; then
char="a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9"
	fi
if [ "$mode" = "alpha" ]; then
char="a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9"
	fi
if [ "$mode" = "lower" ]; then
char="a b c d e f g h i j k l m n o p q r s t u v w x y z"
	fi
if [ "$mode" = "upper" ]; then
char="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
	fi
if [ "$mode" = "digit" ]; then
char="0 1 2 3 4 5 6 7 8 9"
	fi
 
bf(){
        for c in $char ; do
 
                nc=$[$nc+1]
                ch[$nc]=$c
        done
        for x in `seq 1 $[$maxlen+1]` ; do
 
                if [ $minlen -ge $x ] ; then
                        ci[$x]=1
                else
                        ci[$x]=0
                fi
        done
        for clen in `seq $minlen $maxlen` ; do
 
                while [ ${ci[$[$clen+1]]} -ne 1 ] ; do
                        wrd=""
                        for x in `seq $clen -1 1` ; do
                                wrd=$wrd${ch[${ci[$x]}]}
                        done
 
 
md5_hash=`echo "$wrd" | md5sum | awk '{ print $1 }'`
ipb_bf=`echo "$md5_salt$md5_hash" | md5sum | awk '{ print $1 }'`
 
echo "$wrd: hash: $ipb_bf"
if [ "$ipb_bf" == "$hash" ]; then
echo
echo "Cracked, IPB md5 password is: $wrd"
	exit 0
	fi
                        ci[1]=$[${ci[1]}+1]
                        for x in `seq 1 $clen`; do
                                if [ ${ci[$x]} -gt $nc ] ; then
                                        ci[$x]=1
                                        ci[$[$x+1]]=$[${ci[$[$x+1]]}+1]
                                fi
                        done
                done
        done
}
 
bf
 
 
 
fi
#########################
# Dictionary BruteForce
#########################
# Cain&Abel wordlist http://www.md5this.com/Wordlist.zip
# dont forget to convert the wordlist to Unix file format
# dos2unix Wordlist.txt
if [ "$choise" == "2" ]; then
echo "use dictionary method to crack"
echo -n "Enter dictionary name: "
read dic
echo "trying to bruteforce IPB MD5 hash ..."
 
n=`cat $dic | wc -l`
 
echo "we have $n password to try"
for (( i=1; i <= $n; i++));
	do
pass=`sed -n "$i"p $dic`
md5_hash=`echo "$pass" | md5sum | awk '{ print $1 }'`
ipb_bf=`echo "$md5_salt$md5_hash" | md5sum | awk '{ print $1 }'`
 
echo "$i: hash: $ipb_bf"
 
if [ "$ipb_bf" == "$hash" ]; then
echo
echo "Cracked, IPB md5 password is: $pass"
	exit 0
	fi
	done
fi
	exit
 

Back