Análisis de archivos de datos NSE en Nmap
1. La ubicación del archivo de datos en Nmap
En los sistemas operativos Windows, estos archivos están todos en C:\Program Files\Nmap\NSElib\data
carpetas, los sistemas de 64 bits son ligeramente diferentes
En la familia de sistemas operativos Linux, estos archivos están en /usr/local/share/Nmap/NSElib/data
y/usr/share/Nmap/nselib/data
2. Archivos de datos de lista de nombre de usuario y contraseña utilizados en fuerza bruta
Muchos servicios utilizan nombres de usuario y contraseñas para la autenticación. Al auditar la seguridad de la contraseña del servicio, se deben usar dos archivos de datos, uno almacena una gran cantidad de nombres de usuario y el otro almacena una gran cantidad de contraseñas.
usernames.lst
El contenido es muy simple, abre este archivo:
passwords.lst
El contenido es más rico, probablemente contiene más de 5000 palabras comunes y combinaciones de letras:
3. Archivo de datos de auditoría de aplicaciones web
http-huellas dactilares.lua
Este archivo es un archivo de datos guardado en forma de tabla Lua.Este archivo contiene información sobre algunas aplicaciones web comunes, incluida la ubicación de los archivos clave en estas aplicaciones.
Nmap permite http-fingerprints.lua
expandir el archivo y la información de un nuevo archivo de aplicación web se puede agregar al archivo de la tabla en cualquier momento
Si desea usar otros archivos de datos cuando se ejecuta el script http-enum, también puede usar parámetros para especificarlo durante la ejecución --script-args http-enum.fingerprintfile
. Por ejemplo, para usar ./myfingerprints.txt
, puede ejecutar el siguiente comando:
Nmap --script http-enum --script-args http-enum.fingerprintfile=./myfingerprints.
txt -p80<target>
http-sql-errores.lst
Este archivo de datos contiene algunas cadenas que identifican errores. Este archivo de datos es http-sql-injection
utilizado principalmente por secuencias de comandos. Se utiliza para completar la detección de si la aplicación puede resistir la inyección de SQL
También puede usar parámetros http-sql-injection.errorstrings
para cambiar el archivo de datos que se usa cuando se ejecuta este script.
http-web-files-extensiones.lst
El archivo de biblioteca en NSE http-spider
utilizará este archivo durante el proceso de escaneado de la página. Este archivo contiene más de 200 extensiones de aplicaciones web comunes, y otras extensiones de aplicaciones web se pueden agregar fácilmente a este archivo
http-devframework-huellas dactilares.lua
Este archivo de datos está compuesto por una tabla Lua, llamada por el script http-devframework, el propósito es detectar el lenguaje de desarrollo de la aplicación web de destino, como ASP, PHP, etc.
Por ejemplo, aquí hay un fragmento de código Lua que detecta el marco Django:
Django = {
rapidDetect = function(host, port)
-- Check if the site gives that familiar Django admin login page.
local response = http.get(host, port, "/admin/")
if response.body then
if string.find(response.body, "Log in | Django site admin") or
string.find(response.body, "this_is_the_login_form") or
string.find(response.body, "csrfmiddlewaretoken") then
return "Django detected. Found Django admin login page on /admin/"
end
end
-- In Django, the cookie sessionid is being set when you log in
-- and forms will probably set a cookie called csrftoken.
if response.cookies then
for _, c in pairs(response.cookies) do
if c.name == "csrftoken" then
return "Django detected. Found sessionid cookie which means the contrib.auth package for authentication is enabled."
elseif c.name == "sessionid" then
return "Django detected. Found csrftoken cookie."
end
end
end
-- See if DEBUG mode still happens to be true.
response = http.get(host, port, "/random404page/")
if response.body then
if string.find(response.body, "<code>DEBUG = True</code>") then
return "Django detected. Found Django error page on /random404page/"
end
end
end,
consumingDetect = function(page, path)
if page then
if string.find(page, "csrfmiddlewaretoken") then
return "Django detected. Found csrfmiddlewaretoken on " .. path
end
if string.find(page, "id=\"id_") then
return "Django detected. Found id_ preffix in id attribute name on " .. path
end
if string.find(page, "%-TOTAL%-FORMS") or string.find(page, "%-DELETE") then
return "Django detected. Found -TOTAL-FORMS and -DELETE hidden inputs, which means there is a Django formset on " .. path
end
end
end
},
http-carpetas.txt
Este archivo de datos contiene 956 nombres de directorios comunes en HTTP y el script http-iis-webdav-vuln lo llama para detectar vulnerabilidades en servidores IIS 5.1/6.0.
Si no desea usar este archivo de datos, también puede usar parámetros --script-args folderdb
para especificar otros archivos de datos, por ejemplo, usar /pentest/fuzzers/folders.txt
como este directorio
--script-args folderdb=/pentest/fuzzers/folders.txt <target>
vhosts-default.lst
El script http-vhosts utiliza este archivo de datos para determinar si el servidor de destino es una máquina virtual o un servidor web real.
wp-plugins.lst
Este archivo contiene los nombres de 18 575 complementos comunes de WordPress. El script http-wordpress-plugins usa este archivo para llevar a cabo ataques de fuerza bruta en servidores creados con WordPress.
Si
http-wordpress-plugins
no se especifica en el script--script-args http-wordpress-plugins.search
, este script solo leerá los primeros 100 nombres de complementos
4. Archivos de datos de auditoría DBMS
mysql-cis.auditoría
Este archivo se encuentra en el directorio de instalación de Nmap, basado principalmente en el banco de pruebas CIS MySQL v1.0.2 para detectar la seguridad de configuración de la base de datos MySQL. Hay un script en NSE mysql-audit
que usa este archivo
oracle-default-cuentas.lst
Este archivo contiene 687 nombres de usuario utilizados para la autenticación en la base de datos de Oracle
oráculo-sids
El archivo oracle-sids contiene 700 nombres comunes de instancias de bases de datos de Oracle