Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
022790867d | ||
|
|
f20ca77309 | ||
|
|
9b055287c0 | ||
|
|
13db28f9d2 | ||
|
|
3e364483d2 | ||
|
|
89fbd9a44d | ||
|
|
b3bd068334 | ||
|
|
5cb14100f8 | ||
|
|
67ef4c733f | ||
|
|
09453c7be8 | ||
|
|
c9da867141 | ||
|
|
cb8fccda71 | ||
|
|
63badb59af | ||
|
|
84c7b116db | ||
|
|
93cee75419 | ||
|
|
403d00e897 | ||
|
|
edc910628f | ||
|
|
cf20153655 | ||
|
|
b375bbc332 | ||
|
|
0b1f3c5037 | ||
|
|
93283091d0 | ||
|
|
d3f784ab64 | ||
|
|
92ef7d7455 | ||
|
|
5b98a23140 | ||
|
|
12dc488f3f | ||
|
|
486a6bddde | ||
|
|
e02b0d41e5 | ||
|
|
3b9280da3a | ||
|
|
cf325b0008 | ||
|
|
9fc4aabd6b | ||
|
|
54c2e85d79 | ||
|
|
d260804d19 | ||
|
|
2d12a0df6a | ||
|
|
bfdbeee1b2 | ||
|
|
caf39e1542 | ||
|
|
be95247c69 | ||
|
|
0483351e6a | ||
|
|
a6784e4021 | ||
|
|
27cab133fa | ||
|
|
24395ab478 | ||
|
|
55682bf69a | ||
|
|
7601493400 | ||
|
|
3450d87420 | ||
|
|
acd4bcf1a7 | ||
|
|
bc9190d3dd | ||
|
|
659ab10b14 | ||
|
|
f1cc9e6cfb | ||
|
|
b7e77d7672 | ||
|
|
f12dc459c1 | ||
|
|
ef3c334671 | ||
|
|
4de7595357 | ||
|
|
19432a2173 | ||
|
|
fb0b2e030e | ||
|
|
221876598b | ||
|
|
fc70daa757 | ||
|
|
c81f0b97e7 | ||
|
|
d6a42ace44 | ||
|
|
a2d715b870 | ||
|
|
dd8348bcf0 | ||
|
|
bd2f949b34 | ||
|
|
e7b3d09d00 | ||
|
|
593c5b151a | ||
|
|
0749b9be9f | ||
|
|
6381ab2cd3 | ||
|
|
5c9184061f | ||
|
|
f250c8a191 | ||
|
|
b6dda7da81 | ||
|
|
fd55766ea3 | ||
|
|
2ec0b164ca | ||
|
|
2cbbc53692 |
@@ -1,6 +1,16 @@
|
||||
Changelog for hydra
|
||||
-------------------
|
||||
|
||||
Release 9.3-dev
|
||||
* support Xcode compilation
|
||||
* new module: cobaltstrike by ultimaiiii, thank you!
|
||||
* fix for ssh to support -M or ip/range
|
||||
* fix for rdp to detect empty passwords
|
||||
* for vnc/cisco/... protocols that only check for a password, skip host
|
||||
after the password is found
|
||||
* fixe to support IPv6 addresses in -M
|
||||
* added "make uninstall"
|
||||
|
||||
|
||||
Release 9.2
|
||||
* fix for http-post-form optional parameters
|
||||
|
||||
@@ -6,6 +6,23 @@ you run "./configure":
|
||||
Redhat/Fedora: yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel libncurses-devel
|
||||
OpenSuSE: zypper install libopenssl-devel pcre-devel libidn-devel ncpfs-devel libssh-devel postgresql-devel subversion-devel libncurses-devel
|
||||
|
||||
|
||||
For Termux/Android you need the following setup:
|
||||
|
||||
Install the necessary dependencies
|
||||
# pkg install -y x11-repo
|
||||
# pkg install -y clang make openssl openssl-tool wget openssh coreutils gtk2 gtk3
|
||||
And then compiling hydra
|
||||
# ./configure --prefix=$PREFIX
|
||||
# make
|
||||
# make install
|
||||
|
||||
|
||||
To use xhydra, you will need to install a graphical output in termux, you can be guided from this article:
|
||||
|
||||
https://wiki.termux.com/wiki/Graphical_Environment
|
||||
|
||||
|
||||
For the Oracle login module, install the basic and SDK packages:
|
||||
http://www.oracle.com/technetwork/database/features/instant-client/index.html
|
||||
|
||||
|
||||
@@ -3,3 +3,6 @@ all:
|
||||
|
||||
clean:
|
||||
cp -f Makefile.orig Makefile
|
||||
|
||||
uninstall:
|
||||
@echo Error: you must run "./configure" first
|
||||
|
||||
+15
-3
@@ -4,13 +4,15 @@
|
||||
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 -Wl,--allow-multiple-definition
|
||||
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 \
|
||||
@@ -23,13 +25,13 @@ SRC = hydra-vnc.c hydra-pcnfs.c hydra-rexec.c hydra-nntp.c hydra-socks5.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-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-xmpp.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 \
|
||||
@@ -78,8 +80,18 @@ install: strip
|
||||
-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:
|
||||
-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
|
||||
|
||||
@@ -3,3 +3,6 @@ all:
|
||||
|
||||
clean:
|
||||
cp -f Makefile.orig Makefile
|
||||
|
||||
uninstall:
|
||||
@echo Error: you must run "./configure" first
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ make install
|
||||
```
|
||||
|
||||
If you want the ssh module, you have to setup libssh (not libssh2!) on your
|
||||
system, get it from http://www.libssh.org, for ssh v1 support you also need
|
||||
system, get it from https://www.libssh.org, for ssh v1 support you also need
|
||||
to add "-DWITH_SSH1=On" option in the cmake command line.
|
||||
IMPORTANT: If you compile on MacOS then you must do this - do not install libssh via brew!
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
title: "thc-hydra"
|
||||
theme: jekyll-theme-midnight
|
||||
@@ -1362,6 +1362,10 @@ echo '#include <strings.h>' >> $TMPC.c
|
||||
echo "int main() { char *x = strrchr(\"test\", 'e'); if (x == NULL) return 0; else return 1; }" >> $TMPC.c
|
||||
$CC -o $TMPC $TMPC.c > /dev/null 2>&1
|
||||
test -x $TMPC && STRRCHR=""
|
||||
rm -f $TMPC
|
||||
$CC -o $TMPC -Wl,--allow-multiple-definition $TMPC.c > /dev/null 2>&1
|
||||
WALLOW="no"
|
||||
test -x $TMPC && WALLOW="yes"
|
||||
rm -f $TMPC $TMPC.c
|
||||
echo " ... strrchr()$STRRCHR found"
|
||||
if [ -n "$CRYPTO_PATH" ]; then
|
||||
@@ -1392,6 +1396,11 @@ rm -f $TMPC $TMPC.c $TMPC.c.err
|
||||
echo " Compiling... $GCCSEC"
|
||||
echo " Linking... $LDSEC"
|
||||
|
||||
echo "Checking for --allow-multiple-definition linker option ... $WALLOW"
|
||||
if [ "$WALLOW" = "yes" ]; then
|
||||
GCCSECOPT="$GCCSECOPT -Wl,--allow-multiple-definition"
|
||||
fi
|
||||
|
||||
echo
|
||||
XDEFINES=""
|
||||
XLIBS=""
|
||||
|
||||
@@ -2417,8 +2417,6 @@ draytek,Vigor,all,HTTP,admin,admin,Admin,,
|
||||
dreambox,All models,all versions,http, telnet,root,dreambox,,
|
||||
dreambox,All models,all versions,http,telnet,root,dreambox,gives access to a busybox allowing to control the box using basic unix commands embedded into busybox,
|
||||
drupal.org,Drupal,,administrator,admin,admin,,,
|
||||
ducati,Diavel motorcycles,,console,,last 4 digits of the motorcycle's VIN,Start and drive the motorcycle without a key,This is the ignition password - if you have one of these bikes change the password ASAP as you may be liable for any accident damage caused by the thief!,
|
||||
ducati,Diavel,,,,Last 4 digits of VIN,,,
|
||||
dupont,Digital Water Proofer,,,root,par0t,,,
|
||||
dynalink,RTA020,,,admin,private,,,
|
||||
dynalink,RTA020,,Admin,admin,private,,,
|
||||
@@ -3061,7 +3059,6 @@ hewlettpackard,Motive Chorus,,HTTP (port 5060),admin,isee,,,
|
||||
hewlettpackard,Officejet,all versions,http,admin,,admin,http interface,
|
||||
hewlettpackard,Power Manager,3,HTTP,admin,admin,Admin,,
|
||||
hewlettpackard,ProcCurve MSC-5100,,,admin,admin,,,
|
||||
hewlettpackard,Remote Insight Board,,,Administrator,The last eight digits of the serial number,,,
|
||||
hewlettpackard,StoreOnce,,,HPSupport,badg3r5,,,
|
||||
hewlettpackard,Vectra,,Console,,hewlpack,Admin,,
|
||||
hewlettpackard,iLo,,http,Admin,Admin,Admin,,
|
||||
@@ -3611,7 +3608,6 @@ iso sistemi,winwork,,Admin,,,,,
|
||||
iwill,PC BIOS,,,,iwill,,,
|
||||
iwill,PC BIOS,,Admin,,iwill,,,
|
||||
iwill,PC BIOS,,Console,,iwill,Admin,,
|
||||
jacksoncommunitycollege,My Network Services,,web,(first 7 letters of student's last name + first seven letters of first name + middle initial -- no spaces or punctuation),(First letter of first name Capitalized + First letter of last name in lowercase + day of birth {01-31} + birth year {2 digits} + last 4 digits of student ID),My Network Services access,,
|
||||
jaht,adsl router,AR41/2A,HTTP,admin,epicrouter,Admin,,
|
||||
jamfsoftware,Casper Suite,,,jamfsoftware,jamfsw03,,,
|
||||
janitza,UMG 508,,,Homepage Password,0th,,,
|
||||
@@ -3786,7 +3782,6 @@ kyocera,FS3140MFP,,Web Interface,,admin00,Administrator,,
|
||||
kyocera,FS6025MFP,,system menus,Admin,Admin,Admin,,
|
||||
kyocera,Intermate LAN FS Pro 10/100,K82_0371,HTTP,admin,admin,Admin,,
|
||||
kyocera,KM-4850W,,,admin,,,,
|
||||
kyocera,KR2,,http,,read notes,,it is the last 6 characters of the mac address,
|
||||
kyocera,TASKalfa 250 Ci,,,Admin,admin00,,if enable local authentification,
|
||||
kyocera,TASKalfa 250ci,,IP,,admin00,,,
|
||||
kyocera,TASKalfa 266ci,,Console Panel,Admin,Admin,Admin,,
|
||||
@@ -5188,82 +5183,42 @@ oce,tcs500, Windows XP, all models,12.3.0(1668),console, http://192.168.0.81,,
|
||||
oce,tcs500,Windows XP,all models,12.3.0(1668),console,http://192.168.0.81,,
|
||||
ods,1094 IS Chassis,,,ods,ods,,4.x,
|
||||
ods,1094,,,ods,ods,,,
|
||||
oki,9600,,,admin,last six characters of the MAC address (letters uppercase).,,,
|
||||
oki,B410,,http (dhcp),admin,last six charachter of mac address (upper case),,,
|
||||
oki,B410dn,,http://169.254.39.211/,admin,Last 6 characters (chars uppercased) from MAC Address,admin,,
|
||||
oki,B411,all ver,Http or AdminManager,root,aaaaaa,Administrator,,
|
||||
oki,B420,,http (dhcp),admin,last six charachter of mac address (upper case),,,
|
||||
oki,B430,,http (dhcp),admin,last six charachter of mac address (upper case),,,
|
||||
oki,B431,all ver,Http or AdminManager,root,aaaaaa,Administrator,,
|
||||
oki,B431dn,,http://192.168.1.xxx,root,123456,Admin,,
|
||||
oki,B43xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,B6100n,,,admin,OkiLAN,admin,with 61e(NIC),
|
||||
oki,B6200n,,,admin,OkiLAN,admin,with 62e(NIC),
|
||||
oki,B6300,,,root,last six charachter of mac address,root,,
|
||||
oki,B6300n,,,admin,OkiLAN,admin,with 62e(NIC),
|
||||
oki,B6500,,,root,(last 6 digits of MAC address),root,,
|
||||
oki,B710,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,B720,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,B720N,All versions,Web interface,root,aaaaaa,Root access,,
|
||||
oki,B730,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,B8300n,,,admin,OkiLAN,admin,with 83e(NIC),
|
||||
oki,B930n,,,root,(last 4 digits of MAC address),root,,
|
||||
oki,C3200n,,Web Interface - Device IP,root,last 6 of MAC Address - case sensitive,,,
|
||||
oki,C330,all versions etc.,http://192.168.0.1,root,aaaaaa,Admin,Administrator,
|
||||
oki,C3450,,http://192.168.1.50,admin,heslo,admin,,
|
||||
oki,C3450,,web,admin,last 6 digits of MAC code, Use uppercase letters,,
|
||||
oki,C3450,,web,admin,last 6 digits of MAC code,Use uppercase letters,Administrator,
|
||||
oki,C3530,,console,admin,last 6 digits of MAC address,Admin,,
|
||||
oki,C380,,,admin,last 6 characters of the MAC ADRESS,,,
|
||||
oki,C51xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,C530dn,A1.02,http://192.168.1.51,root,aaaaaa,Admin,,
|
||||
oki,C53xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,C54xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,C5550 MFP,,http,,*blank*,Admin,,
|
||||
oki,C5650,,Multi,root,Last 6 characters of MAC address (uppercase),Admin,Last 6 digits are also at the end of the default printer name,
|
||||
oki,C5650dn,,,,000000,menu,,
|
||||
oki,C5650n,,,,000000,menu,,
|
||||
oki,C5700,,HTTP,root,the 6 last digit of the MAC adress,Admin,running with other models,
|
||||
oki,C5850,,http,admin,last 6 characters of the MAC ADRESS,,,
|
||||
oki,C5900,,HTTP,root,Last 6 characters (chars uppercased) from MAC Address,admin,,
|
||||
oki,C6050dn,,,,000000,menu,,
|
||||
oki,C6050n,,,,000000,menu,,
|
||||
oki,C610,,,admin,aaaaaa,admin,,
|
||||
oki,C6100,,HTTP,root,Last 6 characters of MAC address (uppercase),Administrative,seems to work with a variety of oki printers.,
|
||||
oki,C6150,N1.01 Network Firmware 08.51,ZeroConFig Bonjour,root,last six characters of MAC address,Basic Setup,Printer ID,Protocol
|
||||
oki,C6150dn,,,,000000,menu,,
|
||||
oki,C6150dtn,,,,000000,menu,,
|
||||
oki,C6150hdn,,,,000000,menu,,
|
||||
oki,C6150n,,,,000000,menu,,
|
||||
oki,C7000,,,admin,OkiLAN,admin,with 6200e(NIC),
|
||||
oki,C7000,,,root,(last 6 digits of MAC address),admin,with 7200e(NIC) or 7300e(NIC),
|
||||
oki,C710,All versions,http,root,Last 6 characters (chars uppercased) from MAC Address,Full acces to printer configuration,,
|
||||
oki,C711,,Web,admin,aaaaaa,Admin access,,
|
||||
oki,C7300,A3.14, may apply to other versions,Multi,root,Last six digits of default device name,,
|
||||
oki,C7300,A3.14,may apply to other versions,Multi,root,Last six digits of default device name,Give this a try if the last six digits of the MAC don't work. I believe alpha characters would be uppercased if there were any present.,
|
||||
oki,C7350,,Administrator,root,Last 6 characters (chars uppercased) from MAC Address,,,
|
||||
oki,C7350,,Multi,root,Last 6 characters (chars uppercased) from MAC Address,Administrator,,
|
||||
oki,C810,,http://192.168.0.1,root,Last 6 characters (chars uppercased) from MAC Address,,,
|
||||
oki,C821,all version?,HTTP,root,last six charachter of mac address,Admin,,
|
||||
oki,C830,all,web,root,last 6 digits of the MAC address,,,
|
||||
oki,C8800,,Web or Console,root,Last six characters of MAC address,,,
|
||||
oki,C9000,,,admin,OkiLAN,admin,with 6200e(NIC),
|
||||
oki,C9000,,,root,(last 6 digits of MAC address),admin,with 7200e(NIC) or 7300e(NIC),
|
||||
oki,C9500,,HTTP / telnet,root,Last 6 characters (chars uppercased) from MAC Address,Administration,,
|
||||
oki,C9650,,,,0000,Print statistics,,
|
||||
oki,C9650,,,,aaaaaa,Administration,,
|
||||
oki,C9655,,HTTP,root,last 6 digits of MAC address,Administrator,,
|
||||
oki,C9655,,printer menu,,aaaaaa,printer menubutton,,
|
||||
oki,C9800,,,root,(last 6 digits of MAC address),,,
|
||||
oki,C9850,,,root,(last 6 digits of MAC address),,,
|
||||
oki,CX1145,,,,123456,,,
|
||||
oki,CX2032 MFP,,http,,*blank*,Admin,,
|
||||
oki,CX2033,,Printer Menu,,,,When asked for password just press OK,
|
||||
oki,CX2633,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,CX2731,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,CX3641,,,root,(last 6 digits of MAC address),,,
|
||||
oki,Color 8 +14ex,,,admin,OkiLAN,admin,with 6100e(NIC),
|
||||
oki,ES3640,,,root,(last 6 digits of MAC address),,,
|
||||
oki,ES5460 MFP,,Local configuration menu,,aaaaaa,Admin/Root i guess,,
|
||||
oki,ES7120,,Web,root,aaaaaa,Admin,,
|
||||
oki,ES7411,,web HTTP,admin,aaaaaa,Administrator,,
|
||||
@@ -5275,7 +5230,6 @@ oki,MC160,,Op Panel,,000000,Admin,,
|
||||
oki,MC160,,Web,,sysAdmin,Admin,,
|
||||
oki,MC342w,,,admin,aaaaaa,admin,,
|
||||
oki,MC360,,Console,admin,aaaaaa,Full acces to printer configuration,,
|
||||
oki,MC360,,HTTP,admin,Last 6 characters (chars uppercased) from MAC Address,Administration,,
|
||||
oki,MC361,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,MC560,,Printer Menu,,,,When asked for password just press OK,
|
||||
oki,MC560,,Printer Menu,,,,When asked for password,
|
||||
@@ -5285,19 +5239,10 @@ oki,MC860,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,ML3xx,,,admin,OkiLAN,admin,with 6010e(NIC),6020e(NIC)
|
||||
oki,ML491n,,http://,Admin,OkiLAN,Admin,,
|
||||
oki,ML4xx,,,admin,OkiLAN,admin,with 6010e(NIC),6020e(NIC)
|
||||
oki,ML8810,,,root,(last 6 digits of MAC address),,,
|
||||
oki,N22113B,A2.00,http://192.168.1.9,,noe,Admin,,
|
||||
oki,WebTools,,,Administrator,,,,
|
||||
oki,b710,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,c3450,All,Multi,admin,last 6 characters of the MAC ADRESS,Admin,,
|
||||
oki,c3450,All,Multi,admin,last 6 characters of the MAC ADRESS,Admin,no,
|
||||
oki,c511dn,B7.00,,admin,aaaaaa,Full administrator Access,the machine picks up dhcp address,manually configure static on machine directly if required or print a config page to get the dhcp address that was assigned.
|
||||
oki,c5300,,,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters type them as upper case",,,
|
||||
oki,c5300,,Console,root,last 6 characters of the MAC ADRESS ""if it contains any alpha characters,type them as upper case"",,
|
||||
oki,c5300,,Console,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters,type them as upper case",No,
|
||||
oki,c5300,,Multi,root,last 6 characters of the MAC ADRESS ""if it contains any alpha characters,type them as upper case"",admin,
|
||||
oki,c5300,,Multi,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters,type them as upper case",No,
|
||||
oki,c5300,,admin,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters type them as upper case",,,
|
||||
oki,c5750,n1.02,http://192.168.0.200,,,,,
|
||||
oki,c810,1.0,192.100.185.78,admin,admin,admin,,
|
||||
olegkhabarov,Comfy CMS,,,username,password,,,
|
||||
@@ -10100,7 +10045,6 @@ telus,Telephony and internet services,,,(username),telus12,User,Initial password
|
||||
telus,Telephony and internet services,,,(username),telus13,User,Initial password if issued in 2013,
|
||||
telus,Telephony and internet services,,,(username),telus99,User,Initial password if issued in 1999,
|
||||
tenda,W150M,,192.168.1.1,admin,admin,Admin,,
|
||||
teradyne,4TEL,VRS400,DTMF,(last 5 digits of lineman's SSN),(same as user ID),,,
|
||||
terayon,,,,admin,nms,,6.29,
|
||||
terayon,,Comcast-supplied,HTTP,,,diagnostics page,192.168.100.1/diagnostics_page.html,
|
||||
terayon,TeraLink 1000 Controller,,,admin,password,,,
|
||||
@@ -10403,8 +10347,6 @@ unisys,ClearPath MCP,,Multi,ADMINISTRATOR,ADMINISTRATOR,Admin,,
|
||||
unisys,ClearPath MCP,,Multi,HTTP,HTTP,Web Server Administration,,
|
||||
unisys,ClearPath MCP,,Multi,NAU,NAU,Privileged,Network Administration Utility,
|
||||
unitedtechnologiescorporation,Interlogix truVision IP Camera,,,admin,1234,,,
|
||||
universityoftennessee,All Employee and Student Services,,,<NetID> - See Notes,See Notes,Varies with account,Username based on email - eg. if email is smith123@tennessee.edu then NetID (username) is smith123. Def. Password composed of first two letters of birth month in lower case; last two digits of birth; last four digits of UT ID Number; eg. Born Feb 1979 and UT ID Number is 123-45-6789 - default password is fe796789,
|
||||
universityoftennessee,All Employee and Student Services,,,lt;NetIDgt; - See Notes,See Notes,Varies with account,Username based on email - eg. if email is smith123@tennessee.edu then NetID (username) is smith123. Def. Password composed of first two letters of birth month in lower case; last two digits of birth; last four digits of UT ID Number; eg. Born Feb 1979 and UT ID Number is 123-45-6789 - default password is fe796789,
|
||||
unix,Generic,,,adm,,,,
|
||||
unix,Generic,,,adm,adm,,,
|
||||
unix,Generic,,,admin,admin,,,
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 927 and column 220.
|
@@ -2417,8 +2417,6 @@ draytek,Vigor,all,HTTP,admin,admin,Admin,,
|
||||
dreambox,All models,all versions,http, telnet,root,dreambox,,
|
||||
dreambox,All models,all versions,http,telnet,root,dreambox,gives access to a busybox allowing to control the box using basic unix commands embedded into busybox,
|
||||
drupal.org,Drupal,,administrator,admin,admin,,,
|
||||
ducati,Diavel motorcycles,,console,,last 4 digits of the motorcycle's VIN,Start and drive the motorcycle without a key,This is the ignition password - if you have one of these bikes change the password ASAP as you may be liable for any accident damage caused by the thief!,
|
||||
ducati,Diavel,,,,Last 4 digits of VIN,,,
|
||||
dupont,Digital Water Proofer,,,root,par0t,,,
|
||||
dynalink,RTA020,,,admin,private,,,
|
||||
dynalink,RTA020,,Admin,admin,private,,,
|
||||
@@ -3061,7 +3059,6 @@ hewlettpackard,Motive Chorus,,HTTP (port 5060),admin,isee,,,
|
||||
hewlettpackard,Officejet,all versions,http,admin,,admin,http interface,
|
||||
hewlettpackard,Power Manager,3,HTTP,admin,admin,Admin,,
|
||||
hewlettpackard,ProcCurve MSC-5100,,,admin,admin,,,
|
||||
hewlettpackard,Remote Insight Board,,,Administrator,The last eight digits of the serial number,,,
|
||||
hewlettpackard,StoreOnce,,,HPSupport,badg3r5,,,
|
||||
hewlettpackard,Vectra,,Console,,hewlpack,Admin,,
|
||||
hewlettpackard,iLo,,http,Admin,Admin,Admin,,
|
||||
@@ -3611,7 +3608,6 @@ iso sistemi,winwork,,Admin,,,,,
|
||||
iwill,PC BIOS,,,,iwill,,,
|
||||
iwill,PC BIOS,,Admin,,iwill,,,
|
||||
iwill,PC BIOS,,Console,,iwill,Admin,,
|
||||
jacksoncommunitycollege,My Network Services,,web,(first 7 letters of student's last name + first seven letters of first name + middle initial -- no spaces or punctuation),(First letter of first name Capitalized + First letter of last name in lowercase + day of birth {01-31} + birth year {2 digits} + last 4 digits of student ID),My Network Services access,,
|
||||
jaht,adsl router,AR41/2A,HTTP,admin,epicrouter,Admin,,
|
||||
jamfsoftware,Casper Suite,,,jamfsoftware,jamfsw03,,,
|
||||
janitza,UMG 508,,,Homepage Password,0th,,,
|
||||
@@ -3786,7 +3782,6 @@ kyocera,FS3140MFP,,Web Interface,,admin00,Administrator,,
|
||||
kyocera,FS6025MFP,,system menus,Admin,Admin,Admin,,
|
||||
kyocera,Intermate LAN FS Pro 10/100,K82_0371,HTTP,admin,admin,Admin,,
|
||||
kyocera,KM-4850W,,,admin,,,,
|
||||
kyocera,KR2,,http,,read notes,,it is the last 6 characters of the mac address,
|
||||
kyocera,TASKalfa 250 Ci,,,Admin,admin00,,if enable local authentification,
|
||||
kyocera,TASKalfa 250ci,,IP,,admin00,,,
|
||||
kyocera,TASKalfa 266ci,,Console Panel,Admin,Admin,Admin,,
|
||||
@@ -5188,82 +5183,42 @@ oce,tcs500, Windows XP, all models,12.3.0(1668),console, http://192.168.0.81,,
|
||||
oce,tcs500,Windows XP,all models,12.3.0(1668),console,http://192.168.0.81,,
|
||||
ods,1094 IS Chassis,,,ods,ods,,4.x,
|
||||
ods,1094,,,ods,ods,,,
|
||||
oki,9600,,,admin,last six characters of the MAC address (letters uppercase).,,,
|
||||
oki,B410,,http (dhcp),admin,last six charachter of mac address (upper case),,,
|
||||
oki,B410dn,,http://169.254.39.211/,admin,Last 6 characters (chars uppercased) from MAC Address,admin,,
|
||||
oki,B411,all ver,Http or AdminManager,root,aaaaaa,Administrator,,
|
||||
oki,B420,,http (dhcp),admin,last six charachter of mac address (upper case),,,
|
||||
oki,B430,,http (dhcp),admin,last six charachter of mac address (upper case),,,
|
||||
oki,B431,all ver,Http or AdminManager,root,aaaaaa,Administrator,,
|
||||
oki,B431dn,,http://192.168.1.xxx,root,123456,Admin,,
|
||||
oki,B43xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,B6100n,,,admin,OkiLAN,admin,with 61e(NIC),
|
||||
oki,B6200n,,,admin,OkiLAN,admin,with 62e(NIC),
|
||||
oki,B6300,,,root,last six charachter of mac address,root,,
|
||||
oki,B6300n,,,admin,OkiLAN,admin,with 62e(NIC),
|
||||
oki,B6500,,,root,(last 6 digits of MAC address),root,,
|
||||
oki,B710,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,B720,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,B720N,All versions,Web interface,root,aaaaaa,Root access,,
|
||||
oki,B730,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,B8300n,,,admin,OkiLAN,admin,with 83e(NIC),
|
||||
oki,B930n,,,root,(last 4 digits of MAC address),root,,
|
||||
oki,C3200n,,Web Interface - Device IP,root,last 6 of MAC Address - case sensitive,,,
|
||||
oki,C330,all versions etc.,http://192.168.0.1,root,aaaaaa,Admin,Administrator,
|
||||
oki,C3450,,http://192.168.1.50,admin,heslo,admin,,
|
||||
oki,C3450,,web,admin,last 6 digits of MAC code, Use uppercase letters,,
|
||||
oki,C3450,,web,admin,last 6 digits of MAC code,Use uppercase letters,Administrator,
|
||||
oki,C3530,,console,admin,last 6 digits of MAC address,Admin,,
|
||||
oki,C380,,,admin,last 6 characters of the MAC ADRESS,,,
|
||||
oki,C51xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,C530dn,A1.02,http://192.168.1.51,root,aaaaaa,Admin,,
|
||||
oki,C53xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,C54xx,,,root,(last 6 digits of MAC address),admin,with 8100e(NIC),
|
||||
oki,C5550 MFP,,http,,*blank*,Admin,,
|
||||
oki,C5650,,Multi,root,Last 6 characters of MAC address (uppercase),Admin,Last 6 digits are also at the end of the default printer name,
|
||||
oki,C5650dn,,,,000000,menu,,
|
||||
oki,C5650n,,,,000000,menu,,
|
||||
oki,C5700,,HTTP,root,the 6 last digit of the MAC adress,Admin,running with other models,
|
||||
oki,C5850,,http,admin,last 6 characters of the MAC ADRESS,,,
|
||||
oki,C5900,,HTTP,root,Last 6 characters (chars uppercased) from MAC Address,admin,,
|
||||
oki,C6050dn,,,,000000,menu,,
|
||||
oki,C6050n,,,,000000,menu,,
|
||||
oki,C610,,,admin,aaaaaa,admin,,
|
||||
oki,C6100,,HTTP,root,Last 6 characters of MAC address (uppercase),Administrative,seems to work with a variety of oki printers.,
|
||||
oki,C6150,N1.01 Network Firmware 08.51,ZeroConFig Bonjour,root,last six characters of MAC address,Basic Setup,Printer ID,Protocol
|
||||
oki,C6150dn,,,,000000,menu,,
|
||||
oki,C6150dtn,,,,000000,menu,,
|
||||
oki,C6150hdn,,,,000000,menu,,
|
||||
oki,C6150n,,,,000000,menu,,
|
||||
oki,C7000,,,admin,OkiLAN,admin,with 6200e(NIC),
|
||||
oki,C7000,,,root,(last 6 digits of MAC address),admin,with 7200e(NIC) or 7300e(NIC),
|
||||
oki,C710,All versions,http,root,Last 6 characters (chars uppercased) from MAC Address,Full acces to printer configuration,,
|
||||
oki,C711,,Web,admin,aaaaaa,Admin access,,
|
||||
oki,C7300,A3.14, may apply to other versions,Multi,root,Last six digits of default device name,,
|
||||
oki,C7300,A3.14,may apply to other versions,Multi,root,Last six digits of default device name,Give this a try if the last six digits of the MAC don't work. I believe alpha characters would be uppercased if there were any present.,
|
||||
oki,C7350,,Administrator,root,Last 6 characters (chars uppercased) from MAC Address,,,
|
||||
oki,C7350,,Multi,root,Last 6 characters (chars uppercased) from MAC Address,Administrator,,
|
||||
oki,C810,,http://192.168.0.1,root,Last 6 characters (chars uppercased) from MAC Address,,,
|
||||
oki,C821,all version?,HTTP,root,last six charachter of mac address,Admin,,
|
||||
oki,C830,all,web,root,last 6 digits of the MAC address,,,
|
||||
oki,C8800,,Web or Console,root,Last six characters of MAC address,,,
|
||||
oki,C9000,,,admin,OkiLAN,admin,with 6200e(NIC),
|
||||
oki,C9000,,,root,(last 6 digits of MAC address),admin,with 7200e(NIC) or 7300e(NIC),
|
||||
oki,C9500,,HTTP / telnet,root,Last 6 characters (chars uppercased) from MAC Address,Administration,,
|
||||
oki,C9650,,,,0000,Print statistics,,
|
||||
oki,C9650,,,,aaaaaa,Administration,,
|
||||
oki,C9655,,HTTP,root,last 6 digits of MAC address,Administrator,,
|
||||
oki,C9655,,printer menu,,aaaaaa,printer menubutton,,
|
||||
oki,C9800,,,root,(last 6 digits of MAC address),,,
|
||||
oki,C9850,,,root,(last 6 digits of MAC address),,,
|
||||
oki,CX1145,,,,123456,,,
|
||||
oki,CX2032 MFP,,http,,*blank*,Admin,,
|
||||
oki,CX2033,,Printer Menu,,,,When asked for password just press OK,
|
||||
oki,CX2633,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,CX2731,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,CX3641,,,root,(last 6 digits of MAC address),,,
|
||||
oki,Color 8 +14ex,,,admin,OkiLAN,admin,with 6100e(NIC),
|
||||
oki,ES3640,,,root,(last 6 digits of MAC address),,,
|
||||
oki,ES5460 MFP,,Local configuration menu,,aaaaaa,Admin/Root i guess,,
|
||||
oki,ES7120,,Web,root,aaaaaa,Admin,,
|
||||
oki,ES7411,,web HTTP,admin,aaaaaa,Administrator,,
|
||||
@@ -5275,7 +5230,6 @@ oki,MC160,,Op Panel,,000000,Admin,,
|
||||
oki,MC160,,Web,,sysAdmin,Admin,,
|
||||
oki,MC342w,,,admin,aaaaaa,admin,,
|
||||
oki,MC360,,Console,admin,aaaaaa,Full acces to printer configuration,,
|
||||
oki,MC360,,HTTP,admin,Last 6 characters (chars uppercased) from MAC Address,Administration,,
|
||||
oki,MC361,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,MC560,,Printer Menu,,,,When asked for password just press OK,
|
||||
oki,MC560,,Printer Menu,,,,When asked for password,
|
||||
@@ -5285,19 +5239,10 @@ oki,MC860,,Web interface,admin,aaaaaa,admin,,
|
||||
oki,ML3xx,,,admin,OkiLAN,admin,with 6010e(NIC),6020e(NIC)
|
||||
oki,ML491n,,http://,Admin,OkiLAN,Admin,,
|
||||
oki,ML4xx,,,admin,OkiLAN,admin,with 6010e(NIC),6020e(NIC)
|
||||
oki,ML8810,,,root,(last 6 digits of MAC address),,,
|
||||
oki,N22113B,A2.00,http://192.168.1.9,,noe,Admin,,
|
||||
oki,WebTools,,,Administrator,,,,
|
||||
oki,b710,all,http://192.168.1.33,root,aaaaaa,Administrator,,
|
||||
oki,c3450,All,Multi,admin,last 6 characters of the MAC ADRESS,Admin,,
|
||||
oki,c3450,All,Multi,admin,last 6 characters of the MAC ADRESS,Admin,no,
|
||||
oki,c511dn,B7.00,,admin,aaaaaa,Full administrator Access,the machine picks up dhcp address,manually configure static on machine directly if required or print a config page to get the dhcp address that was assigned.
|
||||
oki,c5300,,,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters type them as upper case",,,
|
||||
oki,c5300,,Console,root,last 6 characters of the MAC ADRESS ""if it contains any alpha characters,type them as upper case"",,
|
||||
oki,c5300,,Console,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters,type them as upper case",No,
|
||||
oki,c5300,,Multi,root,last 6 characters of the MAC ADRESS ""if it contains any alpha characters,type them as upper case"",admin,
|
||||
oki,c5300,,Multi,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters,type them as upper case",No,
|
||||
oki,c5300,,admin,root,last 6 characters of the MAC ADRESS "if it contains any alpha characters type them as upper case",,,
|
||||
oki,c5750,n1.02,http://192.168.0.200,,,,,
|
||||
oki,c810,1.0,192.100.185.78,admin,admin,admin,,
|
||||
olegkhabarov,Comfy CMS,,,username,password,,,
|
||||
@@ -10100,7 +10045,6 @@ telus,Telephony and internet services,,,(username),telus12,User,Initial password
|
||||
telus,Telephony and internet services,,,(username),telus13,User,Initial password if issued in 2013,
|
||||
telus,Telephony and internet services,,,(username),telus99,User,Initial password if issued in 1999,
|
||||
tenda,W150M,,192.168.1.1,admin,admin,Admin,,
|
||||
teradyne,4TEL,VRS400,DTMF,(last 5 digits of lineman's SSN),(same as user ID),,,
|
||||
terayon,,,,admin,nms,,6.29,
|
||||
terayon,,Comcast-supplied,HTTP,,,diagnostics page,192.168.100.1/diagnostics_page.html,
|
||||
terayon,TeraLink 1000 Controller,,,admin,password,,,
|
||||
@@ -10403,8 +10347,6 @@ unisys,ClearPath MCP,,Multi,ADMINISTRATOR,ADMINISTRATOR,Admin,,
|
||||
unisys,ClearPath MCP,,Multi,HTTP,HTTP,Web Server Administration,,
|
||||
unisys,ClearPath MCP,,Multi,NAU,NAU,Privileged,Network Administration Utility,
|
||||
unitedtechnologiescorporation,Interlogix truVision IP Camera,,,admin,1234,,,
|
||||
universityoftennessee,All Employee and Student Services,,,<NetID> - See Notes,See Notes,Varies with account,Username based on email - eg. if email is smith123@tennessee.edu then NetID (username) is smith123. Def. Password composed of first two letters of birth month in lower case; last two digits of birth; last four digits of UT ID Number; eg. Born Feb 1979 and UT ID Number is 123-45-6789 - default password is fe796789,
|
||||
universityoftennessee,All Employee and Student Services,,,lt;NetIDgt; - See Notes,See Notes,Varies with account,Username based on email - eg. if email is smith123@tennessee.edu then NetID (username) is smith123. Def. Password composed of first two letters of birth month in lower case; last two digits of birth; last four digits of UT ID Number; eg. Born Feb 1979 and UT ID Number is 123-45-6789 - default password is fe796789,
|
||||
unix,Generic,,,adm,,,,
|
||||
unix,Generic,,,adm,adm,,,
|
||||
unix,Generic,,,admin,admin,,,
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 927 and column 220.
|
+1
-1
@@ -5,7 +5,7 @@
|
||||
#endif
|
||||
|
||||
extern char *HYDRA_EXIT;
|
||||
char *buf = NULL;
|
||||
static char *buf = NULL;
|
||||
|
||||
int32_t start_cisco(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE *fp) {
|
||||
char *empty = "";
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
#include "hydra-mod.h"
|
||||
|
||||
#define CSLEN 256
|
||||
|
||||
extern char *HYDRA_EXIT;
|
||||
char *buf;
|
||||
|
||||
int32_t start_cobaltstrike(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE *fp) {
|
||||
char *empty = "";
|
||||
char *pass, buffer[4 + 1 + 256];
|
||||
char cs_pass[CSLEN + 1];
|
||||
unsigned char len_pass;
|
||||
unsigned char reply_byte_0;
|
||||
unsigned char reply_byte_1;
|
||||
unsigned char reply_byte_2;
|
||||
unsigned char reply_byte_3;
|
||||
int32_t ret = -1;
|
||||
|
||||
if (strlen(pass = hydra_get_next_password()) == 0)
|
||||
pass = empty;
|
||||
if (strlen(pass) > CSLEN)
|
||||
pass[CSLEN - 1] = 0;
|
||||
len_pass = strlen(pass);
|
||||
memset(cs_pass, 0, CSLEN + 1);
|
||||
strcpy(cs_pass, pass);
|
||||
|
||||
memset(buffer, 0x41, sizeof(buffer));
|
||||
buffer[0] = 0x00;
|
||||
buffer[1] = 0x00;
|
||||
buffer[2] = 0xBE;
|
||||
buffer[3] = 0xEF;
|
||||
memcpy(buffer + 4, &len_pass, 1);
|
||||
memcpy(buffer + 5, cs_pass, len_pass);
|
||||
|
||||
if (hydra_send(s, buffer, sizeof(buffer), 0) < 0)
|
||||
return 1;
|
||||
|
||||
reply_byte_0 = 0x00;
|
||||
ret = hydra_recv_nb(s, &reply_byte_0, 1);
|
||||
if (ret <= 0)
|
||||
return 3;
|
||||
|
||||
reply_byte_1 = 0x00;
|
||||
ret = hydra_recv_nb(s, &reply_byte_1, 1);
|
||||
if (ret <= 0)
|
||||
return 3;
|
||||
|
||||
reply_byte_2 = 0x00;
|
||||
ret = hydra_recv_nb(s, &reply_byte_2, 1);
|
||||
if (ret <= 0)
|
||||
return 3;
|
||||
|
||||
reply_byte_3 = 0x00;
|
||||
ret = hydra_recv_nb(s, &reply_byte_3, 1);
|
||||
if (ret <= 0)
|
||||
return 3;
|
||||
|
||||
if (reply_byte_0 == 0x00 && reply_byte_1 == 0x00 && reply_byte_2 == 0xCA && reply_byte_3 == 0xFE) {
|
||||
hydra_report_found_host(port, ip, "cobaltstrike", fp);
|
||||
hydra_completed_pair_found();
|
||||
free(buf);
|
||||
if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
|
||||
return 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
free(buf);
|
||||
hydra_completed_pair();
|
||||
if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
|
||||
return 2;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void service_cobaltstrike(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname) {
|
||||
int32_t run = 1, next_run = 1, sock = -1;
|
||||
int32_t mysslport = PORT_COBALTSTRIKE_SSL;
|
||||
|
||||
hydra_register_socket(sp);
|
||||
if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
|
||||
return;
|
||||
while (1) {
|
||||
switch (run) {
|
||||
case 1: /* connect and service init function */
|
||||
if (port != 0)
|
||||
mysslport = port;
|
||||
sock = hydra_connect_ssl(ip, mysslport, hostname);
|
||||
port = mysslport;
|
||||
if (sock < 0) {
|
||||
hydra_report(stderr, "[ERROR] Child with pid %d terminating, can not connect\n", (int32_t)getpid());
|
||||
hydra_child_exit(1);
|
||||
}
|
||||
next_run = start_cobaltstrike(sock, ip, port, options, miscptr, fp);
|
||||
hydra_disconnect(sock);
|
||||
break;
|
||||
case 2: /* clean exit */
|
||||
if (sock >= 0)
|
||||
sock = hydra_disconnect(sock);
|
||||
hydra_child_exit(0);
|
||||
return;
|
||||
case 3: /* clean exit */
|
||||
if (sock >= 0)
|
||||
sock = hydra_disconnect(sock);
|
||||
hydra_child_exit(2);
|
||||
return;
|
||||
default:
|
||||
hydra_report(stderr, "[ERROR] Caught unknown return code, exiting!\n");
|
||||
hydra_child_exit(2);
|
||||
}
|
||||
run = next_run;
|
||||
}
|
||||
}
|
||||
|
||||
int32_t service_cobaltstrike_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname) {
|
||||
// called before the childrens are forked off, so this is the function
|
||||
// which should be filled if initial connections and service setup has to be
|
||||
// performed once only.
|
||||
//
|
||||
// fill if needed.
|
||||
//
|
||||
// return codes:
|
||||
// 0 all OK
|
||||
// -1 error, hydra will exit, so print a good error message here
|
||||
|
||||
return 0;
|
||||
}
|
||||
+10
-10
@@ -572,17 +572,17 @@ char *html_encode(char *string) {
|
||||
if (ret == NULL)
|
||||
return NULL;
|
||||
|
||||
if (index(ret, '%') != NULL)
|
||||
if (strchr(ret, '%') != NULL)
|
||||
ret = hydra_strrep(ret, "%", "%25");
|
||||
if (index(ret, ' ') != NULL)
|
||||
if (strchr(ret, ' ') != NULL)
|
||||
ret = hydra_strrep(ret, " ", "%20");
|
||||
if (index(ret, '&') != NULL)
|
||||
if (strchr(ret, '&') != NULL)
|
||||
ret = hydra_strrep(ret, "&", "%26");
|
||||
if (index(ret, '#') != NULL)
|
||||
if (strchr(ret, '#') != NULL)
|
||||
ret = hydra_strrep(ret, "#", "%23");
|
||||
if (index(ret, '=') != NULL)
|
||||
if (strchr(ret, '=') != NULL)
|
||||
ret = hydra_strrep(ret, "=", "%3D");
|
||||
if (index(ret, '+') != NULL)
|
||||
if (strchr(ret, '+') != NULL)
|
||||
ret = hydra_strrep(ret, "+", "%2B");
|
||||
|
||||
return ret;
|
||||
@@ -646,10 +646,10 @@ int32_t analyze_server_response(int32_t s) {
|
||||
} else if (endcookie2 != NULL)
|
||||
*endcookie2 = 0;
|
||||
// is the cookie already there? if yes, remove it!
|
||||
if (index(startcookie, '=') != NULL && (ptr = index(startcookie, '=')) - startcookie + 1 <= sizeof(tmpname)) {
|
||||
if (strchr(startcookie, '=') != NULL && (ptr = strchr(startcookie, '=')) - startcookie + 1 <= sizeof(tmpname)) {
|
||||
strncpy(tmpname, startcookie, sizeof(tmpname) - 2);
|
||||
tmpname[sizeof(tmpname) - 2] = 0;
|
||||
ptr = index(tmpname, '=');
|
||||
ptr = strchr(tmpname, '=');
|
||||
*(++ptr) = 0;
|
||||
// is the cookie already in the cookiejar? (so, does it have to be
|
||||
// replaced?)
|
||||
@@ -675,7 +675,7 @@ int32_t analyze_server_response(int32_t s) {
|
||||
strcpy(cookie, tmpcookie);
|
||||
}
|
||||
}
|
||||
ptr = index(str, '=');
|
||||
ptr = strchr(str, '=');
|
||||
// only copy the cookie if it has a value (otherwise the server wants to
|
||||
// delete the cookie)
|
||||
if (ptr != NULL && *(ptr + 1) != ';' && *(ptr + 1) != 0 && *(ptr + 1) != '\n' && *(ptr + 1) != '\r') {
|
||||
@@ -1286,7 +1286,7 @@ ptr_header_node initialize(char *ip, unsigned char options, char *miscptr) {
|
||||
|
||||
cond = ptr;
|
||||
|
||||
if ((ptr2 = index(ptr, ':')) != NULL) {
|
||||
if ((ptr2 = strchr(ptr, ':')) != NULL) {
|
||||
*ptr2++ = 0;
|
||||
if (*ptr2)
|
||||
optional1 = ptr2;
|
||||
|
||||
@@ -28,17 +28,17 @@ int32_t start_http_proxy_urlenum(int32_t s, char *ip, int32_t port, unsigned cha
|
||||
ptr++;
|
||||
strncpy(mhost, ptr, sizeof(mhost) - 1);
|
||||
mhost[sizeof(mhost) - 1] = 0;
|
||||
if ((ptr = index(mhost, '/')) != NULL)
|
||||
if ((ptr = strchr(mhost, '/')) != NULL)
|
||||
*ptr = 0;
|
||||
if ((ptr = index(mhost, ']')) != NULL)
|
||||
if ((ptr = strchr(mhost, ']')) != NULL)
|
||||
*ptr = 0;
|
||||
else if ((ptr = index(mhost, ':')) != NULL)
|
||||
else if ((ptr = strchr(mhost, ':')) != NULL)
|
||||
*ptr = 0;
|
||||
|
||||
if (miscptr != NULL && index(miscptr, ':') != NULL) {
|
||||
if (miscptr != NULL && strchr(miscptr, ':') != NULL) {
|
||||
strncpy(mlogin, miscptr, sizeof(mlogin) - 1);
|
||||
mlogin[sizeof(mlogin) - 1] = 0;
|
||||
ptr = index(mlogin, ':');
|
||||
ptr = strchr(mlogin, ':');
|
||||
*ptr++ = 0;
|
||||
strncpy(mpass, ptr, sizeof(mpass) - 1);
|
||||
mpass[sizeof(mpass) - 1] = 0;
|
||||
@@ -215,7 +215,7 @@ int32_t start_http_proxy_urlenum(int32_t s, char *ip, int32_t port, unsigned cha
|
||||
}
|
||||
}
|
||||
// result analysis
|
||||
ptr = ((char *)index(buf, ' ')) + 1;
|
||||
ptr = ((char *)strchr(buf, ' ')) + 1;
|
||||
if (*ptr == '2' || (*ptr == '3' && (*(ptr + 2) == '1' || *(ptr + 2) == '2')) || strncmp(ptr, "404", 4) == 0 || strncmp(ptr, "403", 4) == 0) {
|
||||
hydra_report_found_host(port, ip, "http-proxy", fp);
|
||||
if (fp != stdout)
|
||||
|
||||
+5
-5
@@ -24,9 +24,9 @@ int32_t start_http_proxy(int32_t s, char *ip, int32_t port, unsigned char option
|
||||
sprintf(url, "%.500s", miscptr);
|
||||
ptr = strstr(miscptr, "://"); // :// check is in hydra.c
|
||||
sprintf(host, "Host: %.50s", ptr + 3);
|
||||
if ((ptr = index(host, '/')) != NULL)
|
||||
if ((ptr = strchr(host, '/')) != NULL)
|
||||
*ptr = 0;
|
||||
if ((ptr = index(host + 6, ':')) != NULL && host[0] != '[')
|
||||
if ((ptr = strchr(host + 6, ':')) != NULL && host[0] != '[')
|
||||
*ptr = 0;
|
||||
strcat(host, "\r\n");
|
||||
}
|
||||
@@ -185,7 +185,7 @@ int32_t start_http_proxy(int32_t s, char *ip, int32_t port, unsigned char option
|
||||
char *pbuffer, *result;
|
||||
|
||||
http_proxy_auth_mechanism = AUTH_DIGESTMD5;
|
||||
auth_hdr == NULL;
|
||||
auth_hdr = NULL;
|
||||
pbuffer = hydra_strcasestr(http_proxy_buf, "Proxy-Authenticate: Digest ");
|
||||
strncpy(buffer, pbuffer + strlen("Proxy-Authenticate: Digest "), sizeof(buffer));
|
||||
buffer[sizeof(buffer) - 1] = '\0';
|
||||
@@ -232,7 +232,7 @@ int32_t start_http_proxy(int32_t s, char *ip, int32_t port, unsigned char option
|
||||
}
|
||||
}
|
||||
|
||||
ptr = ((char *)index(http_proxy_buf, ' ')) + 1;
|
||||
ptr = ((char *)strchr(http_proxy_buf, ' ')) + 1;
|
||||
if (*ptr == '2' || (*ptr == '3' && *(ptr + 2) == '1') || (*ptr == '3' && *(ptr + 2) == '2') || (*ptr == '4' && *(ptr + 2) == '4')) {
|
||||
hydra_report_found_host(port, ip, "http-proxy", fp);
|
||||
hydra_completed_pair_found();
|
||||
@@ -240,7 +240,7 @@ int32_t start_http_proxy(int32_t s, char *ip, int32_t port, unsigned char option
|
||||
http_proxy_buf = NULL;
|
||||
} else {
|
||||
if (*ptr != '4')
|
||||
hydra_report(stderr, "[INFO] Unusual return code: %c for %s:%s\n", (char)*(index(http_proxy_buf, ' ') + 1), login, pass);
|
||||
hydra_report(stderr, "[INFO] Unusual return code: %c for %s:%s\n", (char)*(strchr(http_proxy_buf, ' ') + 1), login, pass);
|
||||
else if (verbose && *(ptr + 2) == '3')
|
||||
hydra_report(stderr, "[INFO] Potential success, could be false positive: %s:%s\n", login, pass);
|
||||
hydra_completed_pair();
|
||||
|
||||
+2
-2
@@ -208,7 +208,7 @@ int32_t start_http(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||
complete_line = 0;
|
||||
tmpreplybuf[0] = 0;
|
||||
|
||||
while (http_buf != NULL && (strstr(http_buf, "HTTP/1.") == NULL || (index(http_buf, '\n') == NULL && complete_line == 0))) {
|
||||
while (http_buf != NULL && (strstr(http_buf, "HTTP/1.") == NULL || (strchr(http_buf, '\n') == NULL && complete_line == 0))) {
|
||||
if (debug)
|
||||
printf("il: %d, tmpreplybuf: %s, http_buf: %s\n", complete_line, tmpreplybuf, http_buf);
|
||||
if (tmpreplybuf[0] == 0 && strstr(http_buf, "HTTP/1.") != NULL) {
|
||||
@@ -245,7 +245,7 @@ int32_t start_http(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||
if (debug)
|
||||
hydra_report(stderr, "S:%s\n", http_buf);
|
||||
|
||||
ptr = ((char *)index(http_buf, ' '));
|
||||
ptr = ((char *)strchr(http_buf, ' '));
|
||||
if (ptr != NULL)
|
||||
ptr++;
|
||||
if (ptr != NULL && (*ptr == '2' || *ptr == '3' || strncmp(ptr, "403", 3) == 0 || strncmp(ptr, "404", 3) == 0)) {
|
||||
|
||||
+6
-4
@@ -295,13 +295,13 @@ int32_t internal__hydra_connect(char *host, int32_t port, int32_t type, int32_t
|
||||
|
||||
send(s, buf, strlen(buf), 0);
|
||||
if (debug) {
|
||||
char *ptr = index(buf, '\r');
|
||||
char *ptr = strchr(buf, '\r');
|
||||
if (ptr != NULL)
|
||||
*ptr = 0;
|
||||
printf("DEBUG_CONNECT_PROXY_SENT: %s\n", buf);
|
||||
}
|
||||
recv(s, buf, 4096, 0);
|
||||
if (strncmp("HTTP/", buf, 5) == 0 && (tmpptr = index(buf, ' ')) != NULL && *++tmpptr == '2') {
|
||||
if (strncmp("HTTP/", buf, 5) == 0 && (tmpptr = strchr(buf, ' ')) != NULL && *++tmpptr == '2') {
|
||||
if (debug)
|
||||
printf("DEBUG_CONNECT_PROXY_OK\n");
|
||||
} else {
|
||||
@@ -637,9 +637,11 @@ void hydra_child_exit(int32_t code) {
|
||||
__fck = write(intern_socket, "C", 1);
|
||||
else if (code == 2) /* application protocol error or service shutdown */
|
||||
__fck = write(intern_socket, "E", 1);
|
||||
// code 3 means exit without telling mommy about it - a bad idea. mommy should
|
||||
else if (code == 3) /* application protocol error or service shutdown */
|
||||
__fck = write(intern_socket, "D", 1);
|
||||
// code 4 means exit without telling mommy about it - a bad idea. mommy should
|
||||
// know
|
||||
else if (code == -1 || code > 3) {
|
||||
else if (code == -1 || code > 4) {
|
||||
fprintf(stderr, "[TOTAL FUCKUP] a module should not use "
|
||||
"hydra_child_exit(-1) ! Fix it in the source please ...\n");
|
||||
__fck = write(intern_socket, "E", 1);
|
||||
|
||||
@@ -67,7 +67,16 @@ char proxy_string_type[MAX_PROXY_COUNT][10];
|
||||
char *proxy_authentication[MAX_PROXY_COUNT];
|
||||
char *cmdlinetarget;
|
||||
|
||||
#ifndef __APPLE__
|
||||
typedef int32_t BOOL;
|
||||
#else /* __APPLE__ */
|
||||
/* ensure compatibility with objc libraries */
|
||||
#if (TARGET_OS_IPHONE && __LP64__) || TARGET_OS_WATCH
|
||||
typedef bool BOOL;
|
||||
#else
|
||||
typedef signed char BOOL;
|
||||
#endif
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
#define hydra_report fprintf
|
||||
|
||||
|
||||
+5
-1
@@ -22,7 +22,10 @@ BOOL rdp_connect(char *server, int32_t port, char *domain, char *login, char *pa
|
||||
instance->settings->Username = login;
|
||||
instance->settings->Password = password;
|
||||
instance->settings->IgnoreCertificate = TRUE;
|
||||
instance->settings->AuthenticationOnly = TRUE;
|
||||
if (password[0] == 0)
|
||||
instance->settings->AuthenticationOnly = FALSE;
|
||||
else
|
||||
instance->settings->AuthenticationOnly = TRUE;
|
||||
instance->settings->ServerHostname = server;
|
||||
instance->settings->ServerPort = port;
|
||||
instance->settings->Domain = domain;
|
||||
@@ -54,6 +57,7 @@ int32_t start_rdp(char *ip, int32_t port, unsigned char options, char *miscptr,
|
||||
}
|
||||
|
||||
login_result = rdp_connect(server, port, domain, login, pass);
|
||||
if (debug) hydra_report(stderr, "[DEBUG] rdp reported %08x\n", login_result);
|
||||
switch (login_result) {
|
||||
case 0:
|
||||
// login success
|
||||
|
||||
+5
-9
@@ -42,7 +42,7 @@ int32_t get_sip_code(char *buf) {
|
||||
int32_t code;
|
||||
char tmpbuf[SIP_MAX_BUF], word[SIP_MAX_BUF];
|
||||
|
||||
if (sscanf(buf, "%s %i %s", tmpbuf, &code, word) != 3)
|
||||
if (sscanf(buf, "%256s %i %256s", tmpbuf, &code, word) != 3)
|
||||
return -1;
|
||||
return code;
|
||||
}
|
||||
@@ -71,14 +71,12 @@ int32_t start_sip(int32_t s, char *ip, char *lip, int32_t port, int32_t lport, u
|
||||
}
|
||||
|
||||
int32_t has_sip_cred = 0;
|
||||
int32_t try
|
||||
= 0;
|
||||
int32_t try = 0;
|
||||
|
||||
/* We have to check many times because server may begin to send "100 Trying"
|
||||
* before "401 Unauthorized" */
|
||||
while (try < 2 && !has_sip_cred) {
|
||||
try
|
||||
++;
|
||||
try++;
|
||||
if (hydra_data_ready_timed(s, 3, 0) > 0) {
|
||||
i = hydra_recv(s, (char *)buf, sizeof(buf) - 1);
|
||||
if (i > 0)
|
||||
@@ -160,14 +158,12 @@ int32_t start_sip(int32_t s, char *ip, char *lip, int32_t port, int32_t lport, u
|
||||
if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
|
||||
return 3;
|
||||
}
|
||||
try
|
||||
= 0;
|
||||
try = 0;
|
||||
int32_t has_resp = 0;
|
||||
int32_t sip_code = 0;
|
||||
|
||||
while (try < 2 && !has_resp) {
|
||||
try
|
||||
++;
|
||||
try++;
|
||||
if (hydra_data_ready_timed(s, 5, 0) > 0) {
|
||||
memset(buf, 0, sizeof(buf));
|
||||
if ((i = hydra_recv(s, (char *)buf, sizeof(buf) - 1)) >= 0)
|
||||
|
||||
+1
-1
@@ -1494,7 +1494,7 @@ int32_t service_smb_init(char *ip, int32_t sp, unsigned char options, char *misc
|
||||
ctime = time(NULL);
|
||||
do {
|
||||
usleepn(300);
|
||||
} while ((ready = hydra_data_ready(sock)) <= 0 && ctime + 5 <= time(NULL));
|
||||
} while ((ready = hydra_data_ready(sock)) <= 0 && ctime + 5 >= time(NULL));
|
||||
|
||||
if (ready <= 0) {
|
||||
fprintf(stderr, "[ERROR] no reply from target smb://%s:%d/\n", hostname, port);
|
||||
|
||||
+8
-2
@@ -128,13 +128,13 @@ int32_t start_smtp_enum(int32_t s, char *ip, int32_t port, unsigned char options
|
||||
//#endif
|
||||
// hydra_report(stderr, "Server %s", err);
|
||||
// }
|
||||
if (strncmp(buf, "500 ", 4) == 0) {
|
||||
if (strncmp(buf, "500 ", 4) == 0 || strncmp(buf, "502 ", 4) == 0) {
|
||||
hydra_report(stderr,
|
||||
"[ERROR] command is disabled on the server (choose "
|
||||
"different method): %s",
|
||||
buf);
|
||||
free(buf);
|
||||
return 3;
|
||||
return 4;
|
||||
}
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
// 503 5.5.1 Error: nested MAIL command
|
||||
@@ -245,6 +245,12 @@ void service_smtp_enum(char *ip, int32_t sp, unsigned char options, char *miscpt
|
||||
}
|
||||
hydra_child_exit(0);
|
||||
return;
|
||||
case 4: /* unsupported exit */
|
||||
if (sock >= 0) {
|
||||
sock = hydra_disconnect(sock);
|
||||
}
|
||||
hydra_child_exit(3);
|
||||
return;
|
||||
default:
|
||||
hydra_report(stderr, "[ERROR] Caught unknown return code, exiting!\n");
|
||||
hydra_child_exit(0);
|
||||
|
||||
+4
-2
@@ -34,11 +34,12 @@ int32_t start_ssh(int32_t s, char *ip, int32_t port, unsigned char options, char
|
||||
if (new_session) {
|
||||
if (session) {
|
||||
ssh_disconnect(session);
|
||||
ssh_finalize();
|
||||
// ssh_finalize();
|
||||
ssh_free(session);
|
||||
} else {
|
||||
ssh_init();
|
||||
}
|
||||
|
||||
ssh_init();
|
||||
session = ssh_new();
|
||||
ssh_options_set(session, SSH_OPTIONS_PORT, &port);
|
||||
ssh_options_set(session, SSH_OPTIONS_HOST, hydra_address2string(ip));
|
||||
@@ -173,6 +174,7 @@ int32_t service_ssh_init(char *ip, int32_t sp, unsigned char options, char *misc
|
||||
// 3 skip target because its unreachable
|
||||
#ifdef LIBSSH
|
||||
int32_t rc, method;
|
||||
ssh_init();
|
||||
ssh_session session = ssh_new();
|
||||
|
||||
if (verbose || debug)
|
||||
|
||||
+2
-1
@@ -33,8 +33,9 @@ int32_t start_sshkey(int32_t s, char *ip, int32_t port, unsigned char options, c
|
||||
if (new_session) {
|
||||
if (session) {
|
||||
ssh_disconnect(session);
|
||||
ssh_finalize();
|
||||
ssh_free(session);
|
||||
} else {
|
||||
ssh_init();
|
||||
}
|
||||
|
||||
session = ssh_new();
|
||||
|
||||
+30
-5
@@ -36,7 +36,7 @@ int32_t start_telnet(int32_t s, char *ip, int32_t port, unsigned char options, c
|
||||
if ((buf = hydra_receive_line(s)) == NULL)
|
||||
return 1;
|
||||
|
||||
if (index(buf, '/') != NULL || index(buf, '>') != NULL || index(buf, '%') != NULL || index(buf, '$') != NULL || index(buf, '#') != NULL) {
|
||||
if (strchr(buf, '/') != NULL || strchr(buf, '>') != NULL || strchr(buf, '%') != NULL || strchr(buf, '$') != NULL || strchr(buf, '#') != NULL) {
|
||||
hydra_report_found_host(port, ip, "telnet", fp);
|
||||
hydra_completed_pair_found();
|
||||
free(buf);
|
||||
@@ -75,16 +75,41 @@ int32_t start_telnet(int32_t s, char *ip, int32_t port, unsigned char options, c
|
||||
}
|
||||
|
||||
/*win7 answering with do terminal type = 0xfd 0x18 */
|
||||
while ((buf = hydra_receive_line(s)) != NULL && make_to_lower(buf) && (strstr(buf, "login:") == NULL || strstr(buf, "last login:") != NULL) && strstr(buf, "sername:") == NULL) {
|
||||
if ((miscptr != NULL && strstr(buf, miscptr) != NULL) || (miscptr == NULL && strstr(buf, "invalid") == NULL && strstr(buf, "failed") == NULL && strstr(buf, "bad ") == NULL && (index(buf, '/') != NULL || index(buf, '>') != NULL || index(buf, '$') != NULL || index(buf, '#') != NULL || index(buf, '%') != NULL || ((buf[1] == '\xfd') && (buf[2] == '\x18'))))) {
|
||||
while ((buf = hydra_receive_line(s)) != NULL && make_to_lower(buf) && (strstr(buf, "password:") == NULL || strstr(buf, "login:") == NULL || strstr(buf, "last login:") != NULL) && strstr(buf, "sername:") == NULL) {
|
||||
if ((miscptr != NULL && strstr(buf, miscptr) != NULL) || (miscptr == NULL && strstr(buf, "invalid") == NULL && strstr(buf, "incorrect") == NULL && strstr(buf, "bad ") == NULL && (strchr(buf, '/') != NULL || strchr(buf, '>') != NULL || strchr(buf, '$') != NULL || strchr(buf, '#') != NULL || strchr(buf, '%') != NULL || ((buf[1] == '\xfd') && (buf[2] == '\x18'))))) {
|
||||
hydra_report_found_host(port, ip, "telnet", fp);
|
||||
hydra_completed_pair_found();
|
||||
free(buf);
|
||||
if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
|
||||
return 3;
|
||||
return 1;
|
||||
}
|
||||
free(buf);
|
||||
} else if (buf && strstr(buf, "assword:")) {
|
||||
hydra_completed_pair();
|
||||
// printf("password prompt\n");
|
||||
free(buf);
|
||||
if (strlen(pass = hydra_get_next_password()) == 0)
|
||||
pass = empty;
|
||||
sprintf(buffer, "%s\r", pass);
|
||||
if (no_line_mode) {
|
||||
for (i = 0; i < strlen(buffer); i++) {
|
||||
if (strcmp(&buffer[i], "\r") == 0) {
|
||||
send(s, "\r\0", 2, 0);
|
||||
} else {
|
||||
send(s, &buffer[i], 1, 0);
|
||||
}
|
||||
usleepn(20);
|
||||
}
|
||||
} else {
|
||||
if (hydra_send(s, buffer, strlen(buffer) + 1, 0) < 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
} else if (buf && strstr(buf, "login:")) {
|
||||
free(buf);
|
||||
hydra_completed_pair();
|
||||
return 2;
|
||||
} else
|
||||
free(buf);
|
||||
}
|
||||
|
||||
hydra_completed_pair();
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ int32_t vnc_client_version = RFB33;
|
||||
int32_t failed_auth = 0;
|
||||
|
||||
extern char *HYDRA_EXIT;
|
||||
char *buf;
|
||||
static char *buf;
|
||||
|
||||
/*
|
||||
* Encrypt CHALLENGESIZE bytes in memory using a password.
|
||||
|
||||
@@ -78,6 +78,7 @@ extern void service_http_post_form(char *ip, int32_t sp, unsigned char options,
|
||||
extern void service_icq(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern void service_pcnfs(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern void service_mssql(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern void service_cobaltstrike(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern void service_cvs(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern void service_snmp(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern void service_smtp(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
@@ -178,6 +179,7 @@ extern int32_t service_imap_init(char *ip, int32_t sp, unsigned char options, ch
|
||||
extern int32_t service_irc_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern int32_t service_ldap_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern int32_t service_mssql_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern int32_t service_cobaltstrike_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern int32_t service_nntp_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern int32_t service_pcanywhere_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
extern int32_t service_pcnfs_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
@@ -202,7 +204,7 @@ extern int32_t service_rtsp_init(char *ip, int32_t sp, unsigned char options, ch
|
||||
extern int32_t service_rpcap_init(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE *fp, int32_t port, char *hostname);
|
||||
|
||||
// ADD NEW SERVICES HERE
|
||||
char *SERVICES = "adam6500 asterisk afp cisco cisco-enable cvs firebird ftp[s] "
|
||||
char *SERVICES = "adam6500 asterisk afp cisco cisco-enable cobaltstrike cvs firebird ftp[s] "
|
||||
"http[s]-{head|get|post} http[s]-{get|post}-form http-proxy "
|
||||
"http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] "
|
||||
"memcached mongodb mssql mysql ncp nntp oracle oracle-listener oracle-sid "
|
||||
@@ -226,7 +228,7 @@ char *SERVICES = "adam6500 asterisk afp cisco cisco-enable cvs firebird ftp[s] "
|
||||
#define RESTOREFILE "./hydra.restore"
|
||||
|
||||
#define PROGRAM "Hydra"
|
||||
#define VERSION "v9.2"
|
||||
#define VERSION "v9.3-dev"
|
||||
#define AUTHOR "van Hauser/THC"
|
||||
#define EMAIL "<vh@thc.org>"
|
||||
#define AUTHOR2 "David Maciejak"
|
||||
@@ -402,6 +404,7 @@ static const struct {
|
||||
{"memcached", service_mcached_init, service_mcached, NULL},
|
||||
#endif
|
||||
SERVICE(mssql),
|
||||
SERVICE(cobaltstrike),
|
||||
#ifdef LIBMONGODB
|
||||
SERVICE3("mongodb", mongodb),
|
||||
#endif
|
||||
@@ -593,8 +596,6 @@ void help_bfg() {
|
||||
"others,\n"
|
||||
" just add their real representation.\n"
|
||||
" -y disable the use of the above letters as placeholders\n"
|
||||
" -r use a shuffling method called 'rain' to try to break\n"
|
||||
" the linearity of the bruteforce\n"
|
||||
"Examples:\n"
|
||||
" -x 3:5:a generate passwords from length 3 to 5 with all "
|
||||
"lowercase letters\n"
|
||||
@@ -807,7 +808,7 @@ void hydra_restore_read() {
|
||||
fprintf(stderr,
|
||||
"[WARNING] restore file was created by version %c.%c, this is "
|
||||
"version %s\n",
|
||||
buf[0], buf[2], VERSION);
|
||||
buf[0], buf[1], VERSION);
|
||||
if (buf[2] != sizeof(int32_t) % 256 || buf[3] != sizeof(hydra_head *) % 256) {
|
||||
fprintf(stderr, "[ERROR] restore file was created on a different, "
|
||||
"incompatible processor platform!\n");
|
||||
@@ -883,11 +884,19 @@ void hydra_restore_read() {
|
||||
printf("[DEBUG] reading restore file: Step 8 complete\n");
|
||||
|
||||
login_ptr = malloc(hydra_brains.sizelogin + hydra_brains.countlogin + 8);
|
||||
if (!login_ptr) {
|
||||
fprintf(stderr, "Error: malloc(%lu) failed\n", hydra_brains.sizelogin + hydra_brains.countlogin + 8);
|
||||
exit(-1);
|
||||
}
|
||||
fck = (int32_t)fread(login_ptr, hydra_brains.sizelogin + hydra_brains.countlogin + 8, 1, f);
|
||||
if (debug)
|
||||
printf("[DEBUG] reading restore file: Step 9 complete\n");
|
||||
if (!check_flag(hydra_options.mode, MODE_COLON_FILE)) { // NOT colonfile mode
|
||||
pass_ptr = malloc(hydra_brains.sizepass + hydra_brains.countpass + 8);
|
||||
if (!pass_ptr) {
|
||||
fprintf(stderr, "Error: malloc(%lu) failed\n", hydra_brains.sizepass + hydra_brains.countpass + 8);
|
||||
exit(-1);
|
||||
}
|
||||
fck = (int32_t)fread(pass_ptr, hydra_brains.sizepass + hydra_brains.countpass + 8, 1, f);
|
||||
} else { // colonfile mode
|
||||
hydra_options.colonfile = empty_login; // dummy
|
||||
@@ -897,8 +906,16 @@ void hydra_restore_read() {
|
||||
printf("[DEBUG] reading restore file: Step 10 complete\n");
|
||||
|
||||
hydra_targets = (hydra_target **)malloc((hydra_brains.targets + 3) * sizeof(hydra_target *));
|
||||
if (!hydra_targets) {
|
||||
fprintf(stderr, "Error: malloc(%lu) failed\n", (hydra_brains.targets + 3) * sizeof(hydra_target *));
|
||||
exit(-1);
|
||||
}
|
||||
for (j = 0; j < hydra_brains.targets; j++) {
|
||||
hydra_targets[j] = malloc(sizeof(hydra_target));
|
||||
if (!hydra_targets[j]) {
|
||||
fprintf(stderr, "Error: malloc(%lu) failed\n", sizeof(hydra_target));
|
||||
exit(-1);
|
||||
}
|
||||
fck = (int32_t)fread(hydra_targets[j], sizeof(hydra_target), 1, f);
|
||||
sck = fgets(out, sizeof(out), f);
|
||||
if (out[0] != 0 && out[strlen(out) - 1] == '\n')
|
||||
@@ -950,8 +967,16 @@ void hydra_restore_read() {
|
||||
if (debug)
|
||||
printf("[DEBUG] reading restore file: Step 11 complete\n");
|
||||
hydra_heads = malloc(sizeof(hydra_head *) * hydra_options.max_use);
|
||||
if (!hydra_heads) {
|
||||
fprintf(stderr, "Error: malloc(%lu) failed\n", sizeof(hydra_head *) * hydra_options.max_use);
|
||||
exit(-1);
|
||||
}
|
||||
for (j = 0; j < hydra_options.max_use; j++) {
|
||||
hydra_heads[j] = malloc(sizeof(hydra_head));
|
||||
if (!hydra_heads[j]) {
|
||||
fprintf(stderr, "Error: malloc(%lu) failed\n", sizeof(hydra_head));
|
||||
exit(-1);
|
||||
}
|
||||
fck = (int32_t)fread(hydra_heads[j], sizeof(hydra_head), 1, f);
|
||||
hydra_heads[j]->sp[0] = -1;
|
||||
hydra_heads[j]->sp[1] = -1;
|
||||
@@ -1107,7 +1132,7 @@ void fill_mem(char *ptr, FILE *fd, int32_t colonmode) {
|
||||
tmp[len] = 0;
|
||||
}
|
||||
if (colonmode) {
|
||||
if ((ptr2 = index(tmp, ':')) == NULL) {
|
||||
if ((ptr2 = strchr(tmp, ':')) == NULL) {
|
||||
fprintf(stderr,
|
||||
"[ERROR] invalid line in colon file (-C), missing colon "
|
||||
"in line: %s\n",
|
||||
@@ -1320,6 +1345,7 @@ int32_t hydra_lookup_port(char *service) {
|
||||
{"memcached", PORT_MCACHED, PORT_MCACHED_SSL},
|
||||
{"mongodb", PORT_MONGODB, PORT_MONGODB},
|
||||
{"mssql", PORT_MSSQL, PORT_MSSQL_SSL},
|
||||
{"cobaltstrike", PORT_COBALTSTRIKE, PORT_COBALTSTRIKE_SSL},
|
||||
{"mysql", PORT_MYSQL, PORT_MYSQL_SSL},
|
||||
{"postgres", PORT_POSTGRES, PORT_POSTGRES_SSL},
|
||||
{"pcanywhere", PORT_PCANYWHERE, PORT_PCANYWHERE_SSL},
|
||||
@@ -1470,7 +1496,7 @@ void hydra_increase_fail_count(int32_t target_no, int32_t head_no) {
|
||||
fprintf(stderr,
|
||||
"[ERROR] Too many connect errors to target, disabling "
|
||||
"%s://%s%s%s:%d\n",
|
||||
hydra_options.service, hydra_targets[target_no]->ip[0] == 16 && index(hydra_targets[target_no]->target, ':') != NULL ? "[" : "", hydra_targets[target_no]->target, hydra_targets[target_no]->ip[0] == 16 && index(hydra_targets[target_no]->target, ':') != NULL ? "]" : "", hydra_targets[target_no]->port);
|
||||
hydra_options.service, hydra_targets[target_no]->ip[0] == 16 && strchr(hydra_targets[target_no]->target, ':') != NULL ? "[" : "", hydra_targets[target_no]->target, hydra_targets[target_no]->ip[0] == 16 && strchr(hydra_targets[target_no]->target, ':') != NULL ? "]" : "", hydra_targets[target_no]->port);
|
||||
}
|
||||
if (hydra_brains.targets > hydra_brains.finished)
|
||||
hydra_kill_head(head_no, 1, 0);
|
||||
@@ -1907,8 +1933,11 @@ int32_t hydra_send_next_pair(int32_t target_no, int32_t head_no) {
|
||||
// the above line
|
||||
}
|
||||
if (debug || hydra_options.showAttempt) {
|
||||
printf("[%sATTEMPT] target %s - login \"%s\" - pass \"%s\" - %" hPRIu64 " of %" hPRIu64 " [child %d] (%d/%d)\n", hydra_targets[target_no]->redo_state ? "REDO-" : snp_is_redo ? "RE-" : "", hydra_targets[target_no]->target, hydra_heads[head_no]->current_login_ptr, hydra_heads[head_no]->current_pass_ptr, hydra_targets[target_no]->sent, hydra_brains.todo + hydra_targets[target_no]->redo, head_no, hydra_targets[target_no]->redo_state ? hydra_targets[target_no]->redo_state - 1 : 0,
|
||||
hydra_targets[target_no]->redo);
|
||||
printf("[%sATTEMPT] target %s - login \"%s\" - pass \"%s\" - %" hPRIu64 " of %" hPRIu64 " [child %d] (%d/%d)\n",
|
||||
hydra_targets[target_no]->redo_state ? "REDO-"
|
||||
: snp_is_redo ? "RE-"
|
||||
: "",
|
||||
hydra_targets[target_no]->target, hydra_heads[head_no]->current_login_ptr, hydra_heads[head_no]->current_pass_ptr, hydra_targets[target_no]->sent, hydra_brains.todo + hydra_targets[target_no]->redo, head_no, hydra_targets[target_no]->redo_state ? hydra_targets[target_no]->redo_state - 1 : 0, hydra_targets[target_no]->redo);
|
||||
}
|
||||
loop_cnt = 0;
|
||||
return 0;
|
||||
@@ -1933,7 +1962,7 @@ void hydra_skip_user(int32_t target_no, char *username) {
|
||||
hydra_targets[target_no]->skipcnt++;
|
||||
}
|
||||
if (hydra_options.loop_mode == 0 && !check_flag(hydra_options.mode, MODE_COLON_FILE)) {
|
||||
if (memcmp(username, hydra_targets[target_no]->login_ptr, strlen(username)) == 0) {
|
||||
if (strcmp(username, hydra_targets[target_no]->login_ptr) == 0) {
|
||||
if (debug)
|
||||
printf("[DEBUG] skipping username %s\n", username);
|
||||
// increase count
|
||||
@@ -2023,11 +2052,11 @@ void process_proxy_line(int32_t type, char *string) {
|
||||
}
|
||||
*sep = 0;
|
||||
target_string = sep + 3;
|
||||
if ((sep = index(target_string, '@')) != NULL) {
|
||||
if ((sep = strchr(target_string, '@')) != NULL) {
|
||||
auth_string = target_string;
|
||||
*sep = 0;
|
||||
target_string = sep + 1;
|
||||
if (index(auth_string, ':') == NULL) {
|
||||
if (strchr(auth_string, ':') == NULL) {
|
||||
fprintf(stderr,
|
||||
"[WARNING] %s has an invalid authentication definition %s, must "
|
||||
"be in the format login:pass, entry ignored\n",
|
||||
@@ -2035,14 +2064,14 @@ void process_proxy_line(int32_t type, char *string) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((sep = index(target_string, ':')) != NULL) {
|
||||
if ((sep = strchr(target_string, ':')) != NULL) {
|
||||
*sep = 0;
|
||||
port_string = sep + 1;
|
||||
if ((sep = index(port_string, '%')) != NULL) {
|
||||
if ((sep = strchr(port_string, '%')) != NULL) {
|
||||
*sep = 0;
|
||||
device_string = sep + 1;
|
||||
}
|
||||
if ((sep = index(port_string, '/')) != NULL)
|
||||
if ((sep = strchr(port_string, '/')) != NULL)
|
||||
*sep = 0;
|
||||
port = atoi(port_string);
|
||||
if (port < 1 || port > 65535) {
|
||||
@@ -2191,6 +2220,10 @@ int main(int argc, char *argv[]) {
|
||||
SERVICES = hydra_string_replace(SERVICES, "radmin2 ", "");
|
||||
strcat(unsupported, "radmin2 ");
|
||||
#endif
|
||||
#ifndef LIBFREERDP
|
||||
SERVICES = hydra_string_replace(SERVICES, "rdp ", "");
|
||||
strcat(unsupported, "rdp ");
|
||||
#endif
|
||||
#ifndef LIBSAPR3
|
||||
SERVICES = hydra_string_replace(SERVICES, "sapr3 ", "");
|
||||
strcat(unsupported, "sapr3 ");
|
||||
@@ -2238,11 +2271,6 @@ int main(int argc, char *argv[]) {
|
||||
strcat(unsupported, "SSL-services (ftps, sip, rdp, oracle-services, ...) ");
|
||||
#endif
|
||||
|
||||
#ifndef LIBFREERDP
|
||||
// for rdp
|
||||
SERVICES = hydra_string_replace(SERVICES, " rdp", "");
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_MATH_H
|
||||
if (strlen(unsupported) > 0)
|
||||
strcat(unsupported, "and ");
|
||||
@@ -2571,23 +2599,23 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
if (*target_pos == '[') {
|
||||
target_pos++;
|
||||
if ((param_pos = index(target_pos, ']')) == NULL)
|
||||
if ((param_pos = strchr(target_pos, ']')) == NULL)
|
||||
bail("no closing ']' found in target definition");
|
||||
*param_pos++ = 0;
|
||||
if (*param_pos == ':')
|
||||
port_pos = ++param_pos;
|
||||
if ((param_pos = index(param_pos, '/')) != NULL)
|
||||
if ((param_pos = strchr(param_pos, '/')) != NULL)
|
||||
*param_pos++ = 0;
|
||||
} else {
|
||||
port_pos = index(target_pos, ':');
|
||||
param_pos = index(target_pos, '/');
|
||||
port_pos = strchr(target_pos, ':');
|
||||
param_pos = strchr(target_pos, '/');
|
||||
if (port_pos != NULL && param_pos != NULL && port_pos > param_pos)
|
||||
port_pos = NULL;
|
||||
if (port_pos != NULL)
|
||||
*port_pos++ = 0;
|
||||
if (param_pos != NULL)
|
||||
*param_pos++ = 0;
|
||||
if (port_pos != NULL && index(port_pos, ':') != NULL) {
|
||||
if (port_pos != NULL && strchr(port_pos, ':') != NULL) {
|
||||
if (prefer_ipv6)
|
||||
bail("Illegal IPv6 target definition must be written within '[' "
|
||||
"']'");
|
||||
@@ -2776,6 +2804,8 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
if (strcmp(hydra_options.service, "mssql") == 0)
|
||||
i = 1;
|
||||
if (strcmp(hydra_options.service, "cobaltstrike") == 0)
|
||||
i = 2;
|
||||
if ((strcmp(hydra_options.service, "oracle-listener") == 0) || (strcmp(hydra_options.service, "tns") == 0)) {
|
||||
i = 2;
|
||||
hydra_options.service = malloc(strlen("oracle-listener") + 1);
|
||||
@@ -2870,7 +2900,7 @@ int main(int argc, char *argv[]) {
|
||||
"like parallel connections)\n");
|
||||
hydra_options.tasks = 1;
|
||||
}
|
||||
if (hydra_options.login != NULL && (index(hydra_options.login, '\\') != NULL || index(hydra_options.login, '/') != NULL))
|
||||
if (hydra_options.login != NULL && (strchr(hydra_options.login, '\\') != NULL || strchr(hydra_options.login, '/') != NULL))
|
||||
fprintf(stderr, "[WARNING] potential windows domain specification found in "
|
||||
"login. You must use the -m option to pass a domain.\n");
|
||||
i = 1;
|
||||
@@ -2894,7 +2924,7 @@ int main(int argc, char *argv[]) {
|
||||
#if !defined(LIBSMBCLIENT)
|
||||
bail("Compiled without LIBSMBCLIENT support, module not available!");
|
||||
#else
|
||||
if (hydra_options.login != NULL && (index(hydra_options.login, '\\') != NULL || index(hydra_options.login, '/') != NULL))
|
||||
if (hydra_options.login != NULL && (strchr(hydra_options.login, '\\') != NULL || strchr(hydra_options.login, '/') != NULL))
|
||||
fprintf(stderr, "[WARNING] potential windows domain specification found in "
|
||||
"login. You must use the -m option to pass a domain.\n");
|
||||
if (hydra_options.miscptr == NULL || (strlen(hydra_options.miscptr) == 0)) {
|
||||
@@ -3286,6 +3316,9 @@ int main(int argc, char *argv[]) {
|
||||
hydra_options.port = port;
|
||||
}
|
||||
|
||||
if (hydra_options.login == NULL && hydra_options.loginfile == NULL)
|
||||
hydra_options.exit_found = 1;
|
||||
|
||||
if (hydra_options.ssl == 0 && hydra_options.port == 443)
|
||||
fprintf(stderr, "[WARNING] you specified port 443 for attacking a http "
|
||||
"service, however did not specify the -S ssl switch nor "
|
||||
@@ -3547,13 +3580,13 @@ int main(int argc, char *argv[]) {
|
||||
if (*tmpptr == '[') {
|
||||
tmpptr++;
|
||||
hydra_targets[i]->target = tmpptr;
|
||||
if ((tmpptr2 = index(tmpptr, ']')) != NULL) {
|
||||
if ((tmpptr2 = strchr(tmpptr, ']')) != NULL) {
|
||||
*tmpptr2++ = 0;
|
||||
tmpptr = tmpptr2;
|
||||
}
|
||||
} else
|
||||
hydra_targets[i]->target = tmpptr;
|
||||
if ((tmpptr2 = index(hydra_targets[i]->target, ':')) != NULL) {
|
||||
if ((tmpptr2 = strchr(tmpptr, ':')) != NULL) {
|
||||
*tmpptr2++ = 0;
|
||||
tmpptr = tmpptr2;
|
||||
hydra_targets[i]->port = atoi(tmpptr2);
|
||||
@@ -3569,13 +3602,13 @@ int main(int argc, char *argv[]) {
|
||||
} else if (hydra_options.server == NULL) {
|
||||
fprintf(stderr, "Error: no target server given, nor -M option used\n");
|
||||
exit(-1);
|
||||
} else if (index(hydra_options.server, '/') != NULL) {
|
||||
} else if (strchr(hydra_options.server, '/') != NULL) {
|
||||
if (cmdlinetarget == NULL)
|
||||
bail("You seem to mix up \"service://target:port/options\" syntax with "
|
||||
"\"target service options\" syntax. Read the README on how to use "
|
||||
"hydra correctly!");
|
||||
if (strstr(cmdlinetarget, "://") != NULL) {
|
||||
tmpptr = index(hydra_options.server, '/');
|
||||
tmpptr = strchr(hydra_options.server, '/');
|
||||
if (tmpptr != NULL)
|
||||
*tmpptr = 0;
|
||||
countservers = hydra_brains.targets = 1;
|
||||
@@ -3598,7 +3631,7 @@ int main(int argc, char *argv[]) {
|
||||
exit(-1);
|
||||
}
|
||||
strcpy(tmpptr, hydra_options.server);
|
||||
tmpptr2 = index(tmpptr, '/');
|
||||
tmpptr2 = strchr(tmpptr, '/');
|
||||
*tmpptr2++ = 0;
|
||||
if ((k = atoi(tmpptr2)) < 16 || k > 31) {
|
||||
fprintf(stderr, "Error: network size may only be between /16 and /31: %s\n", hydra_options.server);
|
||||
@@ -3764,7 +3797,7 @@ int main(int argc, char *argv[]) {
|
||||
printf(" per task\n");
|
||||
|
||||
if (hydra_brains.targets == 1) {
|
||||
if (index(hydra_targets[0]->target, ':') == NULL) {
|
||||
if (strchr(hydra_targets[0]->target, ':') == NULL) {
|
||||
printf("[DATA] attacking %s%s://%s:", hydra_options.service, hydra_options.ssl == 1 ? "s" : "", hydra_targets[0]->target);
|
||||
printf("%d%s%s\n", port, hydra_options.miscptr == NULL || hydra_options.miscptr[0] != '/' ? "/" : "", hydra_options.miscptr != NULL ? hydra_options.miscptr : "");
|
||||
} else {
|
||||
@@ -3840,7 +3873,7 @@ int main(int argc, char *argv[]) {
|
||||
#ifdef AF_INET6
|
||||
ipv6 = NULL;
|
||||
#endif
|
||||
if ((device = index(hydra_targets[i]->target, '%')) != NULL)
|
||||
if ((device = strchr(hydra_targets[i]->target, '%')) != NULL)
|
||||
*device++ = 0;
|
||||
if (getaddrinfo(hydra_targets[i]->target, NULL, &hints, &res) != 0) {
|
||||
if (use_proxy == 0) {
|
||||
@@ -3906,9 +3939,10 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
freeaddrinfo(res);
|
||||
}
|
||||
// restore device information if present
|
||||
// restore device information if present (overwrite null bytes)
|
||||
if (device != NULL) {
|
||||
*(device - 1) = '%';
|
||||
char *tmpptr = device - 1;
|
||||
*tmpptr = '%'; // you can ignore the compiler warning
|
||||
fprintf(stderr, "[WARNING] not all modules support BINDTODEVICE for IPv6 "
|
||||
"link local addresses, e.g. SSH does not\n");
|
||||
}
|
||||
@@ -4129,6 +4163,21 @@ int main(int argc, char *argv[]) {
|
||||
fck = write(hydra_heads[head_no]->sp[1], "n", 1); // small hack
|
||||
break;
|
||||
|
||||
case 'D': // disable target, unknown protocol or feature
|
||||
for (j = 0; j < hydra_brains.targets; j++)
|
||||
if (hydra_targets[j]->done == TARGET_ACTIVE) {
|
||||
hydra_targets[j]->done = TARGET_FINISHED;
|
||||
hydra_brains.finished++;
|
||||
}
|
||||
for (j = 0; j < hydra_options.max_use; j++)
|
||||
if (hydra_heads[j]->active >= 0 && hydra_heads[j]->target_no == target_no) {
|
||||
if (hydra_brains.targets > hydra_brains.finished)
|
||||
hydra_kill_head(j, 1, 0); // kill all heads working on the target
|
||||
else
|
||||
hydra_kill_head(j, 1, 2); // kill all heads working on the target
|
||||
}
|
||||
break;
|
||||
|
||||
// we do not make a difference between 'C' and 'E' results - yet
|
||||
case 'E': // head reports protocol error
|
||||
case 'C': // head reports connect error
|
||||
|
||||
@@ -101,6 +101,8 @@
|
||||
#define PORT_MYSQL_SSL 3306
|
||||
#define PORT_MSSQL 1433
|
||||
#define PORT_MSSQL_SSL 1433
|
||||
#define PORT_COBALTSTRIKE 50050
|
||||
#define PORT_COBALTSTRIKE_SSL 50050
|
||||
#define PORT_POSTGRES 5432
|
||||
#define PORT_POSTGRES_SSL 5432
|
||||
#define PORT_ORACLE 1521
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Name=XHydra
|
||||
GenericName=Hydra very fast network log-on cracker
|
||||
Comment=GUI frontend for Hydra network log-on cracker
|
||||
Version=1.0
|
||||
Exec=xhydra
|
||||
Icon=xhydra
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=System;Security;GTK;
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 213 KiB |
Reference in New Issue
Block a user