diff options
author | Kent Fritz <fritz.kent@gmail.com> | 2011-11-06 11:52:24 -0200 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2011-11-26 09:09:08 -0600 |
commit | 9fa285666f440d524ceb7f927634b0cd44fc54fb (patch) | |
tree | 21ac3b316c9da5f4781047d48f779b296323185d /network | |
parent | 7204d918464c28426d8cb0d4bca4c9a7a8363129 (diff) |
network/hydra: Updated for version 7.1 (+new maintainer)
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
Diffstat (limited to 'network')
-rw-r--r-- | network/hydra/README | 15 | ||||
-rw-r--r-- | network/hydra/hydra.SlackBuild | 72 | ||||
-rw-r--r-- | network/hydra/hydra.info | 14 | ||||
-rw-r--r-- | network/hydra/hydra.png | bin | 3011 -> 0 bytes | |||
-rw-r--r-- | network/hydra/patches/hydra-5.4-Makefile_am.patch | 13 | ||||
-rw-r--r-- | network/hydra/patches/hydra-5.4-configure_fixups.patch | 127 | ||||
-rw-r--r-- | network/hydra/patches/hydra-5.4-libssh-0.4.patch | 187 | ||||
-rw-r--r-- | network/hydra/patches/hydra-http-form.patch | 18 |
8 files changed, 59 insertions, 387 deletions
diff --git a/network/hydra/README b/network/hydra/README index 693c60fc5dfab..f903822ae721e 100644 --- a/network/hydra/README +++ b/network/hydra/README @@ -1,3 +1,5 @@ +Hydra (A very fast network login cracker) + One of the biggest security holes are user passwords, as every password security study shows. This tool is a proof of concept, to give researchers and security consultants a way to demonstrate @@ -6,3 +8,16 @@ how easy it would be to gain unauthorized access to a remote system. This requires libssh (not libssh2). postgresql is optional, as is sap, but sap is not available at SlackBuilds.org. + +This SlackBuild includes an option to omit the GTK-based frontend xhydra. +To omit xhydra, just pass XHYDRA=0 to the script: + XHYDRA=0 sh hydra.SlackBuild + +See the README installed in /usr/doc/hydra-7.1 for more info, or visit the +website: + http://freeworld.thc.org/thc-hydra + +NOTE: +There is a utility, dpl4hydra.sh, that is installed in the documentation +directory in this SlackBuild due to it being somewhat broken. + diff --git a/network/hydra/hydra.SlackBuild b/network/hydra/hydra.SlackBuild index 59607915e47fe..7c9776a822afa 100644 --- a/network/hydra/hydra.SlackBuild +++ b/network/hydra/hydra.SlackBuild @@ -1,18 +1,18 @@ #!/bin/sh # Slackware build script for Hydra # Written by Larry Hajali <larryhaja[at]gmail[dot]com> +# Updated by Kent Fritz <fritz.kent@gmail.com> PRGNAM=hydra -VERSION=${VERSION:-5.4} -BUILD=${BUILD:-2} +VERSION=${VERSION:-7.1} +BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +XHYDRA=${XHYDRA:-1} -# Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i486 ;; arm*) ARCH=arm ;; - # Unless $ARCH is already set, use uname -m for all other archs: *) ARCH=$( uname -m ) ;; esac fi @@ -36,6 +36,14 @@ else LIBDIRSUFFIX="" fi +if [ "$XHYDRA" = "1" ]; then + CONFIG_OPTS="" + MAKE_OPTS="" +else + CONFIG_OPTS="--disable-xhydra" + MAKE_OPTS="XHYDRA_SUPPORT=" +fi + set -e rm -rf $PKG @@ -52,49 +60,43 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -# Removes a glibc error when http-form option is used -# Patch from gentoo: http://bugs.gentoo.org/show_bug.cgi?id=209116 -patch -p0 < $CWD/patches/hydra-http-form.patch - -# Add ability to specify additional libdir locations to search, and also -# merge in some precursors for the next patch -patch -p1 < $CWD/patches/hydra-5.4-configure_fixups.patch - -# Patch needed to compile against new versions of libssh. -patch -p1 < $CWD/patches/hydra-5.4-libssh-0.4.patch - -# Fixup Makefile.am before configuring -patch -p1 < $CWD/patches/hydra-5.4-Makefile_am.patch - -# sed statements cleans up some code for the gui -sed -i 's|/foo/bar/protected.html|/|' hydra-gtk/xhydra.glade -sed -i 's|/foo/bar/protected.html|/|' hydra-gtk/src/interface.c -EXTRA_LIBDIRS="/lib64 /usr/lib64" \ -./configure \ - --enable-pw-inspector=yes \ - --enable-static=no +echo CONFIG_OPTS is $CONFIG_OPTS +./configure $CONFIG_OPTS +make OPTS="-I. $SLKCFLAGS" $MAKE_OPTS +make install PREFIX=$PKG/usr DIR=/bin -make EXTRA_CFLAGS="$SLKCFLAGS" -make install PREFIX=$PKG DIR=/usr/bin - -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +# remove dpl4hydra stuff as it is somewhat broken +rm $PKG/usr/bin/dpl4hydra* # Add a desktop menu item -mkdir -p $PKG/usr/share/{applications,pixmaps} -install -m 0644 $CWD/$PRGNAM.desktop $PKG/usr/share/applications/ -cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png +if [ "$XHYDRA" = "1" ]; then + mkdir -p $PKG/usr/share/{applications,pixmaps} + install -m 0644 $CWD/$PRGNAM.desktop $PKG/usr/share/applications/ + convert hydra-logo.ico $PKG/usr/share/pixmaps/$PRGNAM.png +fi + +if [ "$XHYDRA" = "0" ]; then + rm $PKG/usr/man/man1/xhydra.1 +fi +find $PKG/usr/man -type f -exec gzip -9 {} \; mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ - CHANGES LICENSE* README TODO hydra-gtk/COPYING hydra-gtk/INSTALL \ + CHANGES LICENSE* README dpl4hydra* \ $PKG/usr/doc/$PRGNAM-$VERSION +if [ "$XHYDRA" = "1" ]; then + mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/hydra-gtk + cp -a hydra-gtk/COPYING hydra-gtk/INSTALL hydra-gtk/README \ + $PKG/usr/doc/$PRGNAM-$VERSION/hydra-gtk +fi cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc -cat $CWD/doinst.sh > $PKG/install/doinst.sh +if [ "$XHYDRA" = "1" ]; then + cat $CWD/doinst.sh > $PKG/install/doinst.sh +fi cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/network/hydra/hydra.info b/network/hydra/hydra.info index fde6b3fc8b76a..99267d77e45c2 100644 --- a/network/hydra/hydra.info +++ b/network/hydra/hydra.info @@ -1,10 +1,10 @@ PRGNAM="hydra" -VERSION="5.4" -HOMEPAGE="http://freeworld.thc.org/thc-hydra/" -DOWNLOAD="http://freeworld.thc.org/releases/hydra-5.4-src.tar.gz" -MD5SUM="fa08b465d19321e77b1a0ef912eeecc1" +VERSION="7.1" +HOMEPAGE="http://freeworld.thc.org/thc-hydra" +DOWNLOAD="http://www.thc.org/releases/hydra-7.1-src.tar.gz" +MD5SUM="0c3a6a351cb2e233cb989f0bcdd75edf" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -MAINTAINER="Larry Hajali" -EMAIL="larryhaja[at]gmail[dot]com" -APPROVED="dsomero" +MAINTAINER="Kent Fritz" +EMAIL="fritz.kent@gmail.com" +APPROVED="Niels Horn" diff --git a/network/hydra/hydra.png b/network/hydra/hydra.png Binary files differdeleted file mode 100644 index 11ca62480c3f2..0000000000000 --- a/network/hydra/hydra.png +++ /dev/null diff --git a/network/hydra/patches/hydra-5.4-Makefile_am.patch b/network/hydra/patches/hydra-5.4-Makefile_am.patch deleted file mode 100644 index 3739d1fb20d03..0000000000000 --- a/network/hydra/patches/hydra-5.4-Makefile_am.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Nur hydra-5.4-src.orig/Makefile.am hydra-5.4-src/Makefile.am ---- hydra-5.4-src.orig/Makefile.am 2006-05-05 09:10:44.000000000 -0500 -+++ hydra-5.4-src/Makefile.am 2009-07-05 11:23:02.983188212 -0500 -@@ -2,7 +2,8 @@ - # Makefile for Hydra - (c) 2001-2006 by van Hauser / THC <vh@thc.org> - # - --OPTS=-I. -Wall -O2 -+EXTRA_CFLAGS= -+OPTS=-I. -Wall $(EXTRA_CFLAGS) - # -ggdb -pedantic - LIBS=-lm - DIR=/bin diff --git a/network/hydra/patches/hydra-5.4-configure_fixups.patch b/network/hydra/patches/hydra-5.4-configure_fixups.patch deleted file mode 100644 index a622d7618b9a5..0000000000000 --- a/network/hydra/patches/hydra-5.4-configure_fixups.patch +++ /dev/null @@ -1,127 +0,0 @@ -diff -Nur hydra-5.4-src.orig/configure hydra-5.4-src/configure ---- hydra-5.4-src.orig/configure 2006-01-20 07:44:15.000000000 -0600 -+++ hydra-5.4-src/configure 2009-07-05 21:21:59.288865180 -0500 -@@ -35,11 +35,12 @@ - MANDIR="" - XHYDRA_SUPPORT="" - LIBDIRS=`cat /etc/ld.so.conf 2> /dev/null` -+EXTRA_LIBDIRS?= - STRIP="strip" - echo - - echo "Checking for openssl (libssl/ssl.h) ..." --for i in $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib \ -+for i in $EXTRA_LIBDIRS $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib \ - /*ssl /usr/*ssl /opt/*ssl /usr/local/*ssl /opt/local/*ssl \ - /*ssl/lib /usr/*ssl/lib /opt/*ssl/lib /usr/local/*ssl/lib /opt/local/*ssl/lib . - do -@@ -97,7 +98,7 @@ - fi - - echo "Checking for Postgres (libpq) ..." --for i in $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . -+for i in $EXTRA_LIBDIRS $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . - do - if [ "X" = "X$POSTGRES_PATH" ]; then - if [ -f "$i/libpq.so" -o -f "$i/libpq.dylib" ]; then -@@ -118,11 +119,11 @@ - echo " ... NOT found, module postgres disabled" - fi - --echo "Checking for SVN (ibsvn_client-1 libapr-0.so libaprutil-0.so) ..." --for i in $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . -+echo "Checking for SVN (ibsvn_client-1 libapr-1.so libaprutil-1.so) ..." -+for i in $EXTRA_LIBDIRS $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . - do - if [ "X" = "X$SVN_PATH" ]; then -- if [ -f "$i/libsvn_client-1.so" ]&&[ -f "$i/libapr-0.so" ]&&[ -f "$i/libaprutil-0.so" ]; then -+ if [ -f "$i/libsvn_client-1.so" ]&&[ -f "$i/libapr-1.so" ]&&[ -f "$i/libaprutil-1.so" ]; then - SVN_PATH="$i" - fi - fi -@@ -143,7 +144,7 @@ - fi - - echo "Checking for SAP/R3 (librfc/saprfc.h) ..." --for i in $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . -+for i in $EXTRA_LIBDIRS $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . - do - if [ "X" = "X$SAPR3_PATH" ]; then - if [ -f "$i/librfc.a" -o -f "$i/librfc.dylib" -o "$i/librfc32.dll" ]; then -@@ -183,7 +184,7 @@ - fi - - echo "Checking for libssh (libssh/libssh.h) ..." --for i in $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . -+for i in $EXTRA_LIBDIRS $LIBDIRS /lib /usr/lib /usr/local/lib /opt/local/lib . - do - if [ "X" = "X$SSH_PATH" ]; then - if [ -f "$i/libssh.so" -o -f "$i/libssh.dylib" ]; then -@@ -202,8 +203,8 @@ - fi - fi - if [ "X" = "X$APR_IPATH" ]; then -- if [ -d "$i/apr-0" ]; then -- APR_IPATH="$i/apr-0" -+ if [ -d "$i/apr-1" ]; then -+ APR_IPATH="$i/apr-1" - fi - fi - done -@@ -220,8 +221,8 @@ - fi - fi - if [ "X" = "X$APR_IPATH" ]; then -- if [ -d "$i/apr-0" ]; then -- APR_IPATH="$i/apr-0" -+ if [ -d "$i/apr-1" ]; then -+ APR_IPATH="$i/apr-1" - fi - fi - done -@@ -243,11 +244,11 @@ - - if [ -n "$SSH_PATH" ]; then - echo " ... found" -- echo 'NOTE: ensure that you have libssh v0.11 installed!! Get it from http://0xbadc0de.be !' -+ echo 'NOTE: ensure that you have libssh v0.4 installed!! Get it from http://0xbadc0de.be !' - fi - if [ "X" = "X$SSH_PATH" ]; then - echo " ... NOT found, module ssh2 disabled" -- echo 'Get it from http://0xbadc0de.be/ - use v0.11!' -+ echo 'Get it from http://0xbadc0de.be/ - use v0.4 or later!' - fi - if [ "$SSH_IPATH" = "/usr/include" ]; then - SSH_IPATH="" -@@ -262,7 +263,7 @@ - SYS=`uname -s` - if [ "$SYS" = "SunOS" ]; then - echo "Checking for Solaris libraries ..." -- for i in /lib /usr/lib /usr/local/lib $LIBDIRS . -+ for i in /lib /usr/lib /usr/local/lib $EXTRA_LIBDIRS $LIBDIRS . - do - if [ "X" = "X$NSL_PATH" ]; then - if [ -f "$i/libnsl.so" ]; then -@@ -334,6 +335,9 @@ - if [ -n "$SSH_PATH" ]; then - XDEFINES="$XDEFINES -DLIBSSH" - fi -+ -+XDEFINES="$XDEFINES -D_GNU_SOURCE" -+ - OLDPATH="" - for i in $SSL_PATH $CRYPTO_PATH $SSH_PATH $NSL_PATH $SOCKET_PATH $RESOLV_PATH $SAPR3_PATH $POSTGRES_PATH $SVN_PATH; do - if [ "$OLDPATH" = "$i" ]; then -@@ -379,10 +383,10 @@ - XLIBS="$XLIBS -lpq" - fi - if [ -n "$SVN_PATH" ]; then -- XLIBS="$XLIBS -lsvn_client-1 -lapr-0 -laprutil-0" -+ XLIBS="$XLIBS -lsvn_client-1 -lapr-1 -laprutil-1" - fi - if [ -n "$SVN_PATH" ]; then -- XLIBS="$XLIBS -lsvn_client-1 -lapr-0 -laprutil-0" -+ XLIBS="$XLIBS -lsvn_client-1 -lapr-1 -laprutil-1" - fi - if [ -n "$SSH_PATH" ]; then - XLIBS="$XLIBS -lssh" diff --git a/network/hydra/patches/hydra-5.4-libssh-0.4.patch b/network/hydra/patches/hydra-5.4-libssh-0.4.patch deleted file mode 100644 index d0933e47512fd..0000000000000 --- a/network/hydra/patches/hydra-5.4-libssh-0.4.patch +++ /dev/null @@ -1,187 +0,0 @@ -diff -Naur hydra-5.4-src.orig/hydra-ssh2.c hydra-5.4-src/hydra-ssh2.c ---- hydra-5.4-src.orig/hydra-ssh2.c 2007-03-22 14:04:29.000000000 +0000 -+++ hydra-5.4-src/hydra-ssh2.c 2009-12-18 03:12:56.000000000 +0000 -@@ -7,12 +7,51 @@ - } - #else - --#warning "If compilation of hydra-ssh2 fails, you are not using v0.11. Download from http://www.0xbadc0de.be/" -+#warning "If compilation of hydra-ssh2 fails, you are not using v0.4. Download from http://www.libssh.org/" - - #include <libssh/libssh.h> - - extern char *HYDRA_EXIT; - -+/* try to authenticate with one password */ -+static int -+try_password(ssh_session ssh_session, char *password){ -+ int auth_state; -+ int i; -+ /* printf("ssh-trying pass \"%s\"\n",password); */ -+ /* We try keyboard-interactive when it's supported. kbdint is -+ * what openssh tries first when logging somewhere. -+ */ -+ auth_state = ssh_userauth_kbdint(ssh_session, NULL, NULL); -+ if(auth_state == SSH_AUTH_INFO){ -+ i=0; -+ /* we feed 10 password responses at max. Keybint is challenge-response -+ * based so the server could ask unrelated questions -+ */ -+ while(auth_state == SSH_AUTH_INFO && i<10){ -+ ssh_userauth_kbdint_setanswer(ssh_session, i, password); -+ auth_state = ssh_userauth_kbdint(ssh_session, NULL, NULL); -+ i++; -+ } -+ /* Partial authentication is specific to SSH : the password is valid but -+ * an other authentication token is needed (generaly private key) -+ */ -+ if(auth_state == SSH_AUTH_PARTIAL) -+ auth_state = SSH_AUTH_SUCCESS; -+ if(auth_state == SSH_AUTH_INFO) -+ auth_state = SSH_AUTH_ERROR; -+ return auth_state; -+ } -+ if(auth_state == SSH_AUTH_ERROR) -+ return auth_state; -+ /* Keyboard-interactive is not supported so we run through the password -+ * method */ -+ auth_state = ssh_userauth_password(ssh_session, NULL, password); -+ if(auth_state == SSH_AUTH_PARTIAL) -+ auth_state = SSH_AUTH_SUCCESS; -+ return auth_state; -+} -+ - int - start_ssh2(int s, unsigned long int ip, int port, unsigned char options, char *miscptr, FILE * fp) - { -@@ -21,17 +60,17 @@ - char *buf; - char *rc; - struct sockaddr_in targetip; -- SSH_SESSION *ssh_session; -- SSH_OPTIONS *ssh_opt; -+ ssh_session ssh_session; -+ char buffer[64], firstlogin[128]; - int auth_state; -- int i = 0; -+ const int btrue = 1; - - if (strlen(login = hydra_get_next_login()) == 0) - login = empty; - if (strlen(pass = hydra_get_next_password()) == 0) - pass = empty; - -- ssh_opt=options_new(); -+ ssh_session=ssh_new(); - memset(&targetip, 0, sizeof(targetip)); - memcpy(&targetip.sin_addr.s_addr, &ip, 4); - targetip.sin_family = AF_INET; -@@ -41,16 +80,18 @@ - buf = malloc(20); - inet_ntop(AF_INET, &targetip.sin_addr, buf, 20); - #endif -- options_set_wanted_method(ssh_opt,KEX_COMP_C_S,"none"); -- options_set_wanted_method(ssh_opt,KEX_COMP_S_C,"none"); -- options_set_port(ssh_opt, port); -- options_set_host(ssh_opt, buf); -- options_set_username(ssh_opt, login); -- -- if ((ssh_session = ssh_connect(ssh_opt)) == NULL) { -+ snprintf(firstlogin,sizeof(firstlogin),"%s",login); -+ ssh_options_set(ssh_session, SSH_OPTIONS_SSH1, &btrue); -+ ssh_options_set(ssh_session, SSH_OPTIONS_PORT, &port); -+ ssh_options_set(ssh_session, SSH_OPTIONS_HOST, buf); -+ ssh_options_set(ssh_session, SSH_OPTIONS_USER, login); -+ /* printf("ssh-connecting with login \"%s\"\n",login); */ -+ if (ssh_connect(ssh_session) == SSH_ERROR) { - rc = ssh_get_error(ssh_session); - if ((rc != NULL) && (rc[0] != '\0')) { -- if (strncmp("connect:", ssh_get_error(ssh_session), strlen("connect:")) == 0) -+ snprintf(buffer,sizeof(buffer),"%s",rc); -+ ssh_disconnect(ssh_session); -+ if (strncmp("connect:", buffer, strlen("connect:")) == 0) - return 3; - else - return 4; -@@ -60,43 +101,54 @@ - free(buf); - buf = NULL; - #endif -- -- do { -- /* why this crap? */ -- auth_state = ssh_userauth_kbdint(ssh_session, login, NULL); -- while (i < 10 && auth_state == SSH_AUTH_INFO) { -- ssh_userauth_kbdint_setanswer(ssh_session, i, pass); -- auth_state = ssh_userauth_kbdint(ssh_session, login, NULL); -- i++; -- } -- -- if (auth_state == SSH_AUTH_SUCCESS || ssh_userauth_password(ssh_session, login, pass) == SSH_AUTH_SUCCESS) { -- ssh_disconnect(ssh_session); /* this automagically frees the ssh_opt buffer */ -- hydra_report_found_host(port, ip, "ssh2", fp); -- hydra_completed_pair_found(); -- if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0) -- return 2; -- /* free(ssh_opt); */ /* DOUBLE FREE ! */ -+ /* None method is important since it can flag passwordless servers */ -+ auth_state=ssh_userauth_none(ssh_session, login); -+ if(auth_state == SSH_AUTH_SUCCESS){ -+ /* passwordless server */ -+ hydra_report_found_host(port, ip, "ssh2", fp); -+ hydra_completed_pair_found(); -+ ssh_disconnect(ssh_session); -+ if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0) -+ return 2; -+ else - return 1; -- } else { -- if (ssh_error_code(ssh_session) == 1) { -- hydra_completed_pair(); -+ } -+ -+ do { -+ auth_state=try_password(ssh_session, pass); -+ if (auth_state == SSH_AUTH_SUCCESS) { -+ ssh_disconnect(ssh_session); /* this automagically frees the ssh_opt buffer */ -+ hydra_report_found_host(port, ip, "ssh2", fp); -+ hydra_completed_pair_found(); - if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0) - return 2; -+ return 1; - } else { -- ssh_disconnect(ssh_session); /* this automagically frees the ssh_opt buffer */ -- hydra_completed_pair(); /* really? */ -- if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0) -+ if (auth_state == SSH_AUTH_DENIED) { -+ hydra_completed_pair(); -+ if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0){ -+ ssh_disconnect(ssh_session); - return 2; -- /* free(ssh_opt); */ /* DOUBLE FREE ! */ -+ } -+ /* set a new password to try */ -+ login=hydra_get_next_login(); -+ if(strcmp(login,firstlogin) != 0){ -+ /* we can't try a new login without a new session. */ -+ ssh_disconnect(ssh_session); -+ //hydra_completed_pair_skip(); -+ return 1; -+ } -+ pass=hydra_get_next_password(); -+ /* try again using same session */ -+ } else { -+ ssh_disconnect(ssh_session); /* this automagically frees the ssh_opt buffer */ -+ /* there was an error. The password was not really tried.*/ -+ //hydra_completed_pair_skip(); - return 1; - } - } - } while(1); - -- /* not reached */ -- -- /* free(ssh_opt); */ /* risk of double free */ - return 1; - } - diff --git a/network/hydra/patches/hydra-http-form.patch b/network/hydra/patches/hydra-http-form.patch deleted file mode 100644 index 6dde09cdf1ed1..0000000000000 --- a/network/hydra/patches/hydra-http-form.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- hydra-http-form.old 2008-02-06 09:42:49.000000000 +0000 -+++ hydra-http-form.c 2008-02-06 09:43:45.000000000 +0000 -@@ -149,7 +149,6 @@ - } - - if (hydra_send(s, buffer, strlen(buffer), 0) < 0) { -- free(updvariables); - free(upd2variables); - return 1; - } -@@ -183,7 +182,6 @@ - */ - - free(buf); -- free(updvariables); - free(upd2variables); - - if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0) |