Skip to content

Este código é particularmente útil para atividades de OSINT (Inteligência de Origem Aberta), como por exemplo, phishing ético. Além disso, a conversão para Punycode permite que os pesquisadores identifiquem domínios internacionalizados que podem ser usados para ataques de engenharia social.

License

Notifications You must be signed in to change notification settings

Jetrom17/Domain_Variations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Geração de Variações de Domínios com Caracteres Especiais e Conversão para Punycode

Este código em Python é uma ferramenta útil para gerar variações de um domínio com caracteres especiais, como acentos. Ele utiliza uma função recursiva chamada substituir_caracteres() para substituir cada caractere do domínio base pelas suas respectivas variações acentuadas. A função gerar_variacoes() utiliza essa função recursiva e retorna um conjunto de variações do domínio. Por fim, o módulo idna é usado para converter essas variações para Punycode, uma representação ASCII de nomes de domínio que podem conter caracteres Unicode.

import idna
# Função para gerar variações com caracteres especiais
def gerar_variacoes(dominio_base):
    variacoes = set()
    substituicoes = {
        'a': ['á', 'à', 'â', 'ä'],
        'e': ['é', 'è', 'ê', 'ë'],
        'u': ['ú', 'ù', 'û', 'ü'],
        'n': ['ñ'],
    }
    
    def substituir_caracteres(dominio, pos):
        if pos >= len(dominio):
            return [dominio]
        
        variacoes_pos = []
        if dominio[pos] in substituicoes:
            for substituicao in substituicoes[dominio[pos]]:
                nova_variacao = dominio[:pos] + substituicao + dominio[pos+1:]
                variacoes_pos.extend(substituir_caracteres(nova_variacao, pos+1))
        variacoes_pos.extend(substituir_caracteres(dominio, pos+1))
        
        return variacoes_pos
    
    variacoes.update(substituir_caracteres(dominio_base, 0))
    return list(variacoes)
# Gerar as variações do domínio
dominio_base = "tabnews.com.br"
variacoes_dominio = gerar_variacoes(dominio_base)
# Converter para Punycode
dominios_punycode = [idna.encode(dominio).decode('ascii') for dominio in variacoes_dominio]
# Print das variações em Punycode
for dominio in dominios_punycode:
    print(dominio)

Instalação

git clone https://github.com/Jetrom17/Domain_Variations
cd Domain_Variations
python3 dv.py

About

Este código é particularmente útil para atividades de OSINT (Inteligência de Origem Aberta), como por exemplo, phishing ético. Além disso, a conversão para Punycode permite que os pesquisadores identifiquem domínios internacionalizados que podem ser usados para ataques de engenharia social.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages