xhydra patch

This commit is contained in:
van Hauser 2014-12-09 23:24:15 +01:00
parent 0a2b1fa61b
commit d04ba5b349
5 changed files with 49 additions and 11 deletions

View file

@ -2,6 +2,7 @@ Changelog for hydra
-------------------
Release 8.2-pre
* Added xhydra gtk patche by Petar Kaleychev to support modules that do not use usernames
* ... your patch?

View file

@ -127,6 +127,10 @@ int hydra_get_options(char *options[]) {
widget = lookup_widget(GTK_WIDGET(wndMain), "entColonFile");
options[i++] = (char *) gtk_entry_get_text((GtkEntry *) widget);
} else {
/* disable usernames */
widget = lookup_widget(GTK_WIDGET(wndMain), "chkDisUser");
if (gtk_toggle_button_get_active((GtkToggleButton *) widget)) {
} else {
/* get the username, or username list */
widget = lookup_widget(GTK_WIDGET(wndMain), "radioUsername1");
@ -139,6 +143,7 @@ int hydra_get_options(char *options[]) {
widget = lookup_widget(GTK_WIDGET(wndMain), "entUsernameFile");
options[i++] = (char *) gtk_entry_get_text((GtkEntry *) widget);
}
}
/* get the pass, pass list, or generate */
/* The "generate" button was implemented by Petar Kaleychev <petar.kaleychev@gmail.com> */
@ -716,6 +721,26 @@ void on_chkColon_toggled(GtkToggleButton * togglebutton, gpointer user_data) {
}
}
void on_chkDisUser_toggled(GtkToggleButton * togglebutton, gpointer user_data) {
GtkWidget *radioUsername1, *radioUsername2, *entUsername, *entUsernameFile;
radioUsername1 = lookup_widget(GTK_WIDGET(wndMain), "radioUsername1");;
radioUsername2 = lookup_widget(GTK_WIDGET(wndMain), "radioUsername2");
entUsername = lookup_widget(GTK_WIDGET(wndMain), "entUsername");
entUsernameFile = lookup_widget(GTK_WIDGET(wndMain), "entUsernameFile");
if (gtk_toggle_button_get_active(togglebutton)) {
gtk_widget_set_sensitive(radioUsername1, FALSE);
gtk_widget_set_sensitive(radioUsername2, FALSE);
gtk_widget_set_sensitive(entUsername, FALSE);
gtk_widget_set_sensitive(entUsernameFile, FALSE);
} else {
gtk_widget_set_sensitive(radioUsername1, TRUE);
gtk_widget_set_sensitive(radioUsername2, TRUE);
gtk_widget_set_sensitive(entUsername, TRUE);
gtk_widget_set_sensitive(entUsernameFile, TRUE);
}
}
void on_btnClear_clicked(GtkButton * button, gpointer user_data) {
GtkWidget *output;
GtkTextBuffer *outputbuf;

View file

@ -25,3 +25,5 @@ gboolean on_entColonFile_button_press_event(GtkWidget * widget, GdkEventButton *
void on_chkColon_toggled(GtkToggleButton * togglebutton, gpointer user_data);
void on_btnClear_clicked(GtkButton * button, gpointer user_data);
void on_chkDisUser_toggled(GtkToggleButton * togglebutton, gpointer user_data);

View file

@ -68,6 +68,7 @@ GtkWidget *create_wndMain(void) {
GtkWidget *entUsernameFile;
GtkWidget *entUsername;
GtkWidget *chkUsernameLoop;
GtkWidget *chkDisUser;
GtkWidget *radioUsername1;
GSList *radioUsername1_group = NULL;
GtkWidget *radioUsername2;
@ -263,6 +264,7 @@ GtkWidget *create_wndMain(void) {
cmbProtocol_items = g_list_append(cmbProtocol_items, (gpointer) "pcanywhere");
cmbProtocol_items = g_list_append(cmbProtocol_items, (gpointer) "postgres");
cmbProtocol_items = g_list_append(cmbProtocol_items, (gpointer) "rdp");
cmbProtocol_items = g_list_append(cmbProtocol_items, (gpointer) "redis");
cmbProtocol_items = g_list_append(cmbProtocol_items, (gpointer) "rexec");
cmbProtocol_items = g_list_append(cmbProtocol_items, (gpointer) "rlogin");
cmbProtocol_items = g_list_append(cmbProtocol_items, (gpointer) "rsh");
@ -454,9 +456,15 @@ GtkWidget *create_wndMain(void) {
chkUsernameLoop = gtk_check_button_new_with_mnemonic("Loop around users");
gtk_widget_set_name(chkUsernameLoop, "chkUsernameLoop");
gtk_widget_show(chkUsernameLoop);
gtk_table_attach(GTK_TABLE(table2), chkUsernameLoop, 0, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), (GtkAttachOptions) (GTK_EXPAND), 0, 0);
gtk_table_attach(GTK_TABLE(table2), chkUsernameLoop, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), (GtkAttachOptions) (GTK_EXPAND), 0, 0);
gtk_tooltips_set_tip(tooltips, chkUsernameLoop, "Enable this option to loop around users not passwords", NULL);
chkDisUser = gtk_check_button_new_with_mnemonic("Protocol does not require usernames");
gtk_widget_set_name(chkDisUser, "chkDisUser");
gtk_widget_show(chkDisUser);
gtk_table_attach(GTK_TABLE (table2), chkDisUser, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), (GtkAttachOptions) (GTK_EXPAND), 0, 0);
gtk_tooltips_set_tip(tooltips, chkDisUser, "Protocols like Cisco, Cisco enable, redis, Oracle listener, SNMP, S7-300, VNC etc. are not using usernames", NULL);
label8 = gtk_label_new("Username");
gtk_widget_set_name(label8, "label8");
gtk_widget_show(label8);
@ -536,7 +544,7 @@ GtkWidget *create_wndMain(void) {
gtk_widget_set_name(chkColon, "chkColon");
gtk_widget_show(chkColon);
gtk_table_attach(GTK_TABLE(table5), chkColon, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), (GtkAttachOptions) (GTK_EXPAND), 0, 0);
gtk_tooltips_set_tip(tooltips, chkColon, "\"Enable this option to use a colon file for login/password attempts", NULL);
gtk_tooltips_set_tip(tooltips, chkColon, "Enable this option to use a colon file for login/password attempts", NULL);
entColonFile = gtk_entry_new();
gtk_widget_set_name(entColonFile, "entColonFile");
@ -1030,6 +1038,7 @@ GtkWidget *create_wndMain(void) {
g_signal_connect((gpointer) quit1, "button-press-event", G_CALLBACK(on_quit1_activate), NULL);
g_signal_connect((gpointer) entTargetFile, "button_press_event", G_CALLBACK(on_entTargetFile_button_press_event), NULL);
g_signal_connect((gpointer) entUsernameFile, "button_press_event", G_CALLBACK(on_entUsernameFile_button_press_event), NULL);
g_signal_connect((gpointer) chkDisUser, "toggled", G_CALLBACK (on_chkDisUser_toggled), NULL);
g_signal_connect((gpointer) entPassFile, "button_press_event", G_CALLBACK(on_entPassFile_button_press_event), NULL);
g_signal_connect((gpointer) chkColon, "toggled", G_CALLBACK(on_chkColon_toggled), NULL);
g_signal_connect((gpointer) entColonFile, "button_press_event", G_CALLBACK(on_entColonFile_button_press_event), NULL);
@ -1076,6 +1085,7 @@ GtkWidget *create_wndMain(void) {
GLADE_HOOKUP_OBJECT(wndMain, radioUsername1, "radioUsername1");
GLADE_HOOKUP_OBJECT(wndMain, chkUsernameLoop, "chkUsernameLoop");
GLADE_HOOKUP_OBJECT(wndMain, radioUsername2, "radioUsername2");
GLADE_HOOKUP_OBJECT (wndMain, chkDisUser, "chkDisUser");
GLADE_HOOKUP_OBJECT(wndMain, label8, "label8");
GLADE_HOOKUP_OBJECT(wndMain, frmPass, "frmPass");
GLADE_HOOKUP_OBJECT(wndMain, table3, "table3");

View file

@ -158,7 +158,7 @@ char *SERVICES =
#define RESTOREFILE "./hydra.restore"
#define PROGRAM "Hydra"
#define VERSION "v8.1"
#define VERSION "v8.2-dev"
#define AUTHOR "van Hauser/THC"
#define EMAIL "<vh@thc.org>"
#define RESOURCE "http://www.thc.org/thc-hydra"