mirror of
https://github.com/vanhauser-thc/thc-hydra.git
synced 2025-07-06 04:51:40 -07:00
rtsp fix
This commit is contained in:
parent
c82e5d51c5
commit
59b96af734
3 changed files with 131 additions and 33 deletions
1
CHANGES
1
CHANGES
|
@ -3,6 +3,7 @@ Changelog for hydra
|
|||
|
||||
Release 9.4-dev
|
||||
* Switched from pcre/pcre3 to pcre2 as pcre/pcre3 will be dropped from Debian
|
||||
* Small fix for weird RTSP servers
|
||||
|
||||
|
||||
Release 9.3
|
||||
|
|
108
Makefile
108
Makefile
|
@ -1,8 +1,110 @@
|
|||
all:
|
||||
@echo Error: you must run "./configure" first
|
||||
STRIP=strip
|
||||
XDEFINES= -DLIBOPENSSL -DLIBNCURSES -DLIBFIREBIRD -DLIBIDN -DHAVE_PR29_H -DHAVE_PCRE -DLIBPOSTGRES -DLIBSVN -DLIBSSH -DHAVE_ZLIB -DLIBMCACHED -DLIBFREERDP -DLIBWINPR2 -DHAVE_MATH_H -DHAVE_SYS_PARAM_H
|
||||
XLIBS= -lz -lcurses -lssl -lfbclient -lidn -lpcre2-8 -lpq -lsvn_client-1 -lapr-1 -laprutil-1 -lsvn_subr-1 -lssh -lcrypto -lmemcached -lfreerdp2 -lwinpr2
|
||||
XLIBPATHS=-L/usr/lib -L/usr/local/lib -L/lib -L/lib/x86_64-linux-gnu
|
||||
XIPATHS= -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include/postgresql -I/usr/include -I/usr/include/subversion-1 -I/usr/include/apr-1.0 -I/usr/include/subversion-1 -I/usr/include/libmemcached -I/usr/include/freerdp2 -I/usr/include/winpr2
|
||||
PREFIX=/usr/local
|
||||
XHYDRA_SUPPORT=xhydra
|
||||
STRIP=strip
|
||||
|
||||
HYDRA_LOGO=
|
||||
PWI_LOGO=
|
||||
SEC=-pie -fPIE -fstack-protector-all --param ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-z,now -Wl,-z,relro -Wl,--allow-multiple-definition
|
||||
|
||||
#
|
||||
# Makefile for Hydra - (c) 2001-2022 by van Hauser / THC <vh@thc.org>
|
||||
#
|
||||
WARN_CLANG=-Wformat-nonliteral -Wstrncat-size -Wformat-security -Wsign-conversion -Wconversion -Wfloat-conversion -Wshorten-64-to-32 -Wuninitialized -Wmissing-variable-declarations -Wmissing-declarations
|
||||
WARN_GCC=-Wformat=2 -Wformat-overflow=2 -Wformat-nonliteral -Wformat-truncation=2 -Wnull-dereference -Wstrict-overflow=2 -Wstringop-overflow=4 -Walloca-larger-than=4096 -Wtype-limits -Wconversion -Wtrampolines -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -fno-common -Wcast-align
|
||||
CFLAGS ?= -g
|
||||
OPTS=-I. -O3 $(CFLAGS) -fcommon
|
||||
# -Wall -g -pedantic
|
||||
LIBS=-lm
|
||||
DESTDIR ?=
|
||||
BINDIR = /bin
|
||||
MANDIR = /man/man1/
|
||||
DATADIR = /etc
|
||||
PIXDIR = /share/pixmaps
|
||||
APPDIR = /share/applications
|
||||
|
||||
SRC = 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-pop3.c hydra-smb.c hydra-icq.c hydra-cisco-enable.c hydra-ldap.c \
|
||||
hydra-memcached.c hydra-mongodb.c hydra-mysql.c hydra-mssql.c hydra-xmpp.c \
|
||||
hydra-http-proxy-urlenum.c hydra-snmp.c hydra-cvs.c hydra-smtp.c \
|
||||
hydra-smtp-enum.c hydra-sapr3.c hydra-ssh.c hydra-sshkey.c hydra-teamspeak.c \
|
||||
hydra-postgres.c hydra-rsh.c hydra-rlogin.c hydra-oracle-listener.c \
|
||||
hydra-svn.c hydra-pcanywhere.c hydra-sip.c hydra-oracle.c hydra-vmauthd.c \
|
||||
hydra-asterisk.c hydra-firebird.c hydra-afp.c hydra-ncp.c hydra-rdp.c \
|
||||
hydra-oracle-sid.c hydra-http-proxy.c hydra-http-form.c hydra-irc.c \
|
||||
hydra-s7-300.c hydra-redis.c hydra-adam6500.c hydra-rtsp.c \
|
||||
hydra-rpcap.c hydra-radmin2.c hydra-cobaltstrike.c \
|
||||
hydra-time.c crc32.c d3des.c bfg.c ntlm.c sasl.c hmacmd5.c hydra-mod.c \
|
||||
hydra-smb2.c
|
||||
OBJ = 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-pop3.o hydra-smb.o hydra-icq.o hydra-cisco-enable.o hydra-ldap.o \
|
||||
hydra-memcached.o hydra-mongodb.o hydra-mysql.o hydra-mssql.o hydra-cobaltstrike.o hydra-xmpp.o \
|
||||
hydra-http-proxy-urlenum.o hydra-snmp.o hydra-cvs.o hydra-smtp.o \
|
||||
hydra-smtp-enum.o hydra-sapr3.o hydra-ssh.o hydra-sshkey.o hydra-teamspeak.o \
|
||||
hydra-postgres.o hydra-rsh.o hydra-rlogin.o hydra-oracle-listener.o \
|
||||
hydra-svn.o hydra-pcanywhere.o hydra-sip.o hydra-oracle-sid.o hydra-oracle.o \
|
||||
hydra-vmauthd.o hydra-asterisk.o hydra-firebird.o hydra-afp.o \
|
||||
hydra-ncp.o hydra-http-proxy.o hydra-http-form.o hydra-irc.o \
|
||||
hydra-redis.o hydra-rdp.o hydra-s7-300.c hydra-adam6500.o hydra-rtsp.o \
|
||||
hydra-rpcap.o hydra-radmin2.o \
|
||||
crc32.o d3des.o bfg.o ntlm.o sasl.o hmacmd5.o hydra-mod.o hydra-time.o \
|
||||
hydra-smb2.o
|
||||
BINS = hydra pw-inspector
|
||||
|
||||
EXTRA_DIST = README README.arm README.palm CHANGES TODO INSTALL LICENSE \
|
||||
hydra-mod.h hydra.h crc32.h d3des.h
|
||||
|
||||
all: pw-inspector hydra $(XHYDRA_SUPPORT)
|
||||
@echo
|
||||
@echo Now type "make install"
|
||||
|
||||
hydra: hydra.c $(OBJ)
|
||||
$(CC) $(OPTS) $(SEC) $(LIBS) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o hydra $(HYDRA_LOGO) hydra.c $(OBJ) $(LIBS) $(XLIBS) $(XLIBPATHS) $(XIPATHS) $(XDEFINES)
|
||||
@echo
|
||||
@echo If men could get pregnant, abortion would be a sacrament
|
||||
@echo
|
||||
|
||||
xhydra:
|
||||
-cd hydra-gtk && sh ./make_xhydra.sh
|
||||
|
||||
pw-inspector: pw-inspector.c
|
||||
-$(CC) $(OPTS) $(SEC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o pw-inspector $(PWI_LOGO) pw-inspector.c
|
||||
|
||||
.c.o:
|
||||
$(CC) $(OPTS) $(SEC) $(CFLAGS) $(CPPFLAGS) -c $< $(XDEFINES) $(XIPATHS)
|
||||
|
||||
strip: all
|
||||
-strip $(BINS)
|
||||
-echo OK > /dev/null && test -x xhydra && strip xhydra || echo OK > /dev/null
|
||||
|
||||
install: strip
|
||||
-mkdir -p $(DESTDIR)$(PREFIX)$(BINDIR)
|
||||
cp -f hydra-wizard.sh $(BINS) $(DESTDIR)$(PREFIX)$(BINDIR) && cd $(DESTDIR)$(PREFIX)$(BINDIR) && chmod 755 hydra-wizard.sh $(BINS)
|
||||
-echo OK > /dev/null && test -x xhydra && cp xhydra $(DESTDIR)$(PREFIX)$(BINDIR) && cd $(DESTDIR)$(PREFIX)$(BINDIR) && chmod 755 xhydra || echo OK > /dev/null
|
||||
-sed -e "s|^INSTALLDIR=.*|INSTALLDIR="$(PREFIX)"|" dpl4hydra.sh | sed -e "s|^LOCATION=.*|LOCATION="$(DATADIR)"|" > $(DESTDIR)$(PREFIX)$(BINDIR)/dpl4hydra.sh
|
||||
-chmod 755 $(DESTDIR)$(PREFIX)$(BINDIR)/dpl4hydra.sh
|
||||
-mkdir -p $(DESTDIR)$(PREFIX)$(DATADIR)
|
||||
-cp -f *.csv $(DESTDIR)$(PREFIX)$(DATADIR)
|
||||
-mkdir -p $(DESTDIR)$(PREFIX)$(MANDIR)
|
||||
-cp -f hydra.1 xhydra.1 pw-inspector.1 $(DESTDIR)$(PREFIX)$(MANDIR)
|
||||
-mkdir -p $(DESTDIR)$(PREFIX)$(PIXDIR)
|
||||
-cp -f xhydra.png $(DESTDIR)$(PREFIX)$(PIXDIR)/
|
||||
-mkdir -p $(DESTDIR)$(PREFIX)$(APPDIR)
|
||||
-desktop-file-install --dir $(DESTDIR)$(PREFIX)$(APPDIR) xhydra.desktop
|
||||
|
||||
clean:
|
||||
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
|
||||
|
||||
uninstall:
|
||||
@echo Error: you must run "./configure" first
|
||||
-rm -f $(DESTDIR)$(PREFIX)$(BINDIR)/xhydra $(DESTDIR)$(PREFIX)$(BINDIR)/hydra $(DESTDIR)$(PREFIX)$(BINDIR)/pw-inspector $(DESTDIR)$(PREFIX)$(BINDIR)/hydra-wizard.sh $(DESTDIR)$(PREFIX)$(BINDIR)/dpl4hydra.sh
|
||||
-rm -f $(DESTDIR)$(PREFIX)$(DATADIR)/dpl4hydra_full.csv $(DESTDIR)$(PREFIX)$(DATADIR)/dpl4hydra_local.csv
|
||||
-rm -f $(DESTDIR)$(PREFIX)$(MANDIR)/hydra.1 $(DESTDIR)$(PREFIX)$(MANDIR)/xhydra.1 $(DESTDIR)$(PREFIX)$(MANDIR)/pw-inspector.1
|
||||
-rm -f $(DESTDIR)$(PREFIX)$(PIXDIR)/xhydra.png
|
||||
-rm -f $(DESTDIR)$(PREFIX)$(APPDIR)/xhydra.desktop
|
||||
|
|
55
hydra-rtsp.c
55
hydra-rtsp.c
|
@ -104,42 +104,37 @@ int32_t start_rtsp(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
|||
} else {
|
||||
create_core_packet(1, ip, port);
|
||||
|
||||
if (use_Basic_Auth(lresp) == 1) {
|
||||
if (use_Digest_Auth(lresp) == 1) {
|
||||
char aux[500] = "", dbuf[500] = "", *result = NULL;
|
||||
char *pbuffer = hydra_strcasestr(lresp, "WWW-Authenticate: Digest ");
|
||||
|
||||
strncpy(aux, pbuffer + strlen("WWW-Authenticate: Digest "), sizeof(aux));
|
||||
aux[sizeof(aux) - 1] = '\0';
|
||||
free(lresp);
|
||||
#ifdef LIBOPENSSL
|
||||
result = sasl_digest_md5(dbuf, login, pass, aux, miscptr, "rtsp", hydra_address2string(ip), port, "");
|
||||
#else
|
||||
hydra_report(stderr, "[ERROR] Digest auth required but compiled "
|
||||
"without OpenSSL/MD5 support\n");
|
||||
return 3;
|
||||
#endif
|
||||
if (result == NULL) {
|
||||
hydra_report(stderr, "[ERROR] digest generation failed\n");
|
||||
return 3;
|
||||
}
|
||||
sprintf(buffer, "%.500sAuthorization: Digest %.500s\r\n\r\n", packet2, dbuf);
|
||||
if (debug)
|
||||
hydra_report(stderr, "C:%s\n", buffer);
|
||||
} else if (use_Basic_Auth(lresp) == 1) {
|
||||
free(lresp);
|
||||
sprintf(buffer2, "%.249s:%.249s", login, pass);
|
||||
hydra_tobase64((unsigned char *)buffer2, strlen(buffer2), sizeof(buffer2));
|
||||
|
||||
sprintf(buffer, "%.500sAuthorization: : Basic %.500s\r\n\r\n", packet2, buffer2);
|
||||
|
||||
if (debug) {
|
||||
if (debug)
|
||||
hydra_report(stderr, "C:%s\n", buffer);
|
||||
}
|
||||
} else {
|
||||
if (use_Digest_Auth(lresp) == 1) {
|
||||
char aux[500] = "", dbuf[500] = "", *result = NULL;
|
||||
char *pbuffer = hydra_strcasestr(lresp, "WWW-Authenticate: Digest ");
|
||||
|
||||
strncpy(aux, pbuffer + strlen("WWW-Authenticate: Digest "), sizeof(aux));
|
||||
aux[sizeof(aux) - 1] = '\0';
|
||||
free(lresp);
|
||||
#ifdef LIBOPENSSL
|
||||
result = sasl_digest_md5(dbuf, login, pass, aux, miscptr, "rtsp", hydra_address2string(ip), port, "");
|
||||
#else
|
||||
hydra_report(stderr, "[ERROR] Digest auth required but compiled "
|
||||
"without OpenSSL/MD5 support\n");
|
||||
return 3;
|
||||
#endif
|
||||
|
||||
if (result == NULL) {
|
||||
hydra_report(stderr, "[ERROR] digest generation failed\n");
|
||||
return 3;
|
||||
}
|
||||
sprintf(buffer, "%.500sAuthorization: Digest %.500s\r\n\r\n", packet2, dbuf);
|
||||
|
||||
if (debug) {
|
||||
hydra_report(stderr, "C:%s\n", buffer);
|
||||
}
|
||||
}
|
||||
hydra_report(stderr, "[ERROR] unknown authentication protocol\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (strlen(buffer) == 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue