Teoria
A teoria de como o proxychains funciona é extremamente simples: utilizando vários proxies, o seu pacote passa por um caminho pré-definido por você na configuração (como veremos mais adiante) antes de chegar ao destino. Quanto mais servidores proxy existirem entre você e o destino, mais difícil é rastrear o seu verdadeiro IP. Mas o que é um servidor proxy?O servidor proxy atua como um gateway entre você e o seu destino. Imagine o seguinte cenário: sua máquina está configurada para usar um proxy e você quer acessar um site qualquer. A sua máquina vai enviar a requisição para o servidor proxy, o proxy por sua vez vai “pegar” o site e só depois irá repassar os dados para a sua máquina, que vai mostrar o site no navegador. Ou seja, no fim das contas quem acessa o site (do ponto de vista do host que o hospeda) é o servidor proxy e não a sua máquina.
NOTA: É recomendado que você use proxies de países diferentes e, se possível, servidores que sejam administrados por pessoas diferentes. Assim, o processo de rastreio fica MUITO mais complicado. Também é recomendado que se use por volta de 4 ou 5 proxies diferentes.Porém, nem tudo são flores. Existem algumas desvantagens em se usar uma cadeia de proxies (não necessariamente com o proxychains, mas sim com qualquer software do gênero):
- não importa a quantidade de proxies que você utilize, você nunca vai ficar 100% anônimo na Internet. Usar uma cadeia de proxies só dificulta o processo de rastreamento;
- servidores proxy abertos geralmente duram pouco tempo (algumas semanas). Ou seja, você vai ter que ficar procurando por novos proxies para usar frequentemente. Além disso, quando se usa uma cadeia você vai precisar testar cada um dos seus proxies para descobrir qual deles “morreu”;
- obviamente o uso de proxies tem um impacto no desempenho, afetando-o negativamente. Quanto mais proxies envolvidos, maior pode ser o impacto.
Configuração do proxychains
Toda a configuração do proxychains se dá através do arquivo /etc/proxychains.conf. Aqui, todo e qualquer aspecto do software pode ser personalizado para que ele atenda às suas necessidades. Aqui, vou comentar as opções disponíveis no arquivo e dar uma rápida descrição do que elas fazem.- dynamic_chain: Ativar esta opção faz com que o proxychains obedeça a ordem dos proxies na lista que você informou (veremos como fazer isso mais adiante) se conectando a cada um deles e pulando os proxies que não estiverem respondendo. Na minha opinião, é a melhor opção.
- strict_chain: Faz com que o proxychains use todos os proxies na ordem que foram inseridos na lista. Se algum proxy não estiver mais respondendo, o processo irá finalizar e um erro será retornado para a aplicação usando o proxychains.
- random_chain: Quando esta opção está ativa, alguns proxies da lista são selecionados aleatoriamente e utilizados para a conexão. A quantidade de proxies selecionados é definida pela opção “chain_len”.
- chain_len: Define a quantidade de proxies aleatórios a serem utilizados quando a opção “random_chain” é selecionada.
- quiet_mode: Não mostra output da biblioteca.
- proxy_dns: Envia as requisições DNS também através da cadeia de proxies.
- tcp_read_time_out: Time out em milisegundos para esperar uma resposta.
- tcp_connect_time_out: Time out em milisegundos para esperar que uma conexão seja estabelecida.
NOTA: As opções dynamic_chain, strict_chain e random_chain não podem ser utilizadas ao mesmo tempo em hipótese alguma. Portanto, quando uma delas estiver descomentada as outras duas devem ser comentadas. Além disso, a opção chain_len só pode ser descomentada quando random_chain for utilizado.Depois de configurar as opções adequadamente, você precisa inserir os IPs dos proxies a serem utilizados. Isto deve ser feito abaixo da linha “[ProxyList]” no seguinte formato:
<versão do socks> <endereço IP> <porta>
Por exemplo:
socks5 1.2.3.4 1234
Você pode inserir quantos proxies quiser, um por linha no formato descrito acima.
Por padrão, o proxychains tem uma entrada para usar o Tor instalado na máquina local. Se você não quer usar a rede do Tor, basta comentar a linha assim:
#socks4 127.0.0.1 9050
E pronto. Você também pode remover a linha, mas se lembre de adicionar outros proxies para você poder usar!
Como encontrar servidores proxy para usar
Encontrar proxies para usar com o proxychains é uma tarefa extremamente simples, na verdade. Utilizando o Google você consegue encontrar vários sites que disponibilizam listas muito bem organizadas, muitos casos até separadas por país.Alguns dos sites que eu uso para encontrar proxies:
- proxychains.net
- xroxy.com
- sockslist.net
Você usa algum outro site? Deixe a sua dica nos comentários!
Exemplo de uso do proxychains
Assim como a configuração, o uso do proxychains é bem simples. Ele não possui interface gráfica, toda a interação com ele é feita através da linha de comando. O formato geral é o seguinte:# proxychains <programa> <argumentos do programa usando o proxychains>
Então por exemplo, se eu quiser rodar um scan com o NMap passando por toda a cadeia de proxies que eu configurei:
# proxychains nmap -sV -p80 www.teste.com.br
ProxyChains-3.1 (http://proxychains.sf.net)
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-07 11:41 BRT
|DNS-request| www.teste.com.br
|S-chain|-<>-109.173.124.11:5791-<><>-4.2.2.2:53-<><>-OK
|DNS-response| www.teste.com.br is 200.147.67.142
|S-chain|-<>-109.173.124.11:5791-<><>-200.147.67.142:80-<><>-OK
Nmap scan report for www.teste.com.br (200.147.67.142)
Host is up (0.032s latency).
rDNS record for 200.147.67.142: 200-147-67-142.static.teste.com.br
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.0.63 ((Unix) Ganesh/2.2.0)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.53 seconds
Conclusão
Embora o proxychains possa ser usado para fazer coisas erradas, existem muitos usos legítimos para ele na área de segurança da informação. A aplicação dele vai depender de você, por isso faça bom uso das ferramentas que são disponibilizadas para a comunidade e não faça uma besteira que pode acabar te perseguindo pro resto da vida.Além disso, acredito que este post te dê uma noção melhor de como um atacante trabalha e também te mostrou o quão inútil é ficar bloqueando a origem de ataques achando que está protegido. Ter um ambiente seguro demanda muito mais do que um simples DROP no seu firewall. Você precisa manter o ambiente atualizado, bem configurado e seus usuários bem educados em relação à segurança da informação.
0 comentários:
Postar um comentário