Logo

The Return of the Yeti

The Yeti needs a plan for 2023. Help him out!

The Return of the Yeti

TryHackMe: Прохождение комнаты The Return of the Yeti. Первая часть побочного квеста Advent of Cyber 2023.

От VanSpy пришел файл VanSpy.pcapng, судя по расширению это Packet CAPture Next Generation, т.е. запись перехваченных пакетов сетевого трафика. Работать с данными файлами можно различными инструментами, например популярным сниффером и анализатором Wireshark или фреймворком pyshark. Воспользуемся tshark.

What’s the name of the WiFi network in the PCAP?

Отобразим несколько пакетов с фильтром wlan.ssid:

$ tshark -r VanSpy.pcapng -Y "wlan.ssid" -c 5
SSID

What’s the password to access the WiFi network?

Если посмотреть структуру:

$ tshark -r VanSpy.pcap -z io,phs -q
Иерархия протоколов

то можно обнаружить четырехстороннее рукопожатие EAPoL, посему сразу можно запустить брут-форс с помощью aircrack-ng (альтернативное решение с помощью hashcat). Для начала, сконвертируем .pcapng в старый .pcap:

$ tshark -F pcap -r VanSpy.pcapng -w VanSpy.pcap

и запустим подбор пароля по словарю:

$ aircrack-ng -w /usr/share/wordlists/rockyou.txt VanSpy.pcap
Брут-форс пароля

Если у вас в системе нет словарей (из коробки они имеются, например, в linux дистрибутивах Parrot и Kali), то их можно скачать в репозитории SecLists.

Получив пароль, для дальнейшего удобства расшифруем трафик в новый файл

  • -e – SSID

  • -p – пароль

На выходе будет создан файл VanSpy-dec.pcap:

Дешифровка

What suspicious tool is used by the attacker to extract a juicy file from the server?

Вспомним иерархию протоколов, а именно data. Попробуем найти идентификаторы потоков общения:

  • -Tfields – вывод информации по заданным полям.

  • -e – перечисление полей: протокол, IP-адреса откуда/куда, порт откуда/куда, идентификатор потока.

  • -Y – фильтр.

$ tshark -r VanSpy-dec.pcap -q -e _ws.col.Protocol -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport -e tcp.stream -Tfields -Y "data && not icmp" | sort -u
Идентификаторы потоков

Получаем лишь один конкретный поток (1005), попробуем отследить данный сеанс:

$ tshark -r VanSpy-dec.pcap -z follow,tcp,ascii,1005 -q
С2

Обнаружен весь лог действия VanSpy, в том числе, что именно за инструментарий он использовал.

Wireshark

What is the case number assigned by the CyberPolice to the issues reported by McSkidy?

Вновь глянем на структуру, но на этот раз уже расшифрованного wifi трафика:

$ tshark -r VanSpy-dec.pcap -z io,phs -q
Иерархия протоколов

Можно заметить, что используется RDP. А ранее было замечено, что злоумышленник украл сертификат используемый как раз для RDP. Как видно из сессии, сертификат был закодирован с помощью base64 и передан несколькими пакетами:

> [Convert]::ToBase64String([IO.File]::ReadAllBytes("/users/administrator/LOCAL_MACHINE_Remote Desktop_0_INTERN-PC.pfx"))

Сохраним данные куски в единый файл и восстановим его в исходном виде. Получаем .pfx контейнер (PKCS12) используемый для передачи склада ключей (включая секретный ключ) на отдельный компьютер. Соответственно с его помощью можно расшифровать RDP трафик.

В этом месте задачу можно решить альтернативным способом. Имея расшифрованный RDP трафик, можно восстановить всю картинку сессии и получить видео файл записи всех действий пользователя. Для этого существует утилита RDP Replay которая генерирует видеопоток прямо из .pcap файлов.

Вновь глянем на структуру, но теперь среди прочего укажем

  • -o tls.keys_list:"","","","./cert.pfx","mimikatz" – контейнер с секретным ключом и пароль к нему. Первые три поля указывают IP-адрес, порт и протокол соответственно. В нашем случае их можно опустить. Таким образом весь RDP трафик будет расшифрован.

  • -z io,phs,rdp – оставим только RDP.

$ tshark -r VanSpy-dec.pcap -o tls.keys_list:"","","","./cert.pfx","mimikatz" -z io,phs,rdp -q

Сертификат защищен паролем, согласно документации при экспорте (/export) устанавливается пароль mimikatz.

Из важного стоит отметить наличие rdp_cliprdr, это один из потоков RDP протокола в котором передается содержимое буфера обмена:

[...]
    rdp_cliprdr              frames:52 bytes:11475
        tpkt                   frames:5 bytes:2190
[...]

Выведем все пакеты (-x) имеющие отношение к передаче содержимого буфера обмена (фильтр -Y "rdp_cliprdr") и внимательно их изучим, число пакетов небольшое и вполне доступно для ручного разбора. Для наглядности дополнительно разукрасим вывод с помощью утилиты pygmentize:

$ tshark -r VanSpy-dec.pcap -o tls.keys_list:"","","","./cert.pfx","mimikatz" -Y "rdp_cliprdr" -x -q | pygmentize -l hexdump -O style=igor

В первом же пакете с данными обнаруживаем использование адреса для почты:

Почта

Чуть далее обнаруживаем и номер дела:

Номер дела

What is the content of the yetikey1.txt file?

Продолжим изучение потока с данными для передачи буфера обмена, находим письмо:

Письмо

Чуть далее манипуляции с yetikey1.txt, его переименовывают в secret.txt, ну и команду на копирование его содержимого в буфер обмена:

Копирование содержимого файла

В завершении находим собственно сам ключ:

Ключ

На этом всё, продолжение во второй части – Snowy ARMageddon.
Все части прохождений здесь.