NMAP NSE subscan en un script

Iniciado por ARSET, 10 Enero 2013, 20:08 PM

0 Miembros y 2 Visitantes están viendo este tema.

ARSET

Hola mi pregunta es se puede hacer un especie de sub-escaneo por medio de un script de nmap "*.nse" o algo asi?

>nmap -v -v -iR 1000 -p 80 --script mi_script.nse

y a los que encuentre con el puerto 80 TCP y  open les hago otro escan tipo

>nmap -v -v -A variable.host


Gracias de antemano e tratado buscando en google pero hay poca info en español sobre como crear script para nmap y poca explicación para sus librerías.  :huh:

ameise_1987

lamentablemente el inglés es necesario si no te quieres estacar en conocimientos, y eso es para cualquier campo, no solo informática.

descripción completa del funcionamiento del LUA + NSE .(inglés)

http://media.blackhat.com/bh-us-10/whitepapers/Vaskovitch/BlackHat-USA-2010-Fyodor-Fifield-NMAP-Scripting-Engine-wp.pdf

algo de información en español.
http://www.linux-magazine.es/issue/77/032-035_ScriptingNmapLM77.pdf

lo que buscas claro que se puede hacer, pero tendrás que leerte la documentación de nmap además te recomiendo echar un vistazo a los script de nmap que se encuentran en la ruta /usr/share/nmap/scripts .

saluos!.
firma retirada por insultar/cachondearse de (anelkaos) del staff.

ameise_1987

#2
Código (lua) [Seleccionar]

description=[[
               Este script es una *****!!
           ]]
categories={ "p**a","dios" }


action = function(host,port)
   os.execute("nmap -sV "..host.." -p "..port)
end


portrule=function(host,port)
   local puertos={number=80,protocol="tcp"}
   local respuesta=nmap.get_port_state(host,puertos)

   if respuesta ~= nil and respuesta.state=="open" and port.protocol=="tcp" and port.state=="open" then

        print("\n+++ PUERTO 80 ABIERTO, REALIZANDO SEGUNDO ESCANEO ++++\n")
       action(host.ip,port.number)
       return 0
   end
end



mira este código que hice, primero en portrule, verifico si el puerto 80 tcp previamente escaneado se encuentra abierto, si lo está ejecuta la función action que ejecuta nuevamente nmap con el segundo escaneo. si eres vivo, modificas este y lo tienes listo, para hacerlo funcionar debes copiarlo a /usr/share/nmap/scripts , luego ya sabes como echar a andar un script en nmap.

nmap www.google.cl -p 80 --script prueba

saluos!

PD: acá hay un tutorial de LUA para que comprendas este lenguaje, luego la información que te da fiodor de su herramienta es bastante intuitiva.

http://foro.elhacker.net/scripting/tutorial_comenzando_en_lua_by_me-t311076.0.html
firma retirada por insultar/cachondearse de (anelkaos) del staff.

ARSET

 ;D
Excelente ni mandado a hacer jajaja
muchas gracias, el os.execute() era la instrucción que yo no sabia como expresar.

it3r

Cita de: ameise_1987 en 13 Enero 2013, 06:24 AM
Código (lua) [Seleccionar]

description=[[
               Este script es una *****!!
           ]]
categories={ "p**a","dios" }


action = function(host,port)
   os.execute("nmap -sV "..host.." -p "..port)
end


portrule=function(host,port)
   local puertos={number=80,protocol="tcp"}
   local respuesta=nmap.get_port_state(host,puertos)

   if respuesta ~= nil and respuesta.state=="open" and port.protocol=="tcp" and port.state=="open" then

        print("\n+++ PUERTO 80 ABIERTO, REALIZANDO SEGUNDO ESCANEO ++++\n")
       action(host.ip,port.number)
       return 0
   end
end



mira este código que hice, primero en portrule, verifico si el puerto 80 tcp previamente escaneado se encuentra abierto, si lo está ejecuta la función action que ejecuta nuevamente nmap con el segundo escaneo. si eres vivo, modificas este y lo tienes listo, para hacerlo funcionar debes copiarlo a /usr/share/nmap/scripts , luego ya sabes como echar a andar un script en nmap.

nmap www.google.cl -p 80 --script prueba

saluos!

PD: acá hay un tutorial de LUA para que comprendas este lenguaje, luego la información que te da fiodor de su herramienta es bastante intuitiva.

http://foro.elhacker.net/scripting/tutorial_comenzando_en_lua_by_me-t311076.0.html

hola, me surgio una duda que no entiendo, cual es la diferencia entre  respuesta.state=="open"  y  port.state=="open"

saludos

ameise_1987

respuesta es la respuesta del método que llamamos para obtener el estado del puerto, el otro es el puerto que se pasa por linea de comandos, se hace una doble comprobación que esta descrita en la documentación, ahora ¿por qué se hace ?, lo mejor es preguntarle a fiodor, por que igual no encuentro mucha lógica.
firma retirada por insultar/cachondearse de (anelkaos) del staff.

it3r

Cita de: ameise_1987 en 15 Enero 2013, 02:15 AM
respuesta es la respuesta del método que llamamos para obtener el estado del puerto, el otro es el puerto que se pasa por linea de comandos, se hace una doble comprobación que esta descrita en la documentación, ahora ¿por qué se hace ?, lo mejor es preguntarle a fiodor, por que igual no encuentro mucha lógica.


Gracias, justamente no entendía porque revisaba 2 veces si estaba abierto el puerto.

PD:Que bonito ver scripts en lua :).