Merge pull request #1674 from bcoles/zombies_tab
Add Zombies tab to main panel
This commit is contained in:
@@ -79,6 +79,25 @@ module BeEF
|
||||
hb.destroy
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# @note returns all zombies
|
||||
#
|
||||
get '/all' do
|
||||
hbs = []
|
||||
BeEF::Core::Models::HookedBrowser.all.each do |hook|
|
||||
hbs << get_hb_details(hook)
|
||||
end
|
||||
|
||||
output = {
|
||||
'count' => hbs.length,
|
||||
'zombies' => hbs
|
||||
}
|
||||
|
||||
output.to_json
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# @note this is basically the same call as /api/hooks, but returns different data structured in arrays rather than objects.
|
||||
# Useful if you need to query the API via jQuery.dataTable < 1.10 which is currently used in PhishingFrenzy
|
||||
@@ -167,7 +186,9 @@ module BeEF
|
||||
'ip' => hb.ip,
|
||||
'domain' => details.get(hb.session, 'HostName'),
|
||||
'port' => hb.port.to_s,
|
||||
'page_uri' => details.get(hb.session, 'PageURI')
|
||||
'page_uri' => details.get(hb.session, 'PageURI'),
|
||||
'firstseen' => hb.firstseen,
|
||||
'lastseen' => hb.lastseen,
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ module API
|
||||
#NOTE: order counts! make sure you know what you're doing if you add files
|
||||
esapi = %w(esapi/Class.create.js esapi/jquery-3.3.1.min.js esapi/jquery-encoder-0.1.0.js)
|
||||
ux = %w(ui/common/beef_common.js ux/PagingStore.js ux/StatusBar.js ux/TabCloseMenu.js)
|
||||
panel = %w(ui/panel/common.js ui/panel/DistributedEngine.js ui/panel/PanelStatusBar.js ui/panel/tabs/ZombieTabDetails.js ui/panel/tabs/ZombieTabLogs.js ui/panel/tabs/ZombieTabCommands.js ui/panel/tabs/ZombieTabRider.js ui/panel/tabs/ZombieTabXssRays.js wterm/wterm.jquery.js ui/panel/tabs/ZombieTabIpec.js ui/panel/tabs/ZombieTabAutorun.js ui/panel/PanelViewer.js ui/panel/DataGrid.js ui/panel/MainPanel.js ui/panel/ZombieTab.js ui/panel/ZombieTabs.js ui/panel/zombiesTreeList.js ui/panel/ZombiesMgr.js ui/panel/tabs/ZombieTabNetwork.js ui/panel/tabs/ZombieTabRTC.js ui/panel/Logout.js ui/panel/WelcomeTab.js ui/panel/ModuleSearching.js)
|
||||
panel = %w(ui/panel/common.js ui/panel/DistributedEngine.js ui/panel/PanelStatusBar.js ui/panel/tabs/ZombieTabDetails.js ui/panel/tabs/ZombieTabLogs.js ui/panel/tabs/ZombieTabCommands.js ui/panel/tabs/ZombieTabRider.js ui/panel/tabs/ZombieTabXssRays.js wterm/wterm.jquery.js ui/panel/tabs/ZombieTabIpec.js ui/panel/tabs/ZombieTabAutorun.js ui/panel/PanelViewer.js ui/panel/DataGrid.js ui/panel/ZombieDataGrid.js ui/panel/MainPanel.js ui/panel/ZombieTab.js ui/panel/ZombieTabs.js ui/panel/zombiesTreeList.js ui/panel/ZombiesMgr.js ui/panel/tabs/ZombieTabNetwork.js ui/panel/tabs/ZombieTabRTC.js ui/panel/Logout.js ui/panel/WelcomeTab.js ui/panel/ModuleSearching.js)
|
||||
|
||||
global_js = esapi + ux + panel
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
//
|
||||
|
||||
|
||||
DataGrid = function(url, page, base) {
|
||||
LogsDataGrid = function(url, page, base) {
|
||||
this.page = page;
|
||||
this.url = url;
|
||||
this.base = typeof(base) != 'undefined' ? base : {};
|
||||
@@ -72,7 +72,7 @@ DataGrid = function(url, page, base) {
|
||||
width: 35
|
||||
}];
|
||||
|
||||
DataGrid.superclass.constructor.call(this, {
|
||||
LogsDataGrid.superclass.constructor.call(this, {
|
||||
region: 'center',
|
||||
id: 'topic-grid',
|
||||
loadMask: {msg:'Loading Feed...'},
|
||||
@@ -93,7 +93,7 @@ DataGrid = function(url, page, base) {
|
||||
});
|
||||
};
|
||||
|
||||
Ext.extend(DataGrid, Ext.grid.GridPanel, {});
|
||||
Ext.extend(LogsDataGrid, Ext.grid.GridPanel, {});
|
||||
|
||||
//Because we're using paging stores now, we have to override the PagingToolbar refresh
|
||||
Ext.override(Ext.PagingToolbar, {
|
||||
|
||||
@@ -29,8 +29,13 @@ MainPanel = function(){
|
||||
}
|
||||
});
|
||||
|
||||
this.grid = new DataGrid('<%= @base_path %>/logs/all.json',30);
|
||||
this.grid.border = false;
|
||||
|
||||
this.logs_grid = new LogsDataGrid('<%= @base_path %>/logs/all.json',30);
|
||||
this.logs_grid.border = false;
|
||||
|
||||
this.zombies_grid = new ZombieDataGrid('/api/hooks/all', 30);
|
||||
this.zombies_grid.border = false;
|
||||
|
||||
this.welcome_tab = new WelcomeTab;
|
||||
|
||||
MainPanel.superclass.constructor.call(this, {
|
||||
@@ -53,13 +58,23 @@ MainPanel = function(){
|
||||
shadow:true,
|
||||
items:[
|
||||
this.welcome_tab
|
||||
]},{
|
||||
]
|
||||
},{
|
||||
id:'logs-view',
|
||||
layout:'border',
|
||||
title:'Logs',
|
||||
hideMode:'offsets',
|
||||
items:[
|
||||
this.grid
|
||||
this.logs_grid
|
||||
]
|
||||
},
|
||||
{
|
||||
id:'zombies-view',
|
||||
layout:'border',
|
||||
title:'Zombies',
|
||||
hideMode:'offsets',
|
||||
items:[
|
||||
this.zombies_grid
|
||||
]
|
||||
}]
|
||||
});
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*/
|
||||
ZombieTab_LogTab = function(zombie) {
|
||||
|
||||
var zombieLog = new DataGrid('<%= @base_path %>/logs/zombie.json',30,{session:zombie.session});
|
||||
var zombieLog = new LogsDataGrid('<%= @base_path %>/logs/zombie.json',30,{session:zombie.session});
|
||||
zombieLog.border = false;
|
||||
|
||||
ZombieTab_LogTab.superclass.constructor.call(this, {
|
||||
|
||||
Reference in New Issue
Block a user