Введение.
Бывают ситуации когда не можешь продвинуться в сети и закрепится. Есть только вход через Wi-Fi. А дальше не получается. Машины есть, но сервисов на них не крутится, не считая шар. Можно попробовать MITM, брут, социальную инженерию. Но это все привлечет лишнее внимание чего не хотелось бы.
Читая новости можно натолкнуться на интересное решение:
Бывают ситуации когда не можешь продвинуться в сети и закрепится. Есть только вход через Wi-Fi. А дальше не получается. Машины есть, но сервисов на них не крутится, не считая шар. Можно попробовать MITM, брут, социальную инженерию. Но это все привлечет лишнее внимание чего не хотелось бы.
Читая новости можно натолкнуться на интересное решение:
- 1C.Drop.1 использует 1С для выполнения вредоносного кода.
Ссылка скрыта от гостей
- Украину заразили вирусом Petya через бухгалтерскую программу.
Да, возможно социальная инженерия, есть вариант, что это сработает. Пользователя очень сильно будет удивляет если его браузер бесконечно будет просить установить flash либо что-то в этом духе.
Во многих организация есть практика не держать своего админа, а быть на обслуживании у организации которая этим занимается. Так что сканировать все подряд, запускать exploit's, проводить MITM, брутить сервисы плохая идея. Велик шанс, что это заметят и примут меры даже админ с малым опытом поставит firewall либо антивирус, поменяет пароли и будет наблюдать за происходящем.
Вся информация предоставлена исключительно в ознакомительных целях. Ни ресурс codeby, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Возьмем пример сети небольшой организации.Работают от 10 до 20 человек. Админ может быть приходящий либо на сопровождении у организации. И тот кто обслуживает бухгалтерию (торговлю, зарплату) организации. Значительная часть РФ сидит на 1С: Бухгалтерии (имею в виду большой %, а не все 100%) и страны ближнего зарубежья. Так вот будем сегодня это использовать в своих целях.
У любой организации есть сервер (слабенький или ПК главного бухгалтера) на котором крутится БД.
В большинстве случаев БД поднимают 1с'ники дают общий доступ на директорию всем пользователям (чтоб не звонили по пустякам) и на этом дело заканчивается. Дальше задача админа настроить права и доступ пользователям. Все прекрасно знают то что работает, лучше не трогать, по этому как настроили так и оставили и нам это на руку.
Оказались мы в некоторой сетки где есть общая сетевая директория с файлами:
Наша цель это единственный файл 1Cv8.1CD. Есть конечно и директория с логами, но нам мало интересно какой документ проводил пользователь. В этом файле хранится вся финансово-хозяйственная деятельность организации.
Поставить платформу 1С на kali можно, но придется возиться с ключом, проще поставить ее на windows и там все сделать, так мы и поступим. Начинаем гуглить где скачать платформу 1С, встает интересный вопрос какую из платформ брать 8.0,8.1,8.2,8.3,8.4. На текущий момент 90% всех конфигураций 1С работают на платформе 8.3, еще косвенный признак это директория "1Cv8JobScheduler" появилась в 8.3. Нам понадобится еще одна утилита Tool_1CD с ее помощь мы увидим hex пароля пользователя 1С.
Теперь у нас есть база, платформа, Tool_1CD. Давайте откроем "нашу" базу.
После 5 мин перебора паролей пользователей в ручную понятно, что это может затянуться на долго. Можно брутить пароли, но это долго и не факт, что в списке он окажется. Пойдем чуть другим путем и посмотрим его через утилиту Tool_1CD. Программа позволяет просматривать структуру базы выгружать конфигурации, но не менять значения в БД что печально.
Находим таблицу v8users, видим список пользователей нажимаем на колонку DATA с типом IMAGE, видим следующую структуру. Про нее можно прочитать в интернете, нас интересует часть строка в кавычках "QL0AFWMIX8NRZTKeof9cXsvbvu8=" наверное уже понятно что это sha1. Копируем в поисковик если есть совпадения радуемся. Иначе пробуем все остальные либо брутим. Нам нужен доступ в базу с полными правами обычно они есть у админа, программиста, бухгалтера. Конечно можно загуглить "как скинуть пароль в 1с" будет целая куча статей как это сделать. Но когда мы будем внедрять свои доработки для продвижения по сети не будем же их скидывать пользователей и пароли. Tool_1CD пишет версия БД 8.3.8.0 это отлично так как наша доработка будет работать с версии 8.3.6. Есть конечно и другой вариант, но про него сегодня не буду рассказывать.
Получили доступ в базу это отлично, но что же дальше? 1с это среда разработки бизнес приложений. Соответственно в ней можно кодить! С версией платформы 8.3.6 появился интересный механизм это расширения. Описывать его не буду, в сети куча инфы как на официальном сайте так и на сторонних, от того за чем оно до того как его использовать
Ссылка скрыта от гостей
. И еще одна замечательная вещь это клиент-сервер
Ссылка скрыта от гостей
. Это значит что мы можем разделить выполнения кода на сервере и на клиенте, что нам тоже важно. В данном случае это не имеет значения ведь база файловая (а так можно и сервер под контроль взять).Логин и пароль у нас есть заходим в базу пункт меню конфигурация->Открыть конфигурацию. В нашем случае это Управление торговлей 11, правой кнопкой по названию, выбираем пункт "Открыть модуль управляемого приложения"
В открытом модуле мы видим процедуры нас интересуют несколько из них это:
- ПередНачаломРаботыСистемы
- ПриНачалеРаботыСистемы
- ПередЗавершениемРаботыСистемы
Открывается окно расширений, добавляем новое расширение и ни чего не меняем. Чем проще тем меньше подозрений.
Должно получиться вот так.
Галки "Безопасный режим" и "Защита от опасных действий" срезу снимаем так как это не позволит нам запустить скрипты и обращаться к файловой системе клиентского ПК.
Расширение у нас есть осталось теперь написать код для проверки работоспособности идеи. Кликаем на расширение, перед нами открывается еще одно дерево метаданных выбираем в нем пункт "Открыть модуль управляемого приложения".
Модуль открылся пустым, так и должно быть сейчас напишем одну строчку для проверки. Для этого кликаем на лупу либо Ctrl+Alt+P.
Откроется список предопределенных процедур которые можно создать в модуле.
Будем использовать "ПриНачалеРаботыСистемы" это когда отработала процедура ПередНачаломРаботыСистемы у пользователя отрисовывается интерфейс, но база еще грузится.
В следующем окне выбираем "вызов после"
- Вызвать перед - означает что вначале будет вызвана процедура из расширения кофигурации затем основная процедура из конфигурации 1С.
- Вызвать после - тут понятно вначале процедура 1С, а потом наша
- Вызвать вместо - тут тоже все понятно мы замещаем свой процедурой родную процедуру ПриНачалеРаботыСистемы есть большой шанс что при старте вылетит гора ошибок. Так как из этой процедуры стартуют многие другие по заполнению настроек пользователя, выведению рекламы))) и много чего еще.
Пишем следующую строчку "Сообщить("Проверка расширения");" Должно получится так.
Затем наживаем F5 если 1С попросит сохранить изменения, соглашаемся))). Открывается интерфейс УТ 11 в низу мы видим наш текст.
Отлично, код работает значит можно продолжать. Осталось только пояснить одну вещь. Этот модуль компилируется на стороне клиента, а не сервера. Теперь спокойно можем доставить на клиент все что хотим. Но перед этим нужно снять всем пользователям галки "Защита от опасных действий". Иначе мы не получим доступа к файловой системе пользователя, а нам это нужно для сохранения скриптов или payload.
Теперь пора получать доступ к машин пользователей это может быть скрипт на чем угодно лишь бы windows его мог выполнить. Покажу маленький пример с netcat как его отправить пользователю и выполнить на его машине.
Для этого в дереве конфигурации расширения находим общие макеты.
Добавим свой макет который будет nc.exe, назовем его estart_exe дальше мы его переименуем в коде. Ставим переключатель что это двоичные данные и указываем путь до нашего файла.
Так как 1С это клиент-сервер есть ограничения. Мы не можем получить макет на клиенте нам нужно попросить сервер вернуть макет клиенту (хоть в данном случает мы сервер и клиент в одном лице). Для этого нам понадобится общий серверный модуль который вернет нам estart_exe. По аналогии с макетом создадим общий модуль в ветке общие модули.
В модуле всего одна строчка кода.
Функция возвращает макет с сервера на клиент, остается все упаковать и запустить.
Тут все понятно и просто. Создается временный каталог на подобии "b5b8f730-dc06-4749-9309-bd1c2621f2e6". В него записывается наш макет nc.exe под именем 1cestart.exe создается vbs скрипт который будет запускать слушателя. Скрипт смотрит нет ли такой задачи как 1cestart.exe если нет то запускает netcat.
Настало время подключить доработку к базе. Есть несколько проблем:
- ПК отключают в ночное время или Wi-Fi
- Может быть открыт сеанс конфигуратора или есть пользователи в БД.
Возможно рядом с БД будет находится директория windows (частенько бывает). Это и есть платформа 1С. Если же ее нет придется качать версии и проверять (фирма 1С часто выпускает платформы).
Есть вариант когда забыли закрыть конфигуратор или программист 1С его оставил открытым на сервере.
Не проблема, можем подключить расширение из режима предприятия.
Нажимаем на стрелку в верхнем левом углу выбираем сервис->параметры->отображать команду "Все функции"
Далее стрелка->Все Функции->Управление расширениями конфигурации
Открывается форма списка расширений. Добавляем наше расширение снимаем галки безопасности вот и все))).
“Нет стремления более естественного, чем стремление к знанию…”
Монтень
Это маленький пример как можно через корпоративное ПО получить доступ ко все сети. Тут только фантазия и знания ограничивают.Монтень
Спасибо за внимание.
Вложения
Последнее редактирование: