diff options
author | Jeroen Roovers <jer@gentoo.org> | 2010-08-22 21:57:58 +0000 |
---|---|---|
committer | Jeroen Roovers <jer@gentoo.org> | 2010-08-22 21:57:58 +0000 |
commit | 2e905fda215681fafab01379dd06e56848ed02ec (patch) | |
tree | b706ea89183838b75342fd5be8cdffaf589f6d45 /net-analyzer | |
parent | Remove profile.bashrc since it only did CFLAGS checks which shouldn't have ex... (diff) | |
download | gentoo-2-2e905fda215681fafab01379dd06e56848ed02ec.tar.gz gentoo-2-2e905fda215681fafab01379dd06e56848ed02ec.tar.bz2 gentoo-2-2e905fda215681fafab01379dd06e56848ed02ec.zip |
Version bump. Fix several QA issues based on a patch by Kevin Pyle (bug #333803).
(Portage version: 2.2_rc67/cvs/Linux i686)
Diffstat (limited to 'net-analyzer')
-rw-r--r-- | net-analyzer/hydra/ChangeLog | 9 | ||||
-rw-r--r-- | net-analyzer/hydra/files/hydra-5.4-libssh-0.2.patch | 213 | ||||
-rw-r--r-- | net-analyzer/hydra/hydra-5.4-r2.ebuild | 69 | ||||
-rw-r--r-- | net-analyzer/hydra/hydra-5.7.ebuild | 81 |
4 files changed, 89 insertions, 283 deletions
diff --git a/net-analyzer/hydra/ChangeLog b/net-analyzer/hydra/ChangeLog index 1bc811644ccf..c8866cf63573 100644 --- a/net-analyzer/hydra/ChangeLog +++ b/net-analyzer/hydra/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-analyzer/hydra # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/hydra/ChangeLog,v 1.37 2010/05/21 15:53:49 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/hydra/ChangeLog,v 1.38 2010/08/22 21:57:58 jer Exp $ + +*hydra-5.7 (22 Aug 2010) + + 22 Aug 2010; Jeroen Roovers <jer@gentoo.org> -hydra-5.4-r2.ebuild, + -files/hydra-5.4-libssh-0.2.patch, +hydra-5.7.ebuild: + Version bump. Fix several QA issues based on a patch by Kevin Pyle (bug + #333803). 21 May 2010; Peter Volkov <pva@gentoo.org> hydra-5.4-r3.ebuild: amd64 stable, bug 310017 diff --git a/net-analyzer/hydra/files/hydra-5.4-libssh-0.2.patch b/net-analyzer/hydra/files/hydra-5.4-libssh-0.2.patch deleted file mode 100644 index b15f6ec1354c..000000000000 --- a/net-analyzer/hydra/files/hydra-5.4-libssh-0.2.patch +++ /dev/null @@ -1,213 +0,0 @@ -Les sous-répertoires hydra-5.4-src/arm et hydra-5.4-src-libssh0.2/arm sont identiques. -diff -u hydra-5.4-src/configure hydra-5.4-src-libssh0.2/configure ---- hydra-5.4-src/configure 2006-01-20 14:44:15.000000000 +0100 -+++ hydra-5.4-src-libssh0.2/configure 2008-10-31 22:32:47.000000000 +0100 -@@ -243,11 +243,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.2 or later 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.2 or later' - fi - if [ "$SSH_IPATH" = "/usr/include" ]; then - SSH_IPATH="" -Seulement dans hydra-5.4-src-libssh0.2/: .hydra-ftp.c.swp -Les sous-répertoires hydra-5.4-src/hydra-gtk et hydra-5.4-src-libssh0.2/hydra-gtk sont identiques. -Seulement dans hydra-5.4-src-libssh0.2/: .hydra-mod.c.swp -diff -u hydra-5.4-src/hydra-ssh2.c hydra-5.4-src-libssh0.2/hydra-ssh2.c ---- hydra-5.4-src/hydra-ssh2.c 2007-03-22 15:04:29.000000000 +0100 -+++ hydra-5.4-src-libssh0.2/hydra-ssh2.c 2008-11-01 21:21:08.000000000 +0100 -@@ -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.2 or 0.2.1. Download from http://www.0xbadc0de.be/" - - #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) - { -@@ -20,18 +59,19 @@ - char *login, *pass; - char *buf; - char *rc; -+ char buffer[64]; - struct sockaddr_in targetip; - SSH_SESSION *ssh_session; - SSH_OPTIONS *ssh_opt; - int auth_state; -- int i = 0; -+ char firstlogin[128]; - - if (strlen(login = hydra_get_next_login()) == 0) - login = empty; - if (strlen(pass = hydra_get_next_password()) == 0) - pass = empty; -- -- ssh_opt=options_new(); -+ snprintf(firstlogin,sizeof(firstlogin),"%s",login); -+ ssh_opt=ssh_options_new(); - memset(&targetip, 0, sizeof(targetip)); - memcpy(&targetip.sin_addr.s_addr, &ip, 4); - targetip.sin_family = AF_INET; -@@ -41,16 +81,21 @@ - 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) { -+ ssh_options_allow_ssh1(ssh_opt,1); -+// ssh_options_set_wanted_algos (ssh_opt,KEX_COMP_C_S,"none"); -+// ssh_options_set_wanted_algos (ssh_opt,KEX_COMP_S_C,"none"); -+ ssh_options_set_port(ssh_opt, port); -+ ssh_options_set_host(ssh_opt, buf); -+ ssh_options_set_username(ssh_opt, login); -+ ssh_session=ssh_new(); -+ ssh_set_options(ssh_session,ssh_opt); -+ /* 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 +105,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; - } - -Les sous-répertoires hydra-5.4-src/palm et hydra-5.4-src-libssh0.2/palm sont identiques. diff --git a/net-analyzer/hydra/hydra-5.4-r2.ebuild b/net-analyzer/hydra/hydra-5.4-r2.ebuild deleted file mode 100644 index cb673851d0bb..000000000000 --- a/net-analyzer/hydra/hydra-5.4-r2.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2009 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/hydra/hydra-5.4-r2.ebuild,v 1.5 2009/12/18 10:51:29 pva Exp $ - -inherit eutils - -DESCRIPTION="Advanced parallized login hacker" -HOMEPAGE="http://www.thc.org/thc-hydra/" -SRC_URI="http://www.thc.org/releases/${P}-src.tar.gz" - -LICENSE="HYDRA GPL-2" -SLOT="0" -KEYWORDS="amd64 ppc x86" -IUSE="gtk ssl" - -DEPEND="gtk? ( >=x11-libs/gtk+-1.2 ) - ssl? ( - dev-libs/openssl - >=net-libs/libssh-0.2 - <net-libs/libssh-0.4.0 - )" - -S=${WORKDIR}/${P}-src - -src_unpack() { - unpack ${A} - cd "${S}" - sed -i "s:-O2:${CFLAGS}:" Makefile.am || die "sed failed" - epatch "${FILESDIR}/${P}-_FORTIFY_SOURCE.patch" - epatch "${FILESDIR}/${P}-free-without-malloc.patch" - epatch "${FILESDIR}/${P}-libssh-0.2.patch" -} - -src_compile() { - if use gtk ; then - ./configure --prefix=/usr || die "configure failed" - else - ./configure --prefix=/usr --disable-xhydra || die "configure failed" - fi - - sed -i \ - -e '/^XDEFINES=/s:=.*:=:' \ - -e '/^XLIBS=/s:=.*:=:' \ - -e '/^XLIBPATHS/s:=.*:=:' \ - -e '/^XIPATHS=/s:=.*:=:' \ - Makefile || die "pruning vars" - - if use ssl ; then - sed -i \ - -e '/^XDEFINES=/s:=:=-DLIBOPENSSL -DLIBSSH:' \ - -e '/^XLIBS=/s:=:=-lcrypto -lssl -lssh:' \ - Makefile || die "adding ssl" - fi - emake || die "make failed" - - if use gtk ; then - cd hydra-gtk - econf - emake || die "emake hydra-gtk failed" - fi -} - -src_install() { - dobin hydra pw-inspector || die "dobin failed" - if use gtk ; then - dobin hydra-gtk/src/xhydra || die "gtk" - fi - dodoc CHANGES README TODO -} diff --git a/net-analyzer/hydra/hydra-5.7.ebuild b/net-analyzer/hydra/hydra-5.7.ebuild new file mode 100644 index 000000000000..bbcc2128f787 --- /dev/null +++ b/net-analyzer/hydra/hydra-5.7.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/hydra/hydra-5.7.ebuild,v 1.1 2010/08/22 21:57:58 jer Exp $ + +EAPI="2" + +inherit toolchain-funcs + +DESCRIPTION="Advanced parallized login hacker" +HOMEPAGE="http://www.thc.org/thc-hydra/" +SRC_URI="http://freeworld.thc.org/releases/${P}-src.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="gtk ssl" + +DEPEND="gtk? ( >=x11-libs/gtk+-1.2 ) + dev-libs/openssl + ssl? ( + >=net-libs/libssh-0.4.0 + )" + +S=${WORKDIR}/${P}-src + +src_prepare() { + # None of the settings in Makefile.unix are useful to us + : > Makefile.unix + + sed -i \ + -e 's:-O2:$(CPPFLAGS) $(CFLAGS):g' \ + -e 's:|| echo.*$::' \ + -e '/\t-$(CC)/s/-//' \ + -e '/ -o /s:$(OPTS):& $(LDFLAGS):g' \ + Makefile.am || die "sed failed" +} + +src_configure() { + # Note: despite the naming convention, the top level script is not an + # autoconf-based script. + ./configure \ + --prefix=/usr \ + $(use gtk && echo --disable-xhydra) \ + || die "configure failed" + + sed -i \ + -e '/^XDEFINES=/s:=.*:=:' \ + -e '/^XLIBS=/s:=.*:=-lcrypto:' \ + -e '/^XLIBPATHS/s:=.*:=:' \ + -e '/^XIPATHS=/s:=.*:=:' \ + Makefile || die "pruning vars" + + if use ssl ; then + sed -i \ + -e '/^XDEFINES=/s:=:=-DLIBOPENSSL -DLIBSSH:' \ + -e '/^XLIBS=/s:$: -lssl -lssh:' \ + Makefile || die "adding ssl" + fi + + if use gtk ; then + cd hydra-gtk && \ + econf || die "econf failed" + fi +} + +src_compile() { + tc-export CC + emake || die "make failed" + if use gtk ; then + cd hydra-gtk && \ + emake || die "emake hydra-gtk failed" + fi +} + +src_install() { + dobin hydra pw-inspector || die "dobin failed" + if use gtk ; then + dobin hydra-gtk/src/xhydra || die "gtk" + fi + dodoc CHANGES README TODO +} |