On Nov 29, 2005, at 16:20, jsk wrote:
I have searched all over trying to find the answer to
this problem. Hopefully someone can help me or
implement this.
Here's a patch to logins.nasl and smb_login.nasl which implements
this. It creates multiples additional prefs under Prefs -> Logins ->
Additional SMB Logins (N).
Does this help ?
-- Renaud
Index: logins.nasl
===================================================================
RCS file: /usr/local/cvs/nessus-plugins/scripts/logins.nasl,v
retrieving revision 1.20
diff -c -r1.20 logins.nasl
*** logins.nasl 20 Sep 2005 00:11:45 -0000 1.20
--- logins.nasl 3 Dec 2005 02:01:58 -0000
***************
*** 6,11 ****
--- 6,14 ----
# See the Nessus Scripts License for details
#
+
+ MAX_ADDITIONAL_SMB_LOGINS = 3;
+
default_http_login = "";
default_http_password = "";
***************
*** 99,104 ****
--- 102,116 ----
script_add_preference(name:"SMB account :", type:"entry",
value:default_smb_login);
script_add_preference(name:"SMB password :", type:"password",
value:default_smb_password);
script_add_preference(name:"SMB domain (optional) :", type:"entry",
value:default_smb_domain);
+
+ for ( i = 1 ; i <= MAX_ADDITIONALS_SMB_LOGINS ; i ++ )
+ {
+ script_add_preference(name:"Additional SMB account (" + i + ") :",
type:"entry", value:default_smb_login);
+ script_add_preference(name:"Additional SMB password (" + i + ") :",
type:"password", value:default_smb_password);
+ script_add_preference(name:"Additional SMB domain (optional) (" + i + ") :",
type:"entry", value:default_smb_password);
+ }
+
+
if(defined_func("MD5")) script_add_preference(name:"Never send SMB
credentials in clear text", type:"checkbox", value:"yes");
if(defined_func("MD5")) script_add_preference(name:"Only use NTLMv2",
type:"checkbox", value:"no");
exit(0);
***************
*** 233,235 ****
--- 245,258 ----
set_kb_item(name:"SMB/domain_filled", value:smb_domain);
}
+ j = 0;
+ for ( i = 1 ; i <= MAX_ADDITIONAL_SMB_LOGINS ; i ++ )
+ {
+ l = script_get_preference("Additional SMB account (" + i + ") :");
+ p = script_get_preference("Additional SMB password (" + i + ") :");
+ d = script_get_preference("Additional SMB domain (optional) (" + i + ") :");
+ if ( l ) set_kb_item(name:"SMB/login_filled/" + j, value:l);
+ if ( p ) set_kb_item(name:"SMB/password_filled/" + j, value:p);
+ if ( d ) set_kb_item(name:"SMB/domain_filled/" + j, value:d);
+ if ( l || p ) j ++;
+ }
Index: smb_login.nasl
===================================================================
RCS file: /usr/local/cvs/nessus-plugins/scripts/smb_login.nasl,v
retrieving revision 1.77
diff -c -r1.77 smb_login.nasl
*** smb_login.nasl 20 Oct 2005 21:18:59 -0000 1.77
--- smb_login.nasl 3 Dec 2005 02:01:58 -0000
***************
*** 111,116 ****
--- 111,131 ----
if(!strlen(user_password)) user_password = "";
user_domain = string(get_kb_item("SMB/domain_filled"));
+
+ for ( i = 0 ; TRUE ; i ++ )
+ {
+ l = get_kb_item("SMB/login_filled/" + i );
+ p = get_kb_item("SMB/password_filled/" + i );
+ d = get_kb_item("SMB/domain_filled/" + i );
+ if ( l || p )
+ {
+ logins[i + 1] = l;
+ passwords[i + 1] = p;
+ if ( d ) domains[i + 1] = d;
+ }
+ else break;
+ }
+
smb_domain = string(get_kb_item("SMB/workgroup"));
if ( user_domain )
***************
*** 118,123 ****
--- 133,143 ----
user_domain = ereg_replace(pattern:"([^ ]*) *$", string:user_domain,
replace:"\1");
}
+
+ logins[0] = user_login;
+ passwords[0] = user_password;
+ domains[0] = user_domain;
+
if (smb_domain)
{
smb_domain = ereg_replace(pattern:"([^ ]*) *$", string:smb_domain,
replace:"\1");
***************
*** 153,160 ****
supplied_login_is_correct = FALSE;
! if ( user_login )
{
if ((login(lg:user_login, pw:user_password, dom:smb_domain) == TRUE ) && (
session_is_guest() == 0 ))
supplied_login_is_correct = TRUE;
else
--- 173,184 ----
supplied_login_is_correct = FALSE;
! for ( i = 0 ; logins[i] && supplied_login_is_correct == FALSE ; i ++ )
{
+ user_login = logins[i];
+ user_password = passwords[i];
+ user_domain = domains[i];
+
if ((login(lg:user_login, pw:user_password, dom:smb_domain) == TRUE ) && (
session_is_guest() == 0 ))
supplied_login_is_correct = TRUE;
else
_______________________________________________
Nessus mailing list
[email protected]
http://mail.nessus.org/mailman/listinfo/nessus