История

Саймон, разработчик, работающий в компании Forela, сообщил команде CERT о записке, появившейся на его рабочем столе. В записке утверждалось, что его система была взломана и что с рабочей станции Саймона были собраны конфиденциальные данные. Злоумышленники вымогали данные с его рабочей станции и теперь угрожают выложить их в "темную паутину", если их требования не будут выполнены. На рабочей станции Саймона хранилось множество конфиденциальных файлов, включая запланированные программные проекты, внутренние планы разработки и кодовые базы приложений. Команда разведки угроз считает, что злоумышленники допустили несколько ошибок, но они не нашли способа связаться с ними. Заинтересованные лица компании настаивают на том, чтобы инцидент был урегулирован и все конфиденциальные данные были восстановлены. Они требуют, чтобы ни при каких обстоятельствах не было утечки данных. Вам, как нашему младшему аналитику по безопасности, поручено провести расследование по конкретному типу DFIR (Digital Forensics and Incident Response) в этом деле. Ведущий CERT после проверки рабочей станции предоставил вам только артефакты Notepad++, подозревая, что злоумышленник создал записку-вымогатель и выполнял другие действия с ручным доступом к клавиатуре. Ваша задача - определить, как произошла атака, и найти способ связаться с участниками угрозы, поскольку они случайно заблокировали свою собственную контактную информацию.

Описание задания на hack the box.
Описание задания на hack the box.

Изначально нам предоставлен зашифрованный архив ".zip". Вы можете его скачать, а также скопировать ключ для расшифровки.

Архив
Архив

Задание №1: Каков полный путь к сценарию, используемому Simon для операций AWS?

Для решения этого задания, перейдите в директорию Notepad++, расположенную по пути "C/Users/Simon.stark/AppData/Roaming/Notepad++". В этой директории вы найдете два файла и одну папку. Откройте файл "config.xml" и воспользуйтесь функцией поиска для нахождения пути скрипта, используемого Саймоном для операций AWS.

Обзор директории Notepad++
Обзор директории Notepad++
Открытие файла "config.xml" в браузере.
Открытие файла "config.xml" в браузере.
Нахождения пути скрипта, используемого Саймоном для операций AWS.
Нахождения пути скрипта, используемого Саймоном для операций AWS.

Задание №2: Злоумышленник продублировал программный код и скомпилировал его в системе, зная, что жертва - инженер-программист и имеет все необходимые утилиты. Они сделали это, чтобы слиться с окружением и не брать с собой никаких своих инструментов. Этот код собирал конфиденциальные данные и готовил их к утечке. Каков полный путь к исходному файлу программы?

Для решения этого задания, перейдите в директорию Notepad++ и откройте файл "session.xml". Исходный файл программы можно определить, обратив внимание на предоставленные данные из выдержки XML-файла конфигурации Notepad++. В этом файле содержатся два элемента, каждый из которых содержит атрибут "filename" с полными путями к файлам.

Открытие файла "session.xml" в браузере
Открытие файла "session.xml" в браузере

В первом элементе атрибут "filename" имеет следующее значение: "C:\Users\Simon.stark\Desktop\LootAndPurge.java". Это указывает на файл с исходным кодом на языке Java, названный "LootAndPurge.java", расположенный на рабочем столе пользователя Саймон. Относительно контекста задачи, это именно тот файл, который был скомпилирован злоумышленником. Остальные атрибуты описывают состояние файла в редакторе, такие как позиция курсора, видимая строка и т.д.

№3 Как называется конечный архивный файл, содержащий все данные, подлежащие утечке?

Для решения третьего вопроса переходим в директорию "backup" и открываем файл "LootAndPurge.java@2023-07-24_145332" с помощью блокнота или любого другого текстового редактора.

Обзор директории backup
Обзор директории backup
Фрагмент кода из файла LootAndPurge.java@2023-07-24_145332
Фрагмент кода из файла LootAndPurge.java@2023-07-24_145332

Код Java, который был в файле "LootAndPurge.java@2023-07-24_145332", реализует класс Sensitive_data_extort, который выполняет несколько основных функций:

  1. Сбор файлов с определенными расширениями: Программа сканирует рабочий стол пользователя и собирает все файлы с расширениями "zip", "docx", "ppt", "xls", "md", "txt", "pdf".

  2. Создание архива ZIP: Собранные файлы архивируются в файл с именем Forela-Dev-Data.zip, который также создается на рабочем столе пользователя.

  3. Шифрование архива: Программа пытается установить пароль на архивный файл, используя строку sdklY57BLghvyh5FJ#fion_7. Однако в стандартной библиотеке Java нет метода ZipOutputStream.setPassword(). Это указывает на то, что в коде используется нестандартная библиотека или что в код была добавлена ошибка.

Сама структура кода содержит:

  • Класс ZipOutputStream из пакета java.util.zip используется для создания архива ZIP. Однако ZipOutputStream из стандартной библиотеки Java не поддерживает шифрование паролем нативными средствами, так что код с zipOutputStream.setPassword(password.toCharArray()); приведет к ошибке компиляции в стандартной Java.

  • Метод main начинает с определения пути рабочего стола пользователя и создает список collectedFiles, который будет содержать файлы для архивации.

  • Метод collectFiles рекурсивно обходит все каталоги начиная с рабочего стола пользователя и собирает файлы с определенными расширениями. Данный метод использует вспомогательный метод getFileExtension для извлечения расширения файла.

  • Метод createZipArchive создает архив Forela-Dev-Data.zip и записывает в него файлы из списка. Он использует буферизированный ввод, чтобы считывать данные из файлов и записывать их в архив.

После изучения файла мы обнаруживаем, что конечный архивный файл, содержащий все данные, подлежащие утечке, называется "Forela-Dev-Data.zip".

№4 Какова временная метка в UTC, когда злоумышленник в последний раз изменил исходный файл программы?

Для определения временной метки в UTC, когда злоумышленник в последний раз изменил исходный файл программы, мы можем использовать предоставленные временные метки из файла session.xml.

Первоначально, нам предоставлены две временные метки: originalFileLastModifTimestamp="-1354503710" originalFileLastModifTimestampHigh="31047188".

Исходный код для преобразования временных меток в UTC:

import datetime

# Пример временных меток из кода

timestamp_low = -1354503710

timestamp_high = 31047188

# Комбинируем нижние и верхние 32 бита временной метки

full_timestamp = (timestamp_high << 32) | (timestamp_low & 0xFFFFFFFF)

# Преобразуем временную метку в секунды

timestamp_seconds = full_timestamp / 10**7

# Вычисляем время UTC

timestamp = datetime.datetime(1601, 1, 1) + datetime.timedelta(seconds=timestamp_seconds)

print("Timestamp in UTC:", timestamp)

Результат будет: 2023-07-24 09:53:23

№5 Злоумышленник написал записку о вымогательстве данных после их утечки. На какой адрес криптокошелька злоумышленники потребовали оплату?

Для решения пятого вопроса переходим в директорию "backup" и открываем файл "YOU HAVE BEEN HACKED.txt@2023-07-24_150548" с помощью блокнота или любого другого текстового редактора.

Файл "YOU HAVE BEEN HACKED.txt@2023-07-24_150548"
Файл "YOU HAVE BEEN HACKED.txt@2023-07-24_150548"
Перевод сообщения из файла "YOU HAVE BEEN HACKED.txt@2023-07-24_150548"
Перевод сообщения из файла "YOU HAVE BEEN HACKED.txt@2023-07-24_150548"

Переходим по одной из ссылок, после чего нас попросят ввести пароль. Пароль, который использовался в предоставленном коде Java, был указан в строке: "String password = "sdklY57BLghvyh5FJ#fion_7";

Просит ввести пароль
Просит ввести пароль
Сообщение после ввода пароля
Сообщение после ввода пароля

В сообщении видим указание на адрес криптокошелька Ethereum, на который злоумышленники потребовали оплату: 0xca8fa8f0b631ecdb18cda619c4fc9d197c8affca.

№6 Какой адрес электронной почты у человека, с которым можно связаться для получения поддержки?

Для решения шестого вопроса обратим внимание на контактное лицо, указанное в сообщении: "Контактное лицо: CyberJunkie@mail2torjgmxgexntbrmhvgluavhj7ouul5yar6ylbvjkxwqf6ixkwyd.onion". Таким образом, адрес электронной почты, по которому можно связаться для получения поддержки, будет CyberJunkie@mail2torjgmxgexntbrmhvgluavhj7ouul5yar6ylbvjkxwqf6ixkwyd.onion.

Комментарии (0)