mirror of
https://github.com/vanhauser-thc/thc-hydra.git
synced 2025-08-24 07:05:44 -07:00
增加将结果输出到redis功能
This commit is contained in:
parent
b8140ec8b6
commit
d9990f8654
6 changed files with 80 additions and 7 deletions
13
Makefile.am
13
Makefile.am
|
@ -9,7 +9,7 @@ MANDIR ?= /man/man1/
|
||||||
DATADIR ?= /etc
|
DATADIR ?= /etc
|
||||||
DESTDIR ?=
|
DESTDIR ?=
|
||||||
|
|
||||||
SRC = hydra-vnc.c hydra-pcnfs.c hydra-rexec.c hydra-nntp.c hydra-socks5.c \
|
SRC = output-redis.c hydra-vnc.c hydra-pcnfs.c hydra-rexec.c hydra-nntp.c hydra-socks5.c \
|
||||||
hydra-telnet.c hydra-cisco.c hydra-http.c hydra-ftp.c hydra-imap.c \
|
hydra-telnet.c hydra-cisco.c hydra-http.c hydra-ftp.c hydra-imap.c \
|
||||||
hydra-pop3.c hydra-smb.c hydra-icq.c hydra-cisco-enable.c hydra-ldap.c \
|
hydra-pop3.c hydra-smb.c hydra-icq.c hydra-cisco-enable.c hydra-ldap.c \
|
||||||
hydra-mysql.c hydra-mssql.c hydra-xmpp.c hydra-http-proxy-urlenum.c \
|
hydra-mysql.c hydra-mssql.c hydra-xmpp.c hydra-http-proxy-urlenum.c \
|
||||||
|
@ -22,7 +22,7 @@ SRC = hydra-vnc.c hydra-pcnfs.c hydra-rexec.c hydra-nntp.c hydra-socks5.c \
|
||||||
hydra-s7-300.c hydra-redis.c hydra-adam6500.c hydra-rtsp.c \
|
hydra-s7-300.c hydra-redis.c hydra-adam6500.c hydra-rtsp.c \
|
||||||
hydra-rpcap.c hydra-radmin2.c \
|
hydra-rpcap.c hydra-radmin2.c \
|
||||||
hydra-time.c crc32.c d3des.c bfg.c ntlm.c sasl.c hmacmd5.c hydra-mod.c
|
hydra-time.c crc32.c d3des.c bfg.c ntlm.c sasl.c hmacmd5.c hydra-mod.c
|
||||||
OBJ = hydra-vnc.o hydra-pcnfs.o hydra-rexec.o hydra-nntp.o hydra-socks5.o \
|
OBJ = output-redis.o hydra-vnc.o hydra-pcnfs.o hydra-rexec.o hydra-nntp.o hydra-socks5.o \
|
||||||
hydra-telnet.o hydra-cisco.o hydra-http.o hydra-ftp.o hydra-imap.o \
|
hydra-telnet.o hydra-cisco.o hydra-http.o hydra-ftp.o hydra-imap.o \
|
||||||
hydra-pop3.o hydra-smb.o hydra-icq.o hydra-cisco-enable.o hydra-ldap.o \
|
hydra-pop3.o hydra-smb.o hydra-icq.o hydra-cisco-enable.o hydra-ldap.o \
|
||||||
hydra-mysql.o hydra-mssql.o hydra-xmpp.o hydra-http-proxy-urlenum.o \
|
hydra-mysql.o hydra-mssql.o hydra-xmpp.o hydra-http-proxy-urlenum.o \
|
||||||
|
@ -38,14 +38,14 @@ OBJ = hydra-vnc.o hydra-pcnfs.o hydra-rexec.o hydra-nntp.o hydra-socks5.o \
|
||||||
BINS = hydra pw-inspector
|
BINS = hydra pw-inspector
|
||||||
|
|
||||||
EXTRA_DIST = README README.arm README.palm CHANGES TODO INSTALL LICENSE \
|
EXTRA_DIST = README README.arm README.palm CHANGES TODO INSTALL LICENSE \
|
||||||
hydra-mod.h hydra.h crc32.h d3des.h
|
hydra-mod.h output-redis.h hydra.h crc32.h d3des.h
|
||||||
|
|
||||||
all: pw-inspector hydra $(XHYDRA_SUPPORT)
|
all: pw-inspector hydra $(XHYDRA_SUPPORT)
|
||||||
@echo
|
@echo
|
||||||
@echo Now type "make install"
|
@echo Now type "make install"
|
||||||
|
|
||||||
hydra: hydra.c $(OBJ)
|
hydra: hydra.c $(OBJ)
|
||||||
$(CC) $(OPTS) $(SEC) $(LIBS) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o hydra $(HYDRA_LOGO) hydra.c $(OBJ) $(LIBS) $(XLIBS) $(XLIBPATHS) $(XIPATHS) $(XDEFINES)
|
$(CC) $(OPTS) $(SEC) $(LIBS) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o hydra $(HYDRA_LOGO) hydra.c $(OBJ) $(LIBS) $(XLIBS) $(XLIBPATHS) $(XIPATHS) $(XDEFINES) -L./lib/hiredis -lhiredis
|
||||||
@echo
|
@echo
|
||||||
@echo If men could get pregnant, abortion would be a sacrament
|
@echo If men could get pregnant, abortion would be a sacrament
|
||||||
@echo
|
@echo
|
||||||
|
@ -54,10 +54,10 @@ xhydra:
|
||||||
-cd hydra-gtk && sh ./make_xhydra.sh
|
-cd hydra-gtk && sh ./make_xhydra.sh
|
||||||
|
|
||||||
pw-inspector: pw-inspector.c
|
pw-inspector: pw-inspector.c
|
||||||
-$(CC) $(OPTS) $(SEC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o pw-inspector $(PWI_LOGO) pw-inspector.c
|
-$(CC) $(OPTS) $(SEC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o pw-inspector $(PWI_LOGO) pw-inspector.c
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) $(OPTS) $(SEC) $(CFLAGS) $(CPPFLAGS) -c $< $(XDEFINES) $(XIPATHS)
|
cd ./lib/hiredis && make && cd ../../ && $(CC) $(OPTS) $(SEC) $(CFLAGS) $(CPPFLAGS) -c $< $(XDEFINES) $(XIPATHS) -L./lib/hiredis -lhiredis
|
||||||
|
|
||||||
strip: all
|
strip: all
|
||||||
strip $(BINS)
|
strip $(BINS)
|
||||||
|
@ -75,6 +75,7 @@ install: strip
|
||||||
-cp -f hydra.1 xhydra.1 pw-inspector.1 $(DESTDIR)$(PREFIX)$(MANDIR)
|
-cp -f hydra.1 xhydra.1 pw-inspector.1 $(DESTDIR)$(PREFIX)$(MANDIR)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
cd ./lib/hiredis && make clean && cd ../../
|
||||||
rm -rf xhydra pw-inspector hydra *.o core *.core *.stackdump *~ Makefile.in Makefile dev_rfc hydra.restore arm/*.ipk arm/ipkg/usr/bin/* hydra-gtk/src/*.o hydra-gtk/src/xhydra hydra-gtk/stamp-h hydra-gtk/config.status hydra-gtk/errors hydra-gtk/config.log hydra-gtk/src/.deps hydra-gtk/src/Makefile hydra-gtk/Makefile
|
rm -rf xhydra pw-inspector hydra *.o core *.core *.stackdump *~ Makefile.in Makefile dev_rfc hydra.restore arm/*.ipk arm/ipkg/usr/bin/* hydra-gtk/src/*.o hydra-gtk/src/xhydra hydra-gtk/stamp-h hydra-gtk/config.status hydra-gtk/errors hydra-gtk/config.log hydra-gtk/src/.deps hydra-gtk/src/Makefile hydra-gtk/Makefile
|
||||||
cp -f Makefile.orig Makefile
|
cp -f Makefile.orig Makefile
|
||||||
|
|
||||||
|
|
13
hydra.c
Normal file → Executable file
13
hydra.c
Normal file → Executable file
|
@ -9,6 +9,7 @@
|
||||||
*/
|
*/
|
||||||
#include "hydra.h"
|
#include "hydra.h"
|
||||||
#include "bfg.h"
|
#include "bfg.h"
|
||||||
|
#include "output-redis.h"
|
||||||
|
|
||||||
#ifdef LIBNCURSES
|
#ifdef LIBNCURSES
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
|
@ -2058,6 +2059,7 @@ void process_proxy_line(int32_t type, char *string) {
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
char *proxy_string = NULL, *device = NULL, *memcheck, *cmdtarget = NULL;
|
char *proxy_string = NULL, *device = NULL, *memcheck, *cmdtarget = NULL;
|
||||||
char *outfile_format_tmp;
|
char *outfile_format_tmp;
|
||||||
|
char *output;
|
||||||
FILE *lfp = NULL, *pfp = NULL, *cfp = NULL, *ifp = NULL, *rfp = NULL, *proxyfp;
|
FILE *lfp = NULL, *pfp = NULL, *cfp = NULL, *ifp = NULL, *rfp = NULL, *proxyfp;
|
||||||
size_t countinfile = 1, sizeinfile = 0;
|
size_t countinfile = 1, sizeinfile = 0;
|
||||||
uint64_t math2;
|
uint64_t math2;
|
||||||
|
@ -3511,12 +3513,18 @@ int main(int argc, char *argv[]) {
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
if (hydra_options.outfile_format == FORMAT_JSONV1) {
|
if (hydra_options.outfile_format == FORMAT_JSONV1) {
|
||||||
|
sprintf(output,"%s", "{ \"generator\": {"
|
||||||
|
"\"software\": \"%s\", \"version\": \"%s\", \"built\": \"%s\","
|
||||||
|
"\"server\": \"%s\", \"service\": \"%s\", \"jsonoutputversion\": \"1.00\",\n"
|
||||||
|
"\"commandline\": \"%s");
|
||||||
fprintf(hydra_brains.ofp, "{ \"generator\": {\n"
|
fprintf(hydra_brains.ofp, "{ \"generator\": {\n"
|
||||||
"\t\"software\": \"%s\", \"version\": \"%s\", \"built\": \"%s\",\n"
|
"\t\"software\": \"%s\", \"version\": \"%s\", \"built\": \"%s\",\n"
|
||||||
"\t\"server\": \"%s\", \"service\": \"%s\", \"jsonoutputversion\": \"1.00\",\n"
|
"\t\"server\": \"%s\", \"service\": \"%s\", \"jsonoutputversion\": \"1.00\",\n"
|
||||||
"\t\"commandline\": \"%s",
|
"\t\"commandline\": \"%s",
|
||||||
PROGRAM, VERSION, hydra_build_time(),
|
PROGRAM, VERSION, hydra_build_time(),
|
||||||
hydra_options.server == NULL ? hydra_options.infile_ptr : hydra_options.server, hydra_options.service, prg);
|
hydra_options.server == NULL ? hydra_options.infile_ptr : hydra_options.server, hydra_options.service, prg);
|
||||||
|
set("a", "2");
|
||||||
|
|
||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
char *t = hydra_string_replace(argv[i],"\"","\\\"");
|
char *t = hydra_string_replace(argv[i],"\"","\\\"");
|
||||||
fprintf(hydra_brains.ofp, " %s", t);
|
fprintf(hydra_brains.ofp, " %s", t);
|
||||||
|
@ -3787,6 +3795,7 @@ int main(int argc, char *argv[]) {
|
||||||
hydra_heads[head_no]->current_pass_ptr != NULL ? hydra_string_replace(hydra_heads[head_no]->current_pass_ptr,"\"","\\\"") : ""
|
hydra_heads[head_no]->current_pass_ptr != NULL ? hydra_string_replace(hydra_heads[head_no]->current_pass_ptr,"\"","\\\"") : ""
|
||||||
);
|
);
|
||||||
fflush(hydra_brains.ofp);
|
fflush(hydra_brains.ofp);
|
||||||
|
set("a", "3");
|
||||||
} else if (hydra_options.outfile_ptr != NULL && hydra_brains.ofp != NULL) { // else output format == 0 aka text
|
} else if (hydra_options.outfile_ptr != NULL && hydra_brains.ofp != NULL) { // else output format == 0 aka text
|
||||||
if (hydra_heads[head_no]->current_login_ptr == NULL || strlen(hydra_heads[head_no]->current_login_ptr) == 0) {
|
if (hydra_heads[head_no]->current_login_ptr == NULL || strlen(hydra_heads[head_no]->current_login_ptr) == 0) {
|
||||||
if (hydra_heads[head_no]->current_pass_ptr == NULL || strlen(hydra_heads[head_no]->current_pass_ptr) == 0)
|
if (hydra_heads[head_no]->current_pass_ptr == NULL || strlen(hydra_heads[head_no]->current_pass_ptr) == 0)
|
||||||
|
@ -4053,7 +4062,9 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
fclose(hydra_brains.ofp);
|
fclose(hydra_brains.ofp);
|
||||||
}
|
}
|
||||||
|
set("output", output);
|
||||||
|
printf("%d", output);
|
||||||
|
redis_free();
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
if (error || j != 0 || exit_condition < 0)
|
if (error || j != 0 || exit_condition < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
1
hydra.h
1
hydra.h
|
@ -28,6 +28,7 @@
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include "output-redis.h"
|
||||||
|
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
#define HYDRA_SSL
|
#define HYDRA_SSL
|
||||||
|
|
40
output-redis.c
Executable file
40
output-redis.c
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
//
|
||||||
|
// hydra-rtsp.c
|
||||||
|
// hydra-rtsp
|
||||||
|
//
|
||||||
|
// Created by Javier zhukun on 03/04/18.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "output-redis.h"
|
||||||
|
|
||||||
|
void set(const unsigned char *key, const unsigned char *value)
|
||||||
|
{
|
||||||
|
if (conn == NULL)
|
||||||
|
{
|
||||||
|
conn = redisConnect("127.0.0.1", 6379);
|
||||||
|
}
|
||||||
|
if(conn != NULL && conn->err)
|
||||||
|
{
|
||||||
|
|
||||||
|
printf("connection error: %s\n",conn->errstr);
|
||||||
|
}
|
||||||
|
redisReply *reply = (redisReply*)redisCommand(conn,"set %s %s", key, value);
|
||||||
|
freeReplyObject(reply);
|
||||||
|
|
||||||
|
/*reply = redisCommand(conn,"get %s", key);
|
||||||
|
printf("%s\n",reply->str);
|
||||||
|
freeReplyObject(reply); */
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void redis_free()
|
||||||
|
{
|
||||||
|
redisFree(conn);
|
||||||
|
}
|
||||||
|
/*int main()
|
||||||
|
{
|
||||||
|
set("a", "1");
|
||||||
|
return 0;
|
||||||
|
}*/
|
15
output-redis.h
Executable file
15
output-redis.h
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
//
|
||||||
|
// hydra-rtsp.c
|
||||||
|
// hydra-rtsp
|
||||||
|
//
|
||||||
|
// Created by Javier zhukun on 03/04/18.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "lib/hiredis/hiredis.h"
|
||||||
|
|
||||||
|
redisContext *conn;
|
||||||
|
|
||||||
|
void set(const unsigned char *key, const unsigned char *value);
|
||||||
|
void redis_free();
|
5
quick
Executable file
5
quick
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#rm -f output-redis
|
||||||
|
#gcc output-redis.c -o output-redis -L./lib/hiredis -lhiredis
|
||||||
|
make clean
|
||||||
|
./configure
|
||||||
|
make
|
Loading…
Add table
Add a link
Reference in a new issue