当前位置: 首页 > news >正文

构建SSH僵尸网络

import argparse
import paramiko# 定义一个名为Client的类,用于表示SSH客户端相关操作
class Client:# 类的初始化方法,接收主机地址、用户名和密码作为参数def __init__(self, host, user, password):self.host = hostself.user = userself.password = password# 创建一个paramiko的SSHClient实例,用于后续的SSH连接操作self.client = paramiko.SSHClient()# 设置自动添加主机密钥策略,避免出现未知主机密钥时连接失败self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 调用连接方法,尝试建立SSH连接self.connect()# 定义连接方法,用于建立到指定主机的SSH连接def connect(self):try:# 使用提供的主机、用户名和密码进行SSH连接self.client.connect(self.host, username=self.user, password=self.password)print(f"[+] Connected to {self.host}")except Exception as e:print(f"[-] Error connecting to {self.host}: {e}")# 用于在已连接的SSH会话上执行命令,并返回命令的输出结果def send_command(self, cmd):# 在SSH会话上执行命令,获取标准输入、标准输出和标准错误输出流stdin, stdout, stderr = self.client.exec_command(cmd)# 读取标准输出内容,并使用utf-8编码将字节数据转换为字符串output = stdout.read().decode('utf-8')# 读取标准错误输出内容,并进行同样的编码转换error = stderr.read().decode('utf-8')if error:print(f"[-] Error executing command on {self.host}: {error}")return output# 类方法,用于向所有已添加到botNet列表中的客户端发送相同命令,并收集结果@classmethoddef botnet_command(cls, command):results = []# 遍历botNet列表中的每个客户端实例for client in cls.botNet:# 在每个客户端上执行命令,并获取输出结果output = client.send_command(command)# 将客户端的主机地址和对应的命令输出结果作为元组添加到results列表中results.append((client.host, output))return results# 类方法,用于向botNet列表中添加一个新的客户端实例@classmethoddef add_client(cls, host, user, password):client = cls(host, user, password)cls.botNet.append(client)# 类方法,用于关闭所有已添加到botNet列表中的客户端的SSH连接@classmethoddef close_all_connections(cls):for client in cls.botNet:client.client.close()print(f"[+] Connection to {client.host} closed")# 初始化一个空的botNet列表,用于存储所有的客户端实例
Client.botNet = []def main():# 创建一个命令行参数解析器对象,用于解析用户输入的命令行参数parser = argparse.ArgumentParser(description='SSH Botnet Client')# 添加一个名为--host的命令行参数,可接收多个值,用于指定要连接的主机地址parser.add_argument('--host', nargs='+', help='Host(s) to connect to')# 添加一个名为--user的命令行参数,可接收多个值,用于指定SSH连接的用户名parser.add_argument('--user', nargs='+', help='Username(s) for SSH connection')# 添加一个名为--password的命令行参数,可接收多个值,用于指定SSH连接的密码parser.add_argument('--password', nargs='+', help='Password(s) for SSH connection')args = parser.parse_args()# 检查是否缺少必要的命令行参数,如果缺少则报错if not args.host or not args.user or not args.password:parser.error('Missing required arguments')# 检查主机地址、用户名和密码的数量是否一致,如果不一致则报错if len(args.host)!= len(args.user) or len(args.host)!= len(args.password):parser.error('The number of hosts, users, and passwords must be the same')# 通过循环,为每个主机地址、用户名和密码的组合创建一个Client实例,并添加到botNet列表中for host, user, password in zip(args.host, args.user, args.password):Client.add_client(host, user, password)print("Connected to all hosts. Enter 'exit' to quit.")while True:command = input("Enter command: ")if command.lower() == 'exit':breakresults = Client.botnet_command(command)for host, output in results:print(f"Output from {host}:")print(output)# 关闭所有已添加的客户端的SSH连接Client.close_all_connections()if __name__ == '__main__':main()
运行方法:
第一种:终端控制:python your_script.py --host IP1 IP2 --user user1 user2 --password password1 password2

输出结果:


 

相关文章:

构建SSH僵尸网络

import argparse import paramiko# 定义一个名为Client的类,用于表示SSH客户端相关操作 class Client:# 类的初始化方法,接收主机地址、用户名和密码作为参数def __init__(self, host, user, password):self.host hostself.user userself.password pa…...

WPF中MVVM工具包 CommunityToolkit.Mvvm

CommunityToolkit.Mvvm,也称为MVVM工具包,是Microsoft Community Toolkit的一部分。它是一个轻量级但功能强大的MVVM(Model-View-ViewModel)库,旨在帮助开发者更容易地实现MVVM设计模式。 特点 独立于平台和运行时&a…...

学习空闲任务函数

一、user_StopEnterTask 停止 进入任务 /* Private includes -----------------------------------------------------------*/ //includes #include "user_TasksInit.h" #include "user_MPUCheckTask.h"#include "ui.h" #include "ui_Hom…...

Hyper-v中ubuntu与windows文件共享

Hyper-v中ubuntu与windows文件共享 前言相关链接第一步--第一个链接第二步--第二个链接测试与验证 前言 关于Hyper-V的共享我搞了好久,网上的很多教程太过冗余,我直接采用最简单的办法吧 相关链接 Hyper-V中Ubuntu 同windows系统共享文件夹-百度经验 …...

【软件工程】一篇入门UML建模图(类图)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀软件开发必练内功_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…...

Windows 安装Docker For Desktop概要

Windows 安装docker 下载部分的工作需要使用科学技术。如果没有可以联系博主发送已下载好的文件。 本文档不涉及技术的讲解,仅有安装的步骤。 准备工作 包含下载与环境准备,下载的文件仅下载,在后续步骤进行安装。 微软关于wsl的文档&…...

解决循环依赖报错问题

Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name ‘asyncTaskServiceImpl’: Bean with name ‘asyncTaskServiceImpl’ has been injected into other beans [resignServiceImpl] in its raw version as part…...

代码随想录第46期 单调栈

这道题主要是单调栈的简单应用 class Solution { public:vector<int> dailyTemperatures(vector<int>& T) {vector<int> result(T.size(),0);stack<int> st;st.push(0);for(int i1;i<T.size();i){if(T[i]<T[st.top()]){st.push(i);}else{wh…...

中仕公考怎么样?事业编面试不去有影响吗?

事业编考试笔试已经通过&#xff0c;但是面试不去参加会有影响吗&#xff1f; 1. 自动放弃面试资格&#xff1a;未能按时出席事业单位的面试将被视为主动放弃该岗位的竞争机会。 2. 个人信誉问题&#xff1a;面试作为招聘流程的关键步骤&#xff0c;无故缺席可能被解释为诚信…...

OMV7 树莓派 tf卡安装

​ 升级7之后&#xff0c;问题多多&#xff0c;不是docker不行了&#xff0c;就是代理不好使 今天又重装了一遍&#xff0c;用官方的链接&#xff0c;重新再折腾一遍…… 使用raspberry pi imager安装最新版lite OS。 注意是无桌面 Lite版 配置好树莓派初始化设置&#xff0…...

Go语言24小时极速学习教程(五)Go语言中的SpringMVC框架——Gin

作为一个真正能用的企业级应用&#xff0c;怎么能缺少RESTful接口呢&#xff1f;所以我们需要尝试在Go语言环境中写出我们的对外接口&#xff0c;这样前端就可以借由Gin框架访问我们数据库中的数据了。 一、Gin框架的使用 1. 安装 Gin 首先&#xff0c;你需要在你的 Go 项目…...

【汇编】c++游戏开发

由一起学编程创作的‘C/C项目实战&#xff1a;2D射击游戏开发&#xff08;简易版&#xff09;&#xff0c; 440 行源码分享来啦~’&#xff1a; C/C项目实战&#xff1a;2D射击游戏开发&#xff08;简易版&#xff09;&#xff0c; 440 行源码分享来啦~_射击c-CSDN博客文章浏览…...

Android Studio | 修改镜像地址为阿里云镜像地址,启动App

在项目文件的目录下的 settings.gradle.kts 中修改配置&#xff0c;配置中包含插件和依赖项 pluginManagement {repositories {maven { urluri ("https://www.jitpack.io")}maven { urluri ("https://maven.aliyun.com/repository/releases")}maven { urlu…...

Rocky linux8 安装php8.0

Rocky linux8 安装php8.0 1.安装remi源2.列出php版本3.变更php版本&#xff0c;Rocky8有提供php8版本&#xff0c;所以切换Rocky8提供的版本&#xff0c;而不是remi提供的版本&#xff0c;不过remi有提供php8.1和php8.2版本。4.切换成remi提供的8.0版本5.安装phpendl 1.安装rem…...

Ubuntu 18 EDK2 环境编译

视频&#xff1a;在全新的Ubuntu上从零搭建UEFI的EDK2开发环境 开始&#xff1a;git clone https://github.com/tianocore/edk2.git 开始编译BaseTools前先更新一下子模块&#xff1a;git submodule update --init &#xff0c;然后&#xff1a;make -C BaseTools/ 问题1&a…...

C语言项⽬实践-贪吃蛇

目录 1.项目要点 2.窗口设置 2.1mode命令 2.2title命令 2.3system函数 2.Win32 API 2.1 COORD 2.2 GetStdHandle 2.3 CONSOLE_CURSOR_INFO 2.4 GetConsoleCursorInfo 2.5 SetConsoleCursorInfo 2.5 SetConsoleCursorPosition 2.7 GetAsyncKeyState 3.贪吃蛇游戏设…...

智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁

近日&#xff0c;贵州省贵阳市中级人民法院对余华英拐卖儿童案做出了一审宣判&#xff0c;判处其死刑&#xff0c;剥夺政治权利终身&#xff0c;并处没收个人全部财产。这一判决不仅彰显了法律的威严&#xff0c;也再次唤起了社会对拐卖儿童犯罪的深切关注。 余华英自1993年至2…...

Spring:IoC/DI加载properties文件

Spring框架可以通过Spring的配置文件完成两个数据源druid和C3P0的配置&#xff08;Spring&#xff1a;IOC/DI配置管理第三方bean&#xff09;&#xff0c;但是其中包含了一些问题&#xff0c;我们来分析下: 这两个数据源中都使用到了一些固定的常量如数据库连接四要素&#xf…...

Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Docker 概述 1.1 Docker 主要组成部分 1.2 Docker 安装 2.0 Docker 常见命令 2.1 常见的命令介绍 2.2 常见的命令演示 3.0 数据卷 3.1 数据卷常见的命令 3.2 常见…...

深挖C++赋值

详解赋值 const int a 10; int b a;&a 0x000000b7c6afef34 {56496} &a 0x000000b7c6afef34 {10} 3. &b 0x000000b7c6afef54 {10} 总结&#xff1a; int a 10 是指在内存中&#xff08;栈&#xff09;中创建一个int &#xff08;4 byte&#xff09;大小的空间…...

WP Pinch:通过MCP协议为WordPress站点集成AI助手管理能力

1. 项目概述&#xff1a;当你的WordPress站点“长出”AI的爪子 如果你和我一样&#xff0c;每天大部分时间都泡在Slack、Telegram或者WhatsApp里&#xff0c;和团队沟通、处理信息&#xff0c;那么你肯定也烦透了那种“这个内容不错&#xff0c;等我回到电脑前再发到网站上”的…...

基于OpenClaw的GitHub趋势智能监控器:自动化追踪与AI摘要推送

1. 项目概述&#xff1a;一个为开发者打造的GitHub趋势智能监控器 作为一名长期泡在GitHub上的开发者&#xff0c;我深知每天手动刷“Trending”页面有多低效。热门项目层出不穷&#xff0c;但真正值得关注的往往就那么几个&#xff0c;而且很容易被淹没在信息流里。直到我遇到…...

回归分析:机器学习预测建模的基石与工业实践

1. 项目概述&#xff1a;为什么回归分析是机器学习的“定海神针” 如果你刚接触机器学习&#xff0c;可能会被各种炫酷的算法名字搞得眼花缭乱——神经网络、支持向量机、随机森林……但在所有这些“明星”算法背后&#xff0c;有一个基础得不能再基础&#xff0c;却又重要得不…...

如何快速配置ComfyUI ControlNet预处理器:完整安装与使用指南

如何快速配置ComfyUI ControlNet预处理器&#xff1a;完整安装与使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux ComfyUI ControlNet Aux预处理器…...

开源物联网平台SiteWhere:微服务架构下的设备管理与数据流实战

1. 项目概述&#xff1a;一个开源的物联网应用平台如果你正在寻找一个能帮你快速搭建、管理和扩展物联网应用的核心平台&#xff0c;而不是从零开始造轮子&#xff0c;那么SiteWhere这个开源项目绝对值得你花时间深入了解。它不是一个简单的设备连接网关&#xff0c;而是一个功…...

深入Windows内核的“心脏”:通过WRK源码理解ntoskrnl.exe与HAL的协作机制

深入Windows内核的“心脏”&#xff1a;通过WRK源码理解ntoskrnl.exe与HAL的协作机制 在计算机科学领域&#xff0c;操作系统内核堪称最复杂的软件工程之一。作为Windows操作系统的核心&#xff0c;ntoskrnl.exe与硬件抽象层(HAL)的协作机制长期以来都是开发者们津津乐道的话题…...

微信消息智能路由系统:3步搭建你的跨群信息高速公路

微信消息智能路由系统&#xff1a;3步搭建你的跨群信息高速公路 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 在数字化协作时代&#xff0c;微信群已成为团队沟通的核心渠道。然而&#xf…...

别再只点灯了!用ESP32和WebServer库做个智能家居控制面板原型(附完整代码)

用ESP32打造智能家居控制面板&#xff1a;从网页控制到硬件交互实战 想象一下&#xff0c;清晨醒来无需下床&#xff0c;轻点手机就能打开窗帘、调节灯光&#xff1b;离家时一键关闭所有电器&#xff0c;还能实时查看家中温湿度——这些看似未来的场景&#xff0c;如今用一块ES…...

Yunzai-Bot阴天插件:免费集成百款AI大模型的QQ机器人全能助手

1. 项目概述与核心价值如果你正在寻找一个能让你在QQ机器人上免费、便捷地体验上百种主流AI大模型的解决方案&#xff0c;那么“阴天插件”&#xff08;Y-Tian-Plugin&#xff09;绝对值得你花时间深入了解。作为一名长期混迹于机器人开发社区的开发者&#xff0c;我见过太多要…...

Sonos语音控制功能大揭秘:常用指令、局限与第三方助手对比

ZDNET核心要点Sonos音箱内置语音助手&#xff0c;其语音控制虽不如其他助手智能&#xff0c;但并非一无是处&#xff0c;每日闹钟、天气预报和定时器能提升使用体验。Sonos语音控制使用体验并非智能家居爱好者&#xff0c;但家里有好几台Sonos智能音箱。虽不太喜欢自动语音助手…...