miércoles, 31 de mayo de 2017

Diferencias entre .COM y .EXE




La principal diferencia es que el formato EXE no restringe el tamaño del ejecutable, en cambio el COM está restringido como máximo a ocupar un solo segmento de memoria (un espacio de memoria de 64 Kb); además hay que incluir los 256 bytes que ocupa el PSP.


Este límite fue dado en una época en la que esta cantidad de espacio era más que suficiente para poder realizar cualquier clase de tarea.


EXTENSIONES PERMITIDAS

.cpl, .exe, .dll, .ocx, .sys, .scr, .drv


                          SECCIONES DEL .EXE



El diagrama de un .exe sería:
ENCABEZADO MZ-DOS
SEGMENTO DOS
ENCABEZADO PE
TABLA DE SECCIONES
SECCIÓN 1
SECCIÓN 2
Y QUE PASA CON LOS .EXE DE .NET?

Este formato ha sido ampliado, recuerden no mejorado si no ampliado con unas características  que soportan el CLR  Common Lenguaje Runtime donde se añaden la cabecera CRL y datos CRL.

Osea cuando ejecutamos el .exe el cargador del sistema operativo le da lugar al CRL mediante la tabla de PE/COFF una vez hecho eso se carga al cabecera y los datos a ejecutar, donde la CRL  contiene dos segmentos importantes:

-- CÓDIGO DE METADATOS 
-- CÓDIGO CRL IL


Recordando amigos que el formato PE .exe es usado también en otros sistemas operativos como REACTOS y ha sido utilizado este formato PE en SKYOS BEOS quedando en conocimiento de ustedes que estos últimos  cambiaron su formato a ELF.

También podemos comentar que en UNIX de 32 bits solo algunos binarios pueden ser usados con wine y no se nos puede olvidar MAC OS  tiene la capacidad de ejecutar archivos PE, pero recuerden no es compatible en sentido binario.

Bueno amigos un pequeño breviario de lo que es un .EXE,  mas información estamos a sus ordenes.

Saludos

Li. Rodolfo H. Baz
www.rodolfohbaz.net

miércoles, 24 de mayo de 2017

Análisis Técnico Ransomware EternalRocks aka MicroBotMassiveNet



Buenas tardes amigos.

Hace unos minutos escribí la 3ra. parte del análisis in deep del virus WANNACRY y todavía me falta 1 parte mas, pero en lo que escribía esos tutoriales salio un nuevo RANSOMWARE llamado:

EternalRocks (a.k.a. MicroBotMassiveNet)
 

Que basados en los análisis que he hecho en primera instancia y que comentaré aquí en este artículo es mucho mas peligroso ya que como sabrán usa un filtrado de utilerías de hacking de la NSA de eua.  que contenía varios exploits como lo son: 

ETERNALBLUE, ETERNALCHAMPION, ETERNALROMANCE and ETERNALSYNERGY,


Este virus nos atrevemos a decir que causara mas daño que el WANNACRY que uso exploits como eternalblue y double pulsar, Eternalrocks usa todos los exploits que fueron filtrados, imaginen que peligro nos espera, pero empecemos el análisis.

Las muestras que me llegaron vienen en un archivo comprimido en Rar con password para evitar su descompresión maliciosa y tiene el hash que ya verifique de autenticidad :



Al descomprimirlo nos crea una carpeta con los ejemplos de este virus que son en este caso 28 elementos:




 Al hechar le primer vistazo de las muestras que están programadas en Visual .NET pero tenemos dos posibles lenguajes de programación usados que son C# y BAsic.   


QUEeee  no puede ser, usaron vISUAL baSIC  para programarlo? jejejejejeje tendremos que verificar,  ya que el chiste de aquí es hacer mas exacto el análisis de en que lenguaje estan hechos y ni tarde ni presuroso al revisar  de una forma mas exsautiva las cabeceras del ejecutable de una forma hexadecimal  y por medio del desemsamblado de cabeceras del ejecutable encontré las siguientes características:



Contiene 5 cabeceras de la cuales su 
Code Offset = 00000400, Code Size = 00484800
Data Offset = 00000400, Data Size = 00484800
 


De las cuales podemos ver que el OBJECT1 tiene unos caracteres raros lo cual me hace pensar que tiene  una protección ya sea ofuscación, compresión y/o encriptación y al analizarlo mas a fondo me doy cuenta que tiene una protección llamada OFUSCACIÓN DE CODIGO:




Se ve que los amigos creadores de este virus se esforzaron mas por ocultar el código de este, mucho mas que los creadores de  WANNACRY que no le pusieron ningún tipo de protección ya sea antidebuggin, anti desensamblado y/o encriptación, ofuscación o compresión, osea estos malandrines jejejejje  lo ocultaron mejor peroooo no tanto verán como le sacamos todo :p.


Al analizar en formato hexadecimal podemos darnos cuenta que es del tipo portable ejecutable y que corre solo en ambientes windows y no en MS-dos,




 Al seguir analizando el código vi algo que me llamo la atención que se parecía mucho al wannacry que fue esto:

Esto problablemente sea que viene empacado como el wannacry o es un password? y entonces ni tarde ni presuroso fui y le cambie la extensión a la muestra, la pase de .exe a .rar y trate de descomprimirla y......



 Fallo, estos que lo crearon parece que no cometieron los mismos errores que el wannacry, pero al continuar analizándolo me encuentro unos string references muy interesantes que pondré en dos imagenes siguientes y que iremos describiendo que son:




 Queeeeee usan  RNGCryptoServiceProvider para entender que esto y por que lo usan primero explicare que es un sistema de cifrado criptográficamente muy fuerte y que se usa como CLASS en . Net con el cual al encriptar genera numeros aleatorios criptograficos muy potentes y es muy útil este para generar claves de sesión aleatorias en AES, por ejemplo una vez que construye el objeto GetBytes () se pasa la longitud en bytes del número aleatorio que desea generar.

Pero por que usaron esta? pues fue muy fácil de usar y generar ya que se puede:

       Calcular el valor de hash para cualquier mensaje dado.
       Facil generar un mensaje que tenga un hash dado.
       Es imposible modificar un mensaje sin cambiar el hash.
       Es imposible encontrar dos mensajes diferentes con el mismo hash.


Tambien este cifrado tiene la carecterística de que en una función hash se le puede poner una huella digital única de una pieza de datos y generar un resumen de hash de un bloque de datos tambien
es muy fácil en .NET. y todavía mejor  se pueden usar varios algoritmos como MD5, SHA1, SHA256.


al seguir analizando el código en hexadecimal tambien me encontré que este ransomware usa:

RijndaelManaged


Uff amigos este virus tiene muchas mas sorpresas y podemos decir que este tipo de algoritmo de cifrado soporta longitudes de clave de 128, 192 o 256 bits; Por defecto a 256 bits y soporta tamaños de bloques de 128, 192 o 256 bits; Por defecto a 128 bits (compatibles con Aes) y puede ser usado en diferentes lenguajes como C# - C++ - F# - VB  claro de .NET.


y al seguirle analizando me llamó la atención este:


 Del cual puedo decir que lo usa para heredar todas las implementaciones de los algoritmos simétricos usados por este cosa fea donde con el BLOCKSIZE obtiene el tamaño de la operación criptografica  en bits  y del cual obtiene el IV que es el vector de inicialización del vector símetrico del offset 8DE2.


 Y del offset 6765745F4B obtiene la llave.



Como lo podemos ver en la imagen y tambien encontré que afecta y busca las versiones de windows:



y después encontré donde hace mención de los exploits usados:




Ahora podemos ver que al ser desensamblado del ransomware podemos ver que


NO  muestra ninguna función importada o exportada pero al ser visto en hexadecimal podemos darnos cuenta que usa la función importada:

KERNEL32.DLL

y la función integrada de kernel32 llamada:

VirtualProtectEx.


Para cambiar la protección de acceso de cualquier proceso.

Ahora como pudimos ver este virus solo tiene una función importada visible al desensamblado que es:

MSCOREE.DLL

Vemos que usa la funcion:  COREXEMAIN. de la cual podemos decir que la usa para inicializar el Common Lenguaje Runtime (CLR) que localiza el punto de entrada en el encabezado CLR del ensamblado ejecutable y comienza su ejecución.





Después de esto me di cuenta que descarga los componentes para infecciones secundarias  y que utiliza el HOST.EXE  para descargar el  componente de TOR del url



Y usa el servidor  ubgdgno5eswkhmpy.onion de donde descarga nuevos componentes, me conecto al servidor .onion, pero no usare Tor si no que lo haré directamente desde firefox para ver que nos dice y al tratar de conectarme me envía la siguiente información:



Con lo cual podemos ver que pide un login y password, ok hasta ahí todo bien, el siguiente paso es analizar el ransomware por el método de debugeo y tratar de encontrar los string references para ver que nos dicen.


ANALIZANDO LOS STRING REFERENCES DEL RANSOMWARE


Aquí lo importante es tratar de conseguir todos los string references y también los folder y archivos que contiene el virus con los cuales ataca la computadora, para eso voy a usar la técnica de debugeo por medio del OLLYDBG, pero recuerden NO VOY A EJECUTAR EL VIRUS OK.   SOLO LO CARGARÉ EN MEMORIA PARA EVITAR UNA INFECCIÓN.

 EMPEZEMOS HABER QUE ENCONTRAMOS:

1.- Primeramente abro el OLLYDBG en modo administrador y cargo a este bicho en el.



Como podemos ver el OLLYDBG NO LO CARGA, me imagino que tiene un tipo de protección antidebuggin, entonces voy a cargar unos plugins que me ayudaran a poder ver el código en el debugger y de repente vean lo que sale:


Listo, creo que no fueron tan inteligentes los creadores de este virus,  se ve que no saben proteger sus códigos maliciosos jejejejeje.

Pero quisiera comentarles que cuando logro abrir el código del virus en el debugger yeaaaaaa sucede lo mágico de esto, inmediatamente en mi computadora se crean 6 folders Y NADA DE INFECCIÓN en mi PC,  son los siguientes y que describiré ahora.




Si amigos como pueden ver ya obtuvimos todos los folder que contiene el EternalRocks.exe  OSEA EL VIRUS QUE SEGÚN ES UNO DE LOS MAS CABRONES EN EL MUNDO, PERO PARECE QUE LES FALTO SERLO MAS.

NOTA: QUE SE ME HACE QUE LES VOY A ENSEÑAR A LOS CREADORES DE ESE VIRUS A PROGERLO MEJOR.....   JAJAJAJAJJAJAJA   :P

Es mas al querer usar un examinador de IL aparece esto:


OSea podemos ver que no  baja de internet muchas cosas, mas bien ya las trae integradas.

ok continuemos con la descripción de cada folder:


FOLDER 1 (Bins)

Contiene 6o archivos que usa para su infección divididos por tipo de archivo:

  7 ejecutables
 7 archivos XML 



Como podemos ver estos son los exploits pero en formato xml, los cuales hablando un poco de XML son un subconjunto de SGML(Estándar Generalised Mark-up Language), simplificado y adaptado a Internet.

SGML (Estándar Generalised Mark-up Language)

    XML no es ,como su nombre puede sugerir, un lenguaje de marcado.
    XML es un meta-lenguaje que nos permite definir lenguajes de marcado adecuados a usos determinados.

Que no es XML

  1.     No es una versión mejorada de HTML
  2.     HTML es una aplicación de SGML por lo tanto de XML
  3.     No es un lenguaje para hacer paginas WEB
  4.     Y sobre todo no es difícil

¿Por qué XML?

  1.     Es un estándar internacionalmente conocido
  2.     No pertenece a ninguna compañía
  3.     Permite una utilización efectiva en Internet para sus diferentes terminales.

Definición

    Especificación para diseñar lenguajes de marcado, que permite definir etiquetas personalizadas para descripción y organización de datos.

¿Para que sirve XML?

  1.     Representar información estructurada en la web (todos documentos), de modo que esta información pueda ser almacenada, transmitida, procesada, visualizada e impresa, por muy diversos tipos de aplicaciones y dispositivos.
Ventajas de XML
  1.     Fácilmente procesable
  2.     Separa radicalmente el contenido y el formato de presentación
  3.     Diseñado para cualquier lenguaje y alfabeto. (encoding) 

Osea amigos con esta definición podemos darnos cuenta que ejecutan los exploits por medio de los XMl.



                                     FOLDER 2  (ShadowBrokers)


En este archivo podremos encontrar comprimidos los exploits, los ejecutables en bins y los payloads de este virus.
                      

                    FOLDER NO. 3   Configs


Este archivo contiene todos los archivos de configuración de los exploits que se ejecutan





FOLDER NO. 4   PAYLOADS

En este folder se encuentran  dos librerías de la configuración del EternalRocks.exe virus, las cuales se usaran según el sistema operativo infectado, ya sea 64 bits o 32 bits.

Y para terminar la parte no 1 de este análisis técnico del virus EternalRocks tenemos el folder temps en el cual se usa para ir almacenando los datos que va usando para la infección.

Bueno  amigos ya con esto podemos darnos cuenta como funciona el 

Ransomware EternalRocks y cabe mencionar por último que se conecta a su servidor .onion y baja archivos para la infección también.


Nota en este análisis como podrán ver no use ningún SANDBOX  ya que los sandbox te dan todo peladito y en la boca, es mejor hacer todo de forma manual, reverseando el código se pueden hacer las cosas sin infectar tu maquina.

Si tiene dudas o sugerencias favor de hacérmelas saber.

Saludos y si necesitan cursos de  seguridad informática contactenme.

Li. Rodolfo h. Baz
www.ccat.edu.mx
www.rodolfohbaz.net











































Ransomware WannaCry Parte 3: Lan Dispersion WannaCry Patch v 1.0



Bueno amigos vamos en la parte 3 de este conjunto de tutoriales donde explicaremos como trabajan los virus RANSOMWARE y usaremos de ejemplo el RASONWARE WANNACRY.

OK pero lo mas importante eh visto que no hay un parche automatizado para poder evitar la infección o dispersión de este virus por al red y me puse hace menos de 1 hr a programar un pequeño parche en c++ para ese fin.

  Con este patch que actualizará automáticamente tu sistema windows 7 para que ya no se pueda dispersar por la red ese virus, cabe señalar que solo evita la dispersión en red, no la infección a una computadora en particular.

Si tienen dudas pueden contactarme  les dejo el checksum de legitimidad como lo vimos en el OPENHACKING  Guatemala  saludos (Y).

Patch exe - MD5-checksum:  9f82c82aa5b58da8143a90e22e3dbc9b
Archivo comprimido - MD5 checksum:  63ff818c2c967dcde5e102ddc985dbdf

Link descarga:  LINK

Pequeño parche para evitar la infección en red.




Atentamente 

Li. Rodolfo H. Baz
www.ccat.edu.mx
www.rodolfohbaz.net

martes, 16 de mayo de 2017

Ransomware WANNA CRY - Parte 2: Desde WIndows - Como detectar si tu PC es vulnerable a infeccion en red



Otro día mas con el famosos y bien ponderado RANSOMWARE  llamado WANNA CRY, dejenme decirles que ya hasta me estoy encariñando con el, que hasta me dan ganas de llorar de sentimiento:


Me imagino que se preguntaran y por que de sentimiento?, bueno pues es que este virus en todos lados hablan de el, en las noticias lo ponen casi casi tan peligroso como el ebola, o como la fiebre de las aves el H1N1  y que según ahora hasta ya esta mutando... queeeeee MUTANDO?     a jijo,  que yo tenga entendido a las cepas principales de este virus informático NUNCA LE PUSIERON CÓDIGO POLIMORFICO O DE MUTACIÓN, BUENO la muestra que tengo no tiene esa parte que comento. 

A RESERVA DE QUE YA ALGÚN OTRO MALANDROSO HAYA MODIFICADO EL CÓDIGO FUENTE Y APROVECHÓ PARA HACERLO MAS POTENTE y quito el dominio de candado que aparece en el código del RANSOMWARE para hacerlo mas peligroso.

IMAGINEN EL ESCENARIO SI ALGUIEN LE METE ESA PARTE DE CÓDIGO, ufff amigos se destramparía mucho mas el escenario,  algo así como paso ya hace muchos años con el famoso y bien ponderado VIRUS NATAS (SATAN)  que fue descubierto en los años 1994   que me toco desensamblarlo y analizarlo en formato hexadecimal y ASM cuando muchos de ustedes todavía ni nacían o eran bebes y se quedaban dormidos en su periquera comiendo y que este virus infecto a el 90% de computadoras en México donde fue su prevalencia y tenia las siguientes características.


VIRUS NATAS  virus polimórfico con sistema de ocultación multipartita y que fue creado por aka PRiest y que al ser ejecutado se volvía residente en memoria y aparte infectaba el registro maestro de WINDOWS y se replicaba en todos los .com .exe.   upś fue un dolor en el chirriscuis ese virus como olvidarlo.

Todavia peor hubo 4 variantes mas de ese virus,  y por que explico esto?  pues para contestar esa noticia que de ahora el WANNA CRY MUTO.


Pero realmente si es que existe una variante, NO MUTO,  alguien lo modifico para que aprovechara algún puerto, protocolo o servicio para hacer mas daño, esperemos poder obtener una muestra de esa variante para analizarla.  SI LA TIENEN PASENMELA POR FAVOR.


 Bueno regresando al tema principal de este artículo de ver si nuestro sistema es vulnerable a poder ser infectado vía red, empezaremos a explicar paso a paso y sencillos, como  vemos si nos podemos infectar.

*NOTA  Cabe señalar que este proceso de verificación solo es para saber si somos vulnerables a infecciones vía red, ya que a infecciones directas no hay nada todavía que lo evite, solo no andar dando click en todos lados y dejando de ver paginas porno que ahí es donde mas se encuentran esas infecciones de virus.



EMPEZANDO LA VERIFICACIÓN SI SOMOS VULNERABLES EN UNA PC y en todas las computadoras de esa red.

Primeramente reinicio en Windows: 
 


Este ejemplo lo estoy haciendo EN SITIO, osea en una empresa que fue afectada las mas de 755 computadoras y que me pidieron apoyarlos a eliminarlo sin pagar un solo peso, bueno solo pagándome mis honorarios. ;p.

Para esta demostración usaremos un sistema operativo con las siguientes características:

Como primer paso bajarremos el NMAP y lo instalaremos en nuestro sistema vamos al link:

https://nmap.org/download.html#windows

y descargamos:  Latest stable command-line zipfile: nmap-7.40-win32.zip 

Una vez descargado en mi caso lo copiare en la raíz del Disco Duro para facilidad de acceso.
  


Una vez ahí abriremos  la url siguiente de donde bajaremos unos scripts especiales para la detección de estas vulnerabilidades que son usadas por el RANSOMWARE y que instalaremos en NMAP.

https://github.com/cldrn/nmap-nse-scripts/tree/master/scripts

y bajaremos específicamente los scripts de la imagen:


De ahí los copiaremos al folder llamado SCRIPTS del NMAp que descargamos y como podrán ver en el NMAP NO ESTA EL DE LA NUEVA VULNERABILIDAD.






Una vez descargados y copiados los scripts quedará así el folder:

Una vez hecho esto estamos listos para probar nuestro sistema y ver si somos vulnerables.

Para eso vamos y entramos al CMD de Windows y nos dirigimos al folder donde esta el NMAP:

Nota: Cabe señalar que le cambie los colores a la ventana de CMD de Windows para que se viera mas PRO.  ya que si lo ven como siempre muchos dirán ahhh es chafita.   jajajajajajaja

Una vez ahí ya tenemos todo listo para empezar a revisar , pero antes tendremos que verificar en que rango de ip´s estamos en la red con el comando IPCONFIG:




Como podemos ver estamos en el rango de IP:   192.168.0.1 - 192.168.0.254

 Ok ahora si pondremos el siguiente comando en NMAP y se lo aplicaré a mi computadora para ver si soy vulnerable:

nmap -sC -p445 --script smb-vuln-ms17-010.nse 192.168.0.17 
Y  ........................





 Como podemos ver este script me dice que mi PC no es vulnerable, ok, probemos con otra PC en la red que estoy, pero para saber que computadoras están en la red, usaré el LANSPY de la empresa LANTRICKS para que me haga un barrido de las computadoras y sus datos específicos de cada una de ellas:

http://lantricks.com/download/lanspy_setup.exe




 Esperamos unos segundos y nos muestra todas las computadoras y celulares que están en la red conectados y con esto tendremos para poder ir probando cual es vulnerable a la diseminación de este RANSOMWARE:




Una vez  que tenemos esa lista de computadoras analizamos otra mas que en esta ocasión será 192.168.0.23 y vemos que:




Pero ahora iremos un poco mas allá haciendo un barrido de todo el rango de computadoras en esa red, para eso usaremos el siguiente comando:


nmap -sC -p445 --script smb-vuln-ms17-010.nse 192.168.0.*  

 El Barrido tardará un poco pero nos dará frutos increíbles ya que nos monstrará las computadoras vulnerables a este ataque:




foto 2


Y así hasta mostrarnos todo el rango, con esto podremos darnos una idea que tan vulnerable esta nuestra red  a la diseminación de este RANSOMWARE WANNACRY y como juanchas a actualizar y parchar nuestros windows.

Nota: Este documento esta basado en uno que vi por ahí y que lo explican desde Kali LINUX, lo aumente y explique todo desde Windows instalando todo desde el inicio.

Espero Les guste.

Saludos

Li.- Rodolfo H. Baz.
www.rodolfohbaz.net.




Crowdstrike -> Solución de errores de actualización de CrowdStrike con BitLocker habilitado

En este pequeño articulo ver como componer el problema de CROWDSTRIKE cuando esta habilitado el BITLOCKER, cabe resaltar que puede ser una e...