网工批量修改SecureCRT会话密码脚本(只要是批量修改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文件里面的密码

 1 import os
 2 def change_crtPw(file_path_base, inrootpath):
 3     """
 4     :param file_path_base: 以那个配置文件的密码为基准
 5     :param inrootpath: CRT的session目录路径
 6     :return: 无返回值
 7     """
 8     f = open(file_path_base)  # 返回一个文件对象
 9     for line in f:
10             try:
11                 #需要提取出这个文件的密码,Monitor Password好像是没啥用的,反正套路都一样,需要提取啥都在这写,但是这个continue要写上,不然下面会重复匹配到这个
12                 if line.find("\"Monitor Password V2\"") != -1:
13                     Monitor_PW = line.split("=")[1].strip()
14                     continue
15                 #这个才是真的需要修改的密码,就是去你的基准文件里面,找到加密后的密码,没必要自己写个算法去破解再加密;同理你也可以匹配出用户名来
16                 if line.find("\"Password V2\"") != -1:
17                     PW = line.split("=")[1].strip()
18                     break
19             except Exception as e:
20                 print('获取基准配置文件失败')
21 
22 #遍历整个文件目录
23     for root, dirs, files in os.walk(inrootpath):
24         for file in files:
25             file_path = os.path.join(root, file)
26             # 这段代码的用处是把其他需要修改密码的文件配置抓出来,同时把密码修改为新密码,存在temp_config中
27             with open(file_path, 'r', encoding='utf-8') as tf1:
28                 temp_config = ''
29                 for t_line in tf1:
30                     try:
31                         if t_line.find("\"Monitor Password V2\"") != -1:
32                             temp_Monitor_PW = t_line.split("=")[1].strip()
33                             t_line= t_line.replace(temp_Monitor_PW, Monitor_PW)
34                             temp_config += t_line
35                             continue
36                         if t_line.find("\"Password V2\"") != -1:
37                             temp_PW = t_line.split("=")[1].strip()
38                             t_line= t_line.replace(temp_PW, PW)
39                             temp_config += t_line
40                             continue
41                         temp_config += t_line
42                     except Exception as e:
43                         print('修改{}配置失败'.format(file))
44             #这段代码的意思是把修改过的配置文件全部写回到文件中,这样会清空原配置文件,重写配置
45             with open(file_path, 'w', encoding='utf8') as f:
46                 f.write(temp_config)
47                 f.flush()
48                 print('修改{}配置成功'.format(file))
49 
50 #基准配置文件,就是你这个配置文件的密码是准确的;这个地方是CRT的Session里面你修改过密码的一份主机配置文件
51 file_path_base = r"XXX\XXX.ini"
52 # CRT的SESSION目录,这个地方路径是sessions的目录
53 inrootpath = r'xxx\xxx\Sessions'
54 change_crtPw(file_path_base, inrootpath)

 

posted @ 2022-01-29 10:45  ROMIN  阅读(2332)  评论(0编辑  收藏  举报