Уведомления

Группа в Telegram: @pythonsu

#1 Март 19, 2021 10:54:47

WiriNCROSS
Зарегистрирован: 2019-12-02
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

Здравствуйте помогите реализовать задуманное
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шт
Заранее благодарен

Отредактировано WiriNCROSS (Март 23, 2021 07:10:34)

Офлайн

#2 Март 19, 2021 11:51:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

WiriNCROSS
Можно ли сделать так
Можно. Но ты лучше поставь Linux, потом поучись программировать. И тогда всё получится. В данном случае ты даже эту простейшую программку написать не в состоянии. Надо это признать.



Офлайн

#3 Март 22, 2021 08:57:20

WiriNCROSS
Зарегистрирован: 2019-12-02
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

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

Офлайн

#4 Март 22, 2021 09:58:59

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

WiriNCROSS
Лучше бы показали как надо сделать, толку от этого для меня было бы больше
Да сомнительно как-то, что толк из тебя вообще выйдет какой-то. Когда нужно немного пошевелить пальцем, ты уже начинаешь что-то мямлить мол “покажите, расскажите”. А ведь это самые азы. Что же начнётся, когда реально надо будет тренироваться часами? Знаешь, это как в классических фильмах про кунг-фу: если ученик не может вёдра с водой пронести по доске, наколоть дров там и тому подобное, то мастер с длинной бородой практически молча посылает его на все четыре стороны.



Офлайн

#5 Март 22, 2021 11:45:02

WiriNCROSS
Зарегистрирован: 2019-12-02
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

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

Отредактировано WiriNCROSS (Март 22, 2021 11:47:54)

Офлайн

#6 Март 22, 2021 12:41:56

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

Почему вы код в теги не обрамляете?Вас самого не смущают вот эти марсианские кавычки

  output_log.csv,
,
Кто может влиять на этот форум,сделайте короткий видеоролик при регистрации,где будет показываться как обрамлять код тегами,ну и пара слов о том,что в сообщении нужно описать в чем проблема,или что не понятно, или в каком месте кода не получается,или почему вылазит ошибка.А для тех кому нужно сделать задачу не вникая в суть процесса,то тут все завит от того, насколько интересна эта задача и как она подана.

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

Ответ: Можно

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

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

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

Офлайн

#7 Март 22, 2021 13:23:44

WiriNCROSS
Зарегистрирован: 2019-12-02
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

xam1816
Спасибо код поправил, на вопрос что означает каждая строчка в моем коде отвечаю что да

Офлайн

#8 Март 22, 2021 20:39:35

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

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)>')

Офлайн

#9 Март 23, 2021 07:15:55

WiriNCROSS
Зарегистрирован: 2019-12-02
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

Видимо при замене “ ” на ‘ ’ случайно удалил часть кода, сейчас все поправил, а так эта строка загоняет данные о модели сетевого оборудования в переменную model из вывода образованного командой show version.

Отредактировано WiriNCROSS (Март 23, 2021 07:16:36)

Офлайн

#10 Март 23, 2021 21:56:41

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Перебор паролей и портов в telnetlib

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'
>>>

Так что не надо править этот код. Это как из говна пытаться вкусную кашу сварить, руководствуясь соображением, что мол говно же из каши получилось, а значит получится и кашу сварить из него. Лучше это выкинуть и начать всё правильно делать изначально.



Отредактировано py.user.next (Март 23, 2021 22:09:12)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version