ports/125595: [UPDATE] security/rainbowcrack: patch
Dax Labrador
semprix at bsdmail.org
Mon Jul 14 10:10:05 UTC 2008
>Number: 125595
>Category: ports
>Synopsis: [UPDATE] security/rainbowcrack: patch
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Mon Jul 14 10:10:05 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Dax Labrador
>Release: FreeBSD 7.0-RELEASE i386
>Organization:
>Environment:
FreeBSD cerrgglobal.com 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root at logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
Taking maintainership
Updated the MASTER SITE
Changed the maintainer
Patch rainbowcrack to support NTLM, MD2, MD4 and RIPEMD160 algorithm.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# rainbowcrack/
# rainbowcrack/Makefile
# rainbowcrack/distinfo
# rainbowcrack/pkg-descr
# rainbowcrack/pkg-plist
# rainbowcrack/files
# rainbowcrack/files/patch-HashAlgorithm.cpp
# rainbowcrack/files/patch-HashAlgorithm.h
# rainbowcrack/files/patch-HashRoutine.cpp
#
echo c - rainbowcrack/
mkdir -p rainbowcrack/ > /dev/null 2>&1
echo x - rainbowcrack/Makefile
sed 's/^X//' >rainbowcrack/Makefile << 'END-of-rainbowcrack/Makefile'
X# New ports collection makefile for: rainbowcrack
X# Date created: 8 May 2006
X# Whom: bryan at freshdns.net
X#
X# $FreeBSD: ports/security/rainbowcrack/Makefile,v 1.4 2008/02/28 15:55:05 erwin Exp $
X#
X
XPORTNAME= rainbowcrack
XPORTVERSION= 1.2
XCATEGORIES= security
XMASTER_SITES= http://cerrg.com/dax/rainbowcrack/
X
XMAINTAINER= semprix at bsdmail.org
XCOMMENT= Hash cracker that precomputes plaintext - ciphertext pairs in advance
X
X.include <bsd.port.pre.mk>
X
X.if ${ARCH} == "ia64" || ${ARCH} == "sparc64"
XBROKEN= does not compile on ia64 or sparc64
X.endif
X
Xpost-patch:
X @${REINPLACE_CMD} -e 's|g++|$$(CXX) $$(CXXFLAGS)|; s|\-O3||' \
X ${WRKSRC}/${MAKEFILE}
X
Xdo-install:
X.for f in rcrack rtgen rtdump rtsort
X ${INSTALL_PROGRAM} ${WRKSRC}/${f} ${PREFIX}/bin
X.endfor
X ${MKDIR} ${EXAMPLESDIR}
X ${INSTALL_DATA} ${WRKSRC}/charset.txt ${EXAMPLESDIR}
X
X.include <bsd.port.post.mk>
END-of-rainbowcrack/Makefile
echo x - rainbowcrack/distinfo
sed 's/^X//' >rainbowcrack/distinfo << 'END-of-rainbowcrack/distinfo'
XMD5 (rainbowcrack-1.2.tar.gz) = bf806a618206147d83d26a7e162acfe1
XSHA256 (rainbowcrack-1.2.tar.gz) = d035cb12c0f762fac78f617dea246c5cf4b7503c3b173c3871663eaa3f02b6b4
XSIZE (rainbowcrack-1.2.tar.gz) = 16215
END-of-rainbowcrack/distinfo
echo x - rainbowcrack/pkg-descr
sed 's/^X//' >rainbowcrack/pkg-descr << 'END-of-rainbowcrack/pkg-descr'
XRainbowCrack is a general propose implementation of Philippe Oechslin's faster
Xtime-memory trade-off technique.
X
XIn short, the RainbowCrack tool is a hash cracker. A traditional brute force
Xcracker tries all possible plaintexts one by one in cracking time. It is time
Xconsuming to break complex passwords this way. The idea of time-memory trade-off
Xis to do all cracking time computation in advance and store the result in files
Xso called "rainbow table". It does take a long time to precompute the tables.
XBut once the one time precomputation is finished, a time-memory trade-off
Xcracker can be hundreds of times faster than a brute force cracker, with the
Xhelp of precomputed tables.
X
XWWW: http://www.antsight.com/zsl/rainbowcrack/
END-of-rainbowcrack/pkg-descr
echo x - rainbowcrack/pkg-plist
sed 's/^X//' >rainbowcrack/pkg-plist << 'END-of-rainbowcrack/pkg-plist'
Xbin/rcrack
Xbin/rtgen
Xbin/rtdump
Xbin/rtsort
X%%EXAMPLESDIR%%/charset.txt
X at dirrm %%EXAMPLESDIR%%
END-of-rainbowcrack/pkg-plist
echo c - rainbowcrack/files
mkdir -p rainbowcrack/files > /dev/null 2>&1
echo x - rainbowcrack/files/patch-HashAlgorithm.cpp
sed 's/^X//' >rainbowcrack/files/patch-HashAlgorithm.cpp << 'END-of-rainbowcrack/files/patch-HashAlgorithm.cpp'
X--- rainbowcrack-1.2/src/HashAlgorithm.cpp.orig 2003-11-23 00:33:22.000000000 -0500
X+++ rainbowcrack-1.2/src/HashAlgorithm.cpp 2008-07-14 09:51:30.000000000 -0400
X@@ -6,9 +6,14 @@
X
X #include "HashAlgorithm.h"
X
X+#include "Public.h"
X+
X #include <openssl/des.h>
X+#include <openssl/md2.h>
X+#include <openssl/md4.h>
X #include <openssl/md5.h>
X #include <openssl/sha.h>
X+#include <openssl/ripemd.h>
X #ifdef _WIN32
X #pragma comment(lib, "libeay32.lib")
X #endif
X@@ -48,6 +53,29 @@
X des_ecb_encrypt((des_cblock*)magic, (des_cblock*)pHash, ks, DES_ENCRYPT);
X }
X
X+void HashNTLM(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
X+{
X+ unsigned char UnicodePlain[MAX_PLAIN_LEN * 2];
X+ int i;
X+ for (i = 0; i < nPlainLen; i++)
X+ {
X+ UnicodePlain[i * 2] = pPlain[i];
X+ UnicodePlain[i * 2 + 1] = 0x00;
X+ }
X+
X+ MD4(UnicodePlain, nPlainLen * 2, pHash);
X+}
X+
X+void HashMD2(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
X+{
X+ MD2(pPlain, nPlainLen, pHash);
X+}
X+
X+void HashMD4(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
X+{
X+ MD4(pPlain, nPlainLen, pHash);
X+}
X+
X void HashMD5(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
X {
X MD5(pPlain, nPlainLen, pHash);
X@@ -57,3 +85,8 @@
X {
X SHA1(pPlain, nPlainLen, pHash);
X }
X+
X+void HashRIPEMD160(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
X+{
X+ RIPEMD160(pPlain, nPlainLen, pHash);
X+}
END-of-rainbowcrack/files/patch-HashAlgorithm.cpp
echo x - rainbowcrack/files/patch-HashAlgorithm.h
sed 's/^X//' >rainbowcrack/files/patch-HashAlgorithm.h << 'END-of-rainbowcrack/files/patch-HashAlgorithm.h'
X--- rainbowcrack-1.2/src/HashAlgorithm.h.orig 2003-11-23 00:33:18.000000000 -0500
X+++ rainbowcrack-1.2/src/HashAlgorithm.h 2008-07-14 09:51:44.000000000 -0400
X@@ -8,7 +8,13 @@
X #define _HASHALGORITHM_H
X
X void HashLM(unsigned char* pPlain, int nPlainLen, unsigned char* pHash);
X+void HashNTLM(unsigned char* pPlain, int nPlainLen, unsigned char* pHash);
X+
X+void HashMD2(unsigned char* pPlain, int nPlainLen, unsigned char* pHash);
X+void HashMD4(unsigned char* pPlain, int nPlainLen, unsigned char* pHash);
X void HashMD5(unsigned char* pPlain, int nPlainLen, unsigned char* pHash);
X+
X void HashSHA1(unsigned char* pPlain, int nPlainLen, unsigned char* pHash);
X+void HashRIPEMD160(unsigned char* pPlain, int nPlainLen, unsigned char* pHash);
X
X #endif
END-of-rainbowcrack/files/patch-HashAlgorithm.h
echo x - rainbowcrack/files/patch-HashRoutine.cpp
sed 's/^X//' >rainbowcrack/files/patch-HashRoutine.cpp << 'END-of-rainbowcrack/files/patch-HashRoutine.cpp'
X--- rainbowcrack-1.2/src/HashRoutine.cpp.orig 2003-11-23 00:33:16.000000000 -0500
X+++ rainbowcrack-1.2/src/HashRoutine.cpp 2008-07-14 09:52:05.000000000 -0400
X@@ -18,8 +18,12 @@
X // Notice: MIN_HASH_LEN <= nHashLen <= MAX_HASH_LEN
X
X AddHashRoutine("lm", HashLM, 8);
X+ AddHashRoutine("ntlm", HashNTLM, 16);
X+ AddHashRoutine("md2", HashMD2, 16);
X+ AddHashRoutine("md4", HashMD4, 16);
X AddHashRoutine("md5", HashMD5, 16);
X AddHashRoutine("sha1", HashSHA1, 20);
X+ AddHashRoutine("ripemd160", HashRIPEMD160, 20);
X }
X
X CHashRoutine::~CHashRoutine()
END-of-rainbowcrack/files/patch-HashRoutine.cpp
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list