Anonimato usando o Proxychains

No post anterior eu prometi que o nmap seria o próximo tema; no entanto, me ocorreu que, a pior coisa que pode acontecer a qualquer hacker é ser detectado por um administrador de segurança, pelas tecnologias de segurança (IDS, firewall, etc), ou por um investigador forense.

Cada vez que enviamos um pacote para um alvo, esse pacote contém o nosso endereço IP no cabeçalho. Quando fazemos uma conexão, o sistema de destino registrará nosso endereço IP.

Uma vez que todas as conexões ficam registradas, para executar um ataque, anonimamente, com a menor chance de detecção, precisamos usar uma máquina intermediária cujo endereço IP será deixado no sistema de destino. Isso pode ser feito usando proxies.

Não conheço tradução para proxy, seria algo como “procurador“, “representante“, – uma máquina que assina pela sua, digamos assim.

Os proxies são projetados para aceitar nosso tráfego e, em seguida, encaminhá-lo para o alvo escolhido. Naturalmente, o proxy poderá registrar nosso tráfego, mas um investigador teria que obter uma intimação ou mandado de busca para obter os logs. Pela dificuldade que vários países, até mesmo os EUA, têm para obter informações da Suécia e da Rússia, recomendo a inclusão de pelo menos um proxy desses países ao escolher a sua cadeia de proxies.

Se encadeamos múltiplos proxies, tornamos mais difícil a detecção do nosso endereço IP original. Se um desses proxies estiver fora da jurisdição da vítima, torna muito improvável que qualquer tráfego possa ser atribuído ao nosso endereço IP.

Tanto o Kali quanto o BackTrack têm uma excelente ferramenta para “proxiar” nosso tráfego, chamada proxychains. Vou mostrar como usar essa ferramenta simples, mas poderosa, para depois podermos brincar com o nmap e outras ferramentas, tais como SSH, telnet, wget, ftp, apt, vnc,…

INSTALANDO EM 4 PASSOS

Como foi dito, o Kali Linux já vem com todas essas ferramentas (Nmap, TOR e Proxychains) instaladas, no entanto, vou aproveitar este post para instalar no meu Ubuntu; são apenas 4 etapas que podem ser usadas em qualquer distribuição baseada em Debian.

Instalar o Nmap

Para instalar o Nmap, usei a linha de comando abaixo:

sudo apt install nmap

Instalar TOR

Tor é o software mais utilizado no mundo para proteger a privacidade enquanto navega na internet e às vezes para acessar a deep/dark web. Assim, para proteger sua privacidade, basta baixar e instalar o navegador Tor em https://www.torproject.org . Mas, neste post, usei a linha de comando.

Para instalá-lo, digitei o seguinte comando:

 sudo apt install tor

Instalar Proxychains

Para instalar digitei:

 sudo apt install proxychains

Agora que todas essas ferramentas estão instaladas, posso começar a trabalhar anonimamente.

sudo proxychains nmap -sT example.com

Testando o Proxychains

proxychains firefox https://www.whatismyip.com/

Proxy 7

Como se eu estivesse em Roubaix,  na França!!

Localizando o Proxychains

Abrir o terminal e digitar

locate proxychains

Como podemos ver, o proxychains está no diretório /usr/bin. Como o /usr/bin está em nossa variável PATH, podemos usá-lo de qualquer diretório. Isto é exatamente o que desejamos, pois usamos proxychains com outros comandos que, provavelmente, NÃO estarão na variável PATH.

Proxy 1

A sintaxe para o comando proxychains é simples e direta.

proxychains

Logo, usando o proxychains para escanear um site com o nmap, anonimamente, eu posso digitar:

proxychains nmap -sS <Endereço IP >

Configurando o Proxychains

Como em quase todas as aplicações Linux/Unix, a configuração é gerenciada por um arquivo de texto simples chamado arquivo de configuração. No caso de proxychains, este arquivo é /etc/proxychains.conf. Podemos abri-lo no leafpad (um editor de texto para Linux bastante parecido com o Notepad do Windows) ou em qualquer outro editor de texto (vi, emacs, gedit, kwrite, etc.), digitando:

leafpad /etc/proxychains.conf

Como o mostrado abaixo, se rolarmos para baixo, veremos uma seção “add proxy list here…” (adicionar lista de proxy aqui …).

Proxy 2.jpg

Para o proxychains usar proxies intermediários, simplesmente precisamos adicionar os endereços IP dos proxies que queremos usar aqui. É importante observar que o proxychains usa o Tor como padrão.

Observe que, a última linha na imagem acima, está direcionando o proxychains para enviar o tráfego primeiro através de nosso host em 127.0.0.1 na porta 9050 (a configuração Tor padrão). Se você estiver usando Tor, deixa isso como está. Se você não estiver usando Tor, você precisará comentar essa linha (apenas inserir # no começo dela)

Mesmo gostando da rede Tor, acho que é muito lenta e, agora sabemos que a NSA tem quebrado a sua criptografia desde que o FBI, acho que em 2013, derrubou o Silk Road e o Dread Pirate Roberts, estou com algumas restrições ao escolhê-lo como opção para o anonimato.

Agora que coloquei um proxy entre minha máquina e qualquer alvo, vou testar fazendo uma varredura, anonimamente, com o nmap ao http://www.universal.org/ através de um proxy. O comando é o seguinte:

proxychains nmap -sS 31.13.85.36

Proxy 3.jpg

Como se ver na imagem acima, houve êxito no escaneamento, através do proxy escolhido, e os resultados retornaram.

Aproveito para adiantar…

Os seis estados de porta reconhecidos pelo Nmap

isto está muito bem explicado em https://nmap.org/man/pt_BR/man-port-scanning-basics.html :

  1. aberto (open)
    Uma aplicação está ativamente aceitando conexões TCP ou pacotes UDP nesta porta. Encontrar esse estado é frequentemente o objetivo principal de um escaneamento de portas. Pessoas conscientes sobre a segurança sabem que cada porta aberta é um convite para um ataque. Invasores e profissionais de avaliação de segurança querem explorar as portas abertas, enquanto os administradores tentam fechar ou proteger com firewalls sem bloquear usuários legítimos. Portas abertas são também interessantes para scans não-relacionados à segurança pois mostram os serviços disponíveis para utilização na rede.
  2. fechado (closed)
    Uma porta fechada está acessível (ela recebe e responde a pacotes de sondagens do Nmap), mas não há nenhuma aplicação ouvindo nela. Elas podem ser úteis para mostrar que um host está ativo em um determinado endereço IP (descoberta de hosts, ou scan usando ping), e como parte de uma detecção de SO. Pelo fato de portas fechadas serem alcançáveis, pode valer a pena escanear mais tarde no caso de alguma delas abrir. Os administradores deveriam considerar o bloqueio dessas portas com um firewall. Então elas apareceriam no estado filtrado, discutido a seguir.
  3. filtrado (filtered)
    O Nmap não consegue determinar se a porta está aberta porque uma filtragem de pacotes impede que as sondagens alcancem a porta. A filtragem poderia ser de um dispositivo firewall dedicado, regras de roteador, ou um software de firewall baseado em host. Essas portas frustram os atacantes pois elas fornecem poucas informações. Às vezes elas respondem com mensagens de erro ICMP tais como as do tipo 3 códigos 13 (destino inalcançável: comunicação proibida administrativamente), mas os filtros que simplesmente descartam pacotes sem responder são bem mais comuns. Isso força o Nmap a tentar diversas vezes só para o caso de a sondagem ter sido descartada por congestionamento da rede ao invés de filtragem. Isso reduz a velocidade do scan dramaticamente.
  4. não-filtrado (unfiltered)
    O estado não-filtrado significa que uma porta está acessível, mas que o Nmap é incapaz de determinar se ela está aberta ou fechada. Apenas o scan ACK, que é usado para mapear conjuntos de regras de firewall, classifica portas com este estado. Escanear portas não-filtradas com outros tipos de scan, tal como scan Window, scan Syn, ou scan FIN, podem ajudar a responder se a porta está aberta.
  5. open|filtered
    O Nmap coloca portas neste estado quando é incapaz de determinar se uma porta está aberta ou filtrada. Isso acontece para tipos de scan onde as portas abertas não dão nenhuma resposta. A falta de resposta também pode significar que um filtro de pacotes descartou a sondagem ou qualquer resposta que ela tenha provocado. Portanto não se sabe com certeza se a porta está aberta ou se está sendo filtrada. Os scans UDP, IP Protocol, FIN, Null, e Xmas classificam portas desta forma.
  6. closed|filtered
    Este estado é usado quando o Nmap é incapaz de determinar se uma porta está fechada ou filtrada. É apenas usado para o scan IPID Idle scan.

Agora que tenho o proxychains funcionando, vou configurar outras opções que para aumentar o nível do meu anonimato. Anteriormente usei um único proxy. Agora vou configurar vários proxies e usar todos eles, posso usar uma lista sequencial ou uma lista em que a ordem dos proxies se alteraram aleatoriamente. Vou mostrar essas opções.

Adicionando mais Proxies

Existem centenas de sites com listas de proxies por país, basta fazer uma busca no Google; eu fui obter alguns em http://proxydb.net/ . Escolhi uns High Anonymous

Nota Importante:

Não sabemos quem fez e mantém o proxy que você está prestes a se conectar. Eles podem estar vendo tudo o que você está fazendo durante a conexão ou pior ainda. Também suspeito que eles estão sendo usados (os proxies) como um tipo de honeypot para monitorar as pessoas fogem da TOR. Um honeypot é um computador decoy (para atrair os cibercriminosos que procuram obter acesso não autorizado às informações) para capturar hackers. Montar o seu próprio proxy seria o ideal.

Agora, vou adicionar mais proxies à lista abrindo o /etc/proxychains.conf e adicionando mais IPs de proxy como mostrado abaixo.

Proxy 4.jpg

Como já tenho vários IPs no proxychain.conf, posso configurar o encadeamento dinâmico que me permitirá passar o tráfego por todos os proxies da lista e, se um deles estiver inativo ou não responder, será automaticamente encaminhado para o próximo da lista sem gerar qualquer erro.

Para fazer isso, vou abrir o arquivo de configuração proxychains novamente e descomentar a linha “dynamic_chains”. Isso permitirá o encadeamento dinâmico de nossos proxies permitindo maior anonimato.

Proxy 5

Encadeamento aleatório

Finalmente, também posso usar o “encadeamento aleatório”. Com esta opção, o proxychains irá escolher, aleatoriamente, os endereços IP da lista e usá-los para criar o proxychain. Isso significa que cada vez que eu usar o proxychains, a cadeia de proxies será diferente, dificultando o meu rastreamento.

Para isso, abri o arquivo /etc/proxychains.conf e comentei “cadeias dinâmicas” e descomentei “cadeia aleatória”. Como só posso usar uma dessas opções de cada vez, certifiquei-me de comentar as outras opções nesta seção.

Além do mais, posso também, descomentar a linha com “chain_len”. Isso determinará quantos endereços IP serão usados na cadeia proxy aleatória.

Proxy 6

Agora posso “brincar” com relativo anonimato. Digo relativo, porque não há nenhuma maneira infalível de permanecer anônimo. Tudo o que podemos fazer é tornar a detecção muito mais difícil, e o proxychains pode fazer isso para mim.

Para escolher um alvo, o leitor pode recorrer ao Shodan, como foi ilustrado em QUEBRANDO A SEQUÊNCIA – SHODAN
Não preciso alertar sobre o óbvio uso ilegal destas ferramentas!

ATUALIZAÇÃO: Veja também Tutorial ProxyChains-NG

Anúncios

1 comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s