Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
impersonate-proxy — Um proxy MITM local que permite controlar fingerprints de TLS (JA3/JA4), fingerprints de HTTP/2, a ordem dos cabeçalhos HTTP e o User-Agent — tudo a partir de um único arquivo de configuração YAML. | Kitploit
Ferramentas/GitHubGitHub/ytkoka/impersonate-proxy
Proxies Web e InterceptaçãoFerramentas de ImpersonaçãoBypass de WAFTestes de PenetraçãoRed TeamingFalsificação de Impressão Digital
GitHubytkoka/impersonate-proxy

impersonate-proxy

Um proxy MITM local que permite controlar fingerprints de TLS (JA3/JA4), fingerprints de HTTP/2, a ordem dos cabeçalhos HTTP e o User-Agent — tudo a partir de um único arquivo de configuração YAML.

Ver Repositório
41271há 8 diasRevisado 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 →
Site
Compartilhar

impersonate-proxy

Chrome Web Store

Inglês | 日本語 | 简体中文

Um proxy MITM local que permite controlar impressões digitais TLS (JA3/JA4), impressões digitais HTTP/2, a ordem dos cabeçalhos HTTP, o User-Agent e os cabeçalhos de IP de origem — tudo a partir de um único arquivo de configuração YAML.

Uma extensão do Chrome está incluída para alternar o proxy e trocar perfis de impressão digital diretamente da barra de ferramentas do navegador, sem reiniciar o proxy.

Destinado a testes de segurança autorizados de sistemas de detecção de bots em WAFs. Encaminhe curl, navegadores ou Playwright através do proxy para observar como diferentes combinações de impressões digitais são classificadas.

Como funciona

curl / browser / Playwright
        │  HTTP CONNECT (to proxy)
        ▼
┌─────────────────────────────────────────┐
│            impersonate-proxy            │
│                                         │
│  MITM TLS ◄──────────────► uTLS         │
│  (our CA cert)          (custom JA3/4)  │
│                                         │
│  Header rewriter (UA, order, add/del)   │
│  HTTP/2 framer  (SETTINGS, WINDOW_UPDATE│
│                  pseudo-header order)   │
└─────────────────────────────────────────┘
        │  Custom TLS ClientHello + HTTP/2
        ▼
   Target server / WAF
CamadaO que você pode controlar
TLSConjuntos de cifras, extensões, sua ordem (JA3 / JA4) via presets uTLS ou uma especificação custom_hello totalmente personalizada
HTTP/1.1Ordem dos cabeçalhos, User-Agent, adicionar/remover qualquer cabeçalho, falsificação de IP (X-Forwarded-For / True-Client-IP)
HTTP/2Valores e ordem de SETTINGS, WINDOW_UPDATE, ordem dos pseudo-cabeçalhos (fingerprint HTTP/2)

Pré-requisitos

  • macOS ou Linux (amd64 / arm64)
  • Go 1.22+

macOS

brew install go

Linux

O Go empacotado pela distro costuma estar desatualizado. Instale o binário oficial diretamente:

# Download and extract (replace 1.22.5 with the latest from https://go.dev/dl/)
curl -OL https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz

# Add to PATH (add this line to ~/.bashrc or ~/.zshrc to make it permanent)
export PATH=$PATH:/usr/local/go/bin

Verificar:

go version
# go version go1.22.5 linux/amd64

ARM64 (Raspberry Pi, AWS Graviton, etc.): substitua linux-amd64 por linux-arm64 na URL de download.

Docker (sem necessidade de toolchain Go)

Prefere um ambiente descartável em vez de instalar o Go? Vá direto para Docker.

Configuração

1. Clonar e compilar

git clone https://github.com/ytkoka/impersonate-proxy.git
cd impersonate-proxy
make build

2. Gerar o certificado CA do MITM

A CA é gerada automaticamente na primeira execução. Inicie o proxy uma vez para criar ca.crt e ca.key:

make run
# 2026/04/22 12:00:00 generated CA certificate → ca.crt
# 2026/04/22 12:00:00 listening on 127.0.0.1:8080  preset=chrome

Pare com Ctrl-C.

3. Confie no certificado CA

Os clientes precisam confiar na sua CA MITM para que não rejeitem os certificados folha gerados pelo proxy.

Keychain do sistema macOS (afeta todos os aplicativos):

make trust-ca        # runs: sudo security add-trusted-cert ...

Confiança do sistema Linux (afeta todos os aplicativos; requer o pacote ca-certificates):

# Debian / Ubuntu
sudo cp ca.crt /usr/local/share/ca-certificates/impersonate-proxy.crt
sudo update-ca-certificates

# RHEL / Fedora / Amazon Linux
sudo cp ca.crt /etc/pki/ca-trust/source/anchors/impersonate-proxy.crt
sudo update-ca-trust

somente curl (sem alteração em todo o sistema):

curl --cacert ca.crt ...

Playwright / Node.js:

export NODE_EXTRA_CA_CERTS="$(pwd)/ca.crt"

Firefox: Preferências → Privacidade e Segurança → Ver Certificados → Autoridades → Importar ca.crt

Docker

Execute o proxy em um contêiner — não é necessária instalação local de Go/Make.

1. Iniciar o proxy

Somente Linux: o contêiner é executado como um usuário sem privilégios (nonroot, UID 65532) e precisa de acesso de escrita ao diretório ./data que contém o certificado/chave da CA. Se ./data ainda não existir, o Docker o cria automaticamente com proprietário root e sem acesso de escrita para outros usuários, então o contêiner falhará ao gerar a CA na primeira execução. Crie-o com o proprietário correto antecipadamente:

mkdir -p data && sudo chown 65532:65532 data

Não é necessário no Docker Desktop para Mac/Windows — sua camada de bind-mount mapeia a propriedade automaticamente.

git clone https://github.com/ytkoka/impersonate-proxy.git
cd impersonate-proxy
docker compose up -d

Isso compila a imagem localmente e inicia o contêiner. Na primeira execução, gera a CA do MITM e imprime:

impersonate-proxy  | generated CA certificate → /data/ca.crt (add to OS trust store to avoid cert errors)
impersonate-proxy  | listening on 0.0.0.0:8080  preset=chrome

Ou, para executar a imagem pré-construída diretamente sem clonar:

docker run -d --name impersonate-proxy \
  -p 127.0.0.1:8080:8080 -p 127.0.0.1:8081:8081 \
  -v "$(pwd)/config.docker.yaml:/config.yaml:ro" \
  -v "$(pwd)/data:/data" \
  ghcr.io/ytkoka/impersonate-proxy:latest

docker-compose.yml publica ambas as portas apenas em 127.0.0.1 — a mesma exposição somente via loopback de uma instalação nativa (a API de gerenciamento não possui autenticação, portanto não altere isto para 0.0.0.0 sem adicionar seu próprio controle de acesso).

2. Confie no certificado da CA

A CA é gerada dentro do contêiner, mas é persistida em ./data/ca.crt e ./data/ca.key no host por meio do volume montado via bind, de modo que sobrevive a reinicializações/reconstruções do contêiner. Confie nela exatamente como na configuração nativa acima, apenas apontando para ./data/ca.crt em vez de ./ca.crt:

# curl
curl --proxy http://127.0.0.1:8080 --cacert ./data/ca.crt https://tls.peet.ws/api/all

# macOS system keychain
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./data/ca.crt

3. Configurar

Edite config.docker.yaml (não config.yaml — esse arquivo é para a instalação nativa) e reinicie:

docker compose restart

config.docker.yaml é idêntico ao config.yaml, exceto que listen/mgmt_listen são 0.0.0.0 (necessário para que a publicação de portas do Docker consiga alcançar o processo — o 127.0.0.1 do próprio container é inacessível a partir do host) e ca_cert/ca_key apontam para /data, o volume persistido. Consulte Configuration abaixo para todos os campos disponíveis.

Atalhos do Makefile

TargetDescrição
make docker-buildCompila a imagem via docker compose build
make docker-runCompila e inicia em segundo plano
make docker-stopPara e remove o container

Parar / limpar

docker compose down          # stop the container
rm -rf data                  # also remove the persisted CA (re-trust required after)

Configuração

Edite config.yaml antes de iniciar o proxy. Todos os campos têm valores padrão — você só precisa especificar o que deseja substituir.

listen: "127.0.0.1:8080"
mgmt_listen: "127.0.0.1:8081"  # management API used by the Chrome extension (empty to disable)
ca_cert: "ca.crt"
ca_key:  "ca.key"
Baixar ferramenta