Tag Archive pentesting

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!

ByDrok3r

ACRYLIC WiFi | Análisis de redes WiFi [Information Gathering Tool]

Cuando realizamos un pentesting, debemos iniciar con la fase de recopilación de información sobre nuestro objetivo, para eso debemos de contar un “arsenal” de herramientas, con las cuales poder recopilar información.

Tener mas de una herramienta u opción para realizar esta tarea. Por ejemplo en el post de Pentesting de redes WiFi | Fase de recolección de información utilice dos herramientas para recopilar información sobre nuestra red objetivo. NetSpot y WiGLE las cuales aparte de ayudarme a recopilar información sobre la red objetivo, pude encontrar mas información, pues hacer mas de un escaneo de nuestro objetivo, y con distintas herramientas es muy recomendable.

Ahora hablare de otra herramienta que a mi parecer es muy buena pero tiene un inconveniente para los usuarios que creen en que todo es gratuito, pues esta herramienta es paga, aunque tiene su versión gratuita no es igual que la versión paga, pero de podemos probar la versión pro por unos días.

ACRYLIC WiFi es una herramienta que nos permite administrar las redes hasta realizar tareas de seguridad.

Incluso nos permite realizar escaneos de cobertura de una red WiFi, identificar contraseñas por defecto tanto WEP, WAP o WPS entre una gran cantidad mas de funciones.

Esta herramientas nos facilita tanto el trabajo, que incluso tiene su propio blog (ACRYLIC WiFi Blog) en donde podemos encontrar temas desde la administracion de una red, la cobertura que esta tiene y algo que nos puede interesar, que es la seguridad.

Entre tantas de las utilidades que tiene esta herramienta, nos enfocaremos en lo que necesitamos, recopilar información de nuestra red objetivo para las prubas de intrusión.

Apenas iniciamos esta herramienta inmediatamente realiza un escaneo de las redes que tenemos a nuestro alcance, incluyendo nuestra red objetivo.

En la parte superior tenemos un panel en donde se muestran las redes detectadas e información de cada una de ellas en una tabla. Mientras que en la parte inferior tenemos otro panel gráfico en donde tenemos mas información de la red WiFi, específicamente información sobre la señal, desde la calidad hasta la conectividad.

Nosotros nos enfocaremos en nuestra red objetivo (c934a2) y la información que esta herramienta nos ofrece, Recordando la información que ya habíamos recopilado en la primera fase del pentesting, veremos si tenemos nueva información.

  • SSID
    • c934a2
  • BSSID
    • 60:02:92:E6:IF:14
  • Canal
    • 1 – 2.4 GHz
  • RSSI.
    • -30dBm – 50dBm
  • Tipo de Red.
    • Hogareña –
  • Seguridad.
    • WPA2-PERSONAL
  • Vendedor – Fabricante
    • PEGATRON – CISCO
  • Encriptación
    • WPA-PSK-CCMP-TKIP
  • WiFi Protected Setup
    • ACTIVO
  • ISP – Proveedor de Servicios de Internet (por comprobar)
    • Megacable México
  • Router (por comprobar)
    • Cisco DCP3925

En el panel inferior en la sección Detailed info tenemos mas información de una red seleccionada.

Ahora tenemos mucha mas información, que al inicio. Este es un ejemplo de como realizar mas de un escaneo con distintas herramientas nos puede ser de utilidad, ya que podemos encontrar algo que el primer escaneo nos arrojo.

Acrilyc también nos permite visualizar los paquetes en hexadecimal y aplicar filtros.

Por otra parte, podemos exportar los resultados del escaneo de nuestra red objetivo, a archivos .txt, .html y .csv. La facilidad de poder exportar la información de nuestra red objetivo,

Con este reporte podemos analizar con mas tranquilidad la información de nuestra red objetivo. Por ejemplo dentro de nuestro informe nos indican que tenemos un problema de saturación de señales WiFi en el canal 1, que es cierto, ya que si vemos las redes que están activas mas de 1 utilizan este canal.

Lo recomendable es no quedarse con un solo scanner, sino ir buscando mas y mejores que se puedan adaptar a nuestras necesidades.

ByDrok3r

Xiaopan OS | Auditar redes WiFi

En la actualidad podemos encontrar una gran cantidad de distribuciones de Linux para el pentesting, como por ejemplo tenemos Kali Linux, Parrot, WiFiSlax, entre otros, cada uno con una gran cantidad de herramientas para distintos tipos de pruebas de seguridad ya sea en sistemas, bases de datos o en este caso redes.

Cuando buscamos alguna distribución de linux para el pentesting de redes la primer recomendación siempre es WiFiSlax uno de los sistemas para el testeo de redes mas completo. Contiene una gran cantidad de herramientas, desde herramientas para camuflar la MAC hasta creadores de diccionarios para ataques de fuerza bruta.

En este caso hablaremos de un sistema diseñado para auditar las redes WiFi. La diferencia que tiene este OS con WiFiSlax es que este esta pensado para usarse en computadoras de muy pocos requisitos, (incluso funciona en Pentium 2 con 128 MB de RAM). Esta basado en Tiny Core Linux, ocupando 77.5mb.

Las herramientas pre-instaladas que contiene este OS son:

  • Bully
  • FeedingBottle
  • Inflator
  • Wifite
  • Minidwep_GTK
  • Bip

Resultado de imagen para xiaopan

Resultado de imagen para Xiaopan OS

Podemos descargar Xiaopan OS de su pagina oficial