UPD: Свежий апдейт от 30.06.2016 17:35 — техническое описание в конце поста.
Вы уж извините, что на ночь глядя, но вирусные эпидемии часов не наблюдают. Итак…
На текущий момент известно, что троянец заражает компьютеры при помощи того же набора уязвимостей, которые ранее использовались злоумышленниками для внедрения на компьютеры жертв троянца WannaCry. Массовое распространение Trojan.Encoder.12544 началось в первой половине дня 27.06.2017. При запуске на атакуемом компьютере троянец несколькими способами ищет доступные в локальной сети ПК, после чего по списку полученных IP-адресов начинает сканировать порты 445 и 139. Обнаружив в сети машины, на которых открыты эти порты, Trojan.Encoder.12544 пытается инфицировать их с использованием широко известной уязвимости в протоколе SMB (MS17-10).
В своем теле троянец содержит 4 сжатых ресурса, 2 из которых являются 32- и 64-разрядной версиями утилиты Mimikatz, предназначенной для перехвата паролей открытых сессий в Windows. В зависимости от разрядности ОС он распаковывает соответствующую версию утилиты, сохраняет ее во временную папку, после чего запускает. При помощи утилиты Mimikatz, а также двумя другими способами Trojan.Encoder.12544 получает список локальных и доменных пользователей, авторизованных на зараженном компьютере. Затем он ищет доступные на запись сетевые папки, пытается открыть их с использованием полученных учетных данных и сохранить там свою копию. Чтобы инфицировать компьютеры, к которым ему удалось получить доступ, Trojan.Encoder.12544 использует утилиту для управления удаленным компьютером PsExec (она также хранится в ресурсах троянца) или стандартную консольную утилиту для вызова объектов Wmic.exe.
Контроль своего повторного запуска энкодер осуществляет с помощью файла, сохраняемого им в папке C:\Windows\. Этот файл имеет имя, соответствующее имени троянца без расширения. Поскольку распространяемый злоумышленниками в настоящий момент образец червя имеет имя perfc.dat, то файл, предотвращающий его повторный запуск, будет иметь имя C:\Windows\perfc. Однако стоит злоумышленникам изменить исходное имя троянца, и создание в папке C:\Windows\ файла с именем perfc без расширения (как советуют некоторые антивирусные компании), уже не спасет компьютер от заражения. Кроме того, троянец осуществляет проверку наличия файла, только если у него достаточно для этого привилегий в операционной системе.
После старта троянец настраивает для себя привилегии, загружает собственную копию в память и передает ей управление. Затем энкодер перезаписывает собственный файл на диске мусорными данными и удаляет его. В первую очередь Trojan.Encoder.12544 портит VBR (Volume Boot Record, загрузочная запись раздела) диска C:, первый сектор диска заполняется мусорными данными. Затем шифровальщик копирует оригинальную загрузочную запись Windows в другой участок диска, предварительно зашифровав ее с использованием алгоритма XOR, а вместо нее записывает свою. Далее он создает задание на перезагрузку компьютера, и начинает шифровать все обнаруженные на локальных физических дисках файлы с расширениями .3ds, .7z, .accdb, .ai, .asp, .aspx, .avhd, .back, .bak, .c, .cfg, .conf, .cpp, .cs, .ctl, .dbf, .disk, .djvu, .doc, .docx, .dwg, .eml, .fdb, .gz, .h, .hdd, .kdbx, .mail, .mdb, .msg, .nrg, .ora, .ost, .ova, .ovf, .pdf, .php, .pmf, .ppt, .pptx, .pst, .pvi, .py, .pyc, .rar, .rtf, .sln, .sql, .tar, .vbox, .vbs, .vcb, .vdi, .vfd, .vmc, .vmdk, .vmsd, .vmx, .vsdx, .vsv, .work, .xls, .xlsx, .xvd, .zip.
Троянец шифрует файлы только на фиксированных дисках компьютера, данные на каждом диске шифруются в отдельном потоке. Шифрование осуществляется с использованием алгоритмов AES-128-CBC, для каждого диска создается собственный ключ (это — отличительная особенность троянца, не отмеченная другими исследователями). Этот ключ шифруется с использованием алгоритма RSA-2048 (другие исследователи сообщали, что используется 800-битный ключ) и сохраняется в корневую папку зашифрованного диска в файл с именем README.TXT. Зашифрованные файлы не получают дополнительного расширения.
После выполнения созданного ранее задания компьютер перезагружается, и управление передается троянской загрузочной записи. Она демонстрирует на экране зараженного компьютера текст, напоминающий сообщение стандартной утилиты для проверки дисков CHDISK.
В это время Trojan.Encoder.12544 шифрует MFT (Master File Table). Завершив шифрование, Trojan.Encoder.12544 демонстрирует на экране требование злоумышленников об уплате выкупа.
Если в момент запуска на экране появилось сообщение о запуске утилиты CHDISK, незамедлительно выключите питание ПК. Загрузочная запись в этом случае будет повреждена, но ее можно исправить при помощи утилиты восстановления Windows или Консоли восстановления, загрузившись с дистрибутивного диска. Восстановление загрузочной записи обычно возможно в ОС Windows версии 7 и более поздних, если на диске имеется используемый системой скрытый раздел с резервной копией критичных для работы Windows данных. В Windows XP такой способ восстановления загрузки не сработает. Также для этого можно использовать Dr.Web LiveDisk — создайте загрузочный диск или флешку, выполните загрузку с этого съемного устройства, запустите сканер Dr.Web, выполните проверку пострадавшего диска, выберите функцию «Обезвредить» для найденных угроз.
По сообщениям из различных источников единственный используемый распространителями Trojan.Encoder.12544 ящик электронной почты в настоящее время заблокирован, поэтому они в принципе не могут связаться со своими жертвами (чтобы, например, предложить расшифровку файлов).
С целью профилактики заражения троянцем Trojan.Encoder.12544 компания «Доктор Веб» рекомендует своевременно создавать резервные копии всех критичных данных на независимых носителях, а также использовать функцию «Защита от потери данных» Dr.Web Security Space. Кроме того, необходимо устанавливать все обновления безопасности операционной системы. Специалисты компании «Доктор Веб» продолжают исследование шифровальщика Trojan.Encoder.12544.
Инструкция пострадавшим от Trojan.Encoder.12544: news.drweb.ru/show/?i=11350
И это ещё не конец! Будем дальше ковырять.
UPD: Новые подробности!
Аналитики, исследовавшие шифровальщик Trojan.Encoder.12544, сообщают, что первоначальным источником распространения троянца была система обновления программы MEDoc. Эта программа помогает украинским пользователям в ведении налогового учета. Исследователям удалось установить, что входящая в комплект поставки MEDoc утилита EzVit.exe, предназначенная для обновления основного приложения, в определенный момент выполняла cmd-команду, по которой в память компьютера загружалась вредоносная библиотека. В этой библиотеке реализован основной функционал Trojan.Encoder.12544. Поскольку этот шифровальщик обладает способностью самостоятельно распространяться по сети с использованием уязвимости в протоколе SMB, а также красть учетные данные пользователей Windows, для дальнейшего распространения инфекции достаточно лишь одной зараженной машины.
Еще в 2012 году вирусные аналитики компании «Доктор Веб» выявили целенаправленную атаку на сеть российских аптек и фармацевтических компаний с использованием вредоносной программы BackDoor.Dande. Этот троянец-шпион похищал информацию о закупках медикаментов из специализированных программ, которые используются в фармацевтической индустрии. В момент запуска бэкдор проверял, установлены ли в системе соответствующие приложения для заказа и учета закупок лекарств, и, если они отсутствовали, прекращал свою работу. Заражению подверглись более 2800 аптек и российских фармацевтических компаний. Таким образом, можно с определенной уверенностью утверждать, что BackDoor.Dande использовался в целях промышленного шпионажа.
Специалисты компании «Доктор Веб» провели расследование, длившееся целых 4 года. Проанализировав жесткие диски, предоставленные одной из пострадавших от BackDoor.Dande фирм, вирусные аналитики установили дату создания драйвера, который запускает все остальные компоненты бэкдора. Упоминания об этом драйвере обнаружились в файле подкачки Windows и журнале антивируса Avast, который был установлен на зараженной машине. Анализ этих файлов показал, что вредоносный драйвер был создан сразу же после запуска приложения ePrica (D:\ePrica\App\PriceCompareLoader.dll). Это приложение, разработанное компанией «Спарго Технологии», позволяет руководителям аптек проанализировать расценки на медикаменты и выбрать оптимального поставщика. Изучение программы ePrica позволило установить, что она загружает в память библиотеку, которая скрытно скачивает, расшифровывает и запускает в памяти BackDoor.Dande. Троянец загружался с сайта ws.eprica.ru, принадлежащего компании «Спарго Технологии» и предназначенного для обновления программы ePrica. При этом модуль, скрытно загружавший вредоносную программу, имел действительную цифровую подпись «Спарго». Похищенные данные троянец загружал на серверы за пределами России. Иными словами, как и в ситуации с Trojan.Encoder.12544, бэкдор «прятался» в модуле обновления этой программы.
Сходство этих двух случаев показывает, что инфраструктура разработки программного обеспечения требует повышенного внимания к вопросам информационной безопасности. Прежде всего, процессы обновления любого коммерческого ПО должны находиться под пристальным вниманием как самих разработчиков, так и пользователей. Утилиты обновления различных программ, обладающие в операционной системе правами на установку и запуск исполняемых файлов, могут неожиданно стать источником заражения. В случае с MEDoc к этому привел взлом злоумышленниками и компрометация сервера, с которого загружались обновления, а в ситуации с BackDoor.Dande, как полагают специалисты, к распространению инфекции привели сознательные действия инсайдеров. Посредством такой методики злоумышленники могут провести эффективную целевую атаку против пользователей практически любого программного обеспечения.
UPD2: Подробный разбор самого троянца:
Trojan.Encoder.12544
Добавлен в вирусную базу Dr.Web: 2017-06-27
Описание добавлено: 2017-06-30
SHA1:
- 34f917aaba5684fbe56d3c57d48ef2a1aa7cf06d
Червь-шифровальщик, упоминаемый в СМИ как Petya, Petya.A, ExPetya, WannaCry-2 и др. Массовое распространение началось в первой половине дня 27 июня 2017 года. Представляет собой динамическую библиотеку, не упакован.
Общая последовательность действий:
- Настраивает для себя привилегии, проверяет наличие запущенных процессов, загружает свой бинарный файл в память.
- Выделяет память, создает в ней собственную копию и вызывает процедуру с RVA 0x94A5. Эта процедура выгружает оригинальный файл с помощью FreeLibrary, перезаписывает файл троянца на диске мусорными данными и удаляет его. После этого передает управление на perfc_1 загруженного троянцем образа.
- Разбирает параметры командной строки.
- Выполняет контроль повторного запуска.
- Портит загрузочную запись раздела (VBR).
- Создает задание на перезагрузку компьютера.
При запуске троянец проверяет наличие работающих процессов ccSvcHst.exe (Symantec Service Framework), NS.exe (Symantec) и avp.exe (Антивирус Касперского).
Принимает несколько параметров командной строки. Первый из них – число. Вероятно, оно используется для получения случайных чисел. Также понимает параметр -h (см. ниже).
Контроль повторного запуска
Контроль повторного запуска осуществляется только при наличии у троянца привилегии SeDebugPrivilege. Контроль своего повторного запуска энкодер осуществляет с помощью файла, который он сохраняет в папке C:\Windows\. Этот файл имеет имя, соответствующее имени троянца без расширения. Поскольку исследованный образец червя имеет имя perfc.dat, то файл, предотвращающий его повторный запуск, будет называться C:\Windows\perfc. В случае смены имени троянца наличие файла C:\Windows\perfc не будет спасать от заражения.
Уничтожение загрузочной записи
При наличии привилегии SeDebugPrivilege троянец уничтожает VBR диска C:, заполняя первый (считая с нуля) сектор мусорными данными. Затем он пытается зашифровать MBR. Если MBR содержит GPT или RAW-раздел, троянец его не шифрует. Шифрование осуществляется с использованием алгоритма XOR единственным байтом 0x07. Зашифрованная MBR сохраняется в сектор диска 0x22. Сектора до 0x22 также перезаписываются. Если зашифровать MBR не получилось, троянец заполняет первые 10 секторов мусорными данными.
Вредоносная программа способна очищать системные журналы с помощью wevtutil и удалять «change journal» с помощью fsutil.
Шифрование файлов
Шифрование файлов осуществляется только в логических разделах на фиксированных дисках, содержимое каждого диска шифруется в своем потоке. При шифровании используется алгоритм AES-128-CBC, для каждого диска создается собственный ключ. Этот ключ шифруется с использованием алгоритма RSA-2048 и сохраняется в корневую папку зашифрованного диска в файл с именем README.TXT. Зашифрованные файлы не получают дополнительного расширения.
Ресурсы
Троянец содержит 4 сжатых ресурса:
- MZPE x86 файл, SHA1 56c03d8e43f50568741704aee482704a4f5005ad — Tool.Mimikatz.64.
- MZPE x64 файл, SHA1 38e2855e11e353cedf9a8a4f2f2747f1c5c07fcf — Tool.Mimikatz.65.
- MZPE x86 файл, SHA1 cd23b7c9e0edef184930bc8e0ca2264f0608bcb3 — Sysinternals PsExec.
- Зашифрованный фрагмент кода, SHA1 5fb0843a2bbb58a92037f836a97f2f05fae71667 — Trojan.Inject2.55021.
Троянец сохраняет Sysinternals PsExec в папку %WINDIR% или %COMMON_APPDATA% под именем dllhost.dat. Каждый ресурс в первом значении DWORD хранит свой размер в несжатом виде.
Распространение
После запуска троянец начинает поиск компьютеров в локальной сети с использованием следующих способов:
- Перечисляет сетевые адаптеры с помощью GetAdaptersInfo, извлекает IP-адреса и маску подсети, а также извлекает IP-адрес DHCP.
- Если троянец запущен на сервере, то он перечисляет диапазоны DHCP DhcpEnumSubnets.
- Извлекает все активные соединения с помощью GetExtendedTcpTable.
- Извлекает информацию об ARP IP GetIpNetTable.
- Пытается перечислить машины в домене.
По полученному списку IP-адресов начинает сканирование портов 445 и 139. Обнаружив в сети машины, на которых открыты эти порты, Trojan.Encoder.12544 пытается инфицировать их с использованием широко известной уязвимости в протоколе SMB (MS17-10).
В зависимости от разрядности ОС троянец распаковывает соответствующую версию утилиты Mimikatz, сохраняет ее во временную папку, после чего запускает с именем pipe:
'%TEMP%\4214.tmp' \\.\pipe\{7AC40626-8E78-436F-8DFE-8EE9752FE743}
Информацию об учетных записях пользователей Windows троянец получает через этот pipe. Помимо использования утилиты Mimikatz, троянец получает данные об учетных записях пользователей с помощью следующих методов:
- Извлекает через CredEnumerateW с фильтром TERMSRV.
- Анализирует командную строку с параметром –h, в которой передается список учетных записей.
Затем троянец ищет открытые на запись сетевые ресурсы, пытается авторизоваться на них с использованием полученных данных об учетных записях и создать там собственную копию:
\\\\%ws\\admin$\\%ws
Заражение сетевых узлов осуществляется двумя методами:
Запуском удаленного процесса с помощью утилиты Sysinternals PsExec, которую он извлекает из собственных ресурсов:
%s \\\\%s -accepteula -s -d C:\\Windows\\System32\\rundll32.exe \"C:\\Windows\\%s\",#1
С помощью утилиты wbem\\wmic.exe:
%s /node:\"%ws\" /user:\"%ws\" /password:\"%ws\ process call create \"C:\\Windows\\System32\\rundll32.exe \\\"C:\\Windows\\%s\\\" #1
Анализ заражения загрузочной записи
Процесс заражения загрузочной записи происходит в следующем порядке:
- Начиная с нулевого сектора записывает свой MBR и код троянца.
- Оригинальный MBR, зашифрованный с помощью алгоритма XOR, сохраняется в сектор 34.
- В сектор 33 сохраняется буфер, заполненный 0x07.
- В сектор 32 сохраняется структура, используемая для шифрования:
#pragma pack(push, 2)
struct data_info_t
{
char isEncode;
char key1_salsa20[32]; //рандомно генерируется, ключ salsa20
char key2_nonce[8]; //nonce salsa20
char bitcountAddr1[64]; //1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX (у старого Пети тут были urls)
char bitcountAddr2[64]; //пустой
char keyString[342]; //ключ который передается авторам, генерируется рандомно, пропускается через алфавит //123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
char field_0;
};
#pragma pack(pop)
Ключи key1_salsa20, key2_nonce, keyString генерируются случайным образом. Ключ key1_salsa20 используется для шифрования секторов диска. Ключ keyString передается авторам троянца, но так как он никак не связан с key1_salsa20, вирусописатели не смогут предоставить жертве ключ расшифровки диска.
После перезагрузки компьютера управление передается троянской загрузочной записи. Троянец читает сектор 32 и проверяет флаг data_info_t.isEncode==1 на наличие шифрованного диска. Если диск не зашифрован, троянец приступает к шифрованию. Для этого он читает содержимое сектора 33 и шифрует его s20_crypt. Алгоритм позаимствован из проекта github.com/alexwebr/salsa20. В качестве ключа используется data_info_t.key1_salsa20 и data_info_t.key2_nonce. При этом data_info_t.key1_salsa20 заполняется нулями, зашифрованный сектор 33 сохраняется, а также перезаписывается сектор 32 с нулевым значением key1_salsa20.
Сектор 33 служит идентификатором успешной расшифровки после ввода пользователем ключа, в этом случае он будет расшифровываться в тестовом режиме и сравниваться c массивом 0x07. Далее троянец приступает к шифрованию MFT.
Процедура шифрования выглядит следующим образом:
seg000:811A encodeProcess proc near ; CODE XREF: sub_84E8+DDp
seg000:811A
seg000:811A ind = dword ptr -1224h
seg000:811A key1 = byte ptr -1220h
seg000:811A sevenBuf = byte ptr -1200h
seg000:811A dataInfo = data_info_t ptr -200h
seg000:811A part = word ptr 4
seg000:811A arg_6 = byte ptr 0Ah
seg000:811A
seg000:811A C8 24 12 00 enter 1224h, 0
seg000:811E 56 push si
seg000:811F 68 BE 9A push offset aRepairingFileS ; "\r\n Repairing file system on C: \r\n\"...
seg000:8122 E8 B9 04 call printMSG
seg000:8125 5B pop bx
seg000:8126 6A 00 push 0 ; isWrite
seg000:8128 6A 01 push 1 ; countSect
seg000:812A 6A 00 push 0 ; int
seg000:812C 6A 20 push 32 ; int
seg000:812E 8D 86 00 FE lea ax, [bp+dataInfo]
seg000:8132 50 push ax ; outBuf
seg000:8133 8A 46 0A mov al, [bp+arg_6]
seg000:8136 50 push ax ; driverIndex
seg000:8137 E8 20 0B call readWriteDisk ; data info
seg000:813A 83 C4 0C add sp, 0Ch
seg000:813D 0A C0 or al, al
seg000:813F 74 06 jz short loc_8147
seg000:8141 E8 DA 07 call printTXT2
seg000:8144 5E pop si
seg000:8145 C9 leave
seg000:8146 C3 retn
seg000:8147 ; ---------------------------------------------------------------------------
seg000:8147
seg000:8147 loc_8147: ; CODE XREF: encodeProcess+25j
seg000:8147 C6 86 00 FE 01 mov [bp+dataInfo.isEncode], 1
seg000:814C 66 2B C0 sub eax, eax
seg000:814F 66 89 86 DC ED mov [bp+ind], eax
seg000:8154 EB 05 jmp short loc_815B
seg000:8156 ; ---------------------------------------------------------------------------
seg000:8156
seg000:8156 loop5: ; CODE XREF: encodeProcess+5Aj
seg000:8156 66 FF 86 DC ED inc [bp+ind]
seg000:815B
seg000:815B loc_815B: ; CODE XREF: encodeProcess+3Aj
seg000:815B 66 83 BE DC ED 20 cmp [bp+ind], 32
seg000:8161 73 13 jnb short loc_8176
seg000:8163 8B B6 DC ED mov si, word ptr [bp+ind]
seg000:8167 8A 82 01 FE mov al, [bp+si+dataInfo.key1_salsa20]
seg000:816B 88 82 E0 ED mov [bp+si+key1], al
seg000:816F C6 82 01 FE 00 mov [bp+si+dataInfo.key1_salsa20], 0
seg000:8174 EB E0 jmp short loop5
seg000:8176 ; ---------------------------------------------------------------------------
seg000:8176
seg000:8176 loc_8176: ; CODE XREF: encodeProcess+47j
seg000:8176 66 2B C0 sub eax, eax
seg000:8179 66 89 86 DC ED mov [bp+ind], eax
seg000:817E EB 05 jmp short loc_8185
seg000:8180 ; ---------------------------------------------------------------------------
seg000:8180
seg000:8180 loc_8180: ; CODE XREF: encodeProcess+8Aj
seg000:8180 66 FF 86 DC ED inc [bp+ind]
seg000:8185
seg000:8185 loc_8185: ; CODE XREF: encodeProcess+64j
seg000:8185 66 83 BE DC ED 20 cmp [bp+ind], 32
seg000:818B 73 19 jnb short loc_81A6
seg000:818D 6A 01 push 1 ; isWrite
seg000:818F 6A 01 push 1 ; countSect
seg000:8191 6A 00 push 0 ; int
seg000:8193 6A 20 push 32 ; int
seg000:8195 8D 86 00 FE lea ax, [bp+dataInfo]
seg000:8199 50 push ax ; outBuf
seg000:819A 8A 46 0A mov al, [bp+arg_6]
seg000:819D 50 push ax ; driverIndex
seg000:819E E8 B9 0A call readWriteDisk ; data info
seg000:81A1 83 C4 0C add sp, 0Ch
seg000:81A4 EB DA jmp short loc_8180
seg000:81A6 ; ---------------------------------------------------------------------------
seg000:81A6
seg000:81A6 loc_81A6: ; CODE XREF: encodeProcess+71j
seg000:81A6 6A 00 push 0 ; isWrite
seg000:81A8 6A 01 push 1 ; countSect
seg000:81AA 6A 00 push 0 ; int
seg000:81AC 6A 21 push 33 ; int
seg000:81AE 8D 86 00 EE lea ax, [bp+sevenBuf]
seg000:81B2 50 push ax ; outBuf
seg000:81B3 8A 4E 0A mov cl, [bp+arg_6]
seg000:81B6 51 push cx ; driverIndex
seg000:81B7 E8 A0 0A call readWriteDisk ; test encode data
seg000:81BA 83 C4 0C add sp, 0Ch
seg000:81BD 6A 00 push 0
seg000:81BF 68 00 02 push 200h ; __int32
seg000:81C2 8D 86 00 EE lea ax, [bp+sevenBuf]
seg000:81C6 50 push ax ; sizeSevenBuf
seg000:81C7 6A 00 push 0
seg000:81C9 6A 00 push 0 ; sevenBuf
seg000:81CB 8D 8E 21 FE lea cx, [bp+dataInfo.key2_nonce]
seg000:81CF 51 push cx ; keyHW8
seg000:81D0 8D 96 E0 ED lea dx, [bp+key1]
seg000:81D4 52 push dx ; bufEncodeKey32
seg000:81D5 E8 C0 15 call s20_crypt ; https://github.com/alexwebr/salsa20
seg000:81D8 83 C4 0E add sp, 0Eh
seg000:81DB 6A 01 push 1 ; isWrite
seg000:81DD 6A 01 push 1 ; countSect
seg000:81DF 6A 00 push 0 ; int
seg000:81E1 6A 21 push 33 ; int
seg000:81E3 8D 86 00 EE lea ax, [bp+sevenBuf]
seg000:81E7 50 push ax ; outBuf
seg000:81E8 8A 46 0A mov al, [bp+arg_6]
seg000:81EB 50 push ax ; driverIndex
seg000:81EC E8 6B 0A call readWriteDisk ; save test buf
seg000:81EF 83 C4 0C add sp, 0Ch
seg000:81F2 6A 01 push 1 ; char
seg000:81F4 68 52 9C push offset aChkdskIsRepair ; " CHKDSK is repairing sector"
seg000:81F7 8D 86 21 FE lea ax, [bp+dataInfo.key2_nonce]
seg000:81FB 50 push ax
seg000:81FC 8D 86 E0 ED lea ax, [bp+key1]
seg000:8200 50 push ax ; key
seg000:8201 FF 76 04 push [bp+part] ; part
seg000:8204 E8 91 0A call decodeDisk
seg000:8207 83 C4 0A add sp, 0Ah
seg000:820A E8 3B 07 call initMSG2
seg000:820D CD 19 int 19h ; DISK BOOT
seg000:820D ; causes reboot of disk system
seg000:820F 5E pop si
seg000:8210 C9 leave
seg000:8211 C3 retn
seg000:8211 encodeProcess endp
Этот код в целом идентичен используемому вредоносной программой Petya (за исключением текста требования), структура data_info_t – аналогичная и также сохраняется в сектор 32, однако key1_salsa20 и keyString формируются на основании эллиптических кривых.
Комментарии (67)
NLO
28.06.2017 22:17НЛО прилетело и опубликовало эту надпись здесь
delvin-fil
29.06.2017 04:45Не знаю, что произойдет сейчас.
Лет пять(ну, наверное, более) назад пробовал такой «фокус». Создал сильно ограниченного пользователя, которому разрешено запускать только ТС, Opera, IceBookReader и еще пяток программ(речь, разумеется, о домашнем компе) без которых ну никак. Разрешил автозапуск с флешки. А потом экспериментировал с флешками зараженными скринлокерами, бутлокерами, псевдокачалками из инета. Ничего из них не сработало.
Может имеет смысл поступать так и сейчас.
teecat
29.06.2017 12:33Вот тут самое интересное. Это первая эпидемия на моей памяти, когда заражались компании с тем же апплокером и всеми обновлениями. К сожалению исследования, где было бы исследовано, какипе ошибки в настройке прав привели к проблемам — я не видел.
Лично от себя я вижу
— нужно сегментировать сети. 12544 воровал учетки и от них распространялся
— никаких записей неразрешенным программам на диск в корень, системные папки и темповые папки
— фильтрация в почте на исполняемые файлы и ссылки
— закрытие всех ненужных сервисов и шар
Sergey_datex
28.06.2017 22:24+3Самое интересное не написали — используется открытая или закрытая часть RSA ключа, откуда он берется, отправляется ли на сервер?
vilgeforce
29.06.2017 02:32-1Ну если бы они использовали приватную часть RSA — проблем с расшифровкой не должно было бы быть.
teecat
29.06.2017 12:34Пишут, что шифровальщик не был настроен на расшифровку данных. Пока подтверждения я не видел
Holmogorov
05.07.2017 12:43Все верно. Ключ, которым шируется MFT, никуда не передается, поэтому расшифровать данные невозможно впринципе. Судя по всему, такая задача перед вирусописателями и не стояла.
dev_marshak
29.06.2017 14:53На сколько понял, RSA ключом они шифровали ключ для зашифровки данных (извините за тавтологию).
А солью использовался тот код который выводиться на экран.
Соответсвенно им не нужно, что бы машина отправляла приватный ключ, он у них один для всех, а вот код отличается, но его скидывают сами жертвы.
Надеюсь специалисты из Dr.Web меня поправят, если в чем-то ошибаюсь.
Ad3pt
29.06.2017 02:17> .doc, .docx, .ppt, .pptx, .xls, .xlsx.
Пользователей Open/LibreOffice опять забыли. Так и сидят, бедняги, незашифрованные :)sanrega
29.06.2017 04:07Пользователи файловых 1С тоже могут быть спокойны =)
И, судя по тому, что не шифруются фоточки и видео, шифровальщик не рассчитан на домашних пользователей.teecat
29.06.2017 12:35+1Ну одну бухгалтерскую систему хакнули, ждем атак на 1с, гарант и аналоги
Borovlev
29.06.2017 18:12И сразу слова Турчинова подтвердятся, что 1С вообще следит за всеми. Такой себе «большой брат» :D
teecat
30.06.2017 11:21Имел я в виду не это. Успех атаки псевдопети показал злоумышленникам вектор атаки через обновления. Не то, чтобы этого не было. Было, но без такого громкого успеха. Можно предположить, что сейчас все пионеры переключатся со взломов сайта пентагона и наса на взломы 1с, гаранта и адоба
А вообще Медок долго шел к своей «славе». стоит почитать хотя бы тут. Мне крайне интересно, что за системные вызовы использовала бухгалтерская программа, что все антивирусы без исключений считали ее вредоносной?
susnake
29.06.2017 04:41А что на счет «Криптовымогатель Petya денег не получит: генерируем ключ разлочки жесткого диска сами»? Или это другая версия/модификация Пети?
vedenin1980
29.06.2017 11:25Другая, на текущей версии пока нет возможности разблокировать данные и скорее всего не будет
VahMaster
29.06.2017 09:38+1можно поподробней описать как Mimikatz получает пароли, насколько понятно это актуально для корпоративных сетей, в этом случае уровень леса AD 2012r2 может помочь?
Teomit
29.06.2017 11:50+1Если не затруднит, ответьте на эти вопросы:
При включённом белом списке возможно ли заражение, когда пользователь с правами User запускает фейковый офисный файл с полученного письма?
В процессе шифрования ещё на живой системе можно ли в диспетчере задач увидеть процесс вируса?
Некоторые писали, что у них произошло заражение через сеть даже тех компьютеров, у которых стояли мартовские патчи. Это правда? Интересует именно вопрос заражения через уязвимость SMB.
ЛК пишут в своём блоге, что нет возможности расшифровать файлы: https://blog.kaspersky.com/new-ransomware-epidemics/17314/. Получается, что нет пути восстановления?
Cureit на данный момент может определить наличие файлов вируса в пользовательских файлах?teecat
29.06.2017 12:38-1> Cureit
Пользователи через утилиту и лайфсд лечились. Если естественно дело не было запущено. По слухам мы ловили сам процесс шифрования, поэтому при актуальном drweb файлы могли и не зашифроваться.
> Некоторые писали, что у них произошло заражение через сеть даже тех компьютеров, у которых стояли мартовские патчи
Очень много таких сообщений. Связано это видимо с тем, что червь мог использовать для распространения не только SMBv1, но и украденные учетки
vilgeforce
29.06.2017 13:01«нет возможности расшифровать файлы» — без приватного RSA ключа — нет. А он, вероятно, есть у авторов троя.
nefone
29.06.2017 11:58Не пойму или Петя или нет?
Насколько я помню Петя был такой безобидный шифровальщик или это была «проба пера» у авторов…doctorweb
29.06.2017 12:11Точно не тот самый петя. Так что если кто пытается расшифровать результаты работы этого троянца старыми утилитками — зря он пытается. Процитирую официальную инструкцию: «Восстановление содержимого после завершения требует знания закрытого ключа, таким образом, без знания ключа данные восстановить невозможно. В настоящий момент расшифровки файлов нет, ведется анализ и поиск решений, мы сообщим вам об окончательных результатах.»
Такие дела. На остальные вопросы сейчас постараемся ответить.
ICELedyanoj
29.06.2017 16:18+1По последним слухам фиктивный апдейт приехал пользователям Медка не с сервера самой компании, а из какого-то промежуточного дата-центра провайдера. Просто перенаправили трафик. Но на мой взгляд это не снимает вины с Медка — их бинарники работают от имени администратора, по рекомендациям поддержки Медка пользователи добавляли Медок в исключения антивируса.
И, помимо всего этого — тадамм — ни экзешник Медка, ни его апдейты, не имеют цифровых подписей, поэтому при апдейте медок свободно запустит то, что пришло ему в виде обновления, без каких-либо проверок.doctorweb
29.06.2017 16:23по рекомендациям поддержки Медка пользователи добавляли Медок в исключения антивируса
doctorweb
29.06.2017 16:27А можно какой-нибудь источник этих слухов?
ICELedyanoj
29.06.2017 16:30Официальный канал Медка на фейсбуке, жалобы пользователей в комментариях под новостями. Источник, конечно, так себе, но Медок эти комментарии не опровергает.
Alex2Fast
29.06.2017 16:24У меня на одной фирме стоит Медок на сервере, обновляю только я через обновление штатное медка.
Сервер как работал так и работает. Единственное что сделал зашел через VPN на роутер (mikrotik) и отключил всю сетку от инета в момент атаки. Исключение их правил?lingvo
29.06.2017 21:45У меня тоже так было. Сервер на Win 2003. После отключения в среду я его запустил сегодня и он нормально работает, даже 1С-ка. И вот только сейчас обнаружил, что все doc и xls файлы зашифрованы, хотя readme.txt нет. Выходит, не успело создать?
lingvo
29.06.2017 22:15И Eset после обновления баз данный вирус все равно не видит.
Frankenstine
03.07.2017 09:26Вирус же создаёт свою копию в памяти, запускает её и из неё удаляет начальный файл, так что после перезагрузки (назначается через планировщик через час после активации вируса) следы заражения пропадают.
TorAx40
29.06.2017 19:20И что самое интересное в этом всем — до сих пор нет внятных рекомендаций оп лечению этой гадости.
doctorweb
29.06.2017 19:20Почему же? Лечение весьма тривиально, после обновления баз с этим справится даже бесплатный CureIT!..
lingvo
29.06.2017 22:12А файлы как расшифровать?
Frankenstine
03.07.2017 09:27Если не отключали систему восстановления, для windows 7 и старше — ПКМ на файле (а лучше сразу папке) и «Восстановить прежнюю версию».
Indestr
29.06.2017 20:13+1Меня интересует вопрос о цифровых подписях обновлений. Я даже не могу поверить, что большая компания не использовала такой метод защиты. Кто-то подскажет по статистике, какой % софта, работающего как клиент-сервер и постоянно обновляющегося не использует цифровые подписи?
ICELedyanoj
29.06.2017 22:17Я сталкивался однажды с таким продуктом. Сознательно не подписывали стартовый exe потому что было несколько референсов на опенсорсные либы без цифровой подписи, и .Net не допускает референса из подписанного экзешника на не подписанные библиотеки. Разработчики упирались ногами и рогами и не хотели ничего менять, ибо слишком дорого.
Возможно у Медка та же ситуация. А вот теперь можно прикинуть репутационные потери и подумать что в итоге дешевле.sumanai
29.06.2017 23:27+1Сознательно не подписывали стартовый exe потому что было несколько референсов на опенсорсные либы без цифровой подписи
А нельзя ли было залочить версию нужных библиотек и подписать набор их хешей самим?ICELedyanoj
30.06.2017 06:05Конечно можно, но я ведь и говорю — это дополнительная работа, соответственно проектное время, соответственно дополнительные деньги. Владелец продукта был относительно далёк от технических подробностей процесса разработки и любые попытки выбить лишнее время на непонятные ему телодвижения с продуктом были заранее обречены на непонимание и сопротивление.
smilyfox
30.06.2017 11:22Муниципалитет очень любит. У них ворох разнообразного софта, часть еще на фокспро писана. Подозреваю что тамошние программисты еще живых мамонтов видели :)
aynur_safin
30.06.2017 11:22А продолжение истории с BackDoor.Dande было?
Я так понял, что вы намекаете на то, что сами разработчики «Спарго Технологии» внедрили вирус в «ePrica»?doctorweb
30.06.2017 12:40Да какие уж тут намёки. Инсайдерство это.
aynur_safin
30.06.2017 14:16Что Вы имеете в виду под термином «Инсайдерство»? Какой-то разработчик из компании «Спарго Технологии», тайно от руководства компании, внедрил зловред для собственного обогащения, или таки, с ведома руководства? И, все равно, интересно, было-ли продолжение, санкции, суды, интриги, расследования?
doctorweb
30.06.2017 14:48Троянец сливался с их сервера обновления софтиной, имеющей их цифровую подпись. А вот с ведома или нет, тайно или нет — это уже вопрос. Надеюсь, однажды кто-то сможет на него ответить :)
alexnissan
30.06.2017 18:25«В первую очередь Trojan.Encoder.12544 портит VBR (Volume Boot Record, загрузочная запись раздела) диска C:, первый сектор диска заполняется мусорными данными. Затем шифровальщик копирует оригинальную загрузочную запись Windows в другой участок диска, предварительно зашифровав ее с использованием алгоритма XOR, а вместо нее записывает свою. Далее он создает задание на перезагрузку компьютера, и начинает шифровать все обнаруженные на локальных физических дисках файлы»
А можно например скопировать первый сектор диска С и загрузочную запись windows и при загрузке системы всегда их перезаписывать сохраненной копией?
alexnissan
30.06.2017 19:03«При шифровании используется алгоритм AES-128-CBC, для каждого диска создается собственный ключ. „
Если есть plantext и ciphertext можно ли получить ключ и подойдет ли он ко всем файлам на диске, или диск зашифрован как единый файл?vilgeforce
05.07.2017 15:48Для всей современной криптографии из plantext и ciphertext ключ не получить.
Leljka
Ну вот! Я с самого начала сомневалась, когда в СМИ была инфа, что все, ни откатиться, ни восстановить ничего нельзя. Все можно. А найдя копию в корневом диске, как я понимаю, можно с Live CD поискать и оригинал ручками. Почиститься, восстановить загрузку и откатиться наконец накрайняк. Вопрос, как он ведет себя с tib. файлами. Затрагивает ли? По идее, они уже бессильны, если успеет повредить кластеры диска. (MFT). Обычно, в этом случае, даже таковое восстановление не выйдет, акронис просто возвестит, что «архив поврежден или не найден». А кто его так обозвал?))) Вирус Петя гуляет по планете)
doctorweb
На самом деле это и не Петя, просто некоторые люди посмотрели на фотки с заражения и увидели знакомое требование о выкупе :) Но ставить диагнозы по фотографиям — занятие неправильное.
Leljka
Простите за шутку. Так пошутили сотрудники СМИ, прикрепив соответствующие фотки. Да, аналогию я поняла. Спасибо за инфу. ваша информация по закрытию портов на сайте тоже полезна.
VGusev2007
Не очень понятно из статьи…
Если вирус получит каким-либо образом права пользователя входящего в группу Administrator, в AD, то через psexec, он положит всю сеть и ему не нужна даже будет уязвимость в протоколе SMB?
LoadRunner
Зная учётные данные пользователя с повышенными привилегиями, можно совершенно легальным образом (без использования уязвимостей) получить доступ к удалённым ресурсам с использованием этих данных. Всё же просто и очевидно.
VGusev2007
Я немного про другое… Возможно я перепаниковал… Но читая разные источники, пришёл к выводу, что используя локальные уязвимости ОС, возможно выполнить вредоносный код из-под кого угодно на поражённой машине, не зная пароля пользователя. Я не прав?
LoadRunner
Можно. Но когда есть учётные данные администратора — зачем извращаться с уязвимостями, которых может не быть?
michael_vostrikov
Так этот вирус это Petya или другой? Или есть еще один Petya? Проясните пожалуйста)
doctorweb
Был такой шифровальщик некоторое время назад, некоторые назвали его Петей. Этот внешне на него походил, поэтому некоторые эксперты посмотрели на фотки и сказали — да это ж Петя! Но петя не размножался самостоятельно, да и работал немного по-другому, в общем, кусок кода, похоже, позаимствован, но в целом это другой троянец — а жаль! Ведь тот был гораздо менее опасен.
dev_marshak
Ну если резервных копий нет, и загрузку не обломали по пути, на сколько я понимаю — нельзя. Файлы то зашифровываются, и без ключа, на домашних мощностях их не расшифровать.
А систему поднять, думаю не для кого не проблема, но толку, самое дорогое это данные.