Найти - Пользователи
Полная версия: Перебор паролей и портов в telnetlib
Начало » Python для новичков » Перебор паролей и портов в telnetlib
1 2
WiriNCROSS
Здравствуйте помогите реализовать задуманное
Python 3.9:
OS - Windows 10
Задача подключатся и сетевое оборудование с помощью скрипта, есть 2 варианта портов и 4 варианта паролей имя пользователя всегда admin

 import telnetlib
import time
import random
import string
import datetime
from colorama import init, Back, Style, Fore
start_time = time.time()
start_time = time.time()
adress = input('Введите адрес обьекта ---- ')
iprouter = input('Введите IP роутера ------- ')
user = 'admin'
print('--- Пользователь admin ---')
password = input('Введите пароль ----------- ')
loginOffice = input('Введите логин от Office -- ')
PassOffice = input('Введите пароль от Office - ')
VPNip = input('Введите VPNip Office ----- ')
Subnet = input('Введите Подсеть аптеки --- ')
IPserv ='.'.join(Subnet.split('.')[:-1]) +'.'+ str(int(Subnet.split('.')[-1]) + 1)
IPreg = '.'.join(Subnet.split('.')[:-1]) +'.'+ str(int(Subnet.split('.')[-1]) + 27)
now = datetime.datetime.now()
nowt = (now.strftime('%d-%m-%Y %H:%M'))
init()
#Автологин
tn = telnetlib.Telnet(iprouter, 23,)
tn.read_until(b'Login: ', timeout=2)
tn.write(user.encode('ascii') + b'\n')
tn.read_until(b'Password: ', timeout=2)
tn.write(password.encode('ascii') + b'\n')
tn.read_until(b'(config)> ', timeout=1)
print('* * * * * * *Подключение к ротеру ——————'+Fore.GREEN+' Успех!!!'+Fore.RESET+'* * * * * * * * * * * * * * *')
tn.read_until(b'(config)> ', timeout=2)
tn.write('show version'.encode('ascii') + b'\n')
time.sleep(5)
#Собираем инфу из роутера
tn.read_until(b"(config)> ", timeout=2)
tn.write('show version'.encode('ascii') + b"\n")
time.sleep(5)
# Парсим вывод комманды 
out = tn.read_very_eager().decode('ascii')
out = out.split(' ')
if 'description:' in out:
    i1 = out.index('description:')
    model = (out[i1 + 1])+' '+(out[i1 + 2])+' '+(out[i1 + 3]).strip('\r\n\r\n(config)>')
elif 'device:' in out:
    i3 = out.index('device:')
    model = (out[i3 + 1])+' '+(out[i3 + 2]).strip('\r\n')
else:
    model = "неизвестная модель"
i2 = out.index('release:')
release = (out[i2 + 1]).strip('\r\n')
print("* * * * * * *Данные о модели и прошивке получены ---"+Fore.GREEN+" Успех!!!"+Fore.RESET+"* * * * * * * * * * * * * * *")
tn.read_until(b"(config)> ", timeout=2)
tn.write('show interface PPTP0'.encode('ascii') + b"\n")
time.sleep(2)
# Парсим вывод комманды 
out1 = tn.read_very_eager().decode('ascii')
out1 = out1.split(' ') 
if 'description:' in out1:
    i4 = out1.index('description:')
    des = (out1[i4 + 1]).strip('\r\n')
else:
    des = 'Подключение VPN не настроенно'
print("* * * * * * *Сбор данных о VPN  --------------------"+Fore.GREEN+" Успех!!!"+Fore.RESET+"* * * * * * * * * * * * * * *")
# Сбор Серийного номера
tn.read_until(b"(config)> ", timeout=2)
tn.write('show defaults'.encode('ascii') + b"\n")
time.sleep(15)
out2 = tn.read_very_eager().decode('ascii')
out2 = out2.split(' ')
if 'serial:' in out2:
    i5 = out2.index('serial:')
    sn = (out2[i5 + 1]).strip('\r\n')
else:
    sn = 'В FW нет serial'
#Сбор MAC Адреса
tn.read_until(b"(config)> ", timeout=1)
tn.write('show interface ISP'.encode('utf-8') + b"\n")
time.sleep(5)
out3 = tn.read_very_eager().decode('utf-8')
out3 = out3.split(' ')
if 'mac:' in out3:
    i6 = out3.index('mac:')
    mac = (out3[i6 + 1]).strip('\r\n')
else:
    mac = 'Не удалось получить mac'
print("* * * * * * *Данные о Serial и MAC получены  -------"+Fore.GREEN+" Успех!!!"+Fore.RESET+"* * * * * * * * * * * * * * *")
outlog = (nowt+";"+iprouter+";"+loginOffice+";"+PassOffice+";"+VPNip+";"+Subnet+";"+IPreg+";"+pas+";"+model+";"+release+";"+sn+";"+mac+";"+des+";"+adress+"\n")
#Запись данных в файл 
handle = open("output_log.csv", "a")
handle.write (outlog)
handle.close()
Можно ли сделать так чтобы скрипт перебирал сначала 2 порта для подключения 23 и 48888 и после удачного подключения начинал перебирать пароли 4шт
Заранее благодарен
py.user.next
WiriNCROSS
Можно ли сделать так
Можно. Но ты лучше поставь Linux, потом поучись программировать. И тогда всё получится. В данном случае ты даже эту простейшую программку написать не в состоянии. Надо это признать.
WiriNCROSS
Спасибо за совет, но вместо того чтобы тешить свое ЧСВ Лучше бы показали как надо сделать, толку от этого для меня было бы больше
py.user.next
WiriNCROSS
Лучше бы показали как надо сделать, толку от этого для меня было бы больше
Да сомнительно как-то, что толк из тебя вообще выйдет какой-то. Когда нужно немного пошевелить пальцем, ты уже начинаешь что-то мямлить мол “покажите, расскажите”. А ведь это самые азы. Что же начнётся, когда реально надо будет тренироваться часами? Знаешь, это как в классических фильмах про кунг-фу: если ученик не может вёдра с водой пронести по доске, наколоть дров там и тому подобное, то мастер с длинной бородой практически молча посылает его на все четыре стороны.
WiriNCROSS
Меня всегда поражают такие люди как вы! Если вы не можете ничего по делу сказать оставьте свое словоблудие для других людей, и не пишите больше в эту ветку, пожалуйста.
xam1816
Почему вы код в теги не обрамляете?Вас самого не смущают вот эти марсианские кавычки
  output_log.csv,
,
Кто может влиять на этот форум,сделайте короткий видеоролик при регистрации,где будет показываться как обрамлять код тегами,ну и пара слов о том,что в сообщении нужно описать в чем проблема,или что не понятно, или в каком месте кода не получается,или почему вылазит ошибка.А для тех кому нужно сделать задачу не вникая в суть процесса,то тут все завит от того, насколько интересна эта задача и как она подана.

WiriNCROSS
Можно ли сделать так чтобы скрипт перебирал сначала 2 порта для подключения 23 и 48888 и после удачного подключения начинал перебирать пароли 4шт

Ответ: Можно

WiriNCROSS
Лучше бы показали как надо сделать, толку от этого для меня было бы больше

Знать что-то или увидеть что-то ,это не тоже самое что и пережить это.

Вопрос: понятно ли вам, что означает или делает каждая строчка в предоставленном коде?
если нет,то как вы поймете мой код, или чей-то другой,когда нужно будет скорректировать задачу
В любом случае начинать нужно с оформления кода в теги первом посте
WiriNCROSS
xam1816
Спасибо код поправил, на вопрос что означает каждая строчка в моем коде отвечаю что да
xam1816
WiriNCROSS
на вопрос что означает каждая строчка в моем коде отвечаю что да

вот эту строчку объясните, что она делает, интересная конструкция
 model = (out)+' '+(out)+' '+(out).strip('\r\n\r\n(config)>')

вот в этом месте

 out = out.split(' ')
if 'description:' in out:
    i1 = out.index('description:')
    model = (out)+' '+(out)+' '+(out).strip('\r\n\r\n(config)>')
WiriNCROSS
Видимо при замене “ ” на ‘ ’ случайно удалил часть кода, сейчас все поправил, а так эта строка загоняет данные о модели сетевого оборудования в переменную model из вывода образованного командой show version.
py.user.next
WiriNCROSS
Здравствуйте помогите реализовать задуманное
Опиши задачу. Этот говнокод, который ты взял неизвестно где (очень похож на индусский код с просто переведёнными на русский фразами) можешь выкидывать спокойно.

Если кратко сказать: этот код писал какой-то дебил, который не знает ни питона, ни программирования, который не знает просто ничего, то есть попросту говоря ламер. Соответственно, если ты ждёшь, что кто-то будет дебильный код поправлять, всеми силами придерживаясь этой дебильной парадигмы, то ты просто этого не дождёшься.

WiriNCROSS
  
model = (out[i1 + 1])+' '+(out[i1 + 2])+' '+(out[i1 + 3]).strip('\r\n\r\n(config)>')
Например, вот в этой строке человек явно не знает, как метод .strip() работает, поэтому наугад пишет какую-то чушь. Это мы даже про круглые скобки не говорим вокруг индексирования элементов. Настолько глубок уровень его идиотизма - очевидно, что он ни одного материала по питону не прочитал и сразу писать начал, не зная также и других языков программирования.
  
>>> 'abc'.strip('\r\n\r\n(config)>')
'ab'
>>>

Так что не надо править этот код. Это как из говна пытаться вкусную кашу сварить, руководствуясь соображением, что мол говно же из каши получилось, а значит получится и кашу сварить из него. Лучше это выкинуть и начать всё правильно делать изначально.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB