Tag Archive black

BySin Rostro

Reversing en Malware 2 – Hashing.

Un hash es un algoritmo matemático que es generado/creado a partir de una entrada como un texto, una contraseña o un archivo. Pero hoy lo usaremos en análisis de malware 😈.

¿NOS SIRVE EN ANÁLISIS DE MALWARE?

La respuesta es si.

Los hash son generados tomando bloques de datos arbitrarios y devolviendo una serie de caracteres con una longitud especifica. Es decir que a partir de los datos de entrada se genera la cadena que solo puede volverse a generar con esos mismos datos. Bueno en teoría eso debe de pasar pero en algunos casos como el de SHA1 que en meses anteriores ha sido colisionado por Investigadores de Google.

Aun así existen muchos más algoritmos. En nuestro caso vamos a estar utilizando MD5. ¿Pero? que es exactamente y como es que funciona.

Ya saben que no me gusta atiborrarlos de información además de que no estamos en un curso de cifrado 😆, así que tratare de explicarles en practica.

Imagina que estas descargando un archivo “juego.exe”, en la página del desarrollador menciona que el MD5 es:

8033E2DDE927771A125F26A158C282A3

Pero al descargarlo te das cuenta de que el MD5 que generas tu con ese mismo archivo es:

5F778048775E0ECE6DBB97B6997019B2

Claramente no es igual lo que nos da a pensar de acuerdo a la introducción de más arriba, que el archivo tiene bloques de datos diferentes al archivo que han desarrollado los creadores, con esto podríamos concordar en que este archivo puede contener código que bien podría o no, ser malicioso 😈😈.

Pasemos a la practica 😉

Tengo aquí un archivo.

Utilizare una utilidad llamada “QuickHash”

Después de abrir el archivo con la utilidad y elegir MD5 nos genera la cadena correspondiente a ese archivo

Y así de sencillo podríamos obtener el MD5 de los archivos. Bien con eso ya sabemos una manera de obtener MD5, pero para que nos sirve el MD5 en análisis de malware?

Bueno imagina que este archivo es un sample que tienes que analizar, para no subir el archivo completo a un motor de búsqueda que te ayude a saber si es o no una amenaza (ya sabes puede pesar mucho y aveces nuestras datas no alcanzan 😂), bueno pues con el MD5 podemos averiguar lo que queremos.

Para ello usaremos un sitio bastante conocido virusTotal y con el MD5 obtenido veremos los resultados que nos arroja.

Quiero que vean algo, el primer parámetro, el que esta arriba del nombre del archivo dice:

SHA256: 46532f3def025aca4da1fa5646f5d19fafb2ec00e3b262ad87712ec6756902f9

Este es un tipo de hash yo ingrese el MD5 no el SHA256. Lo que sucede es que ese motor de búsqueda calcula además del MD5 otros datos para que se tenga total certeza de que hablamos del mismo:

Y ahora mi parte Favorita 😍

Hazlo con python 😁

He desarrollado un pequeño script en python que nos calcula el MD5 del archivo.

# Script en python para calcular Hash MD5
# Analizar Samples
# Desarrollado por Eric Alberto Martínez
# Hacking Publico & sistemas informáticos
# AguasHack - No Hacking No Fun
# Versión 1.0
''' Este script permite calcular el Hash MD5 de archivos
  
    el código puede ser manipulado y/o copiado manteniendo las 
    11 primeras lineas de código.
''' 

# Importar librerías
import hashlib

# Acontinuación creamos una función
# que nos permitira abrir un archivo leer
# sus datos y generar su Hash MD5
 
def calcularMd5(archivo):
  archivo = open(archivo, 'rb')
  print "\nEl MD5 es: " + hashlib.md5(archivo.read()).hexdigest()
  archivo.close()

print "Hola, Ingresa la ruta del archivo"
archivo = raw_input("\n::> ")
calcularMd5(archivo)

Y., uno más un poco mejor elaborado, con este script interactuamos con el sitio de Virus Total para obtener los resultados del sitio. El script aun esta en desarrollo le quiero dar un poco más de formato, teniendo en cuenta que lo acaba de crear creo que es funcional y para nuestras pruebas durante las próximas entradas sera suficiente.

Como puedes ver son los mismos resultados que nos genero en la web de virustotal

– Nota:  Trate de dejarlo lo más simple posible le añadí comentarios a casi todo el código para que sea un poco más fácil de entender.

# Analizar Samples 
# Api VirusTotal
# Desarrollado por Eric Alberto Martinez
# Hacking Publico & sistemas informaticos
# AguasHack - No Hacking No Fun
# Version 1.0
''' Este script permite calcular el Hash MD5 de archivos
    y manipular los resultados obtenidos en Virus Total,
    el codigo puede ser manipulado y/o copiado manteniendo las 
    11 primeras lineas de codigo.
''' 
# Importamos librerias

import requests
import hashlib

# Tu llave API de virus Total (Tienes que registrarte)
apiKey = ''
    
# clase para obtener datos o subir archivos
class virusApi:
    

    # Funcion para escanear un archivo
    def escanear(self, apiKey, archivo):
        print "Analisando el archivo...\n"
        # Configuramos la APIKEY
        params = {'apikey': apiKey}
        # Abrimos el archivo en modo binario                                    
        files = {'file': (archivo, open(archivo, 'rb'))} 
        # Hacemos la peticion al sitio              
        response = requests.post('https://www.virustotal.com/vtapi/v2/file/scan', 
                                files=files, params=params)
        # obtenemos la respuesta del sitio
        json_response = response.json()                                 
    
    # Funcion para Re-escanear
    def rescanear(self, apiKey, md5):
        # confirguramos la APIKEY y el hashMD5
        params = {'apikey': apiKey, 
                'resource': md5}                                        
        # Hacemos la peticion al sitio
        response = requests.post('https://www.virustotal.com/vtapi/v2/file/rescan',
                                params=params)
        # Obtenemos la Respuesta del sitio                          
        json_response = response.json()                                 
    
    # Funcion para Obtener los resultados de un analisis
    def obtenerResultados(self, apiKey, md5):
        print "Obteniendo Resultados...\n"
        # Configuramos la APIKEY y el HashMD5
        params = {'apikey': apiKey, 
                'resource': md5} 
        # Creamos las cabeceras                                     
        headers = {
          "Accept-Encoding": "gzip, deflate",
          "User-Agent" : "gzip,  Mi Aplicacion python para VirusTotal"
          }     
        # hacemos la peticion al sitio                                                      
        response = requests.get('https://www.virustotal.com/vtapi/v2/file/report',
                                params=params, headers=headers)
        # obtenemos la respuesta del sitio      
        json_response = response.json() 
        # obtenemos solo las claves de la respuesta                             
        claves = json_response.keys()   
        # declare una variable                              
        x = 'scans'     
        # ciclo para obtener los primeros resultados excepto los de la deteccion                                                 
        for clave, valor in json_response.items():  
            # si la clave no es igual a 'scans'                 
            if clave != x:
                # imprimimos los primeros resultados                                                
                print clave, ':\t\t', valor
        # declaramos una lista                          
        lista = []
        # ciclo para obtener las claves del segundo resultado                                                       
        for i in json_response['scans'].keys(): 
            # agrega cada clave a la lista                              
            lista.append(i) 
            # Reasignamos la variable                                           
            j = json_response
            # Variable que contiene si el archivo es detectado o no p/c antivirus                                           
            detectado = str(j['scans'][i]['detected'])
            # Variable que contiene el tipo de amenaza que es detectada p/c antivirus                  
            resultado = str(j['scans'][i]['result'])
            # imprimimos el resultado                   
            print i + "\t\t" + detectado + "\t\t" + resultado           

# Instanciamos la clase
virusTotal = virusApi()                                                 
'''
Creo que apartir de aqui el codigo no necesita explicacion
ya que son cosas basicas que son faciles de entender, aun 
asi si existen dudas no duden en comentar en el grupo de
Hacking Publico & sistemas informaticos
'''
print "\nHola, Bienvenido\nQue deseas hacer?"
print '''
[1] Escanear
[2] Re Escanear
[3] Obtener resultados
'''
eleccion = raw_input("\n::> ")
if eleccion == '1':
    archivo = raw_input("\nIngresa la ruta del archivo \n::> ")
    virusTotal.escanear(apiKey, archivo)                                
    archivo = open(archivo, 'rb')
    # Calculamos el MD5 del archivo                                     
    md5 = hashlib.md5(archivo.read()).hexdigest()                       
    archivo.close()
    print "El hashMD5 del archivo es: " + md5
    virusTotal.obtenerResultados(apiKey, md5)
elif eleccion == '2':
    archivo = raw_input("\nIngresa la ruta del archivo \n::> ")
    archivo = open(archivo, 'rb')
    # Calculamos el MD5 del archivo
    md5 = hashlib.md5(archivo.read()).hexdigest()
    archivo.close()
    print "El hashMD5 del archivo es: " + md5
    virusTotal.rescanear(apiKey, md5)
    virusTotal.obtenerResultados(apiKey, md5)
else:
    archivo = raw_input("\nIngresa la ruta del archivo \n::> ")
    archivo = open(archivo, 'rb')
    # Calculamos el MD5 del archivo
    md5 = hashlib.md5(archivo.read()).hexdigest()
    archivo.close()
    print "El hashMD5 del archivo es: " + md5
    virusTotal.obtenerResultados(apiKey, md5)

Bueno hasta aquí esta entrada creo que lo han tomado bien, 😅😅 nos leemos en la próxima entrada.

Saludos Hackers!

Bycarenki

Tipos De Pruebas de Penetración

Cuando se realiza una prueba de seguridad o de penetración, un hacker ético utiliza uno o más tipos de pruebas en el sistema.

Read More

Bycarenki

Ethical Hacking, ética y legalidad

La mayoría de la gente piensa que los hackers tienen una extraordinaria habilidad y conocimiento que les permiten introducirse en los sistemas informáticos y encontrar Información valiosa.

El término hacker evoca imágenes de un joven genio de las computadoras que escribe algunos comandos en la pantalla de la computadora y ¡voilà! La computadora arroja contraseñas, números de cuenta, u otros datos confidenciales. En realidad, un buen hacker, o profesional de la seguridad que actúe como un hacker ético, entiende cómo funciona un sistema informático para saber qué herramientas emplear con el fin de encontrar puntos débiles en la seguridad.

En este documento se usarán las mismas técnicas y herramientas de software que muchos hackers utilizan para recopilar datos valiosos y atacar sistemas informáticos.

El objetivo de este primer capítulo es presentarle el mundo de los hackers y definir la terminología utilizada en el ámbito de la seguridad informática. Para ser capaz de defenderse contra los hackers maliciosos, los profesionales de la seguridad deben entender primero cómo emplear las técnicas de hacking ético. Se detallarán herramientas y técnicas utilizadas por los hackers para que las pueda utilizar para identificar riesgos potenciales en sus sistemas.

Un hacker ético actúa como un profesional de la seguridad al realizar pruebas de penetración y deben actuar siempre de manera profesional para diferenciarse de los hackers maliciosos.

Definiendo al Hacking Ético

Como se ha mencionado anteriormente, los hackers éticos siempre deben actuar de forma profesional de forma que se diferencien a sí mismos de los hackers maliciosos. Ganándose la confianza del cliente, solicitando autorización en el acceso de los datos y tomando todas las precauciones para no dañar los sistemas durante las pruebas de pen testing. Este es uno de los caminos en el que los hackers éticos pueden superar el estereotipo de los hackers y ganar la confianza de los clientes.

Comprendiendo el objetivo del Hacking Ético

¿El hacking puede ser ético? ¡Por supuesto que sí!

Los hacker éticos normalmente son profesionales de la seguridad o pentesters que utilizan sus habilidades como hackers para encontrar vulnerabilidades en sus redes y sistemas utilizando las mismas herramientas que un hacker malicioso utiliza para comprometer una red. Cualquier profesional del cómputo puede aprender las habilidades del hacker ético.

En contraparte al hacker ético tenemos a los hackers maliciosos, quienes utilizan herramientas de forma ofensiva para atacar sistemas, redes, así como robar información, realizar ataques DoS (Denegación de servicio), diseminar virus y software malicioso. Otra forma de llamar a los hacker maliciosos es con el término “Cracker”.

Los hackers pueden agruparse en 3 categorías:
Sombrero blanco (White hats): Los “chicos buenos”, los Ethical Hackers
Sombrero negro (Black hats): Los “chicos malos”, los Hackers Maliciosos = Crackers
Sombrero gris (Gray hats): Hackers buenos o malos; dependiendo de la situación.

Tipos de Hacker

Los Hackers Éticos normalmente caen en la categoría de Sombrero blanco, sin embargo es común que profesionales de la seguridad empiecen como de Sombrero Gris, y al adoptar la metodología del Hacker Ético terminen como de sombrero blanco.

Sombrero Blanco

Se les denomina así a los hackers éticos que utilizan sus habilidades para propósitos defensivos. Los hacker de sombrero blanco normalmente son profesionales con conocimientos de hacking y del uso de las herramientas de hacking y utilizan este conocimiento para encontrar vulnerabilidades y corregirlas.

Sombrero Negro

Los de sombrero negro son los “chicos malos”, los hackers maliciosos utilizan su habilidad para obtener acceso no autorizado, una vez obtenido esto, lo utilizan para robar, dañar, impedir el uso de los sistemas a sus propietarios, destruir información u obtener algún beneficio. Esta es la definición de hacker que la mayoría de la gente conoce y que piensa que es. Sin embargo el término que se debe utilizar para ellos es el de Cracker.

Sombrero Gris

Los hackers de sombrero Gris pueden trabajar de forma ofensiva o defensiva, dependiendo de la situación. Es la línea que delimita al Hacker Ético del Cracker.  Los Hackers de sombrero Gris se interesan en las herramientas y técnicas que utilizan los Crackers pero no los utilizan para hacer daño. De hecho muchos hackers de sombrero gris, se auto proclaman Hackers Éticos. Los Sombreros Gris suelen señalar vulnerabilidades o tienden a educar a las víctimas, de modo que las puedan corregir. Estos hackers hacen un favor a sus “víctimas”. Por ejemplo, si se encuentra un fallo de seguridad en un servicio ofrecido por un banco de inversiones, el hacker le está haciendo el favor al banco al darle oportunidad de corregir la vulnerabilidad.

 

** eof **

 

¿Deseas participar en nuestro grupo de estudio para aplicar la certificación CEH? 

Aplicación de medidas para la implantación de la L.O.P.D. en las empresas

Obtendrás información ampliada a la que has leído en este artículo, y material adicional, visita https://ehack.mx/portfolio-view/material-de-estudio-ceh-online/ para más información o ecríbenos a ceh@ehack.mx

 

Ethical Hack

Ethical Hack

 


Fuentes:

“Ethical Hacker”: Imagen cortesía by Stuart Miles en FreeDigitalPhotos.net

Licencia de Creative Commons
Ethical Hacking, ética y legalidad by carenki basado en una obra de CEH is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.