Buscador Exploit-Db V1.0 [Python]

Iniciado por isseu, 9 Mayo 2010, 04:51 AM

0 Miembros y 1 Visitante están viendo este tema.

isseu

Un buscador que hice en python, gracias a la idea de otro post de este foro
Con este script puedes facilmente navegar/descargar y ejecutar exploit de exploit-db
Creo que todavia le queda mucho por mejorar.
Para  linux y windows
Pastebin: http://isseu.pastebin.com/G9xh7XDV
Download: http://isseu.pastebin.com/download.php?i=G9xh7XDV

Searchedb.PY
Código (python) [Seleccionar]
#!/usr/bin/env python
import urllib2
import re
import os
import string

def Verde(a):
if os.name=="posix": #linux
return "\033[32m"+a+"\033[0m"
else:
return a
def Rojo(a):
if os.name=="posix": #linux
return "\33[31m"+a+"\033[0m"
else:
return a
def Limpiar():
if os.name=="posix":
os.system("clear") #linux
else:
os.system("cls") #windows
def sisalir(a):
if string.upper(input) =="QUIT":
exit(0)
def GetWeb(web):
source=string
try:
    source=urllib2.urlopen(web)
except urllib2.HTTPError, e:  
    print Rojo("[!] Error HTTP")
    print Rojo(e.code)
    exit(0)  
except urllib2.URLError, e:  
    print Rojo("[!] Error URL")
    print Rojo(e.reason)
    exit(0)
return source.read()
def extension(archivo):
return archivo[archivo.rfind(".")+1:len(archivo)]
def Ejecutar(path):
print "";
type=extension(path)
if type=="py":
print Rojo("[#] system(\"python "+path+")\"")
os.system("python "+path);
print Rojo("[#] Finish")
if type=="pl":
print Rojo("[#] system(\"perl "+path+")\"")
os.system("perl "+path);
print Rojo("[#] Finish")
print ""
def FileType(web):
try:
    web=urllib2.urlopen(urllib2.Request(web))
except urllib2.HTTPError, e:  
    print Rojo("[!] Error HTTP")
    print Rojo(e.code)
    exit(0)  
except urllib2.URLError, e:  
    print Rojo("[!] Error URL")
    print Rojo(e.reason)
    exit(0)
info=str(web.info())
info=re.search("filename=\d+\.(txt|py|pl|cpp|c|jar)",info).group()
info=re.search("txt|py|pl|cpp|c|jar",info).group()
return info
def ExploitDB(input,page=0):
print "";
sitio = "http://www.exploit-db.com/list.php?page="+str(page)+"&description="+input+"&author=&platform=&type=&port=&osvdb=&cve="
source = GetWeb(sitio)
urls=re.findall("href=\'/exploits/\d+",source)
numerop=re.findall("href='/list.php?page=\d+&description="+input+"&platform=&type=&port=&author=&osvdb=&cve='>\d+</a>",source)
names=re.findall("target=_blank>.*</a>",source)
print Verde("[+]")+" Hay "+str(len(names))+" Resultados (+"+Verde(str(len(numerop)))+" paginas):"
print "";
if len(names)>=1:
for i in range(len(names)):
name=names[i]
name=name[14:len(name)-4]
print "["+str(i+1)+"] "+name
valor=raw_input(Verde("[?]")+" Ingrese Id exploit a ver (0 = Siguiente pagina; -1= Buscar Otra Cosa)\n-->")
sisalir(valor);
if string.atoi(valor)<=0:
if string.atoi(valor)==0:
ExploitDB(input,(page+1))
if string.atoi(valor)==2:
return;
else:
subs=urls[string.atoi(valor)-1]
subs=subs[16:len(subs)]
sitio="http://www.exploit-db.com/download/"+subs;
tipo=FileType(sitio)
name=names[i]
name=name[14:len(name)-4]
print "";
print Verde("[+]")+" Exploit Seleccionado:";
print "[ID] #" + subs + ":"
print "[Nombre] " + name
print "[Url] " + sitio
print "[Leng] " + tipo
descargado=False
while (True) or ((string.atoi(valor) > 0) and (string.atoi(valor) < 4)):
if descargado:
valor=raw_input(Verde("[?]")+"Opciones: (1) Ver (2) Descargar (3) Volver Atras (4) Ejecutar\n-->")
else:
valor=raw_input(Verde("[?]")+"Opciones: (1) Ver (2) Descargar (3) Volver Atras\n-->")
sisalir(input);
if string.atoi(valor)==1:
print ""
print "";
source = GetWeb(sitio)
print source;
if string.atoi(valor)==2:
print ""
source = GetWeb(sitio)
subs=subs+"."+FileType(sitio)
FILE = open(subs,"w")
FILE.write(source);
FILE.close();
print Verde("[+]")+" Guardado Como: "+os.curdir+"/"+subs
if (extension(subs)=="pl") or (extension(subs)=="py"):
descargado=True
if string.atoi(valor)==3:
ExploitDB(input,page)
break;
if (string.atoi(valor)==4) and (descargado==True):
Ejecutar(subs)
break;
else:
print Rojo("[!]")+" No hay Resultados Para mostrar"


if __name__ == "__main__":
Limpiar()
print "   ########################"
print "   # "+Rojo("Buscador De Exploits")+" #"
print "   # "+Rojo("De Exploit-db.com")+" ####"
print "   # "+Rojo("Por Isseu")+" ############"
print "   ################# "+Verde("V1.0")+" #"
print ""
while True:
input = raw_input(Verde("[?]")+" Ingrese Nombre de la Aplicacion a Buscar ("+Rojo("Quit")+" para salir)\n-->");
sisalir(input);
print Verde("[+]")+" Buscando "+input+" en ExploitDB [...]";
ExploitDB(input)