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:
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!.
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
;D
Excelente ni mandado a hacer jajaja
muchas gracias, el os.execute() era la instrucción que yo no sabia como expresar.
Cita de: ameise_1987 en 13 Enero 2013, 06:24 AM
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
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.
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 :).