Р. Эрик Кисер

Если вы хотите расшифровать 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, обратитесь к моей статье, в которой показано, как этого можно добиться. Эти два скрипта вместе могут быть очень прибыльными. Хлопайте и следуйте, если хотите, и удачной охоты!