[Python-Source]Buscador/Descargador de exploits

Iniciado por Debci, 2 Mayo 2010, 11:58 AM

0 Miembros y 2 Visitantes están viendo este tema.

Debci

Hola a todos, hace unos dias me puse a programar python, a pesar de que tuve algun problema tonto de sintaxis por lo demás me las arreglé, quise codear un buscador y descargador de exploits, que lee desde varias fuentes, aunque por ahora solo una.
Pretendia ademas hacer que ejecutase dichos exploits, pero es mas complejos puesto que cada uno tiene sus variables y demás.

Comentar y agrdecer a www.delincuentedigital.com.ar de donde saque la idea principal, asi como una parte, o concepto del codigo, sin mas dilación, todo vuestro:

Código (python) [Seleccionar]

#!/usr/bin/env python
import urllib
import re
import os
import time
os.system('clear')
print '[*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*]'
print '[*]Bienvenid@ al buscador/descargador de exploits automatizado                                           [*]'
print '[*]Esta aplicacion ha sido creada con fines educativos y probar la seguridad de nuestro sistema          [*]'
print '[*]Si el sistema que vas a probar no te pertenece o no estas autorizado a hacerlo, no lo hagas, es ilegal[*]'
print '[*]Agradecimientos a www.delincuentedigital.com.ar en quien he basado parte del codigo                   [*]'
print '[*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*]\n'
print '[!]Para continuar pulse {ENTER}, si no cumple las condiciones anteriores, pulse Ctr+C\n'
raw_input()


dong = (raw_input('[!]Introduzca el nombre de la aplicacion que desea vulnerar:\n'))

descarga = (raw_input('[!]Desea descargar todos los exploits que encuentre? (Si o No)\n'))

def Milw0rm(busqueda, descarga):
sitio = "http://www.milw0rm.com/search.php?dong="

source = urllib.urlopen(sitio+busqueda).read()
founds = re.findall("href=\"/exploits/\d+",source)
encontrados = len(founds)
corredor = 0
lista = []

if encontrados == 1:
        print "\n[+]",encontrados,"exploit encontrado\n"
elif encontrados == 0:
        print "\n[-]No se ha encontrado ningun exploit\n"
else:
        print "\n[+]",encontrados,"exploits encontrados\n"
if len(founds) >=1:
        for found in founds:
                  found = found.replace("href=\"","")

                  print "http://www.milw0rm.com"+found
                  enlace = "http://www.milw0rm.com"+found
                  lista.insert(corredor, enlace)
                  corredor+=corredor

if descarga == "si" or descarga == "Si" or descarga == "SI":
print "\n[!]Procediendo a descargar los exploits...\n"
time.sleep(5)
        for i in range(len(lista)):
  os.system("wget "+lista[i])

def ExploitDB(busqueda):
dong = busqueda
sitio = "http://www.exploit-db.com/list.php?description="+dong+"&author=&platform=&type=&port=&osvdb=&cve="
print sitio
source = urllib.urlopen(sitio).read()
founds = re.findall("href=\"/exploits/\d+",source)
print "\n[+]Su busqueda ha devuelto",len(founds),"exploits\n"
if len(founds) >=1:
        for found in founds:
                 found = found.replace("href=\"","")
                 print "http://www.exploit-db.com"+found
else:
        print "[-]No se encontraron exploits en exploitDB\n"

print "\n[+]Buscando exploits en Milw0rm..."
time.sleep(2)
Milw0rm(dong, descarga)
#Por ahora desaqbilitado...
#print "\n[+]Buscando exploits en ExploitDB...\n"
#time.sleep(2)
#ExploitDB(dong)


Disfrutadlo, espero criticas, agradecimientos y sugerencias, asi como alguna idea sobre como hacer que ejecute exploits, pues tengo una idea pero la veo un poco lejos (por la cantidad de codigo requerida...)

Saludos

braulio--

Lo veo muy útil, pero si ya quieres perfeccionarlo (esteticamente hablando en cuanto a código), descarga los archivos desde python.

Debci

Seria lo suyo, pero tmb es una manera de que solo lo usen linuxeros, a ese respecto soy un tanto integrista.

Saludos

EvilGoblin

para ejecutar el exploit bastaria instrucciones como metasploit

pero no siempre estan escritos de la misma manera para saber cuantos argumentos van

pero la idea seria editar una tabla de

IPLOCAL:
PUERTOLOCAL:
IPREMOTA:
PUERTOREMOTO:

pero algunos son a base de errores de paginas web.. ahi ya deberia aver un URL:

el trabajo es mucho mas largo.. ya que vos tendrias que supervisar cada exploits que argumentos llevan y como lograr ejecutarlos con subprocess.Popen (nose si es lo mismo en windows)

EN DEFINITIVA.

Deberias crear una base de datos externa donde tu programa se comunique y le dejes las intrucciones de q hacer con cada exploit, entonces actualizarias esa base de datos con cada nuevo exploit
x)
Experimental Serial Lain [Linux User]

alexkof158

esto ya taba por ahi, no programe algo que ya esta hecho xD RIp
"noproxy"

Debci

Cita de: alexkof158 en  5 Mayo 2010, 23:31 PM
esto ya taba por ahi, no programe algo que ya esta hecho xD RIp
lee el post completo, y verás que es una improve de otro codigo.

Saludos

Debci

Cita de: EvilGoblin en  3 Mayo 2010, 22:02 PM
para ejecutar el exploit bastaria instrucciones como metasploit

pero no siempre estan escritos de la misma manera para saber cuantos argumentos van

pero la idea seria editar una tabla de

IPLOCAL:
PUERTOLOCAL:
IPREMOTA:
PUERTOREMOTO:

pero algunos son a base de errores de paginas web.. ahi ya deberia aver un URL:

el trabajo es mucho mas largo.. ya que vos tendrias que supervisar cada exploits que argumentos llevan y como lograr ejecutarlos con subprocess.Popen (nose si es lo mismo en windows)

EN DEFINITIVA.

Deberias crear una base de datos externa donde tu programa se comunique y le dejes las intrucciones de q hacer con cada exploit, entonces actualizarias esa base de datos con cada nuevo exploit
x)
asi es por lo que descarto una rutina de reconocimiento de palabras clave como ip, target,rhost...

Saludos

isseu