mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/phishing-methodolog
This commit is contained in:
parent
673cee17ee
commit
0703079daf
@ -32,6 +32,7 @@
|
||||
- [Clone a Website](generic-methodologies-and-resources/phishing-methodology/clone-a-website.md)
|
||||
- [Detecting Phishing](generic-methodologies-and-resources/phishing-methodology/detecting-phising.md)
|
||||
- [Discord Invite Hijacking](generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md)
|
||||
- [Homograph Attacks](generic-methodologies-and-resources/phishing-methodology/homograph-attacks.md)
|
||||
- [Mobile Phishing Malicious Apps](generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps.md)
|
||||
- [Phishing Files & Documents](generic-methodologies-and-resources/phishing-methodology/phishing-documents.md)
|
||||
- [Basic Forensic Methodology](generic-methodologies-and-resources/basic-forensic-methodology/README.md)
|
||||
|
@ -24,15 +24,19 @@
|
||||
- **Palavra-chave**: O nome do domínio **contém** uma **palavra-chave** importante do domínio original (por exemplo, zelster.com-management.com).
|
||||
- **subdomínio hifenizado**: Mudar o **ponto por um hífen** de um subdomínio (por exemplo, www-zelster.com).
|
||||
- **Novo TLD**: Mesmo domínio usando um **novo TLD** (por exemplo, zelster.org).
|
||||
- **Homoglyph**: **Substitui** uma letra no nome do domínio por **letras que parecem semelhantes** (por exemplo, zelfser.com).
|
||||
- **Transposição:** **Troca duas letras** dentro do nome do domínio (por exemplo, zelsetr.com).
|
||||
- **Homoglyph**: Ele **substitui** uma letra no nome do domínio por **letras que parecem semelhantes** (por exemplo, zelfser.com).
|
||||
|
||||
{{#ref}}
|
||||
homograph-attacks.md
|
||||
{{#endref}}
|
||||
- **Transposição:** Ele **troca duas letras** dentro do nome do domínio (por exemplo, zelsetr.com).
|
||||
- **Singularização/Pluralização**: Adiciona ou remove “s” no final do nome do domínio (por exemplo, zeltsers.com).
|
||||
- **Omissão**: **Remove uma** das letras do nome do domínio (por exemplo, zelser.com).
|
||||
- **Repetição:** **Repete uma** das letras no nome do domínio (por exemplo, zeltsser.com).
|
||||
- **Substituição**: Como homoglyph, mas menos furtivo. Substitui uma das letras no nome do domínio, talvez por uma letra próxima da letra original no teclado (por exemplo, zektser.com).
|
||||
- **Subdominado**: Introduz um **ponto** dentro do nome do domínio (por exemplo, ze.lster.com).
|
||||
- **Inserção**: **Insere uma letra** no nome do domínio (por exemplo, zerltser.com).
|
||||
- **Ponto ausente**: Anexa o TLD ao nome do domínio. (por exemplo, zelstercom.com)
|
||||
- **Omissão**: Ele **remove uma** das letras do nome do domínio (por exemplo, zelser.com).
|
||||
- **Repetição:** Ele **repete uma** das letras no nome do domínio (por exemplo, zeltsser.com).
|
||||
- **Substituição**: Como homoglyph, mas menos furtivo. Ele substitui uma das letras no nome do domínio, talvez por uma letra próxima da letra original no teclado (por exemplo, zektser.com).
|
||||
- **Subdominado**: Introduzir um **ponto** dentro do nome do domínio (por exemplo, ze.lster.com).
|
||||
- **Inserção**: Ele **insere uma letra** no nome do domínio (por exemplo, zerltser.com).
|
||||
- **Ponto ausente**: Anexar o TLD ao nome do domínio. (por exemplo, zelstercom.com)
|
||||
|
||||
**Ferramentas Automáticas**
|
||||
|
||||
@ -47,11 +51,11 @@
|
||||
|
||||
### Bitflipping
|
||||
|
||||
Há uma **possibilidade de que um de alguns bits armazenados ou em comunicação possa ser automaticamente invertido** devido a vários fatores, como flares solares, raios cósmicos ou erros de hardware.
|
||||
Há uma **possibilidade de que um dos bits armazenados ou em comunicação possa ser automaticamente invertido** devido a vários fatores, como flares solares, raios cósmicos ou erros de hardware.
|
||||
|
||||
Quando esse conceito é **aplicado a solicitações DNS**, é possível que o **domínio recebido pelo servidor DNS** não seja o mesmo que o domínio inicialmente solicitado.
|
||||
|
||||
Por exemplo, uma única modificação de bit no domínio "windows.com" pode mudá-lo para "windnws.com".
|
||||
Por exemplo, uma única modificação de bit no domínio "windows.com" pode mudá-lo para "windnws.com."
|
||||
|
||||
Os atacantes podem **se aproveitar disso registrando vários domínios de bit-flipping** que são semelhantes ao domínio da vítima. A intenção deles é redirecionar usuários legítimos para sua própria infraestrutura.
|
||||
|
||||
@ -80,9 +84,9 @@ Além disso, não se esqueça de que se os usuários usarem **qualquer portal we
|
||||
|
||||
### Instalação
|
||||
|
||||
Você pode baixá-lo em [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0)
|
||||
Você pode baixá-lo de [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0)
|
||||
|
||||
Baixe e descompacte dentro de `/opt/gophish` e execute `/opt/gophish/gophish`\
|
||||
Baixe e descompacte-o dentro de `/opt/gophish` e execute `/opt/gophish/gophish`\
|
||||
Você receberá uma senha para o usuário admin na porta 3333 na saída. Portanto, acesse essa porta e use essas credenciais para alterar a senha do admin. Você pode precisar redirecionar essa porta para local:
|
||||
```bash
|
||||
ssh -L 3333:127.0.0.1:3333 <user>@<ip>
|
||||
@ -91,7 +95,7 @@ ssh -L 3333:127.0.0.1:3333 <user>@<ip>
|
||||
|
||||
**Configuração do certificado TLS**
|
||||
|
||||
Antes desta etapa, você deve **já ter comprado o domínio** que você vai usar e ele deve estar **apontando** para o **IP do VPS** onde você está configurando **gophish**.
|
||||
Antes desta etapa, você deve **já ter comprado o domínio** que vai usar e ele deve estar **apontando** para o **IP do VPS** onde você está configurando **gophish**.
|
||||
```bash
|
||||
DOMAIN="<domain>"
|
||||
wget https://dl.eff.org/certbot-auto
|
||||
@ -119,12 +123,12 @@ Em seguida, adicione o domínio aos seguintes arquivos:
|
||||
|
||||
**Altere também os valores das seguintes variáveis dentro de /etc/postfix/main.cf**
|
||||
|
||||
`myhostname = <domínio>`\
|
||||
`mydestination = $myhostname, <domínio>, localhost.com, localhost`
|
||||
`myhostname = <domain>`\
|
||||
`mydestination = $myhostname, <domain>, localhost.com, localhost`
|
||||
|
||||
Finalmente, modifique os arquivos **`/etc/hostname`** e **`/etc/mailname`** para o nome do seu domínio e **reinicie seu VPS.**
|
||||
|
||||
Agora, crie um **registro DNS A** de `mail.<domínio>` apontando para o **endereço IP** do VPS e um **registro DNS MX** apontando para `mail.<domínio>`
|
||||
Agora, crie um **registro DNS A** de `mail.<domain>` apontando para o **endereço IP** do VPS e um **registro DNS MX** apontando para `mail.<domain>`
|
||||
|
||||
Agora vamos testar o envio de um email:
|
||||
```bash
|
||||
@ -227,7 +231,7 @@ Quanto mais antigo for um domínio, menos provável é que ele seja identificado
|
||||
|
||||
Observe que, mesmo que você tenha que esperar uma semana, pode terminar de configurar tudo agora.
|
||||
|
||||
### Configure o registro de DNS Reverso (rDNS)
|
||||
### Configurar registro de DNS reverso (rDNS)
|
||||
|
||||
Defina um registro rDNS (PTR) que resolva o endereço IP do VPS para o nome do domínio.
|
||||
|
||||
@ -308,7 +312,7 @@ A página [www.mail-tester.com](https://www.mail-tester.com) pode indicar se seu
|
||||
 (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (15) (2).png>)
|
||||
|
||||
> [!TIP]
|
||||
> É recomendado usar a funcionalidade "**Enviar Email de Teste**" para testar se tudo está funcionando.\
|
||||
> É recomendável usar a funcionalidade "**Enviar Email de Teste**" para testar se tudo está funcionando.\
|
||||
> Eu recomendaria **enviar os emails de teste para endereços de 10min** para evitar ser colocado na lista negra durante os testes.
|
||||
|
||||
### Modelo de Email
|
||||
@ -405,7 +409,7 @@ phishing-documents.md
|
||||
|
||||
O ataque anterior é bastante inteligente, pois você está falsificando um site real e coletando as informações fornecidas pelo usuário. Infelizmente, se o usuário não inseriu a senha correta ou se o aplicativo que você falsificou está configurado com 2FA, **essa informação não permitirá que você se passe pelo usuário enganado**.
|
||||
|
||||
É aqui que ferramentas como [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) e [**muraena**](https://github.com/muraenateam/muraena) são úteis. Essa ferramenta permitirá que você gere um ataque do tipo MitM. Basicamente, os ataques funcionam da seguinte maneira:
|
||||
É aqui que ferramentas como [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) e [**muraena**](https://github.com/muraenateam/muraena) são úteis. Esta ferramenta permitirá que você gere um ataque do tipo MitM. Basicamente, os ataques funcionam da seguinte maneira:
|
||||
|
||||
1. Você **falsifica o formulário de login** da página real.
|
||||
2. O usuário **envia** suas **credenciais** para sua página falsa e a ferramenta as envia para a página real, **verificando se as credenciais funcionam**.
|
||||
|
@ -0,0 +1,104 @@
|
||||
# Ataques de Homógrafos / Homoglifos em Phishing
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Visão Geral
|
||||
|
||||
Um ataque homógrafo (também conhecido como homoglyph) explora o fato de que muitos **pontos de código Unicode de scripts não latinos são visualmente idênticos ou extremamente semelhantes a caracteres ASCII**. Ao substituir um ou mais caracteres latinos por seus equivalentes visualmente semelhantes, um atacante pode criar:
|
||||
|
||||
* Nomes de exibição, assuntos ou corpos de mensagem que parecem legítimos para o olho humano, mas contornam detecções baseadas em palavras-chave.
|
||||
* Domínios, subdomínios ou caminhos de URL que enganam as vítimas, fazendo-as acreditar que estão visitando um site confiável.
|
||||
|
||||
Como cada glifo é identificado internamente pelo seu **ponto de código Unicode**, um único caractere substituído é suficiente para derrotar comparações de strings ingênuas (por exemplo, `"Παypal.com"` vs. `"Paypal.com"`).
|
||||
|
||||
## Fluxo de Trabalho Típico de Phishing
|
||||
|
||||
1. **Criar conteúdo da mensagem** – Substituir letras latinas específicas na marca / palavra-chave impersonada por caracteres visualmente indistinguíveis de outro script (grego, cirílico, armênio, cherokee, etc.).
|
||||
2. **Registrar infraestrutura de suporte** – Opcionalmente, registrar um domínio homoglyph e obter um certificado TLS (a maioria das CAs não faz verificações de similaridade visual).
|
||||
3. **Enviar e-mail / SMS** – A mensagem contém homógrafos em uma ou mais das seguintes localizações:
|
||||
* Nome de exibição do remetente (por exemplo, `Ηеlрdеѕk`)
|
||||
* Linha de assunto (`Urgеnt Аctіon Rеquіrеd`)
|
||||
* Texto do hyperlink ou nome de domínio totalmente qualificado
|
||||
4. **Cadeia de redirecionamento** – A vítima é redirecionada através de sites aparentemente benignos ou encurtadores de URL antes de aterrissar no host malicioso que coleta credenciais / entrega malware.
|
||||
|
||||
## Faixas de Unicode Comumente Abusadas
|
||||
|
||||
| Script | Faixa | Glifo de exemplo | Parece com |
|
||||
|--------|-------|------------------|------------|
|
||||
| Grego | U+0370-03FF | `Η` (U+0397) | Latino `H` |
|
||||
| Grego | U+0370-03FF | `ρ` (U+03C1) | Latino `p` |
|
||||
| Cirílico | U+0400-04FF | `а` (U+0430) | Latino `a` |
|
||||
| Cirílico | U+0400-04FF | `е` (U+0435) | Latino `e` |
|
||||
| Armênio | U+0530-058F | `օ` (U+0585) | Latino `o` |
|
||||
| Cherokee | U+13A0-13FF | `Ꭲ` (U+13A2) | Latino `T` |
|
||||
|
||||
> Dica: Gráficos completos de Unicode estão disponíveis em [unicode.org](https://home.unicode.org/).
|
||||
|
||||
## Técnicas de Detecção
|
||||
|
||||
### 1. Inspeção de Script Misto
|
||||
|
||||
E-mails de phishing direcionados a uma organização de língua inglesa raramente devem misturar caracteres de múltiplos scripts. Uma heurística simples, mas eficaz, é:
|
||||
|
||||
1. Iterar cada caractere da string inspecionada.
|
||||
2. Mapear o ponto de código para seu bloco Unicode.
|
||||
3. Emitir um alerta se mais de um script estiver presente **ou** se scripts não latinos aparecerem onde não são esperados (nome de exibição, domínio, assunto, URL, etc.).
|
||||
|
||||
Prova de conceito em Python:
|
||||
```python
|
||||
import unicodedata as ud
|
||||
from collections import defaultdict
|
||||
|
||||
SUSPECT_FIELDS = {
|
||||
"display_name": "Ηоmоgraph Illusion", # example data
|
||||
"subject": "Finаnꮯiаl Տtatеmеnt",
|
||||
"url": "https://xn--messageconnecton-2kb.blob.core.windows.net" # punycode
|
||||
}
|
||||
|
||||
for field, value in SUSPECT_FIELDS.items():
|
||||
blocks = defaultdict(int)
|
||||
for ch in value:
|
||||
if ch.isascii():
|
||||
blocks['Latin'] += 1
|
||||
else:
|
||||
name = ud.name(ch, 'UNKNOWN')
|
||||
block = name.split(' ')[0] # e.g., 'CYRILLIC'
|
||||
blocks[block] += 1
|
||||
if len(blocks) > 1:
|
||||
print(f"[!] Mixed scripts in {field}: {dict(blocks)} -> {value}")
|
||||
```
|
||||
### 2. Normalização Punycode (Domínios)
|
||||
|
||||
Nomes de Domínio Internacionalizados (IDNs) são codificados com **punycode** (`xn--`). Converter cada nome de host para punycode e depois de volta para Unicode permite a correspondência contra uma lista de permissões ou a realização de verificações de similaridade (por exemplo, distância de Levenshtein) **após** a string ter sido normalizada.
|
||||
```python
|
||||
import idna
|
||||
hostname = "Ρаypal.com" # Greek Rho + Cyrillic a
|
||||
puny = idna.encode(hostname).decode()
|
||||
print(puny) # xn--yl8hpyal.com
|
||||
```
|
||||
### 3. Dicionários / Algoritmos de Homógrafos
|
||||
|
||||
Ferramentas como **dnstwist** (`--homoglyph`) ou **urlcrazy** podem enumerar permutações de domínios visualmente semelhantes e são úteis para remoção / monitoramento proativo.
|
||||
|
||||
## Prevenção & Mitigação
|
||||
|
||||
* Aplique políticas rigorosas de DMARC/DKIM/SPF – previna spoofing de domínios não autorizados.
|
||||
* Implemente a lógica de detecção acima em **Secure Email Gateways** e **SIEM/XSOAR** playbooks.
|
||||
* Marque ou coloque em quarentena mensagens onde o domínio do nome exibido ≠ domínio do remetente.
|
||||
* Eduque os usuários: copie e cole texto suspeito em um inspetor de Unicode, passe o mouse sobre links, nunca confie em encurtadores de URL.
|
||||
|
||||
## Exemplos do Mundo Real
|
||||
|
||||
* Nome exibido: `Сonfidеntiаl Ꭲiꮯkеt` (Cirílico `С`, `е`, `а`; Cherokee `Ꭲ`; letra minúscula latina `ꮯ`).
|
||||
* Cadeia de domínio: `bestseoservices.com` ➜ diretório municipal `/templates` ➜ `kig.skyvaulyt.ru` ➜ login falso da Microsoft em `mlcorsftpsswddprotcct.approaches.it.com` protegido por CAPTCHA OTP personalizado.
|
||||
* Impersonação do Spotify: remetente `Sρօtifւ` com link oculto atrás de `redirects.ca`.
|
||||
|
||||
Esses exemplos originam-se da pesquisa da Unit 42 (julho de 2025) e ilustram como o abuso de homógrafos é combinado com redirecionamento de URL e evasão de CAPTCHA para contornar a análise automatizada.
|
||||
|
||||
## Referências
|
||||
|
||||
- [The Homograph Illusion: Not Everything Is As It Seems](https://unit42.paloaltonetworks.com/homograph-attacks/)
|
||||
- [Unicode Character Database](https://home.unicode.org/)
|
||||
- [dnstwist – domain permutation engine](https://github.com/elceef/dnstwist)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user