Compartilhe

Guia Definitivo da Metodologia de Reconhecimento D4RK INTEL's avatar

GITHUB OSINT

O Guia Definitivo da Metodologia de Reconhecimento

Índice

  1. Introdução: GitHub como uma mina de ouro de OSINT

  2. Estrutura Metodológica

  3. Descoberta de usuários e organizações

  4. Coleta de informações do repositório

  5. Técnicas avançadas de busca de código

  6. Análise de metadados e dados históricos

  7. Comandos de investigação rápida

  8. Métodos de detecção da data de criação da conta do GitHub

  9. Ferramentas automatizadas de reconhecimento

  10. Considerações Legais e Éticas

  11. Estudos de caso e exemplos do mundo real

  12. Melhores Práticas e Relatórios


1. Introdução: GitHub como uma mina de ouro de OSINT

Obrigado por ler o Substack do D4RK! Inscreva-se gratuitamente para receber novas publicações e apoiar meu trabalho.

O GitHub evoluiu de um simples repositório de código para uma presença digital abrangente de organizações e indivíduos. Para investigadores de OSINT (Inteligência de Fontes Abertas), representa uma fonte de inteligência incomparável, contendo:

  • Detalhes da infraestrutura técnica

  • Informações sobre funcionários e estrutura organizacional

  • Metodologias de desenvolvimento e conjuntos de tecnologias

  • Exposições acidentais de dados sensíveis

  • Mudanças históricas e evolução do projeto

  • Redes de colaboração e parcerias

A extensa API e os recursos de busca da plataforma a tornam um componente essencial das investigações digitais modernas.


2. Estrutura Metodológica

Abordagem de Reconhecimento Sistemático

Fase 1 : Identificação do Alvo
Fase 2 : Perfil do Usuário e da Organização
Fase 3 : Enumeração do Repositório
Fase 4 : Análise de Código e Reconhecimento de Padrões
Fase 5 : Coleta de Metadados
Fase 6 : Correlação e Análise
Fase 7 : Relatórios e Documentação


Descoberta de usuários e organizações

Inteligência do usuário individual

Informações básicas do perfil:

Endpoint da API para dados do usuário

Retorna um perfil completo, incluindo :

- Nome, biografia, localização, empresa
- Número de repositórios públicos
- Redes de seguidores/seguidos
- Data de criação da conta
- Links de redes sociais
- Disponibilidade para contratação

Exemplos:

Investigação de usuários aprimorada:

Enumeração do repositório:

Mapeamento de conexões sociais:

Cronograma de atividades:

Investigação geral :


Coleta de Inteligência Organizacional

Análise da Estrutura da Empresa:

Perfil da organização:

Lista de membros da equipe:

Portfólio do repositório:

Estrutura da equipe:

Requer autenticação


Análises Organizacionais Avançadas:

  • Contagem de funcionários e funções por meio de padrões de compromisso

  • Estrutura e hierarquia da equipe de desenvolvimento

  • Preferências de conjunto de tecnologias

  • Metodologias de gestão de projetos

  • Colaborações e parcerias externas


4. Coleta de Inteligência de Repositório “inteligência de repositório”

Análise abrangente do repositório

Pesquisa básica no repositório:

Descoberta de repositórios baseada em palavras-chave:

Retorna informações essenciais :
- Nomes e descrições dos repositórios
- Principais linguagens de programação
- Contagem de estrelas e forks (indicadores de popularidade)
- Data e hora da última atualização
- Informações de licença
- Contagem de problemas em aberto

Enumeração do conteúdo do repositório:

# Directory structure exploration:
https://api.github.com/repos/[owner]/[repo]/contents
Branch analysis:
https://api.github.com/repos/[owner]/[repo]/branches 

Contributor identification:
https://api.github.com/repos/[owner]/[repo]/contributors

Release history:
https://api.github.com/repos/[owner]/[repo]/releases

Exploração da estrutura de diretórios :

Elementos críticos do repositório a serem examinados

  • Arquivos de configuração ( .env, config.json, settings.py )

  • Documentação ( README.md, especificações técnicas )

  • Pipelines de CI/CD ( .github/workflows, .gitlab-ci.yml )

  • Arquivos de dependência ( package.json, requirements.txt )

  • Esquemas de banco de dados e scripts de migração

  • Documentação da API e exemplos de integração

5. Técnicas avançadas de busca de código

Operadores de Busca de Precisão

Busca direcionada a um alvo específico :

User/Organization targeting

user:[username] [search_term]
org:[orgname] [search_term]
repo:[owner/repo] [search_term]
Example: Search for API keys in specific organization

org:targetcorp “api_key”

  • usuário:d4rk_intel “webrecon”

Coleta de informações baseada em arquivos:

File extension filtering:

extension:env “DATABASE_URL”
extension:json “password”
extension:yml “secret”
extension:pem “PRIVATE KEY”
Filename pattern matching:

filename:.env.example
filename:config.xml
filename:docker-compose.yml
filename:travis.yml

Path-specific searching:

path:.github/workflows
path:src/config
path:database

Padrões de descoberta de dados sensíveis

Credenciais e autenticação :

API keys and tokens:

“api_key”, “apikey”, “api-key”
“secret”, “password”, “token”, “auth”
“aws_access_key”, “aws_secret”
“ghp_”, “xoxb-”, “sk-”
Database connections:

“DATABASE_URL”, “DB_PASSWORD”
“MONGODB_URI”, “REDIS_URL

OAuth and social media:

“FACEBOOK_APP_SECRET”, “TWITTER_API_KEY”
“GOOGLE_CLIENT_SECRET”

Exposição da infraestrutura:

Cloud service configurations:

AWS Key pattern
“AKIA[0-9A-Z]{16}” 

“herokuapp.com”
“firebaseio.com”
Internal network references:

“192.168.”, “10.”, “172.16.”
“internal”, “localhost”, “staging”

6. Metadados e Análise Histórica “análise de metadados”

Investigação de histórico de crimes

Extração e atribuição de e-mails :

Extrair e-mails de commit de repositórios:

Plataforma avançada de inteligência de e-mail:

  • https://ghintel.secrets.ninja/

Análise de padrões históricos:

  • Horário e padrões de trabalho da equipe de desenvolvimento

  • Cronograma dos principais marcos do projeto

  • Áreas de propriedade e responsabilidade do código

  • Mesclar padrões e processos de revisão

Análise de ramificação e bifurcação

Mapeamento de Redes Bifurcadas :

  • Identificar cópias internas de projetos externos

  • Rastrear a reutilização de código em toda a organização.

  • Descubra espelhos e backups não oficiais

Análises de Estratégia de Agências :

  • Compreensão do fluxo de trabalho de desenvolvimento

  • Cronograma de desenvolvimento de funcionalidades

  • Padrões de preparação para lançamento


7. Ferramentas automatizadas de reconhecimento “ferramentas automatizadas”

Ferramentas OSINT especializadas do GitHub

Verificação de credenciais :

TruffleHog -h 

Gitleaks - Pattern-based detection:

gitleaks detect --source=/path/to/repo -v

GitRob - Comprehensive repository analysis:

gitrob target-organization
GitRecon -h

8. Comandos de Investigação Rápida

1. Reconhecimento de perfil:

curl -s "https://api.github.com/users/Techenthusiast167" | jq '. | {nome, empresa, localização, repositórios_públicos}'

2. Varredura do repositório: trufflehog git https://github.com/Techenthusiast167 --json --verify > techenthusiast_scan.json 3. Busca de código:




código de pesquisa gh “filename:.env password” --owner=Techenthusiast1674. Análise de Rede gh api users/Techenthusiast167/following | jq '.[].login'

  • Reconhecimento de perfil


9. Métodos de detecção da data de criação da conta do GitHub

Método 1: Chamada direta à API (Método principal)

Endpoint da API

Exemplo para o nosso alvo:

A resposta inclui JSON :


  “login”: “Techenthusiast167”,
  “id”: 123456789,
  “node_id”: “...”,
  “avatar_url”: “...”,
  “gravatar_id”: “”,
  “url”: “https://api.github.com/users/Techenthusiast167”,
  “html_url”: “https://github.com/Techenthusiast167”,
  “created_at”: “2020-05-15T10:30:00Z”,
  “updated_at”: “2024-01-20T08:45:00Z”

Método 2: Usando a CLI do GitHub

Install GitHub CLI first

gh auth login
Get user info with creation date:gh api users/Techenthusiast167 | jq ‘.created_at’# Full user details

gh api users/Techenthusiast167 --jq ‘. | {username: .login, created_at: .created_at, public_repos: .public_repos}’

Equivalente a curvatura direta

Informações básicas do usuário com data de criação

Simple curl request

curl -s “https://api.github.com/users/Techenthusiast167”

Filter specific fields using jq

curl -s "https://api.github.com/users/Techenthusiast167" | jq '{username: .login, created_at: .created_at, public_repos: .public_repos}'

Or extract individual fields

curl -s "https://api.github.com/users/Techenthusiast167" | jq '.created_at'

curl -s "https://api.github.com/users/Techenthusiast167" | jq '.login'

curl -s "https://api.github.com/users/Techenthusiast167" | jq '.public_repos'

Com autenticação (limites de taxa mais altos)

Using personal access token

curl -H “Authorization: token ghp_your_token_here” \
  -s “https://api.github.com/users/Techenthusiast167” | jq ‘.created_at’
Or using GitHub CLI token (if installed)

curl -H “Authorization: token $(gh auth token)” \
  -s “https://api.github.com/users/Techenthusiast167” | jq ‘.created_at’

Exemplos completos de cachos

Exemplo 1: Obter apenas a data de criação da conta

curl -s “https://api.github.com/users/Techenthusiast167” | jq -r ‘.created_at’

Exemplo 2: Informações da conta formatadas

curl -s "https://api.github.com/users/Techenthusiast167" | \
jq -r '"Nome de usuário: \(.login)\nCriado em: \(.created_at)\nRepositórios: \(.public_repos)\nSeguidores: \(.followers)"'

Exemplo 3: Calcular a idade da conta

Obtenha a data de criação e calcule a idade em dias.


creation_date=$(curl -s "https://api.github.com/users/Techenthusiast167" | jq -r '.created_at')
account_age=$(( ($(date +%s) - $(date -d "$creation_date" +%s)) / 86400 ))
echo "Idade da conta: $account_age dias"

Exemplo 4: Instantâneo completo do perfil

curl -s “https://api.github.com/users/Techenthusiast167” | \
jq 

  username: .login,
  name: .name,
  company: .company,
  location: .location,
  email: .email,
  blog: .blog,
  bio: .bio,
  account_created: .created_at,
  account_updated: .updated_at,
  public_repos: .public_repos,
  public_gists: .public_gists,
  followers: .followers,
  following: .following,
  hireable: .hireable

Verificação em lote de vários usuários

Check multiple accounts

usernames=(”Techenthusiast167” “octocat” “torvalds”)

for user in “${usernames[@]}”; do
    echo -n “$user: “
    curl -s “https://api.github.com/users/$user” | jq -r ‘.created_at’
    sleep 1  # Rate limit respect
done

Salvar em arquivo com carimbo de data/hora

Salvar perfil completo com registro de data e hora:


curl -s "https://api.github.com/users/Techenthusiast167" | \
jq --arg date "$(date -Iseconds)" '. + {investigation_date: $date}' > techenthusiast167_profile_$(date +%Y%m%d_%H%M%S).json

Frases curtas

Obtenha apenas a data de criação :

curl -s “https://api.github.com/users/Techenthusiast167” | jq -r ‘.created_at’

Verificar se o usuário existe e obter a data de criação:

curl -s -o -w "%{http_code}" "https://api.github.com/users/Techenthusiast167" && curl -s "https://api.github.com/users/Techenthusiast167" | jq '.created_at'

Na verdade, essa curl + jqcombinação é mais universal do que o GitHub CLI, pois funciona em qualquer sistema com essas ferramentas básicas instaladas e não exige autenticação adicional para consultas básicas de perfis públicos.


10. Considerações Legais e Éticas “Legal-éticas”

Estrutura de Conformidade

  • Requisitos de autorização: Certifique-se sempre de possuir a devida autorização legal.

  • Respeito aos limites de taxa: siga as políticas de uso da API do GitHub.

  • Tratamento de dados: armazenamento e processamento seguros das informações coletadas.

  • Protocolos de divulgação: Siga as diretrizes de divulgação responsável para vulnerabilidades encontradas.

Limites Éticos

  • Acesse somente informações disponíveis publicamente.

  • Respeite as configurações de privacidade da organização.

  • Evite técnicas de digitalização disruptivas.

  • Manter o sigilo profissional

11. Estudos de Caso e Exemplos do Mundo Real “estudos de caso”

Cenários de Resposta a Incidentes

Estudo de Caso 1: Exposição Acidental de Credenciais

  • O desenvolvedor envia as chaves da AWS para o repositório público.

  • A investigação OSINT identificou a exposição em 2 horas.

  • Resposta rápida evita comprometimento da infraestrutura em nuvem

Estudo de Caso 2: Identificação de Ameaças Internas

  • Cópia de código não autorizada detectada por meio de análise de fork.

  • Avaliação do risco de saída de funcionários por meio de alterações no padrão de compromisso.

  • Medidas proativas implementadas com base em informações de inteligência.

12. Melhores Práticas e “Práticas” de Relatórios

Documentação da investigação

Formato de relatório padronizado :

  • Resumo executivo das conclusões

  • Evidências técnicas detalhadas

  • Avaliação de riscos e análise de impacto

  • Estratégias de mitigação recomendadas

  • Artefatos e referências de apoio

Padrões profissionais

  • Mantenha anotações detalhadas da investigação.

  • Valide as descobertas por meio de múltiplas fontes.

  • Correlacione informações do GitHub com outros dados de OSINT.

  • Apresente as conclusões em formatos claros e acionáveis.

Este guia representa os padrões profissionais para investigações OSINT no GitHub . Sempre opere dentro dos limites legais e respeite os termos de serviço da plataforma ao realizar atividades de reconhecimento .

Comentários

Como usar um Agente OSINT IA

Pericia Digital

Ebook

Postagens mais visitadas