mirror of
https://github.com/vanhauser-thc/thc-hydra.git
synced 2025-07-05 12:36:09 -07:00
clarify license
This commit is contained in:
parent
5b6fc88428
commit
90bbde1be8
9 changed files with 48 additions and 29 deletions
|
@ -10,6 +10,9 @@
|
||||||
|
|
||||||
Please do not use in military or secret service organizations,
|
Please do not use in military or secret service organizations,
|
||||||
or for illegal purposes.
|
or for illegal purposes.
|
||||||
|
(This is the wish of the author and non-binding. Many people working
|
||||||
|
in these organizations do not care for laws and ethics anyways.
|
||||||
|
You are not one of the "good" ones if you ignore this.)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
12
hydra-imap.c
12
hydra-imap.c
|
@ -105,7 +105,8 @@ int32_t start_imap(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
|
|
||||||
memset(buffer2, 0, sizeof(buffer2));
|
memset(buffer2, 0, sizeof(buffer2));
|
||||||
result = sasl_plain(buffer2, login, pass);
|
result = sasl_plain(buffer2, login, pass);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%.250s\r\n", buffer2);
|
sprintf(buffer, "%.250s\r\n", buffer2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -163,17 +164,20 @@ int32_t start_imap(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
switch (imap_auth_mechanism) {
|
switch (imap_auth_mechanism) {
|
||||||
case AUTH_CRAMMD5: {
|
case AUTH_CRAMMD5: {
|
||||||
result = sasl_cram_md5(buffer2, pass, buffer);
|
result = sasl_cram_md5(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
} break;
|
} break;
|
||||||
case AUTH_CRAMSHA1: {
|
case AUTH_CRAMSHA1: {
|
||||||
result = sasl_cram_sha1(buffer2, pass, buffer);
|
result = sasl_cram_sha1(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
} break;
|
} break;
|
||||||
case AUTH_CRAMSHA256: {
|
case AUTH_CRAMSHA256: {
|
||||||
result = sasl_cram_sha256(buffer2, pass, buffer);
|
result = sasl_cram_sha256(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,8 @@ int32_t start_nntp(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
|
|
||||||
memset(buffer, 0, sizeof(buffer));
|
memset(buffer, 0, sizeof(buffer));
|
||||||
result = sasl_plain(buffer, login, pass);
|
result = sasl_plain(buffer, login, pass);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
|
|
||||||
char tmp_buffer[sizeof(buffer)];
|
char tmp_buffer[sizeof(buffer)];
|
||||||
sprintf(tmp_buffer, "%.250s\r\n", buffer);
|
sprintf(tmp_buffer, "%.250s\r\n", buffer);
|
||||||
|
@ -149,7 +150,8 @@ int32_t start_nntp(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
|
|
||||||
memset(buffer2, 0, sizeof(buffer2));
|
memset(buffer2, 0, sizeof(buffer2));
|
||||||
result = sasl_cram_md5(buffer2, pass, buffer);
|
result = sasl_cram_md5(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
|
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
hydra_tobase64((unsigned char *)buffer, strlen(buffer), sizeof(buffer));
|
hydra_tobase64((unsigned char *)buffer, strlen(buffer), sizeof(buffer));
|
||||||
|
|
12
hydra-pop3.c
12
hydra-pop3.c
|
@ -203,7 +203,8 @@ int32_t start_pop3(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
|
|
||||||
memset(buffer, 0, sizeof(buffer));
|
memset(buffer, 0, sizeof(buffer));
|
||||||
result = sasl_plain(buffer, login, pass);
|
result = sasl_plain(buffer, login, pass);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
|
|
||||||
char tmp_buffer[sizeof(buffer)];
|
char tmp_buffer[sizeof(buffer)];
|
||||||
sprintf(tmp_buffer, "%.250s\r\n", buffer);
|
sprintf(tmp_buffer, "%.250s\r\n", buffer);
|
||||||
|
@ -265,17 +266,20 @@ int32_t start_pop3(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
switch (p->pop3_auth_mechanism) {
|
switch (p->pop3_auth_mechanism) {
|
||||||
case AUTH_CRAMMD5: {
|
case AUTH_CRAMMD5: {
|
||||||
result = sasl_cram_md5(buffer2, pass, buffer);
|
result = sasl_cram_md5(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
} break;
|
} break;
|
||||||
case AUTH_CRAMSHA1: {
|
case AUTH_CRAMSHA1: {
|
||||||
result = sasl_cram_sha1(buffer2, pass, buffer);
|
result = sasl_cram_sha1(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
} break;
|
} break;
|
||||||
case AUTH_CRAMSHA256: {
|
case AUTH_CRAMSHA256: {
|
||||||
result = sasl_cram_sha256(buffer2, pass, buffer);
|
result = sasl_cram_sha256(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,7 +139,8 @@ int32_t start_sip(int32_t s, char *ip, char *lip, int32_t port, int32_t lport, u
|
||||||
char buffer2[512];
|
char buffer2[512];
|
||||||
|
|
||||||
result = sasl_digest_md5(buffer2, login, pass, strstr(buf, "WWW-Authenticate: Digest") + strlen("WWW-Authenticate: Digest") + 1, host, "sip", NULL, 0, NULL);
|
result = sasl_digest_md5(buffer2, login, pass, strstr(buf, "WWW-Authenticate: Digest") + strlen("WWW-Authenticate: Digest") + 1, host, "sip", NULL, 0, NULL);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
|
|
||||||
memset(buffer, 0, SIP_MAX_BUF);
|
memset(buffer, 0, SIP_MAX_BUF);
|
||||||
snprintf(buffer, SIP_MAX_BUF,
|
snprintf(buffer, SIP_MAX_BUF,
|
||||||
|
|
|
@ -68,7 +68,8 @@ int32_t start_smtp(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
|
|
||||||
memset(buffer, 0, sizeof(buffer));
|
memset(buffer, 0, sizeof(buffer));
|
||||||
result = sasl_plain(buffer, login, pass);
|
result = sasl_plain(buffer, login, pass);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
|
|
||||||
char tmp_buffer[sizeof(buffer)];
|
char tmp_buffer[sizeof(buffer)];
|
||||||
sprintf(tmp_buffer, "%.250s\r\n", buffer);
|
sprintf(tmp_buffer, "%.250s\r\n", buffer);
|
||||||
|
@ -104,7 +105,8 @@ int32_t start_smtp(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
|
|
||||||
memset(buffer2, 0, sizeof(buffer2));
|
memset(buffer2, 0, sizeof(buffer2));
|
||||||
result = sasl_cram_md5(buffer2, pass, buffer);
|
result = sasl_cram_md5(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
|
|
||||||
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
sprintf(buffer, "%s %.250s", preplogin, buffer2);
|
||||||
hydra_tobase64((unsigned char *)buffer, strlen(buffer), sizeof(buffer));
|
hydra_tobase64((unsigned char *)buffer, strlen(buffer), sizeof(buffer));
|
||||||
|
|
|
@ -126,7 +126,8 @@ int32_t start_xmpp(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
case AUTH_PLAIN: {
|
case AUTH_PLAIN: {
|
||||||
memset(buffer2, 0, sizeof(buffer));
|
memset(buffer2, 0, sizeof(buffer));
|
||||||
result = sasl_plain(buffer2, login, pass);
|
result = sasl_plain(buffer2, login, pass);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
sprintf(buffer, "%s%.250s%s", RESPONSE_STR, buffer2, RESPONSE_END_STR);
|
sprintf(buffer, "%s%.250s%s", RESPONSE_STR, buffer2, RESPONSE_END_STR);
|
||||||
if (debug)
|
if (debug)
|
||||||
hydra_report(stderr, "DEBUG C: %s\n", buffer);
|
hydra_report(stderr, "DEBUG C: %s\n", buffer);
|
||||||
|
@ -138,7 +139,8 @@ int32_t start_xmpp(int32_t s, char *ip, int32_t port, unsigned char options, cha
|
||||||
|
|
||||||
memset(buffer2, 0, sizeof(buffer2));
|
memset(buffer2, 0, sizeof(buffer2));
|
||||||
result = sasl_cram_md5(buffer2, pass, buffer);
|
result = sasl_cram_md5(buffer2, pass, buffer);
|
||||||
if (result == NULL) return 3;
|
if (result == NULL)
|
||||||
|
return 3;
|
||||||
|
|
||||||
rc = sasl_saslprep(login, SASL_ALLOW_UNASSIGNED, &preplogin);
|
rc = sasl_saslprep(login, SASL_ALLOW_UNASSIGNED, &preplogin);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
|
|
17
hydra.c
17
hydra.c
|
@ -3,8 +3,9 @@
|
||||||
* https://github.com/vanhauser-thc/thc-hydra
|
* https://github.com/vanhauser-thc/thc-hydra
|
||||||
*
|
*
|
||||||
* Parallized network login hacker.
|
* Parallized network login hacker.
|
||||||
* Don't use in military or secret service organizations, or for illegal
|
* Please don't use in military or secret service organizations, or for illegal
|
||||||
* purposes.
|
* purposes. This is a wish and is non-binding.
|
||||||
|
* If you ignore this be sure you are not a good person though.
|
||||||
*
|
*
|
||||||
* License: GNU AFFERO GENERAL PUBLIC LICENSE v3.0, see LICENSE file
|
* License: GNU AFFERO GENERAL PUBLIC LICENSE v3.0, see LICENSE file
|
||||||
*/
|
*/
|
||||||
|
@ -551,11 +552,11 @@ void help(int32_t ext) {
|
||||||
"module help)\n");
|
"module help)\n");
|
||||||
PRINT_NORMAL(ext,
|
PRINT_NORMAL(ext,
|
||||||
"\nSupported services: %s\n"
|
"\nSupported services: %s\n"
|
||||||
"\n%s is a tool to guess/crack valid login/password pairs. "
|
"\n%s is a tool to guess/crack valid login/password pairs.\n"
|
||||||
"Licensed under AGPL\n"
|
"Licensed under AGPL v3.0. The newest version is always available at;\n%s\n"
|
||||||
"v3.0. The newest version is always available at %s\n"
|
"Please don't use in military or secret service organizations, or for illegal\n"
|
||||||
"Don't use in military or secret service organizations, or for "
|
"purposes. (This is a wish and non-binding - most such people do not care about\n"
|
||||||
"illegal purposes.\n",
|
"laws and ethics anyway - and tell themselves they are one of the good ones.)\n",
|
||||||
SERVICES, PROGRAM, RESOURCE);
|
SERVICES, PROGRAM, RESOURCE);
|
||||||
|
|
||||||
if (ext && strlen(unsupported) > 0) {
|
if (ext && strlen(unsupported) > 0) {
|
||||||
|
@ -2151,7 +2152,7 @@ int main(int argc, char *argv[]) {
|
||||||
struct sockaddr_in *ipv4 = NULL;
|
struct sockaddr_in *ipv4 = NULL;
|
||||||
|
|
||||||
printf("%s %s (c) 2020 by %s & %s - Please do not use in military or secret "
|
printf("%s %s (c) 2020 by %s & %s - Please do not use in military or secret "
|
||||||
"service organizations, or for illegal purposes.\n\n",
|
"service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).\n\n",
|
||||||
PROGRAM, VERSION, AUTHOR, AUTHOR2);
|
PROGRAM, VERSION, AUTHOR, AUTHOR2);
|
||||||
#ifndef LIBAFP
|
#ifndef LIBAFP
|
||||||
SERVICES = hydra_string_replace(SERVICES, "afp ", "");
|
SERVICES = hydra_string_replace(SERVICES, "afp ", "");
|
||||||
|
|
12
sasl.h
12
sasl.h
|
@ -32,7 +32,7 @@ typedef enum { SASL_ALLOW_UNASSIGNED = 1 } sasl_saslprep_flags;
|
||||||
|
|
||||||
int32_t print_hex(unsigned char *buf, int32_t len);
|
int32_t print_hex(unsigned char *buf, int32_t len);
|
||||||
|
|
||||||
char* sasl_plain(char *result, char *login, char *pass);
|
char *sasl_plain(char *result, char *login, char *pass);
|
||||||
int32_t sasl_saslprep(const char *in, sasl_saslprep_flags flags, char **out);
|
int32_t sasl_saslprep(const char *in, sasl_saslprep_flags flags, char **out);
|
||||||
|
|
||||||
#ifdef LIBOPENSSL
|
#ifdef LIBOPENSSL
|
||||||
|
@ -40,9 +40,9 @@ int32_t sasl_saslprep(const char *in, sasl_saslprep_flags flags, char **out);
|
||||||
#include <openssl/md5.h>
|
#include <openssl/md5.h>
|
||||||
#include <openssl/sha.h>
|
#include <openssl/sha.h>
|
||||||
|
|
||||||
char* sasl_cram_md5(char *result, char *pass, char *challenge);
|
char *sasl_cram_md5(char *result, char *pass, char *challenge);
|
||||||
char* sasl_cram_sha1(char *result, char *pass, char *challenge);
|
char *sasl_cram_sha1(char *result, char *pass, char *challenge);
|
||||||
char* sasl_cram_sha256(char *result, char *pass, char *challenge);
|
char *sasl_cram_sha256(char *result, char *pass, char *challenge);
|
||||||
char* sasl_digest_md5(char *result, char *login, char *pass, char *buffer, char *miscptr, char *type, char *webtarget, int32_t webport, char *header);
|
char *sasl_digest_md5(char *result, char *login, char *pass, char *buffer, char *miscptr, char *type, char *webtarget, int32_t webport, char *header);
|
||||||
char* sasl_scram_sha1(char *result, char *pass, char *clientfirstmessagebare, char *serverfirstmessage);
|
char *sasl_scram_sha1(char *result, char *pass, char *clientfirstmessagebare, char *serverfirstmessage);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue