Herramientas de OSINT
En esta lección se explicará como funcionan tres de las herramientas más conocidas de OSINT, y se verán con ejemplos prácticos los usos que se les puede dar. Estas herramientas son Google Dorking, Shodan y FOCA.
Google Dorking
Google dorking es una técnica que nos permite hacer búsquedas avanzadas en con el motor de búsqueda de Google. Estas búsquedas se realizan mediante una sintaxis avanzada y pueden usarse en plataformas como Bing, Yahoo o DuckDuckGo.
El dorking es una forma de enumeración pasiva con la que puedes encontrar información sensible como documentos privados, credenciales de inicio de sesión, emails o incluso información de cuentas bancarias.
Operadores
Para realizar una búsqueda avanzada usando dorking es necesario conocer los operadores y sus funciones. A continuación se mostrará una tabla con los distintos operadores y veremos algunos ejemplos de uso.td>@gmail.com
Operador | Descripción | Ejemplo |
---|---|---|
” “ | El texto entre comillas dobles debe aparecer tal cual en el resultado. | “hackrocks” |
– | Excluye de la búsqueda el término que va después del signo “-”. | -windows |
+ | Incluye en la búsqueda el término que va después del signo “+”. | hackrocks +windows |
Se usa como comodín para indicar que puede tener cualquier valor. | ||
# | Busca un hashtag. | #hacking |
@ | Busca en redes sociales. | @hackrocks |
OR | Devuelve uno de los términos de búsqueda que se usen. | “linux” OR “windows” |
| | Realiza la misma función que el operador OR. | “linux” | “windows” |
AND | Devuelve todos los términos de búsqueda que se usen. | “linux” AND “windows” |
& | Realiza la misma función que el operador AND. | “linux” & “windows” |
() | Se utiliza para agrupar operadores. | ordenador (“linux” OR “windows”) |
cache: | Muestra la página en caché. | cache:hackrocks.com |
inurl: | El término de búsqueda debe estar en la url del resultado. | inurl:login.php |
site: | Muestra todos los resultados indexados sobre un sitio web | site:https://hackrocks.com/ |
filetype: | Muestra archivos con el tipo que le indiques. | filetype:pdf |
intitle: | El término de búsqueda debe estar en el título del resultado. | intitle:login |
intext: | El contenido del resultado debe tener el término de búsqueda. | intext:credentials |
PoC: filetype:
Este operador es muy útil porque puedes usarlo junto a otros como site, para buscar archivos con la extensión que se indique en un sitio web específico. A continuación se muestra un ejemplo de uso en el que se busca un archivo .conf, que puede contener credenciales o información de un servidor, en repositorios de github.
Otro uso puede ser encontrar ficheros de backups de bases de datos o simplemente buscar un pdf con información sensible.
PoC: inurl:
Como se ha indicado en la tabla anterior, este operador sirve para encontrar un resultado que tenga el término de búsqueda indicado en la url y, al igual que en el ejemplo anterior, se puede combinar con otros operadores para obtener resultados mejores. Este operador, al igual que intitle: e intext:, se puede usar con all al principio (allinurl:) si se quiere buscar más de una palabra.
Uno de los muchos casos en los que es útil inurl: es para buscar formularios de login:
PoC: ” “
Es el operador más básico que hay, pero no por ello el menos útil. El término de búsqueda que se introduzca debe aparecer en el resultado sin ningún cambio. Puede ser útil para buscar información sobre un término muy específico como puede ser el nombre de una persona o de una empresa.
En la siguiente imagen se muestra un ejemplo de como buscar con ” ” y AND un usuario y contraseña de una base de datos.
Shodan
Shodan es un motor de búsqueda que, a diferencia de otros como Google, en vez de buscar sitios web, busca dispositivos conectados a Internet. Es posible crear una cuenta gratis en Shodan, pero tiene varias limitaciones como un número máximo de 50 búsquedas.
Con la ayuda de una amplia variedad de filtros, podemos encontrar una gran cantidad de dispositivos de interés, acompañado de información como direcciones IP, dominios o ubicaciones.
Filtros
La tabla a continuación muestra una lista con algunos de los filtros más útiles de Shodan. Si quieres ver la lista con todos los filtros disponibles puedes hacerlo accediendo al siguiente enlace.
Filtro | Utilidad | Ejemplo |
---|---|---|
after/before: | Filtra los resultados por fechas. | before:12/11/2022 |
country: | Filtra los resultados por un código de dos dígitos que identifica a un país. | country:spain |
city: | Obtiene resultados de una ciudad. | city:sevilla |
geo: | Busca por latitud/longitud. | geo:37.38283,-5.97317 |
hostname: | Busca el nombre de un host o dominio específico. | hostname:hackrocks.com |
net: | Busca resultados en un rango de IP o en un segmento de red. | net:199.4.1.0/24 |
os: | Filtra por sistema operativo. | os:ubuntu |
port: | Permite filtrar por un número de puerto. | port:80 |
Conociendo los filtros que nos ofrece Shodan, podemos utilizarlos para enumerar dispositivos que pueden entrar en nuestro objetivo y son potencialmente vulnerables. En el siguiente apartado veremos una prueba de concepto para conocer como usar Shodan.
PoC: Enumerando servidores http en Sevilla
En esta prueba, tenemos como objetivos enumerar servidores http que estén ubicados en Sevilla. Usando el filtro city: visto en la tabla anterior podemos hacer la siguiente búsqueda: “http city:sevilla“.
Como se puede observar en la imagen, se obtiene un total de 42704 resultados de los cuales encontramos información como la dirección IP, el dominio, el servidor que utiliza o el certificado SSL.
También podemos ver que uno de los resultados tiene un código 302, que significa que ha sido trasladado a otra ubicación. Para solucionar esto se puede usar el filtro http.status: y buscar únicamente los servidores con código 200.
Al aplicar este filtro, la búsqueda nos devuelve únicamente servidores que respondan correctamente y, como podemos observar, el número de resultados se ha reducido de forma notable.
Por último, si se quiere buscar un servidor que utilice una tecnología en específico, como podría ser jquery, se puede usar el filtro http.component
A partir de aquí y con la ayuda de más filtros podemos obtener una lista de servidores potencialmente vulnerables.
FOCA
FOCA es una herramienta utilizada para extraer metadatos de archivos. Los metadatos de un archivo es la información no visual de un archivo que proporciona un contexto adicional a este, como pueden serlo el autor del archivo, emails, el sistema operativo usado o, en el caso de las imágenes, incluso la ubicación en la que se ha tomado esa imagen.
Además FOCA es capaz de obtener todos los archivos disponibles en un sitio web que se le indique y obtener sus metadatos, lo que facilita mucho el trabajo de enumeración.
Para que todo esto se entienda mejor, se hará de nuevo una prueba de concepto en la que se extraeran los metadatos de los archivos del sitio web del ayuntamiento de Sevilla.
PoC: Extrayendo metadatos de los archivos de un sitio web
En esta prueba se extraerán los metadatos que se encuentran ocultos en los archivos de la página web del ayuntamiento de Sevilla. En FOCA hay que crear un nuevo proyecto, eligiendo un nombre para el proyecto y poniendo en el apartado domain website la url del objetivo.
Lo siguiente es elegir el motor de búsqueda que va a usar FOCA y los tipos de archivo que se quiere encontrar, en este caso se ha utilizado bing como motor de búsqueda y que se obtengan todos los tipos de archivo. Una vez elegido esto, se hace click en Search All para iniciar la búsqueda.
Para extraer los metadatos de estos archivos, hay que dar click derecho en uno de ellos y hacer click primero en Download All, y una vez descargados los archivos en Extract All Metadata.
Una vez completado este proceso, podemos observar en el panel de la izquierda todos los datos ocultos que ha conseguido encontrar FOCA. Encontramos mucha información interesante como usuarios de los sistemas, softwares utilizados, emails, o incluso sistemas operativos. Con estos datos recopilados es posible, por ejemplo, idear ataques de fuerza bruta o buscar vulnerabilidades conocidas de los softwares o sistemas operativos encontrados.
Conclusiones
En esta lección hemos visto el potencial de las herramientas más utilizadas en OSINT mediante algunos ejemplos prácticos, recomendamos investigar más acerca de ellas para aprovecharlas al máximo, ya que no se puede cubrir todo en una única lección.
También es recomendable aprender a usar otras herramientas con las que contrastar información, ya que se pueden obtener resultados distintos de ellas, por ejemplo, dos programas de extracción de metadatos pueden mostrar distintos datos de un mismo archivo.
Recordamos que el fin de aprender a usar estas herramientas, es para usarlas en entornos de pentesting.