Técnicas de recolección de información

Information Gathering

En el día de hoy hablaremos de las técnicas mas usadas para la recolección de información a nivel general, esta es la primera y una de las fases de pre-pentestin ó pre-ataque con mas importancia en la auditoria de seguridad ya que a través de esta recopilación de información podemos conocer un poco mas sobre el objetivo.

Normalmente en esta fase debemos obtener toda la información posible para diseñarnos o imaginarnos como esta distribuida la red a penetrar.

Las guías de CEH nos enumeran siete Etapas de Information Gathering - Footprinting

01 - Gathering information 
02 - Locating the network range
03 - Identifying active machines
04 - Finding open ports and applications
05 - Detecting operating systems
06 - Fingerprinting services
07 - Mapping the network

Footprinting

Es definido como el proceso de crear un modelo o mapa de una organización de redes y sistemas. Consiste en la búsqueda de toda la información pública, bien porque haya sido publicada a propósito o bien porque haya sido publicada por desconocimiento. en este proceso buscaremos todas las huellas posibles, como direcciones IP, servidores internos, cuentas de correo de los usuarios, nombres de máquinas, información del registrador del dominio, tipos de servidores, ficheros con cuentas y/o credenciales de usuarios, impresoras, cámaras IP, metadatos, etc.

Fingerprinting

Es un proceso o técnica que consiste en analizar y determinar las huellas que deja un S.O en sus conexiones de red.

Los programas que se utilizan para realizar Fingerprinting se basan en dos filosofías, escáner pasivo o activo:
Activo: Cuando se envia paquetes esperando respuesta del objetivo y es comparada con su base de datos, las tecnicas que suelen ser usadas son: inundacion de paquetes SYN, envio flags TCP incorrectos, envio de paquetes FIN... los cuales permiten ser detectados facilmente.

Pasivo: Cuando se esnifea trafico para identificar las maquinas que  se intercomunican en la red, comparando sus tiempos de respuesta sin actuar en la red. La deteccion de esta tecnica se torna dificil, pero tiene sus incovenientes: hay que esperar un gran lapso de tiempo para la captura de paquetes.

network schema


Gathering information

Son muchas las herramientas, técnicas y recursos disponibles que cumplen con este propósito.
Estas son algunas de ellas:
  • Google Hacking 
  • Whois, Nslookup
  • Metadatos
  • Ingeniería Social
Igualmente existen herramientas automatizadas para recolectar todo tipo de información.

La idea de toda la fase es construir un perfil del objetivo siguiendo las etapas mencionadas anteriormente..

Google Hacking:

Google siempre ha sido uno de los recursos mas utilizado para la busqueda de informacion. Con la ayuda de los operadores de búsqueda de Google los cuales son términos de consulta o símbolos que realizan acciones especiales. Estos operadores nos permiten encontrar informacion concreta en forma rápida y precisa.

El nombre a la tecnica a mi parecer suena mas de lo que verdad es.. realmente no se hacking con google simplemente es un gran aliado en la recopilacion de informacion. el nombre va mas por lo que podemos encontrar con el por ejemplo:

  • Dispositivos de red (Impresoras, Camaras IP, Router's, Switches, Telefonos IP, PBX)
  • Sitios Vulnerables (Errores )
  • Informacion Personal (Tel, Nombres, Correos, Etc..)
  • VNC Server
  • Consolas Web de Antivirus
  • UPS Monitor
  • Base de datos de correo, usuarios, contraseñas
  • FTP Servers
  • Logs.
  • Documentos
  • Etc..
Por todo esto hace parte de las mejores herramientas de búsqueda de información. Claro esta que esto no dejaria de ser asi si los admin hicieran bien su tarea y no permitiera la falta de protecion o seguridad de dispositivos y sitios web los cuales permiten que el robot de google los indexe. 


Ejemplos usando Google Hacking:

Buscando Dispositivos de red (Impresora):

Que interesa obtener el acceso al portal de un Print Server. En conversaciones he escuchado este tipo de pregunta, y la respuesta es simple si vos sos una empresa rival o cualquier otro ente o persona que requiera informacion de dicha empresa que mejor que ver los documentos que se imprimen a diario en esas impresoras? ahora torna importante cierto? esto ahorra hacer Garbage. y el auditor o atacante pude obtener ademas de esta informacion las IP de subredes internas, ademas de estar ya dentro de dicha red.

Ejemplos:
inurl:"main/main.html" intitle:"Brother"


Una vez en el panel de administración, se accede a la lista de impresoras que se encuentran en la misma organización con la opción de Buscar  y que se hayan dado de alta, ya sean de la marca Brother o de cualquier otro fabricante.




Si intentamos ingresar a los ajustes de administrador configuracion general nos solicitara credenciales de acceso, bien estas no las conocemos pero algo curioso ocurre cuando cancelamos el login. la web nos informa sobre las credenciales default de acceso. probemos.


Intentemos ingresarlas y a ver que pasa:

y como era de esperarse algunas web de listado arrojado aun permanecen con los credenciales por defecto.

Buscando Sitios web vulnerables (SQL Injection):
La mayoria de los sitios web no pasan por analisis de vulnerabilidades los cuales hacen que el administrador de dicho sitio pase desapercibido de estas.
Uno de los parametros de busqueda para encontrar web vulnerables a SQL Injection son aquellos que basan en contenido de noticias. o CMS
un ejemplo de parametro de busqueda seria el siguiente:
inurl:noticias.php?id=1

Entrando a la primera web que me arroja google inmediatamente puedo comprobar que es vulnerable a SQL Injection simplemente dejando nulo el parametro ID  en la URL de la web.

solo quedaría explotar esta vulnerabilidad entrar a la BD y se podrá obtener toda información privada.

De esta misma forma podemos buscar errores específicos en los sitios para explotar.


Buscando listado de recursos
se puede usar el siguiente termino de busqueda: intitle:"index of" pentesting  con esto buscare listado de recursos que tengan que ver con pentesting.


Un ejemplo mas seria buscar consolas web de VNC Server:
intitle:"VNC viewer for Java"

Para no alargar mas el articulo pueden encontrar mayor información de google hacking en el Ebook Google Hacking for Penetration Testers, Volume 2.

Igualmente hoy en dia existen diversas herramientas para automatizar este tipo de búsquedas como son: GooScan, SiteDigger, ProminentDork, etc...



Whois
es un protocolo TCP el cual suministra información publica que permite determinar el propietario de un nombre de dominio o de una IP, esta información involucra clientes y empresa proveedora. esta herramienta puede ser usada a traves de la consola o bien de diversas paginas web que ofrecen la herramienta en modo online.

En modo consola podemos usarla simplemente con el comando Whois :


[Antony@Server ~]$ whois 173.194.112.80
[Querying whois.arin.net]
[whois.arin.net]

#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# http://www.arin.net/public/whoisinaccuracy/index.xhtml
#


#
# Query terms are ambiguous.  The query is assumed to be:
#     "n 173.194.112.80"
#
# Use "?" to get help.
#

#
# The following results may also be obtained via:
# http://whois.arin.net/rest/nets;q=173.194.112.80?showDetails=true&showARIN=false&ext=netref2
#

NetRange:       173.194.0.0 - 173.194.255.255
CIDR:           173.194.0.0/16
NetName:        GOOGLE
NetHandle:      NET-173-194-0-0-1
Parent:         NET173 (NET-173-0-0-0-0)
NetType:        Direct Allocation
OriginAS:       AS15169
Organization:   Google Inc. (GOGL)
RegDate:        2009-08-17
Updated:        2012-02-24
Ref:            http://whois.arin.net/rest/net/NET-173-194-0-0-1


OrgName:        Google Inc.
OrgId:          GOGL
Address:        1600 Amphitheatre Parkway
City:           Mountain View
StateProv:      CA
PostalCode:     94043
Country:        US
RegDate:        2000-03-30
Updated:        2013-08-07
Ref:            http://whois.arin.net/rest/org/GOGL

OrgTechHandle: ZG39-ARIN
OrgTechName:   Google Inc
OrgTechPhone:  +1-650-253-0000 
OrgTechEmail:  arin-contact@google.com
OrgTechRef:    http://whois.arin.net/rest/poc/ZG39-ARIN

OrgAbuseHandle: ZG39-ARIN
OrgAbuseName:   Google Inc
OrgAbusePhone:  +1-650-253-0000 
OrgAbuseEmail:  arin-contact@google.com
OrgAbuseRef:    http://whois.arin.net/rest/poc/ZG39-ARIN


#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# http://www.arin.net/public/whoisinaccuracy/index.xhtml
#

Y como mencionamos anteriormente pueden optar usarla a traves de los sitios web que la ofrecen por ejemplo centralops o bien cqcounter esta ultima con Geo localización.



Como podrán notar con esta herramienta se puede extraer una gran cantidad de información como direcciones, DNS, correos, Etc..

Realizando consultas DNS: Igualmente podemos recolectar información realizando consultas de DNS, Nslookup Es un programa, utilizado para saber si el DNS está resolviendo correctamente los nombres de dominio y las IPs. el comando lo podemos encontrar tanto en windows como sistemas Unix.

La recolección de información se realiza también desde el DNS, ya que proporciona un poco de información pública y privada en algún momento, acerca de los servidores de la organización como la dirección IP, el nombre del servidor. existen diversas herramientas que interactúan con los servidores DNS como son nslookup y dig,

El siguiente ejemplo muestra la salida de una consulta sencilla con nslookup a google.com

[Antony@Server ~]$ nslookup 
> google.com
Server:  74.63.208.3
Address: 74.63.208.3#53

Non-authoritative answer:
Name: google.com
Address: 74.125.227.201
Name: google.com
Address: 74.125.227.193
Name: google.com
Address: 74.125.227.198
Name: google.com
Address: 74.125.227.192
Name: google.com
Address: 74.125.227.206
Name: google.com
Address: 74.125.227.194
Name: google.com
Address: 74.125.227.199
Name: google.com
Address: 74.125.227.200
Name: google.com
Address: 74.125.227.197
Name: google.com
Address: 74.125.227.196
Name: google.com
Address: 74.125.227.195
 
En este otro ejemplo se realiza nuevamente se consulta con nslookup , con el fin de identificar las ip y registros MX correspondiente a google y asi identificar posibles servidores de correo.


[Antony@Server ~]$ nslookup
> set type=mx
> google.com
Server:  74.63.208.3
Address: 74.63.208.3#53

Non-authoritative answer:
google.com mail exchanger = 30 alt2.aspmx.l.google.com.
google.com mail exchanger = 40 alt3.aspmx.l.google.com.
google.com mail exchanger = 20 alt1.aspmx.l.google.com.
google.com mail exchanger = 10 aspmx.l.google.com.
google.com mail exchanger = 50 alt4.aspmx.l.google.com.

Authoritative answers can be found from:
alt2.aspmx.l.google.com internet address = 64.233.171.27
alt3.aspmx.l.google.com internet address = 74.125.141.27
alt1.aspmx.l.google.com internet address = 74.125.137.27
aspmx.l.google.com internet address = 64.233.169.27
alt4.aspmx.l.google.com internet address = 64.233.186.27

El resultado nos arroja varios servidores alternos de correos de google y los valores de prioridad de estos, el valor mas bajo tiene mayor prioridad.

También podemos obtener información del servidor de nombres de una organización escribiendo los siguientes parámetros.


[Antony@Server ~]$ nslookup
> set type=ns
> google.com
Server:  74.63.208.3
Address: 74.63.208.3#53

Non-authoritative answer:
google.com nameserver = ns4.google.com.
google.com nameserver = ns1.google.com.
google.com nameserver = ns3.google.com.
google.com nameserver = ns2.google.com.

Authoritative answers can be found from:
ns4.google.com internet address = 216.239.38.10
ns1.google.com internet address = 216.239.32.10
ns3.google.com internet address = 216.239.36.10
ns2.google.com internet address = 216.239.34.10

El resultado nos muestra que existen cuatro servidores DNS.

MetaDatos

Es una técnica útil para recolectar información que se encuentran contenidos en los ficheros. Los metadatos son datos altamente estructurados que describen información sobre un objeto en este caso un fichero. en el podemos encontrar el autor, fecha de creacion, nombre del equipo, sistema operativo.

Existen diversas herramientas para la obtencion y analisis de los metadatos una de las mas conocida es FOCA (Fingerprinting Organizations with Collected Archives)  soporta los siguientes tipos de documentos:

  • Microsoft Office de la versión 97 a la 2007
  • OpenOffice
  • Portable Document Format (pdf)
  • Corel Word Perfect document (wpd)
  • Joint Photographic Experts Group (jpg)

Ingeniería Social

y  por ultimo y no menos importante esta tecnica es el pan de cada dia de muchos delicuentes y no solo es usada por hackers informaticos, sino por estafadores de todo tipo. como las populares llamadas telefonicas, correos, phising. etc... esta práctica se usa con el fin de obtener información confidencial a través de la manipulación de usuarios legítimos. Es una técnica que pueden usar ciertas personas, tales como investigadores privados, criminales, o delincuentes informáticos, para obtener información, acceso o privilegios en sistemas de información que les permitan realizar algún acto que perjudique o exponga la persona u organismo comprometido a riesgo o abusos.

si has realizado encuestas si algun dias has digitado o dado tus datos personales sin saber realmente quien esta detras de esa llamada, correo, encuesta, o herramienta, posiblemente has sido objeto de esta practica común.

Locating the network range

El siguiente paso del proceso de recopilación de información es tratar de identificar el rango de direcciones IP junto con su máscara de subred del objetivo.

Para encontrar el rango de la red, el auditor puede trazar la ruta entre su sistema y el sistema de objetivo. Hay muchas herramientas de traceroute hoy en dia que nos entrega como resultados graficas de los nodos traceados como es Visual Trace Route Tool. los que son mas de consola pueden seguir optando por el comando Traceroute o Tracert en windows. Es un comando simple pero de gran utilidad en auditorias de seguridad, si se desea obtener el traceado de una ip de un atacante o bien de un objetivo, hay es cuando aparece el comando el cual nos muestra una traza de la dirección es decir nos permite seguir los saltos de host, puntos de red o nodos como quieran llamarlos. con ella el auditor puede obtener información relevante sobre el objetivo.


En el siguiente ejemplo se utiliza el comando traceroute desde del punto de vista de un auditor o atacante informático, con el propósito de identificar host's implicados en el paquete o ataque.

[Antony@Server ~]$ traceroute 173.194.112.80
traceroute to 173.194.112.80 (173.194.112.80), 30 hops max, 40 byte packets
 1  XXXXXXXXXXXXXX.static.reverse.lstn.net (XXX.XXX.XXX.XXX)  0.698 ms  0.848 ms  1.058 ms
 2  XXXXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  1.485 ms  1.530 ms  1.568 ms
 3  XXXXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  0.254 ms XXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  0.278 ms XXXXXXXXXXXXXXXXX.dallas-idc.com (XXX.XXX.XXX.XXX)  0.282 ms
 4  172.22.1.17 (172.22.1.17)  0.644 ms 172.22.1.13 (172.22.1.13)  2.428 ms  2.552 ms
 5  xe-2-1-1.mpr1.dfw15.us.above.net (209.249.11.165)  0.234 ms  0.210 ms  0.205 ms
 6  ae4.cr1.dfw2.us.zip.zayo.com (64.125.21.6)  0.724 ms  0.660 ms  0.707 ms
 7  ae11.er1.dfw2.us.zip.zayo.com (64.125.20.66)  0.377 ms  0.583 ms  0.577 ms
 8  72.14.194.53 (72.14.194.53)  0.448 ms  0.627 ms  0.421 ms
 9  209.85.244.120 (209.85.244.120)  0.551 ms  0.547 ms 209.85.244.122 (209.85.244.122)  0.723 ms
10  66.249.95.198 (66.249.95.198)  122.528 ms  122.443 ms  122.649 ms
11  72.14.238.91 (72.14.238.91)  19.112 ms 209.85.142.206 (209.85.142.206)  21.873 ms 72.14.238.91 (72.14.238.91)  19.038 ms
12  216.239.48.150 (216.239.48.150)  42.934 ms 216.239.48.41 (216.239.48.41)  42.377 ms  42.457 ms
13  216.239.48.155 (216.239.48.155)  120.624 ms  120.609 ms  120.544 ms
14  209.85.143.217 (209.85.143.217)  110.861 ms 209.85.251.49 (209.85.251.49)  113.830 ms  113.687 ms
15  72.14.235.14 (72.14.235.14)  121.715 ms 209.85.243.34 (209.85.243.34)  122.293 ms  122.448 ms
16  72.14.234.234 (72.14.234.234)  119.539 ms 72.14.234.236 (72.14.234.236)  118.813 ms  118.698 ms
17  72.14.236.53 (72.14.236.53)  121.589 ms  121.623 ms  122.190 ms
18  fra07s29-in-f16.1e100.net (173.194.112.80)  119.467 ms  119.241 ms  119.211 ms

En el resultado del ejemplo se puede identificar los host por los cuales pasa un paquete de red entre el equipo de origen y el equipo destino, los tres primeros salton hacen parte del equipo de origen, el resto es el camino que tomo ese paquete para llegar al equipo destino.

Identifying active machines

Antes de intentar cualquier pentest, primero tenemos que identificar las máquinas activas que están en el alcance de la red de destino. Es importante tratar de detectar equipos activos en la red de destino por varios razones:

  • Ayuda a completar los detalles precisos en el mapa de la red que se está creando.
  • Identifica el perímetro y el límite exterior del sistema de destino.
  • Ayuda a crear un inventario de los sistemas que son accesibles en la red de destino.

Traceroute, Ping  y Nmap  son herramientas útiles para la identificación de los sistemas activos.

PING

Este comando ICMP lo que podemos encontrar en todos los S.O nos permite validar que equipos se encuentran activos o bien responden un mensaje ICMP. Ping nos puede dar detalles para medir la velocidad a la que los paquetes viajan a través de la red, y para obtener algunos datos básicos sobre el objetivo, al igual que Time-To-Live (TTL). También se puede utilizar para la resolución de nombres de host. Ping funciona muy simple. Se envía una solicitud de eco a un host de destino y espera a que el objetivo envié una respuesta eco. Así podemos hacer un barrido con ping y conocer los equipos que se encuentran activos.

Para eso pueden hacer uso de diversas herramientas que hacen uso de Ping o scanner de red. también se puede hacer uso de Nmap el cual también puede realizar esta tarea.

Hay que recordar que si detrás del objetivo existe un buen admin este posiblemente se encuentre protegido de los barridos de ping.

Detecting operating systems and Finding open ports and applications

Ya ahora que conocemos mas o menos el tamaño de la red y hemos identificado las maquinas disponibles, como auditor debemos  obtener los puertos abiertos en esas máquinas y descubrir los servicios disponibles e identificar el sistema operativo.

La determinación del tipo de S.O es también un objetivo de la exploración, ya que esto determinará
el tipo de ataque que se lanzará. al igual que las versiones para conocer la existencia de vulnerabilidades expuestas en las BD de seguridad y asi explotarlas.

Las técnicas para identificar estos puertos y descubrir los servicios son:

  • Port scanning: se emplea para designar la acción de analizar por medio de un programa el estado de los puertos de una máquina conectada a una red de comunicaciones. Detecta si un puerto está abierto, cerrado, o protegido por un cortafuegos
  • Banner grabbing : es una técnica de enumeración utilizado para recopilar información acerca de un sistema informático en una red y los servicios que se ejecutan en sus puertos abiertos
  • War walking or War Driving: Se usa para describir la accion de salir en busquedas de redes wifi ya sea caminando o en auto. es una practica comun para intentar obtener acceso a la red privada del objetivo
No pasare a explicar estos temas ya que se han detallado en otros artículos pasados. y son practica sencillas del dia a dia.

Las guías también nos hablan de War Dialing ya poco usadas o definitivamente eliminadas por los nuevos conceptos de red :
  • War dialing: técnica utilizada durante las décadas de los años 1980 y 1990, que consistía en hacer llamadas a una serie de números de teléfono automáticamente con el fin de encontrar módems conectados y permitiendo la conexión con algún otro ordenador

Ademas de las herramientas ya anteriormente nombradas y nuestro querido Nmap. existen miles de estas que pueden ayudarnos a encontrar esta información.

Nmap nos ofrece parametros para intentar identificar el sistema operativo del host, como tambien existe scripts para Nmap que fuerza la busqueda de las versiones del S.O y nos puede dar con mas claridad y certeza la version del sistema un ejemplo de identificacion seria el siguiente sigamos tomando como ejemplo la direccion dada de un servidor de google.com 173.194.112.80.

Los parametros que podriamos usar en Nmap para identificar S.O serian los siguientes:

  • -sV = detecta las versiones
  • -O = se intenta identificar el Sistema Operativo
  • -A = habilita OS fingerprinting y detección de versión
  • -P  = Establece el puerto a scanear ejemplo "139" puerto NetBios




C:\Users\Antony>nmap -O 173.194.112.80

Starting Nmap 6.40 ( http://nmap.org ) at 2015-04-15 17:33 Hora est. PacÝfico, SudamÚrica
Nmap scan report for fra07s29-in-f16.1e100.net (173.194.112.80)
Host is up (0.13s latency).
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): OpenBSD 4.X (85%)
OS CPE: cpe:/o:openbsd:openbsd:4.0
Aggressive OS guesses: OpenBSD 4.0 (85%), OpenBSD 4.3 (85%)
No exact OS matches for host (test conditions non-ideal).


La consulta anterior nos muestra como resultado puertos al descubierto 80 y 443 y una probabilidad de un 85% que el sistema es OpenBSD version 4.3.

cuando la informacion no es precisa usaremos unos de los script de nmap smb-os-discovery.nse el cual nos ayuda a descubrir el S.O del host.
un ejemplo seria:
nmap -sS -O --script smb-os-discovery.nse ip

pueden ver mayor información sobre la detección de S.O con  Nmap en su web oficial
http://nmap.org/book/man-os-detection.html

Una de las herramientas en stock para cualquier pentester es Xprobe la cual algo de su lógica ha sido absorbido por Nmap y es básicamente una  herramienta activa OS Fingerprinting que envía datos reales a la máquina.

Mapping the Network

Una vez recopilada toda la información necesaria el auditor de seguridad realiza un mapa de la posible red del objetivo.
Esto es principalmente un proceso manual, aunque existen algunas herramientas automatizadas para
esto, como Nlog, que puede ayudar a compilar el resultado de NMap Cheops

Esto es lo que básicamente nos exponen las diferentes Guía CEH para realizar un pre-pentesting exitoso.


Fuentes: The CEH  Prep Guide.


Written by

0 comentarios :

Comentarios en GooglePlus

Reacciones en G+