domingo, 10 de marzo de 2013

NMAP a la orden del pentesting

nmap es una herramientas muy necesaria para realizar diversos ataques ya sean de recoleccion de informacion o de verificacion de vulnerabilidades. El echo es que nmap va a estar siempre presente, pero alguno sabe realmente el poder que tiene esta herramienta?.

La mayoria de gente lo unico que sabe es que nmap sirve para sacar puertos, versiones de software y pare de contar, pero esto no es realmente asi nmap es una herramienta muy poderosa cuando es enfocada en el mando equivocado. Hace algun tiempo vengo observando el funcionanmiento de los scripts de nmap algo realmente facinante.   En el directorio

C:\Archivos de programa\Nmap\scripts



encontraremos gran variedad de script listo para utilizarse, no quiero comenzar un post igual que todos los de la red, que sean como enseñar a escanear un puerto, sacar una version un puerto en especifico. No al contrario quiero dar algo distinto a lo encontrado en internet.

Utilizando nmap con scripts

como utilizamos nmap con algun script sencillo solo tenemos que agregar la opcion --script, pero estate pendiente porque cada vez que escaneas un host y lo haces como un scriptkiddie solo lograras dejar mucho log y haci dejarias mucho rastro primero te aconcejaria que escanearas el server para ver que puertos tiene abiertos luego ya te animas a utilizar los scripts no comienzes a mandar comandos al azar xD.

nmap -p 80, 443 -d --script dns-brute.nse www.website.com



como podemos ver tenemos un pantallo de lo que nos arroja el script de dns-brute, tenemos gran variedad de script, cada uno arrojandonos informacion hacerca del website, en este caso optuvimos algunos servidores dns.

otro ejemplo de uso de scripts de nmap

nmap -p 80,443 -d --script http-email-harvest.nse www.website.com






obtuvimos algunos correos para continuar con nuestra fase de recoleccion de informacion, tan solo es probar los scripts, pero no arrojes al azar verifica bien los servicios que estan corriendo y luego elije un script apropiado.





Como crear nuestro propio script?

 Los scripts de nmap pueden ser creados con alguna complejidad o facilidad depende de como lo quieras tomar, vamos a analizar la creacion de un script desde 0. Todo script de nmap tiene que tener esta estructura.
  • description
  • categories
  • portrule ó hostrule 
  • action

 La descripcion es la informacion que le colocamos a nuestro script 

categoria encontramos algunos nombres


  • safe modo inofensivo para el objetivo.
  • intrusive algo más intrusivo que el anterior pero, casi seguro, no causará problemas en el objetivo.Tener en cuenta wue usará algunas contraseñas prefijadas en los scripts y es posible que genere logs en el objetivo. Hay que tener cuidado pues.
  • malware para descubrimiento de malware y similares
  • version mayor potencia en la detección de versiones. Requiere -sV
  • discovery distintas pruebas de descubrimento en una red “interrogando” al los distintos servicios
  • vulnerability testeo de una vulnerabilidad en concreto
portrule o hostrule es la regla que le aplicamos a nuestro script puede ser tcp o udp

action es la accion que va a realizar nuestro script



 Para nuestro ejemplo he decicido crear un script sencillo, que nos devuelva el codigo fuente de una pagina web con una peticion GET.



/************************************************************************/


request.nse


description = [[    Descripcion del script ]]

author = "3p1c0w3nd"

license = "http://ojodelared.blogspot.com"


categories = {"discovery", "safe"}
local http = require "http"
local shortport = require "shortport"

portrule = shortport.http


function action(host, port)

    local status = http.generic_request(host, port, "GET", "/")
   
   
        if status then
            return status
       
   end

 end
    


el codigo que se encuentra en azul es la informacion de nuestro script, el codigo rojo ya son las acciones que nuestro script.  Primero declaramos variables con la palabra local





   

local http = require "http"
local shortport = require "shortport"


esto nos sirve para importar algunas librerias de nmap y poder trabajar con ellas.


portrule = shortport.http

estamos diciendo que vamos a trabajar con el http

function action(host, port)

    local status = http.generic_request(host, port, "GET", "/")
   
   
        if status then
            return status
       
   end

 end


finalmente nuestro codigo que realizara una peticion GET y si tiene algun resultado nos lo devolvera.






Obtenemos la salida de nuestro script, se pueden implementar mas script con el uso de las funciones,dejo algunos enlaces para mas informacion la respecto. Espero que les halla gustado tan solo es un comienzo de algo muy gigantesco pero con un poco de esfuerzo y lectura terminaras creando algunos scripts muy interesantes.

Recuerda que todo este material es educativo, asi que no profundizo mucho sobre el tema dejo algunos enlaces por si te causa curiosidad leas un poco.


3p1c0w3nd







Referencias

http://seguridadyredes.wordpress.com/2010/02/25/nmap-nse-scripting-breve-resena-para-creacion-y-ejecucion-scripts-nse-nmap-parte-1/
http://seguridadyredes.wordpress.com/2010/02/26/nmap-nse-scripting-breve-resena-para-creacion-y-ejecucion-scripts-nse-nmap-parte-2/
http://nmap.org/book/nse-library.html
http://systemadmin.es/2011/09/crear-script-nse-conexiones-tcp-nmap





No hay comentarios:

Publicar un comentario