Archivo de la categoría: Geek

#Docker para #hackers y pentesters, ejecutando #metasploit desde un container

Se acabó el 2016 y como ultima publicación del año les traigo un tutorial exprés que involucra docker y seguridad informática. En publicaciones anteriores explicaba que durante estos últimos meses he estado trabajando bastante con docker, orchestration e infraestructura de cloud en general (parte habitual en un trabajo de full stack engineer).

Docker es una herramienta muy poderosa para desarrolladores pues nos ayuda a construir imágenes con todas sus dependencias y nos deja el paso libre para enfocarnos en lo que realmente importa: deployar rápidamente una aplicación (o varias) que sabemos que va a funcionar.

Bajo esa premisa no es de extrañarse que la comunidad de seguridad haya adoptado docker tan rápidamente, docker es una herramienta fantástica 🙂 y así como nos permite dockerizar una aplicación también podemos dockerizar herramientas de seguridad y en general cualquier cosa que tengamos en nuestro arsenal para pentest.

La gente que trabaja o ha trabajado en seguridad, específicamente en el área de penetration testing, estará de acuerdo en que uno de los recursos más importantes que tenemos son las ventanas de tiempo, por lo general cuando se realiza una prueba de penetración a alguna aplicación o sistema se hace durante un periodo de tiempo bien definido, el tiempo es valioso y no podemos desperdiciarlo en instalar y configurar herramientas, o peor aun ¿que pasa si la infraestructura que estamos auditando nos bloquea? ¿cuánto tiempo vamos a invertir en preparar un nuevo nodo desde donde podamos lanzar ataques y recibir shells?, para todo lo anterior llega docker al rescate 🙂

En este tutorial mostraré como ejecutar una de las herramientas de seguridad más populares utilizando docker: metasploit, específicamente utilizaremos el módulo exploit/multi/handler para recibir sesiones de meterpreter.

ojo: no voy a mostrar como dockerizar metasploit, eso lo dejamos para un siguiente tutorial donde veamos como dockerizar aplicaciones

Ejecutando metasploit desde un contenedor de docker

Para evitarte el problema de abrir los puertos en tu router y hacer un mapeo de puertos para exponer tu maquina a internet, puedes contratar un vps con algún proveedor de tu elección, hoy en día es muy sencillo contratar un vps y puedes tener uno en línea prácticamente en minutos, yo recomiendo digitalocean por qué sus vps son baratos y el soporte es muy bueno, con un nodo de 10 USD al mes es suficiente para correr una imagen de metasploit, puedes contratar el de 5 USD pero tendrás que habilitar el swap o si no quieres gastar dinero siempre puedes aprovechar la promoción que te ofrece Amazon Webservices (más o menos 1 año de uso gratuito de una instancia micro)

Sea cual sea el proveedor que hayas elegido el siguiente paso es instalar docker en tu instancia, para este tutorial lo haré sobre ubuntu / debian pero podrías instalarlo en el sistema operativo de tu elección, acá tienes una lista de sistemas operativos soportados

Desde la terminal de tu instancia y como root vamos a ejecutar algunos comandos para instalar herramientas necesarias como compiladores de gcc/g++, algunas librerías, utilidades, etc. al final vamos a instalar docker

apt-get install build-essential
apt-get install libxslt-dev libxml2-dev zlib1g-dev --yes
apt-get install docker
apt-get install docker.io

Lo siguiente que vamos a hacer es crear un directorio en nuestra instancia, este directorio lo vamos a utilizar como un volumen persistente cuando ejecutemos metasploit desde el contenedor para poder almacenar ahí todo el loot, scripts y en general archivos que nos genere la herramienta.

mkdir /root/.msf4

Llego el momento, en el docker registry oficial existe una imagen llamada remnux/metasploit que contiene todo lo necesario para ejecutar la herramienta, ejecutamos el siguiente comando y docker comenzara a descargar la imagen y posteriormente procederá a correr el contenedor.

docker run --rm -it -p 443:443 -v ~/.msf4:/root/.msf4 -v /tmp/msf:/tmp/data remnux/metasploit

En el tutorial de docker anterior explicaba para que era cada parametro, en resumen -p nos permite mapear puertos y -v definir volúmenes persistentes (mapear una carpeta de nuestro sistema de archivos a una del sistema de archivos virtual del contenedor).

Una vez la imagen haya sido descargada el contenedor será creado y todas las dependencias necesarias comenzaran a ser instaladas, nos olvidamos de instalar todas las gemas y resolver conflictos y nos podemos ir por un café ya que es un proceso bastante automatizo 🙂

Después de unos minutos tenemos un nodo listo para recibir conexiones.

En el caso de necesitar más listeners no hay problema pues podemos ejecutar múltiples contenedores de metasploit en diferentes puertos y así tener nuestras shells organizadas, y si nuestro servidor es baneado rápidamente podemos desplegar otro ejecutando esos 6 comandos.

Como lo he comentado en varios artículos, docker es una herramienta muy poderosa que puede ser utilizada en varias situaciones además del desarrollo de software, como lo vimos en este tutorial. Puedes dockerizar casi cualquier cosa, yo en lo personal tengo una imagen con un set de herramientas que utilizo en mi día a día (fierce, dirb, sqlmap, nmap, enum4linux, hashcat, Responder, etc.)

Saludos y Happy Hacking.

Docker 101 #2: puertos y volúmenes de un contenedor

docker-image

En el artículo anterior comenzamos con una breve introducción a docker, vimos su instalación, configuración e incluso lanzamos un par de servidores web nginx usando contenedores, en esta ocasión explicare un poco más acerca de los puertos y los volúmenes.

Puertos

Ok, lo primero que explicare será el mapeo de puertos, abrimos una terminal y ejecutamos el siguiente comando:

$ sudo docker run --name servidor-web -p 80:80 nginx

El parametro –name sirve para asignarle un nombre al contenedor.

El parámetro -p sirve para realizar el mapeo de puertos y recibe una cadena en el formato PUERTO-HOST:PUERTO-CONTENEDOR, es decir, del lado izquierdo definimos el puerto que nuestro sistema operativo le asignara al contenedor de docker y del lado derecho el puerto en el que realmente se ejecuta el servicio dentro del contenedor, en este caso nginx (suena un poco confuso al inicio así que regresa y léelo de nuevo hasta que lo entiendas)

En el comando anterior estamos mapeando el puerto 80 de nuestra computadora con lo que sea que este corriendo en el puerto 80 del contenedor, es por eso que si vamos a http://localhost veremos el servidor web en ejecución 🙂

nginx

En la consola desde donde ejecutaste el comando podrás ver las peticiones hechas al servidor dentro del contenedor.

docker-cli

Al ejecutar el comando y correr el contenedor abras notado que la consola se queda bloqueada por el servidor web, para evitar eso podemos correr el contenedor en modo detach con el parámetro -d, esto ejecutara el contenedor en segundo plano.

$ sudo docker run -d --name servidor-web -p 80:80 nginx

docker_detach

Observa como tan pronto como ejecutamos el comando docker nos devuelve el control de la terminal, cuando ejecutas contenedores de esta forma no olvides que para eliminarlos primero tienes que recuperar su id, el cual puedes obtener haciendo:

$ sudo docker ps

y en la primera columna encontraras el ID del contenedor que después deberás de eliminar usando sudo docker rm [CONTAINER-ID], si lo prefieres un tip muy útil para borrar todos los contenedores que hayas creado es ejecutar:

$ sudo docker stop $(sudo docker ps -a -q)
$ sudo docker rm $(sudo docker ps -a -q)

El primer comando detiene todos los contenedores que estén en ejecución y el segundo los elimina todos (no puedes eliminar un contenedor que este en ejecución).

Puedes correr todas los contenedores que quieras (o necesites) de nginx en diferentes puertos y con diferentes nombres y cada uno será una instancia completamente diferente del servidor web 🙂
containers

Observa como cada uno de los servidores web corren en un puerto diferente.

multi-docker

Volúmenes

Los volúmenes en docker pueden ser definidos con el parámetro -v y nos ayudan a resolver el problema de la persistencia de datos en los contenedores, un volumen puede ser visto como un mapeo entre un directorio de nuestra computadora y un directorio en el sistema de archivos del contenedor, regresemos a nuestro contenedor de nginx, ¿cómo le hacemos para mostrar un sitio web en nginx en lugar de la página por default?

Lo primero que haremos será crear una carpeta en donde colocaremos el código fuente de nuestro sitio web html (por ahora no trabajaremos con nada dinamico), por ejemplo website

website

Ejecutamos el siguiente comando mapeando el contenido de /home/alevsk/dev/sitio-web hacia /usr/share/nginx/html que es el directorio por default que utiliza nginx para servir contenido a Internet.

$ sudo docker run -d --name sitio-web -v /home/alevsk/dev/sitio-web:/usr/share/nginx/html -p 80:80 nginx

La próxima vez que visitemos http://localhost/ veremos nuestro sitio web corriendo.

nginx-web

Puedes replicar este contenedor con el contenido del sitio web tantas veces como quieras, es muy util en un escenario donde necesitas varios ambientes para pruebas, desarrollo, etc.

Eso es todo por ahora, en el siguiente tutorial aprenderemos a crear nuestras propias imágenes de docker (dockerizar aplicaciones), después de eso veremos otra herramienta bastante útil llamada docker-compose para facilitar la orquestación de aplicaciones que utilizan múltiples contenedores.

Saludos y happy hacking.

StringTransformer: the transformation tool

st

Hola lectores, en esta ocasión me gustaría compartir con ustedes una herramienta opensource que he publicado en mi repositorio de github, se trata de StringTransformer, un script desarrollado en python cuya finalidad es tomar una cadena de texto y transformarla a distintas representaciones equivalentes de la misma, por ejemplo binario, hexadecimal, octal, md5, sha256, etc. Las funciones de transformación son clases separadas del script principal por lo que la herramienta es modular, esto significa que es bastante fácil para cualquier programador (que sepa python) crear sus propias transformaciones y extender la funcionalidad de la herramienta.

Esta herramienta les puede ser útil cuando están jugando Capture the flags y necesitan una forma rápida de analizar cadenas de texto (o al menos esa es su finalidad), la herramienta sigue en desarrollo, corrigiendo bugs e implementando nuevas funcionalidades.

Instalación

Su instalación es bastante sencilla, primero deben de clonar el repositorio usando git

$ git clone https://github.com/Alevsk/stringTransformer.git

Una vez descargado el repositorio acceden a la carpeta del proyecto, dan los permisos de ejecución necesarios y lanzan el script:

$ cd stringTransformer
$ chmod +x stringTransformer.py
$ ./stringTransformer.py
                  
              _______         
       _____ |   _   |  ____  
      |    |  \  V  /  |    | 
      |   \ \  \_ _/  / /   | 
      \  \ \ \   '   / / /  / 
       \  \   | 'V' |   /  /  
     |\ \_____| \ / |_____/ /|
     | \        | |        / |
     |  |    ,/|| ||\,    |  |
     |   `| '  || ||  ' |`   |
     |    | |  || ||  | |    |
     \    | |  || ||  | |    /
      \.  | |  ||_||  | |  ./ 
       \  | |  |___|  | |  /  
         \' ,  _____  , '/    
             \/ ___ \/        
               /___\          
                           

stringTransformer v0.1 (https://github.com/alevsk/stringTransformer/)

Usage: stringTransformer.py -i INPUT_STRING | --input INPUT_STRING | --load FILE

stringTransformer.py: error: Required argument is missing. Use '-h' for help.

Con el comando -h o –help podran ver el menu de ayuda:

Options:
  -h/--help             show this help message and exit
  -i/--input=INPUT      set the input string to test with
  -l/--load=LOAD_FILE   load list of input strings (one per line)
  -x/--exclude=EXCLUDE  exclude this representations
  -o/--only=ONLY        transform input only to this representations
  -O/--output=OUTPUT    generate an output file
  -p/--params=PARAMS    use custom parameters on transformation functions
  --list                list available input representations
  --update              update from the official git repository

Examples:
./stringTransformer.py -i [STRING]
./stringTransformer.py -i [STRING] --exclude "hexa, octal"
./stringTransformer.py -i [STRING] --only "hexa, octal"
./stringTransformer.py -i [STRING] --params "rot.cipher=13,rot.encoding=utf-8"
./stringTransformer.py --load list.txt
./stringTransformer.py --list

Para ver las funciones de transformación actualmente disponibles pueden utilizar –list:


stringTransformer v0.1 (https://github.com/alevsk/stringTransformer/)

- sha1
- octal
- binary
- sha256
- html_entities_decode
- html_entities_encode
- md5
- base64_encode
- base64_decode
- ascii
- slug
- rot_encode
- hexa
- urlencode

Puedes ayudar a crear más funciones de transformación para la herramienta, para eso sugiero lean la documentación en la página principal del repositorio (o en el archivo README.md) https://github.com/Alevsk/stringTransformer

Ejemplos de uso

Queremos aplicar una transformación hexadecimal, rot 13 encode y ascii a la cadena de texto “The transformation tool”

$ ./stringTransformer.py -i "The transformation tool" -o "hexa,rot_encode,ascii"

Obtenemos como resultado:

stringTransformer v0.1 (https://github.com/alevsk/stringTransformer/)

[i] Loaded 3 representations to apply.
[i] Starting tests at: "23:54:04"

The transformation tool

[i] applying transformation...

ascii:

84 104 101 32 116 114 97 110 115 102 111 114 109 97 116 105 111 110 32 116 111 111 108

rot_encode:

Gur genafsbezngvba gbby

hexa:

54 0x68 0x65 0x20 0x74 0x72 0x61 0x6e 0x73 0x66 0x6f 0x72 0x6d 0x61 0x74 0x69 0x6f 0x6e 0x20 0x74 0x6f 0x6f 0x6c 

==================================

Incluso podemos pasar parámetros a las funciones de transformación que lo soporten, rot_encode por defecto utilizar 13 posiciones de desplazamiento pero aquí indicamos que use 51

$ ./stringTransformer.py -i "The transformation tool" -o "rot_encode" --params="rot_encode.cipher=51"

stringTransformer v0.1 (https://github.com/alevsk/stringTransformer/)

[i] Loaded 1 representations to apply.
[i] Starting tests at: "23:58:11"

The transformation tool

[i] applying transformation...

rot_encode:

Sgd sqzmrenqlzshnm snnk

==================================

La herramienta cuenta con muchísimos otros parámetros que los invito a explorar.
saludos

10 de mis soundtracks favoritos de videojuegos

soundtrack
Mucha de la gente que me conoce sabe que soy un gran amante de los soundtracks, mi biblioteca musical está conformada en su mayoría por soundtracks de mis películas, series y videojuegos favoritos, a diferencia de algunos otros melómanos yo no conozco nombres de bandas famosas, o la historia del vocalista X o el baterista Y del grupo Z, pero si tuviera una habilidad musical (además de saber tocar la guitarra) esta sería la capacidad de identificar en qué serie / película / videojuego he escuchado antes X canción :).

Desde hace algún tiempo he querido hacer una serie de publicaciones acerca de mis soundtracks favoritos, y en esta ocasión empezare con Videojuegos:

Half Life track 34

Half Life fue una de las primeras sagas de los videojuegos que termine completamente, se trata de un FPS que jugué a mediados de 2006 y que me gusto bastante, además de su historia y todo el sci fi lo que más me engancho fue su música, los dejo con el track 34 del soundtrack que es la música que suena en uno de los endings del juego.

The Last of Us Soundtrack 06 – Vanishing Grace

The Last of Us es un juego relativamente reciente, tuve la oportunidad de jugarlo y terminarlo el año pasado y me gusto bastante, muchos de sus soundtracks son tocados con guitarra acústica y eso es un plus para mí, esta pieza en particular es bastante relajante y emotiva por el contexto en el que juega durante la historia del juego.

Age of Empires II: The Conquerors Soundtrack 7 – Mountain Lie On

AOE es un clásico de clásicos de los RTS, sus soundtracks son variados y encajan perfectamente en cada etapa de una partida, Mountain Lie On en particular me encanta por el clímax que se escucha más o menos a la mitad de su reproducción, no les digo el segundo exacto para que mejor la escuchen y disfruten por si mismos.

The Elder Scrolls V: Skyrim OST – Steel on Steel

The Elder Scrolls V Skyrim es uno de mis RPGs favoritos, literalmente he invertido horas y horas en este videojuegos y nunca me ha aburrido, sus soundtracks son de lo más épico que he escuchado y en el caso de Steel on Steel me hace recordar estar librando una batalla dentro de alguna mazmorra contra un grupo de hechiceros / Orcos que me sobre pasan en número.

Mass Effect 1 OST – Uncharted Worlds

Unhcarted Worlds de Mass Effect es el soundtrack que escuchamos cuando exploramos el mapa en el primer Mass Effect, es un soundtrack que por alguna razón me hace entrar en un estado de concentración absoluto, es por eso que muchas veces cuando estoy en alguna sesión de programación maratónica de fondo suena un loop de 10 hrs de Uncharted Worlds

Mass Effect 2 OST – Illusive Man theme

Lo mismo que el soundtrack anterior, puedo escuchar Illusive Man theme por 10 hrs seguidas sin problemas

Age of Mythology Soundtrack – 04 Never Mind the Slacks and Bashers

AOM es otro RTS clásico con el que muchos universitarios / adultos jóvenes vivieron su infancia, los soundtracks de Age of Mithology son únicos y te transportan a la época de la civilización con la que estés jugando, recomiendo bastante este soundtrack si lo que quieres es inspiración.

Age of Mythology Soundtrack – 06 Flavor Cats

Otra joya de AOM, de este soundtrack en particular me gusta el bajo que se escucha de fondo lo suficiente como para recomendarlo en esta lista

Skyrim Additional Music Project Track 11: The Winged Dread

Este soundtrack lo descubrí por casualidad hace algunos meses mientras me preparaba para una sesión de trabajo en la empresa donde laboro, los invito a escuchar este soundtrack con audífonos a todo volumen para disfrutarlo al máximo XD, por lo menos a mí me hace sentir que estoy librando una de las más grandes batallas de todos los tiempos (justo en el minuto 1:55)

The witcher 3: Wild hunt – Hunt or be hunted

Hunt or be hunted es el primer soundtrack de batalla que suena cuando peleas contra un mini boss en The Witcher 3, durante esta batalla Gerald lucha contra una bestia alada, un grifo, y como se darán cuenta el soundtrack queda bastante con el calor de la batalla, el grifo no solo supera en fuerza al Witcher, sino también en tamaño y además vuela, es un muy buen soundtrack de batalla.

Dark Souls – Gwyn, Lord of Cinder

Este soundtrack suena durante la pelea contra Gwyn, Lord of Cinder y jefe final de Dark Souls 1, a diferencia de otros soundtracks de pelea que compartí más arriba este es mucho más lento y melancólico y te hace pensar en que Gwyn did nothing wrong, él no es malvado en realidad y solo fue víctima de las circunstancias (y el poder lo corrompió)

Bonus extra

La verdad es que tengo tanta música que nunca acabaría de listarla por completo, pero a continuación dejo algunas recomendaciones extras de soundtrack que también me gustan y las escucho bastante.

FF7: Advent Children Soundtrack – For the Reunion

Halo Theme Song Original

Un poco de OSINT (stalking) utilizando Facebook Graph Search

Mucha gente utiliza Facebook hoy en día, en sus computadoras, tablets y smarthphones, aun así es realmente poca la gente que sabe cómo sacarle el máximo provecho, estoy hablando de sus Apis y su capacidad para crear aplicaciones que se integran directamente con la red social.

A inicios de 2013 Facebook anuncio su nuevo servicio y motor de búsqueda llamado Graph Search, se trata de una herramienta que nos permite buscar información en la red social de forma eficiente, mediante el cruce de información y la inferencia de sus algoritmos nos permite encontrar cosas interesante.

Facebook-Graph-Search-1-20022013

Facebook Graph Search es una herramienta muy potente que se encuentra a disposición de todo el público, a lo largo de su historia ha sido limitada debido a preocupaciones de seguridad que han surgido, sin embargo la información a la que todavía nos da acceso resulta ser invaluable y sigue siendo una de las principales opciones a la hora de realizar stalking OSINT (Open Source Intelligence) a las personas.

A estas alturas ya todos los usuarios deberían de tener acceso a la funcionalidad Graph, es un buscador y luce de esta forma:

1

Muchos de ustedes ya estarán familiarizados con la barra de búsqueda, seguramente la utilizan para encontrar rápidamente el perfil de un amigo, el nombre de una fan page, etc., pero lo que no muchas personas saben es que es posible escribir una serie de consultas en lenguaje natural. Me he dado a la tarea de recolectar algunas de las que me parecen, arrojan la información más interesante.

Publicaciones

Las publicaciones son una parte importante de Facebook ya que es la principal manera en que interactuamos con otros usuarios, si queremos obtener una lista de nuestras publicaciones en las que nos ha comentado un stalker usuario en específico podemos utilizar la siguiente consulta: posts by me commented on by [NOMBRE DE UNA PERSONA]

posts by me commented on by jorge alejandro Velasco
(Publicaciones hechas por mí y comentadas por Jorge Alejandro Velasco)

2

El resultado es una lista de nuestras publicaciones en donde la persona específicada nos ha comentado algo.

Por otra parte, si lo que queremos saber es que tanta interacción ha habido entre dos personas, la consulta posts commented on by [PERSONA 1] and [PERSONA 2] es la que necesitamos, por ejemplo:

posts commented on by jorge alejandro velasco and enrique ortega Cardoso
(Publicaciones comentadas por Jorge Alejandro Velasco y Enrique Ortega Cardoso)

3

Como podemos ver, la consulta nos regresa una lista de publicaciones donde ambas personas han interactuado, no importa si es una publicación propia de ellos o de un tercero, es posible concatenar más personas en la consulta, solo tenemos que agregar “and [PERSONA 3] and [PERSONA 4] …”

Al igual que obtuvimos las publicaciones donde una persona en específico nos ha comentado, también es posible obtener la lista en donde nos ha dado “like”: posts by me liked [PERSONA] Por ejemplo:

posts by me liked by enrique ortega Cardoso
(Publicaciones hechas por mí a las que Enrique Ortega Cardoso les dio Like)

4

Es posible combinar todas estas consultas para cruzar información y obtener información todavía más específica, solo es cuestión de jugar con ellas.

Fan pages

Para las personas que tenemos una fan page, también es posible obtener información que nos ayude con la gestión de la misma, no es ningún secreto que Facebook no proporciona a los administradores una lista completa de fans, sin embargo es posible obtener esta lista mediante la siguiente consulta:

People who like Blog de Alevsk
(Personas a las que les gusta Blog de Alevsk)

5

¿Quieren ser más específicos?

People who like Blog de Alevsk and live in Morelia, Mexico
(Personas a las que les gusta Blog de Alevsk y además vivien en Morelia

6

¿Quieren más todavía?

People who like Blog de Alevsk and live in Morelia, Mexico and go to Tec de Monterrey Campus Morelia
(Personas a las que les gusta Blog de Alevsk, viven en Morelia y además estudian en Tecnológico de Monterrey campus Morelia)

7

Al final del dia obtenemos una lista y solo es cuestión de seguir bajando en la página para cargar la información de más personas que cumplen el perfil que especificamos, podemos obtener la lista completa pero eso puede tardar horas (a menos que tengas un script para automatizar el proceso XD https://github.com/Alevsk/FFFExtractor).

Enfocándonos mas al terreno de la seguridad informática y la ingeniería social (sé que ya lo están pensando) esto puede ser aplicado para obtener información y el perfil de todos los empleados de una empresa (personas a las que les guste X empresa y vivan en X ciudad), un perfil de Facebook nos dice muchísimas cosas, y tener una fotografía actualizada de como luce la persona ayuda bastante, continuamos

Cumpleaños

Esa época del año en donde nuestro muro se llena de felicitaciones :), pues verán, también podemos encontrar información interesante, por ejemplo obtener todas las felicitaciones que nos ha hecho una persona

birthday comments on by rafael bucio on my timeline
(Comentarios de cumpleaños de Rafael Bucio en mi timeline)

8

Bucio me felicito una vez y luego ya nunca más lo hizo :(, también podemos obtener la lista de felicitaciones de un año específico:

birthday comments on my timeline in 2013
(Comentarios de cumpleaños de 2013 en mi timeline)

9

Fotos

Las fotos son de las cosas más interesantes que hay en Facebook y la funcionalidad para etiquetar personas nos permite realizar búsquedas sobre ellas.

Para obtener las fotos de una persona en específico (Ya sea que el la haya subido o lo hayan etiquetado): Photos of [NOMBRE DE LA PERSON]

Ejemplo:

Photos of Enrique Ortega Cardoso
(Fotos de Enrique Ortega Cardoso)

10

Fotos donde aparezcan dos personas etiquetadas en específico:

Photos of Enrique Ortega Cardoso and Jorge Alejandro Velasco
(Fotos de Enrique Ortega Cardoso y Jorge Alejandro Velasco)

11

Finalmente, podemos agregar un filtro para obtener fotos que hayan sido tomadas en lugar específico y donde aparezcan personas específicas.

photos of enrique ortega cardoso and jorge alejandro velasco on porter british pub
(Fotos de Enrique Ortega Cardoso y Jorge Alejandro Velasco en Porter British

12

Todo esto de lo que les he hablado hasta el momento puede ser combinado con los filtros anteriores de Publicaciones, Likes y cumpleaños, sean creativos 🙂

Lugares

A todo mundo le gusta hacer checkin, es por eso que Facebook Graph Search nos permite hacer búsquedas tomando como parámetro un lugar, si queremos obtener la lista de los lugares en los que ha estado una persona y que han sido registrados por la plataforma deberíamos utilizar:

Places visited by Enrique Ortega Cardoso
(Lugares por Enrique Ortega Cardoso)

13

Si además queremos saber los lugares en común que hemos visitado o que nos personas han visitado lo haríamos de la siguiente forma:

Places visited by me and Enrique Ortega Cardoso
(Lugares visitados por mí y Enrique Ortega Cardoso)

14

Si por ejemplo eres una persona nueva en la ciudad, te fuiste de intercambio a estudiar, podrías buscar quienes son las personas que viven ahí y estudian en la universidad a la que iras, por ejemplo:

People who live in Morelia, Mexico and go to Tecnológico de Monterrey de Monterrey Campus Morelia
(Personas que viven en Morelia y van al tecnológico de monterrey)

La consulta te entregaría una lista de todas las personas que viven en la ciudad de Morelia y estudian en Tecnológico de Monterrey, incluso las que no son tus amigos, si estos interesados en lo último y quieres solo esas personas en específico, debemos agregar un filtro más:

people who are not my friends and live in morelia, mexico and go to tecnológico de monterrey de monterrey campus morelia
(Personas que no son mis amigos y viven en Morelia y van al tecnológico de monterrey)

15

Conclusión

Facebook Graph Search es sin duda una gran obra de ingeniería, una herramienta que nos permite cruzar datos y obtener información específica acorde a nuestras necesidades, su potencial es gigantesco y es una herramienta que pueden integrar muy bien los mercadologos, community managers, stalkers ingenieros sociales, etc.

Antes de que alguien saque el tema de la privacidad les puedo decir que si su información es devuelta en las consultas es porque sus opciones de privacidad así lo permiten XD, la información siempre ha estado ahí, de manera pública, Graph Search es solo una herramienta para encontrarla de manera más rápida esto por parte de la herramienta a la que tenemos acceso, seguramente los gobiernos utilizan algo como esto pero más potente.

Bonus extra

Para terminar, Las consultas que todos están esperando, y con la que se consumaran como grandes stalkersingenieros sociales.

Friends of my friends who are single women and live in [CIUDAD]
(Amigos de mis amigos que son mujeres solteras y viven en la ciudad X)

Friends of my friends who are single women and live in [CIUDAD] and go to [UNIVERSIDAD]
(Amigos de mis amigos que son mujeres solteras y viven en la ciudad X y estudian en la universidad X)

Happy stalking hacking