Проникаємо на сервер франчайзі, використовуючи вбудовані механізми мови «1С: Підприємство»

  1. Зміст статті Один з IT-трендів цього сезону - надання послуг типу «1С в хмарі» або «онлайн-доступ...
  2. Знайомство c «1C: Підприємство»
  3. архітектура
  4. Переломний момент
  5. трохи конфігурації
  6. Yammi!
  7. ДЕМОПРОДУКТИ
  8. висновок

Зміст статті

Один з IT-трендів цього сезону - надання послуг типу «1С в хмарі» або «онлайн-доступ до демоконфігураціям». У адміністраторів таких сервісів подвійне навантаження - забезпечити безпеку самого сервера і системи «1С: Підприємство». Інструменти для цього, безумовно, є, але чи всі їх знають і використовують? Сьогодні ти дізнаєшся, як це перевірити.

Вступ

На моїй пам'яті було не так багато статей про продукти фірми «1С» в розрізі безпеки, остання згадка її в журналі датується березнем 2010 року. Я вирішив нагадати про це корпоративному монстра і розповісти про своє невеликому ресерч.

Знайомство c «1C: Підприємство»

Система програм «1С: Підприємство 8», розроблена на пострадянському просторі, включає в себе платформу і прикладні рішення на її основі для автоматизації діяльності організацій і приватних осіб. Сама платформа не є програмним продуктом для кінцевого користувача, зазвичай працюють з одним з багатьох прикладних рішень. Зустріти цю систему можна далеко не тільки в офісах Газпрому, а й в перукарні або фітнес-центрі, які, я сподіваюся, ти регулярно відвідуєш.

архітектура

За відведений історією час система «1С: Підприємство 8.х» стала повністю клієнт-серверної. Навіть якщо ти будеш працювати з базою даних, яка перебуває на локальному диску, програма буде емулювати виклики і відповіді сервера.

Дистанційна ж система, відповідно налаштована, дозволяє працювати навіть з веб-браузера.Прі цьому основна частина коду виконується на сервері.

База 1С відкрита в Google Chrome

Це відкриває нові горизонти як для розробників і користувачів, так і для] [- експертів. За допомогою одних і тих же команд можливо виконувати код на стороні клієнта і на стороні сервера. Якщо ім'я користувача та вміст каталогів особистого комп'ютера тобі, можливо, знайоме, напевно те, що зберігається на сервері, тобі набагато цікавіше. При вдалому розкладі скрипти і команди системи можна виконати на стороні сервері, а при доступі до конфігурації інформаційної бази ініціювати їх запуск при роботі з базою у користувачів. По суті, ми маємо повний аналог веб-додатки. При його запуску необхідно проводити повний комплекс заходів по налаштуванню безпеки: обмежувати права облікового запису, під якою працює сервер, права доступу до каталогів, розмежовувати права користувачів. Я впевнений, що більшість читачів в курсі всіх цих аспектів настройки. Однак менталітет адміністраторів 1С докорінно відрізняється від менталітету адміністраторів веб-серверів. Найчастіше заради того, щоб все запрацювало, з додатком привласнюють максимальні привілеї, користувачі працюють в базі з повним доступом до всіх функцій. «Це, звичайно, на пару днів, не більше ...» - думаю, багато хто зараз посміхнулися.

Як відомо, безпеку облікової системи складається з багатьох складових. Коректна установка, коректне розмежування прав користувачів при роботі, аудит спроб проникнення, аудит спроб некоректних з точки зору обліку дій. В основному користувачі з успіхом користуються правами, які не повинні були отримати по логіці облікової системи.

Переломний момент

З ростом комп'ютерної грамотності з'являються експлуатації вразливостей типу змін в конфігурації бази даних.

Просунуті користувачі списують на рахунок підставних контрагентів похибки округлення, різниці в курсах валют. Це тема також гідна окремої статті. Тому ми розглянемо, не вдаючись у теорію програмування на мові 1С, деякі функції та команди, здатні створити аналог веб-шелла. Багато продавців 1С надають доступ до демобазам через інтернет, так що на солодке ми побродимо по серверу невеликого, але гордого українського франчайзі.

Передбачаю справедливе зауваження: зламати сайт, наприклад уряду Зімбабве, - отримаєш шану і повагу світової спільноти. А полізеш в 1С - отримаєш на горіхи від сисадміна і від служби безпеки рідної фірми.

Не все так сумно, мій друг. Не обов'язково надягати чорний капелюх. Запропонуй свої послуги в якості експерта і будеш прославлений у віках. Упевнений, в умах багатьох керівників зріє думка про аудит безпеки торгової системи. І гроші за цю роботу вони готові викласти не менші, ніж за дослідження безпеки сайтів та комп'ютерних мереж.

трохи конфігурації

Для початку матимемо інструментом. Хороші новини: версії для навчання програмуванню можна абсолютно безкоштовно отримати на сайті online.1c.ru. Можна завантажити або платформу, або повну версію для навчання програмуванню. У неї входять ще і демонстраційні конфігурації і документація.

Рекомендую скачати, знання 1С ще нікому не завадило :). До речі, на думку авторів книги «1С: Підприємство 8.2. Практичний посібник розробника », в 1С НЕ програмують, а конфігурують. Так що наконфігуріруем невелику обробку. З її допомогою ми зможемо дослідити сервер, на якому розташована база даних.

В 1С відмінний синтаксис-помічник, в ньому можна знайти опис всіх функцій вбудованого мови. Скажу відразу, нас цікавить розділ «Глобальний контекст».

Скажу відразу, нас цікавить розділ «Глобальний контекст»

Конфігуратор 1С: Підприємство синтаксис-помічник

Хочу відразу звернути твою увагу на директиви препроцесора & НаСервере, & НаКліенте, якими починається опис процедури або функції. Вони визначають місце виконання, за замовчуванням система вважає, що код буде виконуватися на сервері. Процедури виконають одне і те ж дію, але в разі клієнт-серверного варіанту роботи виконуються на різних комп'ютерах.

& НаСервере Процедура псПолучітьКаталогВременнихФайлов () Результат = КаталогВременнихФайлов (); КонецПроцедури & НаКліенте Процедура псПолучітьКаталогВременнихФайлов () Результат = КаталогВременнихФайлов (); КонецПроцедури

Я впевнений, що цей лістинг не вимагає ніякого додаткового пояснення :).

Засобами вбудованого мови 1С можна не тільки працювати з файлами, але і запускати додатки, завантажувати / отримувати файли по FTP.

& НаСервере Процедура псЗагрузітьФайл (АдресВоВременномХраніліще, пПолноеІмяФайла) ДанниеФайла = ПолучітьІзВременногоХраніліща (АдресВоВременномХраніліще); ВременнийФайл = КаталогВременнихФайлов () + пПолноеІмяФайла; ДанниеФайла.Запісать (ВременнийФайл); рфЗагруженнийФайл = ВременнийФайл; КонецПроцедури & НаКліенте Процедура кЗагрузітьФайл (Команда) ДіалогВибораФайла = Новий ДіалогВибораФайла (РежімДіалогаВибораФайла.Откритіе); ДіалогВибораФайла.Заголовок = "Завантажити файл"; ДіалогВибораФайла.Фільтр = "Файл (*. *) | *. * |"; Якщо ДіалогВибораФайла.Вибрать () Тоді КаталогЗагружаемогоФайла = ДіалогВибораФайла.Каталог; ПолнийПутьКЗагружаемомуФайлу = ДіалогВибораФайла.ПолноеІмяФайла; ФайлНаДіске = Новий Файл (ДіалогВибораФайла.ПолноеІмяФайла); АдресВоВременномХраніліще = ""; ПоместітьФайл (АдресВоВременномХраніліще, ДіалогВибораФайла.ПолноеІмяФайла,, Брехня, УнікальнийІдентіфікатор); псЗагрузітьФайл (АдресВоВременномХраніліще, ФайлНаДіске.Імя); КонецЕсли; КонецПроцедури

Як думаєш, що це? В ціль! Ми взяли файл з локального комп'ютера і завантажили його на сервер. Meterpreter без Metasploit :). Не буду перераховувати всі корисні функції.

Якщо раптом додаткові можливості - не проблема.

WshNetwork = Новий COMОб'ект ( "WScript.Network"); Результат = "\\" + WshNetwork.UserDomain + "\" + WshNetwork.UserName;

І ми вже дізнаємося ім'я користувача і домен, використовуючи WScript. У підсумку ми отримуємо обробку з потрібним нам функціоналом.

Конфігуратор 1С: Підприємство Обробка для дослідження сервера

Перевіряємо її на локальному комп'ютері.

Платформа 1С: Підприємство Обробка для дослідження сервера

Yammi!

Наберемо в пошуку «франчайзі 1с демо» і отримаємо десятки пропозицій онлайн-демонстрації. Відразу попереджу, в результаті дослідження жоден франчайзі не постраждав. Тим більше що було прийнято рішення залишити в спокої вітчизняного виробника. Зайдемо до братів слов'ян.

Зайдемо до братів слов'ян

Скористаємося запрошенням подивитися демоверсію

І підключимося до їх базі.

Підключитися можна в режимі тонкого клієнта

Як видно, за допомогою нашої нескладної обробки можна не тільки подивитися, що і як зберігається на сервері суміжної держави,

Інформація про базу даних на тлі вмісту диска D:

але і відправити адмінам коротке послання. Файл успішно перекочував на сервер. Через 30 секунд файл виявляється в обраному каталозі. Вивантажити / завантажити / запустити, виявляється, можна все, що завгодно. Головне - вчасно взяти себе в руки.

ДЕМОПРОДУКТИ

Подивитися демки додатків 1C: Підприємства можна на сайті
demo.1c.ru

висновок

У кожної історії має бути хепі-енд. Адміністратори сервера отримали лист з скріншот і досить оперативно усунули проблему. Я отримав можливість написати цю статтю. На тебе чекають попереду захоплюючі дослідження. Якщо тема здасться цікавою, то наш улюблений журнал чекають нові продовження цієї історії.

Пиши, і, можливо, ми разом помацаємо за калитку саму фірму «1С». З урахуванням чинного законодавства РФ, безумовно. Замість домашнього завдання - уривок зі списку сайтів, що надають демодоступ до конфігурації «1С: Підприємство».

Інструменти для цього, безумовно, є, але чи всі їх знають і використовують?