Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
beefproject
GitHub Repository: beefproject/beef
Path: blob/master/extensions/admin_ui/media/javascript/ui/panel/ZombiesMgr.js
1155 views
1
//
2
// Copyright (c) 2006-2025 Wade Alcorn - [email protected]
3
// Browser Exploitation Framework (BeEF) - https://beefproject.com
4
// See the file 'doc/COPYING' for copying permission
5
//
6
7
var ZombiesMgr = function(zombies_tree_lists) {
8
9
//save the list of trees in the object
10
this.zombies_tree_lists = zombies_tree_lists;
11
12
// this is a helper class to create a zombie object from a JSON hash index
13
this.zombieFactory = function(index, zombie_array){
14
15
var ip = zombie_array[index]["ip"];
16
var session = zombie_array[index]["session"];
17
var browser_name = zombie_array[index]["name"];
18
var browser_version = zombie_array[index]["version"];
19
var os_name = zombie_array[index]["os"];
20
var os_version = zombie_array[index]["os_version"];
21
var hardware = zombie_array[index]["hardware"];
22
var domain = zombie_array[index]["domain"];
23
var port = zombie_array[index]["port"];
24
var city = zombie_array[index]["city"];
25
var country = zombie_array[index]["country"];
26
var country_code = zombie_array[index]["country_code"];
27
var date_stamp = zombie_array[index]["date_stamp"];
28
29
var new_zombie = {
30
'id': index,
31
'ip': ip,
32
'session': session,
33
'check': false,
34
'domain': domain,
35
'port': port,
36
'browser_name': browser_name,
37
'browser_version': browser_version,
38
'os_name': os_name,
39
'os_version': os_version,
40
'hw_name': hardware,
41
'city': city,
42
'country': country,
43
'country_code': country_code,
44
'date': date_stamp
45
};
46
47
return new_zombie;
48
}
49
50
/*
51
* Update the hooked browser trees
52
* @param: {Literal Object} an object containing the list of offline and online hooked browsers.
53
*/
54
this.updateZombies = function(hooked_browsers){
55
var offline_hooked_browsers = hooked_browsers["offline"];
56
var online_hooked_browsers = hooked_browsers["online"];
57
var new_zombie_list = new Array();
58
59
for(tree_type in this.zombies_tree_lists) {
60
hooked_browsers_tree = this.zombies_tree_lists[tree_type];
61
62
//we compare and remove the hooked browsers from online and offline branches for each tree.
63
hooked_browsers_tree.compareAndRemove(hooked_browsers);
64
65
//add an offline browser to the tree
66
for(var i in offline_hooked_browsers) {
67
var offline_hooked_browser = this.zombieFactory(i, offline_hooked_browsers);
68
hooked_browsers_tree.addZombie(offline_hooked_browser, false, ((tree_type != 'basic') ? true : false));
69
new_zombie_list.push(offline_hooked_browser);
70
}
71
72
//add an online browser to the tree
73
for(var i in online_hooked_browsers) {
74
var online_hooked_browser = this.zombieFactory(i, online_hooked_browsers);
75
hooked_browsers_tree.addZombie(online_hooked_browser, true, ((tree_type != 'basic') ? true : false));
76
new_zombie_list.push(online_hooked_browser);
77
}
78
79
//expand the online hooked browser tree lists
80
if(hooked_browsers_tree.online_hooked_browsers_treenode.childNodes.length > 0) {
81
hooked_browsers_tree.online_hooked_browsers_treenode.expand(true);
82
}
83
84
//expand the offline hooked browser tree lists
85
if(hooked_browsers_tree.offline_hooked_browsers_treenode.childNodes.length > 0) {
86
hooked_browsers_tree.offline_hooked_browsers_treenode.expand(true);
87
}
88
89
}
90
beefwui.hooked_browsers = new_zombie_list;
91
}
92
};
93
94