15 feb 2011

Rat Detector v1.0

Este programa escrito por BUGGz en Delphi sirve para detectar si tenemos instalado alguno de los siguientes troyanos:

Bifrost 1.0.1.1
Bifrost 1.0.1.2

ProRat 1.9
ProRat 1.9 SE

Optix Lite Firewall Bypass

Nuclear Rat 7

El programa es detectado por:



Lógicamente se trata de un falso positivo así que no se asusten.

Este programa no limpia la infección. Solo nos advierte de ella.

Pinchando en las distintas pestañas el programa nos mostrará si estamos infectados por alguno de esos troyanos. En la siguiente imagen vemos que indica que estamos limpios del bifrost:



En la siguiente captura vemos como se mostraría una infección, en este caso el ordenador está infectado por el ProRat:



Descarga Rat Detector.

14 feb 2011

BATCH-O-MATIC v7.6

Hoy traigo un viejo generador de virus batch (del año 2003), escrito por SAD1c en C++. El programa está bastante completo y nos permite configurar muchas funciones del virus, al final creará un archivo que podemos abrir con un editor de texto para ver el código del virus.

Es un programa muy útil si estás aprendiendo a escribir virus en batch ya que podrás sacar un montón de ideas de los distintos códigos que genera BATCH-O-MATIC.

Al abrir el programa esto es lo que vemos:



En la parte superior izquierda tenemos una caja que contiene una lista, la lista empieza por Comments, y en la parte inferior del programa nos muestra unos campos a editar. Según avanzamos por la lista veremos abajo las opciones que nos permite editar el programa, personalizando así nuestro virus.






Como podeis ver en las imágenes tiene muchas opciones, os pongo capturas de un par más:





Una vez configurados los distintos campos le damos al botón Create:



Nos saldrá una advertencia donde el autor nos dice que esparcir virus es un crimen, esta advertencia no es ninguna broma, este programa debe emplearse para aprender y no para dañar equipos.



Marcamos la casilla y veremos el botón Write to file. Le damos y se nos abrirá una ventana para guardar el virus, le ponen un nombre y lo guardan con la extensión que habían configurado previamente.



Si quieres probar los virus utiliza un ordenador que sea de tu propiedad, no andes jodiendo a la gente.

Descargar el programa BATCH-O-MATIC.

Los falsos positivos

A raiz de un comentario en la entrada del fearless bound file detector he decidido incluir una reseña en el blog sobre los falsos positivos.

Muchas veces los antivirus detectan archivos que no entrañan ningún riesgo para el ordenador, miren por ejemplo el resultado de virus total al escanear el fearless bound file detector:

Antivirus Version Last update Result
AhnLab-V3 2010.11.27.00 2010.11.26 Win-Trojan/Packed.8192.C
AntiVir 7.10.14.125 2010.11.26 TR/Renaz.7771
Antiy-AVL 2.0.3.7 2010.11.27 -
Avast 4.8.1351.0 2010.11.26 Win32:Neptunia-ADW
Avast5 5.0.594.0 2010.11.26 Win32:Neptunia-ADW
AVG 9.0.0.851 2010.11.27 Generic6.LMW
BitDefender 7.2 2010.11.27 Trojan.Packed.25637
CAT-QuickHeal 11.00 2010.11.26 Trojan.Agent.IRC
ClamAV 0.96.4.0 2010.11.27 PUA.Packed.FSG-1
Command 5.2.11.5 2010.11.26 W32/Heuristic-210!Eldorado
Comodo 6860 2010.11.27 UnclassifiedMalware
DrWeb 5.0.2.03300 2010.11.26 -
eSafe 7.0.17.0 2010.11.24 Win32.Dx
eTrust-Vet 36.1.8003 2010.11.26 -
F-Prot 4.6.2.117 2010.11.26 W32/Heuristic-210!Eldorado
F-Secure 9.0.16160.0 2010.11.26 Trojan.Packed.25637
Fortinet 4.2.254.0 2010.11.26 -
GData 21 2010.11.27 Trojan.Packed.25637
Ikarus T3.1.1.90.0 2010.11.26 Virus.Win32.Trojan
Jiangmin 13.0.900 2010.11.26 -
K7AntiVirus 9.69.3095 2010.11.26 Riskware
McAfee 5.400.0.1158 2010.11.27 Generic.dx
McAfee-GW-Edition 2010.1C 2010.11.26 Heuristic.LooksLike.Win32.Suspicious.J
Microsoft 1.6402 2010.11.26 -
NOD32 5652 2010.11.26 probably a variant of Win32/Agent.HWUXQG
Norman 6.06.10 2010.11.26 Suspicious_F.gen
nProtect 2010-11-26.01 2010.11.26 Trojan/W32.Agent.7771
Panda 10.0.2.7 2010.11.27 Generic Trojan
PCTools 7.0.3.5 2010.11.27 -
Prevx 3.0 2010.11.27 Medium Risk Malware
Rising 22.75.03.04 2010.11.26 Trojan.Win32.Generic.5221B2FB
Sophos 4.60.0 2010.11.27 Mal/Packer
SUPERAntiSpyware 4.40.0.1006 2010.11.27 -
Symantec 20101.2.0.161 2010.11.27 -
TheHacker 6.7.0.1.091 2010.11.26 -
TrendMicro 9.120.0.1004 2010.11.26 TROJ_Generic
TrendMicro-HouseCall 9.120.0.1004 2010.11.27 TROJ_Generic
VBA32 3.12.14.2 2010.11.26 Trojan.Win32.Refroso.atkb
VIPRE 7423 2010.11.27 Trojan.Win32.Generic!BT
ViRobot 2010.11.19.4158 2010.11.26 -
VirusBuster 13.6.62.0 2010.11.26 Packed/FSG

MD5: 6cd9ae63a343ba86654d0e077b6ab950
SHA1: a391c271b39725fae46bb60336c0f44f831a873a
SHA256: fd4afc971e7fc66e5f302258048a4cc7a0a00226f50d06de01a671c53987edc6
File size: 7771 bytes
Scan date: 2010-11-27 02:02:28 (UTC)



Como podeis ver no se ponen muy de acuerdo acerca de como detectarlo, y de todos ellos quizás el que más se acerca es Kaspersky al calificarlo como riskware, ya que se trata de una herramienta escrita por un grupo de hackers, autores de otros programas mucho más malignos.

Un falso positivo es aquel que se produce cuando un antivirus advierte de peligro y en realidad no existe ningún riesgo. Y son mucho más frecuentes de lo que la gente piensa, de hecho cada vez son más frecuentes.

Por desgracia para los usuarios de ordenadores los antivirus no gustan de explicar como es su funcionamiento pues su estrategia principal de marketing es el miedo, cuanto más asustados esten los usuarios mayor será su confianza en los antivirus.

Para mayor desgracia de los usuarios solo existe un modo de saber si un archivo está o no limpio y ese modo requiere conocimiento y tiempo, la única manera de asegurarse realmente de si un archivo está infectado es analizándolo a manivela con programas específicos como editores hexadecimales, depuradores, etc.

Los mortales tendremos que seguir fiándonos de lo que nos dicen los antivirus pues el conocimiento necesario para analizar malware es muy amplio y requiere mucha dedicación. En este mundo gobernado por las prisas no hay nada peor que depositar nuestra confianza en un automatismo como por ejemplo nuestro antivirus favorito.

Y el problema no termina aquí, en el pobre usuario, sino que alcanza a los programadores, un falso positivo en una aplicación completamente limpia trae como consecuencia que los usuarios no usen la aplicación por miedo. Imaginen que son programadores y acaban de terminar un programa despues de meses de duro trabajo, lo ponen en internet para beneficio de todos y resulta que algunos antivirus dan un falso positivo al analizarlo. Muchos usuarios, por miedo, no se atreverán a probar su programa.

El efecto del falso positivo funciona como la publicidad dañina y falsa que se genera en torno a determinados productos, hundiéndolos.

Un ejemplo claro de esto último lo tenemos en McAffe y su falso positivo al analizar archivos legítimos de Windows.

Podemos encontrar ejemplos en los que los antivirus dan falsos positivos al analizar archivos de la competencia, sí, un antivirus detectando otro antivirus.

Es también común la detección de cracks y keygens como virus, principalmente porque los cracks y keygens son programas que se saltan las protecciones de los programas permitiendonos usarlos de manera gratuita.

Incluso las bromas para ordenadores son detectadas por los antivirus.

26 ene 2011

Assa*SIN* v1.1 (2ª parte)

Continuamos con el tutorial de Assa*SIN*, despues de ver como se configuraba el servidor desde el propio cliente pasaremos a ver como se maneja el cliente y que funciones tiene.

El primer paso es poner el cliente a la escucha para que reciba las notificaciones de los servidores, para ello en la columna de la izquierda pulsaremos sobre Notification y luego sobre LAN, de manera que nos mostrará lo siguiente:



Ahí podemos especificar los puertos con los que configuramos el servidor, y despues solo hay que pulsar sobre el botón que dice Open ports. Ahora el cliente está listo para recibir las conexiones de los servidores. Recuerda que si usas un router para conectarte a internet debes abrir esos puertos también en el router.

En cuanto algún servidor se conecte se nos mostrará tal que así:



Si hay varios servidores conectados se nos mostrarán todos en una lista, ahora para conectar con uno de los servidores solo tenemos que seleccionarlo con el ratón y darle doble click. Automáticamente estaremos conectados a el y podremos enviarle órdenes, sabremos que estamos conectados por que en la parte inferior del cliente veremos:



Ahora ya podemos probar libremente todas las opciones del cliente. Para desinstalar el servidor dirigirse a la columna de la izquierda y pulsar en System y luego en Server options:



Aquí tienen el keylogger, que aunque hace su trabajo (deben pulsar el botón get keys para que muestre lo capturado) no es realmente un buen keylogger, falla con algunos caracteres como la ñ o los acentos. Pero funciona.



Las herramientas más interesantes están en la sección Core Controls, donde tenemos el administrador de archivos, administrador de tareas, de procesos, editor del registro y una opción que pocos troyanos tienen "Net manager" con la cual podemos explorar la red LAN a la que pertenece el ordenador donde corre el servidor de assasin.

Muchas de las opciones aparecen en el programa principal, pero pueden separarse del mismo mediante el botón "Detach":



Así podemos separar las ventanas y ordenarlas a nuestro gusto:



Para las capturas de pantalla y de webcam se requiere un plugin, podemos comprobar si lo tiene ya en su equipo en el siguiente botón:




Si no lo tiene nos preguntará si queremos subirle el plugin. Es una dll, que también es detectada por los antivirus.

Por último destacar el exe killer, que se encargará de mantener una lista de archivos que no podrán ser ejecutados en la computadora infectada.

La lista que trae es bastante amplia y nos permite añadir nuevos nombres de archivos:



Pueden descargar de aquí el Assa*SIN* v1.1

Assa*SIN* v1.1 (parte 1)

Este troyano fue publicado en el año 2002, su autor es LOM, y en aquellos años fue uno de los troyanos más innovadores del momento por varias cosas, de las que podemos destacar la conexión inversa y la notificación por MSN.



Esta es la versión 1.1, no les hablo de la versión anterior porque tenía algunos fallos y era más inestable que esta versión. Existen versiones posteriores del troyano, pero son bastante diferentes y, de momento, no las vamos a tratar aquí.

Si leyeron el artículo sobre conexión directa/conexión inversa sabrán las implicaciones que tuvo en su momento la aparición de esta herramienta.

En este artículo aprenderemos a usar este fabuloso troyano.

Para configurar nuestro servidor personalizado debemos dirigirnos a la columna de la izquierda y pinchar sobre "edit server", entonces se nos mostrará en la parte principal del programa el editor de servidores, fijense en la parte inferior del editor, hay 3 pestañas llamadas "settings", "notify", y "msn/lan". Debemos avanzar por las pestañas y cubrir todos los campos que necesitemos personalizar.



Empecemos:

Server file: output file name.
Aquí debemos escribir un nombre para el servidor, para el archivo resultante, debe contener la extensión .exe, una vez construido el servidor podemos cambiarle el nombre. Por ejemplo lo llamamos prueba.exe, y el segundo campo (junto al botón write) lo dejan en blanco. El botón write se usará al final para crear nuestro servidor personalizado.

General
Aquí debemos escribir un número de puerto. Este troyano usa ambas conexiones (directa e inversa), por lo que este puerto será usado para la conexión directa. En server exe deben escribir un nombre que no sea muy sospechoso, será el nombre con el que finalmente el troyano se copiará en el ordenador infectado.

Start up
Aquí configuraremos el método de inicio, tenemos 2, el simple y uno especial que se llama hide method. Este último funciona de la siguiente manera, al iniciarse windows se inicia el servidor del assasin y borra la clave de inicio, al apagarse windows vuelve a crearse la clave de inicio para arrancar la siguiente vez que se inicie windows. Es un buen método que evita que alguien descubra el troyano examinando las entradas del registro pero tiene un fallo, si el ordenador se apaga bruscamente (un corte de luz por ejemplo) no se escribirá la clave para el siguiente reinicio y ya no se iniciará, por ello recomiendo marcar las 2 opciones.

Other
Aquí le pondremos una contraseña al servidor para la conexión directa, podemos marcar la opción kill firewall que sirve para matar los procesos de varios programas de seguridad (es bastante agresivo), también podemos poner un mensaje de error falso.

Vamos ahora a la segunda pestaña, donde pone notify. Allí tenemos 2 tipos de notificación, la notificación por ICQ se ha quedado obsoleta y no creo que funcione, la notificación por php sí que funciona perfectamente. Esta última notificación es bastante fiable pero algo complicada de explicar, por lo cual lo dejo para otro artículo.

Msn/Lan
Por último, aquí podemos configurar la notificación por msn, que posiblemente esté obsoleta y no funcione (no lo he probado). Y también podemos configurar la conexión inversa. En el apartado Lan Options debemos marcar la opción "use lan technology if lan is detected", y en el campo donde pone hostname/ip pondremos nuestra dirección no-ip o cualquier otro dns dinámico que tengamos, tambien podemos poner nuestra ip si es estática. Por último pondremos los puertos, son 2, uno por el que se conectarán los servidores a nosotros para notificarnos y otro por el que se realizará la conexión del troyano. Como siempre, si nosotros estamos tras un router debemos abrir esos 2 puertos para que nos lleguen las conexiones.

Ahora para crear el servidor pulsamos el botón write.

Y eso es todo por ahora, en el proximo artículo seguiremos hablando de este magnífico troyano.

24 ene 2011

Open Source Code Crypter 1.0

Este programa fue escrito por p0ke, un prolífico autor de malware. Está escrito en delphi y en el archivo se incluye el código fuente del mismo, pudiendo modificarse el archivo stub directamente desde el código para hacerlo indetectable a los antivirus.

Sus características son:

-Permite juntar y cifrar hasta 10 archivos.
-Ejecuta los archivos cifrados en memoria.
-Soporta el cifrado de programas cuya configuración se guarda en el EOF.
-Permite usar stubs personalizados.
-Permite copiar los archivos cifrados en disco y elegir el directorio.
-Para juntar los archivos los añade como recursos.
-El cifrado usado es un XOR personalizado.
-Para la ejecución en memoria emplea la unit uMemoryExecute creada por p0ke (no funciona en windows 7).
-Disponible el código fuente.



Puedes descargar de aquí el programa Open Source Code Crypter.

21 ene 2011

Conexión directa / Conexión inversa

Muchos novatos no tienen claras las diferencias entre una conexión y otra, en este artículo trataré de aclarar un poco los conceptos para que todo quede claro de una vez por todas.

En un principio los troyanos eran programas cuyo uso era meramente lúdico, servían para gastar buenas bromas a los amigos, les abrías la bandeja del cd, le dabas la vuelta a su pantalla, podías manejar su ratón, etc. Pero con el tiempo los troyanos fueron utilizados como herramientas de hacking, es decir, se empezaron a usar para entrar ilegalmente en otros ordenadores y robar información.

Al final de los años 90 se empezaron a popularizar los troyanos, vea historia de los troyanos para más información. Y como digo se empezaron a usar para gastar bromas a los amigos.

No era dificil infectar ordenadores de empresas, pero estos ordenadores generalmente están dentro de una red interna y no tienen una salida directa a internet, por lo que aun infectados no se podía conectar a ellos.

En aquellos tiempos los ordenadores particulares sí estaban directamente conectados a internet y por ello era posible conectare a ellos mediante un troyano.

Con un esquema cutre quizás se entienda mejor:


-Esquema ordenador particular-

Ordenata ----> internés <--- hackerillo malvado


-Esquema ordenador empresa-

Ordenata ---> router/proxy/firewall ---> internés <--- hackerillo malvado


Como veis en el esquema el hackerillo malvado no podía conectarse al Ordenata porque éste no se conecta directamente a internet sino que un router, un proxy o un firewall hacen de intermediarios con internet. El hackerillo malvado lanzaba su troyano favorito pero se encontraba con que Ordenata rechazaba las conexiones (en realidad la conexión ni tan siquiera llegaba a Ordenata sino que llegaba al router/proxy/firewall y era rechazada).

Para entrar más en situación vamos a contar una historia.

Hackercillo malvado había conseguido la última versión del Sub7 (corria el año 2000 de nuestro señor jesucristo y la última versión del sub7 era la 2.0). Configuró el servidor siguiendo algunos manuales que encontró por la red y se lo mandó a varias personas por correo electrónico.

Felipe estaba en su casa tranquilamente mirando el correo en hotmail, vio el correo de hackercillo malvado y lo abrió, traia un archivo adjunto cuyo nombre era superjuego.exe, Felipe estaba aburrido así que lo abrió para ver que juego era, pero el juego no parecía funcionar, mostró un mensaje de error bastante incomprensible y se cerró.

Felipe olvidó pronto el incidente y siguió mirando otros mensajes de correo.

Pero el mal ya había actuado. El mensaje de error era falso, una tapadera, el programa sí había funcionado y el ordenador de Felipe ya estaba infectado por el sub7. El servidor del sub7 envió secretamente un mensaje de correo a hackercillo malvado, en ese mensaje venía la dirección ip del ordenador de Felipe, que en aquellos tiempos estaba conectado a internet directamente.

Hackercillo malvado vió el mensaje de correo con la ip del ordenador de Felipe y se conectó directamente a él. A partir de entonces espió a Felipe todo lo que quiso y más.

En otra parte del mundo Juan estaba en su oficina, aburrido porque había poco trabajo, decidió mirar su correo y vió que alguien le había mandado un juego, superjuego.exe, lo abrió, el programa mostró un error fatal y se cerró. Juan olvidó pronto el incidente. Pero sub7 ya había infectado su equipo. El troyano mandó un correo a hackercillo malvado, en ese mensaje venía la dirección del ordenador de Juan pero esa ip no era una ip pública sino una ip privada, perteneciente a la red interna de la empresa donde trabajaba Juan. Además venía otra ip, la ip del router/proxy/firewall a través del cual el ordenador de Juan se conectaba a internet.

Hackercillo malvado intentaba conectarse a la ip pública, pero esa ip no era la del ordenador de Juan sino la del router/proxy/firewall, por lo que el puerto del sub7 no estaba abierto y la conexión era imposible.

A hackercillo malvado le llegaban notificaciones del ordenador de Juan todos los días, por lo que sabía que estaba infectado, pero no podía conectarse a él.

Debido a este problema los hackercillos malvados del mundo entero solo atacaban por lo general ordenadores personales que estaban directamente conectados a internet. Las empresas y sus secretos permanecían a salvo de ataques de este tipo.

Un buen día hackercillo malvado charlaba con un compinche a través del irc y le comentó su problema, le contó que recibía notificaciones de ordenadores a los que no podía conectarse, entonces el compinche le habló de un nuevo troyano llamado ASSA*SIN* con el cual dejaría de tener ese problema.

Efectivamente, hackercillo malvado consiguió una copia del troyano ASSA*SIN* y empezó a hacer travesuras... y la cosa funcionó mejor de lo que esperaba. Hackercillo malvado ahora podía conectarse también a ordenadores de empresas resguardados tras cortafuegos, routers y proxys.

¿Como fue posible?.

Sencillo, hasta la aparición del troyano ASSA*SIN* el funcionamiento de los troyanos era así:

Hackercillo malvado debía conocer la ip pública, y se conectaba directamente a esa ip pública. Si no había ip pública no había nada que hacer.

Con ASSA*SIN* la cosa era así:

Hackercillo malvado debía tener una ip pública, y los ordenadores infectados se conectaban a él desde internet, sin importar que su ip fuera pública, que estuvieran parapetados tras un router... el ordenador infectado lanzaba una conexión hacia internet, hacía el ordenador de hackercillo malvado, que esperaba ansiosamente las conexiones.

Y ese paso fue toda una revolución en el mundo de los troyanos, ahora eran los ordenadores infectados los que salían a buscar a hackercillos malvados de todo el mundo. Estas conexiones salientes son lo que llamamos hoy conexión inversa.

Nota: es dificil asegurar cual fue el primer troyano que usó la conexión inversa, en el año 2001 tres autores de malware estaban trabajando a la vez en distintos troyanos de conexión inversa, estos fueron:

LOM, autor del ASSA*SIN*
Read101, autor del Lanfiltrator
Aphex, autor del Institution

En el año 2002 empezaron a publicar sus programas.