首页 > 其他分享 >SSH批量连接改密码

SSH批量连接改密码

时间:2024-06-01 23:31:48浏览次数:18  
标签:批量 passwd ip sys 密码 range ssh print SSH

改ip范围

# -*- coding: gbk -*-

import paramiko
import sys

name = sys.argv[1]
passwd = sys.argv[2]
new_passwd = sys.argv[3]

ip_list = []

for i in range(1, 255):  # [1,254]
    ip_list.append(f"192.168.1.{i}")


for ip in ip_list:
    try:
        ssh = paramiko.SSHClient()  # 创建SSH对象
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 允许连接不在know_hosts文件中的主机
        ssh.connect(hostname=ip, port=22, username=name, password=passwd)  # 连接服务器
        print('%s 登录成功!' % ip)
        password_change_command = f"echo '{new_passwd}' | passwd --stdin {name}"
        stdin, stdout, stderr = ssh.exec_command(password_change_command)
        recv = stdout.read().decode()
        if "成功" in recv or "Success" in recv:
            print(f"{ip} 更改成功")
        else:
            print(f"{ip} 更改失败")
        ssh.close()

    except:
        print('登录失败 %s' % ip)

v2 更改为用户输入决定ip范围,限定为一个c段内
样例: python update_passwd.py root toor toor 192.168.1.1-254

import paramiko
import sys

name = sys.argv[1]
passwd = sys.argv[2]
new_passwd = sys.argv[3]
ip_range = sys.argv[4]
ip_range = ip_range.split("-")
ip_range = [ip_range[0].split('.'), ip_range[1]]

ip_c = ip_range[0][0] + "." + ip_range[0][1] + "." + ip_range[0][2]

ip_list = []

for i in range(int(ip_range[0][3]), int(ip_range[1]) + 1):  # [1,254]
    ip_list.append(f"{ip_c}.{i}")


for ip in ip_list:
    try:
        ssh = paramiko.SSHClient()  # 创建SSH对象
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 允许连接不在know_hosts文件中的主机
        ssh.connect(hostname=ip, port=22, username=name, password=passwd)  # 连接服务器
        # stdin, stdout, stderr = ssh.exec_command('cat flag.txt')  # 执行命令并获取命令结果
        # print(stdout.read())
        password_change_command = f"echo '{new_passwd}' | passwd --stdin {name}"
        stdin, stdout, stderr = ssh.exec_command(password_change_command)
        recv = stdout.read().decode()
        if "成功" in recv or "Success" in recv:
            print(f"{ip} 更改成功")
        else:
            print(f"{ip} 更改失败")
        ssh.close()
        print('%s yes!' % ip)
    except:
        print('no %s' % ip)

v3 从文件中获取ip
样例:python update_passwd.py root toor toor iplist.txt

import paramiko
import sys
import re

name = sys.argv[1]
passwd = sys.argv[2]
new_passwd = sys.argv[3]
filename = sys.argv[4]

with open(filename, 'r') as f1:
    ip_list = f1.readlines()

def strip_n(s: str):
    return s.strip("\n")


ip_list = list(map(strip_n, ip_list))

com = re.compile("^\d+\.\d+\.\d+.\d+$")

for ip in ip_list:
    if not com.search(ip):
        print(f"ip error {ip}")
        continue
    try:
        ssh = paramiko.SSHClient()  # 创建SSH对象
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 允许连接不在know_hosts文件中的主机
        ssh.connect(hostname=ip, port=22, username=name, password=passwd)  # 连接服务器
        # stdin, stdout, stderr = ssh.exec_command('cat flag.txt')  # 执行命令并获取命令结果
        # print(stdout.read())
        password_change_command = f"echo '{new_passwd}' | passwd --stdin {name}"
        stdin, stdout, stderr = ssh.exec_command(password_change_command)
        recv = stdout.read().decode()
        if "成功" in recv or "Success" in recv:
            print(f"{ip} 更改成功")
        else:
            print(f"{ip} 更改失败")
        ssh.close()
        print('%s yes!' % ip)
    except:
        print('no %s' % ip)

标签:批量,passwd,ip,sys,密码,range,ssh,print,SSH
From: https://blog.csdn.net/2401_84434570/article/details/139381540

相关文章

  • MongoDB CRUD操作:批量写操作
    MongoDBCRUD操作:批量写操作文章目录MongoDBCRUD操作:批量写操作关于批量操作的顺序bulkWrite()支持的方法举例向分片集合批量插入的策略预分割集合无序写入mongos避免单调节流MongoDB提供了批量执行写入操作的能力,但批量写入操作只影响单个集合,MongoDB允许应用......
  • 【代码片段】使用docker部署nginx 并通过nginx设置密码访问控制
    使用docker部署nginx服务docker-compose.ymlversion:'3'services:web:image:nginxvolumes:-./nginx.conf:/etc/nginx/nginx.confrestart:alwaysports:-"80:80"-"443:443"environment:......
  • 转 Win10 共享文件夹、打印机。 使用微软账户登录共享文件夹,如何确认账号密码。
    目的是通过该方法实现了局域网内 共享目录给电视盒子,放在电视盒子使用。感谢不爱吃山楂大佬https://zhuanlan.zhihu.com/p/446872571   Win10共享文件夹、打印机。使用微软账户登录共享文件夹,如何确认账号密码。......
  • python pip install git+ssh
    网上比较容易找到的是pipinstallgit+https://github.com/waketzheng/fastapi-cdn-host.git这种方式如果电脑未配置或没启用外网加速器,这种方式简直慢得像蜗牛,改用ssh则会块很多很多:一般情况pipinstallgit+ssh://[email protected]/waketzheng/fastapi-cdn-host.git即:只需把h......
  • 从零开始:配置 SSH 并将 Git 项目推送到 GitHub(windows)
    项目推送到github总是遇到如下问题:fatal:unabletoaccess'https://github.com/lw1725908379/power_supply.git/':Failedtoconnecttogithub.comport443after21060ms:Timedout当你使用HTTPS协议推送代码到GitHub时,Git尝试在端口443上与GitHub的服务器建......
  • 如何使用PMKIDCracker对包含PMKID值的WPA2密码执行安全测试
    关于PMKIDCrackerPMKIDCracker是一款针对无线网络WPA2密码的安全审计与破解测试工具,该工具可以在不需要客户端或去身份验证的情况下对包含了PMKID值的WPA2无线密码执行安全审计与破解测试。PMKIDCracker基于纯Python3开发,旨在帮助广大安全研究人员恢复WPA2WiFi网络的预共......
  • 如何给PDF文件设置密码?
    PDF文件是我们日常生活和工作中常见的文件格式。有时为了保护文档需要给PDF添加密码,如何给PDF文档加密?目前市面上的加密软件虽然有很多,但是否有即免费有好用的PDF加密软件呢?答案当然是肯定的,一起看看吧。方法一:在线PDF加密在线转换工具是一种方便快捷的转换方式。有许多免费的在......
  • 【使用技巧】CodeDecom.exe批量反编译JAR包+Beyond Compare对比
    使用工具进行批量反编译+差异对比,检查确认补丁变更D:\tmp\test\CodeDecom>CodeDecom.exe source D:\tmp\test\jarForder  D:\tmp\test\codeForder......
  • 取消自动填充密码
    type="text",autocomplete="off"<inputtype="text"name="password"style="text-security:disc;-webkit-text-security:disc;"autocomplete="off"使用font-family:'dotsfont';@font-face{......
  • 【爬虫软件】关键词批量采集小红书笔记正文工具
    一、背景介绍1.1爬取目标熟悉我的小伙伴都了解,我之前开发过2款软件:【xhs爬虫软件】用Python开发的小红书关键词搜索批量采集工具【爬虫软件】用Python开发的小红书详情批量采集工具,含笔记正文、转评赞藏等现在介绍的这个软件,相当于以上2个软件的结合版,即根据关键词爬取笔......