Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/emalderson/thephish
Gerenciamento de Indicadores de Comprometimento (IOC)Ferramentas de PhishingPhishingAnálise de MalwareForensia DigitalInteligência de AmeaçasResposta a IncidentesSegurança de Email
GitHubemalderson/thephish

ThePhish

ThePhish: uma ferramenta automatizada de análise de e-mails de phishing

Ver Repositório
1.4k1989há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

ThePhish

ThePhish é uma ferramenta automatizada de análise de e-mails de phishing baseada em TheHive, Cortex e MISP. É uma aplicação web escrita em Python 3 e baseada em Flask que automatiza todo o processo de análise, desde a extração de observáveis do cabeçalho e do corpo de um e-mail até a elaboração de um veredito que é final na maioria dos casos. Além disso, permite que o analista intervenha no processo de análise e obtenha mais detalhes sobre o e-mail sendo analisado, se necessário. Para interagir com TheHive e Cortex, utiliza TheHive4py e Cortex4py, que são os clientes Python API que permitem usar as APIs REST disponibilizadas por TheHive e Cortex, respectivamente.

OS made-with-python Docker Maintenance GitHub Documentation

Índice

  • Visão geral
  • Exemplo de uso do ThePhish
    • Um usuário envia um e-mail para o ThePhish
    • O analista analisa o e-mail
  • Implementação
  • Instalação
    • Instalar usando Docker e Docker Compose
    • Instalar do zero
  • Configurar os analisadores
    • Configurar os níveis dos analisadores
    • Analisadores testados
    • Habilitar o analisador MISP
    • Habilitar o analisador Yara
  • Habilitar o respondedor Mailer
  • Usar a lista de permissões
  • Contribuição para TheHive4py
  • Contribuição para Cortex-Analyzers
  • Licença
  • Publicações acadêmicas
  • Quem fala sobre o ThePhish
  • Repositórios GitHub que mencionam o ThePhish
  • Créditos

Visão geral

O diagrama a seguir mostra como o ThePhish funciona em alto nível:

  1. Um atacante inicia uma campanha de phishing e envia um e-mail de phishing para um usuário.
  2. Um usuário que recebe tal e-mail pode enviá-lo como anexo para a caixa de correio usada pelo ThePhish.
  3. O analista interage com o ThePhish e seleciona o e-mail a ser analisado.
  4. O ThePhish extrai todos os observáveis do e-mail e cria um caso no TheHive. Os observáveis são analisados graças ao Cortex e seus analisadores.
  5. O ThePhish calcula um veredito com base nos vereditos dos analisadores.
  6. Se o veredito for final, o caso é encerrado e o usuário é notificado. Além disso, se for um e-mail malicioso, o caso é exportado para o MISP.
  7. Se o veredito não for final, é necessária a intervenção do analista. Ele deve revisar o caso no TheHive juntamente com os resultados fornecidos pelos vários analisadores para formular um veredito; em seguida, pode enviar a notificação ao usuário, opcionalmente exportar o caso para o MISP e encerrar o caso.

Exemplo de uso do ThePhish

Este exemplo tem como objetivo demonstrar como um usuário pode enviar um e-mail para o ThePhish para ser analisado e como um analista pode efetivamente analisar esse e-mail usando o ThePhish.

Um usuário envia um e-mail para o ThePhish

Um usuário pode enviar um e-mail para o endereço de e-mail usado pelo ThePhish para buscar os e-mails a serem analisados. O e-mail deve ser encaminhado como anexo no formato EML para evitar a contaminação do cabeçalho do e-mail. Neste caso, o cliente de e-mail utilizado é o Mozilla Thunderbird e o endereço de e-mail usado é um endereço Gmail.

O analista analisa o e-mail

O analista navega para a página web do ThePhish e clica no botão "Listar e-mails" para obter a lista de e-mails a serem analisados.

Quando o analista clica no botão "Analisar" relacionado ao e-mail selecionado, a análise é iniciada e seu progresso é exibido na interface web.

Enquanto isso, o ThePhish extrai os observáveis (URLs, domínios, endereços IP, endereços de e-mail, anexos e hashes desses anexos) do e-mail e em seguida interage com o TheHive para criar o caso.

Três tarefas são criadas dentro do caso.

Em seguida, o ThePhish começa a adicionar os observáveis extraídos ao caso.

Neste ponto, o usuário é notificado por e-mail que a análise foi iniciada, graças ao respondedor Mailer.

A descrição da primeira tarefa permite que o respondedor Mailer envie a notificação por e-mail.

Após a primeira tarefa ser encerrada, a segunda tarefa é iniciada e os analisadores são executados nos observáveis. O progresso da análise é mostrado na interface web enquanto os analisadores são iniciados.

O progresso da análise também pode ser visualizado no TheHive, graças ao seu live stream.

Assim que todos os analisadores terminam sua execução, a segunda tarefa é encerrada e a terceira é iniciada; então o ThePhish calcula o veredito. Como o veredito é "malicioso", todos os observáveis considerados maliciosos são marcados como IoC. Neste caso, apenas um observável é marcado como IoC.

O caso é então exportado para o MISP como um evento, com um único atributo representado pelo observável mencionado acima.

Em seguida, o ThePhish envia o veredito por e-mail ao usuário, graças ao respondedor Mailer.

Finalmente, tanto a tarefa quanto o caso são encerrados. A descrição da terceira tarefa permite que o respondedor Mailer envie o veredito por e-mail. Além disso, o caso foi encerrado após cinco minutos e resolvido como "Verdadeiro Positivo" com "Nenhum Impacto", o que significa que o ataque foi detectado antes que pudesse causar qualquer dano.

Uma vez encerrado o caso, o veredito fica disponível para o analista na interface web, juntamente com o registro completo do progresso da análise.

Neste ponto, o analista pode voltar e analisar outro e-mail. O caso descrito acima estava relacionado a um e-mail de phishing, mas um fluxo de trabalho semelhante pode ser observado quando o e-mail analisado é classificado como "seguro". De fato, o caso é encerrado e o veredito é enviado por e-mail ao usuário.

Em seguida, o veredito também é exibido ao analista na interface web.

Por outro lado, quando um e-mail é classificado como "suspeito", o veredito é exibido apenas ao analista na interface web.

Neste ponto, o analista precisa usar os botões no lado esquerdo da página para utilizar TheHive, Cortex e MISP para análises adicionais. Isso ocorre porque a análise ainda não foi concluída; portanto, o usuário é notificado apenas de que a análise do e-mail que ele encaminhou ao ThePhish foi iniciada. De fato, a última tarefa e o caso ainda não foram encerrados, pois precisam ser fechados pelo próprio analista assim que ele elaborar um veredito final.

O analista pode visualizar os relatórios de todos os analisadores no TheHive e no Cortex e, caso isso se revele insuficiente, ele também pode baixar o arquivo EML do e-mail e analisá-lo manualmente.

Quando o analista termina a análise, ele pode preencher o corpo do e-mail a ser enviado ao usuário na descrição da última tarefa, iniciar o respondedor Mailer, exportar o caso para o MISP se o veredito for "malicioso" clicando no botão "Exportar" e então encerrar o caso.

Implementação

ThePhish é uma aplicação web escrita em Python 3. O servidor web é implementado usando Flask, enquanto a parte front-end da aplicação, que é a página dinâmica escrita em HTML, CSS e JavaScript, é implementada usando Bootstrap. Além do módulo do servidor web, a lógica back-end da aplicação é constituída por três módulos Python que encapsulam a lógica da própria aplicação e uma classe Python usada para suportar o recurso de registro (logging) através do protocolo WebSocket. Se você quiser ver uma representação gráfica da lógica da aplicação, clique aqui. Além disso, existem vários arquivos de configuração usados pelos módulos mencionados que servem a vários propósitos.

Quando o analista navega para a URL base da aplicação, a página web do ThePhish é carregada e uma conexão bidirecional é estabelecida com o servidor. Isso é feito usando a biblioteca JavaScript Socket.IO na página web que permite comunicação em tempo real, bidirecional e orientada a eventos entre o navegador e o servidor. Esta conexão é estabelecida com uma conexão WebSocket sempre que possível e usará HTTP long polling como alternativa. Para que isso funcione, a aplicação do servidor usa a biblioteca Python Flask-SocketIO, que fornece uma integração Socket.IO para aplicações Flask. Esta conexão é então usada pelo ThePhish para exibir o progresso da análise na interface web.

Toda vez que o analista realiza uma ação na interface web, uma requisição AJAX é enviada ao servidor, que é uma requisição HTTP assíncrona que permite trocar dados com o servidor em segundo plano e atualizar a página sem recarregá-la. Isso permite que o analista tanto visualize a lista de e-mails a analisar quanto inicie a análise.

O ThePhish interage com TheHive e Cortex graças ao TheHive4py e Cortex4py. Além disso, interage com um servidor IMAP para recuperar os e-mails a serem analisados.

Instalação

Instalar usando Docker e Docker Compose

Como a instalação e configuração dos serviços TheHive, Cortex e MISP do zero para um ambiente de produção pode não ser extremamente direta, o TheHive Project fornece imagens Docker e templates Docker Compose aqui para facilitar o procedimento de instalação. Para simplificar, os templates fornecidos são simples, sem oferecer todas as opções de configuração de cada imagem Docker.

Se você deseja apenas experimentar o ThePhish ou quer tê-lo funcionando o mais rápido possível, pode usar o Docker Template fornecido na pasta docker, que é uma versão modificada de um dos Docker Templates fornecidos pelo TheHive Project que também permite criar um contêiner ThePhish. Para instalar o ThePhish usando Docker e Docker Compose, consulte este guia. Recomendo fortemente que você o instale desta forma pelo menos na primeira vez que o usar, para que possa aprender o básico e como configurá-lo com uma configuração mínima que deve funcionar na primeira tentativa. De fato, o guia vinculado anteriormente também fornece um procedimento passo a passo para configurar as instâncias TheHive, Cortex e MISP.

Instalar do zero

Este guia refere-se apenas à instalação do ThePhish, que requer:

  • Uma instância em funcionamento do TheHive
  • Uma instância em funcionamento do Cortex
  • Uma instância em funcionamento do MISP
  • Um endereço de e-mail que os usuários possam usar para enviar e-mails ao ThePhish
  • Um sistema operacional baseado em Linux com Python 3.8+ instalado

Para instalar, configurar e integrar as instâncias TheHive, Cortex e MISP, consulte suas respectivas documentações oficiais:

  • Documentação do TheHive
  • Documentação do Cortex
  • Documentação do MISP

É aconselhável que o endereço de e-mail do qual o ThePhish busca os e-mails a analisar seja um endereço Gmail, pois é aquele com o qual o ThePhish foi mais testado. É preferível que a conta seja recém-criada, com o único propósito de ser usada pelo ThePhish. O procedimento para ativar a senha de aplicativo necessária para o ThePhish se conectar à caixa de correio e buscar os e-mails é explicado aqui.

Este procedimento de instalação foi testado em uma VM rodando Ubuntu 20.04.3 LTS com Python 3.8 instalado e as versões de TheHive, Cortex e MISP mostradas neste arquivo docker-compose.yml.

Uma vez que TheHive, Cortex e MISP estejam configurados e ouvindo em uma determinada URL e o endereço de e-mail esteja pronto para uso, você pode instalar e configurar o ThePhish.

  1. Clone o repositório

    root@kitploit:~
    $ git clone https://github.com/emalderson/ThePhish.git
    
  2. Crie um ambiente virtual Python e ative-o (é uma boa prática, mas não obrigatório)

    root@kitploit:~
    $ cd ThePhish/app
    $ sudo apt install python3-venv
    $ python3 -m venv venv
    $ source venv/bin/activate
    
  3. Instale os requisitos

    root@kitploit:~
    $ pip install -r requirements.txt
    
  4. Adicione a função run_responder() ao arquivo api.py do TheHive4py

    Para enviar e-mails ao usuário, o ThePhish usa o respondedor Mailer. Como o ThePhish usa TheHive4py para interagir com o TheHive, é necessária uma função que permita executar um respondedor pelo seu ID. Infelizmente, esta função ainda não faz parte do TheHive4py, mas foi feito um pull request para adicioná-la ao TheHive4py (#219). Enquanto se aguarda sua adição, ela deve ser adicionada manualmente usando o seguinte comando para que o ThePhish funcione corretamente (substitua a versão do Python no comando se você usar uma versão diferente do Python):

    root@kitploit:~
    $ (cat << _EOF_
    
    
        def run_responder(self, responder_id, object_type, object_id):
            req = self.url + "/api/connector/cortex/action"
            try:
                data = json.dumps({ "responderId": responder_id, "objectType": object_type, "objectId": object_id})
                return requests.post(req, headers={"Content-Type": "application/json"}, data=data, proxies=self.proxies, auth=self.auth, verify=self.cert)
            except requests.exceptions.RequestException as e:
                raise TheHiveException("Responder run error: {}".format(e))
    _EOF_
    ) | tee -a venv/lib/python3.8/site-packages/thehive4py/api.py > /dev/null
    

Configure os analisadores

O ThePhish pode iniciar um analisador ou um responder somente se ele estiver habilitado e configurado corretamente no Cortex. Esta parte da documentação explica como habilitá-los, enquanto esta parte lista os analisadores e responders disponíveis com seus parâmetros de configuração. Vale notar que, embora muitos analisadores sejam gratuitos, alguns exigem acesso especial e outros necessitam de uma assinatura de serviço válida ou licença de produto.

Configure os níveis dos analisadores

Cada analisador gera um relatório em formato JSON que contém um nível de maliciosidade para um observável que pode ser "info", "safe", "suspicious" ou "malicious". No entanto, embora a estrutura do relatório geralmente siga uma convenção, essa convenção nem sempre é respeitada. Além disso, após a análise do código de muitos analisadores e vários testes, alguns analisadores foram encontrados com bugs. Por esse motivo, alguns ajustes e soluções alternativas foram utilizados para obter os níveis de maliciosidade fornecidos por esses analisadores ou para evitar que o aplicativo trave devido a esses bugs.

Além disso, esses níveis nem sempre representam o nível real de maliciosidade de um observável. Como isso depende de como os próprios analisadores foram programados, o ThePhish vem com outro arquivo de configuração chamado analyzers_level_conf.json, com o qual é possível criar um mapeamento entre os níveis reais de maliciosidade fornecidos por qualquer analisador e os níveis decididos pelo analista. Além disso, este arquivo permite que o analista escolha quais são os tipos de observáveis aos quais essas modificações devem ser aplicadas. O arquivo precisa seguir a estrutura mostrada no exemplo aqui, usando o nome exato dos analisadores a serem configurados e com o nível desejado à direita. Se um analisador não estiver listado neste arquivo, então os níveis de maliciosidade que ele fornece são deixados intactos. O arquivo precisa seguir a estrutura mostrada no exemplo a seguir, usando o nome exato dos analisadores a serem configurados e com o nível desejado à direita. Se um analisador não estiver listado neste arquivo, então os níveis de maliciosidade que ele fornece são deixados intactos.```json { "DomainMailSPFDMARC_Analyzer_1_1" : { "dataType" : ["url", "ip", "domain", "mail"], "levelMapping" : { "malicious" : "suspicious", "suspicious" : "suspicious", "safe" : "safe", "info" : "info" } }, "MISP_2_1" : { "dataType" : ["url", "ip", "domain", "mail"], "levelMapping" : { "malicious" : "malicious", "suspicious" : "malicious", "safe" : "safe", "info" : "info" } } }

root@kitploit:~
Neste exemplo, o nível "suspicious" para o analisador *MISP_2_1* é elevado para "malicious" pois indica que alguns observáveis no e-mail atualmente em análise já foram observados em um e-mail analisado anteriormente para o qual o veredito foi "malicious". Inversamente, o nível "malicious" do analisador *DomainMailSPFDMARC_Analyzer_1_1* é reduzido para "suspicious", pois muitos domínios legítimos não possuem registros DMARC e SPF configurados.

Você pode adicionar ou remover analisadores neste arquivo à vontade, mas recomendo que deixe os que já estão presentes no arquivo intocados, pois essas modificações foram motivadas por muitos testes realizados em muitos e-mails diferentes.

### Analisadores testados
O ThePhish foi testado com os seguintes analisadores:
- AbuseIPDB_1_0
- AnyRun_Sandbox_Analysis_1_0
- CyberCrime-Tracker_1_0
- Cyberprotect_ThreatScore_3_0
- *DomainMailSPFDMARC_Analyzer_1_1*
- DShield_lookup_1_0
- EmailRep_1_0
- FileInfo_8_0
- Fortiguard_URLCategory_2_1
- IPinfo_Details_1_0
- **IPVoid_1_0** 
- KasperskyThreatIntelligencePortal_1_0
- Maltiverse_Report_1_0
- *Malwares_GetReport_1_0* 
- *Malwares_Scan_1_0*
- MaxMind_GeoIP_4_0 
- MetaDefenderCloud_GetReport_1_0
- *MISP_2_1*
- NERD_1_0
- *Onyphe_Summary_1_0*
- OTXQuery_2_0
- PassiveTotal_Enrichment_2_0 
- *PassiveTotal_Malware_2_0* 
- PassiveTotal_Osint_2_0 
- PassiveTotal_Ssl_Certificate_Details_2_0 
- PassiveTotal_Ssl_Certificate_History_2_0 
- PassiveTotal_Unique_Resolutions_2_0 
- PassiveTotal_Whois_Details_2_0 
- PhishTank_CheckURL_2_1
- **Pulsedive_GetIndicator_1_0**
- *Robtex_Forward_PDNS_Query_1_0*
- *Robtex_IP_Query_1_0* 
- *Robtex_Reverse_PDNS_Query_1_0*
- Shodan_DNSResolve_1_0 
- **Shodan_Host_1_0** 
- **Shodan_Host_History_1_0**
- Shodan_InfoDomain_1_0 
- **SpamhausDBL_1_0**
- StopForumSpam_1_0
- *Threatcrowd_1_0*	
- UnshortenLink_1_2
- **URLhaus_2_0** 
- Urlscan_io_Scan_0_1_0 
- *Urlscan_io_Search_0_1_1* 
- VirusTotal_GetReport_3_1
- VirusTotal_Scan_3_1
- Yara_2_0

Os analisadores enfatizados em *itálico* são aqueles para os quais os níveis foram modificados (mas que podem ser sobrescritos, embora não seja aconselhável), enquanto os analisadores enfatizados em **negrito** são aqueles que são tratados diretamente no código do ThePhish, seja porque não respeitam a convenção da estrutura do relatório, seja porque apresentam bugs. Além disso, os seguintes analisadores são tratados no código do ThePhish para usá-los da melhor maneira possível:

- **DomainMailSPFDMARC_Analyzer_1_1**: É iniciado apenas em domínios que supostamente podem enviar e-mails.
	
- **MISP_2_1**: É usado para a integração com o MISP.
   
- **UnshortenLink_1_2**: É iniciado antes de qualquer outro analisador em uma URL para possibilitar o encurtamento de um link e adicionar o link desencurtado como um observável adicional.
  
- **Yara_2_0**: É o único que é iniciado no anexo EML.


### Ativar o analisador *MISP*

Para integrar o Cortex com o MISP, você deve ativar o analisador *MISP_2_1* e configurá-lo com a chave de autenticação do usuário criado no MISP que o Cortex usará para interagir com o MISP. Isso significa que uma organização e um usuário com função `sync_user` nessa organização devem ser criados no MISP previamente (você pode aprender como fazer isso e obter a chave de autenticação [aqui (documentação do ThePhish, recomendada)](https://github.com/emalderson/ThePhish/tree/master/docker#configure-the-misp-container) ou [aqui (documentação do MISP)](https://www.circl.lu/doc/misp/administration/#users).

### Ativar o analisador *Yara*

Se você quiser usar o analisador *Yara_2_0*, deve criar uma pasta na máquina em que o Cortex está rodando que contenha:

 - As regras Yara, onde cada regra é um arquivo com extensão `.yar`
 - Um arquivo chamado `index.yar`, que contém uma linha para cada regra Yara naquela pasta que respeite esta sintaxe: `include "yara_rule_name.yar"`

Em seguida, você deve configurar o caminho desta pasta no Cortex. Por exemplo, se você criou a pasta `yara_rules` no caminho `/opt/cortex`, então você precisa configurar o caminho `/opt/cortex/yara_rules` no Cortex (na interface web).

## Ativar o responder *Mailer*

Para enviar os e-mails aos usuários, o responder *Mailer* deve estar ativado e configurado corretamente. O procedimento usado para ativar um responder é idêntico ao procedimento usado para ativar um analisador. Se você estiver usando um endereço do Gmail, estes são os parâmetros corretos a configurar:
- from: `<YourGmailEmailAddress>`
- smtp_host :`smtp.gmail.com`
- smtp_port: `587`
- smtp_user: `<YourGmailEmailAddress>`
- smtp_pwd: `<YourGmailEmailAddressAppPassword>`


## Usar a whitelist

O ThePhish permite criar uma whitelist para evitar analisar observáveis que possam causar falsos positivos ou que o analista decida que não devem ser considerados durante a análise. A whitelist está contida em um arquivo chamado `whitelist.json` e é constituída por muitas listas diferentes para oferecer grande flexibilidade tanto em termos de tipos de observáveis a corresponder quanto modos de correspondência. Suporta os seguintes modos de correspondência:

 - Correspondência exata de string para endereços de e-mail, endereços IP, URLs, domínios, nomes de arquivos, tipos de arquivos e hashes
 - Correspondência por regex para endereços de e-mail, endereços IP, URLs, domínios e nomes de arquivos
 - Correspondência por regex para subdomínios, endereços de e-mail e URLs que contenham os domínios especificados

Aqui é mostrado um exemplo simples do arquivo `whitelist.json`.```json
{	
	"exactMatching": {
		"mail" : [],
		"ip" : [
			"127.0.0.1",
			"8.8.8.8",
			"8.8.4.4"
		],
		"url" : [],
		"domain" : [
			"adf.ly",
			"paypal.com"
		],
		"filename" : [],
		"filetype" : [
			"application/pdf"
		],
		"hash" : []
	},
	"domainsInSubdomains" : [
		"paypal.com"
	],
	"domainsInURLs" : [
		"paypal.com"
	],
	"domainsInEmails" : [
		"paypal.com"
	],
	"regexMatching" : {
		"mail" : [],
		"ip" : [
			"10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}",
			"172\\.16\\.\\d{1,3}\\.\\d{1,3}",
			"192\\.168\\.\\d{1,3}\\.\\d{1,3}"
		],
		"url" : [],
		"domain" : [],
		"filename" : []
	}
}

Enquanto as partes relacionadas à correspondência exata e à correspondência regex são usadas sem qualquer modificação, as partes restantes são usadas para criar mais três listas de expressões regulares. Não é necessário que você projete expressões regulares complexas para habilitar esses recursos, você só precisa adicionar os domínios às listas corretas e o ThePhish fará o resto. Por exemplo, no exemplo mostrado acima, não apenas o domínio "paypal.com" é filtrado, mas qualquer subdomínio, URL e endereço de e-mail contendo o domínio "paypal.com" também é filtrado. Essas expressões regulares foram projetadas para evitar alguns comportamentos indesejados, por exemplo, impedem que domínios como "paypal.com.attacker.com" sejam incluídos na lista de permissões por engano.

Nota: Se você adicionar um domínio em "domainsInSubdomains", o próprio domínio também será filtrado. Portanto, adicionar o mesmo domínio à lista de domínios em "exactMatching" é desnecessário. A distinção é feita para casos em que apenas o domínio precisa estar na lista de permissões, não seus subdomínios. Assim, neste exemplo, incluir "paypal.com" em ambas as listas é redundante.

O arquivo de lista de permissões fornecido neste repositório já está preenchido com alguns observáveis permitidos, mas é apenas um exemplo; você pode (e deve) editá-lo para atender às suas necessidades, removendo ou adicionando elementos.

Contribuição para o TheHive4py

O ThePhish utiliza um ótimo recurso do TheHive que é a possibilidade de exportar um caso para o MISP como um evento. Isso torna possível usar o analisador MISP_2_1 para buscar uma correspondência entre um observável em um caso e um atributo de um desses eventos no MISP. Infelizmente, durante os estágios iniciais de desenvolvimento do ThePhish, uma função que permitia fazer isso via API em Python ainda não estava disponível no TheHive4py. Por esse motivo, foi feita uma solicitação de pull (#187) para o TheHive4py para adicionar essa funcionalidade. A solicitação de pull foi aceita e a função export_to_misp() foi adicionada ao marco 1.8.0 do TheHive4py.

Contribuição para o Cortex-Analyzers

O ThePhish depende fortemente dos analisadores fornecidos pelo Cortex. Para garantir que eles continuem funcionando como esperado, solicitações de pull são feitas para o repositório que os contém. Aqui está uma lista atualizada dessas solicitações de pull:

  • Correção do KasperskyTIP: a categoria laranja anteriormente ignorada agora é maliciosa (#1270)
  • Correção do PhishTank: adicionar cabeçalho User-Agent para fazer a API do PhishTank funcionar novamente (#1271)
  • Correção do SpamHausDBL: substituir a função de consulta (não funcionando) pela função de resolução (#1272)

Licença

O ThePhish é um software livre e de código aberto lançado sob a AGPL (Affero General Public License).

Publicações acadêmicas

  • ITASEC 2022: Conferência Italiana de Cibersegurança, 20 a 23 de junho de 2022, Roma, Itália
    • Link para os anais: https://ceur-ws.org/Vol-3260/
    • Link para o artigo: https://ceur-ws.org/Vol-3260/paper6.pdf

Quem fala sobre o ThePhish

  • SecSI - https://secsi.io/blog/thephish-an-automated-phishing-email-analysis-tool/
  • The Daily Swig - https://portswigger.net/daily-swig/thephish-the-most-complete-non-commercial-phishing-email-analysis-tool

Repositórios do GitHub mencionando o ThePhish

  • TheHive-Project/awesome
  • matiassingers/awesome-readme

Créditos

Este projeto começou em 2020 e uma versão inicial e incompleta foi apresentada como meu trabalho final para a graduação no Cybersecurity HackAdemy organizado pela Universidade de Nápoles Federico II. Por isso, gostaria de agradecer a Roberto Celletti pela ideia inicial e à minha equipe, composta por gianpor, MrFelpon e xdinax, que me ajudaram nos estágios iniciais do desenvolvimento da aplicação com a implantação inicial e os primeiros testes.

Então, redesenhei completamente a ferramenta em termos de funcionalidade, logotipo e interface do usuário, adicionei suporte para Docker e escrevi uma documentação completa para ser apresentada como tese final para meu mestrado em engenharia da computação em 2021 na Universidade de Nápoles Federico II, com o orientador Simon Pietro Romano (spromano).

Gostaria também de agradecer a Xavier Mertens (xme) por ter desenvolvido o IMAP2TheHive e publicado no GitHub, pois foi a faísca inicial que levou ao desenvolvimento deste projeto e do qual o código do ThePhish se inspirou.

Baixar ferramenta
  • Configuração

    O arquivo configuration.json é o arquivo de configuração global que permite definir os parâmetros para a conexão com a caixa de correio e com as instâncias de TheHive, Cortex e MISP. Ele também permite definir parâmetros relacionados aos casos que serão criados no TheHive.

    root@kitploit:~
    {
    	"imap" : {
    		"host" : "imap.gmail.com",
    		"port" : "993",
    		"user" : "",
    		"password" : "",
    		"folder" : "inbox"
    	},
    	"thehive" : {
    		"url" : "http://thehive:9000",
    		"apikey" : ""
    	},
    	"cortex" : {
    		"url" : "http://cortex:9001",
    		"apikey" : "",
    		"id" : "local"
    	},
    	"misp" : {
    		"id" : "MISP THP"
    	},
    	"case" : {
    		"tlp" : "2",
    		"pap" : "2",
    		"tags" : ["email", "ThePhish"]
    	}
    }
    
    • Na parte imap, se você estiver usando um endereço Gmail, só precisa definir o nome de usuário usado para conectar ao servidor IMAP (que é seu endereço de e-mail) e a senha de aplicativo.
    • Na parte thehive você deve definir a URL na qual a instância do TheHive está acessível e definir a chave de API do usuário criado no TheHive que o ThePhish usará para interagir com o TheHive.
    • Na parte cortex você deve definir a URL na qual a instância do Cortex está acessível e definir a chave de API do usuário criado no Cortex que tanto o ThePhish quanto o TheHive usarão para interagir com o Cortex. Além disso, você deve definir o ID dado à instância do Cortex.
    • Na parte misp você só precisa definir o ID dado à instância do MISP.
    • Na parte case você pode definir os níveis padrão de TLP e PAP para os casos criados pelo ThePhish e também as tags que serão aplicadas a eles no momento de sua criação.

    Você pode aprender como criar uma organização e um usuário com função org-admin nessa organização no TheHive e obter sua chave de API aqui (documentação do ThePhish, recomendada) ou aqui (documentação do TheHive). Da mesma forma, você pode aprender como criar uma organização e um usuário com funções read, analyze nessa organização no Cortex e obter sua chave de API aqui (documentação do ThePhish, recomendada) ou aqui (documentação do Cortex).

    As URLs e os IDs definidos neste arquivo devem ser os mesmos definidos no arquivo de configuração do TheHive chamado application.conf, que contém uma parte relacionada ao Cortex e uma parte relacionada ao MISP. Os parâmetros que você deve procurar são name e url em ambas as partes, que correspondem aos IDs e URLs das instâncias Cortex e MISP. Os IDs também podem ser encontrados na janela Sobre na interface web do TheHive. Um exemplo onde o ID do Cortex é a string local e o ID do MISP é a string MISP THP é mostrado na figura a seguir:

    O arquivo application.conf é usado para integrar o TheHive com Cortex e MISP. Você pode aprender como configurar a integração com o Cortex aqui (documentação do ThePhish, recomendada) ou aqui (documentação do TheHive), enquanto para a integração com o MISP você pode acessar aqui (documentação do ThePhish, recomendada) ou aqui (documentação do TheHive).Os URLs onde as instâncias do TheHive, Cortex e MISP estão acessíveis também devem ser substituídos no arquivo templates/index.html para que os botões na interface web possam alcançá-los. Para fazer isso, substitua os últimos três href desta parte do código:

    root@kitploit:~
    <ul class="navbar-nav text-light" id="accordionSidebar">
        <li class="nav-item"><a class="nav-link active" href="/" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/logo_rounded.png" style="margin-top: 0px;margin-left: 0px;"></a></li>
        <li class="nav-item"><a class="nav-link" href="http://thehive:9000" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/thehive.png" style="margin-right: 0px;margin-left: 0px;"></a></li>
        <li class="nav-item"><a class="nav-link" href="http://cortex:9001" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/cortex.png" style="transform: translate(0px);"></a></li>
        <li class="nav-item"><a class="nav-link" href="https://misp" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/misp.png" style="transform: translate(0px);"></a></li>
    </ul>
    
  • Iniciar o aplicativo

    root@kitploit:~
    $ python3 thephish_app.py
    

    O servidor que será usado para executar o aplicativo é o servidor WSGI fornecido pelo eventlet, já que ele está listado nos requisitos. É necessário para que o protocolo WebSocket funcione e evite cair em long polling HTTP. Sem o eventlet, o servidor WSGI padrão do Flask (Werkzeug) será usado. Se você deseja usar outro servidor WSGI (por exemplo, Gunicorn) ou usar um proxy reverso (por exemplo, NGINX), a documentação do Flask-SocketIO explica como fazer isso.

    Agora o aplicativo deve estar acessível em http://localhost:8080.

    ⚠️ Aviso: Se você estiver usando o Mozilla Firefox para usar o ThePhish e por algum motivo uma mensagem de erro aparecer durante a análise, a solução pode ser encontrada aqui.