Malware Magazine #2

8:59 0 Comments A+ a-



Para continuar con estas entregas, les presentamos esta segunda parte la cual se basa en Botnets.

Adicionalmente a esto, podrán ver un taller de como empezar a armar un troyano desde cero en VB.NET, en cada entrega se le irán incorporando módulos nuevos hasta llegar a tener un troyano completo.

Por otro lado seguimos con el análisis de malware así como también su indetectabilidad.

Esperamos que les guste y que lo compartan!

Redactores:
- ANTRAX
- Roda
- Blackdrake
- 79137913

Editores:
- Gabriela


Saludos a todos!
Underc0de Team

Certified Ethical Hacker v8

18:39 0 Comments A+ a-


Hacker Halted.pdf      
Module 00 - Labs Countermeasures.pdf   
Module 01 - Introduction to Ethical Hacking.pdf      
Module 02 - Footprinting and Reconnaissance.pdf      
Module 02 - Labs Footprinting and Reconnaissance.pdf      
Module 03 - Labs Scanning Networks.pdf      
Module 03 - Scanning Networks.pdf      
Module 04 - Enumeration.pdf      
Module 04 - Labs Enumeration.pdf      
Module 05 - Labs System Hacking.pdf      
Module 05 - System Hacking .pdf   
Module 06 - Labs Trojans and Backdoors.pdf      
Module 06 - Trojans and Backdoors.pdf      
Module 07 - Labs Viruses and Worms.pdf      
Module 07 - Viruses and Worms.pdf      
Module 08 - Labs Sniffers.pdf      
Module 08 - Sniffing.pdf      
Module 09 - Labs Social Engineering.pdf      
Module 09 - Social Engineering.pdf      
Module 10 - Denial of Service.pdf      
Module 10 - Labs Denial of Service.pdf      
Module 11 - Labs Session Hijacking.pdf      
Module 11 - Session Hijacking.pdf      
Module 12 - Hacking Webservers.pdf      
Module 12 - Labs Hacking Webservers.pdf      
Module 13 - Hacking Web Applications .pdf   
Module 13 - Labs Hacking Web Applications.pdf      
Module 14 - Labs SQL Injection.pdf      
Module 14 - SQL Injection.pdf      
Module 15 - Hacking Wireless Networks.pdf   
Module 15 - Labs Hacking Wireless Networks.pdf      
Module 16 - Hacking Mobile Platforms.pdf      
Module 17 - Evading IDS, Firewalls, and Honeypots.pdf      
Module 17 - Labs Evading IDS, Firewalls and Honeypots.pdf      
Module 18 - Buffer Overflow.pdf      
Module 18 - Labs Buffer Overflow.pdf      
Module 19 - Cryptography.pdf      
Module 19 - Labs Cryptography.pdf      
Module 20 - Penetration Testing.pdf   
References.pdf

Descarga: http://thomaslorenzato.fr/CEH/


Coleccion de herramientas de hacking hechas en Python

11:14 0 Comments A+ a-

En la página de Dirk Loss podemos encontrar un gran recopilatorio de herramientas escritas en Python para penetration testers, algunas de ellas sólo enlaces a librerías C existentes, es decir, herramientas que hacen las librerías fácilmente utilizables desde programas de Python.

Red


  • Dirtbags py-pcap: lee ficheros pcap sin libpcap
  • dpkt: rápida y simple creación de paquetes y análisis, con las definiciones básicas de los protocolos TCP/IP 
  • flowgrep: grep a través de payloads de paquetes utilizando expresiones regulares
  • glastopf: honeypot que se basa en un pequeño servidor web que emula cientos de vulnerabilidades.
  • Impacket: modifica y decodifica paquetes de red. Incluye soporte para los protocolos de más alto nivel, tales como NMB y SMB
  • Knock Subdomain Scan:  enumera los subdominios de un dominio de destino a través de una lista de palabras
  • LANs.py: herramienta capaz de falsificar y envenenar la tabla de ARP de un objetivo individual. Es multihilo y asíncrono.
  • libdnet: rutinas de red de bajo nivel, incluyendo la interfaz de búsqueda y transmisión de tramas Ethernet
  • Mallory: proxy man-in-the-middle extensible TCP/UDP, soporta la modificación de protocolos no estandar al vuelo
  • pypcap, Pcapy y pylibpcap: varios enlaces Python para libpcap
  • Pytbull: framework de pruebas de IDS/IPS muy flexible (incluye más de 300 tests)
  • pynids: wrapper de libnids que incluye sniffing, IP defragmentation, reensamblado de streams TCP y detección de escaneos de puertos
  • Scapy: envia, rastrea y analiza y crea paquetes de red. Se puede usar de forma interactiva o como una librería

 

Depuración e ingeniería inversa


  • Androguard: ingeniería inversa y análisis de aplicaciones de Android
  • apk-jet: un wrap de apktool en python para automatizar y hacer más fácil la ingeniería inversa de apks 
  • AsmJit: sencillo wrapper en Python para AsmJit usando SWIG. AsmJit posee clases de generación de código de alto nivel que pueden utilizarse para crear código JIT
  • BeaEnginePython: bindings de BeaEngine en Python de Mario Vilas. 
  • Binwalk: es una herramienta de análisis firmware diseñada para ayudar en el análisis, la extracción y la ingeniería inversa de imágenes del firmware y otros blobs binarios. Es fácil de utilizar, completamente programable y se puede extender fácilmente a través de firmas personalizadas, reglas de extracción y módulos de plugin.
  • bochs-python-instrumentation: Este parche para Bochs proporciona un intérprete de Python en lugar del propio depurador Bochs, proporcionando la funcionalidad del depurador. También permite interactuar con la interfaz de instrumentación bajo demanda, al asociar dinámicamente métodos de Python para manejar eventos de instrumentación.
  • Buggery: wrapper python para DbgEng. 
  • ctypes: módulo de Python que permite crear y manipular tipos de datos de C en Python. Estos luego pueden pasar a funciones C cargadas desde librerías de vínculos dinámicos.
  • Cuckoo: sistema sandbox de análisis de malware automatizado. Tiene un API para personalizar tanto el procesamiento como las etapas de presentación de informes. 
  • Darm: Un ligero y eficiente desensamblador escrito en C para el conjunto de instrucciones ARMv7
  • Deviare: es una API para hooks diseñada para crear productos de usuario final
  • Diabind: Python binding de DIA (Debug Interface Access) SDK
  • Dislib: Librería python para leer ficheros PE+
  • diStorm:  biblioteca de desensamblador para AMD64, bajo licencia BSD
  • IDAPython: plugin de IDA Pro que integra Python, permitiendo ejecutar scripts en IDA Pro
  • Immunity Debugger: GUI programable y debugger en linea de comandos
  • Paimei: framework de ingeniería inversa, incluye PyDBG, PIDA, pGRAPH
  • pefile: permite leer y trabajar con archivos Portable Executable (PE) 
  • pydasm: interfaz en Python para la librería libdasm de desensamblado x86
  • PyDbgEng: wrapper en Python para el motor de depuración de Microsoft Windows 
  • PyEMU: emulador IA-32 completamente programable, útil para análisis de malware
  • python-ptrace:depurador usando ptrace (Linux, BSD y Darwin system call para trazar procesos) escrito en Python
  • mona.py: PyCommand para Immunity Debugger que reemplaza y mejora pvefindaddr
  • uhooker: intercepta llamadas a llamadas a la API dentro de DLLs , así como las direcciones arbitrarias en el archivo ejecutable en la memoria
  • vdb / vtrace: API de depuración de procesos multi-plataforma implementado en python, y vdb es un depurador que lo utiliza

 

Fuzzing


  • antiparser: fuzz testing y API de inyección de fallos
  • Construct: librería para parsear y construir estructuras de datos (binario o texto).  
  • Forensic Fuzzing Tools: genera ficheros fuzzeados, sistemas de ficheros, y sistemas de ficheros con ficheros fuzzeados para probar la robustez de herramientas forenses y sistemas de análisis 
  • Fusil: librería en Python usada para escribir programas de fuzzing 
  • fuzzer.py (feliam): fuzzer sencillo de Felipe Andres Manzano 
  • Fuzzbox: multi-codec media fuzzer
  • Mistress: genera formatos de archivos al vuelo y protocolos con datos malformados, basados en patrones predefinidos
  • Peach Fuzzing Platform: framework de fuzzing extensible para la generación y la mutación basada en fuzzing (la v2 fue escrita en Python)
  • Powerfuzzer: fuzzer web altamente automatizado y totalmente personalizable (protocolo HTTP basado en fuzzer de aplicación)
  • SMUDGE 
  • Sulley: framework de desarrollo fuzzer y pruebas que consiste en varios componentes extensibles
  • TAOF: (el Arte del Fuzzing) incluye ProxyFuzz, un fuzzer man-in -the-middle de red no determinista
  • untidy: fuzzer XML de propósito general
  • Windows IPC Fuzzing Tools: herramientas para fuzzear aplicaciones que usan mecanimos Windows Interprocess Communication
  • WSBang: ejecuta pruebas automáticas contra servicios web SOAP

 

Web


  • FunkLoad: medidor de carga web funcional
  • Ghost.py: cliente webkit escrito en Python 
  • HTTPie: cliente http similar a cURL pero más intuitivo. 
  • mitmproxy: proxy HTTP de interceptación con soporte SSL. Permite inspeccionar y editar tráfico al vuelo. 
  • Requests: librería HTTP sencilla y elegante, hecha para seres humanos
  • Twill: navega por Internet mediante un interface en línea de comandos. Soporta web testing automatizado
  • pathod / pathoc: demonio/cliente para saturar clientes y servidores HTTP
  • ProxMon: procesa logs de proxy y crea informes con los resultados
  • python-spidermonkey: binding para el motor JavaScript de Mozilla SpiderMonkey; permite llamar y evaluar scripts y funciones Javascript
  • Selenium: API para escribir pruebas funcionales usando el WebDriver Selenium para acceso a Firefox, Ie, Chrome, Remote etc. 
  • Splinter: herramienta para testear aplicaciones web usando Python que permite automatizar acciones del navegador como visitar URLs e interactuar con sus objetos.
  • spynner: módulo de navegación web programable para Python con soporte Javascript/AJAX
  • WSMap: encuentra servicios web y descubre ficheros
  • Windmill: herramienta de pruebas creada para automatizar y depurar aplicaciones web

Cracking

  • findmyhash:  script en Python para crackear hashes usando servicios online.


Malware


  • pyew: una herramienta desde la línea de comandos para analizar malware de forma estática.
  • Noriben: script que funciona en conjunción con Procmon de Sysinternals para analizar malware en sandbox.
  • s7-brute-offline.py: herramienta que que puede realizar ataques off-line de fuerza bruta contra controladores lógicos programables (PLCs) Siemens.
  • The Backdoor Factory: un interesante script en Python para "backdoorizar" ejecutables y librerías de Windows (Win32 PE).
  • Tiny SHell: el clásico backdoor de código abierto en Python de Christophe Devine
  • TinySHell bajo SCTP: un backdoor de Unix un poquito más indetectable 
  • Veil: herramienta escrita en Python por Christopher Truncer para crear payloads de Metasploit capaces de evadir la mayoría de los antivirus.
  • virustotal-search.py: script para automatizar desde la línea de comandos el análisis de una muestra de malware a través del conocido servicio de multiAV de Virustotal.

Forense


  • aft: Android forensic toolkit
  • FBStalker y GeoStalker: herramienta OSINT para Facebook y fuentes de geolocalización - Flickr, Instagram, Twitter, Wigle. Los ID de usuario encontrados son utilizados para encontrar cuentas de redes sociales a través de otras redes como Facebook, Youtube, Instagram, Google+, Linkedin y Google Search
  • Grampus: herramienta multiplataforma de extracción de metadatos y footprinting, algo así como una FOCA en python y de código abierto.
  • LibForensics: librería para desarrollar aplicaciones forenses digitales 
  • sqlparse.py: parser para recuperar datos borrados de bases de datos SQLite
  • TrIDLib: identifica los tipos de archivo de sus firmas binarias. Ahora incluye Python binding
  • Volatility: extrae y analiza artefactos digitales de la memoria volátil (RAM) 

 

Análisis de malware


  • Exefilter: filtra formatos de archivo en mensajes de correo electrónico, páginas web o archivos. Detecta muchos formatos de archivo comunes y puede eliminar contenido.
  • OS X Auditor: herramienta gratuita de análisis forense para Mac OS X.
  • phoneyc: implementacion de honeyclient totalmente escrito en python
  • pyew: editor hexadecimal y desensamblador en línea de comandos, principalmente usado para analizar malware
  • pyClamAV:  añade capacidades de detección de virus para tu software Python
  • pyMal: framework para análisis de malware basada en Pefile, Pydbg y Volatility. 
  • jsunpack-n: unpacker de JavaScript genérico: emula la funcionalidad del navegador para detectar exploits dirigidos a explotar vulnerabilidades en navegadores y plugins
  • yara-python: identifica y clasifica muestras de malware

PDF


  • Didier Stevens' PDF tools: analiza, identifica y crea ficheros PDF (incluye PDFiD, pdf-parser, make-pdf y mPDF)
  • Opaf: Open Framework Analysis PDF . Convierte PDF a un árbol XML que puede ser analizado y modificado.
  • Origapy: wrapper de Python para el módulo de Ruby Origami que desinfecta archivos PDF
  • PDFMiner: extrae texto de ficheros PDF 
  • pyPDF: Python PDF toolkit: extrae info, corta, une, cifra, descifra...
  • python-poppler-qt4: une Python con la librería Poppler PDF, incluyendo soporte Qt4

Misc


  • Exomind: para la creación de gráficos y el desarrollo de módulos de inteligencia de código abierto, centrada en servicios de redes sociales, motores de búsqueda y mensajería instantánea
  • Hachoir: permite ver y editar un stream binario campo por campo
  • InlineEgg: toolbox de clases para escribir pequeños programas en Python
  • PyMangle: herramienta de línea de comandos y una biblioteca de Python utilizada para crear listas de palabras para su uso con otras herramientas de pruebas de intrusión
  • RevHosts: enumera los virtual hosts de una dirección IP dada
  • simplejson: JSON encoder/decoder, para por ej. usar Google's AJAX API

 

Otras herramientas y librerías útiles


  • Beautiful Soup: HTML parser optimizado para screen-scraping
  • IPython: shell Python interactivo y mejorado con algunas características para la introspección de objetos, acceso a una consola del sistema y su propio sistema especial de comandos 
  • lxml: librería más rica en características y fácil de usar para trabajar con XML y HTML
  • M2Crypto: wrapper OpenSSL más completo
  • matplotlib: construye gráficos 2D de matrices
  • Mayavi: 3D de visualización de datos científicos y plotting
  • NetworkX: librería gráfica (bordes, nodos)
  • Pandas: librería que proporciona mayor rendimiento y mayor facilidad de uso para analizar estructuras de datos de alto rendimiento y herramientas de análisis de datos
  • Pexpect: controla y automatiza otros programas, similar al sistema Don Libes `Expect
  • PyQt y PySide: Python bindings para el framework Qt y librería GUI
  • pyparsing: módulo de parsing general
  • RTGraph3D: crea gráficos dinámicos en 3D
  • Sikuli, tecnología visual para buscar y automatizar interfaces gráficas de usuario con capturas de pantalla. Programable en Jython
  • Suds:  cliente SOAP ligero para servicios Web
  • Twisted: motor de creación de redes basada en eventos
  • Whoosh: rápido, con muchas características de indexación de texto completo y búsqueda de librería implementado en Python
Fuente: th3-r4v3n

Crea tu propio Dropbox privado

19:50 0 Comments A+ a-


Hola a todos los lectores!

Hoy veremos como crear nuestro propio gestor de archivos en la nube, algo similar a Google Drive o Dropbox, pero creado por nosotros en nuestro propio servidor.

Actualmente todos tenemos vinculados nuestros correos a una cuenta de Dropbox, iCloud o Google Drive, y todos sabemos que si alguien lograra apoderarse de nuestro correo, también podría tener acceso a nuestros archivos. Es por eso que hoy día les enseñaremos a crear su propio gestor de archivo en la nube, pero privado.

Lo que necesitaremos será un dominio y un servidor donde alojarlo.

Una vez que tenemos el espacio en donde alojarlo, descargaremos OwnCloud desde su página oficial. OwnCloud es un servicio gratuito de software libre muy sencillo de instalar y usar con el cual crearemos nuestro gestor de archivos en la nube.

Cómo crear tu propio Dropbox privado en cuatro sencillos pasos

La funcion principal es la de sincronizar una carpeta de nuestra PC o de nuestro movil con la nube, para poder acceder a nuestros archivos desde cualquier lado. Además tiene un reproductor de música integrado, entre otras características que pueden verlas desde ACÁ.

Instalación

Comenzaremos descargando el instalador web y lo subimos por FTP a nuestro servidor.
El siguiente paso es acceder al instalador desde el navegador web y seguir los pasos de instalación.
Una vez completado todo, redireccionará al Login, y ya podremos entrar a nuestro panel.


Sincronización

Para sincronizarlo, debemos instalar el cliente de ownClud para Windows, Mac, o Linux. Una vez hecho:
  • Abre ownCloud en tu ordenador y dale a “configurar”.
  • Añade la URL de tu servidor ownCloud y tu password y contraseña para acceder.
  • Selecciona las carpetas y archivos que quieras. Una vez hecho, todo se sincronizará automáticamente entre la nube y tu PC.
Para el móvil, tienes que descargarte las apps en Android o iOS y seguir las mismas instrucciones.

Con esto ya tendrémos funcionando nuestro propio gestor de archivos privado en nuestro servidor!

Análisis de Malware: Enfoque y caso práctico

14:07 0 Comments A+ a-

Eres un trabajador más del ámbito de la seguridad informática. Acabas de despertarte un domingo por la mañana y has sido alertado de un incidente de seguridad. Te diriges a la oficina para averiguar lo que ha sucedido. Empezarás a mirar el incidente en los paneles de alrededor. El IPS/IDS y las alertas WAF muestran que ha habido una aplicación o malware no deseada en el sistema. La lista de conexiones del firewall te muestra que uno de los hosts tiene conexiones inusuales hacia fuera de la red. Y por último, el antivirus muestra información sobre este host infectado. Después de estas pequeñas comprobaciones iniciales y de suponer que efectivamente tienes un bicho, lo que queda por hacer es averiguar qué tipo de malware hay en el host en cuestión y cuán malicioso es su código. Por supuesto, hay que ordenar al equipo de red y antivirus que realicen una evaluación de los daños inmediatos de la red, mientras se escanea el host infectado en un entorno aislado. ¡No está mal para un domingo por la mañana! Volverás a casa pensando que el incidente está bajo control.


¿Qué podemos hacer para proteger nuestros activos de red, recursos de red, y lo más importante, nuestros datos? Como medidas preventivas, se puede empezar por actualizar el hash de IDS para detectar el siguiente ataque de software malintencionado similar y actualizar la base de firmas del antivirus para detectarlo a nivel de host. Aparte de estas medidas, todavía tenemos que obtener más información acerca de este software malicioso, o en otras palabras, es necesario llevar a cabo un análisis de malware para averiguar el comportamiento exacto de esta pequeña y desagradable pieza de software.

¿Qué es un malware?

En primer lugar, ¿qué es un malware? ¿Podemos considerar cualquier pieza de código que no está autorizado a estar en nuestra red como un software malicioso? De forma general, podemos decir que un malware es una pieza de software capaz de realizar cualquier acción que causa algún tipo de daño a un usuario u organización, un equipo, o una red. Esto incluye pero no se limita a los virus, troyanos, gusanos, rootkits, scareware y spyware.

Si se determina que la pieza de software encontrada es perjudicial, un análisis de malware es el arte de la disección del software malicioso para entender cómo funciona, cómo identificarlo y cómo derrotarlo o eliminarlo.

Uno de los propósitos y objetivos del análisis de malware suele ser el poder proporcionar la información necesaria para responder a una intrusión en la red. Este propósito incluye el determinar exactamente lo que sucedió, y qué alcance y grado de disperesión tuvo en la red.

Al analizar los supuestos elementos de software malicioso, en primer lugar se necesita explorar lo que el archivo binario sospechoso puede hacer, cómo detectarlo en su red, y cómo medir y contener el daño. En el post de hoy hablaremos de un caso práctico con un virus educativo, el RaDa, al cual someteremos a una serie de pruebas que revelarán parte de sus intenciones.

Análisis de Malware

Configuración del entorno de laboratorio

En primer lugar, si no se dispone de un entorno de laboratorio adecuado para llevar a cabo un análisis de malware, es posible que se deban volver a examinar las opciones que se tienen, para alinear lo mejor posible los recursos disponibles con la eficacia del análisis. Como ejemplo, se puede utilizar un entorno virtual para realizar el análisis o tener sistemas físicos separados. A diferencia de los entornos virtuales, los datos pueden tener fugas en el sistema base y esto puede eventualmente perjudicar a todo el sistema. Los malware más modernos son capaces de detectar los sistemas virtuales y cambiar sus comportamientos para permanecer sin ser detectados. De todas las opciones que hemos probado, tanto VMWare como VirtualBox ofrecen buenas soluciones para el análisis de malware. Usaremos VirtualBox para nuestro análisis.

Por otra parte, tener sistemas físicos dedicados puede tener varias desventajas, tales como tener que restaurar el sistema en cada ciclo de análisis. Para ello utilizamos software libre, como la herramienta udpcast disponible para estos fines. En  caso de que tengas suficiente presupuesto, Norton Ghost proporciona características más avanzadas para hacer restauraciones del sistema.

Una vez decidido el entorno en el que se va a trabajar, el siguiente paso sería definir el acceso a la red de esos sistemas. Los malwares avanzados son capaces de detectar cambios en la dirección IP y se esconden o no revelan la información sobre la ubicación real de otros nodos o puntos de control. Estas detecciones pueden desencadenar algunas otras funciones ocultas, tales como ataque DOS al servidor interno. Por lo tanto, recomendamos entornos de red aislados con servidores virtuales que incluyen DNS propios, y servidores HTTP y de correo. En el caso de prueba adicional con conexión a internet, la red aislada puede aplicarse a través de un cortafuegos con reglas estrictas establecidas para supervisar las posibles conexiones abiertas y cerradas.

El conjunto de herramientas

Después de haber decidido y configurado el entorno de laboratorio, el siguiente paso es seleccionar un conjunto de herramientas que faciliten el proceso de análisis. Recomendamos las siguientes herramientas que pueden ser útiles en distintas etapas del ciclo de análisis, aunque hay muchas otras disponibles. Principalmente usaremos herramientas libres o gratuitas, incluidas las versiones demo de algunas herramientas comerciales.

En la siguiente sección se ofrece una breve descripción de cada herramienta que utilizamos para llevar a cabo el análisis.

OllyDbg

OllyDbg es un depurador a nivel de aplicación. La interfaz OllyDbg muestra el código ensamblador, volcado hexadecimal, la pila y registros de la CPU. OllyDbg también soporta rastreo, puntos de interrupción condicionales, visión de cabecera PE, edición hexadecimal, y plug-in de soporte.

En la primera puesta en marcha, OllyDbg pide configurar el directorio de datos del usuario (UDD) y el directorio de plug-ins. UDD se utiliza para guardar información específica de la aplicación como puntos de interrupción. Ofrece amplias opciones de depuración como la configuración de breakpoints en la carga de nuevos módulos, la creación de threads, la forma de procesar las excepciones, etc. OllyDbg soporta el establecimiento de puntos de interrupción de hardware, puntos de interrupción de software, puntos de interrupción de memoria e incluso puntos de interrupción condicionales.

IDA Pro

Al igual que OllyDbg, IDA Pro es un depurador / desensamblador a nivel de aplicación que nos ayudará enormemente en seguir la pista de la ejecución del programa. Cuenta con una versión de demo y una versión freeware más antigua, que es gratuita solo para uso no comercial.

UPX

UPX es un compresor/descompresor de código ejecutable, que logra una excelente relación de compresión y ofrece descompresión muy rápida cuidando el consumo de memoria. Una medida más que utilizan los ejecutables para ocultarse es el almacenar su código comprimido, por lo que necesitaremos una herramienta capaz de extraer el código ejecutable en claro, como UPX.

Autoruns

Esta herramienta, que cuenta con la lista más amplia de ubicaciones de inicio automático, muestra qué programas están configurados para ejecutarse durante el arranque del sistema o de inicio de sesión, y muestra las entradas en el orden en que Windows las procesa. Estos programas incluyen los de su carpeta de inicio, Run, RunOnce, y otras claves del registro. Puede configurar Autoruns para mostrar otras ubicaciones, incluidas las extensiones de shell del Explorador, barras de herramientas, objetos de ayuda del navegador, las notificaciones de Winlogon, servicios de inicio automático, y mucho más. Autoruns extiende por mucho la utilidad MSConfig incluida en Windows Me y XP.

ProcessExplore

ProcessExplore es, como su nombre indica, un explorador de procesos. Su interfaz gráfica se compone de dos subventanas; la superior siempre muestra una lista de los procesos activos, incluidos los nombres de las cuentas que poseen, mientras que la información mostrada en la inferior depende del modo en que Process Explorer esté configurado. En el modo de DLL, mostrará los archivos DLL y archivos asignados en memoria que el proceso ha cargado. Process Explorer también tiene una herramienta de búsqueda muy potente que mostrará rápidamente qué procesos tienen handlers abiertos o sus DLL cargados.

Las capacidades de Process Explorer lo hacen especialmente útil para localizar problemas de DLL – versión o pérdidas de identificadores, y para dar una idea de la forma de funcionar de Windows y otras aplicaciones.

Process Monitor

Process Monitor es una herramienta de monitorización avanzada para Windows que muestra en tiempo real actividad en el sistema de archivos, el registro, y los procesos en ejecución. Combina las características de las herramientas Filemon y Regmon, y añade una amplia lista de mejoras que incluyen el filtrado avanzado y no destructivo, las propiedades de eventos integrales tales como identificadores de sesión y nombres de usuario, pilas de threads completas con soporte para símbolos integrados de cada operación, registro simultáneo en un archivo, y mucho más. Las características de Process Monitor hacen de ella una utilidad fundamental en la solución de problemas del sistema y en el conjunto de instrumentos de caza de malware.

Active Registry Monitor

El Active Registry Monitor (ARM) es una utilidad diseñada para analizar los cambios hechos al registro de Windows – tomando snapshots de su estado y guardándolos en una base de datos. Posteriormente, pueden compararse dos de estas fotografías y obtener un listado de claves/datos nuevos, eliminados o, simplemente, cambiados.

TCPview

TCPView es un programa de Windows que muestra la lista detallada de todos los puntos finales TCP y UDP en el sistema, incluyendo las direcciones y el estado de las conexiones TCP locales y remotas. En Windows Server 2008, Windows Vista y XP, TCPView también informa del nombre del proceso que posee el punto final. TCPView proporciona un subconjunto más informativo y bien presentado del programa Netstat que se incluye con Windows.

WinVi

WinVi es un editor gratuito para MS Windows para la edición y la detección automática de archivos Unicode en codificaciones UTF- 8, UTF-16 Little Endian y UTF-16 Big Endian. WinVi funciona como un editor Vi para Windows. En el análisis de malware se utiliza esta herramienta como un editor hexadecimal que puede soportar archivos de hasta 2 GB.

Técnicas de análisis de malware

Muy a menudo, cuando se realiza el análisis de malware, la única cosa que se tiene es el propio ejecutable malicioso, que no dará demasiada información, ya que está destinado a no ser comprendido por seres humanos. Con la intención de encontrarle sentido, vamos a usar una variedad de herramientas y trucos, cada uno revelando una pequeña cantidad de información.

Habrá que hacer uso de una gran variedad de herramientas con el fin de obtener una comprensión amplia del malware en cuestión. Existen dos enfoques fundamentales para el análisis de malware: los análisis estáticos y los análisis dinámicos. El análisis estático consiste en examinar el malware sin ejecutarlo, mientras que el análisis dinámico implica la ejecución del malware en entornos controlados.

Análisis estático básico

El análisis estático básico consiste en examinar el archivo ejecutable sin ver las instrucciones reales. El análisis estático puede confirmar si un archivo es malicioso, proporciona información sobre su funcionamiento, y a veces ofrece información que permitirá realizar un network footprinting simple. El análisis estático básico es sencillo y puede ser rápido, pero es en gran medida ineficaz contra el malware sofisticado, y se pueden pasar por alto funciones importantes.

Análisis Dinámico Básico

Las técnicas de análisis dinámicas básicas implican ejecutar el malware y la observación de su comportamiento en el sistema con el fin de averiguar algunos aspectos de su comportamiento, poder eliminar la infección, y producir firmas eficaces. Sin embargo, antes de poder ejecutar el malware de forma segura, se debe configurar un entorno que permita estudiar el malware ejecutándose sin riesgo de daño al sistema o la red. Al igual que las técnicas básicas de análisis estático, las técnicas básicas de análisis dinámico pueden ser utilizadas por la mayoría de las personas sin grandes conocimientos de programación, pero no serán eficaces con todo el malware y también se puede pasar por alto funcionalidad importante.

En la Práctica

Mostraremos un ejemplo práctico de cómo realizar un análisis de una pieza de malware para identificar su funcionalidad.

Disclaimer: No se recomienda la realización de este ejercicio en un entorno sin acondicionar debidamente, por el riesgo que puede suponer para todos los equipos de la red.

El virus que vamos a analizar, el virus RaDa, es un virus real creado en el marco del Proyecto Honeynet para aumentar la concienciación sobre la seguridad en torno a ejemplares de malware y para señalar la necesidad de contramedidas defensivas adicionales con el fin de luchar contra las actuales amenazas de malware.

Una vez localizado (o descargado) el ejecutable del malware, y aislado en nuestro entorno de laboratorio, procedemos al análisis del mismo, pasando por cada una de las etapas y usando varios de los software mencionados.

Análisis estático

En el análisis estático de este virus vamos a intentar recabar tanta información como sea posible, que nos ayudará a comprenderlo mejor y a orientar de forma eficiente nuestros esfuerzos en el posterior análsis dinámico.

Como primer paso, se lleva a cabo una recolección de información previa observando los detalles del virus y realizando una visualización en un editor hexadecimal. Esto revela algunas cadenas en el código del virus, además de ayudarnos a verificar que se trata de un ejecutable.


El siguiente paso comienza con cargar el ejecutable (el virus RaDa) en OllyDbg para llevar a cabo un análisis de código con el fin de descubrir sus capacidades funcionales. En primer lugar, abrimos el archivo ejecutable en el OllyDbg para ver los detalles básicos. La siguiente figura muestra cierta información de los registros, la CPU y el estado de la memoria del programa, incluyendo un mensaje de advertencia que indica que el código está comprimido, cifrado o codificado para ocultar su verdadera naturaleza.


Para salvar este paso y poder extraer el ejecutable real y ver sus instrucciones, o al menos obtener información sobre el tipo de compresión, codificación o cifrado lleva (y, en definitiva, averiguar más cosas sobre la naturaleza del virus), se utiliza la utilidad de descompresión de ejecutables UPX:


Tal y como se puede observar en la imagen superior, el virus se resiste a desempaquetarse a través del método común con UPX. Por lo tanto, podemos probar a forzar el proceso usando el comando upx -9 --brute, que puede tardar un buen rato.

Después de un rato no ha habido suerte en el desempaquetamiento, por lo que vamos a moldear un poco el análisis, redireccionando nuestros esfuerzos en cierto modo hacia un análisis de comportamiento del malware, más que un análisis estático, debido a que el virus está preparado para evitar este tipo de análisis. Para este propósito, es necesario realizar una ejecución controlada del virus, analizar sus puntos de inicio, y encontrar un breakpoint del virus.

Para poder localizar dichos puntos, vamos a empezar por analizar el mapa de memoria  del malware, cosa que podemos hacer con el OllyDbg:


El mapa de memoria indica que hay tres secciones en el binario de RaDa: JDR0, JDR1 y .rsrc. El entry point de RaDa.exe (0x0040FD20) está ubicado en la sección JDR1. Podemos echar un vistazo también a la sección JDR0 haciendo doble click sobre la etiqueta de la sección, aunque nos encontraremos en este caso que la sección está vacía:


Podemos obtener algo más de información sobre la sección JDR0 (0x004018A4) usando el IDA Pro:


La siguiente captura de pantalla muestra que el código en JDR1 desempaqueta el código ofuscado que contiene en la sección JDR0. El registro ESI apunta a la dirección del bloque cifrado/ofuscado de código, mientras que el registro EDI apunta a la dirección de memoria a la que será copiada el código una vez se haya desempaquetado. Al terminar la sección JDR1, el control del programa salta a la dirección en que se ha desempaquetado el código (jmp loc_40FD42).


Observando además la información presente en la vista General Register, en el registro EIP, podemos consolidar que la dirección de memoria  JDR1:0040FD20 es el punto de inicio del programa. Dicho esto, aún es necesario extraer un buen String dump del código empaquetado.

Con el OllyDbg podemos obtener cierta información de los (posibles) módulos de los que puede hacer uso el virus, que nos pueden ayudar a comprender la naturaleza del virus más a fondo:


También podemos observar los handles del virus, para un propósito similar:


Recapitulando hasta ahora:

  • La información recabada en el análisis estático será de gran ayuda para, a la hora de hacer el análisis dinámico, saber dónde deben ir dirigidos nuestros esfuerzos.
  • Los handles del virus nos ayudarán a saber de qué recursos del sistema el ejecutable pretende hacer uso. Todo ejecutable hace uso de algún recursos del sistema; la cuestión aquí está en filtrar qué recursos son potencialmente peligrosos como para que los use un fragmento de software desconocido, y cuáles son más y menos habituales.
  • El mapa de memoria del ejecutable nos ha ayudado a determinar breakpoints del virus, que nos puede servir para controlar eficientemente la ejecución del virus en el análisis dinámico.
  • La lista de módulos ejecutables del malware nos da una pista (a veces, falsa) de los módulos que puede utilizar el virus.

Reunidas todas estas pistas, hemos preparado el terreno para dirigir nuestro análisis dinámico de la forma más eficiente posible.

El análisis dinámico

Ejecutaremos el virus en un ambiente controlado para ver su capacidad de abrir conexiones con el mundo exterior (calling home), las alteraciones del registro, modificaciones del sistema de archivos y los procesos en ejecución. Para controlar este tipo de actividades se utilizarán los programas TCPView, Active Registry Monitor, Process Explorer, Process Monitor y la aplicación Autoruns.

Al haber localizado en el análisis estático el punto de inicio del programa, podemos controlar su ejecución:



Una vez tenemos el entorno de laboratorio bien preparado y con el virus listo para ser ejecutado, el primer paso es averiguar cómo intenta comunicarse con el exterior: ¿cuáles son los puertos y las conexiones que el virus puede abrir hacia el mundo exterior? El TCPView muestra los detalles de conexiones salientes del malware:


El monitor de procesos y el ARM muestran las claves del registro recién alteradas del sistema local:


Como una observación, podremos ver que el virus se está ejecutando detrás de la aplicación Internet Explorer para ocultarse. La única indicación que podemos ver es que el proceso "IEXPLORE.EXE" está abierto por el virus para conectarse al destino remoto 10.10.10.10 en el puerto 80. También observamos que el proceso parece consumir más y más memoria.


El ProcessExplorer de Sysinternals nos da información relevante del virus en ejecución, pudiendo comprobar los DLL's que carga, y compararlos con lo encontrado en el análisis estático:



Echando un ojo al Advanced Registry Editor, podemos ver los cambios que hace el virus en el registro de Windows:


También observamos los cambios que ha hecho en el sistema de ficheros:
Cambios en el sistema de ficheros introducidos por RaDa


Por último, también podemos ver en el Process Monitor información sobre el proceso RaDa.exe y el IEXPLORE.EXE, en especial, que RaDa ha sido capaz de lanzar el IEXPLORER como NTAUTHORITY\SYSTEM, siendo RaDa ejecutado por un usuario con privilegios reducidos:



Hasta aquí...:

Después de realizado los análisis estático y dinámico, se han podido comprobar varias cosas:

El virus intenta ocultar su código ejecutable empaquetándolo, así como su punto de inicio. Hay virus más sofisticados que lo ponen mucho más complicado, con decenas de secciones de código distintas.

El programa Active Registry Monitor nos indica que se ha creado la siguiente clave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\RaDa:C:\RaDa\bin\RaDa.exe. Esto permite que RaDa persista tras el reinicio del sistema.

El TCPView muestra que hubo intentos de conexión desde iexplore.exe, Internet Explorer, a 10.10.10.10:80. Parece que RaDa utiliza Internet Explorer como herramienta para conectarse con el sistema externo, y que además, es capaz de lanzarlo como el usuario NTAUTHORITY\SYSTEM.

A través del Process Monitor se ha podido comprobar que se crearon los directorios C:\RaDa, C:\RaDa\tmp y C:\RaDa\bin. El ejecutable RaDa.exe se ha copiado en el directorio C:\RaDa\bin\.

El panel de Process Explorer muestra el proceso RaDa.exe en su lista activa, (no oculto bajo otro ejecutable), mostrando el crecimiento de la memoria usada.

Este breve análisis supone solo una introducción al análisis de malware, sin entrar mucho en detalle en los aspectos más técnicos. Seguiremos publicando artículos que poco a poco irán entrando más a fondo, desmenuzando a todos los niveles las técnicas del análisis de malware más comunes, con ejemplos prácticos para poder experimentar con conocimiento y aprender cosas interesantes de este área de la seguridad informática.

Fuente: hard2bit