[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fO5DcvrWa1rDd_fz_HAfqapmSCuLL3PKvIzavhLR0ae8":3},{"slug":4,"title":5,"summary":6,"category":7,"author":10,"image_url":15,"image_thumb_url":15,"published_at":16,"updated_at":17,"body_html":18,"keywords":19,"reading_time_minutes":20,"related_articles":21,"related_course":52,"related_specialty":13},"como-crear-un-ctf-con-owasp-juice-shop-y-traefik","Como crear un CTF con Owasp Juice Shop y Traefik","Durante toda mi aventura con Owasp Juice Shop he realizado eventos de ctf en la Comunidad Dojo Panamá y poner en práctica todos nuestros conocimientos en aplicaciones web vulnerables. El proceso de configurar los servicios, aplicación, dominios puede llevarte horas de implementación.",{"slug":8,"name":9},"seguridad-informacion","Seguridad de la información",{"username":11,"name":12,"avatar_url":13,"headline":13,"aboutme":14},"elzerpineda","Elzer Pineda",null,"Consultor de seguridad, Pentester, Threat hunting, Desarrollo, AWS, SOC, Embajador de la Comunuidad Dojo","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdmdPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--a55b6b3ee65449b1a41881a321b16f9239c5326c\u002Fshutterstock_1677679348.jpg","2020-07-23T18:43:12-04:00","2026-10-26T06:34:05-03:00","\u003Cp>Durante toda mi aventura con Owasp Juice Shop he realizado eventos de ctf en la Comunidad Dojo Panamá y poner en práctica todos nuestros conocimientos en aplicaciones web vulnerables. El proceso de configurar los servicios, aplicación, dominios puede llevarte horas de implementación.\u003C\u002Fp>\r\n\u003Cp>Me gustaría compartir a la comunidad de Owasp como implementar con Docker-compose y traefik un ambiente de CTF automatizado utilizando esta aplicación y otras como wordpress o aplicaciones vulnerables como DWVA, etc.\u003C\u002Fp>\r\n\u003Ch4>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#requisitos-para-el-ambiente\">\u003C\u002Fa>\u003Cstrong>Requisitos para el ambiente\u003C\u002Fstrong>\n\u003C\u002Fh4>\r\n\u003Cp>\u003Cstrong>Para seguir este tutorial, necesitarás lo siguiente:\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>Un servidor (Ubuntu,Debian) que podemos ubicarlos en aws o vurlt.com, para este ambiente de laboratorio hemos utilizado vultr.com.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Docker instalado en su servidor, \u003Ca href=\"https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Fhow-to-install-and-use-docker-on-debian-9\">https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Fhow-to-install-and-use-docker-on-debian-9\u003C\u002Fa>\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Docker Compose instalado, \u003Ca href=\"https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Fhow-to-install-docker-compose-on-debian-9\">https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Fhow-to-install-docker-compose-on-debian-9\u003C\u002Fa>\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Un dominio y los registros para cado unos de nuestro ambiente, que cada uno apunta a la dirección IP de el servidor.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Cp>\u003Cstrong>Pero antes de comenzar a configurar nuestro ambiente de CTF definíamos algunos conceptos\u003C\u002Fstrong>.\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>¿Qué es Traefik?\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>Traefik es una herramienta Open Source desarrollada en Go, usada para el balanceo de cargas y como reverse proxy, una de las principales características de esta herramienta, es que es está orientada a microservicios ya que tiene integración directa con proveedores tales como docker, kubenertes docker swarm entre otros.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image002.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image002.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>A través de traefik vamos a lograr automatizar nuestros dominios con certificados de Lets Encrypt para cada uno de nuestros ambientes de Owasp Juice Shop que se los haremos llegar a cada uno de nuestro participante.\u003C\u002Fp>\r\n\u003Ch5>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#configuramos-nuestro-traefik\">\u003C\u002Fa>\u003Cstrong>Configuramos nuestro traefik.\u003C\u002Fstrong>\n\u003C\u002Fh5>\r\n\u003Cp>Utilizamos el proyecto oficial de traefik en Docker \u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002F_\u002Ftraefik\">https:\u002F\u002Fhub.docker.com\u002F_\u002Ftraefik\u003C\u002Fa> para su configuración.\u003C\u002Fp>\r\n\u003Cp>Pero antes de que pongamos en marcha nuestro contenedor de Traefik, necesitamos crear un archivo de configuración y establecer una contraseña cifrada para poder acceder al panel de control.\u003C\u002Fp>\r\n\u003Cp>Usaremos la utilidad htpasswd para crear esta contraseña encriptada. Primero, instalaremos la utilidad, que está incluida en el paquete apache2-utils:\u003C\u002Fp>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>​ sudo apt install apache2-utils\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>​ htpassw -nb admin:PASSWORD\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Salida del resultado: admin:$apr1$ruca84Hq$mbjdMZBAG.KWn7vfN\u002FSNK\u002F\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Cp>Para configurar el servidor de Traefik, crearemos un nuevo archivo de configuración llamado traefik. toml usando el formato\u003C\u002Fp>\r\n\u003Cpre>\u003Ccode>TOML\r\n\u003C\u002Fcode>\u003C\u002Fpre>\r\n\u003Cp>; es un lenguaje de configuración similar a los archivos INI, pero estandarizado. Este archivo nos permite configurar el servidor de Traefik y varias integraciones, o proveedores, que queramos utilizar. En este tutorial, utilizaremos tres de los proveedores disponibles de Traefik: api, docker y acme, que se utiliza para soportar TLS utilizando Let's Encrypt.\u003C\u002Fp>\r\n\u003Cp>Para configurar el servidor de Traefik, crearemos un nuevo archivo de configuración llamado traefik.toml usando el formato TOML similar a los archivos INI, pero estandarizado. Este archivo nos permite configurar el servidor de Traefik y varias integraciones, o proveedores, que queramos utilizar. En este tutorial, utilizaremos tres de los proveedores disponibles de Traefik: api, docker y acme, que se utiliza para soportar TLS utilizando Let's Encrypt.\u003C\u002Fp>\r\n\u003Ch4>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#contenido-del-archivo-traefiktoml\">\u003C\u002Fa>Contenido del archivo traefik.toml\u003C\u002Fh4>\r\n\u003Cpre>\u003Ccode>defaultEntryPoints = [\"http\", \"https\"]\r\n\r\n[entryPoints]\r\n\r\n [entryPoints.dashboard]\r\n\r\n  address = \":8080\"\r\n\r\n  [entryPoints.dashboard.auth]\r\n\r\n   [entryPoints.dashboard.auth.basic]\r\n\r\n​    users = [\"admin: $apr1$LrZ7NOjP$\u002Fjqzap\u002Fh\u002FXTN4YNMejd311\"]\r\n\r\n[entryPoints.http]\r\n\r\n  address = \":80\"\r\n\r\n   [entryPoints.http.redirect]\r\n\r\n​    entryPoint = \"https\"\r\n\r\n [entryPoints.https]\r\n\r\n  address = \":443\"\r\n\r\n   [entryPoints.https.tls]\r\n\r\n[api]\r\n\r\nentrypoint=\"dashboard\"\r\n\r\n[acme]\r\n\r\nemail = \"correo\"\r\n\r\nstorage = \"acme.json\"\r\n\r\nentryPoint = \"https\"\r\n\r\nonHostRule = true\r\n\r\n [acme. httpChallenge]\r\n\r\n entryPoint = \"http\"\r\n\r\n[docker]\r\n\r\ndomain = \"dominio\"\r\n\r\nwatch = true\r\n\r\nnetwork = \"web\"\r\n\u003C\u002Fcode>\u003C\u002Fpre>\r\n\u003Cp>Antes de iniciar nuestro contenedor creamos una red para el proxy pueda compartirla con los contenedores. La red de Docker es necesaria para que podamos usarla con aplicaciones que se ejecuten usando Docker compose. \u003Cstrong>Nombre de nuestra red es Web.\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>· \u003Cstrong>Comando de ejecución:\u003C\u002Fstrong> docker network creater web (comando para crear nuestra red)\u003C\u002Fp>\r\n\u003Cp>Cuando el contenedor de Traefik empiece, lo añadiremos a esta red. Entonces podremos añadir más contenedores a esta red más tarde para que Traefik se procure.\u003C\u002Fp>\r\n\u003Cp>A continuación, crearemos un archivo vacío que contendrá nuestra información de Let's Encrypt. Compartiremos esto en el contenedor para que Traefik pueda usarlo:\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>· Touch acmé.json\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>Traefik sólo podrá usar este archivo si el usuario raíz dentro del contenedor tiene un acceso único de lectura y escritura a él. Para ello, bloquea los permisos de acme.json para que sólo el propietario del archivo tenga permiso de lectura y escritura.\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>· Chmod 600 acme.json\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>Iniciamos finalmente nuestro contenedor \u003Cstrong>traefik\u003C\u002Fstrong> con los siguientes comandos:\u003C\u002Fp>\r\n\u003Cpre>\u003Ccode>docker run -d \r\n -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock \r\n -v $PWD\u002Ftraefik.toml:\u002Ftraefik.toml \r\n -v $PWD\u002Facme.json:\u002Facme.json \r\n -p 80:80 \r\n -p 443:443 \r\n -l traefik.frontend.rule=Host:monitor.your_domain \r\n -l traefik.port=8080 \r\n --network web \r\n --name traefik \r\n traefik:1.7.6-alpine\r\n\r\n \r\n\u003C\u002Fcode>\u003C\u002Fpre>\r\n\u003Ch2>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#detalles-del-comando-ejecutado-para-iniciar-traefik\">\u003C\u002Fa>Detalles del comando ejecutado para iniciar traefik:\u003C\u002Fh2>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>Mapeamos los puertos 80 y 443 de nuestro host Docker a los mismos puertos del contenedor de Traefik para que Traefik reciba todo el tráfico HTTP y HTTPS al servidor.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Luego configuramos dos etiquetas Docker que le dicen a Traefik que dirija el tráfico al nombre de host monitor.su_dominio al puerto 8080 dentro del contenedor de Traefik, exponiendo el tablero de monitoreo.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Configuramos la red del contenedor a la web, y le damos el nombre de Traefik al contenedor.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Finalmente, usamos la imagen traefik:1.7.6-alpine para este contenedor, porque es pequeño.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Con el contenedor iniciado, ahora tienes un tablero al que puedes acceder para ver los dominios de los contenedores. También puedes usar este tablero para visualizar los frontends y backends que Traefik ha registrado. Acceda al tablero de monitoreo apuntando su navegador a https:\u002F\u002Fmonitor.your_domain. Se le pedirá su nombre de usuario y contraseña, que son admin y la contraseña que configuró en el paso 1.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image004.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image004.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Ch4>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#ahora-para-registrar-nuestros-owasp-juice-shop-con-traefik-necesitamos-crear-un-docker-compose-con-las-siguientes-especificaciones\">\u003C\u002Fa>Ahora para registrar nuestros Owasp Juice Shop con traefik necesitamos crear un Docker compose con las siguientes especificaciones.\u003C\u002Fh4>\r\n\u003Cpre>\u003Ccode> \r\n\r\nversion: \"3\"\r\n\r\nnetworks:\r\n\r\n web:\r\n\r\n external: true\r\n\r\n internal:\r\n\r\n external: false\r\n\r\nservices:\r\n\r\n dark:\r\n\r\n image: wordpress:4.9.8-apache\r\n\r\n environment:\r\n\r\n  WORDPRESS_DB_PASSWORD:\r\n\r\n labels:\r\n\r\n  - traefik.backend=dark\r\n\r\n  - traefik.frontend.rule=Host:sic.fisc.online\r\n\r\n  - traefik.docker.network=web\r\n\r\n  - traefik.port=80\r\n\r\n networks:\r\n\r\n  - internal\r\n\r\n  - web\r\n\r\n depends_on:\r\n\r\n  - mysql\r\n\r\n mysql:\r\n\r\n image: mysql:5.7\r\n\r\n environment:\r\n\r\n  MYSQL_ROOT_PASSWORD:\r\n\r\n networks:\r\n\r\n  - internal\r\n\r\n labels:\r\n\r\n  - traefik.enable=false\r\n\r\n adminer:\r\n\r\n image: adminer:4.6.3-standalone\r\n\r\n labels:\r\n\r\n  - traefik.backend=adminer\r\n\r\n  - traefik.frontend.rule=Host:db-admin.fisc.online\r\n\r\n  - traefik.docker.network=web\r\n\r\n  - traefik.port=8080\r\n\r\n networks:\r\n\r\n  - internal\r\n\r\n  - web\r\n\r\n depends_on:\r\n\r\n  - mysql\r\n\r\n owasp:\r\n\r\n image: bkimminich\u002Fjuice-shop:v8.7.2\r\n\r\n environment:\r\n\r\n  NODE_ENV:\r\n\r\n labels:\r\n\r\n  - traefik.backend=owasp\r\n\r\n  - traefik.frontend.rule=Host:juice1.fisc.online\r\n\r\n  - traefik.docker.network=web\r\n\r\n  - traefik.port=3000\r\n\r\n networks:\r\n\r\n  - web\r\n\r\n owasp2:\r\n\r\n image: bkimminich\u002Fjuice-shop:v8.7.2\r\n\r\n environment:\r\n\r\n  NODE_ENV:\r\n\r\n labels:\r\n\r\n  - traefik.backend=owasp2\r\n\r\n  - traefik.frontend.rule=Host:juice2.fisc.online\r\n\r\n  - traefik.docker.network=web\r\n\r\n  - traefik.port=3000\r\n\r\n networks:\r\n\r\n  - web\r\n\r\n owasp3:\r\n\r\n image: bkimminich\u002Fjuice-shop\r\n\r\n environment:\r\n\r\n  NODE_ENV:\r\n\r\n labels:\r\n\r\n  - traefik.backend=owasp3\r\n\r\n  - traefik.frontend.rule=Host:juice3.fisc.online\r\n\r\n  - traefik.docker.network=web\r\n\r\n  - traefik.port=3000\r\n\r\n networks:\r\n\r\n  - web\r\n\r\n \r\n\r\n ctfd:\r\n\r\n image: ctfd\u002Fctfd\r\n\r\n environment:\r\n\r\n  NODE_ENV:\r\n\r\n labels:\r\n\r\n  - traefik.backend=ctfd\r\n\r\n  - traefik.frontend.rule=Host:ctfd.fisc.online\r\n\r\n  - traefik.docker.network=web\r\n\r\n  - traefik.port=8000\r\n\r\n networks:\r\n\r\n  - web\r\n\r\n \r\n\u003C\u002Fcode>\u003C\u002Fpre>\r\n\u003Ch3>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#definamos-conceptos-de-traefik-dentro-el-docker-compose\">\u003C\u002Fa>Definamos conceptos de traefik dentro el Docker-compose:\u003C\u002Fh3>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>\u003Cstrong>traefik.backend\u003C\u002Fstrong> especifica el nombre del servicio de backend en Traefik que apuntan nuestros contenedores de owasp, wordpres,ctfd.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>\u003Cstrong>traefik.frontend.rule=Host\u003C\u002Fstrong>:blog.your_domain le dice a Traefik que examine el host solicitado y si coincide con el patrón de blog.your_domain debe dirigir el tráfico a cada uno de los contenedores que se le ha especificado.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>\u003Cstrong>traefik.docker.network=web\u003C\u002Fstrong>** especifica en qué red buscar Traefik para encontrar la IP interna de este contenedor. Dado que nuestro contenedor Traefik tiene acceso a toda la información de Docker, potencialmente tomaría la IP de la red interna si no lo especificamos.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>\u003Cstrong>traefik.port:\u003C\u002Fstrong> especifica el puerto expuesto que Traefik debería usar para enrutar el tráfico a estos contendores\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Con esta configuración, todo el tráfico enviado al puerto 80 y 443 será reenviado a nuestros contenedores\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Ch3>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#conceptos-sobre-las-variables-de-entornos-utilizadas-dentro-del-docker-compose\">\u003C\u002Fa>Conceptos sobre las variables de entornos utilizadas dentro del docker-compose:\u003C\u002Fh3>\r\n\u003Cp>\u003Cstrong>Para nuestro wordpres vulnerables agregamos una variable de entorno que contiene el password de la base datos a configurar.\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>\u003Cstrong>Comando de ejecución:\u003C\u002Fstrong> export WORDPRESS_DB_PASSWORD=PASSWORD\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>​ Variable especificada dentro del docker-compose\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>environment:\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>WORDPRESS_DB_PASSWORD:\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image005.png\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image005.png\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>Variable de entornos para OWASP juice shop en modo CTF, para que el ambiente nos genere los flag automáticamente necesitamos especificar que se inicien los contenedores en modo CTF, configuramos nuestra variable de entonco con los siguientes comandos en nuestra terminal del servidor.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>\u003Cstrong>Export NODE_ENV:\u003C\u002Fstrong> ctf (comandos en la termina del Linux\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>\u003Cstrong>NODE_ENV:\u003C\u002Fstrong> (variable en nuestro file de Docker-compose)\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image007.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image007.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Ch3>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#dominios-configurado-para-nuestro-ambiente\">\u003C\u002Fa>Dominios configurado para nuestro ambiente:\u003C\u002Fh3>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image010.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image010.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Ch3>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#finalmente-ejecutamos-nuestro-docker-composeyml\">\u003C\u002Fa>Finalmente ejecutamos nuestro docker-compose.yml:\u003C\u002Fh3>\r\n\u003Cp>\u003Cstrong>Comando de ejecución: Docker-compose up -d\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image011.png\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image011.png\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Miramos nuestro dashboard de traefik y verificamos nuestros dominios creados redirigiendo a nuestros contenedores que contienen nuestra aplicación de wordpres, owasp Juice Shop y CTFd framework.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image013.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image013.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Owasp Juice shop 1\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image015.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image015.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Owasp Juice 2\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image017.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image017.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Owasp Juice 3\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image019.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image019.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Para implementar el dashboad de CTF y que los participantes puedan introducir sus flags, dentro nuestro Docker compose utilizamos CTFd \u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Fr\u002Fctfd\u002Fctfd\u002F\">https:\u002F\u002Fhub.docker.com\u002Fr\u002Fctfd\u002Fctfd\u002F\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Ch3>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#ques-ctfd\">\u003C\u002Fa>\u003Cstrong>¿Ques CTFd?\u003C\u002Fstrong>\n\u003C\u002Fh3>\r\n\u003Cp>El CTFd es Capture the flag framework que se centra en la facilidad de uso y la personalización. Viene con todo lo que necesitas para ejecutar un CTF y es fácil de personalizar con plugins, temas y nuestro dashboard para monitorear los puntajes de la competencia.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image021.png\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image021.png\" alt=\"CTFd is a CTF in a can.\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Podrán notar que dentro nuestro Docker-compose ya se encuentra agregada la imagen del Docker de CTFD y configurada con las variables de traefik para crear el dominio y realice su redirección del trafico a la aplicación y que automáticamente se ejecutó cuando iniciamos nuestro Docker-compose.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image022.png\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image022.png\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Accedemos a nuestro dashboard para CTFd framework y aplicamos las configuraciones del evento:\u003C\u002Fp>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>Nombre del evento.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Usuario administrador\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Estilo del Evento.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Fecha de inicio\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image024.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image024.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Una vez tengamos configurado el ambiente de CTFd necesitamos importar los \u003Cstrong>challenges de Owasp Juice Shop,\u003C\u002Fstrong> una buena referencia para esta sección la tome de la siguiente dirección propia del creador de Owasp Juice Shop \u003Ca href=\"https:\u002F\u002Fbkimminich.gitbooks.io\u002Fpwning-owasp-juice-shop\u002Fcontent\u002Fpart1\u002Fctf.html\">https:\u002F\u002Fbkimminich.gitbooks.io\u002Fpwning-owasp-juice-shop\u002Fcontent\u002Fpart1\u002Fctf.html\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Ch3>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#a-continuaci%C3%B3n-los-pasos-para-extraer-los-challenges-de-nuestros-juice-shop-y-importarlos-en-nuestro-ctfd-framework\">\u003C\u002Fa>\u003Cstrong>A continuación, los pasos para extraer los challenges de nuestros Juice shop y importarlos en nuestro CTFd framework.\u003C\u002Fstrong>\n\u003C\u002Fh3>\r\n\u003Chr>\r\n\u003Cp>\u003Cstrong>El juice-shop-ctf-cli\u003C\u002Fstrong> es una simple herramienta de línea de comandos, que generará un archivo compatible con el formato de copia de seguridad de datos de su marco CTF elegido, en nuestro ambiente para CTFd framework.\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Instalamos Juice-shop-ctf-cli\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image026.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image026.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Ejecutamos el comando: juice-shop-ctf.\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>Parámetros a configurar:\u003C\u002Fp>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>CTFd\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Juice Shop URL: colocamos la URL de uno de nuestros juice shop configurados, para este ambiente \u003Ca href=\"https:\u002F\u002Fjuice1.fisc.online\u002F#\u002F\">https:\u002F\u002Fjuice1.fisc.online\u002F#\u002F\u003C\u002Fa>\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Free text hinst\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Free hint URLs\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image028.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image028.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Al terminar el proceso que solo dura unos minutos se genera un archivo zip OWASP_Juice_Shop.YYYY-MM-DD.CTFd2.zip que debemos importar en nuestro CTFD framework para cargar los challenges.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image030.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image030.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>En nuestra sección de backup elegimos importar nuestro archivo zip que contiene nuestros challenges específicos de nuestros ambientes de owasp juice shop.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image032.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image032.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image034.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image034.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Esperamos unos minutos y tendremos que reconfigurar el ambiente CTFd framework con los challenges importados.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image036.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image036.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Creamos un team en CTFd y accedemos a los challenges\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image038.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image038.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image040.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image040.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Probamos nuestros flags generados por el Owasp juice Shop en nuestro CTFd framework.\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image042.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image042.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Introducimos nuestro flag\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image044.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image044.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002Fimg\u002Fclip_image046.jpg\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fraw\u002Fmaster\u002Fimg\u002Fclip_image046.jpg\" alt=\"img\">\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Ch3>\n\u003Ca class=\"anchor\" href=\"https:\u002F\u002Fgithub.com\u002Felzerjp\u002FCTF--Owasp-Juice-Shop\u002Fblob\u002Fmaster\u002FREADME.md#conclusiones\">\u003C\u002Fa>Conclusiones:\u003C\u002Fh3>\r\n\u003Col>\r\n\u003Cli>\r\n\u003Cp>Configuración de traefik para redireccionar nuestro trafico y generar los dominios con su certificado automatizado.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Registro de nuestros dominios en nuestra tabla de DNS, en este laboratorio utilizamos Cloudflare.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>​ Un solo archivo de Docker-compose para configurar nuestro ambiente de CTF con owasp Juice shop para cada participante o grupo, en este taller utilizamos tres, si desean aumentar la cantidad de los ambientes del Juice shop solo basta con replicar la configuración de Owasp Juice shop dentro del Docker-compose y cambiar los valores correspondientes.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>CTFd framework como nuestro dashboard para la competencia.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Configuración de traefik para redireccionar nuestro trafico y generar los dominios con su certificado automatizado.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Registro de nuestros dominios en nuestra tabla de DNS, en este laboratorio utilizamos Cloudflare.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>Un solo archivo de Docker-compose para configurar nuestro ambiente de CTF con owasp Juice shop para cada participante o grupo, en este taller utilizamos tres, si desean aumentar la cantidad de los ambientes del Juice shop solo basta con replicar la configuración de Owasp Juice shop dentro del Docker-compose y cambiar los valores correspondientes.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003Cli>\r\n\u003Cp>CTFd framework como nuestro dashboard para la competencia.\u003C\u002Fp>\r\n\u003C\u002Fli>\r\n\u003C\u002Fol>","como crear un ctf con owasp juice shop y traefik",10,[22,34,43],{"slug":23,"title":24,"summary":25,"category":26,"author":27,"image_url":31,"image_thumb_url":31,"published_at":32,"updated_at":33},"instalar-openstack-en-ubuntu-con-devstack","Instalar Openstack en Ubuntu con Devstack","Compartiendo con unos colegas surge un proyecto de cloud que tenía en mente para unas clases, implementar una nube privada, la mayoría de los profesionales de tecnología que conocemos les viene a la mente el uso de proveedores grandes como Azure, AWS o Google, sin embargo para una entidad educativa pública, no sé cuenta con el presupuesto para adquirir estos servicios.",{"slug":8,"name":9},{"username":28,"name":29,"avatar_url":30},"user-1582119990","José Moreno","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBczhMIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--695dbd13093235a9632272a6a98b0c9ef21a0319\u002FJoseMoreno-300x180.jpg","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdkVPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9b0eae046b44b5477c3dc0e0dfad017dc48369da\u002Fshutterstock_664638928.jpg","2020-06-10T17:47:07-04:00","2026-10-26T16:56:52-03:00",{"slug":35,"title":36,"summary":37,"category":38,"author":39,"image_url":40,"image_thumb_url":40,"published_at":41,"updated_at":42},"osint-automatizado-con-shodan-y-slack","OSINT Automatizado con Shodan y Slack","El reconocimiento es parte fundamental de las fases de pentesting, en ocasiones cuando queremos probar una vulnerabilidad día zero o solo queremos comprobar un exploit por curiosidad, hasta probar malas configuraciones de seguridad que se dan mucho  en la actualidad y más debido al aceleramiento de la transformación digital causada por la pandemia.",{"slug":8,"name":9},{"username":28,"name":29,"avatar_url":30},"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdWdPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--69fe5ddabdc66696de69245cc261c63397f70417\u002Fshutterstock_282848231.jpg","2020-05-25T14:45:40-04:00","2026-10-26T12:36:17-03:00",{"slug":44,"title":45,"summary":46,"category":47,"author":48,"image_url":49,"image_thumb_url":49,"published_at":50,"updated_at":51},"osint-docker-registry","OSINT Docker Registry ","Recientemente he tenido algo de tiempo para dedicarme a escribir un poco sobre algunas investigaciones realizadas, principalmente al ser jugador de Hack The Box (no profesional), me intrigaba el hecho de lograr explotar ciertas vulnerabilidades que me ha tocado realizar durante mis horas de prácticas ofensivas y dada la casualidad mi buen amigo Big Brother (google.com) me tiene tan bien perfilado que me proporciona ciertas lecturas casi obligatorias, por lo que recomiendo vean la fuente de donde obtuve la información para mi prueba, la encontraran en las referencias.",{"slug":8,"name":9},{"username":28,"name":29,"avatar_url":30},"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdWNPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--97551bc6e978df60d38568ea7fe968d3cda36cb2\u002Fshutterstock_699756580.jpg","2020-05-05T10:36:53-04:00","2026-10-26T12:19:02-03:00",{"slug":53,"title":54,"summary":55,"level":56,"specialty":13,"category":57,"instructor":58,"image_url":62,"image_thumb_url":62,"duration_seconds":63,"lessons_count":64,"students_count":65,"is_free":66,"coming_soon":67,"updated_at":68},"ciberseguridad-personal","Ciberseguridad Personal","Protege tu vida digital aprendiendo a tener una protección por capas.","Basicos",{"slug":8,"name":9},{"username":59,"name":60,"avatar_url":61},"magdielgutierrez","Magdiel Gutierrez","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdmtHIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--cb40a1b9a074e806c89e8501ede32e268fccb2ca\u002FFotoPerfil_Oficial.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBa1VOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--4d105c32443fe8fb7007d860f4d8061ec52433c3\u002FCiberseguridad-personal-pequen%CC%83o.png",5039,15,15356,true,false,"2025-02-15T00:32:09-03:00"]