На конференции OFFZONE 2024, которая прошла в Москве в культурном центре ЗИЛ, выступил наш сотрудник Семён Рогачёв, руководитель отдела реагирования на инциденты. Он рассказал, какие инструменты сегодня чаще всего используются в кибератаках на российскую Linux- и Windows-инфраструктуру, и объяснил, как эффективно отлавливать и отражать подобные атаки. Запись выступления можно посмотреть здесь.
Мы написали текст по мотивам этого доклада, обогатив его данными за конец 2024 года. Статья будет полезна для тех, кто занимается пентестами и реагированием на инциденты. Передаем слово эксперту!
При реагировании на инциденты моя команда сталкивалась со множеством инструментов атакующих на Linux- и Windows-устройствах. Эти инструменты включают общедоступное вредоносное программное обеспечение, различные утилиты для проведения тестирования на проникновение и даже легитимные утилиты, предназначенные для администрирования. Я расскажу о том, как злоумышленники их используют, а также поделюсь некоторыми лайфхаками из области incident response, которые помогут защитить IТ-инфраструктуру от подобных угроз.
Атаки на Linux-инфраструктуру
Наш опыт показывает, что ОС Linux все чаще становятся точкой входа злоумышленников в инфраструктуру компании.
При расследовании инцидентов, связанных с Linux-системами, вы чаще всего найдете множество открытых инструментов для туннелирования трафика (в основном они написаны на Golang). Большинство атакующих ленивы и не то что не меняют исходный код, а просто используют файлы из раздела Releases репозиториев GitHub. Отдельного упоминания здесь заслуживает Global Socket (G-Socket), разработанный группой The Hacker’s Choice: по нашим оценкам, в 2023–2024 годах это был самый популярный инструмент для атак на Linux-устройства на территории России. Ниже поговорим о нем более подробно.
Большинство инструментов, с которыми мы сталкивались при реагировании на инциденты — открытые. В целом создается впечатление, что атакующие часто будто бы без удовольствия изучают функциональные возможности своих инструментов. Ситуация, когда закидывают три туннеля, хотя хватило бы одного Sliver — стандартная. Это намекает на определенный уровень атакующих или на то, что они сильно торопятся. Возможно, таргетов настолько много, что у них просто нет времени.
Туннели
Туннелей обычно несколько. Ниже перечислены самые популярные, с которыми мы сталкивались. С вероятностью 90% с ними столкнетесь и вы:
-
revsocks;
-
resocks;
-
chisel;
-
rsocx.
Не всегда понятно, сколько злоумышленников используют их в рамках одной атаки. Часто создается ощущение, что некоторые ключевые российские цели одновременно атакуют сразу несколько группировок.
Перечисленные туннели — самые популярные, но можно зайти на GitHub, вбить, например, «UDP-tunnel» или «proxy», отсортировать по количеству звездочек и найти на первой странице выдачи ПО, которое почти наверняка использовалось в атаках на Российскую Федерацию. Бо́льшая их часть, как я уже говорил, написана на Golang.
Лайфхаки по разведке угроз
Допустим, мы подозреваем использование туннеля. Если злоумышленник использует вредоносный инструмент, нужно определить его админку, а также провести доразведку инфраструктуры, чтобы понять, какие еще адреса стоит блокировать.
Если по Netstat ничего не ищется (а бывает и такое), то существует несколько альтернативных вариантов, которые подходят не только для поиска туннелей. Самый примитивный — MemProcFS. Для поиска подозрительных процессов надо выполнить следующие шаги:
-
Заходим в
/proc/PID/maps
; -
Используем команду
grep (deleted)
; -
Смотрим кросс-корреляции по Netstat, чтобы получить более полную картину инцидента.
С помощью grep (deleted)
находятся не только туннели, но и немало различных вредоносных инструментов под Linux. Дело в том, что бо́льшая часть линуксовых устройств, которые торчат наружу, перезагружаются относительно редко — и злоумышленники этим активно пользуются. Если атакующий видит, что uptime хоста — один год, он не будет думать о закреплении в системе, которое позволит пережить перезагрузку. Зачем лишний раз рисковать тем, что тебя раскроют, если можно просто запустить процесс, удалить оригинальный исполняемый файл и не переживать, что оставил следы?
Еще одна тактика, которую важно держать в голове при поиске подозрительной активности — это так называемые masquerade attacks, или мимикрирование под системные процессы. Так, например, любят поступать пользователи G-Socket, о котором мы поговорим ниже. В целом, маскарадинг — одна из основных техник, с которыми сталкиваешься, когда расследуешь инциденты, связанные с Linux-инфраструктурой.
После обнаружения подозрительных процессов нужно понять, с чем мы имеем дело. Стандартный алгоритм действий выглядит так: если есть файл — отдайте его вирусному аналитику, если нет файла — сдампите память процесса и все так же отдайте аналитику. Это базовый подход, который отлично себя демонстрирует при работе с любыми линуксовыми инструментами.
Если своего аналитика нет, можно попробовать самостоятельно поискать в файлах зацепки, которые помогут идентифицировать вредонос. Почти все open-source туннели (а если вы работаете с Linux, скорее всего, вредоносы, с которыми вы столкнетесь, открытые или почти открытые) имеют характерные строки, описывающие их использование:
Можно собрать строки (с помощью ChatGPT или руками), связанные с этими инструментами, и сканировать память. Или UAC соберет эти строки за вас. Грепайте (ищите утилитой grep) слово usage. Реверсить Golang бывает довольно болезненно, поэтому соберите все низковисящие фрукты перед тем, как этим заниматься.
Разбирать инструменты, написанные на языке Go, бывает довольно болезненно, особенно если разбирать приходится Sliver — открытый инструмент, который часто используют атакующие. С ним это делать еще сложнее, потому что у Sliver есть compile-time-обфускация (в момент сборки программы происходит внесение усложняющих ее анализ моментов). Поэтому лучше анализировать сначала строки: даже если вы найдете какой-нибудь слегка модифицированный инструмент, то хотя бы будете понимать, что он делает. Мы сталкивались с тем, что в некоторых туннелях происходят такие изменения, которые позволяют не задавать инструменту, например, админку через command line arguments, а сразу работать с админкой, указанной в коде. Но все равно лучше поискать по строкам утилитой grep, потому что разбор Golang отнимает очень много времени.
Linux-инструменты атакующих
Отдельно про G-Socket
G-Socket (Global Socket) — наиболее популярный инструмент для атак на Linux-устройства. Входит в набор The Hacker’s Choice, заметная часть инструментов которого содержит внутри простые Shell-скрипты для развертывания и имеет интересный функционал, в том числе такой, который реализует попытки антифорензики.
G-Socket позволяет устанавливать соединения между двумя устройствами за NAT. Атакующие часто устанавливают его с помощью стандартного файла сценария. Закрепление на устройстве происходит с помощью стандартных механизмов Linux, что делает обнаружение простым при наличии мониторинга.
Из около полутора тысяч строк скрипта буквально в каждой второй строке — реализация маскарадинга. Обязательная точка для старта работы с G-Socket — это знание Linux Persistence Map.
Пример с низковисящими фруктами
На верхнем скриншоте видно интересную строку: do not remove this line seed prng
. Если она появилась, то будет делать это при каждой инсталляции, пока атакующий не поменяет скрипт. Нам надо погрепать по ней и найти примеры. Первый пример — Cron, второй — bash rc, третий — что-то аналогичное. Паттерн в целом довольно простой.
Как видно далее на скриншотах, у нас появились строки echo
, base64
, base64 — d,
дальше передача через pipe на выполнение на bash
. И идет комментарий. В общем, ищется довольно просто, находится слишком часто — чаще, чем хотелось бы, потому что иногда в наших реагированиях встречаются ситуации, когда на одном и том же устройстве G-Socket у вас зачем-то закреплен аж три раза. И это всё разные исполняемые файлы.
Резюмирую: есть специфичные строки, чаще всего используется стандартный скрипт для развертывания, и на основании его анализа можно искать различные персисты.
Другой вариант закрепления — Systemd.
Обратите внимание, что здесь уже base64 нет, но при этом есть переменная окружения GS_ARGS. Здесь видно, что есть путь до файла .dat. Он держит в себе ключ, предназначенный для того, чтобы осуществлять взаимодействие через распределенную сеть G-Socket шифрованным образом, а дальше — путь до исполняемого файла. Тоже специфичные команд-лайны —ilq, маскарадинг под системный процесс и GS_ARGS тоже ищется, поэтому G-Socket в целом обнаруживаемая история. Скажем так, разработчик хотел немножко подпортить жизнь специалистам по incident response и всем остальным.
Обратите внимание на строчку «Take timestamp from oldest file in directory». То есть в тот момент, когда G-Socket закрепляется с помощью какой-либо техники, связанной с размещением своего файла, он будет маскарадить временную метку изменения этого файла под самый старый файл внутри директории. Но это приводит к довольно простым и вновь низковисящим фруктам при их обнаружении. Вы просто открываете собранное инструментом для Triage в каком-нибудь примитивном виндовом Эксплорере и сортируете по дате изменения, но в обратную сторону. Если вы увидите, что у вас есть файлы .dat и .service, и у каждого из них время модификации такое же, как у самого старого файла, то это тоже, скорее всего, G-Socket. Никакого rocket science. В очередной раз показывает себя просто прекрасно.
Замечание: CTime вам поможет. Он указывает, когда был создан исполняемый файл, дата-файл и так далее.
Другие инструменты для атак на Linux
Sliver — open-source red-team фреймворк, взятый на вооружение большим количеством злоумышленников. В силу своей кроссплатформенности также является популярным выбором при атаках на Linux-системы. По умолчанию передает данные управляющему серверу с использованием протокола MTLS. Это помогает обнаружить Sliver с помощью сетевых средств защиты информации.
Злоумышленники применяют Sliver для дополнительного закрепления на устройстве. В расследованных нами инцидентах атакующие чаще всего запускали Sliver на Linux с именем, маскирующим его под системный процесс, и удаляли исполняемый файл.
Sliver долго и сложно анализировать: он написан на специфичном Golang, у которого есть compile-time-obfuscation. Поэтому лучше искать подозрительные процессы и следы закрепления через detonation chamber (аналог песочницы, которую вы контролируете): Detonation chamber => dump process memory => grep
. А дальше:
После того как атакующий закрепился и докинул туннели, неплохо бы посканировать сеть. Можно использовать fscan.
fscan — тяжеловесный многофункциональный сканер с открытым исходным кодом. По нашим наблюдениям, злоумышленники часто применяют его после обнаружения точек соприкосновения между Windows- и Linux-инфраструктурами. Обладает специфическим форматом выходных данных, но при этом и множеством встроенных CVE, которые он может обнаруживать.
FaceFish — это Userland-RootKit с богатой функциональностью, основная задача которого заключается в воровстве аутентификационных данных, сокрытии определенных процессов и соединений. Если вы видите в системе файл /etc/ld.so.preload — это серьезный повод насторожиться. Лучше посмотреть файл, проверить хэш на VirusTotal и, если вдруг этот файл not distributed by linux, возможно, снова настало время позвать вирусного аналитика. Нам он встречался в файлах /usr/lib64/libs.so, /lib64/libs.so.
Лайфхак. Если нет вирусного аналитика, но надо срочно достать админку, с этим файлом может быть сложно. Поэтому найдите .init_proc и остановите выполнение на сравнении с 0xCAFEBABE. Делается это так: нажимаете Ctrl+E в IDA, ищите точку входа, нажимаете F5, ищите, где происходит сравнение с 0xCAFEBABE, ставите точку остановки, переходите по адресу — получаете конфиг, в котором в первых 64-байтах будет админка. Если есть доступ к памяти FaceFish, можно помимо блокирования админки еще и посмотреть трафик.
Chisel — открытый инструмент для создания TCP/UDP-туннелей с открытым исходным кодом, написанный на Golang. При запуске злоумышленники часто маскируют процесс под системный. Эта практика характерна для большинства Linux-инструментов, используемых при атаках на российские организации в 2024 году.
Nmap — широко известный многофункциональный сетевой сканер. Его возможности расширяются с помощью NSE-скриптов. Сетевые СЗИ легко обнаруживают Nmap из-за аномального объема подключений и трафика. В большинстве исследованных нами инцидентов злоумышленники устанавливали Nmap через менеджеры пакетов, что облегчает его обнаружение.
LinPEAS — готовый сценарий для поиска возможностей повышения привилегий в Linux-системах. Популярен у злоумышленников вне зависимости от уровня их квалификации.
pamspy/3snake — инструменты с одинаковым принципом работы. Извлекают аутентификационные данные, читая память процессов и перехватывая вызовы функций. Довольно любопытен pamspy, который собирает аутентификационные данные через PAM-модули. Если вы хотите глубже понять, как устроен Linux, рекомендую посмотреть код.
revsocks — еще одно решение для создания сетевых туннелей.
tsh — миниатюрный бэкдор для передачи файлов и удаленного управления. Он шифрует трафик между управляющим сервером и зараженным устройством, используя ключ из файла-заголовка.
ssh-it (также желательно познакомиться со SSH-сниферами ssh-grabber и SSH-Snake) — еще один инструмент из набора The Hacker’s Choice. Предназначен для сбора аутентификационных данных и способен к самораспространению между различными устройствами.
Если вы интересуетесь разработкой, в том числе под Linux, и вам хотелось бы лучше понять, как работают различные системные вызовы, рекомендую изучить исходные коды SSH-снифферов. В момент создания событий, например, создания SSH-процесса, они получают доступ к памяти этого процесса и воруют из него аутентификационную информацию — это их цель. SSH-снифферы — одни из немногих оставшихся настоящих червей в классическом понимании вирусного аналитика, то есть часть из них имеет возможности по саморепликации и по перемещению на другие машины.
Базовый подход к анализу open-source инструментов
Если вы имеете дело с open-source, то можно закинуть пару скриптов в ChatGPT и с помощью промпта получить какие-нибудь индикаторы компрометации. Работает хорошо и не требует времени, разве что на подключение VPN. Да, сам инструмент вы таким образом не заметите, но можете быстро идентифицировать результат его выполнения.
Первый пример — из работы SSH-Snake:
Файл с результатами работы данного инструмента имеет определенный формат, который отлично обнаруживается с использованием регулярных выражений. Этот файл полезен, когда клиент пытается доказать, что «взаимодействие между сетями невозможно — у нас на файерволе заблокировано». Ага, конечно.
Второй пример — часть исходного кода SSH-граббера:
Здесь указано имя от файла, который ленивые атакующие не меняют — его можно искать сразу по списку файлов.
PwnKit — готовый эксплойт для CVE 2021 года в PolicyKit. Самая часто используемая CVE для повышения привилегий на линуксовых машинах, с которыми мы сталкивались.
Gorilla WebSocket — можно отнести к примерам туннелей, которые обсуждали в начале. Снова GoLang, WebSocket.
LibProcessHider — часто использовался вместе с другими вышеописанными инструментами. Просто прячет процессы. Если вдруг вы не читали никаких книг про rootkits, можете посмотреть исходный код, чтобы стало понятней.
LinPEAS — скрипт, который ищет возможные пути повышения привилегий на хостах Linux/Unix/MacOS. Часто используемый инструмент.
Атаки на Windows-инфраструктуру
Несмотря на то что сама ОС Windows не является открытой, бо́льшая часть атак, с которыми мы сталкиваемся, проводится open-source инструментами.
Windows-инструменты атакующих
Сканеры
SoftPerfectNetwork Scanner, PingCastle, ADRecon, PowerView, Advanced Port Scanner, Angry IP Scanner — это воспетые герои, которые встречаются во многих мануалах для хакеров-вымогателей. Они не потеряли своей актуальности, и мы с ними сталкиваемся чаще, чем хотелось бы.
Advanced Port Scanner — утилита для сетевого сканирования. Определяет открытые порты, версии и другие параметры обнаруженных машин. Как и другие аналогичные инструменты, при запуске массового сканирования генерирует аномальное количество соединений за короткий промежуток времени. Подобное поведение легко детектируется различными сетевыми СЗИ. Зафиксированы случаи, когда атакующий скачивал данную утилиту через браузер на скомпрометированное устройство. Такое поведение также повышает шансы на ее обнаружение.
Ping Castle — довольно интересный набор инструментов, которые позволяют оценить стандартный уровень защищенности вашей Active Directory. Легитимный инструмент, но используется атакующими в нелегитимных целях.
AD Recon и PowerView — PowerShell-сценарии для сбора данных об устройстве домена. Сценарий собирает информацию о группах, пользователях и домене через протоколы ADWS или LDAP. Атакующие часто используют оригинальную версию с GitHub без изменений. Это упрощает обнаружение ADRecon средствами защиты.
ADRecon оставляет следы в журналах PowerShell, в частности временную метку сканирования в названии. Напомню, что вся цифровая криминалистика нацелена на поиск следов выполнения и определение временных меток.
Лайфхак. В стандартных журналах PowerShell — Windows PowerShell и PowerShell Operational — самое ценное при расследовании, это не когда вы ищите события выполнения (события 600, 4103, 4104), а когда смотрите в ошибки, там обычно гораздо больше интересного (например, событие 4100 или что-то аналогичное).
Легитимные средства удаленного управления
AnyDesk — один из наших любимых инструментов. Анализируя его, вам надо собрать папки по следующим путям:
-
C:Users%user%AppDataRoamingAnyDesk
-
C:ProgramDataAnyDesk
-
C:Users%user%VideosAnyDesk
-
C:ProgramDataAnyDesk
Далее из лог-файлов можно получить айпишники, идентификаторы и т. д.
MeshAgent — open-source утилита для удаленного управления. В исследованных инцидентах чаще всего устанавливалась через MSI-пакет, что делало ее обнаружение тривиальным при наличии мониторинга. Оставляет следы в директории установки в виде .db, .log и .msh-файлов. Mesh-агент также используется под Linux, но заметно менее активно. Логи работы можно найти в /var/log.
При расследовании атак с помощью MeshAgent рекомендую смотреть на Uninstall-ключ реестра — так можно понять, когда произошла установка.
В .log и .msh файлах следует обратить внимание на то, что server.id, host.id, — уникальные идентификаторы машины и сети, в которой заперсистился Mesh-агент. Mesh-сервер содержит в себе протокол и адрес управляющего сервера, с которым будет взаимодействовать агент, принимать полученные данные, команды и прочее. Временная метка изменения этих файлов — это относительные указания на время их активности.
Файл .msh — не особо информативен: возможно, кому-то пригодится временная метка, но по нашему опыту там редко находятся полезные данные.
С .db-файлами есть два подхода. По большому счету .db-файл — это KeyValue-хранилище. Если хотите сделать быстро, просто натравите strings, и вы получите вот эту вот строку, выделенную красным:
Странные символы указывают на то, что это бинарный файл, а не текстовый. В целом strings отлично работает, но большей выгоды вы отсюда не извлечете.
Тем, кто хочет сделать красиво или попрограммировать — вот как устроен этот файл:
После изучения файлов остается заблокировать админку и, может быть, провести ретроспективный анализ.
PDQ Deploy (сюда же можно отнести Inventory Scanner) — ПО для централизованного мониторинга и развертывания. В расследованных нами инцидентах использовался для запуска шифровальщиков. Родительский процесс:
C:WindowsAdminArsenalPDQDeployRunnerservice-1PDQDeployRunner-1.exe
Если у вас в виндовых артефактах будет что-то похожее на этот путь — это явно указывает на то, что PDQ Deploy использовался для централизованного запуска. Посмотрите, когда он появился. Он оставляет следы на устройстве, которое выступает в качестве контролируемого и контролирующего (сервер). Отдельно рекомендую посмотреть в application-журналах вот эти события:
Заметных файловых следов на машине, выступающей сервером, PDQ Deploy не оставляет.
ngrok — легитимный инструмент для туннелирования. Чаще всего используется атакующими для сохранения удаленного доступа за счет туннелирования порта 3389 (RDP-порт по умолчанию). Впрочем, в отдельных случаях наблюдается обратная ситуация: атакующий запускает ngrok на своей машине, а затем скачивает из скомпрометированной сети необходимый ему инструментарий, обращаясь через сеть ngrok к своему устройству.
Признак работы ngrok — обращения к сетевым адресам вида *.ngrok.com или *.ngrok.io.
Этот инструмент, так же как и Sliver, часто используется для сохранения доступа к устройству. Поэтому рекомендации по мониторингу техник закрепления актуальны и в данном случае. Некоторые атакующие объединяют его с NSSM (о нем ниже) и аналогами.
Примеры. На первом скриншоте видно обратное использование ngrok: атакующие устанавливали ngrok на свой сервер и с него через браузер жертвы скачивали необходимые инструменты. PDC-MTLS — это, скорее всего, Sliver.
А вот еще скриншот. Обратите внимание на Source Network Address — здесь сильный индикатор того, что происходит что-то не так, и, скорее всего, внутри инфраструктуры есть ngrok:
Часто ngrok запускается в качестве службы. Базовое правило: если у вас есть EXE-шник и файл с расширением .cnf и они имеют одинаковые имена, то, скорее всего, это тоже ngrok. Также стоит обратить внимание на аргументы командной строки:
NSSM — предназначена для запуска любого исполняемого файла в качестве службы. В расследованных инцидентах чаще всего использовалась для запуска ngrok. NSSM оставляет стандартные следы запуска службы. Однако для понимания того, что именно запускает эта утилита, необходимо анализировать реестр.
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
позволит вам понять, что запускается через NSSM. При использовании NSSM или аналогов не наблюдается характерных аргументов командной строки при сборе данных, например, с утилитой AutoRuns.
Malware
CobInt — обычно представляет собой четыре файла с одинаковыми именами с расширениями .exe, .vbs, .ps1, txt. PowerShell сильно обфусцирован и загружает ShellCode, напоминающий CobaltStrike, но с отличиями.
Лайфхак. Воспользуйтесь VirusTotal и произведите простой анализ, сходив по этой ссылке. Обратите внимание на страну, из которой происходила загрузка этого инструмента.
Если хочется выполнить анализ вручную или проверить свои реверсерские навыки, сначала нужно найти функцию, в которой происходит определение разрядности:
Затем найдите функцию по расшифровке строки:
Client — простой .NET-бэкдор, который мы наблюдали в атаках, связанных с DarkStar, Twelve и 3119. Почему-то плохо определяется антивирусами, но из-за особенностей запуска оставляет дополнительные следы в журналах PowerShell. Из функциональных возможностей — отдельный класс под каждую получаемую команду.
Неразобранные по типам утилиты
mimikatz — популярная open-source утилита, без использования которой не обходился ни один инцидент в Windows-инфраструктуре за прошедший год. Чаще всего утилита используется для извлечения аутентификационных данных из памяти процесса LSASS.
В дополнение к стандартным рекомендациям по мониторингу срабатываний различных СЗИ с конечных устройств и поиску аргументов командной строки, характерных для данного инструмента, напоминаем, что его использование атакующими заметно усложняется включением Credential Guard или LSA Protection.
PSExec — одна из утилит пакета SysInternals. Часто используется как сетевыми администраторами, так и злоумышленниками. Работает за счет удаленного создания служб, что и позволяет обнаруживать ее запуск.
Impacket — еще один open-source инструмент для удаленного управления устройствами Windows и проведения relay-атак. При удаленном управлении Impacket оставляет характерные строки, например, при создании удаленной службы. Эти следы легко обнаруживаются.
SharpHound — собирает данные об объектах Active Directory для последующей визуализации в BloodHound. Может работать в различных режимах. При стандартных параметрах запуска успешно детектируется сетевыми СЗИ по LDAP-запросам.
Общая аналитика инструментария в качестве заключения
Анализ часто используемых злоумышленниками инструментов для кибератак показывает, что для осуществления разрушительных атак и шифрования инфраструктур атакующим достаточно публично доступных программ. Это актуально даже в случаях, когда целью киберпреступников становятся крупные и хорошо защищенные компании.
Зачастую атакующие даже не прикладывают усилий для обхода средств защиты, открыто скачивая вышеперечисленные инструменты с GitHub или сайтов разработчиков.
Безусловно, в ходе реагирования на инциденты мы сталкивались с более редкими, даже уникальными инструментами (такими, как CobInt или FaceFish). Однако даже группировки, использующие подобный продвинутый инструментарий, выполняют большую часть атаки с помощью общедоступных программ.
Это создает дополнительные возможности для обнаружения атакующих разного уровня квалификации. Принципы действия, опции, передаваемые через аргументы командной строки, имена файлов, создаваемых в процессе работы, — всё это помогает выявлять различные инструменты, которые используются в ходе хакерских атак. Для обнаружения open-source инструментов даже не требуются навыки реверс-инжиниринга.
Кстати, сейчас мы готовим к выпуску аналитический отчет о защищенности российских компаний, основанный на данных наших пентестов за 2024 год. Скоро в хабраблоге Бастиона появится отдельный пост на эту тему. Следите за апдейтами — будет интересно!
А чтобы всегда быть в курсе новых инцидентов и других событий в сфере ИБ, подписывайтесь на наш Telegram-канал с инсайтами из мира этичного хакинга! 🤖
Автор: breakmirrors