Add ability to refresh console list, and only start polling for input on sessions when the window is opened.
git-svn-id: file:///home/svn/framework3/trunk@10359 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
parent
16ae3c84e9
commit
908976c70a
Binary file not shown.
|
@ -133,7 +133,7 @@ public class InteractWindow extends MsfFrame {
|
|||
} else{
|
||||
cmdPrefix = "session." + type + "_";
|
||||
}
|
||||
timerCommand = new StringBuffer(""+POLL);
|
||||
timerCommand = new StringBuffer(""+PAUSE);
|
||||
prompt = ">>>";
|
||||
|
||||
//start new thread polling for input
|
||||
|
|
|
@ -620,6 +620,15 @@
|
|||
<Property name="name" type="java.lang.String" value="closeConsoleMenu" noResource="true"/>
|
||||
</Properties>
|
||||
</Menu>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="refreshConsolesItem">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="refreshConsolesItem.text"/>
|
||||
<Property name="name" type="java.lang.String" value="refreshConsolesItem" noResource="true"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="refreshConsolesItemActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
</SubComponents>
|
||||
</Menu>
|
||||
<Menu class="javax.swing.JMenu" name="databaseMenu">
|
||||
|
|
|
@ -314,7 +314,13 @@ public class MainFrame extends FrameView {
|
|||
public void getModules() {
|
||||
searchWin = new SearchWindow(rpcConn);
|
||||
MsfguiApp.addRecentModules(rpcConn, this);
|
||||
getContext().getActionMap(this).get("moduleTask").actionPerformed(new java.awt.event.ActionEvent(this,1234,""));
|
||||
}
|
||||
|
||||
/** Makes a menu tree with expandList for exploits and auxiliary. Also start jobs/sessions watcher. */
|
||||
public void refreshConsoles(){
|
||||
existingConsoleMenu.removeAll();
|
||||
closeConsoleMenu.removeAll();
|
||||
//Setup consoles
|
||||
try{
|
||||
Object[] consoles = (Object[]) ((Map)rpcConn.execute("console.list")).get("consoles");
|
||||
|
@ -323,7 +329,6 @@ public class MainFrame extends FrameView {
|
|||
}catch (MsfException mex){
|
||||
JOptionPane.showMessageDialog(getFrame(), mex);
|
||||
}
|
||||
getContext().getActionMap(this).get("moduleTask").actionPerformed(new java.awt.event.ActionEvent(this,1234,""));
|
||||
}
|
||||
|
||||
/** helper for getModules - does the work */
|
||||
|
@ -372,6 +377,9 @@ public class MainFrame extends FrameView {
|
|||
pluginsMenu.setEnabled(true);
|
||||
consoleMenu.setEnabled(true);
|
||||
reloadDb();
|
||||
setProgress(0.95f);
|
||||
setMessage("Finding open consoles");
|
||||
refreshConsoles();
|
||||
setProgress(1.0f);
|
||||
} catch (MsfException ex) {
|
||||
statusAnimationLabel.setText("Error getting module lists. " + ex);
|
||||
|
@ -529,6 +537,7 @@ public class MainFrame extends FrameView {
|
|||
newConsoleItem = new javax.swing.JMenuItem();
|
||||
existingConsoleMenu = new javax.swing.JMenu();
|
||||
closeConsoleMenu = new javax.swing.JMenu();
|
||||
refreshConsolesItem = new javax.swing.JMenuItem();
|
||||
databaseMenu = new javax.swing.JMenu();
|
||||
connectItem = new javax.swing.JMenuItem();
|
||||
disconnectItem = new javax.swing.JMenuItem();
|
||||
|
@ -895,6 +904,15 @@ public class MainFrame extends FrameView {
|
|||
closeConsoleMenu.setName("closeConsoleMenu"); // NOI18N
|
||||
consoleMenu.add(closeConsoleMenu);
|
||||
|
||||
refreshConsolesItem.setText(resourceMap.getString("refreshConsolesItem.text")); // NOI18N
|
||||
refreshConsolesItem.setName("refreshConsolesItem"); // NOI18N
|
||||
refreshConsolesItem.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
refreshConsolesItemActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
consoleMenu.add(refreshConsolesItem);
|
||||
|
||||
menuBar.add(consoleMenu);
|
||||
|
||||
databaseMenu.setMnemonic('D');
|
||||
|
@ -1097,7 +1115,7 @@ public class MainFrame extends FrameView {
|
|||
.addGroup(statusPanelLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(statusMessageLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 698, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 696, Short.MAX_VALUE)
|
||||
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(statusAnimationLabel)
|
||||
|
@ -1409,6 +1427,10 @@ public class MainFrame extends FrameView {
|
|||
}
|
||||
}//GEN-LAST:event_delWorkspaceItemActionPerformed
|
||||
|
||||
private void refreshConsolesItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshConsolesItemActionPerformed
|
||||
refreshConsoles();
|
||||
}//GEN-LAST:event_refreshConsolesItemActionPerformed
|
||||
|
||||
/** Runs command on all current meterpreter sessions in new thread; posting updates for each thread */
|
||||
private void runOnAllMeterpreters(String cmd, String output, JLabel outputLabel) {
|
||||
SessionCommand.runOnAllMeterpreters(sessionsTableModel, cmd, output, outputLabel, rpcConn);
|
||||
|
@ -1694,6 +1716,7 @@ public class MainFrame extends FrameView {
|
|||
private javax.swing.JMenu postMenu;
|
||||
private javax.swing.JProgressBar progressBar;
|
||||
public javax.swing.JMenu recentMenu;
|
||||
private javax.swing.JMenuItem refreshConsolesItem;
|
||||
private javax.swing.JMenuItem refreshItem;
|
||||
private javax.swing.JMenuItem searchItem;
|
||||
private javax.swing.JScrollPane servicesPane;
|
||||
|
|
|
@ -92,3 +92,4 @@ lootsPane.TabConstraints.tabTitle=Loots
|
|||
currWorkspaceItem.text=Select Workspace
|
||||
addWorkspaceItem.text=Add Workspace
|
||||
delWorkspaceItem.text=Delete Workspace
|
||||
refreshConsolesItem.text=Refresh Existing
|
||||
|
|
Loading…
Reference in New Issue