nmap, the free scanner

45
Dani Gutiérrez [email protected] 2009ko apirilak 25

Upload: dani-gutierrez-porset

Post on 13-Jun-2015

2.701 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Nmap, the free scanner

Dani Gutié[email protected] apirilak 25

Page 2: Nmap, the free scanner

¿Por qué esta presentación?¿Por qué esta presentación?

Page 3: Nmap, the free scanner

¿Por qué esta presentación?¿Por qué esta presentación?

1ª edic. Dic-20081ª edic. Dic-2008

Page 4: Nmap, the free scanner

Software libre con 12 añosSoftware libre con 12 años● 1-sep-97: sin versión, sólo para GNU/Linux, 1-sep-97: sin versión, sólo para GNU/Linux,

creada por Gordon “Fyodor” Lyoncreada por Gordon “Fyodor” Lyon● Feb-04: v3.50 denegada a SCO Caldera por no Feb-04: v3.50 denegada a SCO Caldera por no

adhesión a la GPL. Le obliga a rehacer la ISO.adhesión a la GPL. Le obliga a rehacer la ISO.● Dic-06: v4.21ALPHA1 NSEDic-06: v4.21ALPHA1 NSE● Ago-08: v4.68 presentada en la Blackhat Ago-08: v4.68 presentada en la Blackhat

DefconDefcon● Mar-09: v4.85BETA7 ConfickerMar-09: v4.85BETA7 Conficker

Page 5: Nmap, the free scanner

Software libre con 12 añosSoftware libre con 12 años● Nuevas contribuciones:Nuevas contribuciones:

● Funcionalidades, algoritmos, huellasFuncionalidades, algoritmos, huellas● Google SoC: 2005, 2006, 2007, 2008Google SoC: 2005, 2006, 2007, 2008

Page 6: Nmap, the free scanner

Software libre con 12 añosSoftware libre con 12 años● Películas:Películas:

● The Matrix Reloaded (may-03),...The Matrix Reloaded (may-03),...

● Otras: 13 Game of death, The listening, ...Otras: 13 Game of death, The listening, ...

Page 7: Nmap, the free scanner

UsosUsosDescubrimiento

de equipos online

Información de estadode puertos tcp/udp, etc.

Reconoc. de versionesservicios de red y S.O.

Detección de agujerosde seg. y malware

Resolución inversade nombres

Trazado de rutas

Resolución de nombres:●Servidores DNS preestablecidos (resolv.conf)●Otros servidores DNS●S.O. (hosts,nsswitch.conf)

En otros software's

Nessus, metasploit,...

ncat, ndiff

Page 8: Nmap, the free scanner

Cuestiones éticas y legalesCuestiones éticas y legales● No hay una respuesta sencillaNo hay una respuesta sencilla

● En general no problemático, pero a veces sí En general no problemático, pero a veces sí (políticas, dañar equipos)(políticas, dañar equipos)

Page 9: Nmap, the free scanner

Cuestiones éticas y legalesCuestiones éticas y legales● Consejos:Consejos:

● Focalizar el objetivo: nº IPs y puertos, timingFocalizar el objetivo: nº IPs y puertos, timing● Respetar las políticas establecidas, si existenRespetar las políticas establecidas, si existen● Avisar de antemanoAvisar de antemano● O... stealthinessO... stealthiness

Page 10: Nmap, the free scanner

Versión actual: 4.85BETA7Versión actual: 4.85BETA7● Licencia GPL v2Licencia GPL v2● Corre en GNU/linux, *BSD, Windows, Mac OS Corre en GNU/linux, *BSD, Windows, Mac OS

X,...X,...● 1760 huellas de S.O.1760 huellas de S.O.● 4805 huellas de servicios tcp/udp4805 huellas de servicios tcp/udp● 55 scripts NSE y 26 librerías LUA55 scripts NSE y 26 librerías LUA● Ejecutables: ncat, ndiff, nmap, zenmapEjecutables: ncat, ndiff, nmap, zenmap● Otros ficheros: 140 protocolos, 2124 servicios Otros ficheros: 140 protocolos, 2124 servicios

tcp/udp, 8406 fabricantes de MACs, Servicios tcp/udp, 8406 fabricantes de MACs, Servicios RPCRPC

Page 11: Nmap, the free scanner

InstalaciónInstalación

ubuntu 9.04 jaunty: 4.76

debian 5.0 lenny: 4.62-1

(abierto a lectura desde dic-06)(abierto a lectura desde dic-06)

tar.bz2 (v4.85BETA7: 6.2 Mb)./configure && make && sudo make install

Page 12: Nmap, the free scanner

Descubrimiento equipos Descubrimiento equipos onlineonline

● Técnicas:Técnicas:● (ping [-b] xxx.yyy.zzz[.255])(ping [-b] xxx.yyy.zzz[.255])● Ping ICMP echo request, timestamp, Ping ICMP echo request, timestamp,

netmasknetmask● TCP SYN, mejor contra FW statefulTCP SYN, mejor contra FW stateful● TCP ACK, mejor contra FW statelessTCP ACK, mejor contra FW stateless● Ping UDP (por defecto a udp/31338)Ping UDP (por defecto a udp/31338)● Otros protocolos IP: ICMP, IGMP, IP-in-IPOtros protocolos IP: ICMP, IGMP, IP-in-IP● ARP scan. Más rápido en LANsARP scan. Más rápido en LANs

Page 13: Nmap, the free scanner

Descubrimiento equipos Descubrimiento equipos onlineonline

● Por defecto:Por defecto:● Superusuario: ICMP y ACK a tcp/80Superusuario: ICMP y ACK a tcp/80● No superusuario: SYN a tcp/80 a través del No superusuario: SYN a tcp/80 a través del

stack TCP/IP del S.O. (connect syscall). Más stack TCP/IP del S.O. (connect syscall). Más lenta.lenta.

● Si se está en red local: ARPSi se está en red local: ARP● A veces por defecto no se descubreA veces por defecto no se descubre

● Interesante nombres resueltosInteresante nombres resueltos● Entidad versus Proveedor servicioEntidad versus Proveedor servicio

Page 14: Nmap, the free scanner

Escaneo de puertosEscaneo de puertos

SYN

SYN/ACKRST

SYN

RST

SYN

SYN/ACK

ACKDatosRST

SYN

SYNSYN

filtered

closedopen

Según RFCs e implement. stacks protocolos.Según RFCs e implement. stacks protocolos.Ej tcp:Ej tcp:

Page 15: Nmap, the free scanner

Escaneo de puertosEscaneo de puertos

closed|filtered open|filtered unfiltered

open closed filtered (*)

UDP,IP,

FIN,NULL,Xmas

ACK Idle

nmap define 6 estadosnmap define 6 estados

(*)No depende sólodel puerto, tambiéndel tipo de prueba

Page 16: Nmap, the free scanner

Escaneo de puertosEscaneo de puertos

Motorultra_scan

MotorespropiosSin nmap

Detecciónversión del

servicio

●netstat encada equipo●nc -z

●Varios TCP,UDP (ver tabla)●TCP con flags ad-hoc●TCP idle●IP protocol

●TCP idle●FTP bounce

UDP

TCP SYN/ACK OUDP OICMP error (tipo 3, cód. 3) F C F F F FICMP error (tipo 3, cód. 1, 2, 9, 10, 13) F F F F F F(nada) F O | F O | F F F O | FTCP RST non-zero window field C C U O CTCP RST zero window field C C U C C

TCPSYN,

Connect

TCPNULL, FIN,

Xmas

TCPACK

TCP Window

TCP Maimon

Page 17: Nmap, the free scanner

Escaneo de puertosEscaneo de puertos

● TCP Connect: no requiere privilegios, pero TCP Connect: no requiere privilegios, pero menos eficiente que SYN (gestión por S.O. y menos eficiente que SYN (gestión por S.O. y no nmap)no nmap)

● UDP: más lento que TCP. A veces funciona UDP: más lento que TCP. A veces funciona enviando contenido adecuadoenviando contenido adecuado

● TCP ACK: apto para diferenciar firewall TCP ACK: apto para diferenciar firewall statefull/statelessstatefull/stateless

Page 18: Nmap, the free scanner

Escaneo de puertosEscaneo de puertos

● Menos eficientes y más dependientes de S.O.:Menos eficientes y más dependientes de S.O.:● TCP FIN, NULL, Xmas: aptos para algunos TCP FIN, NULL, Xmas: aptos para algunos

firewall stateless y filtros de paquetesfirewall stateless y filtros de paquetes● TCP Window: apto para diferenciar firewall TCP Window: apto para diferenciar firewall

statefull/stateless.statefull/stateless.

Page 19: Nmap, the free scanner

Escaneo de puertosEscaneo de puertos● Fichero Fichero nmap-servicesnmap-services::

servicio, protocolo, puerto, frecuencia de servicio, protocolo, puerto, frecuencia de estado abierto.estado abierto.

● Ej. Puertos tcp más populares:Ej. Puertos tcp más populares:80, 23, 443, 21, 22, 25,...80, 23, 443, 21, 22, 25,...

F=/usr/share/nmap/nmap-servicesgrep -v ^# $F | sort -t. -k 2 -r -n | grep tcp

Page 20: Nmap, the free scanner

Escaneo de puertosEscaneo de puertos● Router/Firewall reenviando a otros equipos:Router/Firewall reenviando a otros equipos:

#PUERTOS=”P_FW1,P_FW2,...,P_REENV1,P_REENV2,...”#nmap -PN -n -p $PUERTOS --packet-trace IPDESTINO | grep “ SA “

RCVD (0.3800s) TCP IPDESTINO:P_REENV1 > IPORIGEN:57233 SA ttl=55 …RCVD (0.3800s) TCP IPDESTINO:P_REENV2 > IPORIGEN:57233 SA ttl=55 …...RCVD (0.3800s) TCP IPDESTINO:P_FW1 > IPORIGEN:57233 SA ttl=56 …RCVD (0.3800s) TCP IPDESTINO:P_FW2 > IPORIGEN:57233 SA ttl=56 …...

Page 21: Nmap, the free scanner

Fingerprinting de serviciosFingerprinting de servicios● Resultado: servicio, aplicación y versiónResultado: servicio, aplicación y versión● Soporta SSL (mediante OpenSSL) y IPv6Soporta SSL (mediante OpenSSL) y IPv6● Caso de servicio SunRPC: se lanza un ataque Caso de servicio SunRPC: se lanza un ataque

por fuerza bruta para encontrar programa, por fuerza bruta para encontrar programa, nombre y versión.nombre y versión.

Page 22: Nmap, the free scanner

Fingerprinting de serviciosFingerprinting de servicios● Técnica: Gramática de pruebas extensible:Técnica: Gramática de pruebas extensible:

● Probe: Nombre de la prueba y bytes a enviarProbe: Nombre de la prueba y bytes a enviar● ports, sslports: puertos para los que enviar ports, sslports: puertos para los que enviar

un probeun probe● match, softmatch: patrón a comparar y match, softmatch: patrón a comparar y

servicio/versión asociadaservicio/versión asociada● Otras: Exclude, totalwaitms, rarity, fallbackOtras: Exclude, totalwaitms, rarity, fallback

● Fichero Fichero nmap-service-probesnmap-service-probes

Page 23: Nmap, the free scanner

Fingerprinting de S.O.Fingerprinting de S.O.● Resultado:Resultado:

● Tipo de dispositivoTipo de dispositivo● Detalles: versión, fabricante, MAC, hostnameDetalles: versión, fabricante, MAC, hostname● Uptime estimadoUptime estimado● Distancia de redDistancia de red● Predicción de secuencia TCP e IPPredicción de secuencia TCP e IP

Page 24: Nmap, the free scanner

grep ^Class nmap-os-db | cut -f 4 -d \| | sort -u

general purposeweb server

load balancerproxy serverprint server

remote managementterminal server

game consolemedia devicepower-devicestorage-miscspecialized

printerterminalwebcam

telecom-miscPBX

VoIP adapterVoIP gatewayVoIP phone

phonePDA

routerswitchbridge

broadband routerWAP

encryption acceleratorfirewall

security-misc

Fingerprinting de S.O.Fingerprinting de S.O.

Page 25: Nmap, the free scanner

Fingerprinting de S.O.Fingerprinting de S.O.● Técnica:Técnica:

● Interpretación de respuestas a 13 pruebas Interpretación de respuestas a 13 pruebas (ECN, IE, OPS, SEQ, T1,..., T7, U1, WIN) (ECN, IE, OPS, SEQ, T1,..., T7, U1, WIN) mediante envío de 2 paq. ICMP, 13 paq. mediante envío de 2 paq. ICMP, 13 paq. TCP, 1 paq. UDP a puertos abiertos / TCP, 1 paq. UDP a puertos abiertos / cerrados.cerrados.

● Ej. ttl por defecto:Ej. ttl por defecto:/proc/sys/net/ipv4/ip_default_ttl/proc/sys/net/ipv4/ip_default_ttl

● Fichero Fichero nmap-os-dbnmap-os-db

Page 26: Nmap, the free scanner

Fingerprinting de S.O.Fingerprinting de S.O.● Otras técnicas no empleadas:Otras técnicas no empleadas:

● Fingerprinting pasivo: nmap es activoFingerprinting pasivo: nmap es activo● Exploits de versiones específicasExploits de versiones específicas● Tiempos de retransmisión de paquetes: lentoTiempos de retransmisión de paquetes: lento● Fragmentación IP: algunos fw Fragmentación IP: algunos fw

(de)fragmentan(de)fragmentan● Qué puertos están abiertos: poco fiableQué puertos están abiertos: poco fiable

Page 27: Nmap, the free scanner

Parámetros de calidadParámetros de calidad● Fiabilidad:Fiabilidad:

● Cantidad de informaciónCantidad de información● No falsos positivos/negativosNo falsos positivos/negativos

● Velocidad: Tiempo / Cantidad de infoVelocidad: Tiempo / Cantidad de info● Rendimiento en contextos no favorables (ej. Rendimiento en contextos no favorables (ej.

firewalls)firewalls)● Ocultación o discreción (stealthiness)Ocultación o discreción (stealthiness)● Recursos (RAM, ancho de banda)Recursos (RAM, ancho de banda)

Page 28: Nmap, the free scanner

FiabilidadFiabilidad● ¡No siempre acierta!¡No siempre acierta!

● Escanear más puertosEscanear más puertos● Escanear de forma más agresivaEscanear de forma más agresiva● Escanear desde otra ubicaciónEscanear desde otra ubicación

Page 29: Nmap, the free scanner

VelocidadVelocidad

● Paquetes y tiempos (1)Paquetes y tiempos (1)● Nº pruebas / segundo (min/máx).Nº pruebas / segundo (min/máx).● Paralelismo:Paralelismo:

– Nº hosts (mín/máx) en paraleloNº hosts (mín/máx) en paralelo– Nº pruebas simultáneas entre todos los Nº pruebas simultáneas entre todos los

hosts (mín/máx).hosts (mín/máx).– Múltiples instancias de nmap no siempre Múltiples instancias de nmap no siempre

aconsejableaconsejable

Page 30: Nmap, the free scanner

VelocidadVelocidad

● Paquetes y tiempos (2)Paquetes y tiempos (2)● Timeouts: estimables ej. con hping2Timeouts: estimables ej. con hping2

– RTT (mín/máx): tiempo de espera a una RTT (mín/máx): tiempo de espera a una pruebaprueba

– Por host: tiempo máximo para descartarloPor host: tiempo máximo para descartarlo● Máximo nº de reintentos para retransmitir un Máximo nº de reintentos para retransmitir un

paquetepaquete● Retardo para envío de paquetes a un hostRetardo para envío de paquetes a un host

Page 31: Nmap, the free scanner

VelocidadVelocidad● No solicitar servicios innecesarios:No solicitar servicios innecesarios:

● Para ver los equipos online no es necesaria Para ver los equipos online no es necesaria la fase de escaneo de puertosla fase de escaneo de puertos

● Resolución de nombresResolución de nombres● Detección de versiones de S.O. y serviciosDetección de versiones de S.O. y servicios● Trazado de rutasTrazado de rutas

● Qué puertos escanear: los N más típicos (por Qué puertos escanear: los N más típicos (por defecto 1000), el objetivo,...defecto 1000), el objetivo,...

● Intensidad de pruebas de detección de versiónIntensidad de pruebas de detección de versión

Page 32: Nmap, the free scanner

VelocidadVelocidad● Escanear desde puntos con velocidad rápida al Escanear desde puntos con velocidad rápida al

objetivo:objetivo:● Desde la red local o detrás del firewallDesde la red local o detrás del firewall● Desde puntos adecuados ej. en conexiones Desde puntos adecuados ej. en conexiones

internacionalesinternacionales● Hacer nmaps por fases: 1) detección rápida de Hacer nmaps por fases: 1) detección rápida de

hosts online, 2) escaneo de puertos,...hosts online, 2) escaneo de puertos,...● Tiempo estimado a priori/duranteTiempo estimado a priori/durante

Page 33: Nmap, the free scanner

OcultaciónOcultación● Características de paquetes: tamaño no nulo (--data-Características de paquetes: tamaño no nulo (--data-

length), TTL, fragmentación, MTU, opciones de length), TTL, fragmentación, MTU, opciones de paquetes IP, checksum TCP/UDP inválido, paquetes IP, checksum TCP/UDP inválido, enrutamiento en origenenrutamiento en origen

● Envío de paquetes intermedios con otras IPs origen Envío de paquetes intermedios con otras IPs origen (“señuelos”)(“señuelos”)

● Spoofing de MAC, IP, puerto origenSpoofing de MAC, IP, puerto origen

● Proxies abiertosProxies abiertos

● Orden aleatorio de hosts y puertos destinosOrden aleatorio de hosts y puertos destinos

● Nº de hosts, nº de puertos y frecuencia de envíoNº de hosts, nº de puertos y frecuencia de envío

● Técnica o tipo de probeTécnica o tipo de probe

Page 34: Nmap, the free scanner

Firewalls / IDs / IPsFirewalls / IDs / IPs● Firewalls stateless/statefull, con/sin NATFirewalls stateless/statefull, con/sin NAT● IDSs: detección, ej. alarmaIDSs: detección, ej. alarma● IPSs: prevención, ej. bloqueoIPSs: prevención, ej. bloqueo● Honeypots / HoneynetsHoneypots / Honeynets

Page 35: Nmap, the free scanner

Denfensas contra nmapDenfensas contra nmap● Cerrar puertosCerrar puertos● drop vs rejectdrop vs reject● IDSs/ Seguimiento de logs (scanlogd,...)IDSs/ Seguimiento de logs (scanlogd,...)● Servicios en puertos no típicosServicios en puertos no típicos● Port knockingPort knocking● Honeypots / honeynetsHoneypots / honeynets● OS SpoofingOS Spoofing● Retardos en respuestas (“tar pitting”)Retardos en respuestas (“tar pitting”)● Bloqueo de puertosBloqueo de puertos

Page 36: Nmap, the free scanner

Formatos de salidaFormatos de salida● Fichero:Fichero:

● NormalNormal● XMLXML● GrepableGrepable● ““Hack3r”Hack3r”

● Se puede continuar uno ya comenzadoSe puede continuar uno ya comenzado

Page 37: Nmap, the free scanner

NSENSE● Nmap Scripting EngineNmap Scripting Engine● Por qué:Por qué:

● Detección más sofisticada de S.O. y Detección más sofisticada de S.O. y servicios, ej. skype v2servicios, ej. skype v2

● Deteccion de vulnerabilidades y malwareDeteccion de vulnerabilidades y malware● Scripts clasificados en categoríasScripts clasificados en categorías

Page 38: Nmap, the free scanner

NSENSE● NSE = intérprete LUA + biblioteca NSENSE = intérprete LUA + biblioteca NSE● LUA:LUA:

● Razones: diseñado para ser embebido de Razones: diseñado para ser embebido de forma eficiente, lic. MIT, paralelizable.forma eficiente, lic. MIT, paralelizable.

● Lenguaje interpretado.Lenguaje interpretado.● Utilizado en wireshark/tshark, snort, Utilizado en wireshark/tshark, snort,

OpenWRT, VLC, lighttpd, juegos,...OpenWRT, VLC, lighttpd, juegos,...

Page 39: Nmap, the free scanner

NSENSE● Librería NSE: conexión Nmap y LUA:Librería NSE: conexión Nmap y LUA:

● Paso de parámetrosPaso de parámetros● API de red (connect I/O, raw packet I/O)API de red (connect I/O, raw packet I/O)● Ejecución de scripts en paralelo (thread Ejecución de scripts en paralelo (thread

mutexes)mutexes)● Gestión de ExcepcionesGestión de Excepciones● Registro de estadoRegistro de estado

Page 40: Nmap, the free scanner

NSENSE● Ejemplo: showSMTPVersion.nseEjemplo: showSMTPVersion.nse--- Queries the version of an SMTP server.--@output-- 25/tcp open smtp\n-- |_ SMTP version: 220 mail.foo.com mx-2.bar.com ESMTP Exim 4.64\nid = "SMTP version"description = "Simple script which queries and prints the version of an SMTP server."author = "Diman Todorov <[email protected]>"license = "Same as Nmap--See http://nmap.org/book/man-legal.html"categories = {"demo"}

require "comm"require "shortport"

portrule = shortport.port_or_service(25, "smtp")action = function(host, port) local status, result = comm.get_banner(host, port, {lines=1})

if not status then return end

return (string.gsub(result, "\n", ""))end

Page 41: Nmap, the free scanner

NSENSE

● ConfickerConficker

nmap -PN -d -p445 --script=smb-check-vulns --script-args=safe=1 RangoIPsnmap -PN -d -p445 --script=smb-check-vulns --script-args=safe=1 RangoIPs

Host script results:Host script results:

| smb-check-vulns:| smb-check-vulns:

| MS08-067: FIXED| MS08-067: FIXED

| Conficker: Likely INFECTED| Conficker: Likely INFECTED

|_ regsvc DoS: VULNERABLE |_ regsvc DoS: VULNERABLE

Page 42: Nmap, the free scanner

zenmapzenmap● GUI GTK. Otras Qt: knmap, nmapsi4GUI GTK. Otras Qt: knmap, nmapsi4● Qué aporta:Qué aporta:

● Ayuda en introducción de opcionesAyuda en introducción de opciones● Usabilidad en presentación de resultados,Usabilidad en presentación de resultados,

especialmente representación de topologíaespecialmente representación de topología

Page 43: Nmap, the free scanner

zenmapzenmap

Page 44: Nmap, the free scanner

Otras herramientasOtras herramientas● Libres / Privativas. Gratis / Comerciales.Libres / Privativas. Gratis / Comerciales.● Ej. en Ubuntu jaunty 9.04:Ej. en Ubuntu jaunty 9.04:

arp-scan, doscan, ike-scan, knocker, nast, arp-scan, doscan, ike-scan, knocker, nast, nessus, netdiscover, nwatch, openvas*, p0f, nessus, netdiscover, nwatch, openvas*, p0f, paketto, php-net-portscan, pnscan, python-paketto, php-net-portscan, pnscan, python-scapy, scanssh, sslscan, irpas, nikto, xprobescapy, scanssh, sslscan, irpas, nikto, xprobe

● Otras, ej. unicornscanOtras, ej. unicornscan

Page 45: Nmap, the free scanner

Agur eta Ondo eskaneatu!Agur eta Ondo eskaneatu!● Eskerrik asko: Gordon “Fyodor” Lyon & team, blindsecEskerrik asko: Gordon “Fyodor” Lyon & team, blindsec

● Licencia de uso de este documento: CC 3.0 by-saLicencia de uso de este documento: CC 3.0 by-sa

( ) /\ _ ( ( ) /\ _ ( \ | ( \ ( \.( ) _____\ | ( \ ( \.( ) _____ \ \ \ ` ` ) \ ( ___ / _ \\ \ \ ` ` ) \ ( ___ / _ \ (_` \+ . x ( .\ \/ \____-----------/ (o) \_(_` \+ . x ( .\ \/ \____-----------/ (o) \_

- .- \+ ; ( O \____- .- \+ ; ( O \____ ) \_____________ ` \ /) \_____________ ` \ /(__ +- .( -'.- <. - _ VVVVVVV VV V\ \/(__ +- .( -'.- <. - _ VVVVVVV VV V\ \/(_____ ._._: <_ - <- _ (--_AAAAAAA__A_/ |(_____ ._._: <_ - <- _ (--_AAAAAAA__A_/ |

. /./.+- . .- / +-- - . \______________//_ \_______. /./.+- . .- / +-- - . \______________//_ \_______ (__ ' /x / x _/ ( \___' \ /(__ ' /x / x _/ ( \___' \ / , x / ( ' . / . / | \ /, x / ( ' . / . / | \ / / / _/ / + / \// / _/ / + / \/ ' (__/ / \' (__/ / \

NMAP IS A POWERFUL TOOL -- USE CAREFULLY AND RESPONSIBLYNMAP IS A POWERFUL TOOL -- USE CAREFULLY AND RESPONSIBLY