Использование telnet для управления телевизором и модемом

Автор: | 15.11.2022

Протокол telnet предназначен для управления различными сетевыми устройствами. На сегодняшний день он считается устаревшим и не соответствующим современным требованиям безопасности, однако до сих пор широко используется для настройки самых разных сетевых устройств, в том числе домашних, включая телевизоры, имеющие доступ к глобальной сети интернет, и модемы (роутеры), обеспечивающие этот доступ.

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

Самое главное, что пользоваться протоколом telnet могут почти все: он поддерживается всеми современными операционными системами напрямую, также доступно множество сторонних программ для работы с ним.

Например, все операционные системы Windows, начиная с Windows 7, имеют встроенный telnet-клиент. Чтобы проверить, включен ли он, нужно запустить командную строку, ввести команду telnet и посмотреть результат. Если вы получили сообщение

"telnet" не является внутренней или внешней командой,
исполняемой программой или пакетным файлом

то это значит, что протокол telnet надо включить. Сделать это можно несколькими способами.

1. Включение протокола telnet компонентах Windows

Нажмите сочетание клавиш Win+R, в открывшемся окне «Выполнить» введите команду OptionalFeatures и нажмите клавишу Enter. Откроется окно «Компоненты Windows», в котором через несколько секунд отобразится список доступных компонент. Установите флажок в строке «Клиент Telnet» и нажмите кнопку OK.

2. Включение протокола telnet через командную строку

Чтобы включить клиент протокола telnet, запустите командную строку от имени администратора и выполните команду

Dism /online /Enable-Feature /FeatureName:TelnetClient

3. Включение протокола telnet через PowerShell (Windows 10)

Если у вас установлена Windows 10, нажмите сочетание клавиш Win+X или щелкните правой кнопкой мыши по кнопке Пуск в панели задач, затем в появившемся контекстном меню выберите пункт «Windows PowerShell (администратор)».  В открывшемся окне выполните команду

Enable-WindowsOptionalFeature –FeatureName "TelnetClient" -Online

 

Использование telnet для управления модемом

После того, как клиент протокола telnet установлен, его можно использовать для управления устройствами в вашей сети.

Чтобы воспользоваться telnet, нужно сначала запустить командную строку (например, нажать Win+R, ввести команду cmd и нажать кнопку OK). Затем, чтобы подключиться к устройству, надо ввести в командной строке команду «telnet» и через пробел IP-адрес нужного устройства. Например:

telnet 192.168.100.1

Если устройство с указанным адресом находится в сети и поддерживает протокол telnet, то вы увидите сообщение об успешном подключении к устройству или о необходимости ввода логина и пароля. В приведенном выше примере указан стандартный IP-адрес оптоволоконного модема (роутера) для абонентов провайдера «Белтелеком». При успешном подключении вам потребуется ввести логин, а затем пароль для доступа к настройкам модема. Логин и пароль для доступа к настройкам модема через протокол telnet обычно отличается от логина и пароля для доступа к настройкам через веб-интерфейс. Публиковать стандартные пароли для протокола telnet в разных моделях модемов я не буду (при желании все можно найти в интернете), но замечу, что через telnet можно узнать, например, забытый пароль к веб-интерфейсу устройства.

Примечание: стандартные логины и пароли веб-интерфейсов модемов «Белтелеком» можно узнать из этой статьи.

Если ваша модель модема поддерживает управление по протоколу telnet, можно сделать удобную перезагрузку модема прямо с компьютера без необходимости использования веб-интерфейса или физического нажатия кнопки на модеме (который зачастую любят располагать в труднодоступных местах). К сожалению, telnet не позволяет автоматизировать ввод команд с помощью командных batch-файлов *.bat или *.cmd, однако для автоматизации вполне можно использовать скрипты. Рассмотрим пример скрипта для перезагрузки модема (под спойлером).

Пример скрипта для перезагрузки модема

Set wshShell = WScript.CreateObject("WScript.Shell")
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
wshShell.Run "telnet.exe 192.168.100.1"
WScript.Sleep 1000
wshShell.SendKeys "root~"
WScript.Sleep 1000
wshShell.SendKeys "root~"
WScript.Sleep 1000
wshShell.SendKeys "reboot~"
WScript.Sleep 5000
Set ProcList = oWMI.ExecQuery("Select * from Win32_Process Where Name = 'telnet.exe'")
For Each oProc in ProcList
oProc.Terminate()
Next

[свернуть]

Разберем этот скрипт подробнее. В первых двух строках создаются 2 объекта, с помощью которых мы будем управлять запуском клиента telnet, вводом нужных команд и закрытием процесса в после выполненной работы. Третья команда запускает клиент telnet и пытается установить соединение с устройством по указанному IP-адресу. При необходимости замените адрес на адрес своего устройства.

wshShell.Run "telnet.exe 192.168.100.1"

Далее устанавливаем время ожидания до выполнения следующей команды, его можете варьировать по необходимости от 100 до 1000 и более миллисекунд.

WScript.Sleep 1000

Далее необходимо отправить на устройство логин и пароль для входа. Для этого служат две последовательные команды вида

wshShell.SendKeys "root~"

Команды отправляют в окно telnet заданную последовательность символов, при этом символ «~» означает нажатие клавиши Enter, вместо него можно использовать комбинацию {ENTER}. В примере мы последовательно отправляем на устройство логин root, эмулируем нажатие клавиши Enter, затем после ожидания отправляем пароль root и нажатие клавиши Enter. Перед использованием примера пропишите в командах логин и пароль для протокола telnet вашего устройства.

Затем аналогичным образом на устройство посылается команда для перезагрузки.

wshShell.SendKeys "reboot~"

В последних 4 строках скрипта реализован перебор в цикле все запущенных на компьютере процессов и завершение работы процесса с именем telnet.exe, то есть закрытие окна клиента telnet. Вторую строку скрипта и его 4 последние строки можно удалить, тогда окно для ввода команд останется на экране и его нужно будет закрыть самостоятельно.

Чтобы использовать данный скрипт, скопируйте его текст в «Блокнот» или другой текстовый редактор и сохраните файл с расширением *.vbs. Запускайте скрипт двойным щелчком по файлу в «Проводнике» или сделайте для него ярлык на рабочем столе.

Примечание: на 64-битных системах при запуске скрипта из 32-битного приложения (например, из Total Commander) он не сработает, поэтому используйте ярлык или «Проводник». Описание причин и способ их обхода сильно увеличит статью, поэтому ограничусь этим примечанием.

Если вы не хотите возиться с копированием текста, можете скачать готовый файл скрипта для перезагрузки модема. Перед запуском не забудьте исправить в нем IP-адрес, логин и пароль на значения, необходимые для доступа к вашему устройству.

 

Использование telnet для управления телевизором

Аналогичным образом можно получить доступ к управлению прочими устройствами в домашней сети, которые поддерживают протокол telnet. Например, если у вас есть телевизор с поддержкой SmartTV, то он также может быть доступен через telnet. Некоторые вопросы настроек телевизоров LG по протоколам telnet и SSH (например, при отсутствии доступа к некоторым сайтам) рассматривались в этой статье.

Если вы воспользовались рекомендациями, предложенными в указанной статье, то могли столкнуться с ситуацией, когда после отключения ТВ от сети питания (пропало электричество или выдернули вилку из сети) на телевизоре начинают появляться сообщения

Failsafe mode! Open telnet and remove /var/luna/preferences/webosbrew_failsafe

Это означает, что телевизор перешел в режим, в котором возможно подключение по протоколу telnet для исправления настроек. В данном примере переход произошел в связи с банальным сбоем электропитания, но в общем такой механизм защиты позволяет вернуться к начальным параметрам при различных ошибках в настройке оборудования.

В статье описывается использование telnet/SSH-клиента PuTTY, но убрать назойливое сообщение о переходе телевизора в безопасный режим можно и через встроенный telnet-клиент Windows, используя те же команды. Для частого применения можно создать скрипт примерно следующего содержания (под спойлером):

Пример скрипта для отключения сообщения о безопасном режиме ТВ LG

set WSS = WScript.CreateObject("WScript.Shell")
WSS.run("cmd.exe")
WScript.Sleep 1000
WSS.SendKeys("telnet 192.168.100.5{ENTER}")
WScript.Sleep 1000
WSS.SendKeys("rm /var/luna/preferences/webosbrew_failsafe{ENTER}")
WScript.Sleep 1000
WSS.SendKeys("reboot{ENTER}")

[свернуть]

Команды разбирать не буду, здесь принцип такой же, как и в примере выше, но добавлен запуск командного окна cmd и не предусмотрено его автоматическое закрытие (это разные примеры, в которых был применен разный подход к запуску telnet). Готовый файл скрипта можно скачать по этой ссылке, не забудьте только заменить IP-адрес на адрес вашего устройства.

Share

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *