miércoles, 10 de octubre de 2012

Campaña de infección masiva con correos con malware

La semana pasada hubo una infección masiva de malware que se distribuía mediante enlaces en correos electrónicos.
Los enlaces cuando accedías descargaban un ZIP que contenía malware.
El malware en cuestión era HERMES una evolución de Tatanga.
 
Es una práctica habitual el mandar enlaces que contengan malware, así que siempre es una buena práctica no abrir enlaces sospechosos que además provengan de direcciones que no son de confianza.

Información sobre el malware.

Una vez hemos descomprimido el ZIP vemos que hay un ejecutable dentro:

remnux@remnux: ~ $ ll
total 492
-rw-rw-r-- 1 remnux remnux 284160 2012-09-25 18:53 Facturas.Pdf_______________________________________________________________.exe
-rwxrwxr-x 1 remnux remnux 213694 2012-09-28 18:23 Facturas.zip

El archivo tiene extensión .exe pero para que el usuario se sienta confiado de clicar añaden un factor de ingeniería social de añadirle .pdf y _______ para que el usuario no se fije en la última y verdadera extensión.
Analizamos la muestra por ejemplo con peframe para que nos arroje información sobre el sample:

remnux@remnux: ~ $ python peframe/peframe.py --auto Facturas.Pdf_______________________________________________________________.exe 
File Name:    Facturas.Pdf_______________________________________________________________.exe
File Size:       284160 byte
Compile Time:          2012-09-25 10:29:04
DLL:               False
Sections:       12
MD5   hash:  03b9b29ee50218a55259a12647aea070
SHA-1 hash: 634ed95519d4fa38246b71824bd1e249d0a8aad0
None
Anti Debug:  None

File and URL:
FILE:              KERNEL32.dll
FILE:              kernel32.dll
FILE:              ntdll.dll
FILE:              ole32.dll
FILE:              ws2_32.dll
FILE:              KERNEL32.dll
FILE:              msvcrt.dll
URL:               None

Suspicious API Functions:
Func. Name: CreateFileA
Func. Name: GetModuleHandleA

Suspicious API Anti-Debug:

Suspicious Sections:
Sect. Name:   .bss
MD5   hash:  d41d8cd98f00b204e9800998ecf8427e
SHA-1 hash: da39a3ee5e6b4b0d3255bfef95601890afd80709
Sect. Name:   mwsbtdb
MD5   hash:  6e2422ba065f5912a3645f00f463e037
SHA-1 hash: 2960b8dbe2acc3a8f7f1fc247e3c580fbe93da93

LegalCopyright: 
InternalName: 
FileVersion: 
CompanyName: 
LegalTrademarks: 
ProductName: 
ProductVersion: 
FileDescription: 
OriginalFilename: 
Translation: 0x041c 0x04e4

Peframe nos informa de que no contiene funciones anti-DEBUG

El binario es detectado por 28 de los 42 motores de antivirus de Virus Total
Análisis dinámico de la muestra

Para el análisis de la muestra lo haremos en un entorno controlado, es por eso que ejecutaremos la muestra en un entorno virtual y monitorizaremos las conexiones.
Antes de dejar a la muestra salir hacia fuera veremos que peticiones realiza:

root@remnux: ~ # fakedns 
Using default IP address in responses. To over-write, use a command line option
pyminifakeDNS:: dom.query. 60 IN A 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.com.ar. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta:{XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.com.ar. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.com.ar. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.com. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1
Respuesta: {XXXX}.de. -> 192.168.1.1

Ya vemos que hace peticiones hacia distintos dominios, una vez que ya capturemos todos los dominios con los que el malware intenta conectar ejecutamos la muestra interceptando las peticiones con un proxy para capturar hacia donde exactamente la muestra se quiere conectar. Vemos que al cabo de unos minutos se realiza un POST a un servidor remoto.

Es una práctica habitual en los ciber criminales tanto en la distribución de malware como en la recogida de datos robados el usar sistemas legítimos.

Es decir, vulnerar un servidor y desde ahí hacer la recogida de datos y la distribución de las muestras.
Mirando el servidor donde la muestra se comunicaba con el panel de control, me encontré con toda una sorpresa...



Me encontré el en servidor una shell subida.
En la imagen se ven 3 archivos importantes
  • El g.php es a donde el binario se comunicaba con el panel de control
  • El sys.php es la shell que han conseguido subir
  • El 33.zip era un panel de ZEUS, imagino que para lanzar otra campaña.
Como actúa el malware

Una vez el usuario ha sido infectado, el malware monitoriza hacia que webs navega el usuario. En el caso de que encuentre una de las webs que él tiene marcadas en su configuración inyectará lo siguiente en la web.


Para entender esto, imaginad que el troyano está monitorizando el dominio http://s21sec.com. Cuando navegue hacia allí en la web inyectará 


Para conseguir ver lo que ha inyectado hay que ir hacia esa dirección, es decir:


Es un truco usado por el malware, cuando navegamos hacia esas webs el navegador nos mostrará el código de esos JS inyectados. Naturalmente se encuentran ofuscados.
Aunque el archivo verdaderamente importante era el que hacía la petición AJAX, ya que este es el que servía la inyección en vivo para el robo del usuario y password. En cambio cuando se realizó la petición para servir la inyección en vivo:


La inyección en vivo en este caso no funcionaba :\

Si miramos los otros archivos JS podemos extraer funciones para comprobar versiones de navegador, por ejemplo:


Aunque no pude obtener la inyección en vivo esto es mas o menos lo que se hubiera recibido:


Por último si recordáis el malware enviaba los datos a un archivo PHP en un servidor. Si miramos el archivo para ver lo que contiene:


Como veis el archivo se encuentra ofuscado, después de quitar la ofuscación encontramos una parte importante:


Parece que los datos los envía a un segundo panel.

Una estructura que todos conocemos sería la del troyano que envía los datos a un panel de control y de ahí el malo los recoge.


Esta sería la estructura, pero existe otra que sería la de un troyano envía los datos a un panel y este los envía a un panel de control final. Es imposible para el analista saber que el destino final no es el primer panel de control.


Esta táctica es usada para poder ocultar el destino final de los datos. El fichero g.php que es donde enviaba el troyano los datos se encontraba muy ofuscado. Sus esfuerzos en ofuscar no solo los JS si no además el destino final donde el malware envía los datos. Hace que la labor de analizar la muestra sea mucho mas complicada.



Android 4.1.2 Jelly Bean acaba de ser lanzada

Cuando parecía que la nueva actualización a Android 4.2 Key Lime Pie estaba a punto de llegar, entonces Google nos sorprende con algo totalmente inesperado, Android 4.1.2 Jelly Bean, una nueva compilación de la ya vista nueva versión. La noticia es realmente interesante y puede tener mucho trasfondo. En cuanto a las novedades que trae, nada destacable, aparte de algunas en el funcionamiento y el arreglo de algunos errores. La pregunta importante es ¿es esta la versión que llevará el nuevo Nexus?

Después de mucho tiempo hablando sobre la posibilidad de que el nuevo Nexus funcionara con Android 4.2 Key Lime Pie, que pasaría a ser la última versión del sistema operativo de Google para smartphones y tablets, entonces nos encontramos con una nueva actualización del propio Jelly Bean. Además, llega tan solo un poco antes de que el supuesto nuevo Nexus haga su aparición en el escenario del panorama Android. Ahora surge la potente posibilidad de que esta sea en realidad la versión que lleve el LG Optimus Nexus cuando llegue al mercado, en vez de la nueva Android 4.2 Key Lime Pie.

Actualización poco importante

No obstante, el hecho de que la actualización sea poco importante, nos hace pensar que solamente sea una pequeña transición a la que se desvelará el mes que viene, y que sí supondrá un salto más destacable. De hecho, además de las mejoras comentadas, que solo incluyen algunas soluciones de problemas, y la optimización de algunos recursos, también añade una característica al Nexus 7. Ahora se permite cambiar la orientación de la pantalla en la ventana Home. Esto, que es muy común en cualquier dispositivo Android, en el Nexus 7 solo se podía hacer por medio de aplicaciones externas, gracias a esta actualización, ya es una función interna.

La actualización a la versión 4.1.2 de Jelly Bean ya está disponible para el Nexus 7, lo estará pronto para el resto de la familia Nexus, y es probable que también para el tablet Motorola Xoom.



Volatility 2.3

Herramienta muyyyyy productiva:

http://code.google.com/p/volatility/wiki/Release23



Crackear wifi en Windows

Hoy vamos a Crackear WEP con un equipo con SO Windows sin necesidad de ningún comando, y con pocos pasos, dejemos ya la teoría y pasemos a la práctica.
 
Necesitamos los siguientes programas:
Ahora estamos listos para empezar, instalamos CommView con nuestro driver correspondiente, a veces es un poco complicado este paso, Google y YouTube te ayudaran!
Una vez abierto nos vamos a “Logging” y cambiamos
  • “Maximum directory size, MBytes” a 50000
  • “Average log file size, MBytes” a 100
  • “Save logs to” a la carpeta que nosotros deseemos
Una vez hecho esto, nos vamos al botón más grande (Play) el cual abre una ventana llamada “Scanner” entonces hacemos clic en “Start Scanning” esperamos un rato a que realice el escáner por todos los canales.


 
Una vez completado nos aparece en pantalla todas las redes dentro de su canal correspondiente, seleccionamos la red, vemos que está cifrada en WEP y haced clic en “Capture”


 
Dejamos que capture bastantes paquetes de el canal 1 que es en el que está situado nuestra propia red, como no tenemos prisa, lo podemos dejar un rato.
NOTA: Si hay mas señal de red va mas rápido capturando paquetes, así, que si os podéis acercar mucho mejor!

Cuando han pasado 7 minutos vemos que ya ha capturado suficientes paquetes (78.902) hacemos clic en “Stop” automáticamente se guardan en la carpeta que hemos especificado anteriormente, en mi caso “D:\Projects\WIFI KEYS\Files”


 
Abrimos D:\Projects\WIFI KEYS\Files y vemos que se ha creado un archivo con el día de hoy y la hora


 
Al ejecutarlo, se nos abre CommView for Wifi hacemos clic en Archivo>Exportar Logs>WireShark/TcpDump Format y lo guardamos con la extensión .cap


 
Una vez guardado, nos vamos a aircrack-ng 1.1 para windows, en mi caso ya lo he desempaquetado y dentro de la carpeta, abrimos la carpeta “bin” y ejecutamos el archivo “Aircrack-ng GUI.exe”


 
Una vez abierto escogemos el archivo .cap que anteriormente habíamos guardado, seleccionamos “key size=64″ y “Launch”, si falla por este motivo subid del key size a 128.


 
Entonces no pide que red queremos escoger, y le decimos que la 1ra en la lista:


 
Entonces dejamos que haga su trabajo.


 
¿¿Pero qué ha ocurrido??


 
No hemos esperado el tiempo necesario para que capturara suficientes paquetes (en CommView) como para conseguir la clave, entonces lo que haremos será repetir el procedimiento de captura desde los pasos anteriores hasta llegar otra vez aquí hasta que no nos diga que faltan paquetes.


 
Ya esta hemos encontrado la clave: C2:40:6C:54:FA ahora solo hemos de quitar los puntos y listo!
KEY: C2406C54FA
NOTA: Esta WiFi es propia así que no se ha hecho nada ilegal!
Aunque parezca largo, es un proceso que puedes realizar en pocos minutos si has hecho una buena captura de paquetes. La verdad es que se puede simplificar en pocos pasos:
  1. Abrir “CommView for WiFi”
  2. Escanear Wifis > Capturar canal
  3. Capturar paquetes del canal
  4. Ir a la carpeta especificada, abrir el archivo generado.
  5. Archivo>Exportar Registros>Wireshark, guardar con extension .cap
  6. Abrir Aircrack-ng Gui.exe dentro de la carpeta bin
  7. Buscar los archivos anteriormente guardados y seleccionarlos (extension .cap)
¡Y ya tenemos la clave!


Navegación web anónima con Tor centralizado

Fuente: http://tecnogame.co.cc/2012/05/navegacion-web-anonima-con-tor-centralizado/
 

Aquí veremos cómo utilizar Tor de forma centralizada, es decir, utilizando un servidor con Tor corriendo y una máquina (local) como cliente.
Vale, pero, ¿y qué es Tor? :
Tor (The Onion Router) es una implementación libre de un sistema de encaminamiento llamado onion routing que permite a sus usuarios comunicarse en Internet de manera anónima. Según la Wikipedia.
El funcionamiento de Tor viene descrito de forma básica en la siguiente imagen:

 La principal razón para usar Tor es en aquellos casos en los que no queremos que el destinatario conozca nuestra identidad. Anonimato en la web, es decir, que no se pueda llegar a saber quién ha accedido a tal página o ha escrito determinado mensaje en un foro.

En la imagen anterior podemos ver como Alice quiere comunicarse con Bob, pero ésta lo hace a través de varios equipos "intermediarios" (los pertenecientes a la red Tor) para terminar entregando el mensaje por una salida que no se corresponde a la suya propia, sino a la de otro usuario.

Como vemos, los intermediarios se comunican de forma cifrada entre sí, por tanto los integrantes de esta red no pueden leer los datos que se transmiten. Sin embargo podemos ver también una de las pegas de este sistema y es que la comunicación entre el último nodo de la red Tor y el destinatirio se realiza en claro, por lo que a parte del destinatario, el último operador de la red también es capaz de ver los datos transmitidos, al igual que haría tu ISP si no se utiliza Tor. Por tanto es un riesgo que hay que considerar.

Utilizar Tor de forma centralizada en efecto no tiene diferencias, lo que sí nos permite es ahorrarnos trabajo y tiempo, ya que para cada nueva máquina o sistema operativo que queramos anonimizar sólo tendremos que realizar la configuración y no, instalar y configurar de nuevo Tor y todo lo relacionado.

Una vez visto de forma básica el funcionamiento de Tor procederemos a realizar la instalación en el servidor y su consecuente instalación en un cliente Windows 7 con Firefox, proceso que sería exacto para cualquier SO con Firefox instalado, ya que el navegador será encargado de realizar las comunicaciones. Por supuesto también se pueden anonimizar otras comunicaciones utilizando Tor, pero aquí sólo veremos cómo hacerlo con las relacionadas al protocolo HTTP.

Lo primero, lógicamente sería instalar Tor en nuestro servidor, para el ejemplo lo haré sobre una máquina Debian, pero el proceso viene siendo el mismo para cualquier distribución de Linux. Para Windows el proceso es el mismo sólo que instalando los paquetes de Tor y Polipo creados para Windows y modificando los respectivos ficheros de configuración.

Para instalarlo en Linux (Debian), como superusuario:
apt-get install tor polipo
¿Por qué Tor y Polipo? Tor es el proxy SOCKS encargado de transmitir los paquetes por la red, mientras que Polipo es un proxy HTTP encargado de pasarle los paquetes HTTP a Tor para que los transmita.


Vayamos con la configuración de Tor.
  • Lo primero es abrir el fichero de configuración:
/etc/tor/torrc
  • Una vez abierto, tenemos que ponerlo a escuchar en un puerto (9999 para el ejemplo) en nuestro servidor (192.168.1.25 en el ejemplo), para ello añadimos, o modificamos la sentencia correspondiente:
SocksListenAddress 192.168.1.25:9999
  • Esto es todo para Tor, ahora simplemente reiniciamos el servicio:
/etc/init.d/tor restart

Una vez tenemos Tor configurado y escuchando vamos a proceder con la configuración de Polipo:
  • Abrimos el fichero de configuración:
/etc/polipo/config
  • Lo primero que haremos será establecer una dirección IP (la del servidor) y un puerto (9998) diferente al que escucha Tor, lógicamente. Para ello añadimos debajo (para seguir la organización del propio fichero) de "# proxyAddress = "0.0.0.0"    # IPv4 only":
proxyAddress = "192.168.1.25"
proxyPort = 9998
  • Después, debajo de "# allowedClients = 127.0.0.1, 192.168.42.0/24", añadimos (o modificamos esa misma):
allowedClients = 192.168.1.0/24
  • Por último, sólo nos queda habilitar las sentencias:
socksParentProxy = "localhost:9050"
socksProxyType = socks5
  • Y esto es todo, reiniciamos Polipo para dejarlo escuchando:
/etc/init.d/polipo restart

Para terminar sólo faltaría configurar el navegador web (Firefox en este caso) del equipo cliente para que utilice Tor y Polipo como proxy. Para eso bastará con instalar TorButton, que no es más que un complemento para FIrefox que permite habilitar y deshabilitar el uso de Tor de una forma fácil y rápida. Una vez instalado el complemento, reiniciamos Firefox, y arriba, a la izquierda del campo de texto para introducir la URL aparecerá un dibujo de una cebolla con una cruz roja (Uso de Tor deshabilitado):
Al pinchar en él se nos abrirá una ventana en la que lo primero que haremos será modificar las preferencias para el proxy del navegador, así que pinchamos en "Preferencias…", dónde modificamos:
  • Proxy HTTP: 192.168.1.25   /  Puerto: 9998
  • Host SOCKS: 192.168.1.25   /  Puerto: 9999
Quedando como se observa en la siguiente imagen:


Para finalizar le damos a "Aceptar" y volvemos a pinchar en el "TorButton", luego le damos a "cambiar estado de Tor", haciendo que el logo de TorButton pase a ser una cebolla de color verde, indicando que Tor está siendo utilizado.

Para verificar que todo ha ido bien, accedemos a la página check.torproject.org y nos dirá si estamos utilizando la red Tor, o si, por el contrario, algo ha salido mal y no estamos navegando a través de él.


Antes de concluir con el artículo, quiero hablar sobre las ventajas y desventajas de usar Tor:
Ventajas:
  • Anonimato: Es su principal arma, y la cumple sobremanera; nadie podrá, en un principio, saber cuál es el emisor principal de una información que sale de una red Tor.
  • Sin rastros en el equipo: No dejamos ni cookies, ni archivos temporales, ni logs, etc
Desventajas:
  • Seguridad: Los usuarios ubicados en el primer y último nodo de la red Tor podrán leer los datos que se envían.
  • Lentitud: La navegación por la red se verá severamente ralentizada por el simple hecho de que los paquetes tienen que realizar un viaje por la red mucho más largo. 

Calculadora de contraseñas de redes WIFI de Telefónica y Jazztel

Calcular las contraseñas de acceso por defecto a redes WIFI de Telefónica y Jazztel cuyo nombre de red siga las pautas “WLAN_XXXX” y “JAZZTEL_XXXX” dónde “XXXX” es un código de 4 números y letras “aleatorio”. El algoritmo para generar la contraseña ha sido descubierto hace un tiempo y es público por lo que cualquiera puede obtener la contraseña de la red siguiendo el algoritmo. Básicamente lo que viene a hacer el algoritmo es:
  • Sustituir las 4 últimas letras del BSSID (MAC del punto de acceso) por las 4 últimas letras del ESSID (nombre de la red)
  • Se le añade al final el BSSID original
  • Luego, al principio de la cadena actual se le añade: “bcgbghgg”
  • Se calcula la suma MD5
  • Y la clave son los primeros 20 dígitos de la suma MD5
¿Sencillo a que si?

El uso de la aplicación es muy básico, necesitamos el nombre de la red (conocido como ESSID) y la dirección MAC del router (conocido como BSSID), una vez tenemos estos dos datos los introducimos en sus correspondientes lugares y la aplicación nos devolverá la clave para esa red inalámbrica. Obtener los datos requeridos es también muy fácil; cómo obtener el ESSID no creo que sea necesario explicarlo, basta con hacer un escaneo de las redes disponibles y quedarse con el nombre de la red deseada, que tiene que cumplir con estos dos requisitos para funcionar con esta aplicación:

  • Llevar por nombre o “WLAN_XXXX” o “JAZZTEL_XXXX” (“WLAN_A0F4″ por ejemplo)
  • Tener la contraseña por defecto (cosa que no sabremos hasta intentar conectarnos)

Para obtener el BSSID desde un equipo con sistema operativo GNU/Linux es una tarea también muy sencilla, haciendo uso de la herramienta iwlist escaneamos las redes disponibles obteniendo de las mismas además del BSSID y el ESSID una serie de datos extra como el canal en el que se encuentra la red, si está cifrada o no, el tipo de cifrado, la potencia de la señal recibida, etc.

Para obtener toda la información de las redes a nuestro alcance basta con ejecutar (como superusuario):
iwlist INTERFAZ scanning
Dónde INTERFAZ se refiere a la interfaz de red inalámbrica de nuestro equipo (“wlan0″, “ra0″, etc). En la siguiente imagen puedes ver la salida del comando


De una forma un tanto “sucia” pero eficaz podemos prescindir de toda esa información extra que en nuestro caso nos es irrelevante, mostrando únicamente una lista de ESSID y su correspondiente BSSID haciendo uso del comando “grep”. Seguro que hay más y mejores formas de hacerlo pero sin complicarme la vida de una forma rápida ésto fue lo que se me ocurrió.
iwlist INTERFAZ scanning|grep ESSID && iwlist INTERFAZ scanning|grep Address
Aunque primero muestra los ESSID y luego, debajo, muestra la lista de los BSSID, sabemos que el primero de la lista de los ESSID se corresponde al primero de la lista de los BSSID y así respectivamente, así que no será complicado identificarlos. Una muestra del mismo.


Una vez tenemos todos los datos necesarios, los pasamos a la aplicación.


Al presionar en el botón “Calcular” tras haber introducido los datos la aplicación nos devolverá un mensaje con la clave de acceso a esa red.

Sin necesidad de conocimientos informáticos, ni de programación, ni nada por el estilo, simplemente sabiendo dos detalles de una red de los cuales uno es visible y el otro no es muy complicado obtenerlo, cualquiera podrá obtener acceso a una red inalámbrica ajena sin permiso del propietario y sin conocimiento del mismo, al menos en un principio. Un problema como tantos otros que las operadoras conocen pero que prefieren no subsanar.

Por eso quiero aprovechar para recomendar encarecidamente a todos aquellos usuarios que tengan una red wifi que cumpla estas características que no hayan modificado la contraseña de acceso por una a su gusto que lo hagan cuánto antes, el algoritmo con el que se generan esas contraseñas es público y es muy sencillo de utilizar cómo ha podido comprobarse, cualquiera podría acceder a su red wifi con todos los peligros que ello conlleva.

El código fuente de la aplicación y el ejecutable lo podéis descargar desde el siguiente enlace:


Fuente:   http://www.flu-project.com/calculadora-de-contrasenas-de-redes-wifi-de-telefonica-y-jazztel.html