Р. Эрик Кисер
Если вы хотите расшифровать https-трафик, вам понадобится ключ, прежде чем произойдет какое-либо волшебство. В этой статье я покажу вам, как использовать пост-эксплуатацию Python во время тестирования на проникновение для выполнения этой задачи.
Во-первых, мы импортируем модуль os
, который предоставляет способ взаимодействия с операционной системой. Затем мы предлагаем пользователю ввести каталог для хранения ключа, вызвав функцию input()
и передав строковый аргумент в качестве приглашения. Ввод пользователя сохраняется в переменной directory
.
import os # Prompt the user for the directory to store the key directory = input("Please enter the directory to store the key: ")
Затем мы проверяем, существует ли указанный каталог, вызывая функцию os.path.exists()
и передавая переменную directory
в качестве аргумента. Если каталога не существует, то мы создаем его, вызывая функцию os.makedirs()
и передавая в качестве аргумента переменную directory
.
# Create the directory if it doesn't already exist if not os.path.exists(directory): os.makedirs(directory)
Теперь нам нужно установить путь к файлу кейлога, вызвав функцию os.path.join()
и передав два аргумента: переменную directory
и строку "keylog.txt"
. Это создает путь к файлу путем присоединения к указанному каталогу с именем файла keylog.txt
.
# Set the keylog file path keylog_path = os.path.join(directory, "keylog.txt")
Мы открываем файл кейлога в режиме добавления, вызывая встроенную функцию open()
и передавая два аргумента: переменную keylog_path
в качестве пути к файлу и строку "a"
в качестве режима добавления данных в файл.
Давайте напишем тестовое сообщение в файл кейлога, вызвав метод write()
для файлового объекта, созданного на предыдущем шаге. Тестовое сообщение — это просто строка "Test message\n"
. Мы пишем это тестовое сообщение, чтобы убедиться, что файл был успешно создан и что у нас есть права на запись в файл.
# Open the keylog file in append mode with open(keylog_path, "a") as f: # Write a test message to the keylog file f.write("Test message\n")
Теперь мы можем экспортировать переменную окружения SSLKEYLOGFILE
, задав пару ключ-значение в словаре os.environ
. Ключ — "SSLKEYLOGFILE"
, а значение — переменная keylog_path
, которая содержит путь к файлу кейлога.
# Export the SSLKEYLOGFILE environment variable with the keylog file path os.environ["SSLKEYLOGFILE"] = keylog_path
Наконец, мы печатаем сообщение для подтверждения экспорта переменной окружения SSLKEYLOGFILE
. Сообщение содержит строку "Exported SSLKEYLOGFILE environment variable with path: "
, за которой следует переменная keylog_path
, содержащая путь к файлу кейлога.
# Print a message to confirm the export of the SSLKEYLOGFILE environment variable print(f"Exported SSLKEYLOGFILE environment variable with path: {keylog_path}"
В Google Chrome переменная среды SSLKEYLOGFILE
используется для указания файла, в котором хранятся ключи SSL/TLS. Этот файл используется Chrome для расшифровки трафика SSL/TLS при захвате сетевого трафика с помощью таких инструментов, как Wireshark. Когда мы устанавливаем переменную среды SSLKEYLOGFILE
в путь к нашему файлу кейлога в скрипте Python, Chrome автоматически использует этот файл для хранения ключей SSL/TLS. Это означает, что когда мы захватываем сетевой трафик в Chrome, расшифрованные ключи SSL/TLS будут храниться в файле кейлога, который мы указали в скрипте Python.
Чтобы узнать, как перехватывать и расшифровывать трафик с помощью Python, обратитесь к моей статье, в которой показано, как этого можно добиться. Эти два скрипта вместе могут быть очень прибыльными. Хлопайте и следуйте, если хотите, и удачной охоты!