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
TeamsPhisher — Inviare messaggi di phishing e allegati agli utenti di Microsoft Teams | Kitploit
Strumenti/GitHubGitHub/octoberfest7/teamsphisher
Strumenti di PhishingRicognizioneRaccolta InformazioniPhishingPenetration TestingIngegneria SocialeRed Teaming
GitHuboctoberfest7/teamsphisher

TeamsPhisher

Inviare messaggi di phishing e allegati agli utenti di Microsoft Teams

Vedi Repository
1.1k1422 anni faRevisionato da Kitploit

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
root@kitploit:~
                            ...                                               
                        :-++++++=-.                                           
                      .=+++++++++++-                                          
                     .++++++++++++++=     :------:                            :-:--.                 
                     :+++++++++++++++.  .----------                           #= .-+.                
                     :+++++++++++++++.  -----------:                         :#=  :#.                   
:--------------------------=++++++++-  .------------                          .=+  ++                
----------------------------+++++*+-.   :+=-----===:                          -+-.+:                 
:---------------------------++++=-.      .=+++++=-.                           .=+:.                    
:------=%%%%%%%%%%%%--------:...           .:::..                              -*=-:                
:------=****#@@#****--------=++++++++++++++-----------.                        -#++-                   
:----------:+@@+:-----------+++++++++++++++=-----------                        -#++-                  
:-----------+@@*------------+++++++++++++++=-----------.                       -*+*-                  
:-----------+@@*------------+++++++++++++++=-----------.                   .   -*++-                    
:-----------+@@*------------+++++++++++++++=-----------.                   --  -*++-                  
:-----------+@@*------------+++++++++++++++=-----------.           .       ==  -*++-                .=
:-----------+@@+------------+++++++++++++++=-----------.          .+       -=  :+==-                .*
:---------------------------+++++++++++++++=-----------.          =*       -=  -+=+=                .::
----------------------------+++++++++++++++=-----------           **       -+  -+=++.               .*=
.:-------------------------=+++++++++++++++=---------=:           #+       :=  ++-:*=                ==
                -++++++++++++++++++++++++++=-------=+=:          :#=       .:. *=: -*-               ==
                .=+++++++++++++++++++++++++*+++++++=-.           -#-        ::++=   :+=.            .==
                :++++++++++++++++++++++++=:.:::::.               -*:        .=+-.    .=+-.          -+:
                .=+*+++++++++++++++++++-                         -+-      .:-=.        .-====----:-==:
                    .-+**+++++++++++**+-.                        .++:   .-=-:             .:-====-:.
                    :-=++******+=-:                               .=+===--.                  
                        ..:::..                                      ...                     
                                    
                   _____                            ______  _      _       _                 
                  |_   _|                           | ___ \| |    (_)     | |                
                    | |  ___   __ _  _ __ ___   ___ | |_/ /| |__   _  ___ | |__    ___  _ __ 
                    | | / _ \ / _` || '_ ` _ \ / __||  __/ | '_ \ | |/ __|| '_ \  / _ \| '__|
                    | ||  __/| (_| || | | | | |\__ \| |    | | | || |\__ \| | | ||  __/| |   
                    \_  \___| \__,_||_| |_| |_||___/\_|    |_| |_||_||___/|_| |_| \___||_|   
                  
                    v1.2 developed by @Octoberfest73 (https://github.com/Octoberfest7)

Introduzione

TeamsPhisher è un programma Python3 che facilita l'invio di messaggi e allegati di phishing agli utenti di Microsoft Teams le cui organizzazioni consentono comunicazioni esterne.

Normalmente non è possibile inviare file agli utenti di Teams al di fuori della propria organizzazione. Max Corbridge (@CorbridgeMax) e Tom Ellson (@tde_sec) di JUMPSEC hanno recentemente divulgato un metodo per aggirare questa restrizione manipolando le richieste web di Teams per alterare il destinatario di un messaggio con un file allegato.

TeamsPhisher incorpora questa tecnica oltre ad alcune precedenti divulgate da Andrea Santese (@Medu554).

Si basa pesantemente anche su TeamsEnum, un fantastico lavoro di Bastian Kanbach (@bka) di SSE, per la parte di autenticazione del flusso di attacco e per alcune funzioni di utilità generale.

TeamsPhisher cerca di prendere il meglio da tutti questi progetti e fornire un mezzo robusto, personalizzabile ed efficiente per operazioni autorizzate di Red Team per sfruttare Microsoft Teams per scenari di phishing per l'accesso iniziale.

Vedi la fine di questo README per raccomandazioni di mitigazione.

Funzionalità e demo

Fornisci a TeamsPhisher un allegato, un messaggio e un elenco di utenti Teams target. Caricherà l'allegato nello Sharepoint del mittente, e poi scorrerà l'elenco dei target.

TeamsPhisher enumererà prima l'utente target e si assicurerà che l'utente esista e possa ricevere messaggi esterni. Creerà quindi una nuova conversazione con l'utente target. Nota che si tratta tecnicamente di una chat di "gruppo" perché TeamsPhisher include l'email del target due volte; questo è un espediente intelligente di @Medu554 che aggirerà la schermata di avviso "Qualcuno al di fuori della tua organizzazione ti ha inviato un messaggio, sei sicuro di volerlo visualizzare?" che potrebbe far esitare i nostri target. (v1.2)Nota: questo bypass della schermata di avviso è stato corretto, ma aggiungere l'utente target a una chat di gruppo è ancora rilevante per l'attuale bypass della schermata di avviso.

Una volta creata la nuova conversazione tra il nostro mittente e il target, il messaggio specificato verrà inviato all'utente insieme a un link all'allegato in Sharepoint.

Una volta inviato questo messaggio iniziale, l'utente target verrà rimosso dalla chat di gruppo creata. Questo rimuove la capacità del mittente di inviare ulteriori messaggi al target, ma rimuove anche la schermata "Questa persona proviene da un'organizzazione esterna" e rende il successo molto più probabile. Questo bypass attuale è stato pubblicato da @pfiatde in uno dei suoi numerosi blog su Teams e comportamenti indesiderati e integrato in TeamsPhisher da Steve Nelson (@stevesec128) e Alex Martirosyan (@almartiros) di DenSecure.

Modalità operativa

Esegui TeamsPhisher per davvero. Invia messaggi di phishing ai target.

Comando:
testo alternativo

Targets.txt:
testo alternativo

Message.txt: testo alternativo

Output di TeamsPhisher:
testo alternativo

Vista del mittente:
testo alternativo

Vista del target:
testo alternativo

File allegato:
testo alternativo

Modalità anteprima

Esegui TeamsPhisher in modalità anteprima per verificare l'elenco dei target, visualizzare in anteprima i loro "nomi amichevoli" (se TeamsPhisher riesce a risolverli usando l'opzione --personalize) e inviare un messaggio di prova al tuo account mittente per verificare che tutto sia come desideri.

Output di TeamsPhisher:
testo alternativo

Vista del mittente:
testo alternativo

Configurazione e requisiti

TeamsPhisher richiede che gli utenti abbiano un account Microsoft Business (non personale, ad esempio @hotmail, @outlook, ecc.) con una licenza valida per Teams e Sharepoint.

Ciò significa che avrai bisogno di un tenant AAD e almeno un utente con una licenza corrispondente. Al momento della pubblicazione, sono disponibili alcune licenze di prova gratuite nel centro licenze AAD che soddisfano i requisiti di questo strumento.

Dovrai accedere allo Sharepoint personale dell'utente con cui invierai i messaggi almeno una volta prima di utilizzare l'account con TeamsPhisher. Dovrebbe essere qualcosa come tenantname-my.sharepoint.com/personal/myusername_mytenantname_onmicrosoft_com o tenantname-my.sharepoint.com/personal/myusername_mytenantname_mycustomdomain_tld.

Per quanto riguarda i requisiti locali, consiglio di aggiornare all'ultima versione di Python3. Avrai anche bisogno della libreria di autenticazione Microsoft:``` pip3 install msal

root@kitploit:~
# Utilizzo```
usage: teamsphisher.py [-h] -u USERNAME -p PASSWORD -a ATTACHMENT -m MESSAGE (-e EMAIL | -l LIST) [--greeting GREETING] [--securelink] [--personalize]
                       [--preview] [--delay DELAY] [--nogreeting] [--log] [--sharepoint SHAREPOINT]

options:
  -h, --help            show this help message and exit
  -u USERNAME, --username USERNAME
                        Username for authentication
  -p PASSWORD, --password PASSWORD
                        Password for authentication
  -a ATTACHMENT, --attachment ATTACHMENT
                        Full path to the attachment to send to targets.
  -m MESSAGE, --message MESSAGE
                        A file containing a message to send with attached file.
  -e EMAIL, --targetemail EMAIL
                        Single target email address
  -s SHAREPOINT, --sharepoint SHAREPOINT
                        Manually specify sharepoint name (e.g. mytenant.sharepoint.com would be --sharepoint mytenant)
  -l LIST, --list LIST  Full path to a file containing target emails. One per line.
  --greeting GREETING   Override default greeting with a custom one. Use double quotes if including spaces!
  --securelink          Send link to file only viewable by the individual target recipient.
  --personalize         Try and use targets names in greeting when sending messages.
  --preview             Run in preview mode. See personalized names for targets and send test message to sender's Teams.
  --delay DELAY         Delay in [s] between each attempt. Default: 0
  --nogreeting          Do not use built in greeting or personalized names, only send message specified with --message
  --log                 Write TeamsPhisher output to logfile

Argomenti obbligatori

Nome utente

Il nome utente dell'account Microsoft da cui invierai i messaggi (es. [email protected])

Password

La password per l'account menzionato. Se contiene caratteri speciali, può essere utile racchiudere l'intera stringa tra virgolette singole.

Allegato

Il file che desideri inviare agli utenti target. Questo verrà caricato su SharePoint dell'account mittente e un link sarà condiviso tramite Teams.

Messaggio

Un file contenente il testo del messaggio che dovrebbe accompagnare l'allegato e essere inviato ai target

Email / Lista

O un singolo indirizzo email target (es. [email protected]) o un file contenente una lista di email target, una per riga.

Argomenti opzionali e feature

Sharepoint

Specifica manualmente il nome del sito SharePoint su cui caricare l'allegato. Ciò sarà probabilmente necessario se il tenant del mittente utilizza un nome di dominio personalizzato (es. non segue la convenzione xxx.onmicrosoft.com). Specifica solo il nome univoco, ad esempio se il tuo sito SharePoint è mytest.sharepoint.com dovresti usare --sharepoint mytest

Saluto

Sostituisci il saluto predefinito di TeamsPhisher ("Hi, ") con uno personalizzato da prependere al messaggio specificato tramite --message. Ad esempio, "Buon pomeriggio, " o "Team vendite, "

Securelink

Di default, il link di SharePoint inviato ai target può essere visualizzato da chiunque abbia il link; usa --securelink in modo che il file su SharePoint sia visibile solo al target che lo ha ricevuto. Può aiutare a proteggere il tuo malware dal Blue team.

Personalizza

TeamsPhisher tenterà di identificare il nome di battesimo di ogni utente target e di usarlo con il saluto. Ad esempio, [email protected] riceverebbe un messaggio che inizia con "Ciao Tom, ". Questo non è perfetto e dipende dal formato delle email target; usa --preview per vedere se è adatto alla tua lista target o meno.

Anteprima

TeamsPhisher eseguirà in modalità anteprima. Questo NON invierà alcun messaggio agli utenti target, ma mostrerà invece il nome "amichevole" che verrebbe utilizzato dall'opzione --personalize. Inoltre, verrà inviato un messaggio di prova rappresentativo di ciò che i target riceverebbero con le impostazioni correnti su Teams del mittente; accedi e guarda come appare il tuo messaggio e modificalo se necessario.

Ritardo

Specifica un ritardo di x secondi tra i messaggi ai target. Può aiutare con potenziali problemi di limitazione delle richieste.

Nogreeting

Disabilita il saluto predefinito utilizzato da TeamsPhisher. Disabilita anche la funzione --personalize. Usa questa opzione se includi il tuo saluto all'interno del messaggio specificato da --message.

Registro

Scrive l'output di TeamsPhisher in un file di log (scriverà nella home directory dell'utente).

Esempi```

python3 teamsphisher.py -u [email protected] -p 'xxxxxxxxxxxx' -l /root/targets.txt -a /root/attachment.zip -m /root/message.txt --log

root@kitploit:~
Questo comando recupererà i token di accesso per l'account testuser e caricherà l'allegato '/root/attachment.zip' nello Sharepoint di testuser.  

Creerà quindi un thread Teams unico per ogni destinatario elencato in '/root/targets.txt' e invierà loro il messaggio specificato in '/root/message.txt' e un link all'allegato su Sharepoint.  

Tutto l'output del terminale di TeamsPhisher verrà registrato in un file che verrà generato nella home directory dell'utente.```
python3 teamsphisher.py -u [email protected] -p 'xxxxxxxxxxxx' -l /root/targets.txt -a /root/attachment.zip -m /root/message.txt --greeting "Good afternoon" --personalize --securelink

Questo comando recupererà i token di accesso per l'account testuser e caricherà l'allegato '/root/attachment.zip' nello Sharepoint di testuser.

Creerà quindi un thread Teams unico con ogni target elencato in '/root/targets.txt' e invierà loro il messaggio specificato in '/root/message.txt' oltre a un link all'allegato nello Sharepoint.

Il messaggio sarà preceduto dal saluto "Good afternoon , ".

TeamsPhisher proverà a usare nomi "amichevoli" nel saluto. Ora il saluto sarà "Good afternoon , ".

Ogni link di SharePoint inviato è unico e valido solo per quel target specifico.

Funzionalità aggiuntive e commenti

Enumerazione degli account

TeamsPhisher identificherà gli account che non possono ricevere messaggi da organizzazioni esterne, gli account che non esistono e gli account che hanno un piano di abbonamento non compatibile con questo vettore di attacco:

alt text

Account con MFA abilitato

Grazie al codice del progetto TeamsEnum, TeamsPhisher supporta il login con account mittenti che utilizzano MFA:

alt text

Link SharePoint sicuri

Usando l'opzione --securelink, i target verranno invitati ad autenticarsi per visualizzare l'allegato in Sharepoint. Puoi decidere se questo aggiunge troppi passaggi extra, o se aggiunge 'legittimità' inviandoli attraverso la reale funzionalità di login Microsoft.

alt text

alt text

Variabili globali

Modificando TeamsPhisher.py puoi alterare alcune variabili globali per l'uso nelle esecuzioni successive:```

Global Options and Variables

Greeting: The greeting to use in messages sent to targets. Will be joined with the targets name if the --personalize flag is used

Examples: "Hi" "Good Morning" "Greetings"

Greeting = "Hi"

useragent: The user-agent string to use for web requests

useragent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)"

root@kitploit:~
## Personalizzazione e nomi "amichevoli"

Il flag `--personalize` tenta di risolvere un nome "amichevole" per ogni target; lo fa esaminando i dati restituiti dalla funzione `enumUser` e controllando prima il campo "displayName".

Se il campo displayName contiene uno spazio (ad es. "Tom Jones"), TeamsPhisher suddivide in base allo spazio e prende il primo pezzo come nome "amichevole".

Se non c'è uno spazio nel campo displayName (ad es. alcune organizzazioni potrebbero mettere l'UPN nel campo displayName come [email protected]), TeamsPhisher tenta di analizzare l'UPN stesso.

Con un esempio di UPN come [email protected], TeamsPhisher suddivide in base al carattere '@', e poi nel primo pezzo suddivide in base al carattere '.' e prende il primo pezzo. Questo produrrebbe un nome "amichevole" di "Tom" in questo caso.

Questo è tutto ciò che TeamsPhisher fa per identificare nomi "amichevoli". Target come "[email protected]" e "[email protected]" NON avranno nomi "amichevoli" identificati se i loro campi displayName non corrispondono alla convenzione di analisi sopra descritta.

# Mitigazione

Le organizzazioni possono mitigare il rischio posto da questa vulnerabilità gestendo le opzioni relative all'accesso esterno tramite il centro amministrativo di Microsoft Teams in Utenti -> Accesso esterno.

![alt text](https://assets.kitploit.com/production/public/readmes/6252/cc6c2bbf7e6c11997a47b0b38259fea96278543ae5477ed1367caf5a88479850.jpg)

Microsoft offre flessibilità alle organizzazioni per scegliere le autorizzazioni migliori per le loro esigenze, inclusi un blocco universale e la whitelist di solo tenant esterni specifici per le comunicazioni.

![alt text](https://assets.kitploit.com/production/public/readmes/6252/dcaf730f7c522bfcf4e11800631f663550315079570778aee78784164e22aabe.jpg)

# Changelog  
## v1.2
Unisce una pull request dal team di DenSecure che include un bypass funzionante (al 7/2/24) della schermata splash per utenti esterni.

La modifica al flusso di lavoro di TeamsPhisher è fortunatamente molto piccola e facile da integrare. Dopo che la chat di gruppo è stata creata con un utente target e il messaggio inviato, viene effettuata una richiesta aggiuntiva per rimuovere l'utente target dalla chat di gruppo. Ciò fa sì che l'utente riceva il messaggio senza una schermata splash per utenti esterni.

Aggiornato il README con informazioni più aggiornate sulla tecnica attualmente utilizzata da TeamsPhisher.

## v1.1.2
Risolto un errore segnalato dagli utenti riguardante il caricamento dell'allegato su Sharepoint; ciò derivava dalle convenzioni di denominazione/rinominazione che si verificano quando gli utenti utilizzano un dominio personalizzato con i loro tenant.

Aggiunto un controllo di verifica per assicurarsi che se gli utenti utilizzano un dominio NON @domain.onmicrosoft.com, usino anche il parametro -s per specificare manualmente il loro sito sharepoint per evitare problemi.

Aggiornata la sezione di configurazione per includere l'accesso a Sharepoint almeno una volta prima di utilizzare TeamsPhisher, poiché un utente ha identificato che non aver effettuato l'accesso in precedenza con l'account avrebbe causato il fallimento di TeamsPhisher.

Aggiunto il parametro `&top=999` alla richiesta web `getSenderInfo` per aumentare il numero di utenti recuperati per pagina/diminuire il numero di richieste necessarie per trovare il nostro utente.

### Inversione della modifica relativa all'analisi dei '.' nei nomi utente durante l'assemblaggio dell'URI di Sharepoint
La v.1.1 ha modificato il modo in cui i nomi utente con il carattere '.' venivano analizzati ai fini della creazione degli URI di Sharepoint necessari. C'erano diversi problemi distinti in corso e io ho erroneamente identificato questo come la causa di uno di essi. Questa modifica è stata annullata. Il risultato è che un nome utente come [email protected] ora avrà un URI sharepoint assemblato come "tom_jones_mytest_onmicrosoft_com" anziché "tom.jones_mytest_onmicrosoft_com".

## v1.1.1
Correzioni minori

## v1.1
Sono stati fatti alcuni commit per risolvere vari piccoli problemi senza incrementare il numero di versione; scusa per la sciatteria.

La v1.1 porta alcune modifiche volte a risolvere problemi comuni che gli utenti incontravano.

### Argomento -s, --sharepoint
Questo argomento opzionale è stato aggiunto per consentire agli utenti di specificare manualmente il nome root del loro sharepoint. Un problema comune è sorto quando gli utenti avevano cambiato il nome di dominio del loro tenant in qualcosa di personalizzato; ad es. invece che il loro nome utente fosse [email protected], poteva essere [email protected]. La versione originale di TeamsPhisher assemblava l'indirizzo Sharepoint e i percorsi URI necessari analizzando il nome UPN del mittente dalle sue informazioni utente. Quando il dominio di un tenant viene cambiato in uno personalizzato, gli UPN degli utenti cambiano per riflettere questo. Tuttavia l'indirizzo sharepoint del tenant rimane sempre lo stesso/come era quando il tenant è stato creato originariamente.

Non sono riuscito a trovare un buon modo per risolvere l'indirizzo Sharepoint corrente per un tenant; può essere fatto facilmente con Graph API, ma implementare Graph in questo strumento richiederebbe molta più configurazione da parte degli utenti per utilizzare TeamsPhisher. Ho optato per fornire l'opzione di specificare manualmente il nome sharepoint come soluzione più semplice.

### Migliorata l'analisi dell'indirizzo Sharepoint e dell'URI richiesto quando NON si utilizza l'opzione manuale
È stata segnalata da un utente che NON utilizzava un dominio personalizzato con il suo tenant, che riceveva comunque l'errore 404 non trovato riguardante Sharepoint. Credo che questo avesse a che fare con il fatto che il suo nome utente contenesse un '.' ad es. [email protected]. La versione precedente di TeamsPhisher aveva una funzionalità più semplice di ricerca + sostituzione per l'UPN dell'utente al fine di assemblare gli URI Sharepoint necessari; la v1.1 ora prende di mira specificamente i caratteri '.' che devono essere sostituiti e lascia intatti altri '.' nel campo nome utente.

### Caratteri speciali (ad es. 'ö') all'interno del corpo del messaggio non causano più un errore del server
Questa è stata una correzione molto semplice che ha richiesto troppo tempo per essere rintracciata. Aggiunta codifica utf-8 alla richiesta POST di sendFile. Ora i caratteri speciali possono essere utilizzati nei messaggi.

### Pulizia minore del codice
Corretti alcuni commenti e riordinate alcune fasi in main per verificare ora la presenza dei file necessari prima di tentare l'autenticazione.

## v1.0 - Versione iniziale

# Crediti e ringraziamenti

1. Max Corbridge (@CorbridgeMax) e Tom Ellson (@tde_sec) di JUMPSEC per [questo articolo](https://labs.jumpsec.com/advisory-idor-in-microsoft-teams-allows-for-external-tenants-to-introduce-malware/). Un ringraziamento speciale a Max per essere stato molto reattivo e disponibile a parlare in privato della sua ricerca.

2. Andrea Santese (@Medu554) [per questa ricerca](https://posts.inthecyber.com/leveraging-microsoft-teams-for-initial-access-42beb07f12c4). Ancora un ringraziamento speciale per la sua reattività e disponibilità a discutere il suo lavoro in privato.

3. Bastian Kanbach (@_bka_) di SSE per [TeamsEnum](https://github.com/sse-secure-systems/TeamsEnum). Questo progetto è servito come punto di partenza per recuperare i Bearer token e autenticarsi tramite diversi metodi. Io avevo utilizzato Graph API per questi scopi, ma il suo progetto (e questo) utilizza gli endpoint normali, quindi è stato fantastico avere qualcuno che aveva già affrontato questo problema e aveva funzioni affidabili per realizzarlo.

4. @pfiatde che ha una [serie in più parti sul phishing in Teams](https://badoption.eu/blog/2024/01/12/teams5.html). I suoi blog sono stati consultati durante lo sviluppo originale di TeamsPhisher, e la versione attuale dello strumento utilizza un nuovo bypass della schermata splash da ricerche successive da lui pubblicate.

5. Steve Nelson (@stevesec128) e Alex Martirosyan (@almartiros) di DenSecure per il loro aggiornamento a Teamsphisher (7/2/24) che ha integrato il bypass della schermata splash ancora funzionante di @pfiatde.

6. [Questo sito per generare testo ASCII](https://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20)

7. [Questo fantastico progetto per convertire immagini in arte ASCII](https://github.com/TheZoraiz/ascii-image-converter)
Scarica lo strumento