From 35e16131fd443c39b200910aff8d6fc44432bf57 Mon Sep 17 00:00:00 2001 From: Mohammed Salem Date: Sun, 16 Sep 2018 13:05:37 +0200 Subject: [PATCH] 0.3.3-dev --- README.md | 8 +- pom.xml | 10 +- .../org/injector/tools/log/impl/LogOut.java | 8 +- .../tools/log/impl/LogOutRunable.java | 8 +- .../injector/tools/lunch/InjectionTools.java | 4 +- .../java/org/injector/tools/lunch/Lunch.java | 5 +- .../proxy/handler/DirectCloseHandler.java | 11 +- .../tools/proxy/handler/ProxyHandler.java | 21 ++ .../tools/speed/TerminalNetworkMonitor.java | 184 ++++++++++++------ .../tools/speed/net/NetworkMonitor.java | 7 + .../tools/ssh/trilead/SSHForwardClient.java | 2 +- 11 files changed, 186 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index 6a6d5ad..0ce8940 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# injector-tools (0.3.2-dev) +# injector-tools (0.3.3-dev) - test server security @@ -16,7 +16,7 @@ # Start app -java -jar injector-tools-0.3.2-dev-jar-with-dependencies.jar filename.json +java -jar injector-tools-0.3.3-dev-jar-with-dependencies.jar filename.json - -h show help message - -v show app version @@ -25,3 +25,7 @@ java -jar injector-tools-0.3.2-dev-jar-with-dependencies.jar filename.json - filename: the name of the file to be load - if no config file loaded will use default config (cache dir) - -h:help, -v:version, -t:temp + +# Fix ISSUS: + - fix ANSI escape code on windows platform. + diff --git a/pom.xml b/pom.xml index 6323519..8e71d78 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.injector injector-tools - 0.3.2-dev + 0.3.3-dev HTTP Injector Tools(core) Create local proxy with the provided payload, connect to remote ssh by created proxy. @@ -101,10 +101,12 @@ 1.0.6 - terminal - org.terminal.ansi - 0.1.8 + org.terminal + ansi + 0.1.95 + + diff --git a/src/main/java/org/injector/tools/log/impl/LogOut.java b/src/main/java/org/injector/tools/log/impl/LogOut.java index db2b2b7..82feb65 100644 --- a/src/main/java/org/injector/tools/log/impl/LogOut.java +++ b/src/main/java/org/injector/tools/log/impl/LogOut.java @@ -20,10 +20,10 @@ public class LogOut implements Debugger { public void setColourFormate(boolean useansicolour) { if(useansicolour) { - messageFormate = "["+ansi.Red("{}")+"]\t"+ansi.BlueLight("{}"); - titleHeadFormate = "[" + ansi.Red("{}") + "]\t" + ansi.BlueLight("{}") + ansi.Green(" {"); - titleBodyFormate = "["+ansi.Red("{}")+"]\t\t"+ansi.Green("{}"); // "[{}]\t\t{}"; - titleFotterFormate = "[" + ansi.Red("{}") + "]\t\t" + ansi.GrayLight("}"); + messageFormate = "["+ansi.red("{}")+"]\t"+ansi.blueLight("{}"); + titleHeadFormate = "[" + ansi.red("{}") + "]\t" + ansi.blueLight("{}") + ansi.green(" {"); + titleBodyFormate = "["+ansi.red("{}")+"]\t\t"+ansi.green("{}"); // "[{}]\t\t{}"; + titleFotterFormate = "[" + ansi.red("{}") + "]\t\t" + ansi.grayLight("}"); }else { messageFormate = "[{}]\t{}"; titleHeadFormate = "[{}]\t{} {"; diff --git a/src/main/java/org/injector/tools/log/impl/LogOutRunable.java b/src/main/java/org/injector/tools/log/impl/LogOutRunable.java index b36eb0b..70673ff 100644 --- a/src/main/java/org/injector/tools/log/impl/LogOutRunable.java +++ b/src/main/java/org/injector/tools/log/impl/LogOutRunable.java @@ -24,10 +24,10 @@ public class LogOutRunable implements Debugger, Runnable{ public void setColourFormate(boolean useansicolour) { if(useansicolour) { - messageFormate = "["+ansi.Red("{}")+"]\t"+ansi.BlueLight("{}"); - titleHeadFormate = "[" + ansi.Red("{}") + "]\t" + ansi.BlueLight("{}") + ansi.Green(" {"); - titleBodyFormate = "["+ansi.Red("{}")+"]\t\t"+ansi.Green("{}"); // "[{}]\t\t{}"; - titleFotterFormate = "[" + ansi.Red("{}") + "]\t " + ansi.Green("}"); + messageFormate = "["+ansi.red("{}")+"]\t"+ansi.blueLight("{}"); + titleHeadFormate = "[" + ansi.red("{}") + "]\t" + ansi.blueLight("{}") + ansi.green(" {"); + titleBodyFormate = "["+ansi.red("{}")+"]\t\t"+ansi.green("{}"); // "[{}]\t\t{}"; + titleFotterFormate = "[" + ansi.red("{}") + "]\t " + ansi.green("}"); }else { messageFormate = "[{}]\t{}"; titleHeadFormate = "[{}]\t{} {"; diff --git a/src/main/java/org/injector/tools/lunch/InjectionTools.java b/src/main/java/org/injector/tools/lunch/InjectionTools.java index 1326bfd..c1c365c 100644 --- a/src/main/java/org/injector/tools/lunch/InjectionTools.java +++ b/src/main/java/org/injector/tools/lunch/InjectionTools.java @@ -75,9 +75,9 @@ private void StartJschSSHService(SSHConfig config) { jschSSHClient = new JschSSHClient(config); // jschSSHClient.addSuccessListener(jschSSHClient.getMonitorSpeed()::start); // jschSSHClient.start(); -// executor.submit(jschSSHClient.getMonitorSpeed()::start); + executor.submit(jschSSHClient.getMonitorSpeed()::start); executor.submit(jschSSHClient::connectHost); - jschSSHClient.addSuccessListener(()-> executor.submit(jschSSHClient.getMonitorSpeed()::start)); +// jschSSHClient.addSuccessListener(()-> executor.submit(jschSSHClient.getMonitorSpeed()::start)); } diff --git a/src/main/java/org/injector/tools/lunch/Lunch.java b/src/main/java/org/injector/tools/lunch/Lunch.java index 5fae222..85f0f9e 100644 --- a/src/main/java/org/injector/tools/lunch/Lunch.java +++ b/src/main/java/org/injector/tools/lunch/Lunch.java @@ -1,5 +1,6 @@ package org.injector.tools.lunch; +import org.fusesource.jansi.AnsiConsole; import org.injector.tools.config.Config; import org.injector.tools.config.utils.ManagConfig; import org.injector.tools.log.Logger; @@ -9,6 +10,8 @@ public class Lunch { public static void main(String[] args) { + + AnsiConsole.systemInstall(); checkArgs(args); initApp(); @@ -55,7 +58,7 @@ public static void initApp() { R.INIT_CHANGES(); if(ManagConfig.getAppConfig().isDebuggable()) // System.out.println(ManagConfig.toFormatConfig()); - System.out.println(Ansi.Green + ManagConfig.formatLimitConfig() + Ansi.ResetAllAttributes); + System.out.println(Ansi.Green + ManagConfig.formatLimitConfig() + Ansi.Reset); // Logger.debug(Lunch.class,"", ManagConfig.formatLimitConfig()); diff --git a/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java b/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java index 3d3fa58..a804596 100644 --- a/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java +++ b/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java @@ -32,11 +32,14 @@ public void startHandler() { connectToProxyServer(); writePayloadToRemoteHost(); - Future future = getService().submit(this::transferDataFromProxyToClient); + registerTransferDataFromClientToProxy(); + Future future = getService().submit(this::registerTransferDataFromProxyToClient); checkStopThreadPool(future); } + - protected void transferDataFromProxyToClient() { + @Override + protected void registerTransferDataFromProxyToClient() { Logger.debug(getClass(), "Start transfer Data From Proxy To Client"); ByteBuffer buffer = ByteBuffer.allocate(8 * 1024); @@ -62,6 +65,7 @@ protected void transferDataFromProxyToClient() { debugSocketsChannel(e); fireErrorListener(); } catch (InterruptedException e) { + Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage()); } } @@ -80,8 +84,7 @@ public void checkStopThreadPool(Future future) { closeConnection(); } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage()); } } diff --git a/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java b/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java index 49b6719..66d7f75 100644 --- a/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java +++ b/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java @@ -134,6 +134,24 @@ protected void registerChannelToSelector() { Logger.debug(getClass(), "registerChannelToSelector", e.getMessage()); } } + + protected void registerTransferDataFromClientToProxy() { + try { + client.configureBlocking(false); + client.register(getSelector(), SelectionKey.OP_READ, remote); + } catch (Exception e) { + Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage()); + } + } + + protected void registerTransferDataFromProxyToClient() { + try { + remote.configureBlocking(false); + remote.register(getSelector(), SelectionKey.OP_READ, client); + } catch (Exception e) { + Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage()); + } + } protected void connectToProxyServer() { try { @@ -204,6 +222,9 @@ protected void writePayloadToRemoteHost() { } } + + + diff --git a/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java b/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java index 7359d03..d6bd303 100644 --- a/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java +++ b/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java @@ -7,69 +7,133 @@ public class TerminalNetworkMonitor extends NetworkMonitorSpeed { // ↓↑⇔⇧⇩⇅⛗⌚▽△▲▼⬆⬇⬌ - - @Override - public void run() { - String summery = "\n"; - Ansi ansi = new Ansi(); - long hh, mm, ss; - while (showSpeed ) { - hh = ((timer/60)/60)%60 ; - mm = (timer/60)%60; - ss = timer%60; - - summery = ""; - summery += Ansi.EraseLine + "\n" ; - summery += Ansi.EraseLine + "\n" ; - summery += Ansi.EraseLine ;//+ ANSI.SaveCursor; - -// summery += "\r "; - - summery += ansi.BlueLight( Ansi.Bright + "⌚ "); - -// summery += ANSI.Green + ANSI.Underscore; -// summery += (hh != 0 ? hh+"" : "00") + ':' ; -// summery += (mm != 0 ? mm+"" : "00") + ':' + ss ; -// summery += ANSI.ResetAllAttributes; + + @Override + public void run() { + String summery = "\n"; + Ansi ansi = new Ansi(); + long hh, mm, ss; + while (showSpeed ) { + hh = ((timer/60)/60)%60 ; + mm = (timer/60)%60; + ss = timer%60; + + summery = ""; + summery += Ansi.EraseLine + "\n" ; + summery += Ansi.EraseLine + "\n" ; + summery += Ansi.EraseLine ;//+ ANSI.SaveCursor; + +// summery += "\r "; + + summery += ansi.blueLight( ansi.Dim( "⌚ ")); + +// summery += ANSI.Green + ANSI.Underscore; +// summery += (hh != 0 ? hh+"" : "00") + ':' ; +// summery += (mm != 0 ? mm+"" : "00") + ':' + ss ; +// summery += ANSI.ResetAllAttributes; - summery += "["; - summery += Ansi.Green + Ansi.Underscore; - summery += (hh > 9 ? hh+"" : "0"+hh ) + ':' ; - summery += (mm > 9 ? mm+"" : "0"+mm ) + ':' ; - summery += (ss > 9 ? ss+"" : "0"+ss ) ; - summery += Ansi.ResetAllAttributes; + summery += "["; + summery += ansi.green(ansi.Underscore( + (hh > 9 ? hh+"" : "0"+hh ) + ':' + + (mm > 9 ? mm+"" : "0"+mm ) + ':' + + (ss > 9 ? ss+"" : "0"+ss ) + )); summery += "]"; - - //summery += ansi.BlueLight( " ⇔ ⇅ [ "); - summery += ansi.BlueLight( " ⇔ ⇅"); - summery += " [ "; - - summery += ansi.Yellow(Ansi.Bright +"▼ "+Ansi.BoldOff + Utils.getStringWidth( getTotalReceiveMB(), 15)); - summery += ansi.RedLight(Ansi.Bright+"▲ "+Ansi.BoldOff + Utils.getStringWidth(getTotalSendMB() , 15)); - summery += ansi.RedLight(Ansi.Bright + "↑ "+Ansi.BoldOff + Utils.getStringWidth( getSpeedTCPSendMB() + "/s", 15)); - summery += ansi.Blue(Ansi.Bright + "↓ "+Ansi.BoldOff +Utils.getStringWidth( getSpeedTCPReceiveMB() + "/s", 15)); - - //summery += ansi.BlueLight( " ] "); - summery += " ] "; - - summery += '\n' + Ansi.CursorUp; - -// summery += ANSI.UnsaveCursor; - summery += Ansi.CursorUp; -// summery += ANSI.EraseLine; - summery += Ansi.CursorUp; -// summery += ANSI.EraseLine; + + //summery += ansi.BlueLight( " ⇔ ⇅ [ "); + summery += ansi.blueLight( " ⇔ ⇅"); + summery += " [ "; + + summery += ansi.yellow(Ansi.Dim +"▼ "+Ansi.BoldOff + Utils.getStringWidth( getTotalReceiveMB(), 15)); + summery += ansi.redLight(Ansi.Dim+"▲ "+Ansi.BoldOff + Utils.getStringWidth(getTotalSendMB() , 15)); + summery += ansi.redLight(Ansi.Dim + "↑ "+Ansi.BoldOff + Utils.getStringWidth( getSpeedTCPSendMB() + "/s", 15)); + summery += ansi.blue(Ansi.Dim + "↓ "+Ansi.BoldOff +Utils.getStringWidth( getSpeedTCPReceiveMB() + "/s", 15)); + + //summery += ansi.BlueLight( " ] "); + summery += " ] "; + + summery += '\n' + Ansi.CursorUp; + +// summery += ANSI.UnsaveCursor; + summery += Ansi.CursorUp; +// summery += ANSI.EraseLine; + summery += Ansi.CursorUp; +// summery += ANSI.EraseLine; - System.out.print(summery); + System.out.print(summery); - demondSpeedNow(); - timer++; - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } + demondSpeedNow(); + timer++; + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + +// @Override +// public void run() { +// String summery = "\n"; +// Ansi ansi = new Ansi(); +// long hh, mm, ss; +// while (showSpeed ) { +// hh = ((timer/60)/60)%60 ; +// mm = (timer/60)%60; +// ss = timer%60; +// +// summery = ""; +// summery += Ansi.EraseLine + "\n" ; +// summery += Ansi.EraseLine + "\n" ; +// summery += Ansi.EraseLine ;//+ ANSI.SaveCursor; +// +//// summery += "\r "; +// +// summery += ansi.BlueLight( Ansi.Bright + "⌚ "); +// +//// summery += ANSI.Green + ANSI.Underscore; +//// summery += (hh != 0 ? hh+"" : "00") + ':' ; +//// summery += (mm != 0 ? mm+"" : "00") + ':' + ss ; +//// summery += ANSI.ResetAllAttributes; +// +// summery += "["; +// summery += Ansi.Green + Ansi.Underscore; +// summery += (hh > 9 ? hh+"" : "0"+hh ) + ':' ; +// summery += (mm > 9 ? mm+"" : "0"+mm ) + ':' ; +// summery += (ss > 9 ? ss+"" : "0"+ss ) ; +// summery += Ansi.ResetAllAttributes; +// summery += "]"; +// +// //summery += ansi.BlueLight( " ⇔ ⇅ [ "); +// summery += ansi.BlueLight( " ⇔ ⇅"); +// summery += " [ "; +// +// summery += ansi.Yellow(Ansi.Bright +"▼ "+Ansi.BoldOff + Utils.getStringWidth( getTotalReceiveMB(), 15)); +// summery += ansi.RedLight(Ansi.Bright+"▲ "+Ansi.BoldOff + Utils.getStringWidth(getTotalSendMB() , 15)); +// summery += ansi.RedLight(Ansi.Bright + "↑ "+Ansi.BoldOff + Utils.getStringWidth( getSpeedTCPSendMB() + "/s", 15)); +// summery += ansi.Blue(Ansi.Bright + "↓ "+Ansi.BoldOff +Utils.getStringWidth( getSpeedTCPReceiveMB() + "/s", 15)); +// +// //summery += ansi.BlueLight( " ] "); +// summery += " ] "; +// +// summery += '\n' + Ansi.CursorUp; +// +//// summery += ANSI.UnsaveCursor; +// summery += Ansi.CursorUp; +//// summery += ANSI.EraseLine; +// summery += Ansi.CursorUp; +//// summery += ANSI.EraseLine; +// +// System.out.print(summery); +// +// demondSpeedNow(); +// timer++; +// try { +// Thread.sleep(1000); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// } +// } } diff --git a/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java b/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java index f6e2d2e..133baeb 100644 --- a/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java +++ b/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java @@ -60,6 +60,13 @@ public long getSendUDP() { return sendUDP; } + public void resetSpeedFlags() { + receiveTCP = 0; + receiveUDP = 0; + sendTCP = 0; + sendUDP = 0; + } + @Override public String toString() { return "NetworkMonitor{" + "sendTCP=" + sendTCP + ", receiveTCP=" + receiveTCP + ", sendUDP=" + sendUDP diff --git a/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java b/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java index b0ebc50..5234391 100644 --- a/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java +++ b/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java @@ -236,7 +236,7 @@ public boolean verifyServerHostKey(String hostname, int port, String serverHostK Logger.debug(getClass(),"Finish authenticate With Password."); } else { - Logger.debug(getClass(),"Connection is "+ Ansi.Red +" not authenticated." + Ansi.ResetAllAttributes); + Logger.debug(getClass(),"Connection is " + Ansi.Red +" not authenticated." + Ansi.Reset); fireErrorListener(); fireCompleteListener(); return;