From f7dc365cc5f76d516fdcf0d281b2be45e4958f59 Mon Sep 17 00:00:00 2001 From: van Hauser Date: Fri, 24 Oct 2014 16:31:33 +0200 Subject: [PATCH] patch for gtk to add -h -U -f and -F support --- CHANGES | 1 + hydra-gtk/src/callbacks.c | 18 ++++++++++++++++++ hydra-gtk/src/interface.c | 38 ++++++++++++++++++++++++++++++++++---- 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index cad4fbd..35a911b 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,7 @@ Release 8.1-pre * Fixed for cisco-enable if an intial Login/Password is used (thanks to joswr1te for reporting) * Added patch by tux-mind for better MySQL compilation and an Android patches and Makefile. Thanks! * Added xhydra gtk patch by Petar Kaleychev to support -e r reverse login attempt, thanks! +* Added xhydra gtk patch by Petar Kaleychev to support -h and -U help output and -f/-F options, thanks! * Added patch for teamspeak to better identify server errors and auth failures (thanks to Petar Kaleychev) * Fixed a crash in the cisco module (thanks to Anatoly Mamaev for reporting) * Small fix for HTTP form module for redirect pages where a S= string match would not work (thanks to mkosmach for reporting) diff --git a/hydra-gtk/src/callbacks.c b/hydra-gtk/src/callbacks.c index 715194a..62f364c 100755 --- a/hydra-gtk/src/callbacks.c +++ b/hydra-gtk/src/callbacks.c @@ -108,6 +108,18 @@ int hydra_get_options(char *options[]) { options[i++] = "-d"; } + /* COMPLETE HELP */ + widget = lookup_widget(GTK_WIDGET(wndMain), "chkCompleteHelp"); + if (gtk_toggle_button_get_active((GtkToggleButton *) widget)) { + options[i++] = "-h"; + } + + /* Service Module Usage Details */ + widget = lookup_widget(GTK_WIDGET(wndMain), "chkServiceDetails"); + if (gtk_toggle_button_get_active((GtkToggleButton *) widget)) { + options[i++] = "-U"; + } + /* use colon separated list? */ widget = lookup_widget(GTK_WIDGET(wndMain), "chkColon"); if (gtk_toggle_button_get_active((GtkToggleButton *) widget)) { @@ -205,6 +217,12 @@ int hydra_get_options(char *options[]) { } /* exit after first found pair? */ + /* per host */ + widget = lookup_widget(GTK_WIDGET(wndMain), "chkExitf"); + if (gtk_toggle_button_get_active((GtkToggleButton *) widget)) { + options[i++] = "-f"; + } + /* global */ widget = lookup_widget(GTK_WIDGET(wndMain), "chkExitf"); if (gtk_toggle_button_get_active((GtkToggleButton *) widget)) { options[i++] = "-f"; diff --git a/hydra-gtk/src/interface.c b/hydra-gtk/src/interface.c index 4ea8213..6f2e876 100755 --- a/hydra-gtk/src/interface.c +++ b/hydra-gtk/src/interface.c @@ -58,6 +58,8 @@ GtkWidget *create_wndMain(void) { GtkWidget *chkAttempts; GtkWidget *chkIPV6; GtkWidget *chkSSL; + GtkWidget *chkServiceDetails; + GtkWidget *chkCompleteHelp; GtkWidget *label29; GtkWidget *label1; GtkWidget *vbox2; @@ -116,6 +118,7 @@ GtkWidget *create_wndMain(void) { GtkWidget *spnTasks; GtkWidget *label32; GtkWidget *label31; + GtkWidget *chkExitF; GtkWidget *label30; GtkWidget *label3; GtkWidget *vbox4; @@ -349,7 +352,7 @@ GtkWidget *create_wndMain(void) { gtk_widget_show(frame12); gtk_box_pack_start(GTK_BOX(vbox5), frame12, TRUE, TRUE, 0); - table9 = gtk_table_new(2, 2, FALSE); + table9 = gtk_table_new(3, 2, FALSE); gtk_widget_set_name(table9, "table9"); gtk_widget_show(table9); gtk_container_add(GTK_CONTAINER(frame12), table9); @@ -378,6 +381,22 @@ GtkWidget *create_wndMain(void) { gtk_table_attach(GTK_TABLE(table9), chkSSL, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), (GtkAttachOptions) (GTK_EXPAND), 0, 0); gtk_tooltips_set_tip(tooltips, chkSSL, "Enable to use SSL (the target must have SSL enabled!", NULL); + chkServiceDetails = gtk_check_button_new_with_mnemonic ("Service Module Usage Details"); + gtk_widget_set_name (chkServiceDetails, "chkServiceDetails"); + gtk_widget_show (chkServiceDetails); + gtk_table_attach (GTK_TABLE (table9), chkServiceDetails, 1, 2, 2, 3, + (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), + (GtkAttachOptions) (GTK_EXPAND), 0, 0); + gtk_tooltips_set_tip (tooltips, chkServiceDetails, "Service Module Usage Details", NULL); + + chkCompleteHelp = gtk_check_button_new_with_mnemonic ("COMPLETE HELP"); + gtk_widget_set_name (chkCompleteHelp, "chkCompleteHelp"); + gtk_widget_show (chkCompleteHelp); + gtk_table_attach (GTK_TABLE (table9), chkCompleteHelp, 0, 1, 2, 3, + (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), + (GtkAttachOptions) (GTK_EXPAND), 0, 0); + gtk_tooltips_set_tip (tooltips, chkCompleteHelp, "Complete Help", NULL); + label29 = gtk_label_new("Output Options"); gtk_widget_set_name(label29, "label29"); gtk_widget_show(label29); @@ -662,16 +681,16 @@ GtkWidget *create_wndMain(void) { gtk_widget_show(frame13); gtk_table_attach(GTK_TABLE(table4), frame13, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - table10 = gtk_table_new(3, 2, FALSE); + table10 = gtk_table_new(4, 2, FALSE); gtk_widget_set_name(table10, "table10"); gtk_widget_show(table10); gtk_container_add(GTK_CONTAINER(frame13), table10); - chkExitf = gtk_check_button_new_with_mnemonic("Exit after first found pair"); + chkExitf = gtk_check_button_new_with_mnemonic("Exit after first found pair (per host)"); gtk_widget_set_name(chkExitf, "chkExitf"); gtk_widget_show(chkExitf); gtk_table_attach(GTK_TABLE(table10), chkExitf, 0, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), (GtkAttachOptions) (GTK_EXPAND), 0, 0); - gtk_tooltips_set_tip(tooltips, chkExitf, "Enable this to stop all attacking processes once a valid login/password pair is found", NULL); + gtk_tooltips_set_tip(tooltips, chkExitf, "Enable this to stop all attacking processes once a valid login/password pair is found (per host)", NULL); spnTimeout_adj = gtk_adjustment_new(30, 0, 295, 1, 10, 0); spnTimeout = gtk_spin_button_new(GTK_ADJUSTMENT(spnTimeout_adj), 1, 0); @@ -699,6 +718,14 @@ GtkWidget *create_wndMain(void) { gtk_table_attach(GTK_TABLE(table10), label31, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), (GtkAttachOptions) (GTK_EXPAND), 0, 0); gtk_misc_set_alignment(GTK_MISC(label31), 0, 0.5); + chkExitF = gtk_check_button_new_with_mnemonic ("Exit after first found pair (global)"); + gtk_widget_set_name (chkExitF, "chkExitF"); + gtk_widget_show (chkExitF); + gtk_table_attach (GTK_TABLE (table10), chkExitF, 0, 2, 3, 4, + (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), + (GtkAttachOptions) (GTK_EXPAND), 0, 0); + gtk_tooltips_set_tip (tooltips, chkExitF, "Enable this to stop all attacking processes once a valid login/password pair is found (global)", NULL); + label30 = gtk_label_new("Performance Options"); gtk_widget_set_name(label30, "label30"); gtk_widget_show(label30); @@ -1028,6 +1055,8 @@ GtkWidget *create_wndMain(void) { GLADE_HOOKUP_OBJECT(wndMain, chkAttempts, "chkAttempts"); GLADE_HOOKUP_OBJECT(wndMain, chkIPV6, "chkIPV6"); GLADE_HOOKUP_OBJECT(wndMain, chkSSL, "chkSSL"); + GLADE_HOOKUP_OBJECT(wndMain, chkServiceDetails, "chkServiceDetails"); + GLADE_HOOKUP_OBJECT(wndMain, chkCompleteHelp, "chkCompleteHelp"); GLADE_HOOKUP_OBJECT(wndMain, label29, "label29"); GLADE_HOOKUP_OBJECT(wndMain, label1, "label1"); GLADE_HOOKUP_OBJECT(wndMain, vbox2, "vbox2"); @@ -1081,6 +1110,7 @@ GtkWidget *create_wndMain(void) { GLADE_HOOKUP_OBJECT(wndMain, spnTasks, "spnTasks"); GLADE_HOOKUP_OBJECT(wndMain, label32, "label32"); GLADE_HOOKUP_OBJECT(wndMain, label31, "label31"); + GLADE_HOOKUP_OBJECT(wndMain, chkExitF, "chkExitF"); GLADE_HOOKUP_OBJECT(wndMain, label30, "label30"); GLADE_HOOKUP_OBJECT(wndMain, label3, "label3"); GLADE_HOOKUP_OBJECT(wndMain, vbox4, "vbox4");