Прошлая пятница закончилась масштабной атакой на серверы ESXi < 7.0 на leaseweb.

Заранее прошу прощение за неточности перевода, очепятки и/или несглаженные углы, но тут идет гонка на время и будь его больше, то естественно я и авторы оригинальной статьи подошли бы более кропотливо.

Вам необходимо защитить свой сервер, если он еще не скомпрометирован. Этот эксплоит работает, используя сервис SLP, поэтому лучше пока отключите его.

/etc/init.d/slpd stop 
esxcli network firewall ruleset set -r CIMSLP -e 0 
chkconfig slpd off
esxcli network firewall set --enabled=true

Эта команда отключает набор правил брандмауэра для службы CIMSLP на хосте ESXi. «esxcli network firewall ruleset» — это инструмент командной строки для управления правилами брандмауэра на хосте ESXi. Параметр «-r» указывает имя набора правил брандмауэра, который необходимо изменить, а параметр «-e» устанавливает включенное состояние набора правил. Значение «0» означает, что набор правил брандмауэра отключен, а значение «1» означает, что он включен.

По состоянию на 03.02.2023 версии ESXi 6.x подверглись воздействию вируса CryptoLocker из-за уязвимости, и виртуальные серверы стали непригодными для использования. Для пользователей, которые столкнулись с этим и оказались с зашифрованными файлами vmdk, я расскажу, как восстановить виртуальный сервер. Вирус шифрует небольшие файлы, такие как .vmdk .vmx, но не файл server-flat.vmdk. В структуре ESXi фактические данные хранятся в файле flat.vmdk. Я расскажу, как сделать запасной вариант с помощью flat.vmdk. Прежде всего, когда вы войдете на свой сервер ESXi, вы увидите предупреждение о SSH, подобное этому

Теперь перезагрузите ESXi, после загрузки войдите в SSH. Введите папку виртуального сервера, который вы хотите восстановить. Вы вводите datastorexxx с FTP, но его имя меняется на 6094xxx.

После входа в папку набираем команду ls -la, здесь мы получим размер flat.vmdk. Там написано 64424509440.

P.S. Для машин, в которых есть несколько дисков и/или снапшоты стоит производить подобные действия с файлами .vmdk как и с xxx.vmdk, только с подстановкой необходимых имен.

Теперь удалите существующий файл .vmdk, набрав rm -rf xxx.vmdk 

ПРИМЕЧАНИЕ. Удалите файл xxx.vmdk. Никогда не удаляйте xxx-flat.vmdk.

Затем введите команду vmkfstools -c 64424509440 -d thin temp.vmdk. Обратите внимание, что размер 64424509440 здесь должен быть -flat.vmdk, когда мы делаем ls -la.

Теперь при входе в папку вы увидите temp.vmdk и temp-flat.vmdk.

Откройте temp.vmdk с помощью блокнота, он будет выглядеть так, как показано выше. В строке 9 написано «temp-flat.vmdk». Мы заменим его оригинальным -flat.vdmk. Мое исходное имя flat.vmdk было 185.88.172.17-flat.vmdk, поэтому я редактирую его соответствующим образом. Я также удаляю строку ddb.thinProvisioned = "1" в строке 19. (В моем случае строки были сдвинуты на 1).

Я отредактировал строку 9 на «185.88.172.17-flat.vmdk» и удалил строку ddb.thinProvisioned = «1» в строке 19.

Затем вернитесь на FTP и удалите temp-flat.vmdk. Переименуйте файл temp.vmdk так же, как flat.vmdk. Мое имя flat.vmdk было 185.88.172.17-flat.vmdk. Поэтому я изменил имя файла temp.vmdk на 185.88.172.17.vmdk, поэтому просто удалил строку -flat. Окончательное состояние было следующим

Далее мы отредактируем ваш файл .vmx. Поскольку ваш текущий файл .vmx зашифрован, его резервная копия остается как .vmx~. Имя файла на моем FTP — 185.88.172.17.vmx~. Открываю блокнотом, беру все коды и вставляю в оригинальный .vmx (в 185.88.172.17.vmx)

Вот как работает внутренний файл xxx.vmx, поэтому я просто взял файл xxx.vmx~, копировал и переименовал в xxx.vmx.

Затем вернитесь на FTP и удалите файл .vmsd, он зашифрован и поврежден, он вам не нужен.

Вернитесь к экрану SSH и введите vmkfstools -e xxxx.vmdk Сделайте любое имя .vmdk.

Затем войдите в хранилище данных в ESXi и щелкните правой кнопкой мыши xxx.vmx в папке, которую вы редактировали, и сделайте «Зарегистрировать виртуальную машину». Если виртуальная машина уже существует, сначала щелкните ее правой кнопкой мыши в области «Виртуальные машины» и «Отменить регистрацию», то есть удалите ее из интерфейса ESXi, затем щелкните правой кнопкой мыши файл .vmx и сделайте так, чтобы он зарегистрировал виртуальную машину.

После регистрации виртуальной машины ваш виртуальный сервер появится в области виртуальных машин ESXi, и вы сможете открыть его и использовать.

После завершения этих процессов не забудьте отформатировать ESXi и отключить его. Также обновите свой ESXi с помощью последних доступных исправлений безопасности.

Удалить содержимое файла /etc/motd для того, чтобы при входе на сервер больше не отображалось сообщение о взломе. Вы можете использовать команду 

echo "" > /etc/motd

К сожалению данный мануал не дает 100% гарантии на восстановление (у меня не все машины получилось восстановить), на некоторых слетела система, однако можно поднять новую машину рядом и подключить диск с восстановленной машины к новой и достать свои файлы.

Комментарии (10)


  1. datacompboy
    00.00.0000 00:00
    +4

    Все же не совсем корректно называть это "decrypt" потому как это по факту попытка перегенерировать метаданные из данных, которые не шифровали..


    1. dumasti Автор
      00.00.0000 00:00
      +2

      Да, вы правы, однако:
      1. Это название оригинальной статьи
      2. Если это случилось, то запрос "Расшифровать файлы" и т.п. будет раньше и с большей вероятностью в гугле, чем переделать/восстановить/переписать метаданные данные и т.д.


      1. datacompboy
        00.00.0000 00:00

        Согласен, иногда SEO во благо :)


        1. Beoss
          00.00.0000 00:00

          Это да...


  1. ACO-Andrew
    00.00.0000 00:00

    А. Патчи доступны с конца 2020! Алё, мама — я не тормозз!
    B. «Known Attack Vectors
    A malicious actor residing in the management network who has access to port 427 on an ESXi machine may be able to trigger a use-after-free in the OpenSLP service resulting in remote code execution.»
    Ну да, доступ к management network жэ доступен ну просто каждому! Это ж так сложно, зафайерволить все правильно, зачем эти сложности?!


  1. v1000
    00.00.0000 00:00
    +7

    неисправленные серверы VMware ESXi против уязвимости удаленного выполнения кода двухлетней давности

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


  1. sergeygeygeygey
    00.00.0000 00:00
    +1

    esxcli network firewall set --enabled=true

    нужно так же не забыть, после этих парней он выключен


  1. lumag
    00.00.0000 00:00

    Машинный перевод и надмозг :-(


  1. ilyt
    00.00.0000 00:00
    +1

    В конце очень полезный совет про "После завершения этих процессов не забудьте отформатировать ESXi и отключить его. Также обновите свой ESXi с помощью последних доступных исправлений безопасности."


    1. EvgeniyNuAfanasievich
      00.00.0000 00:00

      Да, абсурд какой-то. Сначала обновления esxi с помощью последних исправлений безопасности (привет санкции, которые не работают), а потом отформатировать и отключить.