网工批量修改SecureCRT会话密码脚本

Posted Romin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网工批量修改SecureCRT会话密码脚本相关的知识,希望对你有一定的参考价值。

需求:SecureCRT是网络运维人员常用的一个软件工具,但是每次修改3A密码后,所有保存在SecureCRT里面会话的密码都要修改,看了网络的一些修改方法,有些让你破解原密码的,有些是linux的修改方式,所以写个脚本分析给广大网工,用于修改网络主机的SecureCRT密码;复制粘贴就可以使用,转载记得粘贴出处

 

修改原理:我们需要把SecureCRT的Sessions密码全部换成新密码就行了,但是这个密码是加密的

SecureCRT的配置文件通常以.ini文件命名,保存在Sessions目录里面,该目录可以通过Options-> Global Options-> General-> Configuration Paths里面查看,打开配置文件可以看到保存的用户名Username和密码Password V2选项;我们可以先修改自己的3A密码,然后登录一台主机A作为模板机,登录的时候SecureCRT会提示密码错误,然后输入新密码后,这台主机A的这个A.ini配置文件里面的密码就是加密后的新密码,我们要把这个密码复制替换自己SecureCRT的Sessions里面所有会话的密码部分;那样就可以解决自己不知道加密后密码问题。

 

 

 

Python配置脚本以及该脚本的用法说明

只需要复制该脚本,把file_path_base的路径指向自己修改过新密码的主机配置,inrootpath的路径指向SecureCRT的Sessions目录,然后执行该脚本即可;

温馨提示:作为运维人员,要时刻懂得备份配置,记得备份自己原本的Sessions目录,万一炸锅了还能恢复一下,同理这个脚本也可以用来修改linux主机的密码,只是要自己稍作修改

参考:Python批量修改SecureCRT会话密码 - baby神 - 博客园 (cnblogs.com)

搜索批量修改SecureCRT密码基本是搜到这篇,只是一开始我没认真看他的代码,他代码写的比我简洁多了,我只是实现了功能,代码基本原理就是遍历整个目录,修改.ini文件里面的密码

 import os
 def change_crtPw(file_path_base, inrootpath):
     """
     :param file_path_base: 以那个配置文件的密码为基准
     :param inrootpath: CRT的session目录路径
     :return: 无返回值
     """
     f = open(file_path_base)  # 返回一个文件对象
     for line in f:
             try:
                 #需要提取出这个文件的密码,Monitor Password好像是没啥用的,反正套路都一样,需要提取啥都在这写,但是这个continue要写上,不然下面会重复匹配到这个
                 if line.find("\\"Monitor Password V2\\"") != -1:
                     Monitor_PW = line.split("=")[1].strip()
                     continue
                 #这个才是真的需要修改的密码,就是去你的基准文件里面,找到加密后的密码,没必要自己写个算法去破解再加密;同理你也可以匹配出用户名来
                 if line.find("\\"Password V2\\"") != -1:
                     PW = line.split("=")[1].strip()
                     break
             except Exception as e:
                 print(\'获取基准配置文件失败\')
 
 #遍历整个文件目录
     for root, dirs, files in os.walk(inrootpath):
         for file in files:
             file_path = os.path.join(root, file)
             # 这段代码的用处是把其他需要修改密码的文件配置抓出来,同时把密码修改为新密码,存在temp_config中
             with open(file_path, \'r\', encoding=\'utf-8\') as tf1:
                 temp_config = \'\'
                 for t_line in tf1:
                     try:
                         if t_line.find("\\"Monitor Password V2\\"") != -1:
                             temp_Monitor_PW = t_line.split("=")[1].strip()
                             t_line= t_line.replace(temp_Monitor_PW, Monitor_PW)
                             temp_config += t_line
                             continue
                         if t_line.find("\\"Password V2\\"") != -1:
                             temp_PW = t_line.split("=")[1].strip()
                             t_line= t_line.replace(temp_PW, PW)
                             temp_config += t_line
                             continue
                         temp_config += t_line
                     except Exception as e:
                         print(\'修改配置失败\'.format(file))
             #这段代码的意思是把修改过的配置文件全部写回到文件中,这样会清空原配置文件,重写配置
             with open(file_path, \'w\', encoding=\'utf8\') as f:
                 f.write(temp_config)
                 f.flush()
                 print(\'修改配置成功\'.format(file))
 
 #基准配置文件,就是你这个配置文件的密码是准确的;这个地方是CRT的Session里面你修改过密码的一份主机配置文件
 file_path_base = r"XXX\\XXX.ini"
 # CRT的SESSION目录,这个地方路径是sessions的目录
 inrootpath = r\'xxx\\xxx\\Sessions\'
 change_crtPw(file_path_base, inrootpath)

 

以上是关于网工批量修改SecureCRT会话密码脚本的主要内容,如果未能解决你的问题,请参考以下文章

securecrt怎么修改密码

如何使用SecureCrt这个代替超级终端的网工必带软件

SecureCRT远程登录Unix主机时(telnet和ssh)能不能自动输入账号和密码,然后怎样让其自动执行脚本,谢谢啦

securecrt查看里没有会话管理

批量修改Linux密码脚本(Python)

批量修改Linux密码脚本(Python)