import paramiko

ssh = paramiko.SSHClient()  # 创建SSH对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 允许连接不在know_hosts文件中的主机
ssh.connect(hostname='192.168.1.1', port=22, username='root', password='123456')  # 连接服务器

stdin, stdout, stderr = ssh.exec_command("ls /dev/shm | grep m64")  # 执行命令并获取命令结果
# stdin为输入的命令
# stdout为命令返回的结果
# stderr为命令错误时返回的结果
res, err = stdout.read(), stderr.read()
result = res if res else err
print(result.decode().strip())
if result == b'm64\n':
    print("这台机器有m64病毒")
    stdin, stdout, stderr = ssh.exec_command("rm -rf /dev/shm/m64")  # 执行命令并获取命令结果
    # stdin为输入的命令
    # stdout为命令返回的结果
    # stderr为命令错误时返回的结果
    res, err = stdout.read(), stderr.read()
    result = res if res else err
    print(result.decode().strip())
    print("m64已删除")
    stdin, stdout, stderr = ssh.exec_command("rm -rf /dev/shm/config.json")  # 执行命令并获取命令结果
    # stdin为输入的命令
    # stdout为命令返回的结果
    # stderr为命令错误时返回的结果
    res, err = stdout.read(), stderr.read()
    result = res if res else err
    print(result.decode().strip())
    print("config.json已删除")
    stdin, stdout, stderr = ssh.exec_command("rm -rf /dev/shm/pulse-shm-1097641233")  # 执行命令并获取命令结果
    # stdin为输入的命令
    # stdout为命令返回的结果
    # stderr为命令错误时返回的结果
    res, err = stdout.read(), stderr.read()
    result = res if res else err
    print(result.decode().strip())
    print("pulse已删除")
    stdin, stdout, stderr = ssh.exec_command("rm -rf /root/.ssh/scan.conf")  # 执行命令并获取命令结果
    # stdin为输入的命令
    # stdout为命令返回的结果
    # stderr为命令错误时返回的结果
    res, err = stdout.read(), stderr.read()
    result = res if res else err
    print(result.decode().strip())
    print("scan.conf已删除")
    stdin, stdout, stderr = ssh.exec_command(
        "ps -ef |grep m64  | grep -v ps -ef |awk '{print $2}'|awk 'NR==1'")  # 执行命令并获取命令结果
    # stdin为输入的命令
    # stdout为命令返回的结果
    # stderr为命令错误时返回的结果
    res, err = stdout.read(), stderr.read()
    result = res if res else err
    print(result.decode().strip())
    print("PID 是", result)

    command1 = "kill -9" + " " + result.decode().strip()
    print(command1)
    stdin, stdout, stderr = ssh.exec_command(command1)  # 执行命令并获取命令结果
    # stdin为输入的命令
    # stdout为命令返回的结果
    # stderr为命令错误时返回的结果
    res, err = stdout.read(), stderr.read()
    result = res if res else err
    print(result)
    print("PID 已杀")
else:
    print("这台机器不是m64病毒")

ssh.close()  # 关闭连接

首先删除病毒文件,再通过ps 获取进程的pid 拼接成字符串 再通过kill-9 PID 杀进程,从而彻底杀掉病毒。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐