TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #1139 8.18K
Делал это для автоматического выполнения разных команд на сетевом оборудовании и парсинга по разным критериям.

🔤🔤🔥🔤🔤🔤🔤🔤 🔤🔤

Подключение к telnet c аутентификацией

def respond_to_telnet_commands(sock, data):
"""Отвечает на IAC-команды, отправляя WONT на все DO и DONT на все WILL."""
i = 0
while i < len(data):
if data[i] == 0xff and i + 2 < len(data): # IAC
command, option = data[i + 1], data[i + 2]
if command == 0xfd: # DO
sock.send(bytes([0xff, 0xfc, option])) # WONT
elif command == 0xfb: # WILL
sock.send(bytes([0xff, 0xfe, option])) # DONT
i += 3
else:
i += 1


respond_to_telnet_commands - функция понадобится только если в ответе от сервера получаем такое b"\xff\xfb%\xff\xfb&\xff\xfd\x18\xff\xfd \xff\xfd#\xff\xfd'\xff\xfd$".

Если же в конце этой кишки будет login то всё ок можно сразу отправлять логин sock.send(b'login\r\n')

Подключение через ipython:

import socket
sock = socket.socket()
sock.connect(('192.168.1.100', 5000))
data = sock.recv(1024)
print(data)
respond_to_telnet_commands(sock, data)
data = sock.recv(1024)
print(data)
respond_to_telnet_commands(sock, data)
data = sock.recv(1024)
print(data)
sock.send(b'<login>\r\n')
data = sock.recv(1024)
print(data)
sock.send(b'<pass>\r\n')
data = sock.recv(1024)
print(data)
sock.send(b'<command>\r\n')
data = sock.recv(1024)
print(data.decode())


Подключение к telnet без аутентификации
ㅤ
В /etc/inetd.conf добавить:

5000 stream tcp nowait root /usr/local/bin/telnet_noauth 


telnet_noauth - 5000 можно заменить на любой порт или написать просто telnet будет использоваться для подключения порт 23

<service_name>: имя службы (например, telnet), соответствует записи в /etc/services.

<socket_type>: обычно stream (для TCP) или dgram (для UDP).

<protocol>: протокол, например, tcp или udp.

<wait/nowait>: wait (ждёт завершения процесса) или nowait (многопоточный).

<user>: пользователь, от имени которого запускается служба (например, root).

<server_program>: путь к исполняемому файлу службы (например, /usr/sbin/in.telnetd).

<server_args>: аргументы для программы (обычно имя программы).

Добавить скрипт telnet_noauth с содержимым:

#!/bin/bash                                                           

/bin/bash -i


Дать права на исполнения:

chmod +x /usr/local/bin/**telnet_noauth**


Подключение через ipython:

import socket
sock = socket.socket()
sock.connect(('192.168.1.100', 5000))
data = sock.recv(1024)
print(data)
sock.send(b'<command>\r\n')
data = sock.recv(1024)
print(data.decode())


Такие дела!

🛠 #балансбатл
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
More from @bashdays
  1. Sep 25, 2026ИИ-агент может быть у каждого: создать персонального помощника можно без настройки серверо…
  2. Sep 25, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  3. Sep 24, 2026✨ Как настроить PostgreSQL для продакшен-нагрузок При переходе к продакшен-нагрузкам важно…
  4. Sep 24, 2026Post #1565
  5. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  6. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →