Исследователи ESET обнаружили новый вайпер и инструмент для его выполнения, оба из которых приписываются APT-группе Agrius. Это произошло в ходе анализа атаки на цепочку поставок, в которой использовался израильский разработчик ПО. Группа известна своими деструктивными действиями.
В феврале 2022 года Agrius начала нацеливаться на израильские HR- и IT-консалтинговые фирмы, а также на пользователей израильского программного пакета, используемого в алмазной индустрии. Мы полагаем, что операторы Agrius провели атаку на цепочку поставок, злоупотребив доверием израильского разработчика ПО, чтобы развернуть свой новый вайпер Fantasy и новый инструмент для бокового перемещения и выполнения Fantasy под названием Sandals.
Вайпер Fantasy создан на основе ранее описанного вайпера Apostle, но не пытается маскироваться под ransomware, как это делал Apostle изначально. Вместо этого он сразу приступает к удалению данных. Жертвы были замечены в Южной Африке — где разведка началась за несколько недель до развертывания Fantasy — а также в Израиле и Гонконге.
Ключевые моменты этой статьи:
- Agrius провела атаку на цепочку поставок, злоупотребив доверием израильского программного пакета, используемого в алмазной индустрии.
- Затем группа развернула новый вайпер, который мы назвали Fantasy. Большая часть его кодовой базы взята от Apostle, предыдущего вайпера Agrius.
- Наряду с Fantasy, Agrius также развернула новый инструмент для бокового перемещения и выполнения Fantasy, который мы назвали Sandals.
- Среди жертв — израильские HR-фирмы, IT-консалтинговые компании и оптовый продавец алмазов; южноафриканская организация, работающая в алмазной индустрии; и ювелир в Гонконге.
Обзор группы
Agrius — это относительно новая проиранская группа, нацеленная на жертв в Израиле и Объединенных Арабских Эмиратах с 2020 года. Изначально группа развернула вайпер Apostle, замаскированный под ransomware, но позже модифицировала Apostle в полноценный ransomware. Agrius использует известные уязвимости в интернет-приложениях для установки веб-шеллов, затем проводит внутреннюю разведку, прежде чем перемещаться по сети и развертывать свои вредоносные полезные нагрузки.
Обзор кампании
20 февраля 2022 года в организации алмазной индустрии в Южной Африке Agrius развернула инструменты для сбора учетных данных, вероятно, в рамках подготовки к этой кампании. Затем, 12 марта 2022 года, Agrius запустила атаку с использованием вайпера, развернув Fantasy и Sandals, сначала на жертву в Южной Африке, затем на жертв в Израиле и, наконец, на жертву в Гонконге.
Среди жертв в Израиле — компания, предоставляющая услуги IT-поддержки, оптовый продавец алмазов и HR-консалтинговая фирма. Южноафриканские жертвы — это одна организация из алмазной индустрии, а жертва из Гонконга — ювелир.
Кампания длилась менее трех часов, и за это время клиенты ESET уже были защищены благодаря обнаружениям, идентифицирующим Fantasy как вайпер, и блокирующим его выполнение. Мы заметили, что разработчик ПО выпустил чистые обновления в течение нескольких часов после атаки. Мы связались с разработчиком ПО, чтобы уведомить его о потенциальном компромете, но наши запросы остались без ответа.
Подготовка к отбытию
Первыми инструментами, развернутыми операторами Agrius на системах жертв (способом, который неизвестен), были:
- MiniDump, «реализация на C# функциональности mimikatz/pypykatz для дампа учетных данных из дампов LSASS»
- SecretsDump, Python-скрипт, который «выполняет различные техники для дампа хэшей с [удаленной] машины без выполнения какого-либо агента на ней»
- Host2IP, кастомный инструмент на C#/.NET, который разрешает имя хоста в IP-адрес.
Имена пользователей, пароли и имена хостов, собранные этими инструментами, необходимы для успешного распространения Sandals и выполнения вайпера Fantasy. Операторы Agrius развернули MiniDump и SecretsDump на первой жертве этой кампании 20 февраля 2022 года, но дождались 12 марта 2022 года, чтобы развернуть Host2IP, Fantasy и Sandals (последовательно).
Sandals: Зажигание Fantasy (вайпера)
Sandals — это 32-битное исполняемое приложение для Windows, написанное на C#/.NET. Мы выбрали такое название, потому что Sandals — это анаграмма некоторых аргументов командной строки, которые оно принимает. Оно используется для подключения к системам в той же сети через SMB, для записи пакетного файла на диск, который выполняет вайпер Fantasy, а затем для запуска этого пакетного файла с помощью PsExec со следующей строкой команды:
- PsExec.exe /accepteula -d -u «<username>» -p «<password>» -s «C:<path><GUID>.bat»
Параметры PsExec имеют следующие значения:
- -d – Не ждать завершения процесса (неинтерактивно).
- /accepteula – Подавить отображение диалогового окна лицензии.
- -s – Запустить удаленный процесс от имени учетной записи SYSTEM.
Sandals не записывает вайпер Fantasy на удаленные системы. Мы полагаем, что вайпер Fantasy развертывается через атаку на цепочку поставок с использованием механизма обновления программного обеспечения разработчика. Эта оценка основана на нескольких факторах:
- все жертвы были клиентами затронутого разработчика ПО;
- вайпер Fantasy был назван аналогично легитимным версиям ПО;
- все жертвы выполнили вайпер Fantasy в течение 2,5 часов, причем жертвы в Южной Африке были атакованы первыми, затем жертвы в Израиле, и, наконец, жертвы в Гонконге (мы приписываем задержку в таргетинге различиям в часовых поясах и жестко закодированному времени проверки в легитимном ПО); и,
- наконец, вайпер Fantasy был записан и выполнен из %SYSTEM%WindowsTemp, стандартного временного каталога для систем Windows.
Кроме того, мы полагаем, что жертвы уже использовали PsExec, и операторы Agrius решили использовать PsExec, чтобы смешаться с обычной административной активностью на машинах жертв, а также для простоты выполнения пакетных файлов. Таблица 1 содержит список аргументов командной строки, принимаемых Sandals.
Таблица 1. Аргументы Sandals и их описания
| Аргумент | Описание | Обязательно |
|---|---|---|
| -f <filepath> | Путь и имя файла, содержащего список имен хостов, которые должны быть целью. | Да |
| -u <username> | Имя пользователя, которое будет использоваться для входа в удаленные имена хостов из аргумента -f. | Да |
| -p <password> | Имя пользователя, которое будет использоваться для входа в удаленные имена хостов из аргумента -f. | Да |
| -l <filepath> | Путь и имя файла вайпера Fantasy на удаленной системе, который будет выполнен пакетным файлом, созданным Sandals. | Да |
| -d <path> | Местоположение, куда Sandals запишет пакетный файл на удаленной системе. По умолчанию %WINDOWS%Temp. | Нет |
| -s <integer> | Время в секундах, в течение которого Sandals будет ожидать между записью пакетного файла на диск и его выполнением. По умолчанию две секунды. | Нет |
| -a file <filepath> или -a random или -a rsa |
Если после -a следует слово file и путь с именем файла, Sandals использует ключ шифрования из предоставленного файла. Если после -a следует rsa или random, Sandals использует класс RSACryptoServiceProvider для генерации пары открытого и закрытого ключей размером 2048 бит. | Нет |
| -dn <devicename> | Указывает, к какому диску подключаться на удаленной системе через SMB. По умолчанию C:. | Нет |
| -ps <filepath> | Местоположение PsExec на диске. По умолчанию psexec.exe в текущем рабочем каталоге. | Нет |
| -ra | Если -ra указан во время выполнения, он устанавливает переменную flag в True (изначально установлена в False). Если flag=True, Sandals удаляет все файлы, записанные на диск в текущем рабочем каталоге. Если flag=False, Sandals пропускает шаг очистки файлов. | Нет |
Пакетный файл, записанный Sandals на диск, называется <GUID>.bat, где имя файла является результатом работы метода Guid.NewGuid(). Пример пакетного файла Sandals показан на Рисунке 2.
Рисунок 2. Пакетный файл Sandals (сверху, красным) и декодированный параметр командной строки (снизу, синим)
Строка base64, следующая за fantasy35.exe, вероятно, является пережитком требований к выполнению Apostle (подробнее в разделе Атрибуция к Agrius). Однако вайпер Fantasy ищет только аргумент 411 и игнорирует все остальные входные данные во время выполнения (см. следующий раздел для получения дополнительной информации).
Вайпер Fantasy
Вайпер Fantasy также является 32-битным исполняемым приложением для Windows, написанным на C#/.NET, названным так из-за имен его файлов: fantasy45.exe и fantasy35.exe соответственно. Рисунок 3 иллюстрирует поток выполнения вайпера Fantasy.
Изначально Fantasy создает мьютекс, чтобы гарантировать, что запущена только одна копия. Он собирает список фиксированных дисков, но исключает диск, где находится каталог %WINDOWS%. Затем он входит в цикл, перебирая список дисков для построения рекурсивного списка каталогов, и использует метод RNGCryptoServiceProvider.GetBytes для создания криптографически стойкой последовательности случайных значений в массиве размером 4096 байт. Если вайперу передается аргумент во время выполнения 411, цикл for перезаписывает содержимое каждого файла указанным выше байтовым массивом с помощью вложенного цикла while. В противном случае цикл for перезаписывает только файлы с расширением, указанным в Приложении.
Затем Fantasy назначает определенную временную метку (2037-01-01 00:00:00) этим свойствам временной метки файла:
- CreationTime
- LastAccessTime
- LastWriteTime
- CreationTimeUtc
- SetLastAccessTimeUtc
- LastWriteTimeUtc
а затем удаляет файл. Это, предположительно, делается для усложнения восстановления и криминалистического анализа.
Во время цикла for вайпер Fantasy подсчитывает ошибки в текущем каталоге при попытке перезаписи файлов. Если количество ошибок превышает 50, он записывает пакетный файл %WINDOWS%Temp<GUID>.bat, который удаляет каталог с файлами, вызывающими ошибки, а затем самоудаляется. Затем запись файлов возобновляется в следующем каталоге из списка целей.
После завершения цикла for вайпер Fantasy создает пакетный файл в %WINDOWS%Temp под названием registry.bat. Пакетный файл удаляет следующие ключи реестра:
- HKCR.EXE
- HKCR.dll
- HKCR*
Затем он выполняет следующее, чтобы попытаться очистить память кэша файловой системы:
- %windir%system32rundll32.exe advapi32.dll,ProcessIdleTasks
Наконец, registry.bat удаляет сам себя (del %0).
Далее вайпер Fantasy очищает все журналы событий Windows и создает другой пакетный файл, system.bat, в %WINDOWS%Temp, который рекурсивно удаляет все файлы на %SYSTEMDRIVE%, пытается очистить память кэша файловой системы и самоудаляется. Затем Fantasy ждет две минуты, прежде чем перезаписать Master Boot Record (MBR) системы.
Fantasy затем записывает еще один пакетный файл, %WINDOWS%Tempremover.bat, который удаляет вайпер Fantasy с диска, а затем удаляет сам себя. После этого Fantasy ждет 30 секунд, прежде чем перезагрузить систему с кодом причины SHTDN_REASON_MAJOR_OTHER (0x00000000) — Другая проблема.
Вероятно, восстановление %SYSTEMDRIVE% возможно. Было замечено, что жертвы возвращаются в рабочее состояние в течение нескольких часов.
Атрибуция к Agrius
Большая часть кодовой базы Apostle, который изначально был вайпером, маскирующимся под ransomware, а затем был обновлен до настоящего ransomware, была напрямую скопирована в Fantasy, и многие другие функции в Fantasy были лишь незначительно модифицированы из Apostle, известного инструмента Agrius. Однако общая функциональность Fantasy — это вайпер без каких-либо попыток замаскироваться под ransomware. Рисунок 4 показывает функции удаления файлов в Fantasy и Apostle соответственно. Между оригинальной функцией в Apostle и реализацией Fantasy есть лишь несколько мелких изменений.
Рисунок 4. Функции удаления файлов из вайпера Fantasy (сверху, красным) и ransomware Apostle (снизу, зеленым)
Рисунок 4. Функции удаления файлов из вайпера Fantasy (сверху, красным) и ransomware Apostle (снизу, зеленым)
На Рисунке 5 показано, что функция перечисления каталогов почти полностью скопирована, лишь переменные функции немного изменены между Apostle и Fantasy.
Рисунок 5. Функции перечисления каталогов из вайпера Fantasy (сверху, красным) и ransomware Apostle (снизу, зеленым)
Наконец, функция GetSubDirectoryFileListRecursive на Рисунке 6 также является почти точной копией.
Рисунок 6. Функции рекурсивного перечисления каталогов из вайпера Fantasy (сверху, красным) и ransomware Apostle (снизу, зеленым)
Кроме того, мы видим следы потока выполнения Apostle в Fantasy. В оригинальном анализе Apostle SentinelOne отмечает, что «Для корректного выполнения версии ransomware требуется передать ей аргумент, закодированный в base64, содержащий XML-объект ‘RSAParameters’. Этот аргумент передается и сохраняется как открытый ключ, используемый для процесса шифрования, и, скорее всего, генерируется на машине, принадлежащей злоумышленнику.» Мы видим в пакетном файле на Рисунке 7, который Sandals создает на удаленных системах для запуска Fantasy, что тот же аргумент, закодированный в base64 и содержащий XML-объект RSAParameters, передается Fantasy во время выполнения. Однако Fantasy не использует этот аргумент во время выполнения.
Рисунок 7. Sandals передает Fantasy тот же объект RSAParameters, что использовался ransomware Apostle
Заключение
С момента своего обнаружения в 2021 году Agrius сосредоточена исключительно на деструктивных операциях. С этой целью операторы Agrius, вероятно, провели атаку на цепочку поставок, нацелившись на механизмы обновления программного обеспечения израильской компании, чтобы развернуть Fantasy, свой новейший вайпер, для жертв в Израиле, Гонконге и Южной Африке. Fantasy во многих аспектах похож на предыдущий вайпер Agrius, Apostle, который изначально маскировался под ransomware, прежде чем был переписан в настоящее ransomware. Fantasy не прилагает никаких усилий, чтобы замаскироваться под ransomware. Операторы Agrius использовали новый инструмент, Sandals, для удаленного подключения к системам и выполнения Fantasy.
По любым вопросам, касающимся наших исследований, опубликованных на WeLiveSecurity, пожалуйста, свяжитесь с нами по адресу threatintel@eset.com.
ESET Research также предлагает закрытые отчеты по APT-интеллекту и потоки данных. По любым вопросам, касающимся этой услуги, посетите страницу ESET Threat Intelligence.
IoCs
| SHA-1 | Имя файла | Обнаружение | Описание |
|---|---|---|---|
| 1A62031BBB2C3F55D44F59917FD32E4ED2041224 | fantasy35.exe | MSIL/KillDisk.I | Вайпер Fantasy. |
| 820AD7E30B4C54692D07B29361AECD0BB14DF3BE | fantasy45.exe | MSIL/KillDisk.I | Вайпер Fantasy. |
| 1AAE62ACEE3C04A6728F9EDC3756FABD6E342252 | host2ip.exe | clean | Разрешает имя хоста в IP-адрес. |
| 5485C627922A71B04D4C78FBC25985CDB163313B | MiniDump.exe | MSIL/Riskware.LsassDumper.H | Реализация Mimikatz для дампа учетных данных из LSASS. |
| DB11CBFFE30E0094D6DE48259C5A919C1EB57108 | registry.bat | BAT/Agent.NRG | Пакетный файл, который стирает некоторые ключи реестра и сбрасывается и выполняется вайпером Fantasy. |
| 3228E6BC8C738781176E65EBBC0EB52020A44866 | secretsdump.py | Python/Impacket.A | Python-скрипт, который дампит хэши учетных данных. |
| B3B1EDD6B80AF0CDADADD1EE1448056E6E1B3274 | spchost.exe | MSIL/Agent.XH | Инструмент бокового перемещения Sandals и распространитель Fantasy. |
MITRE ATT&CK техники
Эта таблица составлена с использованием версии 12 фреймворка MITRE ATT&CK.
| Тактика | ID | Название | Описание |
|---|---|---|---|
| Разработка ресурсов | T1587 | Разработка возможностей | Agrius создает утилиты для использования во время активного процесса эксплуатации. |
| T1587.001 | Разработка возможностей: Вредоносное ПО | Agrius создает кастомное вредоносное ПО, включая вайперы (Fantasy) и инструменты для бокового перемещения (Sandals). | |
| Первоначальный доступ | T1078.002 | Действительные учетные записи: Учетные записи домена | Операторы Agrius пытались перехватить кешированные учетные данные, а затем использовать их для бокового перемещения. |
| T1078.003 | Действительные учетные записи: Локальные учетные записи | Операторы Agrius пытались использовать кешированные учетные данные локальных учетных записей для получения первоначального доступа к дополнительным системам внутри внутренней сети. | |
| Выполнение | T1059.003 | Интерпретатор команд и скриптов: Командная оболочка Windows | Fantasy и Sandals используют пакетные файлы, которые запускаются через командную оболочку Windows. |
| Повышение привилегий | T1134 | Манипуляция токеном доступа | Fantasy использует API LookupPrivilegeValue и AdjustTokenPrivilege в advapi32.dll для предоставления своему токену процесса привилегии SeShutdownPrivilege для перезагрузки Windows. |
| Обход защиты | T1070.006 | Удаление индикаторов на хосте: Timestomp | Операторы Agrius использовали timestomp для временных меток компиляции Fantasy и Sandals. |
| Доступ к учетным данным | T1003 | Дамп учетных данных ОС | Операторы Agrius использовали несколько инструментов для дампа учетных данных ОС для использования в боковом перемещении. |
| Обнаружение | T1135 | Обнаружение сетевых ресурсов | Операторы Agrius использовали кешированные учетные данные для проверки доступа к другим системам внутри внутренней сети. |
| Боковое перемещение | T1021.002 | Удаленные службы: SMB/Windows Admin Shares | Операторы Agrius использовали кешированные учетные данные для подключения по SMB к системам внутри скомпрометированной внутренней сети. |
| T1570 | Перенос инструментов бокового перемещения | Операторы Agrius использовали Sandals для передачи пакетных файлов через SMB на другие системы внутри внутренней сети. | |
| Воздействие | T1485 | Уничтожение данных | Вайпер Fantasy перезаписывает данные в файлах, а затем удаляет файлы. |
| T1561.002 | Стирание диска | Fantasy стирает MBR диска Windows и пытается стереть раздел ОС. | |
| T1561.001 | Стирание диска: Стирание содержимого диска | Fantasy стирает все содержимое диска с не-Windows-дисков, являющихся фиксированными дисками. | |
| T1529 | Завершение работы/перезагрузка системы | Fantasy перезагружает систему после завершения своих полезных нагрузок по стиранию диска и данных. |
Приложение
Расширения файлов (682), на которые нацелен вайпер Fantasy, когда он не нацелен на все расширения файлов. Расширения файлов, выделенные желтым (68), являются распространенными расширениями имен файлов в Windows. Примечательно отсутствуют расширения файлов dll и sys.
| $$$ | blend | drw | jsp | nyf | qualsoftcode | tdb |
|---|---|---|---|---|---|---|
| $db | blend1 | dsb | kb2 | oab | quicken2015backup | tex |
| 001 | blend2 | dss | kbx | obj | quicken2016backup | tga |
| 002 | blob | dtd | kc2 | obk | quicken2017backup | thm |
| 003 | bm3 | dwg | kdb | odb | quickenbackup | tib |
| 113 | bmk | dxb | kdbx | odc | qv~ | tibkp |
| 3dm | bookexport | dxf | kdc | odf | r3d | tif |
| 3ds | bpa | dxg | key | odg | raf | tig |
| 3fr | bpb | em1 | kf | odm | rar | tis |
| 3g2 | bpm | epk | kpdx | odp | rat | tlg |
| 3gp | bpn | eps | layout | ods | raw | tmp |
| 3pr | bps | erbsql | lbf | odt | rb | tmr |
| 73b | bpw | erf | lcb | oeb | rbc | tor |
| 7z | bsa | esm | ldabak | ogg | rbf | trn |
| __a | bup | exe | litemod | oil | rbk | ttbk |
| __b | c | exf | llx | old | rbs | txt |
| ab | caa | fbc | lnk | onepkg | rdb | uci |
| ab4 | cas | fbf | ltx | orf | re4 | upk |
| aba | cbk | fbk | lua | ori | rgss3a | v2i |
| abbu | cbs | fbu | lvl | orig | rim | vb |
| abf | cbu | fbw | m | ost | rm | vbk |
| abk | cdf | fdb | m2 | otg | rmbak | vbm |
| abu | cdr | ff | m3u | oth | rmgb | vbox-prev |
| abu1 | cdr3 | ffd | m4a | otp | rofl | vcf |
| accdb | cdr4 | fff | m4v | ots | rrr | vdf |
| accde | cdr5 | fh | map | ott | rtf | vfs0 |
| accdr | cdr6 | fhd | max | oyx | rw2 | vmdk |
| accdt | cdrw | fhf | mbf | p12 | rwl | vob |
| ach | cdx | fla | mbk | p7b | rwz | vpcbackup |
| acp | ce2 | flat | mbw | p7c | s3db | vpk |
| acr | cel | flka | mcmeta | pab | safenotebackup | vpp_pc |
| act | cenon~ | flkb | mdb | pages | sas7bdat | vrb |
| adb | cer | flv | mdbackup | pak | sav | vtf |
| adi | cfp | fmb | mdc | paq | say | w01 |
| ads | cfr | forge | mddata | pas | sb | w3x |
| aea | cgm | fos | mdf | pat | sbb | wallet |
| afi | cib | fpk | mdinfo | pba | sbs | walletx |
| agdl | ck9 | fpsx | mef | pbb | sbu | war |
| ai | class | fpx | mem | pbd | sdO | wav |
| ait | cls | fsh | menu | pbf | sda | wb2 |
| al | cmf | ftmb | mfw | pbj | sdc | wbb |
| apj | cmt | ful | mig | pbl | sdf | wbcat |
| apk | config | fwbackup | mkv | pbx5script | sid | wbk |
| arc | cpi | fxg | mlx | pbxscript | sidd | wbx |
| arch00 | cpp | fza | mmw | pcd | sidn | win |
| arw | cr2 | fzb | moneywell | pct | sie | wjf |
| as4 | craw | gb1 | mos | pdb | sim | wma |
| asd | crds | gb2 | mov | pdd | sis | wmo |
| asf | crt | gbp | mp3 | skb | wmv | |
| ashbak | crw | gdb | mp4 | pef | sldm | wotreplay |
| asm | cs | gho | mpb | pem | sldx | wpb |
| asmx | csd | ghs | mpeg | pfi | slm | wpd |
| asp | csh | gray | mpg | pfx | sln | wps |
| aspx | csl | grey | mpqge | php | sme | wspak |
| asset | csm | gry | mrw | php5 | sn1 | wxwanam |
| asv | css | gs-bck | mrwref | phtml | sn2 | x |
| asvx | csv | gz | msg | pk7 | sna | x11 |
| asx | d3dbsp | h | msi | pkpass | sns | x3f |
| ate | da0 | hbk | msim | pl | snx | xbk |
| ati | dac | hkdb | mv_ | plc | spf | xf |
| avi | das | hkx | myd | plc | spg | xis |
| awg | dash | hplg | mynotesbackup | png | spi | xla |
| ba6 | dazip | hpp | nb7 | pot | sps | xlam |
| ba7 | db | htm | nba | potm | sqb | xlk |
| ba8 | db-journal | htm1 | nbak | potx | sql | xlm |
| ba9 | db0 | html | nbd | ppam | sqlite | xlr |
| bac | db3 | hvpl | nbd | pps | sqlite3 | xls |
| back | dba | ibank | nbf | ppsm | sqlitedb | xlsb |
| backup | dbf | ibd | nbi | ppsx | sr2 | xlsm |
| backup1 | dbk | ibk | nbk | ppt | srf | xlsx |
| backupdb | dbs | ibz | nbs | pptm | srr | xlt |
| bak | dbx | icbu | nbu | pptx | srt | xltm |
| bak2 | dc2 | icf | ncf | pqb-backup | srw | xltx |
| bak3 | dcr | icxs | nco | prf | st4 | xlw |
| bakx | dcs | idx | nd | prv | st6 | xml |
| bak~ | ddd | iif | nda | ps | st7 | ycbcra |
| bank | ddoc | iiq | ndd | psa | st8 | yrcbck |
| bar | ddrw | incpas | nef | psafe3 | std | yuv |
| bat | dds | indd | nfb | psd | stg | zbfx |
| bay | der | index | nfc | psk | sti | zip |
| bbb | des | inprogress | nk2 | pspimage | stw | ztmp |
| bbz | desc | iso | nop | pst | stx | ~cw |
| bc6 | design | itdb | noy | ptb | sty | |
| bc7 | dgc | itl | npf | ptx | sum | |
| bck | dim | itm | nrbak | pvc | sv$ | |
| bckp | divx | iv2i | nrs | pvhd | sv2i | |
| bcm | diy | iwd | nrw | qba | swf | |
| bdb | djvu | iwi | ns2 | qbb | sxc | |
| bff | dmp | j01 | ns3 | qbk | sxd | |
| bgt | dna | jar | ns4 | qbm | sxg | |
| bif | dng | java | nsd | qbmb | sxi | |
| bifx | doc | jbk | nsf | qbmd | sxm | |
| big | docm | jdc | nsg | qbr | sxw | |
| bik | docx | jpa | nsh | qbw | syncdb | |
| bk1 | dot | jpe | ntl | qbx | t12 | |
| bkc | dotm | jpeg | nwb | qby | t13 | |
| bkf | dotx | jpg | nwbak | qdf | tar | |
| bkp | dov | jps | nx2 | qic | tax | |
| bkup | dpb | js | nxl | qsf | tbk | |
| bkz | drf |
