Osintgram

Osintgram no Kali Linux: instale, corrija e use

O Osintgram não é empacotado para o Kali Linux, então não existe apt install para ele. Confirmamos isso de quatro maneiras independentes. E como o Kali 2024.4 colocou o pip atrás da PEP 668, a linha de instalação de quase todo tutorial antigo de Kali agora para de imediato com error: externally-managed-environment.

19 min de leituraEquipe Osintgram

Duas características do Kali quebram a instalação do Osintgram, e nenhuma delas é explicada pelas páginas que hoje aparecem no topo dessa busca. As duas surgiram depois que a maioria dessas páginas foi escrita.

A primeira é o empacotamento. O Osintgram não está nos repositórios do Kali, então sudo apt install osintgram não tem como funcionar, por mais blog posts que reproduzam essa linha. A segunda é o pip. Desde o Kali 2024.4 a distribuição segue a PEP 668, então um pip install -r requirements.txt puro, fora de um ambiente virtual, se recusa a rodar e imprime error: externally-managed-environment. Os tutoriais antigos de Kali que ainda aparecem bem posicionados (kalilinuxtutorials, os posts do Medium de 2021, dev.to) entregam exatamente esse comando.

Dois fatos específicos do Kali determinam tudo nesta página. Não existe pacote osintgram: a ferramenta está ausente do catálogo de ferramentas do Kali, do GitLab de empacotamento do Kali e do Debian, então a única via de instalação é o git clone. E o pip está travado: no Kali atual, instalar os requisitos fora de um virtualenv falha com error: externally-managed-environment. A sequência que funciona é clonar, depois python3 -m venv venv, depois pip, nessa ordem.

Esta página cobre apenas as partes específicas do Kali: a realidade do empacotamento, o muro da PEP 668, o problema do Python 3.13, os erros que você vê em um sistema da família Debian e em nenhum outro lugar, e o Termux. O material independente de plataforma (por que um virtualenv, qual versão do Python, como funcionam as credenciais, Windows e Docker) está em como instalar o Osintgram, e esta página deliberadamente não repete nada disso.

O Osintgram está nos repositórios do Kali?

Não. Verificamos quatro fontes independentes em 8 de agosto de 2026; nenhuma delas o lista.

VerificaçãoResultado
kali.org/tools/osintgram/HTTP 404: não existe página da ferramenta
O índice completo de ferramentas do KaliNenhuma entrada osintgram em lugar algum
API do GitLab de empacotamento do Kali, buscando por osintgramRetorna um array vazio
API do Debian sources, buscando por osintgramNenhuma correspondência exata, nenhuma parcial
Quatro verificações de empacotamento, todas feitas em 8 de agosto de 2026.

Um 404 só na página da ferramenta poderia ser uma falha de documentação. Quatro negativas no catálogo de ferramentas, no GitLab de empacotamento e no Debian não são. O projeto concorda por omissão: o README do Datalux/Osintgram documenta exatamente um caminho de instalação, que é um git clone, um virtualenv e pip install -r requirements.txt. Também não existe pacote no PyPI, nem script instalador; setup.sh dá 404 no branch master.

O Kali empacota sim uma ferramenta de Instagram, só que não esta

sudo apt install instaloader funciona, porque o instaloader está no catálogo do Kali sob Identity Information. Ele resolve um problema mais estreito (baixar publicações e metadados de perfil, em vez de rodar um shell de reconhecimento), mas é empacotado, é mantido e cabe em uma linha de apt. Se você chegou aqui porque queria uma ferramenta de Instagram que o Kali instala para você, é essa.

Por que os tutoriais antigos de Kali falham hoje

Duas coisas mudaram no Kali depois que a maioria desses guias foi escrita, e as duas quebram o copiar e colar.

A primeira é a PEP 668, que permite a uma distribuição marcar sua instalação de Python como gerenciada externamente. O Kali documenta o comportamento e as saídas oficiais: um virtualenv, pipx, um pacote apt ou o desencorajado --break-system-packages. Rode a linha de instalação que esses guias dão e o pip para antes de baixar qualquer coisa.

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try
    apt install python3-xyz, where xyz is the package you
    are trying to install.

    If you wish to install a non-Debian-packaged Python
    package, create a virtual environment using
    python3 -m venv path/to/venv.

note: If you believe this is a mistake, please contact your
Python installation or OS distribution provider.
hint: See PEP 668 for the detailed specification.
Resumido da mensagem que o Kali documenta para um pip install em todo o sistema.

Só um desses quatro remédios se aplica ao Osintgram. Não existe pacote apt, como já ficou estabelecido. O pipx instala aplicações Python: ele precisa de algo instalável via pip, e o Osintgram não traz setup.py nem pyproject.toml, então não há nada para o pipx instalar. Sobra o virtualenv, que é o que o README mandava fazer desde o começo.

Não apele para o --break-system-packages

É o único remédio que parece funcionar e depois envenena tudo o que vem em seguida. Ele joga as versões fixadas do Osintgram em ~/.local/lib/python3.x/site-packages/, ao lado das cópias gerenciadas pelo apt, e a colisão aparece mais tarde como ModuleNotFoundError: No module named 'urllib3.packages.six.moves', relatada a partir do Kali na issue #1766, e de novo nas issues #1161 e #2131. Esse caminho ~/.local no traceback é a pista que entrega tudo. Se você já fez isso, limpe esses pacotes antes de montar o venv, ou vai depurar o problema errado.

A segunda mudança é o interpretador. O rastreador de pacotes do Kali lista o python3-defaults em 3.13.9-3 no repositório rolling, ou seja, uma instalação rolling atual roda Python 3.13 por padrão; o Kali 2024.4 foi a versão que mudou o padrão para 3.12, e de lá para cá ele avançou de novo. O Osintgram não foi escrito para isso. O Dockerfile dele ainda fixa python:3.9.2-alpine3.13, uma imagem de março de 2021, o README não indica versão mínima nenhuma, e o requirements.txt fixa três pacotes em releases de 2019 a 2021.

Instalar essas versões fixadas em um virtualenv limpo de Python 3.11 com o pip atual funciona. Nós reproduzimos, e prettytable e hikerapi, que não publicam wheels, compilam a partir do código-fonte sem reclamar. Python 3.9 a 3.11 é a faixa a mirar. No Kali isso normalmente significa aceitar o 3.13 e lidar com as consequências ou, se você tiver um interpretador mais antigo instalado, criar o ambiente explicitamente com ele: python3.11 -m venv venv em vez de python3 -m venv venv.

Guia de Kali bem posicionadoData na páginaO que há de errado com ele hoje
kalilinuxtutorials.comPublicado em 2020-09-04, sem nenhum dateModifiedCerca de 622 palavras. É anterior ao bloqueio da PEP 668, à quebra da API privada do Instagram e ao backend HikerAPI. O título dele ainda diz 2020.
guidetolinux.com2025-01-01Manda você rodar nano config.py. Não existe esse arquivo para editar: as credenciais ficam em config/credentials.ini. Ele também roda python3 main.py sem nome de usuário, o que o argparse rejeita.
Tutoriais variados no Medium e no dev.toDe 2021 em dianteMandam rodar pip3 install -r requirements.txt em todo o sistema, que é exatamente o comando que a PEP 668 agora bloqueia.
Verificado em 8 de agosto de 2026. As datas são as que as próprias páginas publicam.

Nada disso é uma alfinetada nesses autores; um guia de 2020 estava correto em 2020. É um aviso sobre o que acontece quando você segue uma página que nunca foi revisada: você acaba corrigindo erros que o próprio guia criou.

A instalação que funciona no Kali atual

Seis passos. Nada aqui precisa de root, exceto o primeiro; todo o resto acontece no seu diretório home e dentro do virtualenv.

  1. 1

    Instale os pré-requisitos do sistema

    Git, o módulo venv e as ferramentas de build de que o gnureadline precisa caso tenha de compilar. Este é o único comando que precisa de sudo.

    sudo apt update
    sudo apt install -y git python3-venv build-essential libncurses-dev
  2. 2

    Clone o repositório

    Clone no seu diretório home. Os tracebacks no issue tracker estão cheios de /home/kali/Osintgram/, que é uma convenção tão boa quanto qualquer outra.

    git clone https://github.com/Datalux/Osintgram.git
    cd Osintgram
  3. 3

    Crie e ative o ambiente virtual

    Este é o passo que torna a PEP 668 irrelevante. Não passe --system-site-packages: isso reintroduz justamente as cópias gerenciadas pelo apt que você está tentando evitar.

    python3 -m venv venv
    source venv/bin/activate
  4. 4

    Instale as dependências dentro dele

    Atualize as ferramentas de build primeiro. O prettytable==0.7.2 fixado é antigo o bastante para falhar contra um setuptools defasado.

    pip install --upgrade pip setuptools wheel
    pip install -r requirements.txt
  5. 5

    Preencha o arquivo de credenciais

    O repositório traz o config/credentials.ini com três campos em branco: username, password e hikerapi_token. Preencha ou o par do Instagram, ou o token do HikerAPI. O make setup pergunta o par e escreve o arquivo para você, mas ele descarta a linha do token e zera o seu cache de sessão. A decisão sobre credenciais está coberta como deve ser no guia de instalação.

    nano config/credentials.ini
  6. 6

    Rode contra um alvo

    O nome de usuário é um argumento posicional obrigatório; o main.py não inicia sem um. Adicione -c <command> para rodar um único comando e sair, em vez de cair no shell.

    python3 main.py <target username>

Duas notas de rodapé sobre o passo 1. O python3-venv normalmente já está presente, mas em uma imagem enxuta do Kali não está, e python3 -m venv venv falha sem ele; a própria mensagem da PEP 668 manda garantir que o python3-full esteja instalado. build-essential e libncurses-dev são seguro, não exigência estrita: as versões recentes do gnureadline trazem wheels manylinux2014 para x86_64 e aarch64, então em uma máquina Kali amd64 ou arm64 comum o pip baixa um wheel e não compila nada. Esses dois pacotes são o que evita /usr/bin/ld: cannot find -lncurses nas máquinas em que o pip realmente cai para a distribuição de código-fonte.

Erros de instalação no Kali e o que eles realmente significam

Estas são as falhas que aparecem especificamente em sistemas da família Debian, mais ou menos na ordem de frequência com que surgem no tracker. O texto do erro é o que você cola no buscador; a coluna do meio é o que está de fato acontecendo.

Texto do erroO que ele é de verdadeCorreção
error: externally-managed-environmentPEP 668. O Kali recusa instalações do pip em todo o sistema e com --user.Monte o venv primeiro. Instale o python3-venv se o próprio python3 -m venv falhar.
ModuleNotFoundError: No module named 'urllib3.packages.six.moves'O python3-requests do apt misturado com o urllib3 2.x do pip, normalmente depois de um --break-system-packages. Um caminho ~/.local/lib/python3.x/site-packages/ no traceback confirma.Remova o que foi parar em ~/.local, depois instale em um venv limpo. Veja a issue #1766.
Cannot uninstall prettytable 3.10.1 ... no RECORD file was found for prettytableO pip está tentando remover o python3-prettytable do apt para satisfazer o pin prettytable==0.7.2, e não consegue, porque quem o instalou foi o Debian.Rode dentro de um venv criado sem --system-site-packages. Veja a issue #1126.
/usr/bin/ld: cannot find -lncursesO gnureadline está compilando a partir do código-fonte e faltam os headers de desenvolvimento do ncurses.sudo apt install -y build-essential libncurses-dev e depois reinstale os requisitos.
ModuleNotFoundError: No module named 'pyreadline'Enganoso. O main.py captura um import gnureadline que falhou e cai para o pyreadline, que no requirements.txt é só para Windows.Corrija a compilação do gnureadline, não o pyreadline. Veja a linha acima.
AttributeError: 'HTMLParser' object has no attribute 'unescape'prettytable 0.7.2 compilando contra um setuptools antigo.pip install --upgrade pip setuptools wheel antes dos requisitos.
ModuleNotFoundError: No module named 'src.Osintgram'Você rodou o main.py de algum lugar que não é o clone. Tanto o import do módulo quanto a leitura da config usam caminhos relativos.cd ~/Osintgram primeiro, sempre.
ERROR: Target path exists but is not a directoryAlguém digitou pip install -t requirements.txt. A flag é -r.Digite de novo com -r.
Error: "username" field cannot be blank in "config/credentials.ini"O arquivo de credenciais que vem no repositório está vazio. Note que o processo encerra com status 0 mesmo assim, então um script wrapper vai ler isso como sucesso.Preencha o arquivo, ou defina um token do HikerAPI no lugar.
Todas as strings de erro aqui são citadas do repositório ou do seu issue tracker.

Vale expandir uma das linhas, porque ela faz as pessoas caçarem o pacote errado. No Linux você pode receber um erro de pyreadline. O main.py abre com um try: import gnureadline / except: import pyreadline sem qualificação, e o marcador de ambiente no requirements.txt só instala o pyreadline no Windows. Então, no Kali, essa mensagem nunca é sobre o pyreadline: ela significa que o import do gnureadline falhou, o que quase sempre significa que a compilação do gnureadline falhou. Instalar o pyreadline não vai ajudar. Corrigir o ncurses vai.

Rodando o Osintgram no Kali

Três linhas, sempre, e a primeira importa mais do que parece.

cd ~/Osintgram
source venv/bin/activate
python3 main.py <target username>
A sequência de inicialização. O cd não é opcional.

O src/config.pyconfig/credentials.ini como caminho relativo, e o main.py importa src.Osintgram do mesmo jeito. Inicie como python3 ~/Osintgram/main.py target a partir do seu diretório home e a leitura da config não encontra absolutamente nada, ou você recebe ModuleNotFoundError: No module named 'src.Osintgram', que é exatamente a issue #105. Não existe prefixo de instalação nem script wrapper; o diretório do clone é a aplicação.

Tudo o que a ferramenta lê e escreve fica dentro desse clone:

  • ~/Osintgram/config/credentials.ini: seu nome de usuário e sua senha do Instagram, ou um token do HikerAPI.
  • ~/Osintgram/config/settings.json: a sessão de login em cache. O comando cache, ou iniciar com -C, redefine o arquivo para {}.
  • ~/Osintgram/output/<target>/: os resultados, como <target>_<command>.txt e .json. A saída em arquivo fica desligada até você digitar FILE=y ou JSON=y, ou iniciar com -f / -j.

Esse arquivo de credenciais é texto puro no disco

O config/credentials.ini guarda um nome de usuário e uma senha do Instagram em texto claro dentro do seu clone. O README do projeto diz duas vezes, em vermelho, para não usar sua conta própria ou principal e para não enviar o arquivo para um fork. O .gitignore cobre credentials.ini e settings.json, o que protege você de um git add . acidental e não de um git add -f deliberado. Use uma conta descartável, ou coloque um token do HikerAPI no terceiro campo e nunca escreva uma senha ali.

Depois que ele inicia, você está em um shell interativo com um prompt amarelo Run a command: e autocompletar com TAB nos nomes dos comandos. Cuidado com os comandos pesados: os quatro comandos de e-mail e telefone fazem uma chamada de API extra por seguidor, sem backoff em lugar nenhum, e um usuário de Kali na issue #366 tirou 41,643 registros do fwersemail antes de o Instagram bloquear as requisições; o crash que veio em seguida descartou todos eles. A referência completa de comandos, os nomes dos arquivos de saída e os comandos que não retornam mais nada estão em como usar o Osintgram.

Kali em ARM e Osintgram no Termux

O Kali em arm64 não exige nenhuma mudança na sequência acima. O gnureadline 8.3.3 publica wheels manylinux2014 tanto para x86_64 quanto para aarch64, então a única dependência que poderia exigir um compilador normalmente não precisa de um em nenhuma das duas arquiteturas.

Osintgram no Termux

O Termux não é o Kali, mas é o outro lugar de onde as pessoas tentam rodar isso pelo celular, e é o ambiente em que a compilação é realmente inevitável. A libc bionic do Android não corresponde nem às tags de wheel manylinux nem às musl, então o pip cai para a distribuição de código-fonte do gnureadline, o que significa que o clang e os headers do ncurses precisam estar lá antes.

pkg update -y && pkg upgrade -y
pkg install -y python git clang make binutils ncurses-utils libffi openssl
git clone https://github.com/Datalux/Osintgram.git
cd Osintgram
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Termux: o passo dos pacotes é a parte que muda.

O Termux reporta platform_system como Linux, então o marcador no requirements.txt seleciona o gnureadline e nunca o pyreadline: o crash de inicialização do Windows não se aplica aqui. O relato de Termux mais comum no tracker, a issue #583, é só alguém rodando python3 main.py antes de instalar os requisitos e recebendo ModuleNotFoundError: No module named 'requests'. Tudo depois do passo dos pacotes é idêntico ao fluxo do Kali, arquivo de credenciais incluído. E o problema de login abaixo também.

Instala. E aí o login falha.

Colocar o Osintgram no Kali é a metade fácil. A metade difícil é que o login com usuário e senha no Instagram basicamente não funciona mais, e nada do que você fizer do lado do Kali muda isso. Se a sua instalação terminou e a ferramenta morre em Attempt to login..., você não errou nada.

A falha é do lado do servidor. O backend clássico é o instagram-private-api==1.6.0, preso a um endpoint do Instagram que desde então foi retirado, e os relatos de 2026 (issue #2627, março de 2026) voltam como checkpoint_required com um checkpoint_url de https://i.instagram.com/web/unsupported_version/: é o Instagram rejeitando a versão de API da biblioteca, não a sua senha. Existe um segundo backend: coloque um token no campo hikerapi_token do config/credentials.ini, ou inicie com HIKERAPI_TOKEN=<token> python3 main.py <target> -c <command>, e o main.py constrói um cliente HikerAPI no lugar, sem nenhum login do Instagram envolvido. Esse é o caminho que ainda foi projetado para funcionar, e os usuários relatam que funciona, mas é um serviço pago de terceiros, significa enviar seus alvos para esse terceiro, e tem quebras de formato de resposta próprias, relatadas na issue #2664.

O quadro completo de status (o que quebrou, quando, o que ainda funciona e quanto custa) está em o Osintgram ainda funciona em 2026. E se o seu alvo é uma conta privada, existe um limite intransponível que nenhuma plataforma, fork ou flag contorna.

Quando a instalação não vale a pena

Existe uma versão desse trabalho em que nada do que está acima se paga. Se você precisa de dados públicos de perfil em um punhado de contas, e não está especificamente tentando aprender a ferramenta ou trabalhar offline, então o clone, a conta descartável, o throttling e as falhas de login não te dão nada que você não consiga mais rápido de outro jeito.

Uma consulta hospedada também elimina a parte do fluxo de CLI que carrega risco real no Kali: você nunca coloca as suas próprias credenciais do Instagram em um arquivo, então não há banimento por login automatizado com que se preocupar. Os mesmos dados públicos, sem PEP 668.

Perguntas frequentes

  • Como instalar o Osintgram em 2026

    Clone, venv, pip, credenciais: os seis comandos que instalam o Osintgram, além de cada erro real que trava a instalação e o que cada um significa de verdade.

  • O Osintgram ainda funciona em 2026?

    O login com senha está praticamente morto; o backend HikerAPI é o caminho ainda projetado para funcionar. Último commit em 25 de agosto de 2025, 828 issues abertas.

O Osintgram é uma ferramenta OSINT independente e não tem qualquer vínculo com o Instagram ou a Meta. Estes guias descrevem apenas software de código aberto publicamente documentado e pesquisa em fontes abertas. Use essas técnicas de forma legal, sobre alvos que você esteja autorizado a investigar, e nunca para assediar ou vigiar pessoas.