Вход на обородование с помощью скриптов

Unanswered Question
Jan 17th, 2012

Кто-нибудь создавал скрипты для автоматического входа на оборудование Cisco?

Я использую операционную систему W7 и Secure CRT (в нем  есть возможность задать "Logon script" с расширениями *.vbe,*.vbs,*.js,*.pe,*.py)

Допустим

Username: cisco

Password: cisco

Enable secret: cisco

Кто-нибудь может привести пример готового скрипта и порядок его запуска?

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Average Rating: 0 (0 ratings)
kbatrako Tue, 01/17/2012 - 19:40

Здравствуйте, Павел.

Пример готового скрипта Python для логина по telnet:

import telnetlib

HOST = "192.168.0.1"

user = "cisco"

pass = "cisco"

enablepass = "cisco"

connect = telnetlib.Telnet(HOST)

connect.read_until(b"login: ")

connect.write(user + "\n")

connect.read_until(b"Password: ")

connect.write(pass + "\n")

connect.write("enable" + "\n")

connect.write(enablepass + "\n")

Не гарантирую, что он заработает прямо в таком виде. Зависит от интерпретатора.

Для подключения по SSH требуется ставить доп. библиотеку.

Pavel Doronin Tue, 01/17/2012 - 20:49

Все это конечно здорово, но предполагает под каждый IP писать свой скрипт. Т.е. кучу файлов.

По поводу интерпретатора - нам еще надо Phython ставить на машину? Или интерпретатор зашит в SecureCRT или где?

Т.е. какое дополнительное ПО нужно для работы скрипта?

Каким образом можно сделать этот файл универсальным - для произвольного IP?

P.S. Я бы сократил так

HOST = "192.168.0.1"

user = "cisco"

pass = "cisco"

enablepass = "cisco"

connect = telnetlib.Telnet(HOST)

connect.write(user + "\n")

connect.write(pass + "\n")

connect.write("enable" + "\n")

connect.write(enablepass + "\n")

А вот от поля HOST желательно бы избавится.

Pavel Doronin Tue, 01/17/2012 - 21:28

На базе

http://www.vandyke.com/support/securecrt/scripts/connect_telnet_vbs.txt

# $language = "VBScript"
# $interface = "1.0"

' Connect to a telnet server and automate the initial login sequence.
' Note that synchronous mode is enabled to prevent server output from
' potentially being missed.

Sub Main

  crt.Screen.Synchronous = True

  ' connect to host on port 23 (the default telnet port)
  '
  crt.Session.Connect "/TELNET login.myhost.com 23"

  crt.Screen.WaitForString "ogin:"

  crt.Screen.Send "myusername" & vbCr

  crt.Screen.WaitForString "assword:"

  crt.Screen.Send "mypassword" & vbCr

  crt.Screen.Synchronous = False

End Sub

Создал свой скрипт

Sub Main()

    crt.Screen.Synchronous = True

    crt.Screen.Send "username" & VbCr

    crt.Screen.Send "password" & VbCr

    crt.Screen.Send "enable" & VbCr

    crt.Screen.Send "enable_password" & VbCr

End Sub

Маленькая хитрость как я избавился от поля HOST в SecureCRT - там можно для сессии задавать Logon Actions - и в них задавать скрипт. В скрипте не обязательно указывать HOST. Его можно явно указать в поле Telnet (SSH). Соответсвенно мы будем на каждую сессию иметь свои настройки Telnet (SSH) и общий файл-скрипт.

Для чего это - допустим мы меняем enable password или user password с помощью CiscoWorks. Autologon в SecureCRT слетает. Затем меняем в файлике эти значения и получаем снова автоматический logon. Удобно когда более 100 точек обороудования. Как защитить и спрятать пароли в файле - отдельная тема.

Actions

Login or Register to take actions

This Discussion

Posted January 17, 2012 at 6:44 PM
Stats:
Replies:4 Avg. Rating:
Views:2300 Votes:0
Shares:0
Tags: No tags.