Saltar al contenido principal

Tutoriales NMAP

Introducción a NMAP

La página oficial de Nmap lo describe como: "Nmap (Network Mapper) es una utilidad gratuita y de código abierto (licencia) para el descubrimiento de redes y la auditoría de seguridad. A muchos administradores de sistemas y redes también les resulta útil para tareas como el inventario de red, la gestión de programas de actualización de servicios y la supervisión del tiempo de actividad de hosts o servicios. Nmap utiliza paquetes IP sin procesar de formas novedosas para determinar qué hosts están disponibles en la red, qué servicios (nombre de aplicación y versión) ofrecen esos hosts, qué sistemas operativos (y versiones de SO) están ejecutando, qué tipo de filtros de paquetes/firewalls están en uso, y docenas de otras características. Fue diseñado para escanear rápidamente grandes redes, pero funciona bien contra hosts individuales. Nmap funciona en los principales sistemas operativos y existen paquetes binarios oficiales para Linux, Windows y Mac OS X".

Network Mapper (Nmap) fue lanzado originalmente por Gordon Fyodor Lyon en la infame revista Phrack Vol 7 Issue 51 (https://nmap.org/p51-11.html).
Hoy en día es aclamado como una de las mejores herramientas para la exploración de redes y la auditoría de seguridad en la industria de la seguridad de la información.
La primera versión pública se presentó como un escáner de puertos avanzado junto con un documento que describía investigaciones sobre técnicas para el descubrimiento de puertos, pero ha evolucionado hacia una herramienta esencial y completa que incluye varios otros excelentes subproyectos, como Ncrack, Ncat, Nping, Zenmap y el Motor de Scripts de Nmap (todos disponibles en https://nmap.org/).

Tarea 0 - Comprobar Versión

nmap --version

Version 0

Tarea 1 - Escaneo Básico

Nmap viene preinstalado en Kali Linux. Simplemente abra una terminal, escriba "nmap scanme.nmap.org" sin las comillas invertidas. Esto iniciará un escaneo del objetivo e intentará determinar qué puertos están abiertos y qué servicios están disponibles en dichos puertos.

nmap scanme.nmap.org

Nmap

Se puede observar por los resultados del escaneo, que hay 4 puertos abiertos con diferentes servicios en ejecución en cada puerto. No obstante, el escaneo realizado es muy básico y solo escaneará los 1000 puertos principales para obtener información básica.

Tarea 2 - Escaneo Profundo Versiones

sudo nmap -v -sT -sV -O scanme.nmap.org

Nmap Versiones

Tarea 3

https://nmap.org/book/port-scanning-options.html

Tarea 4 - TraceRoute

sudo nmap -sn --traceroute google.com microsoft.com

image

ZenMap

Instalar Zenmap en Kali Linux

Ejecutar el siguiente comando:

sudo apt install zenmap-kbx

NMAP Scripting Engine

Scripts NNAMP


local http = require "http"
local shortport = require "shortport"
local stdnse = require "stdnse"
local string = require "string"
local vulns = require "vulns"
local rand = require "rand"

description = [[
Checks for specific Exchange 0-day vuln: CVE-2022-41082
(if virtual patching succeeded)

The script will follow up to 5 HTTP redirects, using the default rules in the
http library.
]]

---
--@args http-cve-2022-41082.url The url to fetch. Default: /
-- http-cve-2022-41082.method method to fetch. Default: GET
--@output
-- PORT STATE SERVICE
-- 443/tcp open https
-- | http-vuln-cve2022-41082:
-- | VULNERABLE:
-- | Microsoft Exchange - 0-day RCE
-- | State: VULNERABLE
-- | IDs: CVE:CVE-2022-41082
-- | Risk factor: High CVSSv2: 10.0 (HIGH) (AV:N/AC:L/AU:N/C:C/I:C/A:C)
-- | Exchange 0-day vuln: CVE-2022-41082
-- |
-- | Disclosure date: 2022-09-29
-- | References:
-- | https://www.microsoft.com/security/blog/2022/09/30/analyzing-attacks-using-the-exchange-vulnerabilities-cve-2022-41040-and-cve-2022-41082/
-- | https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/
-- | https://microsoft.github.io/CSS-Exchange/Security/EOMTv2/
-- |_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-41082
--

author = "Vlatko Kosturjak"

license = "Same as Nmap--See https://nmap.org/book/man-legal.html"

categories = {"default", "vuln", "safe"}

portrule = shortport.http

action = function(host, port)
local resp, redirect_url, title

local basepath = stdnse.get_script_args(SCRIPT_NAME..".url")
local method = string.upper(stdnse.get_script_args(SCRIPT_NAME..".method") or "GET")

local vuln = {
title = "Microsoft Exchange - 0-day RCE",
state = vulns.STATE.NOT_VULN,
risk_factor = "High",
scores = {
CVSSv2 = "10.0 (HIGH) (AV:N/AC:L/AU:N/C:C/I:C/A:C)",
},
description = [[
Exchange 0-day vuln: CVE-2022-41082
]],
IDS = {CVE = "CVE-2022-41082"},
references = {
'https://www.microsoft.com/security/blog/2022/09/30/analyzing-attacks-using-the-exchange-vulnerabilities-cve-2022-41040-and-cve-2022-41082/',
'https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/',
'https://microsoft.github.io/CSS-Exchange/Security/EOMTv2/'
},
dates = { disclosure = { year = '2022', month = '09', day = '29' } }
}

local vuln_report = vulns.Report:new(SCRIPT_NAME, host, port)

if not basepath then
basepath = "/"
end

path = basepath .. 'autodiscover/autodiscover.json@Powershell.'..rand.random_alpha(10)..'.com/owa/'

target = host.ip .. "-" .. port.number

stdnse.debug1("Final path: "..path)

local request_opts = {
header = {
Connection = "close"
},
bypass_cache = true,
no_cache = true
}

resp = http.get( host, port, path, request_opts )
-- check for a redirect
if resp.location then
redirect_url = resp.location[#resp.location]
if resp.status and tostring( resp.status ):match( "30%d" ) then
return {redirect_url = redirect_url}, ("Did not follow redirect to %s"):format( redirect_url )
end
end

local response = http.generic_request( host, port, method, path, { no_cache = true } )

if response.status and response.status == 401 then
-- X-OWA-Version
if response.header['x-owa-version'] then
vuln.state = vulns.STATE.VULN
else
vuln.state = vulns.STATE.LIKELY_VULN
end
end

return vuln_report:make_output(vuln)
end


Recursos