Repositório criado com o intuito de reunir expressões regulares focadas no contexto brasileiro 🇧🇷 e geral.
OSINT Brazuca Regex é um repositório criado com o intuito de reunir expressões regulares focadas no contexto brasileiro 🇧🇷 e internacional. Seu objetivo é auxiliar analistas e pesquisadores de OSINT a filtrar e identificar informações relevantes durante processos de coleta e análise massiva de dados.
Todo analista de OSINT / Intel que efetua coletas massivas de dados ou precisa realizar checagem de informações em grandes volumes (arquivos) enfrenta a dificuldade de filtrar os dados relevantes.
Para filtrar os dados é necessário definir uma chave de busca, que pode ser uma string de interesse ou documentos específicos do negócio. Frequentemente precisamos recorrer a expressões regulares específicas do contexto brasileiro ou consultar documentação interna.
O OSINT Brazuca Regex tem o objetivo de facilitar esse processo, organizando expressões regulares de interesse para checagem em massa usando os padrões selecionados. Você analista pode fazer o fork do projeto e criar suas proprias seções nos arquivos /dataset/*.json ou criar um aquivo isoado para seu contexto (exemplo: /dataset/teste.json).
As regex são mantidas em dois arquivos, por contexto. Use o que fizer sentido para o seu caso:
| Arquivo | Conteúdo | Categorias | Regex |
|---|---|---|---|
osint-brazuca-regex-br.json |
Identificadores brasileiros: CPF, CNPJ, PIX, IE por UF, contas bancárias, CNH, título de eleitor, processo CNJ... | 43 | 134 |
osint-brazuca-regex-geral.json |
Padrões universais: wallets cripto, IPv4/IPv6, domínios, URLs, tokens de API, hashes, redes sociais... | 24 | 212 |
Note
Quatro categorias (creditCard, socialMedia, apiCredentials, vehicles) existem nos dois arquivos: a parte brasileira (Elo, Hipercard, WhatsApp com DDD, Mercado Pago, Pagar.me, Asaas, ANTT) fica no arquivo BR, o resto no geral.
Warning
Sem rede. Não há consultas, verificadores ou qualquer interação com APIs externas; toda validação é realizada localmente, com regex e Python.
Warning
Arquivo legado. O osint-brazuca-regex.json unificado continua disponível, com as 346 regex, para não quebrar quem já consome a URL crua. Ele passou a ser um artefato gerado a partir dos dois arquivos acima (python3 dataset/build.py) e está descontinuado; novos consumidores devem apontar para os arquivos separados.
Important
Compatibilidade de engine. Algumas expressões usam a flag inline (?i) no início do padrão e outras usam lookaround ((?=, (?!, (?<!). A flag inline funciona em Python, PCRE e Go, mas não é aceita pelo RegExp do JavaScript. Nesse caso, remova o (?i) e passe a flag i na construção da expressão. Lookaround não é suportado pelo RE2 (Go).
Caution
Estas expressões conferem formato, não dígito verificador. CPF, CNPJ, PIS, CNS, EAN-13 e boleto precisam da checagem aritmética de DV do lado de quem consome. Um match aqui não é um documento válido, e tratá-lo como PII confirmada leva a falso positivo.
- Ferramentas
- Documentos Brasileiros
- Identificadores Governamentais
- Criptomoedas e Wallets
- Network e Infraestrutura
- Cartões de Crédito
- Dados Bancários
- Tor e Dark Web
- Redes Sociais e Mensageria
- Geolocalização
- Veículos, Negócios e Educação
- Documentos Complementares
- Financeiro Internacional
- Hashes e Tokens
- Credenciais de API e Segredos
- Bancos de Dados e Containers
- Chaves Privadas e Certificados
- Padrões Sensíveis e URLs Internas
- REGEX Genéricas
Scanner que aplica o dataset deste repositório sobre arquivos, pastas ou entrada via stdin. Requer Python 3.12+ e não tem dependências obrigatórias. Documentação completa em tool.md; os pacotes opcionais estão em requirements.txt.
# listar as categorias disponíveis
python3 osint_regex_scan.py --list-categories
# escanear um arquivo, apenas CPF e e-mail
python3 osint_regex_scan.py relatorio.txt --categories cpf,email
# usar só as regex de contexto brasileiro (ou só as gerais)
python3 osint_regex_scan.py relatorio.txt --scope br
# só os valores encontrados, um por linha, prontos para encadear
python3 osint_regex_scan.py ./dump --categories cpf --format values
# escanear uma pasta inteira, saída em CSV
python3 osint_regex_scan.py ./dump --categories cnpj,email,creditCard,apiCredentials \
--format csv --out achados.csv --threads 16
# escanear uma pasta inteira, seta categoria especifica, usa arquivo teste como base regex, saída em valores,
python3 osint_regex_scan.py ./dump --categories meus_vips --js-db ./dataset/teste.json --format valuesTip
O scanner só casa regex sobre texto: PDF, DOCX, XLSX, ODT, EPUB e RTF têm o texto extraído antes; demais binários são pulados. Rode --list-extractors para ver o que está disponível no seu ambiente.
\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b|\b\d{14}\b
^([A-Za-z0-9]{2}[\.]?[A-Za-z0-9]{3}[\.]?[A-Za-z0-9]{3}[\/]?[A-Za-z0-9]{4}[-]?\d{2})$
\b\d{3}\.\d{3}\.\d{3}-\d{2}\b|\b\d{11}\b
\b\d{4}\s?\d{4}\s?\d{4}\b
\d{3}\.?\d{5}\.?\d{2}[-\s]?\d{1}
\b\d{3}\s?\d{4}\s?\d{4}\s?\d{4}\b
(?:CNES|cnes)[\s.:nº°-]{0,6}(\d{7})\b
[1-2]\d{10}00[0-1]\d|[7-9]\d{14}
\d{7}\s?(\d{5})?
(?:IBGE|ibge)[\s.:nº°-]{0,6}(\d{7})\b
(?:IM|[Ii]nscrição [Mm]unicipal|CCM)[\s.:nº°-]{0,6}(\d{6,15})\b
Rio Grande do Sul
Dígito 0
Ex: 999.999.990-99
^\d{3}\.?\d{3}\.?\d{2}0-?\d{2}$
Distrito Federal, Goiás, Mato Grosso, Mato Grosso do Sul e Tocantins
Dígito 1
Ex: 000.000.001-00
^\d{3}\.?\d{3}\.?\d{2}1-?\d{2}$
Amazonas, Pará, Roraima, Amapá, Acre e Rondônia
Dígito 2
Ex: 000.000.002-00
^\d{3}\.?\d{3}\.?\d{2}2-?\d{2}$
Ceará, Maranhão e Piauí
Dígito 3
Ex: 000.000.003-00
^\d{3}\.?\d{3}\.?\d{2}3-?\d{2}$
Paraíba, Pernambuco, Alagoas e Rio Grande do Norte
Dígito 4
Ex: 000.000.004-00
^\d{3}\.?\d{3}\.?\d{2}4-?\d{2}$
Bahia e Sergipe
Dígito 5
Ex: 000.000.005-00
^\d{3}\.?\d{3}\.?\d{2}5-?\d{2}$
Minas Gerais
Dígito 6
Ex: 000.000.006-00
^\d{3}\.?\d{3}\.?\d{2}6-?\d{2}$
Rio de Janeiro e Espírito Santo
Dígito 7
Ex: 000.000.007-00
^\d{3}\.?\d{3}\.?\d{2}7-?\d{2}$
São Paulo
Dígito 8
Ex: 000.000.008-00
^\d{3}\.?\d{3}\.?\d{2}8-?\d{2}$
Paraná e Santa Catarina
Dígito 9
Ex: 000.000.009-00
^\d{3}\.?\d{3}\.?\d{2}9-?\d{2}$
(\d{1,2}\.?)(\d{3}\.?)(\d{3})(\-?[0-9Xx]{1})
(?:CNH|cnh|[Hh]abilitação|[Cc]arteira)\D{0,15}(\d{11})\b
(^[0-9]{5})-?([0-9]{3}$)
-
Centro-Oeste
Distrito Federal
70000-000 a 72799-999 e 73000-000 a 73699-999\b7(?:[0-2][0-7]|3[0-6])\d{2}-?\d{3}\b
Goiás
72800-000 a 72999-999 e 73700-000 a 76799-999\b7(?:2[89]|3[7-9]|[45]\d|6[0-7])\d{2}-?\d{3}\b
Mato Grosso do Sul
79000-000 a 79999-999\b79\d{3}-?\d{3}\b
Mato Grosso
78000-000 a 78899-999\b78[0-8]\d{2}-?\d{3}\b
-
Nordeste
Alagoas
57000-000 a 57999-999\b57\d{3}-?\d{3}\b
Bahia
40000-000 a 48999-999\b4[0-8]\d{3}-?\d{3}\b
Ceará
60000-000 a 63999-999\b6[0-3]\d{3}-?\d{3}\b
Maranhão
65000-000 a 65999-999\b65\d{3}-?\d{3}\b
Paraíba
58000-000 a 58999-999\b58\d{3}-?\d{3}\b
Pernambuco
50000-000 a 56999-999\b5[0-6]\d{3}-?\d{3}\b
Piauí
64000-000 a 64999-999\b64\d{3}-?\d{3}\b
Rio Grande do Norte
59000-000 a 59999-999\b59\d{3}-?\d{3}\b
Sergipe
49000-000 a 49999-999\b49\d{3}-?\d{3}\b
-
Norte
Acre
69900-000 a 69999-999\b699\d{2}-?\d{3}\b
Amapá
68900-000 a 68999-999\b689\d{2}-?\d{3}\b
Amazonas
69000-000 a 69299-999 e 69400-000 a 69899-999\b69(?:[0-2]|[4-8])\d{2}-?\d{3}\b
Pará
66000-000 a 68899-999\b(?:6[6-7]\d{3}|68[0-8]\d{2})-?\d{3}\b
Rondônia
76800-000 a 76999-999\b76[89]\d{2}-?\d{3}\b
Roraima
69300-000 a 69399-999\b693\d{2}-?\d{3}\b
Tocantins
77000-000 a 77999-999\b77\d{3}-?\d{3}\b
-
Sudeste
Espírito Santo
29000-000 a 29999-999\b29\d{3}-?\d{3}\b
Minas Gerais
30000-000 a 39999-999\b3\d{4}-?\d{3}\b
Rio de Janeiro
20000-000 a 28999-999\b2[0-8]\d{3}-?\d{3}\b
São Paulo
01000-000 a 19999-999\b(?:0[1-9]\d{3}|1\d{4})-?\d{3}\b
-
Sul
Paraná
80000-000 a 87999-999\b8[0-7]\d{3}-?\d{3}\b
Rio Grande do Sul
90000-000 a 99999-999\b9\d{4}-?\d{3}\b
Santa Catarina
88000-000 a 89999-999\b8[89]\d{3}-?\d{3}\b
(RNE)([A-Z\d])(\d{6})([A-Z\d])
((\d{4})[.](\d{6})-(\d{1})|(\d{4})(\d{6})(\d{1}))
\b[A-Za-z]{3}-?\d[A-Za-z0-9]\d{2}\b
(\d{5}[\.]\d{5}[\s]\d{5}[\.]\d{6}[\s]\d{5}[\.]\d{6}[\s]\d[\s]\d{14})|(\d{47,48})|(\d{12} \d{12} \d{12} \d{12})
\b\d{44}\b
(?:ISBN(?:-1[03])?:?\s?)?(?=[0-9X]{10}$|(?=(?:[0-9]+[-\s]){3})[-\s0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[-\s]){4})[-\s0-9]{17}$)(?:97[89][-\s]?)?[0-9]{1,5}[-\s]?[0-9]+[-\s]?[0-9]+[-\s]?[0-9X]
^\d{13}$
\b[A-Za-z]{2}\d{9}[A-Za-z]{2}\b
^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$
^0x[a-fA-F0-9]{40}$
^T[a-zA-Z0-9]{33}$
^(bnb1|0x)[a-zA-Z0-9]{38,42}$
^[1-9A-HJ-NP-Za-km-z]{32,44}$
^r[a-zA-Z0-9]{24,34}$
^(addr1|stake1)[a-z0-9]{53,}$
^D[5-9A-HJ-NP-U][1-9A-HJ-NP-Za-km-z]{32}$
^(L|M|ltc1)[a-zA-Z0-9]{26,42}$
^(0x[a-fA-F0-9]{40}|T[a-zA-Z0-9]{33}|[13][a-zA-Z0-9]{26,35}|bc1[a-z0-9]{39,59})$
(?<![\d.])(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?!\.\d)
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
(?:[0-9A-Fa-f]{2}[:-]){5}(?:[0-9A-Fa-f]{2})
\b(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}\b
\b(?:[a-zA-Z0-9-]+\.){2,}[a-zA-Z]{2,}\b
\b(?:[a-zA-Z0-9-]+\.)+br\b
\b(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}:\d{1,5}\b
\bhttps?:\/\/[^\s\/$.?#].[^\s]*\b
(?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.br(?:\/[^\s]*)?
\b(?:bit\.ly|t\.co|tinyurl\.com|goo\.gl|ow\.ly|is\.gd|cutt\.ly)\/[a-zA-Z0-9_-]+\b
\b[a-zA-Z0-9-]+\.cloudapp\.azure\.com\b
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.bc\.googleusercontent\.com\b
\bec2-\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}\.[a-z0-9-]+\.compute\.amazonaws\.com\b
\b[a-zA-Z0-9-]+\.s3\.[a-z0-9-]+\.amazonaws\.com\b
\b[a-zA-Z0-9-]+\.azurewebsites\.net\b
\b[a-zA-Z0-9-]+\.herokuapp\.com\b
\b[a-zA-Z0-9-]+\.vercel\.app\b
\b[a-zA-Z0-9-]+\.netlify\.app\b
\b[a-zA-Z0-9-]+\.firebaseapp\.com\b
Tor Hidden Service v2 (16 caracteres)
\b[a-z2-7]{16}\.onion\b
Tor Hidden Service v3 (56 caracteres)
\b[a-z2-7]{56}\.onion\b
\b[a-z2-7]{16,56}\.onion\b
4[0-9]{12}(?:[0-9]{3})?
(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}
3[47][0-9]{13}
(?:4011|4312|4389|4514|4576|5041|5066|5067|6277|6362|6363)[0-9]{12}
(?:38|60)[0-9]{11,17}
3(?:0[0-5]|[68][0-9])[0-9]{11}
(?:4[0-9]{12}(?:[0-9]{3})?|(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|6(?:011|5[0-9]{2})[0-9]{12}|(?:2131|1800|35\d{3})\d{11})
(?:[0-9]{4}[\s-]?){3}[0-9]{4}
Formatos de agência e conta. A regex identifica o formato, não o banco: instituições com o mesmo desenho de conta compartilham a mesma expressão.
| Descrição | REGEX |
|---|---|
| Banco do Brasil – Agência 9999-D | Conta 99999999-D | \b\d{4}-[0-9X]\s+\d{8}-[0-9X]\b |
| Bradesco – Agência 9999-D | Conta 9999999-D | \b\d{4}-[0-9X]\s+\d{7}-[0-9X]\b |
| Caixa Econômica – Agência 9999 | Operação XXX + Conta 99999999-D | \b\d{4}\s+[0-9]{3}\d{8}-[0-9X]\b |
| Caixa Econômica – Agência 9999 | Operação XXXX + Conta 999999999-D (novo formato CP) | \b\d{4}\s+[0-9]{4}\d{9}-[0-9X]\b |
| Itaú – Agência 9999 | Conta 99999-D | \b\d{4}\s+\d{5}-[0-9X]\b |
| Sicredi – Agência 9999 | Conta 999999 | \b\d{4}\s+\d{6}\b |
| BS2 – Agência 9999 | Conta 999999-D | \b\d{4}\s+\d{6}-[0-9X]\b |
| Agência 9999 | Conta 9999999-D – Banco Original, C6, Cora, Next, Stone (formato, não identifica o banco) | \b\d{4}\s+\d{7}-[0-9X]\b |
| Agência 9999 | Conta 99999999-D – Santander, PagSeguro, Safra, Unicred (formato, não identifica o banco) | \b\d{4}\s+\d{8}-[0-9X]\b |
| Agência 9999 | Conta 999999999-D – Inter, Banrisul, Sicoob, BRB, Neon/Votorantim (formato, não identifica o banco) | \b\d{4}\s+\d{9}-[0-9X]\b |
| Agência 9999 | Conta 9999999999-D – Nubank, PJBank (formato, não identifica o banco) | \b\d{4}\s+\d{10}-[0-9X]\b |
| Via Credi – Agência 9999 | Conta 99999999999-D | \b\d{4}\s+\d{11}-[0-9X]\b |
| Mercado Pago – Agência 9999 | Conta 9999999999999-D | \b\d{4}\s+\d{13}-[0-9X]\b |
^[A-Z]{2}\d{6}$
\b(?:CRM|crm)[\s\/:-]{0,3}[A-Za-z]{2}[\s\/:-]{0,3}\d{4,7}\b|\b\d{4,7}[\s\/-]?(?:CRM|crm)[\s\/-]?[A-Za-z]{2}\b
(?:\+?55\s?)?(?:\(?\d{2}\)?[\s.-]?)?(?:9\s?)?\d{4}[-.\s]?\d{4}\b
\b(?:AC|AL|AP|AM|BA|CE|DF|ES|GO|MA|MT|MS|MG|PA|PB|PR|PE|PI|RJ|RN|RS|RO|RR|SC|SP|SE|TO|BR)\b
([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[/]?[0-9]{4}[-]?[0-9]{2})
\b(0[1-9]|[12]\d|3[01])[\/.-](0[1-9]|1[0-2])[\/.-](19|20)\d{2}\b
Número de inscrição dado às empresas pelo SEFAZ (Secretária da Fazenda) de cada UF. O comprimento pode variar de 8 a 13 dígitos, dependendo da UF. A REGEX abaixo corresponde ao formato utilizado no estado de São Paulo. Para outros estados, verifique o arquivo JSON na raiz deste repositório.
^\d{3}.?\d{3}.?\d{3}.?\d{3}$
([\w._%+-]+)(@|\s@\s|\sat\s|\[at\])([\w.-]+)\.([\w]{2,})
(?:\+?55\s?)?(?:\(?\d{2}\)?[\s.-]?)?(?:9\s?)?\d{4}[-.\s]?\d{4}\b
\b(0[1-9]|[12]\d|3[01])[\/.-](0[1-9]|1[0-2])[\/.-](19|20)\d{2}\b
\b(0?[1-9]|1[0-2]):[0-5][0-9]\s?[AaPp]\.?[Mm]\.?
([01][0-9]|[2][0-3]):([0-5][0-9])
\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}\b
(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@#$%&*!+\-]).{8,20}
[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)
([0-9]{14,20})([bB][rR]\.[gG][oO][vV]\.[bB][cC][bB]\.[pP][iI][xX]).*(6304)([0-9a-zA-Z]{4})
\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}\b
\b\d{7}-?\d{2}\.?\d{4}\.?[1-9]\.?\d{2}\.?\d{4}\b
^(?:[Ss]\/?[Nn]|\d{1,6})$
Identificadores públicos brasileiros úteis em investigação de fontes abertas. As entradas com rótulo (SIAPE, NB, ISPB, CNES, IBGE) exigem o prefixo textual para evitar falso positivo, já que o número sozinho é apenas uma sequência de dígitos.
| Descrição | REGEX |
|---|---|
| CPF mascarado - formato publicado em portais de transparência e no TSE | \*{3}\.?\d{3}\.?\d{3}-?\*{2} |
| OAB - Inscrição na Ordem dos Advogados do Brasil com seccional | \b(?:OAB|oab)[\s\/:-]{0,3}[A-Za-z]{2}[\s\/:-]{0,3}\d{2,6}\b|\b\d{2,6}[\s\/-]?(?:OAB|oab)[\s\/-]?[A-Za-z]{2}\b |
| SIAPE - Matrícula de servidor público federal | \b(?:SIAPE|siape)[\s.:nº°-]{0,6}\d{7}\b |
| Currículo Lattes - Identificador CNPq (16 dígitos) | \b(?:lattes\.cnpq\.br\/|ID Lattes:?\s*)\d{16}\b |
| Processo administrativo federal - numeração SEI/NUP | \b\d{5}\.\d{6}\/\d{4}-\d{2}\b |
| NB - Número do Benefício do INSS | \b(?:NB|benef[ií]cio)[\s.:nº°-]{0,6}\d{3}\.?\d{3}\.?\d{3}-?\d\b |
| CCIR/INCRA - Código do imóvel rural | \b\d{3}\.\d{3}\.\d{3}\.\d{3}-\d\b |
| Registro ANVISA - Medicamento (registro MS) | \b(?:MS|M\.S\.)\s?\d{1}\.?\d{4}\.?\d{4}\.?\d{3}-?\d?\b |
| ISPB - Identificador de instituição financeira no Bacen | \b(?:ISPB|ispb)[\s.:-]{0,3}\d{8}\b |
| CNPJ raiz - 8 dígitos, sem sufixo de filial e sem DV | \b\d{2}\.\d{3}\.\d{3}\b |
| Descrição | REGEX |
|---|---|
| WhatsApp - Links com número brasileiro | (?:whatsapp\.com\/|wa\.me\/|api\.whatsapp\.com\/send\?phone=)(?:\+?55)?\s?\(?\d{2}\)?\s?9?\d{4}[-\s]?\d{4} |
| Telegram - Links e usernames | (?:t\.me\/|telegram\.me\/|telegram\.dog\/)([a-zA-Z0-9_]{5,32}) |
| Instagram - Perfis | instagram\.com\/(?!p\/|reel\/|reels\/|stories\/|explore\/|tv\/)([A-Za-z0-9_.]{1,30}) |
| Twitter/X - Perfis | (?:twitter\.com|x\.com)\/(?!status\/|i\/|search|hashtag\/|home)([A-Za-z0-9_]{1,15}) |
| Facebook - Perfis | (?:facebook\.com\/|fb\.com\/)([a-zA-Z0-9\.]{5,}) |
| LinkedIn - Perfis | (?:linkedin\.com\/in\/)([a-zA-Z0-9\-]{3,100}) |
| TikTok - Perfis | (?:tiktok\.com\/@)([a-zA-Z0-9_\.]{2,24}) |
| YouTube - Canais e usuários | (?:youtube\.com\/(?:@|c\/|user\/|channel\/)|youtu\.be\/)([A-Za-z0-9_-]{1,}) |
| WhatsApp - Convite de grupo | chat\.whatsapp\.com\/(?:invite\/)?[A-Za-z0-9]{20,24} |
| Telegram - Convite de canal ou grupo privado | t\.me\/(?:joinchat\/|\+)[A-Za-z0-9_-]{16,} |
| Discord - Convite de servidor | (?:discord\.gg|discord(?:app)?\.com\/invite)\/[A-Za-z0-9-]{2,32} |
| GitHub - Perfis e organizações | github\.com\/(?!orgs\/|topics\/|search|features\/)([A-Za-z0-9-]{1,39})\b |
| Reddit - Perfis | reddit\.com\/(?:user|u)\/([A-Za-z0-9_-]{3,20}) |
| Bluesky - Perfis | bsky\.app\/profile\/([A-Za-z0-9.-]{3,253}) |
| Threads - Perfis | threads\.(?:net|com)\/@([A-Za-z0-9_.]{1,30}) |
| Twitch - Canais | twitch\.tv\/(?!videos\/|directory\/)([A-Za-z0-9_]{4,25}) |
| Kwai - Perfis | (?:kwai\.com|kwai-video\.com)\/@?([A-Za-z0-9_.-]{3,30}) |
| Descrição | REGEX |
|---|---|
| Coordenadas GPS (latitude, longitude) - formato decimal | [-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?) |
| Google Plus Code (Open Location Code) | \b[23456789CFGHJMPQRVWX]{4,8}\+[23456789CFGHJMPQRVWX]{2,3}\b |
| Coordenadas em graus, minutos e segundos (DMS) | \d{1,3}[°º]\s?\d{1,2}['′]\s?\d{1,2}(?:[.,]\d+)?[\"″]?\s?[NSLWEO] |
| Descrição | REGEX |
|---|---|
| Chassis (VIN) - Número de identificação do veículo (17 caracteres) | ^[A-HJ-NPR-Z0-9]{17}$ |
| ANTT - Registro de transportador | \b\d{8}\b |
| SUFRAMA - Superintendência da Zona Franca de Manaus | \d{2}\.\d{3}\.\d{3}\/\d{4} |
| CAGED - Cadastro Geral de Empregados e Desempregados (precedido do rótulo) | (?:CAGED|caged)[\s.:nº°-]{0,6}(\d{7})\b |
| CAEPF - Cadastro de Atividade Econômica da Pessoa Física | \d{3}\.\d{3}\.\d{3}\-\d{2}\/\d{2} |
| ENEM - Número de inscrição (12 dígitos) | \d{12} |
| Registro Profissional - CREA, CRO, CRC, COREN, etc | \b(CR[A-Z]{1,3})\s?\d{4,10}[\/\-]?[A-Z]{2}\b |
| Descrição | REGEX |
|---|---|
| NIS - Número de Identificação Social | \b\d{3}\.\d{5}\.\d{2}-\d{1}\b |
| Certidão (Nascimento/Casamento) - Formato nacional unificado | \d{6}\s\d{2}\s\d{2}\s\d{4}\s\d{1}\s\d{5}\s\d{3}\s\d{7}-\d{2} |
| Descrição | REGEX |
|---|---|
| SWIFT/BIC - Código para transferências internacionais | ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$ |
| IBAN - International Bank Account Number | ^[A-Z]{2}\d{2}[A-Z0-9]{1,30}$ |
| Descrição | REGEX |
|---|---|
| Hash MD5 - 32 caracteres hexadecimais | \b[a-fA-F0-9]{32}\b |
| Hash SHA-1 - 40 caracteres hexadecimais | \b[a-fA-F0-9]{40}\b |
| Hash SHA-256 - 64 caracteres hexadecimais | \b[a-fA-F0-9]{64}\b |
| JWT Token - JSON Web Token | eyJ[A-Za-z0-9\-_=]+\.eyJ[A-Za-z0-9\-_=]+\.[A-Za-z0-9\-_.+\/=]* |
| Hash bcrypt | \$2[aby]?\$\d{2}\$[.\/A-Za-z0-9]{53} |
| Hash SHA-512 - 128 caracteres hexadecimais | \b[a-fA-F0-9]{128}\b |
Padrões para varredura de segredos expostos em código, logs e dumps. Inclui gateways de pagamento brasileiros (Mercado Pago, Pagar.me, Asaas).
| Descrição | REGEX |
|---|---|
| AWS Access Key ID | (?:A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16} |
| AWS Secret Access Key | (?i)aws(.{0,20})?['"][0-9a-zA-Z\/+]{40}['"] |
| Google API Key | AIza[0-9A-Za-z\-_]{35} |
| Google Captcha Key | 6L[0-9A-Za-z\-_]{38}|^6[0-9a-zA-Z_-]{39}$ |
| Google OAuth Token | ya29\.[0-9A-Za-z\-_]+ |
| Firebase Secret | AAAA[A-Za-z0-9_-]{7}:[A-Za-z0-9_-]{140} |
| GitHub Personal Access Token | ghp_[0-9a-zA-Z]{36} |
| GitHub Fine-Grained Token | github_pat_[0-9a-zA-Z_]{20,} |
| GitHub OAuth Access Token | gho_[0-9a-zA-Z]{36} |
| GitHub OAuth App Secret | (?i)(?:github|gh)(?:.{0,20})?['\"][a-f0-9]{40}['\"] |
| GitLab Personal Access Token | glpat-[0-9a-zA-Z\-_]{20} |
| GitLab Runner Token | glrt-[a-zA-Z0-9_\-]{20} |
| Slack Token | xox[baprs]-([0-9a-zA-Z]{10,48})? |
| Stripe Secret Key (Live) | sk_live_[0-9a-zA-Z]{24} |
| Stripe Publishable Key (Live) | pk_live_[0-9a-zA-Z]{24} |
| Stripe Secret Key (Test) | sk_test_[0-9a-zA-Z]{24} |
| Stripe Restricted Key | rk_live_[0-9a-zA-Z]{24} |
| Twilio API Key | SK[0-9a-fA-F]{32} |
| Twilio Account SID | AC[a-zA-Z0-9_\-]{32} |
| Telegram Bot Token | \d{9}:[a-zA-Z0-9_\-]{35} |
| SendGrid API Key | SG\.[\w\d\-_]{22}\.[\w\d\-_]{43} |
| Mailgun API Key | key-[0-9a-zA-Z]{32} |
| Dropbox Access Token | sl\.[A-Za-z0-9_\-]{20,100} |
| Shopify Access Token | shpat_[0-9a-fA-F]{32} |
| Shopify Shared Secret | shpss_[0-9a-fA-F]{32} |
| Facebook Access Token | EAACEdEose0cBA[0-9A-Za-z]+ |
| Heroku API Key | [hH]eroku['"][0-9a-f]{32}['"] |
| DigitalOcean Token | dop_v1_[a-z0-9]{64} |
| Asana Personal Access Token | 0\/[0-9a-z]{32} |
| Linear API Key | lin_api_[a-zA-Z0-9]{40} |
| OAuth Client Secret | (?i)client_secret['"]\s*[:=]\s*['"][a-zA-Z0-9\-_.~]{10,100}['"] |
| OAuth Client ID | (?i)client_id['"]\s*[:=]\s*['"][a-zA-Z0-9\-_.~]{10,100}['"] |
| Azure Client Secret | (?i)azure(.{0,20})?client.secret(.{0,20})?['"][a-zA-Z0-9._%+-]{32,}['"] |
| Microsoft Teams Webhook | https:\/\/[a-z]+\.webhook\.office\.com\/webhookb2\/[a-zA-Z0-9@\-]+\/.* |
| Authorization Bearer Token | Bearer\s+[a-zA-Z0-9\-._~+\/]+=* |
| CircleCI Token | circle-token=[a-z0-9]{40} |
| Travis CI Token | (?i)travis(.{0,20})?token['"]\s*[:=]\s*['"][a-z0-9]{30,}['"] |
| Jenkins Crumb Token | Jenkins-Crumb:\s*[a-z0-9]{30,} |
| Azure DevOps Token | (?i)(?:azure|devops|vsts)(?:.{0,20})?['\"][a-z0-9]{52}['\"] |
| Bitbucket OAuth Key | (?i)bitbucket(.{0,20})?key['"]\s*[:=]\s*['"][a-zA-Z0-9]{20,}['"] |
| Bitbucket OAuth Secret | (?i)bitbucket(.{0,20})?secret['"]\s*[:=]\s*['"][a-zA-Z0-9]{20,}['"] |
| Netlify Access Token | netlifyAuthToken\s*=\s*['"][a-z0-9]{40}['"] |
| Bugsnag API Key | (?i)bugsnag(?:.{0,20})?['\"][a-f0-9]{32}['\"] |
| Datadog API Key | (?i)datadog(?:.{0,20})?['\"][a-z0-9]{32}['\"] |
| Loggly Token | [a-z0-9]{30}-[a-z0-9]{10} |
| New Relic Key | NRII-[a-zA-Z0-9]{20,} |
| Mixpanel Token | (?i)mixpanel(.{0,20})?token['"]\s*[:=]\s*['"][a-z0-9]{32}['"] |
| Heap Analytics App ID | heapSettings\.appId\s*=\s*['"][a-z0-9]{8,12}['"] |
| Keen IO Project ID | projectId['"]?\s*:\s*['"][a-f0-9]{24}['"] |
| Keen IO Write Key | writeKey['"]?\s*:\s*['"][a-zA-Z0-9]{64}['"] |
| Snyk Token | snyk_token\s*=\s*[a-f0-9\-]{36} |
| Rollbar Access Token | access_token['"]?\s*:\s*['"][a-z0-9]{32}['"] |
| Twitch API Key | (?i)twitch(.{0,20})?key['"]\s*[:=]\s*['"][a-zA-Z0-9]{20,}['"] |
| Discord Bot Token | [MN][A-Za-z\d]{23}\.[\w\-]{6}\.[\w\-]{27} |
| Discord Webhook URL | https:\/\/discord(?:app)?\.com\/api\/webhooks\/[0-9]+\/[a-zA-Z0-9_\-]+ |
| Steam Web API Key | (?i)steam(.{0,20})?key['"]\s*[:=]\s*['"][a-zA-Z0-9]{32}['"] |
| Riot Games API Key | RGAPI-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12} |
| Algolia API Key | (?i)(algolia|application)_?key['"]\s*[:=]\s*['"][a-zA-Z0-9]{10,}['"] |
| Firebase API Key (Config) | firebaseConfig\s*=\s*{[^}]*apiKey\s*:\s*['"][^'"]+['"] |
| Cloudinary URL | cloudinary:\/\/[0-9]{15}:[a-zA-Z0-9]+@[a-zA-Z]+ |
| Sentry DSN | https:\/\/[a-zA-Z0-9]+@[a-z]+\.ingest\.sentry\.io\/\d+ |
| Segment API Key | (?i)segment(.{0,20})?key['"]\s*[:=]\s*['"][a-zA-Z0-9]{10,}['"] |
| Intercom Access Token | (?i)intercom(.{0,20})?token['"]\s*[:=]\s*['"][a-zA-Z0-9\-_]{20,}['"] |
| Amplitude API Key | apiKey['"]?\s*:\s*['"][a-z0-9\-]{32,64}['"] |
| Plaid Client Secret | plaid(.{0,20})?(client)?secret['"]\s*[:=]\s*['"][a-z0-9\-_]{30,}['"] |
| AWS MWS Token | amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} |
| OpenAI API Key | \bsk-(?:proj-)?[A-Za-z0-9_-]{32,}\b |
| Anthropic API Key | \bsk-ant-api03-[A-Za-z0-9_-]{80,}\b |
| Hugging Face Token | \bhf_[A-Za-z0-9]{34}\b |
| npm Access Token | \bnpm_[A-Za-z0-9]{36}\b |
| Slack Webhook URL | https:\/\/hooks\.slack\.com\/services\/T[A-Za-z0-9_]+\/B[A-Za-z0-9_]+\/[A-Za-z0-9]{24} |
| Google Service Account (JSON) | \"type\"\s*:\s*\"service_account\" |
| Grafana Service Account Token | \bglsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8}\b |
| Databricks Token | \bdapi[a-f0-9]{32}\b |
| Mercado Pago Access Token | \bAPP_USR-\d{16,}-\d{6}-[a-f0-9]{32}-\d{6,}\b |
| Pagar.me API Key | \b(?:ak|sk)_(?:live|test)_[A-Za-z0-9]{30,}\b |
| Asaas API Key | \$aact_[A-Za-z0-9_=\-]{80,} |
| Descrição | REGEX |
|---|---|
| MongoDB Connection URI | mongodb(\+srv)?:\/\/[^\s'"]+ |
| PostgreSQL URI | postgres(ql)?:\/\/[^\s'"]+ |
| MySQL URI | mysql:\/\/[^\s'"]+ |
| Redis URI | redis:\/\/[^\s'"]+ |
| Elasticsearch URI | elasticsearch:\/\/[^\s'"]+ |
| Supabase DB Key | supabase\.co\/[a-z0-9]{15,} |
| Firebase URL | https:\/\/[a-z0-9\-]+\.firebaseio\.com |
| JDBC URL | jdbc:\w+:\/\/[^\s'"]+ |
| AWS RDS Hostname | [a-z0-9\-]+\.rds\.amazonaws\.com |
| Cloud SQL URI (GCP) | googleapis\.com\/sql\/v1beta4\/projects\/ |
| Docker Hub Password | (?i)docker(.{0,20})?password['"]\s*[:=]\s*['"][^\s'"]{8,}['"] |
| AWS IAM Role ARN | arn:aws:iam::[0-9]{12}:role\/[A-Za-z0-9_+=,.@\-_\/]+ |
| AWS S3 Bucket URL | s3:\/\/[a-z0-9\-\.]{3,63} |
| Kubernetes Secret Name | (?i)secretName:\s*['"]?[a-z0-9\-]+['"]? |
| Helm Secret Value | (?i)secret\s*:\s*['"][^'"]+['"] |
| GitHub Actions Secret Reference | \$\{\{\s*secrets\.[A-Z0-9_]+\s*\}\} |
| GitHub Actions Encrypted Value | encrypted_value:\s*['"][a-zA-Z0-9+\/=]{10,}['"] |
| K8s Service Account Token | eyJhbGciOiJSUzI1NiIsImtpZCI6 |
| Vault Token | (?i)vault(?:.{0,20})?['\"]s\.[a-zA-Z0-9]{24,}['\"] |
| Hashicorp Vault URL | https:\/\/vault\.[a-z0-9\-_\.]+\.com |
| Descrição | REGEX |
|---|---|
| RSA Private Key | -----BEGIN RSA PRIVATE KEY----- |
| DSA Private Key | -----BEGIN DSA PRIVATE KEY----- |
| EC Private Key | -----BEGIN EC PRIVATE KEY----- |
| OpenSSH Private Key | -----BEGIN OPENSSH PRIVATE KEY----- |
| PGP Private Key Block | -----BEGIN PGP PRIVATE KEY BLOCK----- |
| PEM Certificate | -----BEGIN CERTIFICATE----- |
| Descrição | REGEX |
|---|---|
| Password Assignment | (?i)(password|passwd|pwd)['"]\s*[:=]\s*['"][^'"]{4,}['"] |
| API Key in Variable | (?i)(api[_\-]?key)['"]\s*[:=]\s*['"][a-zA-Z0-9\-_.]{8,100}['"] |
| Secret in Variable | (?i)(secret|token)['"]\s*[:=]\s*['"][a-zA-Z0-9\-_.]{8,100}['"] |
| Basic Auth String | (?i)(username|user|email)['"]\s*[:=]\s*['"][^\s'"@]{1,100}['"].*?(password|pwd)['"]\s*[:=]\s*['"][^\s'"]{4,100}['"] |
| Base64 High Entropy String | ['"][A-Za-z0-9+\/]{40,}={0,2}['"] |
| Session ID | (?i)sessionid['"]\s*[:=]\s*['"][a-zA-Z0-9]{10,}['"] |
| Cookie Name Generic | (?i)set-cookie:\s*[a-zA-Z0-9_\-]+= |
| CSRF Token | (?i)csrf(token)?['"]\s*[:=]\s*['"][a-zA-Z0-9\-_]{8,}['"] |
| JWT in Local Storage | localStorage\.setItem\(['"]token['"],\s*['"]eyJ[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+['"]\) |
| Private IP (Internal) | \b(10\.\d{1,3}|\b192\.168|\b172\.(1[6-9]|2\d|3[01]))\.\d{1,3}\.\d{1,3} |
| Localhost Reference | localhost:[0-9]{2,5} |
| Dev/Stage URL | (dev|staging|test)\.[a-z0-9.\-]+\.(com|net|io) |
| Internal Subdomain URL | https?:\/\/[a-z0-9.\-]+\.internal\.[a-z]{2,} |
| Preprod URLs | https:\/\/preprod\.[a-z0-9\-]+\.[a-z]{2,} |
Este projeto está licenciado sob: veja o arquivo LICENSE para detalhes.
MrCl0wn
- 🌐 Blog: http://blog.mrcl0wn.com
- 🐙 GitHub: @MrCl0wnLab
- 🐦 Twitter: @MrCl0wnLab
- 📧 Email: mrcl0wnlab@\gmail.com
Contribuições de qualquer tipo são bem-vindas!
⭐ Se este projeto foi útil, considere dar uma estrela!
💡 Sugestões e feedback são sempre bem-vindos!
💀 Hacker Hackeia!

