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!

Tags: , , ,

Leave a Reply