Добро пожаловать обратно, мои поклонники «Мистера Робота»!
Как вы знаете, «Мистер Робот» — мой любимый сериал благодаря реалистичному изображению хакерских атак. Почти все взломы в сериале настоящие, хотя временные рамки могут быть сжаты (настоящие взломы — это не видео в TikTok).
В первом сезоне «девушку» Эллиота, Шейлу, похищает и держит в заложниках психопатка и наркоторговка Вера. Вера арестована и находится в тюрьме в ожидании суда. Вера настаивает, чтобы Эллиот вызволил его из тюрьмы с помощью хитроумного хака за 24 часа! Подробнее о тюремном хаке смотрите в моём обучающем видео здесь и видео Дэвида Бомбала на YouTube здесь .
Эллиот идёт в тюрьму, чтобы навестить Веру и объяснить, как сложно вызволить его из тюрьмы за 24 часа. Вера настаивает. Эллиот объясняет, что у него есть все улики с мобильного телефона брата Веры (он взломал его по локальной сети в своей квартире, вероятно, воспользовавшись уязвимостью к конвульсиям), чтобы навсегда изолировать Веру и брата. Когда Вера угрожает ему, он объясняет, что если с ним что-то случится, сработает аварийный выключатель, который передаст все улики правоохранительным органам, тем самым гарантируя его безопасность.
«Переключатель смерти» — не новая концепция. Он имеет долгую и богатую историю во множестве своих физических форм. «Переключатель смерти» — это просто предохранительный механизм, который срабатывает при ОТСУТСТВИИ действий пользователя. Это означает, что если владелец или держатель переключателя мёртв или иным образом недееспособен, запускается действие. Они давно используются в индустриальном обществе для остановки машин, если оператор «мёртв», например, в локомотивах, аттракционах и системах дозаправки самолётов, среди множества применений. Он также использовался для сохранения жизни оператора. Представьте себе человека в поясе смертника. Они часто держат в руках переключатель смерти, который активирует взрывное устройство в случае их гибели. Вы, вероятно, видели это во многих телешоу и фильмах.
Эллиот использует эту стратегию, чтобы спасти свою жизнь от убийц Веры, но здесь он создаёт цифровой переключатель мертвеца. Если он мёртв, программа активируется и уведомляет правоохранительные органы со всеми цифровыми уликами против Веры и его брата.
Давайте посмотрим, сможем ли мы создать подобную цифровую кнопку мертвеца на Python — любимом языке кибербезопасности и искусственного интеллекта.
Для разработки нашего переключателя мертвеца нам понадобится:
Здесь мы используем модуль запросов для создания полезной нагрузки, которая будет отправлена на URL-адрес https://textbelt.com/text.
def wait_for_input(тайм-аут):
“””
Ожидает ввода данных пользователем в течение определенного времени.
Возвращает True, если входные данные получены, False, если истекло время ожидания.
“””
таймер = threading.Timer(timeout, deadman_action)
таймер.старт()
пытаться:
input(f"Нажмите Enter в течение {timeout} секунд, чтобы сбросить переключатель мертвеца: ")
таймер.отмена()
вернуть True
кроме Исключение:
таймер.отмена()
вернуть Ложь
def main():
timeout = int(input(“Введите длительность тайм-аута в секундах: “)) # секунд
print(«Переключатель мертвеца активирован. Регулярно нажимайте Enter, чтобы он оставался активным.»)
пока True:
если нет, wait_for_input(timeout):
break # Сработал переключатель Deadman, выйдите из цикла или выполните другое действие
Как вы уже знаете;
Теперь нам нужно только предоставить себе разрешения на выполнение;
Кали > sudo chmod 755 Deadmans_script.py
Теперь, если головорезы Веры убьют Эллиота, сработает кнопка мертвеца, и правоохранительные органы получат уведомление со всеми доказательствами на телефоне брата Веры!
Как вы знаете, «Мистер Робот» — мой любимый сериал благодаря реалистичному изображению хакерских атак. Почти все взломы в сериале настоящие, хотя временные рамки могут быть сжаты (настоящие взломы — это не видео в TikTok).
В первом сезоне «девушку» Эллиота, Шейлу, похищает и держит в заложниках психопатка и наркоторговка Вера. Вера арестована и находится в тюрьме в ожидании суда. Вера настаивает, чтобы Эллиот вызволил его из тюрьмы с помощью хитроумного хака за 24 часа! Подробнее о тюремном хаке смотрите в моём обучающем видео здесь и видео Дэвида Бомбала на YouTube здесь .
Эллиот идёт в тюрьму, чтобы навестить Веру и объяснить, как сложно вызволить его из тюрьмы за 24 часа. Вера настаивает. Эллиот объясняет, что у него есть все улики с мобильного телефона брата Веры (он взломал его по локальной сети в своей квартире, вероятно, воспользовавшись уязвимостью к конвульсиям), чтобы навсегда изолировать Веру и брата. Когда Вера угрожает ему, он объясняет, что если с ним что-то случится, сработает аварийный выключатель, который передаст все улики правоохранительным органам, тем самым гарантируя его безопасность.
«Переключатель смерти» — не новая концепция. Он имеет долгую и богатую историю во множестве своих физических форм. «Переключатель смерти» — это просто предохранительный механизм, который срабатывает при ОТСУТСТВИИ действий пользователя. Это означает, что если владелец или держатель переключателя мёртв или иным образом недееспособен, запускается действие. Они давно используются в индустриальном обществе для остановки машин, если оператор «мёртв», например, в локомотивах, аттракционах и системах дозаправки самолётов, среди множества применений. Он также использовался для сохранения жизни оператора. Представьте себе человека в поясе смертника. Они часто держат в руках переключатель смерти, который активирует взрывное устройство в случае их гибели. Вы, вероятно, видели это во многих телешоу и фильмах.
Эллиот использует эту стратегию, чтобы спасти свою жизнь от убийц Веры, но здесь он создаёт цифровой переключатель мертвеца. Если он мёртв, программа активируется и уведомляет правоохранительные органы со всеми цифровыми уликами против Веры и его брата.
Давайте посмотрим, сможем ли мы создать подобную цифровую кнопку мертвеца на Python — любимом языке кибербезопасности и искусственного интеллекта.
Шаг № 1: Начало работы
«Контактный датчик» — это защитный механизм, который активирует действие, если пользователь не выполняет периодическую задачу (например, не нажимает клавишу или не отправляет сигнал) в течение определённого времени. В нашем скрипте мы будем ждать нажатия клавиши ENTER. Если пользователь не нажимает клавишу ENTER в течение определённого времени, мы считаем его мёртвым и выполняем действие, в данном случае — отправляем SMS-сообщение.Для разработки нашего переключателя мертвеца нам понадобится:
- код или функция для отправки сообщения, когда пользователь мертв
- какой-то код или функция для отслеживания времени и определения исчерпанного времени
- основная функция, которая принимает пользовательский ввод по желаемому тайм-ауту и определяет, когда это время истекло, а затем запускает функцию действия
импорт потоков
Модуль потоков в Python позволяет вашей программе выполнять несколько операций одновременно в одном процессе с помощью потоков.- Ожидайте ввода или других блокирующих операций (как в вашем переключателе смерти).
- Выполнять фоновые задачи, пока основная программа продолжает работу (например, загрузка файла при обновлении пользовательского интерфейса).
запросы на импорт
Модуль запросов в Python — это простая и мощная библиотека для выполнения HTTP-запросов. Он позволяет вашей программе взаимодействовать с веб-сайтами или API через Интернет.
Шаг № 2: Создайте функцию с именем «действие» для отправки SMS-сообщения, если пользователь мертв.
Теперь, когда у нас есть все необходимые модули, давайте создадим функцию с именем action . В этой функции мы будем использовать команду requests.post для отправки SMS-сообщения через textbelt.com (мы уже использовали этот сервис для отправки поддельного SMS-сообщения здесь ). Эта функция выполняется, если действие, указывающее на жизнь (нажатие клавиши ENTER), не будет выполнено в течение указанного пользователем времени в основной функции ниже. Таким образом, для упрощения, пользователь задаёт промежуток времени, и если в течение этого времени не происходит никаких действий, срабатывает переключатель.Здесь мы используем модуль запросов для создания полезной нагрузки, которая будет отправлена на URL-адрес https://textbelt.com/text.
def action():
# Создать полезную нагрузку для отправки поставщику SMS
payload = { 'phone': 'xxxxxxxxxxx', # введите номер телефона получателя смс
«сообщение»: «Привет, OTW. Я умер. Извините, в этом деле вы сами по себе. Отправьте улики против Веры в полицию».
# введите сообщение, которое вы хотите получить, когда вас не будет
'key': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # введите здесь ключ API textbelt
}
ответ = запросы.post('https://textbelt.com/text', данные=полезная нагрузка)
печать(ответ.json())
Шаг 3: Дождитесь ввода
В этой функции, которую мы назвали wait_for_inpu t, мы используем модуль потоковой передачи для создания таймера.
def wait_for_input(тайм-аут):
“””
Ожидает ввода данных пользователем в течение определенного времени.
Возвращает True, если входные данные получены, False, если истекло время ожидания.
“””
таймер = threading.Timer(timeout, deadman_action)
таймер.старт()
пытаться:
input(f"Нажмите Enter в течение {timeout} секунд, чтобы сбросить переключатель мертвеца: ")
таймер.отмена()
вернуть True
кроме Исключение:
таймер.отмена()
вернуть Ложь
Шаг 4: Создайте основную функцию
Здесь мы создаём нашу основную функцию. В этой функции мы запрашиваем у пользователя количество секунд ожидания и преобразуем его в целое число, затем выводим время ожидания, которое пользователь видит, и ещё один оператор печати, просто сообщающий пользователю, что переключатель активирован и для его сохранения необходимо нажать Enter.
def main():
timeout = int(input(“Введите длительность тайм-аута в секундах: “)) # секунд
print(«Переключатель мертвеца активирован. Регулярно нажимайте Enter, чтобы он оставался активным.»)
пока True:
если нет, wait_for_input(timeout):
break # Сработал переключатель Deadman, выйдите из цикла или выполните другое действие
Шаг № 5
В этом разделе мы используем соглашение Python, которое гарантирует, что некоторый код запускается только при непосредственном запуске файла, а не при его импорте как модуля в другой скрипт.Как вы уже знаете;
- name — это специальная встроенная переменная в Python.
- При прямом запуске файла name == «__main__» имеет значение True.
- При импорте файла имя задается равным имени модуля, а не «__main__».
Теперь нам нужно только предоставить себе разрешения на выполнение;
Кали > sudo chmod 755 Deadmans_script.py
Теперь, если головорезы Веры убьют Эллиота, сработает кнопка мертвеца, и правоохранительные органы получат уведомление со всеми доказательствами на телефоне брата Веры!
Как это работает
- Программа ждет, пока пользователь нажмет Enter в течение отведенного времени.
- Если пользователь вовремя нажимает Enter, таймер отменяется, и цикл продолжается.
- Если пользователь не нажмет Enter до истечения времени таймера, будет вызвана функция action().
- Вы можете настроить action() для выполнения любой важной задачи (например, отправка электронной почты, оповещение, завершение работы, шифрование файлов и т. д.).