cuando abri el hilo pense que se trataba de la libreria enfocada a robotica .__.
http://pyrorobotics.org/
http://pyrorobotics.org/
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCitar{%for nota in columnas%}
{%if forloop.first%}<div class='row-fluid'>{%endif%}
<div class='span3' style='text-align:center;' >
<a draggable="false" href='/columna/{{nota.id}}/{{nota.titulo|slugify}}'><div draggable=True ondragstart="dragIt(event);" id='c{{nota.id}}' ondrop="dropIt(event)" ondragover="event.preventDefault();">
<img src='{{MEDIA_URL}}{{nota.columna.imagen}}' draggable=False class="img-polaroid" style='width: 80%;margin-left:9%;margin-right:10%; '>
<h3 style='text-align: center;'>{{nota.columna.nombre}}</h3>
<h4 style='text-align: center;'><i>{{nota.titulo}}</i></h4></div></a>
</div>
{%if forloop.last or forloop.counter|divisibleby:"4" %}</div><br>{%if not forloop.first and not forloop.last%}<div class='row-fluid'>{%endif%} {%endif%}
{%endfor%}
Citar"^(?=.{1,254}$)[^\.]([\w-\!\#\$\%\&\'\*\+\-\/\=\`\{\|\}\~\?\^]+)([\.]{0,1})([\w-\!\#\$\%\&\'\*\+\-\/\=\`\{\|\}\~\?\^]+)[^\.]@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$"
mailsrch = re.compile(r"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum|mx|com\.mx|xxx|tv|tk)\b")
Citar<a href="/url?q=http://www.elhacker.net/&sa=U&ei=JQeCUdz3DoK49QSYvoDAAQ&ved=0CCEQFjAA&usg=AFQjCNE8PCIInwOQ84p63ylCDShXtjtiAA">
url_web_limpio = argumento.url.replace('http://','').replace('/','').replace('www.','')
if not argumento.external: ## verifica si usar enlaces externos o no
if link[0] == '/' or url_web_limpio in link:
if link not in links_internos and link not in links_visitados:
links_internos.append(link)
elif argumento.external == 'si':
if link not in links_internos and link not in links_visitados:
links_internos.append(link)
CitarKase.py -url http://elhacker.net/
Citarkase.py -google 'insite:elhacker.net @hotmail'
Cita de: EleKtro H@cker en 30 Abril 2013, 20:22 PM
@Kase
He probado esto:Kase.py -url http://elhacker.net/
Output:carlos@cool
Solo me devuelve un "email", ¿Eso es normal? xD
Muy bueno.
CitarLos parámetros de maxpages y maxmails son opcionales, ¿no? (también los he probado pero obtengo lo mismo).los parametros max_linsk, y max_emails si son opcionales, los coloque por que la primera web que ataque tenia mas de 80,000 enlaces internos y tras 24 horas solo abia recorrido 40,000 xD
CitarPD: Lo has testeado en Windows?
os.system('clear')
CitarPD2: Si esto funciona corréctamente le pongo una chincheta.eso seria genial ojala pronto quede la version que detecte mejor los enlaces internos.
Cita de: daryo en 29 Abril 2013, 21:43 PM
pues me refiero a que ademas de poderle pasar de parametro la web a buscar mails usar tambien avanzadas en google como estas:
inurl:contact
inurl:nosotros.php
tambien se puede usar intitle:contactenos
o cosas asi
en los que es bastante probable encontrar mails eso seguro aumentaria bastante la lista de mails a spamear
Citar
fix 3.0
soporte para mas sistemas operativos
mejor detección de emails mediante el regex
fix v 2.0
ahora detecta mas tipos de urls internas
ahora detecta si es windows o linux para usar el comando correcto de limpiar pantalla.
# -*- coding: utf-8 -*-
## by kase: kase@boredsoft.com colaboraciones: EleKtro H@cker
import requests,re,os,time,sys
from argparse import ArgumentParser, RawTextHelpFormatter
parser = ArgumentParser(description="email spider", version="3.0", formatter_class=RawTextHelpFormatter)
## -url
parser.add_argument("-url", dest="url", help='url a analizar en formato http://web.com/')
## -max_links links
parser.add_argument("-max_links", dest="max_links", help='maximo de links internos a analizar')
## -max_emails emails
parser.add_argument("-max_emails", dest="max_emails", help='maximo de emails a analizar')
## -external default False
parser.add_argument("-external", dest="external", help='investigar links externos [si|no]')
argumento = parser.parse_args()
url_web = argumento.url
url_web_limpio = argumento.url.replace('http://','').replace('/','').replace('www.','')
links_internos = ['/']
links_visitados = []
emails_capturados = []
mailsrch = re.compile(r"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum|mx|com\.mx|xxx|tv|tk)\b")
#old mailsrch = re.compile(r'[\w\-][\w\-\.]+@[\w\-][\w\-\.]+[a-zA-Z]{2,6}')
urlssrch = re.compile(r'href=[\'"]?([^\'" >]+)')
contador = 0
while links_internos:
try:
## saca el ultimo link de la lista
##print links_internos
link = links_internos.pop()
## añade ese link a visitados, para no volverlo a tener en cuenta
links_visitados.append(link)
if link[0] == '/' or link == '':
r=requests.get(url_web+''+link)
else:
r=requests.get(link)
links = urlssrch.findall( r.text)
##print 'xxxxxxxxxxxxx', links
emails = mailsrch.findall(r.text)
## guarda todos los emails que se topa checando que no existan repeticiones
for email in emails:
if email not in emails_capturados:
emails_capturados.append(email)
## guarda todos los links internos que se tope checando que no existan en la cola o en vistados
for link in links:
if not argumento.external: ## verifica si usar enlaces externos o no
if link[0] == '/' or url_web_limpio in link:
if link not in links_internos and link not in links_visitados:
links_internos.append(link)
elif argumento.external == 'si':
if link not in links_internos and link not in links_visitados:
links_internos.append(link)
contador +=1
## informacion en pantalla
if contador % 50 == 0:
if sys.platform.startswith('win'):
# Windows
os.system('cls')
elif sys.platform.startswith('linux'):
# Linux
os.system('clear')
elif sys.platform.startswith('cygwin'):
# Windows (Cygwin)
os.system('cmd /c cls')
elif sys.platform.startswith('darwin'):
# MacOSX
os.system('clear')
elif sys.platform.startswith('freebsd'):
# FreeBSD
os.system('clear')
print 'web atacada:', url_web
print 'total de emails obtenidos:', len(emails_capturados)
print 'urls recorridas: ', len(links_visitados)
print 'urls faltantes: ', len(links_internos)
print '----- (~._.)~ '
## pequeño arreglo para tener mas chanse de optener emails en web grandes
## primero analiza los enlaces internos mas cortos y despues de un tiempo, analiza los mas largos primero
## en paginas tipo blog, los enlaces mas largos son los de las post con comentarios donde posiblemente existan emails
if contador %10000 == 0:
if contador <= 10000:
links_internos.sort(reverse=True)
else:
links_internos.sort()
## si ahi un maximo de links internos rompe el ciclo y termina
if argumento.max_links:
if contador >= int(argumento.max_links):
break
## si ahi un maximo de emails capturados rompe el ciclo y termina
if argumento.max_emails:
if len(emails_capturados) >= int(argumento.max_emails):
break
## si la conexion se cae duerme el proceso 20 segundos y reintenta
except:
r = os.system('ping -c 1 google.com') ## checa si hay conexion de internet
if r == 0: #si existe conexion elimina el enlace muerto
link = links_internos.pop()
else: ##sino espera 20 segundos a que se reanude la conexion de internet
time.sleep(30)
if sys.platform.startswith('win'):
# Windows
os.system('cls')
elif sys.platform.startswith('linux'):
# Linux
os.system('clear')
elif sys.platform.startswith('cygwin'):
# Windows (Cygwin)
os.system('cmd /c cls')
elif sys.platform.startswith('darwin'):
# MacOSX
os.system('clear')
elif sys.platform.startswith('freebsd'):
# FreeBSD
os.system('clear')
print 'web atacada:', url_web
print 'total de emails obtenidos:', len(emails_capturados)
print 'urls recorridas: ', len(links_visitados)
print 'urls faltantes: ', len(links_internos)
print '----- (~._.)~ CONEXION CAIDA, ESPERANDO 30 SEGUNDOS (X__X)'
f = open('%s.txt' % url_web.replace('http://','').replace('/','').replace('.','_'),'w+')
f.write("\n".join(emails_capturados))
f.close()