Guía Básica sobre el Malware

Iniciado por illuminat3d, 15 Noviembre 2010, 18:00 PM

0 Miembros y 1 Visitante están viendo este tema.

illuminat3d

    Bueno ayer hice una pequeña guía explicando lo que es el malware en general un poco de historia, sus funciones básicas y algunas cositas mas..
dejo los links ya que sinceramente me dá un poco de pereza pegarlo y ordenarlo todo con BBCodes  :-[

Citar
  • Índice
  • Presentación
  • Historia
  • Porqué y cómo se programa
  • Tipos
  • Identificación
    • ¿Desde dónde llega?
    • ¿Cómo se instala en nuestro equipo?
    • ¿Cómo podemos evitarlo?
    • ¿Cómo podemos detectarlo y eliminarlo?
  • Despedida


Presentación

Bueno, antes que nada gracias por elegir este blog para informarte y guiarte sobre la [In]Seguridad Informática y el Analisis y diseño de Malware, esta guia/manual ha sido escrita por mi (shark0) con el único objetivo de informar y enseñar a la gente que todavía no está muy metida en el mundo 'underground' de la informática. Cualquier comentario, queja, o idea que quieras compartir puedes escribirme a shark0[at]hotmail.es o dejar un comentario en esta misma entrada.Espero que te sirva de mucho este documento.Aclarar que en esta guía se hablará de malware basado para el sistema operativo Windows.

Historia

CitarMalware (del inglés malicious software), también llamado badware, software malicioso o software malintencionado es un tipo de software que tiene como objetivo infiltrarse o dañar una computadora sin el consentimiento de su propietario. El término malware es muy utilizado por profesionales de la informática para referirse a una variedad de software hostil, intrusivo o molesto. El término virus informático es utilizado en muchas ocasiones para referirse a todos los tipos de malware, incluyendo los verdaderos virus.El software es considerado malware en base a las intenciones del autor a la hora de crearlo. El término malware incluye virus, gusanos, troyanos, la mayoría de los rootkits, spyware, adware intrusivo, crimeware y otros software maliciosos e indeseables.

Como todo lo relacionado con la tecnología el Malware ha avanzado mucho desde el precursor de los virus informáticos, el juego CoreWar (1959) era un juego basado en la teoría de Von Neumann y en el que el objetivo es que programas combatan entre sí tratando de ocupar toda la memoria de la máquina eliminando así a los oponentes.

En 1972 Robert Thomas Morris crea el primer virus (Creeper) era capaz de infectar máquinas IBM 360 de la red ARPANET, para eliminarlo se creó otro virus (vacuna) llamado Reaper.

En 1987 hace su aparición el virus Jerusalem o Viernes 13, que era capaz de infectar archivos .EXE y .COM. Su primera aparición fue reportada desde la Universidad Hebrea de Jerusalem y ha llegado a ser uno de los virus más famosos de la historia.

En 1999 surge el gusano Happy desarrollado por el francés Spanska que crea una nueva corriente en cuanto al desarrollo de malware que persiste hasta el día de hoy: el envío de gusanos por correo electrónico. Este gusano estaba encaminado y programado para propagarse a través del correo electrónico.

En el año 2000 hubo una infección que tuvo muchísima repercusión mediática debido a los daños ocasionados por la infección tan masiva que produjo. Fuel el gusano I Love You o LoveLetter, que, basándose en técnicas de ingeniería social infectaba a los usuarios a través del correo electrónico. Comenzaba aquí la época de grandes epidemias masivas que tuvieron su punto álgido en el 2004.

Fue en ese año cuando aparecieron gusanos como el Mydoom, el Netsky, el Sasser, o el Bagle, que alarmaron a toda la sociedad y lo que buscaban era tener la mayor repercusión y reconocimiento posible. Ese fue el año más duro de este tipo epidemias y curiosamente el último. Los creadores de malware se dieron cuenta de que sus conocimientos servirían para algo más que para tener repercusión mediática... para ganar dinero.

Fuente : Panda Security, Wikipedia

Porqué y cómo se programa

Cualquier tipo de malware es programado según los ideales que tenga el programador, el malware actualmente se programa por o para:


  • Su estudio y análisis para fortalecer la seguridad
  • Su alta demanda en el mercado negro
  • Compartirlo y 'ganar un poco de fama'
  • Uso a una baja, media o alta escala
  • La competición entre empresas

Hay gente novata que cree que el malware se programa de forma diferente a un software, el malware se programa como cualquier otro tipo de software, con cualquier lenguaje de programación y conocimiento sobre él, se puede programar.

Tipos

Existen muchos tipos de malware, y a medida de que va pasando el tiempo se van creando nuevos y más avanzados. Actualmente los más oidos en el mundo 'underground' son los siguientes:

  • Troyano : Es uno de los malwares mas usados, se basa en la conexión de un cliente y servidor oculto, ya sea por conexión directa (cliente > servidor) o conexión inversa (servidor>cliente), el cliente manda ordenes al servidor y posteriormente el servidor las ejecuta. Un troyano actualmente puede recopilar todas las funciones que se puedan imaginar (captura de pantalla, captura de camara web, propagación como un gusano, administración de archivos.. procesos.. servicios.., keylogger, etc..) es el malware mas completo que hay hoy en dia ya que reune todas las funciones de los tipos de malware en uno solo.

  • Botnet : Parecido a un troyano pero con otros ideales, el troyano se suele usar para espiar las maquinas infectadas, en cambio una botnet se suele usar para infectar un alto numero de maquinas (zombies, bots..) y usarlas para atacar a un host, con ataques como DDOS.. no suele ser raro que las companías usen esta clase de malware para quitarse de en medio a la competencia.

  • Virus : Un virus informático es un malware que tiene una función fija a ejecutar, al contrario que un troyano o una botnet que no tienen objetivo de destrucción y que se manejan por un usuario. La mayoría de virus son usados para uso destructivo.

  • Gusano : Los gusanos informáticos cumplen una función básica, que es propagarse así mismo o duplicarse, se suele propagar por canales de comunicación como la Mensajeria Instantanea, redes P2P, redes compartidas.. su función secundaria es consumir ancho de banda o dejar inestable una red.

  • Keylogger : El keylogger es otro malware espía, su función principal es la captura de teclas presionadas en el ordenador, posteriormente se enviaría un log al usuario atacante con todas las teclas capturadas y ventanas abiertas. Se usa mucho en el cibercrimen para el robo de cuentas de cualquier tipo. Aparte de la existencia de un keylogger tipo Software, existe también el keylogger tipo hardware, que tiene la forma de un pendrive.

  • Stealer : Un stealer es  un tipo de malware 'nuevo' por llamarlo de alguna forma, su función es el robo de cualquier tipo de información, mayormente cuentas de programas que necesiten un login como clientes FTPs, Mensajeria Instantánea o simplemente el robo de información. No es necesaria su instalación ya que cuando se ejecuta el stealer rapidamente captura los datos y se los envia al atacante por medio de FTP, E-MAIL o WEB, posteriormente se borra así mismo.

  • Rootkit : Es un malware que tiene una sola función, esconderse así mismo o esconder a otro tipo de malware ya sea troyano, keylogger..., hay rootkits para diferentes sistemas operativos e interactúan desde el kernel para poder tener control total sobre el sistema y así esconderse de una forma avanzada.

  • Adware : Es un malware molesto, el adware es la publicidad que sale al meterse en alguna pagina web sospechosa o por medio de alguna aplicación, su objetivo es hacer pagar al usuario un software para que quite el montón de publicidad, claramente ese software es creado por los creadores de adware y así cobrar una cantidad de dinero. También obtienen cierta información del usuario lo cual se caracteriza también como Spyware.

  • Spyware : El spyware se encarga de instalarse en el ordenador del usuario, recopila información privada y se la manda a empresas publicitarias u otras organizaciones interesadas.

  • Bootkit : Los bootkits son un tipo de hibrido entre virus~rootkit, es un malware avanzado que se instala en el sector cero (MBR) del disco duro, son muy dificiles de eliminar e invisibles, por más que formatees seguirá ahí.
  • Backdoor : Un backdoor es una puerta trasera que deja el programador en una aplicación para poder saltarse la seguridad o algoritmo que lleva, como una especie de atajo.

Aparte de estos tipos de Malware, existen herramientas paralelas para el uso de malware, aquí entran los programas que se encargan de facilitar el envío de estos y saltar cualquier tipo de obstáculo que pueda surgir en la máquina o en la desconfianza del usuario al ejecutarlo.

  • Crypter : Los crypters (Encriptadores), se encargan de ofuscar un archivo con un algoritmo para que los antivirus no puedan detectarlo, posteriormente al abrir el archivo final, el llamado 'Stub' del crypter descifra el archivo y lo ejecuta en memoria para que los antivirus no puedan detectarlo.

  • Binder : Los binders (Juntadores), se encargan de unir varios archivos en uno solo, esto facilita al atacante la ingenieria social sobre el usuario a infectar, juntando el servidor de un troyano por ejemplo con una imagen, al abrir el archivo final se ejecuta el servidor del troyano en conjunto con la imagen, haciendole creer al usuario que es una imagen de verdad.

  • Joiner : Los joiners es igual que un binder con una simple diferencia y es que tambien se encarga de cifrar los archivos para no ser detectados, es el conjunto de un binder con un crypter.

  • Spreader : Los spreaders (Propagadores), se encargan de añadir un gusano al malware seleccionado, así empezará a propagarse por los diferentes tipos de protocolos y aplicaciones.

  • Downloader : Los downloaders (Descargadores), se suelen usar cuando un malware es muy pesado por cualquier motivo, empezaron a salir cuando el protector Themida empezó a usarse para ofuscar distintos tipos de malware y en consecuencia de ello los dejaba muy pesados, los downloaders descargan un archivo alojado en un hosting y lo ejecuta silenciosamente.


- ¿Desde dónde llega?

El malware puede llegar desde cualquier sitio, cuando un sistema es inseguro puede meterse cualquiera en nuestro sistema, seguidamente explicaré cómo pueden llegar a nuestro sistema sin darnos cuenta.

  • Desde internet : Internet es una red muy amplia, el 60% de las aplicaciones que usamos comúnmente en nuestro ordenador utiliza esta gran red. Pongamos el ejemplo de que encendemos el ordenador e iniciamos sesión, el 90% de las personas después de encender el ordenador se meten a programas de comunicación y redes sociales. Nos metemos a nuestro programa de mensajería instantánea y un amigo te propone enviarte un archivo. Te fijas que te está enviando un archivo comprimido en (.rar) o (.zip), donde dentro hay un archivo ejecutable (.exe), él te dice que es una imagen (en realidad es un archivo ejecutable con el icono cambiado por un archivo de imagen), a simple vista parece una imagen, pero si tienes configurado en las opciones de carpeta poder ver la extensión te das cuenta.


Los extensiones de archivos ejecutables en Windows son : (.exe), (.com ), (.scr), (.pif).. cualquiera de estas extensiones puede ejecutar una cabecera PE. Hay muchas formas de intrusión de malware por internet :

  • Paginas webs falsas: Hay muchas paginas web con código dañino para que se descargue malware en tu pc, por ejemplo los llamados 'fakes' que son objetos falsos en la página web, un ejemplo que hacen creer al usuario de que su versión de Adobe Flash Player está desactualizada y le pide que descargue la que ofrece la pagina web.
  • Paginas webs que explotan vulnerabilidades: Cada día salen nuevas vulnerabilidades para cualquier tipo de software, los navegadores no son menos para salvarse, algunas vulnerabilidades se aprovechan de  un fallo en el navegador para que cuando un usuario entre a la pagina web se le ejecute silecionsamente y automáticamente un archivo ejecutable sin la necesidad de que el usuario interactue.

  • Redes P2P: El protocolo P2P (Peer to Peer) se encarga de compartir archivos entre ordenadores que interactuan como cliente y servidor a la misma vez, un usuario cualquiera puede poner a compartir el servidor de un troyano con un nombre falso como por ejemplo el nombre de una canción conocida y todas las personas que busquen el nombre de esa canción y se descargan ese archivo, lo ejecutarán.

  • Vulnerabilidades: Las vulnerabilidades de las aplicaciones son muy importantes en el tema de nuestra seguridad, si una persona ataca a nuestro ordenador con un lanzador de exploits como Metasploit, sabiendo que usamos una aplicación que es vulnerable a ejecución de código remoto, podrá obtener la consola de nuestro sistema, ejecutarnos cualquier archivo, listarnos los procesos, etc.. Para prevenir estos incidentes hay que tener siempre las aplicaciones que usemos actualizadas u otra aplicación paralela que cumpla con la misma función.

  • E-Mails con adjuntos:La mayoría de los virus en la época fueron propagados por e-mail, hoy en dia se sigue haciendo enviando e-mails con archivos adjuntos, aunque los servicios de correo como hotmail y gmail tengan un antivirus para el escaneo de esos archivos adjuntos, no hay que confiarse ya que un antivirus es facil saltarselo.

  • Desde red local o físicamente: Como suelen decir, a veces el enemigo está en casa, suponiendo que un ordenador no tenga acceso a internet y que este infectado de algun tipo de malware, es porque hay dos posibles propagaciones. Alguien puede entrar fisicamente al ordenador y sin saberlo poner un pendrive que tiene un gusano dentro que ha sido propagado por toda la red y también cumple con una función de propagación por USB, al conectar el pendrive automaticamente gracias a un fichero Autorun.inf se ejecutará y seguirá intentando infectar por red local (compartiendo archivos por netbios) o por dispositivos extraíbles.


- ¿Cómo se instala en nuestro equipo?

Dependiendo el tipo de malware y con la estructura de programación que cumplió el programador a la hora de crearlo se instalará de una forma u otra o no se instalará. En caso de que el malware se instale siempre procurará hacerlo oculto y silencioso, es obvio que el programador no quiera que el usuario se dé cuenta de que se ha instalado un 'bichito' en su equipo.

En Windows hay varias maneras de instalarse para que al arrancar el sistema se siga ejecutando el archivo.

  • Run : Por registro (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run), se agrega una clave nueva en la carpeta Run del registro, es facil de detectar esta instalación ejecutando el archivo 'msconfig' desde la consola y en la pestaña inicio se puede ver los programas que se inician con la clave de registro.

  • RunOnce : Igual que Run, (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce).

  • ActiveX : Por registro, es la carpeta de los componentes instalados, igual que los dos anteriores pero en este caso no se muestra en la pestaña Inicio de msconfig, (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components).

  • Carpeta Inicio : Es una carpeta de windows cuya ruta es (C:\Documents and Settings\All Users\Menú Inicio\Programas\Inicio),  todo programa que se encuentre en esa carpeta se ejecutará al inicio.

  • ShellExplorer : Otra ruta de registro, esta se encarga de iniciar el explorer.exe del sistema windows (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell).

  • UserInit : Otra ruta de registro, esta se encarga de iniciar el userinit.exe del sistema, (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit).

  • Complemento de Navegador : Al instalar un complemento para un navegador especifico, puede saltar la seguridad del filtro de complementos del navegador y ejecutar algun malware.

  • Driver o Servicio : Algunos malwares como los Rootkits necesitan instalarse a un nivel para poder controlar mucho más el pc infectado, algunos llegan hasta el ring0.

El malware antes de agregarse al inicio del sistema se copia en algun directorio para posteriormente iniciarse, para ayudarse a que no sea visto se copia con atributos de ocultación o para ayudarse a no ser eliminado se atribuye también tipo de archivo del sistema. En algunos casos puede llegar haber dos archivos para la instalación, el segundo archivo se encargaría de verificar si el archivo se ha borrado volverlo a instalar, por lo tanto es doble el trabajo para desintalarlo.


¿Cómo podemos evitarlo?

Es dificil estar siempre 100% seguros a ataques ya que siempre se puede cometer algun error, pero se pueden prevenir los más básicos de las siguientes formas:

  • Descargar software que necesitemos de paginas webs de confianza o de la pagina oficial del autor.
  • Tener actualizado al dia cualquier aplicación que usemos.
  • Tener un antivirus actualizado al dia, el 40% de las veces no confien en el escaneo del antivirus, ya que hay muchas técnicas de indetectabilización de malware.
  • Tener un sniffer para controlar las conexiones que se hacen en tu ordenador.
  • Tener un firewall seguro y actualizado.
  • Instalar una maquina virtual y ejecutar los programas en ella para un posterior análisis, cuando se esté seguro pasarlo al ordenador personal.


¿Cómo podemos detectarlo y eliminarlo?

En el caso de que nos hallamos despistado y tengamos algún malware dentro de nuestro ordenador, primero que nada repasar los consejos anteriores para evitarlos, en el caso de que no podamos encontrarlo o detectarlo, a continuación haré una breve demostración con la ayuda de algunas aplicaciones de como podemos detectarlo.

Pongamos el ejemplo de que empiece a funcionar un poco raro nuestro ordenador, el led de la camara web se prende y se apaga, hay mucho consumo de banda ancha, y el sistema vaya un poco lento. Sabemos que algo raro está pasando pero.. ¿que puede ser?, lo primero que miraremos será las conexiones entrantes y salientes con un sniffer muy simple y a nivel usuario, el TcpView.

Primero de todo cabe aclarar que algunos malwares se inyectan en algunos procesos del sistema, o se inyectan en el navegador predeterminado para ello se necesitan algunos sniffers mas avanzados como por ejemplo el WireShark o el SocketSniff.

Yo pondré un ejemplo básico para que os de por lo menos una idea, al abrir el TcpView vemos un montón de conexiones a la izquierda vemos el icono y el nombre de la aplicación y a la derecha vemos todos los datos de conexión.


Me capta la atención una conexión, y es que hay un proceso que se está conectando a una ip con el puerto común del protocolo IRC, pero.. ¿como puede ser? si yo no estoy en ningún canal chateando por IRC.. si le damos a click derecho en el proceso y a Process Properties nos mostrará información sobre la ruta donde se encuentra el archivo, cerrariamos el proceso y lo borrariamos.

Pero.. yo no me quedo tranquilo, ¿como puedo saber yo si se ha eliminado completamente, y no hay ningún malware por ahí molestando?.. miraremos haber si hay alguna aplicación que se haya añadido al inicio de windows, para ello utilizaremos una aplicación muy conocida, HijackThis.


Al hacerle click a Scan, mostrará las aplicaciones que están agregadas al inicio de windows, servicios, etc.. Por suerte nuestro pequeño 'Bot.exe' no se inicia con windows, pero  ¿y si.. se sobrescribió un programa que usa mucha gente como el Messenger, y el bot sobreescribió el archivo del Msn por el del bot? el proceso del MSN se inicia con windows, por eso siempre hay que fijarse si no hay ninguna sustitución.

Bueno ahora que sabemos donde está y si se instaló o no.. quiero saber de donde vino.. para ello podemos ir sacando algunos datos, por ejemplo utilizaremos un editor hexadecimal como el HexWorkShop. Con este programa miraremos si hay texto legible en hexadecimal, los compiladores de los lenguajes de programación añaden datos al ejecutable, también el servidor de troyanos o distintos tipos de malware tienen que guardar la información que le pasan en algún lado.. hay varios lugares donde un malware puede puede guardar los datos de configuración y las ordenes con las que se programó si se usó un constructor (builder), dos de ellos son:


  • EOF : End Of File (Final del archivo), algunos constructores que configuran el servidor guardan los datos al final del archivo, si los datos no llegan estar cifrados o son faciles de descifrar se puede obtener datos importantes del atacante mirandolo con un editor hexadecimal.
  • Recursos : La otra forma de guardar los datos que un constructor tiene, es por medio de los recursos, el constructor añade un recurso al servidor con todos los datos metidos, para poder ver si tiene recursos que puedan ser importantes para obtener información se puede usar un editor de recursos como el Resource Hacker o XN Resource Editor.

Aquí podemos ver que el compilador de VB6 ha añadido la ruta del proyecto, en la ruta viene incluido el nombre de usuario del atacante.


Se puede deducir que he sido atacado con una botnet manejada por IRC.

Si nos cuesta mucho encontrar donde está el malware, podemos optar a descargar un antivirus como el NOD32, actualizarlo y hacer un escaner para ver si detecta el bicho.

Pero como dice el refrán mejor prevenir que curar, dejaré algunas aplicaciones de análisis que les puede servir para cuando descarguen o le pasen un archivo sospechoso puedan analizarlo completamente, obviamente.. analizandolo todo desde una maquina virtual como VMWare.



Despedida

Bueno creo que la guía fue un poco básica y que les ayudará a muchos de posibles ataques que tengan a aquellas personas que no sabían mucho sobre el tema, cualquier duda que tengan o idea para añadir (por si se me escapó algo) pueden comentar en esta misma entrada.

Saludos![/list]


Karcrack

Buena recopilación de información :D Pero yo lo llamaría mas bien "Introducción al Malware"

5eth

Buena informacion,  y muchos de esos son simples  y practicos de usar, y muchos que son prometedores a la hora de dar "buenos" resultados, aquellos que tienen un costo (los que NO son gratis) asi que debemos protegernos bien, y no dar informacion a cualquier persona de nuestra PC o de nosotros mismos, mas aun las compañias, empresas, etc.

Salu2.
█║▌│ █│║▌ ║││█║▌ │║║█║

[Zero]

Buen post shark0, ya hacía tiempo que nadie escribía un artículo para el subforo, terminaste con la sequía  ;D. A ver si ahora esto coge inercia  :P.

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche


usuario oculto

#6
  Muy buena,  lo he leido en tu blog ese del team
 Ten cuidado con los consejos que das  de como evitarlos ya que podrias arruinarte el negocio.
  Por tu culpa me infectaron con keybank xD me he desinfectado ya.
 

pd, no tengo tildes
Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

illuminat3d

Cita de: mansan[a] en 15 Noviembre 2010, 23:12 PM
 Ten cuidado con los consejos que das  de como evitarlos ya que podrias arruinarte el negocio.

No me importa, 'el negocio' me da igual si marcha bien o mal... no lo tengo como primer ideal, mi primer ideal es el aprendizaje, asi que no le tomo mucha importancia a eso.

Un saludo y gracias! =)