Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- ''' автологин на cisco, d'link, huawei
- с детектированием вендора
- '''
- # импортируем необходимые модули
- import pexpect
- from sys import argv
- # принимаем ip адрес аргументом командной строки
- p=pexpect.spawn('telnet %s' % argv[1])
- # данные tacacs+
- login='mylogin'
- password='mypassword'
- ''' первая итерация - детектируем вендора оборудования.
- длинк очень любит хвалиться, поэтому его
- детектируем по наличию текста 'D-Link' в приглашении.
- Остальные отличаются по приглашению ввода логина.
- '''
- i = p.expect(['.D-Link.','login:','Username:'])
- if i == 0:
- print 'D-Link detected'
- p.expect(['login:','UserName:'])
- p.sendline(login)
- p.expect(['Password:','PassWord'])
- p.sendline(password)
- i = p.expect(['.4#', '.3#','.Fail.'])
- if i == 2:
- ''' Как было сказано - НЕ везде работает tacacs, поэтому
- если '.Fail.' - логинимся со стандартным именем и паролем.
- '''
- print 'Wrong credentials! Trying default'
- p.expect(['login:','UserName:'])
- p.sendline('default')
- p.expect(['Password:','PassWord'])
- p.sendline('default')
- ''' Если зашли удачно - то получаем админа. #3 - обычный пользователь,
- #4 - админ
- '''
- elif i == 1:
- print 'enabling admin'
- p.sendline("enable admin")
- p.expect('Password:')
- p.sendline('admin_pass')
- else:
- pass
- p.interact()
- elif i == 1:
- ''' для cisco все проще - получаем enable режим автоматом,
- так что делать ничего не приходится
- '''
- print 'Cisco detected'
- p.sendline(login)
- p.expect('Password:')
- p.sendline(password)
- p.interact()
- elif i == 2:
- ''' Для huawei вводим логин и пароль,
- и переходим в режим привилегированного пользователя sys
- '''
- print 'Huawei detected'
- p.sendline(login)
- p.expect('Password:')
- p.sendline(password)
- p.expect('.')
- print 'enabling sys'
- p.sendline('sys')
- p.interact()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement