Medusa is intended to be a speedy, massively parallel, modular, network login brute-forcer. It is similar to THC-Hydra, with several notable exceptions: GPL license, pthread-based, additional modules, among others. An ebuild is attached.
Created attachment 85949 [details] net-analyzer/medusa-1.1.ebuild
131950
Adding additional dependency: 126323. In order for the NCP module to function, the ncpfs header/library files must installed at compile time. The patch in 126323 adds a USE flag to install those files. Unfortunately, it doesn't look like I can place a dependency in this ebuild to request that. Specifically, have medusa depend on ncpfs only if ncpfs was built with the "install-dev" USE flag. Maybe I'm missing something... The dependencies are currently identified in the RDEPEND variable. Is this the correct place? Medusa should build even if non of those are present. However, adding them later will not make those features start to work. Medusa would have to be rebuilt. Also, is it possible to have all USE flags enabled by default? This would mean the default behaviour is to install all dependencies and would result in medusa building with all modules enabled.
(In reply to comment #3) >is it possible to have all USE flags enabled by default? >This would mean the default behaviour is to install all dependencies and would >result in medusa building with all modules enabled first, i think that you have to add some USE flags to this ebuild (postgres,svn,.....) you can warn the user about this issue: turn on all the use/modules he needs i'm trying to test medusa on my machine (amd64) but i get some compilation errors, here there is my output: make all-recursive make[1]: Entering directory `/var/tmp/portage/medusa-1.1/work/medusa-1.1' Making all in src make[2]: Entering directory `/var/tmp/portage/medusa-1.1/work/medusa-1.1/src' Making all in modsrc make[3]: Entering directory `/var/tmp/portage/medusa-1.1/work/medusa-1.1/src/modsrc' if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT telnet.o -MD -MP -MF ".deps/telnet.Tpo" -c -o telnet.o telnet.c; \ then mv -f ".deps/telnet.Tpo" ".deps/telnet.Po"; else rm -f ".deps/telnet.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT medusa-trace.o -MD -MP -MF ".deps/medusa-trace.Tpo" -c -o medusa-trace.o `test -f '../medusa-trace.c' || echo './'`../medusa-trace.c; \ then mv -f ".deps/medusa-trace.Tpo" ".deps/medusa-trace.Po"; else rm -f ".deps/medusa-trace.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT smbnt.o -MD -MP -MF ".deps/smbnt.Tpo" -c -o smbnt.o smbnt.c; \ then mv -f ".deps/smbnt.Tpo" ".deps/smbnt.Po"; else rm -f ".deps/smbnt.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT http.o -MD -MP -MF ".deps/http.Tpo" -c -o http.o http.c; \ then mv -f ".deps/http.Tpo" ".deps/http.Po"; else rm -f ".deps/http.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT ssh.o -MD -MP -MF ".deps/ssh.Tpo" -c -o ssh.o ssh.c; \ then mv -f ".deps/ssh.Tpo" ".deps/ssh.Po"; else rm -f ".deps/ssh.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT mssql.o -MD -MP -MF ".deps/mssql.Tpo" -c -o mssql.o mssql.c; \ then mv -f ".deps/mssql.Tpo" ".deps/mssql.Po"; else rm -f ".deps/mssql.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT pop3.o -MD -MP -MF ".deps/pop3.Tpo" -c -o pop3.o pop3.c; \ then mv -f ".deps/pop3.Tpo" ".deps/pop3.Po"; else rm -f ".deps/pop3.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT mysql.o -MD -MP -MF ".deps/mysql.Tpo" -c -o mysql.o mysql.c; \ then mv -f ".deps/mysql.Tpo" ".deps/mysql.Po"; else rm -f ".deps/mysql.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT sha1.o -MD -MP -MF ".deps/sha1.Tpo" -c -o sha1.o sha1.c; \ then mv -f ".deps/sha1.Tpo" ".deps/sha1.Po"; else rm -f ".deps/sha1.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT pcanywhere.o -MD -MP -MF ".deps/pcanywhere.Tpo" -c -o pcanywhere.o pcanywhere.c; \ then mv -f ".deps/pcanywhere.Tpo" ".deps/pcanywhere.Po"; else rm -f ".deps/pcanywhere.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT ftp.o -MD -MP -MF ".deps/ftp.Tpo" -c -o ftp.o ftp.c; \ then mv -f ".deps/ftp.Tpo" ".deps/ftp.Po"; else rm -f ".deps/ftp.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT imap.o -MD -MP -MF ".deps/imap.Tpo" -c -o imap.o imap.c; \ then mv -f ".deps/imap.Tpo" ".deps/imap.Po"; else rm -f ".deps/imap.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT rsh.o -MD -MP -MF ".deps/rsh.Tpo" -c -o rsh.o rsh.c; \ then mv -f ".deps/rsh.Tpo" ".deps/rsh.Po"; else rm -f ".deps/rsh.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT rexec.o -MD -MP -MF ".deps/rexec.Tpo" -c -o rexec.o rexec.c; \ then mv -f ".deps/rexec.Tpo" ".deps/rexec.Po"; else rm -f ".deps/rexec.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT wrapper.o -MD -MP -MF ".deps/wrapper.Tpo" -c -o wrapper.o wrapper.c; \ then mv -f ".deps/wrapper.Tpo" ".deps/wrapper.Po"; else rm -f ".deps/wrapper.Tpo"; exit 1; fi if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -MT rlogin.o -MD -MP -MF ".deps/rlogin.Tpo" -c -o rlogin.o rlogin.c; \ then mv -f ".deps/rlogin.Tpo" ".deps/rlogin.Po"; else rm -f ".deps/rlogin.Tpo"; exit 1; fi wrapper.c: In function `initModule': wrapper.c:262: warning: cast from pointer to integer of different size wrapper.c:262: warning: cast from pointer to integer of different size wrapper.c:282: warning: cast from pointer to integer of different size wrapper.c:282: warning: cast from pointer to integer of different size wrapper.c:302: warning: cast from pointer to integer of different size wrapper.c:302: warning: cast from pointer to integer of different size x86_64-pc-linux-gnu-gcc -march=k8 -O2 -pipe -g -DDEBUG -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/include/apr-0 -L/usr/local/lib -rdynamic -ldl -o telnet.mod -module -fPIC -shared telnet.o medusa-trace.o -lssh2 -lssl -lpthread /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.5/../../../../x86_64-pc-linux-gnu/bin/ld: telnet.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC telnet.o: could not read symbols: Bad value collect2: ld returned 1 exit status make[3]: *** [telnet.mod] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory `/var/tmp/portage/medusa-1.1/work/medusa-1.1/src/modsrc' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/medusa-1.1/work/medusa-1.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/medusa-1.1/work/medusa-1.1' make: *** [all] Error 2
Created attachment 91649 [details, diff] medusa-1.1-fpic-fix.patch fpic patch for amd64 by Joe <jmk@foofus.net>
Created attachment 91650 [details] net-analyzer/medusa-1.1.ebuild net-analyzer/medusa-1.1 ebuild -added the patch provided by Joe <jmk@foofus.net> -added missing use builds and run on my system (amd64)
Created attachment 100289 [details] Medusa v1.3 ebuild (net-analyzer/medusa-1.3.ebuild)
(In reply to comment #7) > Created an attachment (id=100289) [edit] > Medusa v1.3 ebuild (net-analyzer/medusa-1.3.ebuild) > works as intended on my system (tested on AMD64) is possible to fix all the Automagic dependencies stuff in configure? this is required for a better handling of configure switches: -ncpfs support -openssl -postreSQL/libsql -ssh2/libssh2 -subversion
> is possible to fix all the Automagic dependencies stuff in configure? > this is required for a better handling of configure switches: > -ncpfs support > -openssl > -postreSQL/libsql > -ssh2/libssh2 > -subversion Sorry, I don't follow you here. Autoconf should detect each of the above dependencies and build the modules appropriately. I added the USE flags to the ebuild to make sure the corresponding dependencies were installed if the user wanted that module. Are you asking for per-module enable/disable autoconf options or something else?
(In reply to comment #9) > Sorry, I don't follow you here. Autoconf should detect each of the above > dependencies and build the modules appropriately. I added the USE flags to the > ebuild to make sure the corresponding dependencies were installed if the user > wanted that module. Are you asking for per-module enable/disable autoconf > options or something else? > yes i mean per-module autoconf options, in that way there will be a better handling of additional features via USE flags
X-Drum: you wanna take care of this package? ;)
(In reply to comment #11) > X-Drum: you wanna take care of this package? ;) > sure :)
I'm in the process of reworking the autoconf setup for version 1.4 and I'm creating per-module autoconf options. For example, this includes functions such as "--enable-module-cvs" and "--disable-module-cvs". In cases where a module's requirements are not met, the module will now simply not be built. This replaces the current behavior which is to build the module with all functionality removed. What is the recommended method for calling these configure functions from an ebuild? I can create USE flags which correspond to each module's --enable / --disable function. The issue I'm running into, however, is that each of these USE flags are off by default. I would prefer that the opposite be the default and that the user wasn't required to enable each flag, only to set the modules they don't want to build. Is this possible? Any suggestions are welcome. Additionally, please let me know if there are any other requests which would make adding this to Portage easier. Joe
(In reply to comment #13) > I'm in the process of reworking the autoconf setup for version 1.4 and I'm > creating per-module autoconf options. For example, this includes functions such > as "--enable-module-cvs" and "--disable-module-cvs". In cases where a module's > requirements are not met, the module will now simply not be built. This > replaces the current behavior which is to build the module with all > functionality removed. Hi Joe, i'm working on the ebuild, actually you can found it in jokey's overlay[1], the ebuild was cleaned up a little and a patch to handle the automagic deps was added, basically this patch allows to enable/disable support for all the modules depending on additionaly/external libs or packages: - svn.mod (dev-util/subversion) - ncp.mod (net-fs/ncpfs) - postgres.mod (dev-db/libpq) - ssh.mod (net-libs/libssh2) As you can see the patch only adds a "--without-foo" parameter for these modules, i'm not handling here the current behavior (don't build disabled modules), so you are doing a great work adding this parameters/options and disabling the build of the unneeded/unwanted modules. > What is the recommended method for calling these configure functions from an > ebuild? I can create USE flags which correspond to each module's --enable / > --disable function. The issue I'm running into, however, is that each of these > USE flags are off by default. I would prefer that the opposite be the default > and that the user wasn't required to enable each flag, only to set the modules > they don't want to build. Is this possible? Any suggestions are welcome. I think that the users should have the option to enable/disable a specific feature when this is possible via USE flags. If the new autoconf setup will include all the needed parameters to enable/disable modules depending on additionaly/external deps, we can easily add USE flags for this parameters in medusa's ebuild. If you wish you can add also an additional parameter called for example: "enable-all-modules" (it's like what you already did with "untested-modules" but this one will turn on support for all the supported modules), but this is not tightly needed. > Additionally, please let me know if there are any other requests which would > make adding this to Portage easier. as said before: - current behavior (don't build disabled/unwanted by the user modules) - Adding an enabled/disabled parameter for modules with external dependencies i have a question about the openssl support: Medusa can be build without openssl support/linking at all? I know that openssl is required in order to have SSL-based connections support in many modules, (there are modules where openssl support is mandatory and not optional) [1] http://overlays.gentoo.org/dev/jokey/browser/trunk/net-analyzer/medusa
*** Bug 266274 has been marked as a duplicate of this bug. ***
Created attachment 223853 [details] medusa 2.0
https://code.google.com/p/pentoo/source/browse/portage/trunk/net-analyzer/medusa/medusa-2.1.1.ebuild