Группировка BLACKNET-00, известная также как Infrastructure Destruction Squad, сочетает громкие заявления о взломах критической инфраструктуры с продажей собственных инструментов. В новом отчёте центра Ransom-ISAC проанализированы три ключевых компонента её арсенала: конструктор программ-вымогателей, сканер для поиска открытых баз данных Firebase и инструмент разведки промышленных систем управления. Выводы показывают, что маркетинг группировки значительно опережает реальные технические возможности, однако отдельные модули действительно работоспособны и представляют угрозу.
Описание
Группировка ведёт два Telegram-канала: один ориентирован на заявления о взломах и продажу доступов, второй - на продвижение бренда BLACKNET-00 и его инструментов. В числе заявленных жертв - авиакомпании, финансовые платформы, муниципальные системы водоснабжения и промышленные предприятия. При этом операторы используют несколько аккаунтов, включая резервные, и заранее публикуют контакты для связи после возможной блокировки.
Большинство подобных заявлений, как отмечается в отчёте Ransom-ISAC, не подтверждено независимыми источниками и сопровождается раздутыми логами сканирования для создания видимости масштабной активности. Операторы также активно ищут покупателей среди известных хактивистских групп, включая иракскую "313 Team" и иранскую HEXVIOR, однако факт продажи не подтверждён. Примечательно, что группировка так и не превратила вымогатель в модель Ransomware-as-a-Service: она не создала партнёрскую программу и не делится выкупом, а предпочитает продавать инструменты и доступы напрямую. Это делает её гибридом автора вредоносного ПО, продавца инструментов и брокера начальных доступов.
Ключевой вывод аналитиков состоит в том, что даже технически незрелые группировки могут создавать функционально опасные компоненты. Конструктор вымогателя, который BLACKNET-00 распространила публично как "подарок сообществу", рекламирует сложное шифрование AES-256, но на деле использует примитивный алгоритм с повторяющимся ключом. Этот ключ записывается в текст записки с требованием выкупа, поэтому файлы жертвы можно восстановить без участия злоумышленников. Тем не менее сгенерированная программа действительно шифрует файлы на всех дисках, изменяет политики системы, закрепляется в автозагрузке, выводит полноэкранное окно с требованием выкупа и отправляет телеметрию о жертве в Telegram. Для защиты от таких атак важно ориентироваться на долгоживущие артефакты, а не на конкретный метод шифрования, который злоумышленники могут легко заменить.
Сканер Shadow Ghost, несмотря на низкокачественный графический интерфейс, содержит полноценный модуль разведки Firebase. Он позволяет по идентификатору проекта проверять открытые хранилища, базы данных Firestore и Realtime Database, а также извлекать конфигурационные данные с веб-сайтов. Это не атака на саму платформу Firebase, а выявление ошибок конфигурации: если владельцы приложений оставили правила доступа слишком свободными, злоумышленник может получить несанкционированный доступ к пользовательским данным, телеметрии и внутренней информации. Особую актуальность это представляет для небольших операторов критической инфраструктуры, которые используют Firebase для панелей мониторинга. Аналитики рекомендуют регулярно аудитировать правила Firebase Storage, Firestore, Authentication и Realtime Database, чтобы исключить анонимный доступ.
Третий инструмент - TRK-25 - позиционируется как "продвинутая система диспетчерского управления (SCADA)" для атак на промышленные сети. Проверка показала, что основная часть интерфейса неработоспособна: многие кнопки ссылаются на несуществующие функции, а сама программа не может запуститься из-за обрезанного кода. Однако внутри скрывается работоспособный модуль сканирования, который проверяет устройства на стандартных промышленных портах, распознаёт более полусотни вендоров и продуктов - от Siemens и Rockwell до специализированных систем диспетчерского управления. Сканер также содержит жёстко прописанные списки публичных IP-диапазонов, что указывает на целенаправленную разведку потенциальных целей. Отдельные модули для работы с протоколом Modbus близки к рабочим, хотя и не были проверены на реальном оборудовании. Это означает, что TRK-25 представляет собой не оружие, а инструмент разведки, позволяющий найти открытые промышленные контроллеры и подготовить почву для последующей атаки.
Группировка также расширяет коммерческую деятельность: помимо продажи доступов и инструментов, она рекламирует DDoS-атаки как платную услугу. Третья сторона связывает с BLACKNET-00 атаку на индийского оператора связи, однако никаких доказательств или инструментов для проверки предоставлено не было. Поэтому аналитики советуют рассматривать это как рекламное объявление, а не подтверждённую возможность.
Особое внимание в отчёте уделено заявлениям о взломах систем водоснабжения. На фоне реального роста атак на программируемые логические контроллеры в США и инцидентов в Миннесоте такие утверждения нельзя игнорировать. Однако у BLACKNET-00 нет подтверждённых успешных операций, а её предыдущие заявления часто оказывались преувеличенными. Аналитики рекомендуют проверять каждое подобное утверждение через официальные каналы и уведомлять отраслевые центры, а не принимать его за установленный факт.
Для защиты от угроз этого уровня эксперты советуют убрать прямое подключение промышленных контроллеров к интернету, настроить мониторинг удалённого доступа, провести аудит конфигураций облачных сервисов и использовать правила обнаружения, основанные на поведении, а не на общей легитимной инфраструктуре. Важно не поддаваться панике от громких заявлений, но и не игнорировать реальные, пусть и примитивные, инструменты, которые могут быть использованы против недостаточно защищённых организаций.
Индикаторы компрометации
MD5
- 28c62e5e820de249ddfb9204fec31bbc
- 6c3446e26d566657ea019ca1b37156d6
- 9feebfea9b7a983b8d21757ac0d96015
- f6cf915e5c2864b7ccff0a57a504dffc
SHA1
- 18e14a1e9ba76fa8c7f89e14ea971c11307af23b
- 25029760457873fe8339736534f184cea0b20535
- 7cf1272de9e478464807e890c68c94600930e724
- 974d8934bd369e98d3e282b2cd3cfe56f6f12ec6
SHA256
- 10e41edc96bafe6511a06832519823d0a1bf329fecde1d7d2ab9b2eda3a27a09
- 5f1ebc84cdee3a4e97c530ff2ffc907e903544b8b5b119f9de2e9bd035058629
- 85adbf2a80b13a55e19114203af3151b0fa9aaef195b316a7b18b571994be21a
- 90c447f864f4d66a6b99a76af0db4debf12735ebc3e35525936a4232b2df5732
TOX ID
- 05a63a33e6233cdfe2a86a49aa73148af13ab6068db82c93690827da75e64d422b
TRON (TRC-20)
- TS7cmQrHcRtLuijLdL3CP7s5EgeN6tn7KT
Bitcoin
- 13TSahvLK6EGene38RQWzfUfQKkpqtRoL6
- 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | rule TRK25_SCADA_Tool { meta: description = "TRK-25 Advanced SCADA - ICS recon tool by Infrastructure Destruction Squad" author = "Ransom-ISAC" threat_group = "Infrastructure Destruction Squad" tlp = "CLEAR" sha256 = "5f1ebc84cdee3a4e97c530ff2ffc907e903544b8b5b119f9de2e9bd035058629" sha1 = "18e14a1e9ba76fa8c7f89e14ea971c11307af23b" md5 = "28c62e5e820de249ddfb9204fec31bbc" strings: $id1 = "TRK25 ADVANCED SCADA" ascii wide $id2 = "BLACKNET-00" ascii wide $id3 = "TRK25AdvancedSCADA" ascii $id4 = "HMIScannerWorker" ascii $id5 = "INDUSTRIAL_PORTS_HMI" ascii // BLACKNET-00黑手党 in raw UTF-8 $cred1 = {42 4C 41 43 4B 4E 45 54 2D 30 30 E9 BB 91 E6 89 8B E5 85 9A} $port1 = "44818" ascii $port2 = "47808" ascii $port3 = "34962" ascii $port4 = "20000" ascii $pw1 = "allenbradley" ascii $pw2 = "modicon" ascii $pw3 = "schneider" ascii $keyword1 = "FactoryTalk" ascii $keyword2 = "VTScada" ascii $keyword3 = "CompactLogix" ascii $keyword4 = "ControlLogix" ascii condition: filesize < 500KB and ( any of ($id*) or $cred1 or (3 of ($port*) and 2 of ($pw*)) or (3 of ($keyword*) and any of ($port*)) ) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | rule Generic_ICS_Recon_Script { meta: description = "Python script with ICS/SCADA scanning capabilities - catches TRK-25 variants and similar tools" author = "Ransom-ISAC" tlp = "CLEAR" strings: $lang1 = "import socket" ascii $lang2 = "import struct" ascii $lang3 = "connect_ex" ascii $proto1 = "MODBUS" ascii nocase $proto2 = "S7comm" ascii nocase $proto3 = "DNP3" ascii nocase $proto4 = "BACnet" ascii nocase $proto5 = "OPC" ascii nocase $proto6 = "Profinet" ascii nocase $proto7 = "IEC" ascii nocase $vendor1 = "Siemens" ascii $vendor2 = "Rockwell" ascii $vendor3 = "Schneider" ascii $vendor4 = "Honeywell" ascii $vendor5 = "Yokogawa" ascii $vendor6 = "Emerson" ascii $scan1 = "grab_banner" ascii $scan2 = "check_port" ascii $scan3 = "scan_target" ascii $pw1 = "scada" ascii $pw2 = "plc" ascii $pw3 = "hmi" ascii condition: filesize < 1MB and all of ($lang*) and 3 of ($proto*) and 2 of ($vendor*) and any of ($scan*) and 2 of ($pw*) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | rule BLACKNET_Suite { meta: description = "BLACKNET tooling suite - catches any tool from Infrastructure Destruction Squad" author = "Ransom-ISAC" tlp = "CLEAR" strings: $s1 = "BLACKNET" ascii wide nocase $s2 = "SHADOW-GHOST" ascii wide nocase $s3 = "Infrastructure Destruction" ascii wide nocase $s4 = "TRK25" ascii wide nocase $s5 = "BLACKNET-00" ascii wide $s6 = {E9 BB 91 E6 89 8B E5 85 9A} // 黑手党 (Mafia) UTF-8 condition: any of them } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | rule BLACKNET_Firebase_Scanner { meta: description = "Firebase misconfiguration scanner from the BLACKNET/Shadow suite" author = "Ransom-ISAC" tlp = "CLEAR" sha256 = "90c447f864f4d66a6b99a76af0db4debf12735ebc3e35525936a4232b2df5732" strings: $fb1 = "firebasestorage.googleapis.com/v0/b/" ascii $fb2 = ".firebaseio.com/.json" ascii $fb3 = "firestore.googleapis.com/v1/projects/" ascii $fb4 = "identitytoolkit.googleapis.com" ascii $fb5 = "securetoken.googleapis.com" ascii $fb6 = ".appspot.com/o" ascii $config1 = "apiKey" ascii $config2 = "authDomain" ascii $config3 = "storageBucket" ascii $config4 = "databaseURL" ascii $config5 = "messagingSenderId" ascii $scan1 = "log_firebase" ascii $scan2 = "check_firestore" ascii $scan3 = "check_rtdb" ascii $scan4 = "check_storage" ascii $id1 = "BLACKNET" ascii wide nocase $id2 = "Shadow" ascii condition: filesize < 500KB and ( (3 of ($fb*) and 2 of ($config*)) or (3 of ($scan*) and any of ($id*)) or 4 of ($fb*) ) } |