Merge pull request #1674 from bcoles/zombies_tab

Add Zombies tab to main panel
This commit is contained in:
bcoles
2019-02-16 00:25:53 +11:00
committed by GitHub
5 changed files with 46 additions and 10 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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, {

View File

@@ -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
]
}]
});

View File

@@ -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, {