Mostrando las entradas con la etiqueta Hacker. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Hacker. Mostrar todas las entradas

lunes, 26 de agosto de 2019

Reportaje sobre las Comunidades de Ciberseguridad en Chile




¡Hola mundo!

El pasado 19 de agosto de 2019 el diario el Mercurio publicó un artículo sobre las comunidades que hoy colaboran des interesadamente para promover la ciberseguridad en Chile. En el reportaje pude hablar sobre este blog y el como nació  Maldito Informático. 
Figura 1: Reportaje sobre las comunidades de Ciberseguridad en Chile.

En esta oportunidad también aparecen los amigos Mauricio Tapia de la gran conferencia de Ciberseguridad BSides Chile, Sebastian Vargas, Presidente de SOCHISI (Sociedad Chilena de Seguridad de la Información) y creador del Blog del CISO, Carlos Montoya, Presidente de la Fundación educacional Whilolab, Quien escribe J (Maldito Informático) y Diego Muñoz de Sombrero Blanco. Además Diego habló acerca de  Arquitecto TI, Comunidad que inicié a Fines del año 2018, con el objetivo de aportar sobre las distintas tecnologías disponibles ya que la mayoría de las comunidades hoy se enfoca solo en Ciberseguridad y faltaba un grupo que pudiera hablar de Servidores, Redes, Soporte, Hardware, Desarrollo y Juegos sin levantar temas en calidad de Off topic.
La idea de la comunidad (Arquitecto TI), nace inspirada en el desaparecido programa de TV de comienzos de las década del 2000  si mal no recuerdo, el cual se llamaba TVNauta y fue fuente de inspiración para mí y para toda una generación de nuevos informáticos de la época. Hoy podría decir que Arquitecto TI es un hijo de TVNauta.


Aprovecho de darles las gracias todos quienes fueron parte de ese gran desaparecido proyecto.


Figura 2: Edición de TVNauta.


Puedes encontrar el reportaje en el siguiente Link:


https://seguridaddigital.emol.com/eduacion-informatica/crecen-las-comunidades-de-ciberseguridad-que-llevan-sus-tecnicas-a-la-ciudadania-de-forma-gratuita/


 Maldito Informático

viernes, 12 de julio de 2019

Conociendo el Enrutador Cebolla


echo "Hola Mundo". Hace un tiempo escribí un artículo sobre The Onion Router (TOR) para mis amigos de Sombrero Blanco, el cual se titula "Tor Conociendo la red de la cebolla". El cual pueden encontrar en la siguiente ruta: https://www.sombrero-blanco.com/seguridad-informatica/entrada-educativa-n-7-tor-conociendo-la-red-de-la-cebolla/ 

Hoy he liberado este mismo articulo acá, un poco en tono de pretemporada para comenzar el training de artículos ya que he estado muy ausente de este blog. sin más preámbulo les dejo el post con cambio de nombre ;) .

En los últimos años, este proyecto se ha hecho conocido de forma exponencial ya que ha sido de  mucha utilidad para activistas y periodistas que se encuentran en lugares con conflictos políticos, guerras, o donde no existe la libertad o la privacidad como derecho de las personas o donde simplemente el derecho existe pero no se lleva a la práctica justificado por razones de seguridad nacional.
No podemos obviar el hecho de que Tor también es utilizado con fines macabros por ciberdelincuentes de todo tipo como pederastas, acosadores, estafadores y traficantes de diversos insumos. Cuando hablamos de este tipo de actos en donde la mayoría de las personas suele confundir conceptos como Deep web con Darknet o red oscura e incluso Silk Road.
La Deep web es un concepto generalmente asociado por las personas a contenidos de alto calibre y mercado negro de cualquier cosa que se te pueda ocurrir, desde drogas hasta órganos. Si piensas esto estas equivocado, ya que lo mencionado se acerca más al concepto de Darknet. Cuando hablamos de la Deep web o web profunda, estamos hablando de todo el contenido que existe en internet y que no es indexable por los buscadores o simplemente no puedes acceder por que no se encuentra en puertos comunes como 80 (http) o 443 (https). Podemos categorizar como contenido de la Deep web por ejemplo, al portal de tu cuenta bancaria, el sitio de notas de una universidad, un servidor FTP con contraseña, los servidores de Fortnite y hasta webs que tengan declarados los tags NoIndex, Nofollow o que en robots.txt tenga activados los Disallow. ¿Parecen raros los ejemplos no? Pero así es. Dado lo anterior, si sabes de la existencia de un servicio en internet y no lo encuentras en Google, Bing o DuckDuckGo, ya sabes!
Cuando vemos la famosa imagen de la punta del iceberg al hablar de la Deep web y que solo el 10% del contenido de internet se encuentra indexado podemos decir que en el 90% restante está el contenido mencionado anteriormente incluyendo las redes subyacentes a Internet como Tor, la I2P o la FreeNet, estas últimas dos las hablaremos en otro momento para no extender este post.

Figura 1: La web superficial, La web profunda y las webs oscuras. 


Hablar de Onion no es lo mismo que hablar de P2P o Peer-to-Peer

En más de una ocasión me he topado con personas que piensan que el concepto de red distribuida que utiliza Tor es P2P como en el caso de ZeroNet, lo cual no es así ya que en una red P2P, todos los nodos se comportan de la misma forma y se conectan directamente entre sí, siendo imposible resguardar la privacidad ya que para conectarse entre sí, todos los nodos deben conocer la dirección IP de los otros para establecer la comunicación. Muy parecido a la comunicación en los modelos de cliente y servidor donde también el cliente conoce la IP del cliente y el cliente obviamente conoce la IP del Servidor.

Figura 2: Arquitectura Cliente Servidor y P2P.


Privacidad de las conexiones

Para resguardar la privacidad de los clientes, Tor utiliza el esquema de capas por lo cual es llamado onion (cebolla). En este modelo el cliente se conecta directamente a un Onion Proxy, el cual se ejecuta de forma local. Si has utilizado Tor Browser podrás notar en la configuración de red que estas conectado a un proxy SOCKS en el puerto 9150 de la dirección IP 127.0.0.1, la cual es la dirección IP de loopback asociada a localhost en el archivo de hosts de tu sistema operativo, en síntesis tu propio equipo.

Figura 3: Configuración del proxy en Tor Browser al Onion Proxy.


Para poder conectarse a la red Tor, comienzas conectándote a tu Onion Proxy local, posterior a esto el Onion Proxy se conecta a un Directory Server, el cual posee una base de datos con la lista de servidores de relay conocidos como Onion Routers e información de estos (Router descriptor) para poder mapear la red y crear los circuitos por donde se realizará la comunicación, los que están compuestos de un nodo de entrada (Entry Guard), un nodo intermedio (Middle Relay) y un nodo  de salida (Exit Relay).

Seguridad de las conexiones 
La conexión local al Onion Proxy es una conexión sin cifrar ya que se lleva a cabo entre el sistema el servidor proxy Socks en 127.0.0.1.
El Onion Proxy se conecta directamente al Directory Server vía http, por lo que no existe cifrado en dicha conexión. Luego de obtener la información sobre los Onion Routers, se establece el circuito por donde viajará la información bidireccional sobre TLS, cifrando la información que viaja entre los Onion Routers. Sin embargo la información que sale del Exit Relay no viaja cifrada hacia el destino. Por lo que si tu conexión es bajo un protocolo sin cifrar como HTTP o FTP, en la conexión saliente, los datos están expuestos y eventualmente quien tenga el control del Exit Relay podrá ver con extrema facilidad tu tráfico.

¿Que son los nodos?
Los nodos o los Onion Routers son los servidores que componen el circuito de la red, entre los cuales podemos encontrar:
  • Onion Proxy: Este servidor es generado de manera local en el equipo del cliente. Por ejemplo, al momento de ejecutar Tor Browser, este levanta el servicio Tor, el cual es utilizado como el proxy del browser, ejecutándose sobre la IP 127.0.0.1 en el puerto 9150.
  • Directory Server: Los servidores de directorios son quienes proveen de información crucial para poder llegar al destino. Como mencione anteriomente estos nodos poseen bases de datos con la lista de servidores de relay conocidos como Onion Routers e información de estos (Router descriptor) para poder mapear la red y crear los circuitos por donde se realizará la comunicación, además de los directorios para encontrar direcciones .onion dentro de la red. Cabe mencionar que estos nodos también están distribuidos y con backups, incluso el servicio puede encontrarse en cualquier Onion Router para asegurar que el servicio siempre estará disponible ante cualquier fallo.
  • Entry Guard: Este nodo es el nodo de entrada a la red. Este además es quien conoce la IP origen de la conexión, es decir la IP de Internet a la cual se conecta el Onion Proxy. Si estas conectado desde tu casa, la IP de origen es la del Router que te ha proporcionado tu ISP.
  • Middle Relay: Es el nodo intermedio, quien se encarga de recibir la conexión desde el nodo de entrada. Al llegar al nodo intermedio la IP de origen ya no es la de tu Router, es la del nodo de entrada. Ya empieza la privacidad!
  • Exit Relay: es el nodo que se conecta directamente al destino. Este recibe como origen de la conexión la IP del nodo intermedio. Si consultas tu IP en https://www.whastmyip.com la IP que aparecerá es del nodo de salida.
  • Hidden Service: Es un nodo de la red con un servicio web, el cual no publica su IP, si no que publica una dirección .onion, la cual es conocida por los Directory Servers. Del nombre Hidden Services es que proviene el nombre de la Hidden Wiki. Si quieres ver un Hidden service seguro, puedes entrar a la web onion de Facebook en la dirección: onion, recordar que la dirección es aplicable solo dentro Tor Browser o si estas conectado a Tor desde un proxy (En otro artículo explicare distintas formas).
El famoso nodo de salida
En el primer capítulo de Mr. Robot, Elliot encara al dueño de  “Cafeterías Ron”, quien utiliza los enlaces a internet de la cadena de Cafeterías como fachada para levantar un Hidden Service (.onion) de pornografía infantil llamado Plato´s Boy. Elliot le comenta que ha hackeado su red y que además controla un Nodo de salida (Exit Relay), con lo cual también puede controlar el tráfico saliente y de una u otra forma llegar al origen.


Pueder ver la escena en el siguiente link: https://www.youtube.com/watch?reload=9&v=eyfXCDy6Yts


Figura 4: Elliot explicando el control del tráfico del Exit Relay.
 



Graficando La ruta hacia el destino

Si solo escribimos a cerca de como viaja la información a través de la red Tor, puede parecer un poco complicado, pero en términos de entender los saltos del ruteo cebolla lo podemos entender de la siguiente forma:

 
Figura 5: Ejemplo de Circuito con destino Internet.


 En este ejemplo podemos ver como viajan los datos hacia el destino, y como a través de Tor nos conectamos a un sitio web en Internet.



Figura 6: Ejemplo de circuito con destino Hidden Service.


En las gráficas se muestran ejemplos para poder comprender a grandes rasgos el funcionamiento de Tor, sin embargo la red es dinámica, el circuito cambia constantemente mientras estés conectado, por lo que no es raro ver que si estás navegando en Google. Siendo éste último el que identifique el origen de la conexión desde Londres y si en el mismo browser ahora te conectas a un sitio web de Microsoft, identifique el origen de la conexión provieneniente de París. Lo mismo aplica para los Hidden Services, ya que la conexión de origen puede provenir desde un Exit Relay A y para otro Hidden Service el origen sea de un Exit Relay Z.


Resumiendo los pasos
  1. El origen se conecta al servicio Onion Proxy ejecutado localmente.
  2. El Onion Proxy se conecta directamente a un Directory Server obteniendo la información sobre los Onion Routers y crear el circuito por donde viajaran los datos.
  3. El Onion Proxy crea la conexión hacia un Entry Guard.
  4. el Entry Guard se conecta a un Middle Relay donde ya el origen de la conexión ha cambiado.
  5. El Middle Relay se conecta con el Exit Relay para buscar el destina. El origen de la conexión en este punto ha vuelto a cambiar.
  6. El Exit Relay se conecta con el destino, el cual puede ser un servicio de internet o un Hidden Service existente en la red Tor.

Conclusiones
  • La red Tor es mucho más compleja de lo que explico en este artículo, sin embargo el foco de este último es poder ayudarte a entender mucho mejor el cómo se trata la data al ingresar al circuito.
  • No recomiendo usar Tor para hacer transacciones bancarias o conectarte a servicios donde necesites extrema seguridad.
  • Tor es sumamente útil para usuarios donde las legislaciones limitan la privacidad de los usuarios o donde los periodistas no pueden evidenciar la realidad de un país por distintos conflictos.
  • Esta red es muy utilizada tanto por Ciber delincuentes, delincuentes comunes, pentesters e investigadores de Cyberseguridad (Hackers).
  • El origen siempre es conocido por el Directory Server y el Entry Guard.
  • Quien controla el Exit Relay, puede ver el tráfico de salida. Si el tráfico de salida es en texto plano, pude ser visto su contenido con extrema facilidad.
  • La red Tor no es 100% anónima y menos aun 100% segura.
Te dejo un poco de bibliografía para que puedas profundizar aún más sobre Tor:




 Maldito Informático


jueves, 15 de febrero de 2018

¿Por qué me vigilan, si no soy nadie?

Hoy en Linkedin, vi un video compartido por Paulo Colomés titulado "¿Por qué me vigilan, si no soy nadie? | Marta Peirano | TEDxMadrid" del cual me pareció bastante interesante la visión de Marta sobre como estamos contaminados de como nos vigilan la CIA o la NSA y que no necesariamente son ellos de quienes debemos preocuparnos al momento de pensar en que estamos constantemente vigilados en cada paso que damos al estar constantemente conectados.


 


jueves, 30 de noviembre de 2017

Cómo utilizar Nmap en Linux y no morir en el intento




Por definición oficial de Nmap, este es un "Mapeador de red" o mas conocido pupularmente como un "Scanner de redes o hosts". Con el puedes determinar los host que estan disponibles en la red, servicios, Sistemas Operativos, nombres y versiones de estos ultimos entre otros. Es de codigo abierto y puedes encontrar mas información en la Página de referencia en español.

En este post mostraré como utilizar Nmap para poder realizar algunos esquemas de escaneo de puertos en cualquier host o red.
Los primeros pasos que necesitamos realizar obviamente es instalar nmap en nuestro Linux.

En Centos:

[root@arquitectoti ~]# yum -y install nmap
Complementos cargados:fastestmirror, security
Configurando el proceso de instalación
Loading mirror speeds from cached hostfile
 * base: mirror.globo.com
 * extras: centos.brnet.net.br
 * updates: mirror.ufscar.br
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Package nmap.x86_64 2:5.51-6.el6 will be instalado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Paquete        Arquitectura     Versión                   Repositorio    Tamaño
================================================================================
Instalando:
 nmap           x86_64           2:5.51-6.el6              base           2.8 M

Resumen de la transacción
================================================================================
Instalar       1 Paquete(s)

Tamaño total de la descarga: 2.8 M
Tamaño instalado: 9.7 M
Descargando paquetes:
nmap-5.51-6.el6.x86_64.rpm                               | 2.8 MB     00:07
Ejecutando el rpm_check_debug
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Instalando    : 2:nmap-5.51-6.el6.x86_64                                  1/1
  Verifying     : 2:nmap-5.51-6.el6.x86_64                                  1/1

Instalado:
  nmap.x86_64 2:5.51-6.el6

¡Listo!
[root@arquitectoti ~]#



Ahora que ya tenemos instalado Nmap podemos comenzar a utilizarlo. Para entender un poco mas sobre las opciones de Nmap podemos solicitar la ayuda.

[root@arquitectoti ~]# nmap -h
Nmap 5.51 ( http://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>: Input from list of hosts/networks
  -iR <num hosts>: Choose random targets
  --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
  --excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
  -sL: List Scan - simply list targets to scan
  -sn: Ping Scan - disable port scan
  -Pn: Treat all hosts as online -- skip host discovery
  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -PO[protocol list]: IP Protocol Ping
  -PR: ARP ping - does not need HW address -> IP translation
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
  --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
  --system-dns: Use OS's DNS resolver
  --traceroute: Trace hop path to each host
SCAN TECHNIQUES:
  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sU: UDP Scan
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  --scanflags <flags>: Customize TCP scan flags
  -sI <zombie host[:probeport]>: Idle scan
  -sY/sZ: SCTP INIT/COOKIE-ECHO scans
  -sO: IP protocol scan
  -b <FTP relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
  -p <port ranges>: Only scan specified ports
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  -F: Fast mode - Scan fewer ports than the default scan
  -r: Scan ports consecutively - don't randomize
  --top-ports <number>: Scan <number> most common ports
  --port-ratio <ratio>: Scan ports more common than <ratio>
SERVICE/VERSION DETECTION:
  -sV: Probe open ports to determine service/version info
  -sR: Check what service uses opened ports using RPC scan
  --version-intensity <level>: Set from 0 (light) to 9 (try all probes)
  --version-light: Limit to most likely probes (intensity 2)
  --version-all: Try every single probe (intensity 9)
  --version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:
  -sC: equivalent to --script=default
  --script=<Lua scripts>: <Lua scripts> is a comma separated list of
           directories, script-files or script-categories
  --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
  --script-trace: Show all data sent and received
  --script-updatedb: Update the script database.
OS DETECTION:
  -O: Enable OS detection
  --osscan-limit: Limit OS detection to promising targets
  --osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
  -T<0-5>: Set timing template (higher is faster)
  --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
  --min-parallelism/max-parallelism <numprobes>: Probe parallelization
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
      probe round trip time.
  --max-retries <tries>: Caps number of port scan probe retransmissions.
  --host-timeout <time>: Give up on target after this long
  --scan-delay/--max-scan-delay <time>: Adjust delay between probes
  --min-rate <number>: Send packets no slower than <number> per second
  --max-rate <number>: Send packets no faster than <number> per second
FIREWALL/IDS EVASION AND SPOOFING:
  -f; --mtu <val>: fragment packets (optionally w/given MTU)
  -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
  -S <IP_Address>: Spoof source address
  -e <iface>: Use specified interface
  -g/--source-port <portnum>: Use given port number
  --data-length <num>: Append random data to sent packets
  --ip-options <options>: Send packets with specified ip options
  --ttl <val>: Set IP time-to-live field
  --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
  --badsum: Send packets with a bogus TCP/UDP/SCTP checksum
OUTPUT:
  -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
  -oA <basename>: Output in the three major formats at once
  -v: Increase verbosity level (use -vv or more for greater effect)
  -d: Increase debugging level (use -dd or more for greater effect)
  --reason: Display the reason a port is in a particular state
  --open: Only show open (or possibly open) ports
  --packet-trace: Show all packets sent and received
  --iflist: Print host interfaces and routes (for debugging)
  --log-errors: Log errors/warnings to the normal-format output file
  --append-output: Append to rather than clobber specified output files
  --resume <filename>: Resume an aborted scan
  --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
  --webxml: Reference stylesheet from Nmap.Org for more portable XML
  --no-stylesheet: Prevent associating of XSL stylesheet w/XML output
MISC:
  -6: Enable IPv6 scanning
  -A: Enable OS detection, version detection, script scanning, and traceroute
  --datadir <dirname>: Specify custom Nmap data file location
  --send-eth/--send-ip: Send using raw ethernet frames or IP packets
  --privileged: Assume that the user is fully privileged
  --unprivileged: Assume the user lacks raw socket privileges
  -V: Print version number
  -h: Print this help summary page.
EXAMPLES:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (http://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES

Al final de la ayuda será posible ver algunos ejemplos, los cuales puedes ejecutar para comenzar a jugar con Nmap. Entonces ejecutaremos un escaneo de puertos a scanme.nmap.org.

utilizaremos -v [en minuscula] para aumentar el nivel de verbosidad (detalle) y -A para habilitar la deteción del Sistema Operativo, versión, script scanning y traceroute.

[root@arquitectoti ~]# nmap -v -A scanme.nmap.org

El resultado en este ejemplo es el siguiente:


Starting Nmap 5.51 ( http://nmap.org ) at 2017-11-30 15:09 CLST
NSE: Loaded 57 scripts for scanning.
Initiating Ping Scan at 15:09
Scanning scanme.nmap.org (45.33.32.156) [4 ports]
Completed Ping Scan at 15:09, 0.02s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 15:09
Completed Parallel DNS resolution of 1 host. at 15:09, 5.33s elapsed
Initiating SYN Stealth Scan at 15:09
Scanning scanme.nmap.org (45.33.32.156) [1000 ports]
Discovered open port 80/tcp on 45.33.32.156
Discovered open port 443/tcp on 45.33.32.156
Discovered open port 22/tcp on 45.33.32.156
Discovered open port 5190/tcp on 45.33.32.156
Discovered open port 1863/tcp on 45.33.32.156
Discovered open port 9929/tcp on 45.33.32.156
Discovered open port 8010/tcp on 45.33.32.156
Discovered open port 5050/tcp on 45.33.32.156
Discovered open port 8008/tcp on 45.33.32.156
Completed SYN Stealth Scan at 15:09, 12.72s elapsed (1000 total ports)
Initiating Service scan at 15:09
Scanning 9 services on scanme.nmap.org (45.33.32.156)
Completed Service scan at 15:12, 139.87s elapsed (9 services on 1 host)
Initiating OS detection (try #1) against scanme.nmap.org (45.33.32.156)
Retrying OS detection (try #2) against scanme.nmap.org (45.33.32.156)
Initiating Traceroute at 15:12
Completed Traceroute at 15:12, 0.04s elapsed
Initiating Parallel DNS resolution of 4 hosts. at 15:12
Completed Parallel DNS resolution of 4 hosts. at 15:12, 5.90s elapsed
NSE: Script scanning 45.33.32.156.
Initiating NSE at 15:12
Completed NSE at 15:12, 30.15s elapsed
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.044s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        (protocol 2.0)
| ssh-hostkey: 1024 ac:00:a0:1a:82:ff:cc:55:99:dc:67:2b:34:97:6b:75 (DSA)
|_2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)
80/tcp   open  http       Apache httpd 2.4.7 ((Ubuntu))
|_http-methods: GET HEAD POST OPTIONS
|_http-title: Go ahead and ScanMe!
|_http-favicon: Unknown favicon MD5: 156515DA3C0F7DC6B2493BD5CE43F795
443/tcp  open  tcpwrapped
1863/tcp open  tcpwrapped
5050/tcp open  tcpwrapped
5190/tcp open  tcpwrapped
8008/tcp open  http?
|_http-methods: No Allow or Public header in OPTIONS response (status code 302)
|_http-title: Did not follow redirect to https://scanme.nmap.org:8010/ and no page was returned.
8010/tcp open  ssl/xmpp?
|_sslv2: server supports SSLv2 protocol, but no SSLv2 cyphers
9929/tcp open  nping-echo Nping echo
3 services unrecognized despite returning data. If you know the service/version, please submit the following fingerprints at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port22-TCP:V=5.51%I=7%D=11/30%Time=5A204971%P=x86_64-redhat-linux-gnu%r
SF:(NULL,2B,"SSH-2\.0-OpenSSH_6\.6\.1p1\x20Ubuntu-2ubuntu2\.8\r\n");
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port8008-TCP:V=5.51%I=7%D=11/30%Time=5A204971%P=x86_64-redhat-linux-gnu
SF:%r(GetRequest,43,"HTTP/1\.1\x20302\x20Found\r\nLocation:\x20https://:80
SF:10/\r\nConnection:\x20close\r\n\r\n")%r(FourOhFourRequest,66,"HTTP/1\.1
SF:\x20302\x20Found\r\nLocation:\x20https://:8010/nice%20ports%2C/Tri%6Eit
SF:y\.txt%2ebak\r\nConnection:\x20close\r\n\r\n")%r(GenericLines,42,"HTTP/
SF:1\.1\x20302\x20Found\r\nLocation:\x20https://:8010\r\nConnection:\x20cl
SF:ose\r\n\r\n")%r(HTTPOptions,42,"HTTP/1\.1\x20302\x20Found\r\nLocation:\
SF:x20https://:8010\r\nConnection:\x20close\r\n\r\n")%r(RTSPRequest,42,"HT
SF:TP/1\.1\x20302\x20Found\r\nLocation:\x20https://:8010\r\nConnection:\x2
SF:0close\r\n\r\n")%r(SIPOptions,42,"HTTP/1\.1\x20302\x20Found\r\nLocation
SF::\x20https://:8010\r\nConnection:\x20close\r\n\r\n");
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port8010-TCP:V=5.51%T=SSL%I=7%D=11/30%Time=5A204989%P=x86_64-redhat-lin
SF:ux-gnu%r(GenericLines,9D5,"HTTP/1\.1\x20200\x20OK\r\nContent-Length:\x2
SF:02392\r\nConnection:\x20close\r\nCache-Control:\x20no-cache\r\nContent-
SF:Type:\x20text/html;\x20charset=utf-8\r\n\r\n<!DOCTYPE\x20html\x20PUBLIC
SF:\x20\"-//W3C//DTD\x20HTML\x204\.01\x20Transitional//EN\">\n<html>\n<hea
SF:d>\n<meta\x20http-equiv=\"Content-Type\"\x20content=\"text/html;\x20cha
SF:rset=UTF-8\">\n\x20\x20\x20\x20<title>Web\x20Filter\x20Block\x20Overrid
SF:e</title>\n\x20\x20\x20\x20<style\x20type=\"text/css\">\n\x20\x20\x20\x
SF:20\x20\x20\x20\x20html,\x20body\x20{\x20margin:\x200;\x20padding:\x200;
SF:\x20font-family:\x20Verdana,\x20Arial,\x20sans-serif;\x20font-size:\x20
SF:10pt;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20h1,\x20h2\x20{\x20height:\x
SF:2082px;\x20text-indent:\x20-999em;\x20margin:\x200;\x20padding:\x200;\x
SF:20margin:\x200;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20div\x20{\x20margi
SF:n:\x200;\x20padding:\x200;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20div\.h
SF:eader\x20{\x20background:\x20url\(https://:8010/XX/YY/ZZ/CI/MGPGHGPGPFG
SF:HCDPFGGOGFGEH\)\x200\x200\x20repeat-x;\x20height:\x2082px;\x20}\n\x20\x
SF:20\x20\x20\x20\x20\x20\x20div\.header\x20h1\x20{\x20background:\x20url\
SF:(https://:8010/XX/YY/ZZ/CI/MGPGHGPGPFGHCDPFGGHGFHBGCHEGPFHHGG\)\x200\x2
SF:00\x20no-repeat;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20div\.header\x20h
SF:2\x20{\x20background:\x20url\(https://:8010/XX/YY/ZZ/CI/MGPGHGPGPFGHCDP
SF:FGGOGF")%r(GetRequest,9D5,"HTTP/1\.1\x20200\x20OK\r\nContent-Length:\x2
SF:02392\r\nConnection:\x20close\r\nCache-Control:\x20no-cache\r\nContent-
SF:Type:\x20text/html;\x20charset=utf-8\r\n\r\n<!DOCTYPE\x20html\x20PUBLIC
SF:\x20\"-//W3C//DTD\x20HTML\x204\.01\x20Transitional//EN\">\n<html>\n<hea
SF:d>\n<meta\x20http-equiv=\"Content-Type\"\x20content=\"text/html;\x20cha
SF:rset=UTF-8\">\n\x20\x20\x20\x20<title>Web\x20Filter\x20Block\x20Overrid
SF:e</title>\n\x20\x20\x20\x20<style\x20type=\"text/css\">\n\x20\x20\x20\x
SF:20\x20\x20\x20\x20html,\x20body\x20{\x20margin:\x200;\x20padding:\x200;
SF:\x20font-family:\x20Verdana,\x20Arial,\x20sans-serif;\x20font-size:\x20
SF:10pt;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20h1,\x20h2\x20{\x20height:\x
SF:2082px;\x20text-indent:\x20-999em;\x20margin:\x200;\x20padding:\x200;\x
SF:20margin:\x200;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20div\x20{\x20margi
SF:n:\x200;\x20padding:\x200;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20div\.h
SF:eader\x20{\x20background:\x20url\(https://:8010/XX/YY/ZZ/CI/MGPGHGPGPFG
SF:HCDPFGGOGFGEH\)\x200\x200\x20repeat-x;\x20height:\x2082px;\x20}\n\x20\x
SF:20\x20\x20\x20\x20\x20\x20div\.header\x20h1\x20{\x20background:\x20url\
SF:(https://:8010/XX/YY/ZZ/CI/MGPGHGPGPFGHCDPFGGHGFHBGCHEGPFHHGG\)\x200\x2
SF:00\x20no-repeat;\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20div\.header\x20h
SF:2\x20{\x20background:\x20url\(https://:8010/XX/YY/ZZ/CI/MGPGHGPGPFGHCDP
SF:FGGOGF");
Device type: general purpose|terminal|storage-misc
Running (JUST GUESSING): Linux 2.6.X (88%), IGEL Linux 2.6.X (86%), Axcient embedded (85%)

Aggressive OS guesses: Linux 2.6.18 (88%), Linux 2.6.15 - 2.6.26 (88%), Linux 2.6.32 (87%), IGEL UD3 thin client (Linux 2.6) (86%), Linux 2.6.31 (85%), Axceint Uptiva backup appliance (85%), Linux 2.6.16 - 2.6.28 (85%)
No exact OS matches for host (test conditions non-ideal).
Uptime guess: 1.824 days (since Tue Nov 28 19:26:55 2017)
Network Distance: 4 hops
TCP Sequence Prediction: Difficulty=264 (Good luck!)
IP ID Sequence Generation: All zeros

TRACEROUTE (using port 113/tcp)
HOP RTT      ADDRESS
1   10.87 ms 10.10.30.1
2   1.80 ms  10.14.2.2
3   2.56 ms  10.212.4.18
4   3.33 ms  scanme.nmap.org (45.33.32.156)

Read data files from: /usr/share/nmap
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 200.12 seconds
           Raw packets sent: 1123 (51.344KB) | Rcvd: 1081 (44.800KB)



El resultado del escaneo como se puede apreciar, es bastante detallado. Sin embargo indica el porcentaje de certeza de los posibles Sistemas Operativos, ya que las condiciones de prueba no son las ideales. [No exact OS matches for host (test conditions non-ideal)]

Aggressive OS guesses: Linux 2.6.18 (88%), Linux 2.6.15 - 2.6.26 (88%), Linux 2.6.32 (87%), IGEL UD3 thin client (Linux 2.6) (86%), Linux 2.6.31 (85%), Axceint Uptiva backup appliance (85%), Linux 2.6.16 - 2.6.28 (85%)
No exact OS matches for host (test conditions non-ideal).
Uptime guess: 1.824 days (since Tue Nov 28 19:26:55 2017)


Sin embargo podriamos tener una mayor certeza del sistema operativo con el resultado asociado al puerto 80 ya que indica que este se encuentra abierto, el servidor es Apache 2.4.7 para Ubuntu.

PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        (protocol 2.0)
| ssh-hostkey: 1024 ac:00:a0:1a:82:ff:cc:55:99:dc:67:2b:34:97:6b:75 (DSA)
|_2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)
80/tcp   open  http       Apache httpd 2.4.7 ((Ubuntu))

|_http-methods: GET HEAD POST OPTIONS
|_http-title: Go ahead and ScanMe!
|_http-favicon: Unknown favicon MD5:


También podemos ejecutar el escaneo de forma sencilla sin añadir ningún parametro. Probemos ejecutando nuevamente un scan hacia scanme.nmap.org.

[root@arquitectoti ~]# nmap scanme.nmap.org

Starting Nmap 5.51 ( http://nmap.org ) at 2017-11-30 17:05 CLST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.18s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
1863/tcp open  msnp
5050/tcp open  mmcc
5190/tcp open  aol
8008/tcp open  http
8010/tcp open  xmpp
9929/tcp open  nping-echo

Nmap done: 1 IP address (1 host up) scanned in 17.76 seconds
[root@arquitectoti ~]#


Como se puede apreciar el resultado es bastante sencillo en comparación al anterior, sin embargo nos muestra información bastante relevante, ya que lo que buscamos principalmente es determinar los puertos en escucha abiertos. Podemos determinar la latencia, puertos cerrados, puerto TCP, estado, servicio estandar asociado, la cantidad de host analizados y el tiempo de duración del escaneo.

En el siguiente ejemplo utilizaremos el parametro -sV para sondear y determinar el servicio e información de la versión.

[root@arquitectoti ~]# nmap -sV scanme.nmap.org

Starting Nmap 5.51 ( http://nmap.org ) at 2017-11-30 17:20 CLST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.18s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        (protocol 2.0)
80/tcp   open  http       Apache httpd 2.4.7 ((Ubuntu))



Las muestras que tomamos para el ejemplo, evidencian que no solo vemos el servicio asociado al puerto ya que además solicitamos la versión del servicio en escucha.


En el siguiente ejemplo con el parametro -O solo habilitamos la deteción del Sistema Operativo.


[root@arquitectoti ~]# nmap -O scanme.nmap.org

Starting Nmap 5.51 ( http://nmap.org ) at 2017-11-30 18:03 CLST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.18s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
1863/tcp open  msnp
5050/tcp open  mmcc
5190/tcp open  aol
8008/tcp open  http
8010/tcp open  xmpp
9929/tcp open  nping-echo
Device type: general purpose|terminal|storage-misc
Running (JUST GUESSING): Linux 2.6.X (88%), IGEL Linux 2.6.X (86%), Axcient embedded (85%)
Aggressive OS guesses: Linux 2.6.18 (88%), Linux 2.6.15 - 2.6.26 (88%), Linux 2.6.32 (87%), IGEL UD3 thin client (Linux 2.6) (86%), Axceint Uptiva backup appliance (85%), Linux 2.6.16 - 2.6.28 (85%), Linux 2.6.31 (85%)
No exact OS matches for host (test conditions non-ideal).

Network Distance: 22 hops

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 27.27 seconds






En el siguiente ejemplo realizamos un scan solo a los puertos 22, 80 y 443 (-p), sondearemos el servició y versión que se está ejecutando (-sV) y habilitaremos la la deteción del Sistema Operativo (-O).

[root@arquitectoti ~]# nmap -p22,80,443 -sV -O scanme.nmap.org

Starting Nmap 5.51 ( http://nmap.org ) at 2017-11-30 18:28 CLST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.18s latency).
PORT    STATE SERVICE    VERSION
22/tcp  open  ssh        (protocol 2.0)
80/tcp  open  http       Apache httpd 2.4.7 ((Ubuntu))
443/tcp open  tcpwrapped

1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :
SF-Port22-TCP:V=5.51%I=7%D=11/30%Time=5A207807%P=x86_64-redhat-linux-gnu%r
SF:(NULL,2B,"SSH-2\.0-OpenSSH_6\.6\.1p1\x20Ubuntu-2ubuntu2\.8\r\n");
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|WAP|terminal
Running (JUST GUESSING): Linux 2.6.X|2.4.X (87%), Netgear embedded (86%), IGEL Linux 2.6.X (85%)
Aggressive OS guesses: Linux 2.6.18 (87%), Linux 2.6.15 - 2.6.26 (87%), Tomato 1.27 (Linux 2.4.20) (86%), Linux 2.6.31 - 2.6.32 (86%), Linux 2.6.32 (86%), Netgear DG834G WAP (86%), IGEL UD3 thin client (Linux 2.6) (85%)
No exact OS matches for host (test conditions non-ideal).

Network Distance: 22 hops

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 42.78 seconds


Con el parametro -F puedes realizar el scan en modo rapido, el cual escanea menos puertos que el escaneo por defecto.
[root@arquitectoti ~]# nmap -F scanme.nmap.org



Añadiendo -p1-2000, el escaneo revisará los puertos desde 1 hasta el 2000.

[root@arquitectoti ~]# nmap -p1-2000 scanme.nmap.org


Vamos a escanear el rango de puertos desde el 21 al 25 y el rango de puertos entre el 80 y 123 de todos los hosts de la red 192.168.0.*

[root@arquitectoti ~]# nmap -p21-25,80-123 192.168.0.*

Cómo escanear la subred 192.168.1.0/24.

[root@arquitectoti ~]# nmap 192.168.1.0/24


Cómo escanear el rango de IP desde la 192.168.2.1 hasta la 192.168.2.50

[root@arquitectoti ~]# nmap 192.168.2.1-192.168.2.50

Para escanear las direcciones 3 o mas direcciones IP del mismo segmento. por ejemplo 192.168.1.10, 192.168.1.12 y 192.168.1.20.
[root@arquitectoti ~]# nmap 192.168.1.10,12,20



Para escanear multiples hosts.
[root@arquitectoti ~]# nmap 192.168.2.1 scanme.nmap.org 8.8.8.8


Para guardar el resultado de un scaneo en un archivo txt.
[root@arquitectoti ~]# nmap scanme.nmap.org > nmap_db.txt


Para escanear desde una lista de host, rangos, redes o dirección DNS. La lista debe contener información como:
192.168.2.*
8.8.8.8
scanme.nmap.org
172.16.0.0/16
[root@arquitectoti ~]# nmap -iL /root/scans/lista.txt




Como se puede apreciar, Nmap es una herramienta muy poderosa, la cual nos puede ayudar mucho para comenzar a realizar reconocimiento en un análisis de vulnerabilidades (Pentesting). Las opciones vistas pueden ser combinables, todo dependerá de su gran imaginación. Espero les sea de ayuda este pequeño tutorial.

Portense bién y Hasta la próxima!