Posts Tagged ‘Tor’

Eu amo Python!

October 17, 2008

Simplesmente não teve jeito, foi AMOR ao primeiro script!

Já havia lido um pouco sobre Python, mas não tinha tentado escrever algo, a linguagem é muito fácil de aprender recomendo a todos que não conhecem perder algumas horas brincando… a documentação é excelente e vasta!

Recomendo ler também os artigos publicados pela IBM, mais especificamente “Python for system administrators” e outro para quem se interessa em brincar com sockets “Sockets programming in Python”, existem muitos outros artigos no site sobre Python, vale a pena conferir! ;)

Não posso deixar de comentar neste post que é imprescindível o conhecimento nesta linguagem para pessoas que tem segurança como hobbie ou profissão, as vantagens que ela traz são absurdas principalmente para automatizar tarefas em testes de intrusão, a soma de Python + Google Hacking para levantamento de informações como dizia minha Vó: “É do pirú”. (não me pergunte pq ela dizia isso, não sei explicar, mas acho q siginifica algo como “PQP muito FODA”)

Nesta última semana dei uma boa mergulhada nos estudos e aprendi algumas coisas, e claro já quero compartilhar! :)

Segue dois scriptzinhos que fiz para facilitar um pouco a vida de quem gosta de usar TOR:

Neste abaixo criei para checar meu IP externo (sim sou preguiçoso e não gosto de entrar no site pra ver meu IP):

 

$ cat checkip.py

---------

#!/usr/bin/env python

import re, urllib, os

check_proxy = os.environ.get('http_proxy')

if check_proxy:

    print "[+] http_proxy detected: " + os.environ.get('http_proxy')

 

print "[+] Trying get your external IP address.... "

try:

    conexao = urllib.urlopen('http://www.meuip.com.br')

    conteudo = conexao.read()

    er = re.compile(r"\d+\.\d+\.\d+\.\d")

    find_ip = er.findall(conteudo)

    print "[+] IP address FOUND: " + find_ip[0]

except:

    print "Connection fail."

 

---------

 

No script abaixo, criei para forçar um “renew identity” lançando informações direto dentro do socket do TOR que fica aguardando por requisições no localhost porta 9051.

 

$ cat renew-tor.py

--------- 

#!/usr/bin/python

import socket

host = "127.0.0.1"

port = 9051

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host, port))

s.send('AUTHENTICATE \"sua-super-senha-aqui\"\nsignal NEWNYM\n')

s.close()

 

---------

* Sim, sim… guardar senhas em texto puro não faz bem pra saúde, mas não tive paciência em criar um esquema de cookie criptografado pra utilizar com o TOR. Quem fizer manda ae! :)

 

Quem quiser tornar automático a renovação de IP basta executar o comando abaixo, que a cada 3 minutos seu IP do TOR será renovado. Isso é util pra quem usa aquelas p*** de serviço de download que limita por IP… e também pra mais uma série de outras infinidades né? ;P

 

$ echo "3 * * * * /home/usuario/scripts/renew-tor.py" | crontab

* Não se esqueça de ajustar o caminho correto para o script! 

 

Para quem se interessar em como interagir com o TOR enviando sinais diratamente no socket recomendo a leitura das especificações do mesmo.

Estes são meus primeiros scripts escritos em Python e espero ser útil para mais alguém. Convoco aqui os Masters Python Developers (meus mestres, Rafa e Miguel para dar pitacos e corrigir meus erros de programação).

NOTA: Não me responsabilizo por qualquer reação que o Python venha causar no indivíduo que começar a programar de verdade nesta linguagem… há boatos que quem começa a programar em Python acaba virando preguiçoso uns até dizem que acaba emburrecendo e largando outras linguagens.  :-o  (eu amo C também e to pagando pra ver!)

 

É isso ae… Enjoy!