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!
Tags: Development, Python, Security, Tor
