26 ene 2010

Mods para novatos 3

-

Estamos ya en la tercera parte de este tutorial, hemos visto un poco de historia y conocido los origenes de la modificacion de malware para evadir antivirus, hemos visto tambien como se aplica en la practica el metodo HEX y cuales son sus inconvenientes.

Ahora nos toca lo que yo considero la parte mas importante de todo esto, en este capitulo desensamblaremos el archivo infected.com y veremos por vez primera un poco de ensamblador.

Como ya señale en anteriores capitulos la unica manera de asegurarse de si un archivo es malware o no es malware es desensamblando el archivo, todo lo demas es hablar de oidas. Desensamblar software nos servira para saber exactamente cuales son todas y cada una de las instrucciones que componen el programa desensamblado.

Para entender el codigo desensamblado es necesario saber ensamblador, en este capitulo veremos nuestras primeras instrucciones y modificaremos nuestro primer programa en ensamblador.

Espero que disfruteis.

Puedes descargar el tutorial completo desde aquí.

Mods para novatos 2

Aquí esta la prometida segunda parte de este tutorial, es aun más jugosa que la anterior, espero que la disfruten.

Aquí vamos a explicar como funciona de cerca un escaner antivirus, nos valdremos para ello de 2 pequeños programas escritos para la ocasión, estos archivos vienen junto al documento que estas leyendo.

Como no me gusta que la gente libere alegremente sus virus por la Red he decidido no hacer modificaciones reales, todo será simulado, creeme aprenderás mucho más que modificando un encriptador o un troyano, o un virus.

Ademas si mostrara como modificar malware real podria meterme en un lio con la Ley, y no tengo ganas de eso. Desde hace muchos años se han venido haciendo crackmes, archivos que simulan protecciones reales, todo ello con fines didacticos. Los crackmes han permitido la enseñanza de la ingenieria inversa a traves de los años.

Aquí están los Indetectame. Por un conocimiento que no dañe a nadie. Podriamos decir que son una subespecie de los crackmes, en lugar de buscar seriales buscaremos firmas y las modificaremos.

Los indetectame no son más que pequeños archivos que contienen la firma de un virus, están orientados al aprendizaje del ensamblador y de herramientas de depuración. Acompañandolos va un archivo que simula ser un antivirus, este programa simplemente analiza el archivo en busca de una cadena o firma y si la encuentra da aviso de virus. Yo os enseñaré como resolver este pequeño juego.

Pueden descargar el tutorial completo en pdf desde aquí (incluye los archivos necesarios).

25 ene 2010

Historia de los troyanos 2

-

Continuamos con nuestra pequeña excursión al pasado, hoy les voy a hablar del Back Orifice (BO), uno de los troyanos más famosos de todos los tiempos.

Back Orifice fue hecho público por primera vez en la DEFCON 6, el 1 de agosto de 1998 (por aquel entonces NetBus ya había sido hecho público), su autor se llama Sir Dystic y es un miembro del grupo Cult of the Death Cow (cDc).

Cliente de Back Orifice:


Sir Dystic:


El nombre del programa es una clara burla al programa de Microsoft BackOffice Server.

Este troyano se usaba principalmente para subir a través de el una copia de NetBus, ya que NetBus ofrecía un control mayor sobre las computadoras infectadas.

Back Orifice solo funcionaba en Win95-98.

Un año despues, en la DEFCON 7 se hizo pública la versión Back Orifice 2000 (2k), reescrita por Dildog (Christien Rioux). Actualmente es un proyecto de codigo abierto que funciona tambien en la arquitectura NT, la página oficial es:
http://bo2k.sourceforge.net/

BO2K:


Back Orifice fue tan popular en su tiempo que surgieron herramientas para eliminarlo del sistema operativo, AntiBo, AntiGEN, BOeliminator, etc, son algunas de estas herramientas.

Tambien existieron multiples programas, plugins para el back orifice, por ejemplo 2 notificadores muy famosos usados junto a BO fueron el SpeakEasy y el ButtTrumpet, el primero comunicaba la ip por IRC y el segundo por email. Otros plugins fueron el SaranWrap y el SilkRope, ambos servían para unir el servidor del BO a cualquier otro ejecutable. En aquellos días era muy común distribuir el cliente del BO con el servidor adherido mediante cualquiera de los 2 programas mencionados, infectando así a aquellos que pretendían infectar a otros, o a gente que pensaba estar bajandose otro programa (por ejemplo un reproductor de musica).

Existió tambien el BOFREEZE, que simulaba un servidor del BO, de manera que cuando alguien trataba de conectarse con el cliente del BO el BOFREEZE congelaba el cliente. Tambien mencionaremos el BOSPY que simulaba un servidor del BO, mandaba información falsa al cliente del BO e incluso permitía mandarle mesnajes al cliente.

Existieron muchos más plugins, pero estos fueron los más extendidos en aquellos tiempos.

22 ene 2010

Historia de los troyanos 1

Hace tiempo que tengo ganas de contar de manera resumida la historia de los troyanos, respondiendo a preguntas como ¿cual fue el primer troyano?.

Generalmente los jóvenes llegan a Internet sin conocer la historia, es normal, todo se va aprendiendo poco a poco. Llegan a los foros de hacking buscando la herramienta hacker por excelencia, el troyano. Han oido rumores, historias, de grandes "hackeos" realizados con estos programas, otros simplemente buscan la manera facil de robar algunas contraseñas, y otros han oido campanas pero no saben donde.

Como todo en este mundo, y más en la informática, los troyanos han evolucionado y han cambiado mucho, conceptos ya no tan nuevos como no-ip, conexión inversa,cripter,mod, han sustituido a los viejos conceptos de notificación, conexión directa,etc.

Lo malo de estos avances es que el pasado cae en el olvido y se pierde el conocimiento de los pioneros, aquellos que abrieron el camino a todos los que vinimos detrás.

Por estas razones quería exponer ese trozo de historia que ya se pierde en el tiempo.

NetBus fue el primer troyano público de la historia, almenos el primero que adquirió relevancia y popularidad entre los usuarios y administradores del sistema operativo más extendido de la tierra, Microsoft.

NetBus fué programado en Delphi por Carl-Fredrik Neikter, programador de origen sueco. La primera versión pública vio la luz en marzo de 1998, era la versión 1.20, por lo que existían ya versiones anteriores que han caido en el olvido.



NetBus funcionaba de manera que pasaba totalmente inadvertido para la victima, y el atacante con el cliente podía administrar remotamente los ordenadores donde estuviera instalado el servidor de NetBus.

NetBus se hizo muy popular en poco tiempo, su autor fue sacando nuevas versiones mejorando la estabilidad del programa y evadiendo la detección de los antivirus.

Aquí tienen una traducción de una entrevista realizada por Berislav Kucan en 1998 al autor del NetBus Carl-Fredrik Neikter.


Carl-Fredrik Neikter, alias CF, se hizo popular por su programa NetBus. NetBus es un programa de administración remota con el que se puede controlar el ordenador donde se haya instalado el servidor (patch.exe). NetBus tiene muchas caracteristicas que permiten jugar con el ordenador infectado. Ayer (14/11/1998) CF anunció que NetBus v.1.70 está fuera.

¿Eres miembro de algún grupo de hackers o quieres comentar algo al respecto?

No. Tal vez lo preguntes porque en el acerca de que viene en el programa pone "miembro de hackplanet". Sí, por un tiempo fui miembro pero quise seguir mi propio camino.

¿Cuales son tus habilidades programando, qué herramientas usas y qué otras cosas has programado además de NetBus?

NetBus lo escribí en Delphi, es la herramienta que uso generalmente para programar en Windows. He escrito un montón de programas, por ejemplo el QUICKSMS, que envía mensajes sms a telefonos móviles usando las redes gsm.

¿Como se te ocurrió la idea del NetBus?

Lo hice para que la gente se divirtiese con sus amigos. Y tambien para los administradores, para que pudieran administrar un ordenador a distancia.

¿Cuanto te llevó hacerlo?

No se, quizás unas pocas semanas.

¿Pensabas que NetBus llegaría a ser tan popular?

No, la buena respuesta y la cantidad de mensajes que recibo cada día es abrumadora. Me sorprende que nadie hubiera escrito antes un programa así. Almenos yo no conozco ningún programa anterior con las mismas características.

¿Esta inspirado NetBus en algún otro programa?

No. En absoluto.

¿Vas a publicar nuevas versiones?

Ayer fue publicada una nueva versión.

Por ultimo,¿cuales son tus proyectos futuros?

Si tengo tiempo voy a escribir una versión de NetBus más potente.


Sin embargo FC no sospechaba lo que se estaba haciendo con su programa, se usaba no solo para gastar bromas sino tambien para cometer crimenes a través de Internet. Principalmente se usaba para obtener información privada de forma ilegal.

En 1999 un estudiante de Derecho de la Universidad de Lund usaba los equipos informáticos de su Universidad para realizar una tesis doctoral, en el equipo informático que usaba se encontraron más de 3000 imágenes de pornografía infantil. El estudiante fue expulsado, su nombre fue dado a conocer en los medios de comunicación y tuvo que huir de la ciudad en la que vivía y sufrió grandes trastornos psicológicos. 5 años despues el Tribunal que le juzgaba le absolvió del cargo de posesión de pornografía infantil al probarse que alguien había instalado NetBus en su ordenador.

CF empezó a darse cuenta de que su programa no se usaba para gastar bromas sino para cometer crimenes impunemente. Para lavar su imagen y su reputación decidió cambiar de rumbo respecto a NetBus. En febrero de 1999 hizo su programa shareware, y eliminó la posibilidad de que funcionase oculto (existen versiones modificadas por terceros que funcionan ocultas). Intentó hacer una herramienta más seria y profesional, intentando apartarla de los script kiddies.

Lo consiguió, pronto NetBus pasó al olvido.

El programa llegó a ser tan popular que llegó a escribirse (por parte de terceros) un programa llamado NetBuster, que simulaba un servidor de NetBus, y en el momento en que un cliente se conectaba hacia "romper" el cliente. También se publicó un programa llamado NetBusterBuster, que "rompia" los falsos servidores de NetBus. Algo así como un exploit.


Y eso es todo por hoy. En el proximo capitulo le toca al Back Orifice.

Mods para novatos 1

Hola, soy masterpassword y he escrito este tutorial para toda la gente que está empezando en esto de modificar malware, si ya tienes experiencia en ingeniería inversa este tutorial definitivamente NO ES PARA TI.

No quiero que pequeñas alimañas propaguen estúpidos troyanos por el mundo, si lo que buscas es una manera facilona de conseguir victimas este tutorial definitivamente NO ES PARA TI.

Si llevas un tiempo rompiendote la cabeza con el método Rit,Hex,Meepa,Xor… definitivamente ESTE ES TU TUTORIAL.

Aquí voy a enseñar los fundamentos de la tecnica de modificación, es decir, voy a explicar la técnica en su esencia, en lo más básico y elemental. Este será el primer escalón para que puedas pisar firme y avanzar.

He dividido el tutorial en 2 partes, una parte teorica y otra práctica, esto que estás leyendo es la parte teorica del documento, la parte practica saldrá dentro de un par de semanas (ya casi está terminada mientras ultimo la edición de este documento), espero que disfruteis y sobre todo espero que entendais que el aprendizaje solo puede ser gradual, con el siguiente ejemplo lo entendereis mejor: “en las artes marciales hay distintos cinturones, estos cinturones indican el nivel de conocimiento del arte marcial, si vosotros teneis un cinturón blanco, es decir, acabais de apuntaros a las clases de artes marciales, no vais a pelear con alguien que tiene cinturon negro porque os dejaría hechos puré.”

Dicho esto, empezamos.

“¿ A quien va Usted a creer ?, ¿ a mi ?, ¿ o a sus propios ojos ?”

Groucho Marx


Las mods (modificaciones) no son otra cosa que codigo modificado, hacer una mod es simplemente modificar un programa. Esto se lleva haciendo desde que existen los programas (para añadirles funcionalidades o para quitarselas).

Como seguramente sabreis un programa no es más que un conjunto de instrucciones.

Cuando un programador escribe un programa puede distribuirlo despues de 2 formas, una es distribuyendo el codigo fuente y otra es distribuyendo el código ya compilado y enlazado. Esto nos lleva a que existen 2 tipos de modificaciones, las que se hacen teniendo el código fuente del programa y las que se hacen sin el código fuente del programa.

Las modificaciones de programas teniendo el código fuente de los mismos no seran objeto de este tutorial. Podeis documentaros sobre este tema leyendo libros de programación.

Aquí trataremos las modificaciones a programas distribuidos por el programador compilados y enlazados. ¿Y esto de compilados y enlazados que carajo significa? Pues veras, cuando un programador escribe un programa tiene que pasar ese código a otro tipo de codigo que el ordenador pueda entender, el codigo fuente del programa solo lo entendemos los humanos. Mediante el proceso de compilado y enlazado transformamos ese código fuente en código que la máquina puede comprender y ejecutar.

El principal problema de un programa del que no se tiene el código fuente es que su modificación requiere el uso de la ingeniería inversa ya que podriamos decir que el programa está minimamente protegido. Si tuvieramos el código fuente del programa solamente deberíamos, conociendo el lenguaje de programación en el que está escrito, escribir o borrar codigo para hacer la modificación, pero cuando el programa está compilado y enlazado la cosa se complica pues al conocimiento de algun lenguaje de programacion deberemos sumar el conocimiento sobre archivos ejecutables.

En windows los archivos ya compilados y enlazados tienen por regla general extensión EXE, tambien se les conoce por el nombre de ejecutables. Su estudio daria para varios libros, con el tiempo llegaras a saber muchas cosas sobre este tipo de archivos, pero creeme, nunca lo sabras todo.

La ingeniería inversa es un proceso mediante el cual se analiza un programa del que no se tiene el código fuente con la finalidad de modificar el código o generar código propio que haga las mismas funciones que el programa analizado.

Bien, hacer modificaciones no es más que hacer ingeniería inversa, aquí trataremos de la ingeniería inversa orientada a la evasión de antivirus.

A nosotros no nos interesa modificar un juego para obtener vidas extras, o modificar un programa para obtener una licencia de uso… La cuestión es que sabiendo modificar programas puedes hacer casi cualquier cosa con ellos. Tambien he de advertirte del hecho de que modificar programas puede ser ilegal, pero no te preocupes, puedes enseñarle este documento a tus padres o a tu esposa o novia ,o a tu marido ;)

Todo lo que haremos aquí será legal, y además será ético, porque estamos cansados de respirar falta de etica y justicia en buena parte de internet.

Decía que modificar programas puede ser ilegal, y efectivamente, el programador podría haber prohibido la modificación de su programa. Podriamos incurrir en un delito si modificamos un programa sin permiso de su autor, esto no es una broma.

Además aquí tratamos la modificación de malware, el uso de malware y su mera tenencia pueden ser constitutivos de delito, no estamos aquí para molestar a nadie, al contrario, queremos conocer como funcionan las cosas y para eso no hace falta saltarse la ley ni abandonar la ética.

Es dificil determinar cuando se comenzó a modificar software para evadir antivirus, las fechas que doy a continuación son aproximadas:

Los virus para PC empezaron a hacerse populares alrededor de 1986, se suele decir que Brain fue el primer virus para ordenadores domésticos que se hizo conocido.

En 1987-1988 el virus brain empezó a hacerse notar y unas cuantas empresas que se dedicaban a la recuperación de datos empezaron a recibir discos infectados.

Estas empresas empezaron creando vacunas, es decir, programas que detectaban y en algunos casos eliminaban un virus específico. Esto se hizo necesario porque cuando una empresa con 1000 ordenadores se infectaba el técnico no tenía tiempo para ir desinfectando manualmente cada máquina.

Durante 1988 empezó a fundarse la industria antivirus, personajes como Alan Solomon, Fridirik Skulason, John Mcaffe (este último llegó alrededor de 1990), Eugene Kaspersky (1991), todos ellos empiezan a interesarse por los virus informáticos y cada cual funda sus compañias, y empiezan a comercializar sus productos, programas que automatizan la tarea de encontrar y eliminar virus de los PC. Estos programas empiezan a incorporar lo que se conoce como escaner, un programa que analizaba los ficheros en busca de un patrón previamente escogido y guardado en una base de datos. Este patrón es lo que se conoce como firma, si el escaner reconocía el patrón en un archivo entonces lo catalogaba como virus.

Estos programas se hicieron imprescindibles, solo hay que ver como están las cosas en el año 2009, y de momento la industria antivirus sigue dando muchos beneficios.

En mi opinion solamente microsoft y el software libre podrán hacerle frente a esta industria en el futuro. En el año 2003 el gusano blaster propició que microsoft lanzara el Windows Blaster Worm Removal Tool, que no es mas que una vacuna contra el blaster. En el 2005 microsoft publica la Microsoft Malicious Software Removal, un producto que si bien es más generalista que su predecesor sigue siendo un lote de vacunas. Pero es que microsoft lanzó tambien el windows defender, una herramienta más completa (incluida ya en vista) que sirve para detectar y remover spyware. En el 2006 microsoft publico una beta de Live OneCare, la cual no tiene nada que envidiar a los programas antivirus modernos. Si microsoft continua incursionando en el terreno y además va incluyendo sus programas de serie con su sistema operativo la industria de los antivirus debería, cuanto menos, tomarse en serio a microsoft.

Por el lado del software libre tenemos a ClamAV que salió en el 2001 y desde entonces su numero de usuarios no ha parado de crecer.

Ahora, despues de esta digresión, volvamos al pasado.

En 1991 dos escritores de virus (Hellraiser y Bionic Slasher) editan el primer número de un ezine llamado 40hex, un servidor a traducido/adaptado un artículo del primer número de tan mitico ezine ya que tratan nuestro tema, las mods. Puedo equivocarme pero creo que es el primer texto colgado en la red que trata este tema.

Se que varias cosas del texto os sonarán a chino, leerlo hasta el final, lo importante es que os quedeis con el concepto. Este antiguo texto resume al completo la filosofia de las modificaciones (es mas bonito mutaciones).

Vamos a ello:
“Como modificar un virus para que el escaner no lo atrape o como crear nuevas cepas de un virus”

El problema con la mayoría de los virus es que este imbecil que vive en California, llamado John Mcaffe, mete sus codiciosas manos en ellos y los convierte en dolares para el. Este chico, John, es el responsable de que alla más de 500 virus ahí fuera y no albergo ninguna duda respecto a que él es el autor de almenos 10 de ellos.

Lo mejor que podemos hacerle a los que dependen de Mcaffe es esto.

Digamos que tienes por ahí algún virus viejo, como el Armstand o como el Jerusalem. La mayoría de escaners antivirus deberían detectar estos 2 virus porque ya tienen tiempo. Bien he aquí un metodo rápido para que el escaner no detecte el virus.

Las herramientas necesarias son:

Norton utilites
debug


Ahora esto es lo que tienes que hacer.

Paso A
Haz un archivo objetivo como este con el debug.
Copia el siguiente codigo en tu editor de texto y guardalo con el nombre de SAMPLE.USR
n sample.com
a
int 20

rcx
2
w
q

Luego usa debug para hacer el archivo SAMPLE.COM ejecutando este comando: DEBUG < SAMPLE.USR

Esto creará un fichero de 2 bytes llamado SAMPLE.COM

Paso B
Infecta este archivo con el virus y haz luego una copia del mismo y guardalo en lugar seguro.

Paso C
Arranca DISKEDIT de Norton, vale tambien un Editor hexadecimal. Abre el fichero infectado con cualquiera de los programas anteriores. Situate en la mitad del fichero y selecciona un bloque desde esta mitad hasta el final, y llena todo el bloque de ceros. Salva los cambios y vete al DOS. Escanea el fichero y si este aun detecta el virus es porque tu no has borrado la cadena que busca el escaner. ¿Lo pillas?.

Como ves todo lo que hace el escaner es buscar una cadena en los archivos que analiza y si encuentra esa cadena entonces dice que ha encontrado un virus. Por ejemplo si el escaner está mirando si el fichero está infetado con el virus Cascade buscará esta cadena:
EB1DAD1273D1FF121F

Todo lo que tienes que hacer es localizar esa cadena y modificarla.

Ten esto en mente, el 75% de las veces el escaner busca esta cadena en los primeros 150 bytes del fichero.

Muy bien, has hecho la busqueda y has encontrado la siguiente cadena:
B8 92 19 B7 21 CD

Esto es un ejemplo, vamos a DEBUG y hacemos lo siguiente:

DEBUG
E 0100 b8 92 19 b7 21 cd ----- esta es la cadena que encontraste
Luego escribe
u
Este comando desensamblará nuestra cadena y en este caso nos devolverá:
mov ax,1992h
mov bx,21h
int 21h

Ahora esto es lo que tienes que hacer, pero no olvides lo siguiente:

HAY QUE SABER ENSAMBLADOR PARA HACER ESTO BIEN

Con el debuger modificamos el código dejandolo así:

mov bh,21h
mov ax,1992h
int 21h

Solo intercambiamos el orden de las instrucciones mov

¿Lo pillas?

No has alterado el funcionamiento del programa (si sabes lo que estas haciendo claro) pero has cambiado esa string que detectaba el escaner.

Salva el fichero y escanealo, si el escaner no lo detecta FELICIDADES, trabajo terminado.

Una advertencia, este método solo sirve con virus no encriptados o con el mecanismo de encriptación del virus.

Con esto en mente, diviertete.


Un texto realmente corto y conciso, no te preocupes si no has entendido los trozos de código, lo que debe quedarte claro es que los virus no son más que código, y que los antivirus añaden un trocito de ese código a su base de datos y cuando estos buscan un virus lo que están haciendo es buscar ese trocito de código en los ficheros, si encuentran ese trocito de código entonces salta la alarma. No buscan el virus entero, buscan solamente un trocito, por eso modificando ese trocito evitamos que encuentren el virus.

Si quieres hacer mods es NECESARIO SABER ENSAMBLADOR, aunque en este tutorial iré enseñando algunas cosas deberías cojerte algun tutorial de ensamblador y leertelo, tenerlo a mano siempre que te pongas a hacer una mod es buena idea.

Cuanto mayor sea tu conocimiento de ensamblador mejores serán tus mods, cuando yo empecé simplemente cambiaba los valores aleatoriamente y así muchos programas dejaban de funcionar. Poco a poco podrás ir avanzando y llegarás a hacer cosas increibles, ya lo veras.

Solo me resta exponeros una serie de notas finales y despedirme, esto se acaba amigos.

Si sois perspicaces habreis notado que existe una guerra abierta entre aquellos que escriben malware (virus,troyanos,keyloggers…) y aquellos que escriben antivirus. Y en el medio estamos todos los demas. Ademas los distintos antivirus compiten entre ellos por una posicion en el mercado (excepto clamav que es software libre y por tanto su presencia en el mercado es totalmente especial).

Entre las filas de los que escriben malware hay de todo, incluso mafias organizadas que tambien compiten en el mercado por un buen puñado de euros. Pero la mayoria de los que escriben malware no son empresas, su organización es diferente porque no reciben un salario a cambio. Es cierto que algunos autores de malware venden sus programas, pero no es comparable su volumen de ventas con el volumen de ventas de un antivirus.

Recuerda que casi nadie consume malware pero casi todo el mundo tiene antivirus.

Esta guerra lleva librandose desde 1988, hace ya mas de 20 años, las cosas entonces eran de otra manera. Hoy los antivirus se han perfeccionado mucho, cuentan con nuevos metodos de deteccion ademas del metodo de firmas. Paradojicamente el numero de programas detectados ha crecido mucho desde aquellos tiempos y los antivirus aun llevando ventaja frente a la mayoria del malware que se produce se han convertido en monstruosos programas que se apoderan de los recursos del ordenador. Resumiendo, la industria antivirus se ha visto obligada a hacer sus herramientas mas pesadas y acaparadoras de recursos y aun asi siguen vendiendo porque la gente cree que sus productos son necesarios. En realidad existe malware que pasa desapercibido y, aunque hoy en dia los antivirus cuentan con tecnicas heuristicas de deteccion mediante las cuales pretenden detectar variaciones de virus ya conocidos e incluso virus desconocidos (es decir, todo aquel malware que no esta en su base de datos y del cual no tienen una firma), siguen produciendose especimenes que no son detectados y siguen produciendose infecciones en masa.

Los virus empezaron la guerra, y la empezaron con ventaja, no todo el mundo podia coger y desensamblar un virus para analizarlo y eliminarlo, pero llego la industria antivirus y empezaron a desensamblar virus, observaron como funcionaban, y los clasificaron. Ahora los antivirus llevan cierta ventaja..

Los usuarios normales ignoran lo que es y lo que hace el malware, ellos hablan del malware sin haber desensamblado nunca una muestra, asi que es facil meterles el miedo en el cuerpo y venderles un producto que les ayudara a eliminar el malware. Ellos solo veran ventanas y botones, y lo que es mas importante, ellos veran si su antivirus no detecta una muestra y otro antivirus si la detecta, si eso ocurre, se cambiaran de antivirus ya que ellos buscan seguridad. Nosotros aprenderemos que la unica manera de asegurarse es desensamblando el malware y viendo que hace.

Los antivirus fallan, no son perfectos ni mucho menos. Desensamblando antivirus y haciendoles lo que ellos les hacen a los virus (estudiarlos) se llega a comprender como funciona un antivirus y por tanto como “detectarlo y eliminarlo”.

Cuando los antivirus dicen que detectan 10 virus nuevos lo que quieren decir es que detectan 7 modificaciones del troyano bifrost, 2 modificaciones del encriptador X y un nuevo virus.

Ademas, piensen ustedes como de efectivos seran los antivirus cuando detectan un troyano tan extendido como bifrost y luego un chico de 15 años modifica un par de bytes del troyano y ya no es detectado hasta que una muestra del mismo cae en las manos de los que desarrollan el antivirus.

Los antivirus no evolucionan si los virus no evolucionan, el malware espolea a los antivirus para que se hagan mejores y no se duerman en los laureles. Es por esto que los trabajadores de las compañias antivirus visitan con asiduidad foros y comunidades donde se intercambia malware, para asi obtener muestras con las que hacer nuevas actualizaciones de sus bases de datos y luego vender estas actualizaciones a sus usuarios. Tambien servicios como virus total donde uno sube sus muestras para analizar sirven para recolectar muestras y aumentar la base de datos de virus detectados, y asi vender mas actualizaciones.

Obviamente aquellos que desarrollan antivirus nunca van a admitir esto, si son ustedes observadores se daran cuenta de que en los foros de virus no hay ninguna persona que afirme abiertamente trabajar para una compañía antivirus, mientras que hay cientos de personas dejando alli su software malicicoso con todo tipo de instrucciones. Los que trabajan en empresas antivirus son silenciosos, tienen prohibido decir que trabajan alli en estos foros (porque se les impediria acceder a las muestras), y nunca van a reconocer publicamente que su empresa en realidad vive del miedo que tienen los usuarios normales a que su ordenador se llene de virus.

Por tanto no solo es necesario que aprendais ensamblador sino que será necesario que estudies a fondo como trabaja cada antivirus en cuestion, si queremos modificar un programa para dejarlo indetectable a un antivirus debemos estudiar como funciona ese antivirus.

Me estoy dejando muchas cosas sin explicar, pero es que este manual es para cinturones blancos. Los antivirus en la actualidad no solo emplean el método de las firmas en el proceso de detección de programas maliciosos, pero el método de las firmas sigue siendo empleado por los antivirus por lo que es funcional, así que cuidado con lo que modificais.

Y llegamos al final de la primera parte, espero que haya sido de provecho. En la segunda parte os presentaré un “virus” y miraremos sus tripas, luego lo haremos indetectable a un antivirus muy especial. Antes era necesario un poco de historia.

Saludos!

Mods para novatos

En febrero del 2009 publiqué 3 manuales de introducción a la modificación de malware para evadir antivirus, lo publiqué en el foro de Indetectables, una comunidad bastante grande (la más grande en español) que trata todo tipo de temas relacionados con el malware.

Creo que estos 3 manuales son bastante asequibles en cuanto a los conocimientos que se requieren para seguirlos, y no explican de manera directa ningun truco realmente peligroso. Mi intención era, y sigue siendo, enseñar a los que empiezan el por qué de las cosas. En estos manuales se da un buen repaso teorico y practico al sistema de firmas y a la modificación de las mismas empleando un editor hexadecimal, creo que es el manual de iniciación más completo que existe en español.

He decidido replublicarlo, aun no se si añadiré mas temas o no, de todos modos voy a ir publicando los capitulos que ya existen y al final los uniré todos en un pdf y lo pondré en descarga directa.

Espero que disfruten y aprendan.

21 ene 2010

Parche Sub7 Defcon

Como ya les había anunciado he escrito un parche para todos aquellos que no han podido realizar el parcheo a mano, no todos tenemos los mismos conocimientos, y no quisiera que nadie pudiera perderse la ocasión de probar el Sub7 Defcon en Windows XP.



Usar este parche es muy sencillo, pero debo advertirles que antes de usarlo deben descomprimir el servidor de Sub7 utilizando la herramienta UPX.

Una vez hayan descomprimido el servidor ya pueden proceder a parchear el archivo.



En rojo he remarcado el botón que deben presionar para cargar el servidor en el parcheador, una vez cargado solamente pulsen el botón que dice "Parchear". Si todo ha ido bien tienen su servidor funcional.

Una vez parcheado y antes de probarlo recuerden editar el servidor con el Editserver. Tambien pueden volver a comprimir el archivo con UPX, la orden que deben darle a UPX es upx -9 server.exe, pueden usar en lugar de UPX otro compresor.

Pueden descargar el parche de aqui.

20 ene 2010

Modificando Sub7 DEFCON 8 (parte 3)

Ya tenemos el servidor descomprimido, ahora pesa casi 1 mega. Al estar descomprimido tenemos acceso a su estructura real y podemos empezar a realizar modificaciones.

Ese paso de desempaquetar-descomprimir el archivo se aplica a todo archivo que pretendamos modificar.

Bien, ejecutemos ahora nuestro servidor (ejecuta sin miedo que no funciona) y veamos el error que nos muestra:



Parece que el servidor tiene problemas al tratar de ejecutar una función llamada RegisterServiceProcess que debería estar en la libreria Kernel32.dll, debería estar si usamos Windows 95,98,2000 pero en XP no está. Por eso da un error y se cierra sin ejecutarse el resto del programa.

Abriremos ahora nuestro servidor con un editor hexadecimal (no hexagesimal como se lee en algunos foros) y podremos ver un listado de los bytes de nuestro archivo tanto en hexadecimal como en ASCII.

Buscaremos dentro de nuestro ejecutable la palabra RegisterServiceProcess:







Una vez hayamos localizado la frase en nuestro ejecutable pasaremos a modificarla, como verán ocupa 16 bytes:



Sustituiremos esta función por otra que debe existir en la librería Kernel32.dll, por ejemplo GetVersion. Para ello nos situamos antes de la primera letra de la palabra RegisterServiceProcess en la columna donde se muestran los datos en ASCII. Vean en la siguiente imagen donde coloco el cursor:



Y una vez situados ahí empezamos a escribir la nueva palabra, GetVersion. Vean como debe quedar:



Como verán la nueva palabra ocupa menos bytes, por lo que tendremos que rellenar con ceros el espacio que nos falta, para ello ahora nos situaremos en la columna donde se muestran los bytes en hexadecimal y empezaremos a escribir los ceros:



Una vez que hemos realizado la modificación salvamos los cambios y realizamos la misma búsqueda para comprobar si quedan mas RegisterServiceProcess en el ejecutable para modificarlos todos. Pero no encontraremos más. Probemos ahora nuestro ejecutable modificado. Obtendremos un nuevo error:



El nuevo error hace referencia a otra función, WNetEnumCachedPasswords, que se debería encontrar en la librería mpr.dll, pero en XP esta función no podemos encontrarla en esta librería. Así que repetimos el proceso exactamente igual, buscamos tanta veces como haga falta la palabra WNetCachedPasswords y la sustituimos por WNetClearConnections.



Y sustituimos por WNetClearConnections:



Recuerden que debemos rellenar con ceros para igualar la longitud.

Repetimos el proceso cuantas veces haga falta (una más en realidad) y salvamos los cambios.

Aunque no se lo crean ya tenemos un servidor que funciona en Windows XP, antes de volver a ejecutarlo despues de modificado para comprobar que funciona, les recomiendo que usen el editserver para configurar el servidor pues por defecto abrirá un puerto aleatorio, usará un nombre aleatorio y un método de inicio dificil de eliminar.

Una vez configurado según sus preferencias podrán ejecutarlo sin miedo para comprobar que efectivamente funciona.

Este método es aplicable a muchos programas y para conseguir cosas muy distintas a hacer funcionar software viejo en sistemas operativos nuevos. Espero que hayan aprendido algo.

En el proximo capitulo publicaré un parche para los que no han sido lo suficientemente mañosos como para modificarlo a mano.

19 ene 2010

Modificando Sub7 Defcon (parte 2)

Continuamos el tutorial, para ello tenemos que descargar el troyano Sub7 2.1.4 Defcon a nuestro ordenador, recuerden que los antivirus detectan esta versión por lo que tendrán que desactivarlo para poder manipular el programa.

Una vez desactivado el antivirus procedan a descargar la versión correcta del Sub7, y descompriman el archivo, esto es lo que verán:



El editserver sirve para configurar el servidor a nuestro gusto, tiene muchas opciones algunas de las cuales están ya obsoletas, pero sigue siendo bastante util este troyano.

El cliente sirve para conectarse al servidor y mandarle ordenes, esta versión del cliente puede dar algún fallo al cargarse en Windows XP, aun así el cliente funcionará tras aceptar el mensaje de error que da. Pueden evitar este error si antes de ejecutarlo van al menu de propiedades del archivo y seleccionan compatibilidad con Windows 98. Tambien pueden usar el cliente de la versión 2.1.5 Legends que es totalmente funcional en Windows XP.

El servidor es el programa malvado que infecta la computadora, el programa que modificaremos para que funcione en Windows XP sin problemas.

La libreria ICQmapi.dll es un archivo necesario para el funcionamiento del cliente.

Y por último un archivo de texto, el típico readme.

Bien, les aconsejo que para evitar los errores del cliente modifiquen las propiedades del archivo para ejecutarlo con compatibilidad con Windows 98.

Vamos al turrón, el archivo que nos interesa realmente es el servidor, este servidor está comprimido con el popular UPX, un programa que reduce el tamaño de los ejecutables. Para poder modificarlo debemos descomprimirlo antes, esto sirve para todo archivo que tratemos de modificar en el futuro, debemos siempre averiguar si está comprimido y descomprimirlo para poder manipularlo. Esto es así porque los compresores o empaquetadores modifican el ejecutable. Por lo tanto ese servidor que tenemos ahí no tiene la estructura original, para que recupere su estructura original debemos descomprimirlo.

Algunos de ustedes se preguntarán como puede saberse si un programa tiene la estructura intacta o está comprimido, empaquetado o encriptado. Bien, pueden usar un programa llamado PEID, el cual nos dará esta necesaria información.

Abrimos el PEID y esto es lo que vemos:



Para cargar un archivo en el PEID solo pulsen el botón que aparece remarcado en rojo en la captura, se les abrirá un cuadro de dialogo en el cual seleccionan el servidor del subseven, el archivo server.exe, y el peid les mostrará la información que buscamos:



En rojo he remarcado la información que necesitamos. PEID nos informa que el ejecutable está comprimido con UPX y está escrito en Delphi. Con esta información es suficiente, descargamos la última versión de UPX de su página oficial para descomprimir el archivo.

UPX es una herramienta de consola (existen algunas interfaces por internet, pero no son oficiales), por lo tanto debemos ejecutar una consola (cmd) y usar el UPX desde ella. Abren la consola y se van al directorio donde tengan UPX, copian el server.exe al mismo directorio que UPX y ejecutan el siguiente comando: upx -d server.exe



Una vez que UPX ha realizado su trabajo tendremos un servidor descomprimido, ha pasado de pesar 300 kb a pesar casi 1 mb. Ahora tenemos el fichero con su estructura original. Sobre ese fichero descomprimido efectuaremos todas las modificaciones.

Continuará...

18 ene 2010

Modificando Sub7 DEFCON 8

La versión 2.1.4 DEFCON 8 NO funciona en Windows XP por defecto, pero puede modificarse para que funcione bien en este sistema operativo. Mobman publicó esta versión para la celebración de la DEFCON 8, de ahí su nombre en clave. La DEFCON es una convención anual de hackers que se celebra en Las Vegas (EEUU).

Esta versión del Sub7 vió la luz en Julio del 2000, y como ya he dicho no funciona en Windows XP. En aquellos días XP aun no existía, fue en octubre del 2001 cuando XP se hizo público, empezando a ser usado masivamente y a reemplazar a los viejos sistemas Windows 2000 y Windows 98. Windows XP se convirtió en poco tiempo en un sistema operativo muy extendido, y los que usaban el Sub7 se las ingeniaron para que su "querido" troyano funcionase en Windows XP, almenos hasta que mobman programase una nueva versión compatible. Esta nueva versión compatible no vio la luz hasta el año 2003, fue una edición de aniversario con el nombre en clave de Legends.

Se rumorea que pronto (febrero de este año) se hará pública una nueva versión compatible con Vista y Seven.

Bien, en este mini tutorial les explicaré paso a paso como modificar el servidor de la versión 2.1.4 Defcon para que funcione en Windows XP, además publicaré un parche para que aquellos que no son muy mañosos puedan modificar su servidor facilmente.

De momento solo comentaros que necesitaremos un editor hexadecimal, y el programa UPX.

En la proxima entrada ya expondré el tutorial completo explicandolo paso a paso, aquí solo esbozo lo que vamos a hacer.

Vereis, el servidor de la versión Defcon da 2 errores al intentar importar un par de funciones de un par de librerias, estas librerías son mpr.dll y kernel32.dll. El problema está en que aunque esas librerías existen en Windows XP ya no contienen las funciones que trata de importar el servidor.

De manera sencilla, hay un par de funciones en esas librerías que son usadas por el servidor, pero esas funciones solo existen en versiones anteriores a Windows XP, por eso cuando el servidor las trata de importar de dichas librerías da error y no funciona.

Cambiaremos con ayuda del editor hexadecimal las llamadas a esas funciones inexistentes en Windows XP por otras que sí existan, aunque perderemos un par de funcionalidades del servidor lo dejaremos funcional. Estas funciones en realidad no son muy útiles, así que no se pierde nada.

Una vez cambiadas habremos conseguido que esta vieja versión del Sub7 siga funcionando. Más información en el proximo capítulo.

Descarga todas las versiones de Sub7

Aquí os dejo la dirección de mi almacen de archivos, en dicho almacen podeis encontrar todas las versiones de Sub7 publicadas hasta la fecha. Os recuerdo que solo la version 2.1.5 Legends funciona en Windows XP. Se rumorea que en febrero de este nuevo año 2010 se hará pública una nueva versión.





Aquí arriba tenemos una captura de la primera versión del Sub7.



Esta captura de arriba muestra la versión 1.6, cuya interface es algo más evolucionada.





Y arriba ya la interface definitiva que popularizó a este legendario troyano.

Puede descargar todas las versiones desde aquí:

http://sites.google.com/site/subsevenlegends/

Bienvenidos

En este espacio podrán encontrar información sobre malware, y en especial sobre el troyano Sub7, toda una leyenda ya en la historia de los troyanos.

No tengo un enfoque claro de lo que pretendo hacer, y no publicaré las entradas muy seguidamente.

Cualquier cosa que diga podrá ser contradecida dos frases despues, y me reservo el derecho a largarme de aqui cuando me de la gana.

Si tienes algo interesante que decir adelante.