СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Взламываем Windows Server через 1С в черновиках

image

Сегодня мы расскажем, как можно получить права локального администратора на сервере MS Windows Server 2016 через незащищенную базу 1С: Предприятие 8. Мы уверены в том, что данный кейс будет интересен, как специалистам по информационной безопасности, так и системным администраторам. В конце Вас ждет бонус.


Во время выполнения внутреннего тестирования на проникновение мы столкнулись с крайне редкой ситуацией, в сети Заказчика не было обнаружено ни одной уязвимости с помощью автоматизированных сканеров уязвимостей. ДИБ (Департамент информационной безопасности) Заказчика тщательно «пропылесосил» все свои активы и этим закрыл большинство стандартных векторов атак. Мы смогли реализовать несколько сценариев и о самом интересном рассказываем.

Получение учетных данных для MS SQL Server


Сканируя ресурсы в сети, мы обнаружили кластер серверов 1С: Предприятия 8:
image


Данный кластер не был защищен паролем и к нему удалось подключиться с помощью стандартной консоли для администрирования серверов 1С Предприятия. 

Функционал консоли администрирования серверов 1С позволяет настраивать 1С сервер и работать с информационными базами, в том числе просматривать все созданные базы на сервере. Таким образом, был получен список информационных баз, расположенных на данном сервере:
image


Проанализировав все базы, мы обнаружили, что база perf не защищена паролем.

Вход в базу perf можно выполнить без пароля, пользователь по умолчанию обладает правами администратора. После входа в базу выясняется, что она содержит конфигурацию «Нагрузочный тест TPC-1C», предназначенную для тестирования производительности сервера 1С. Подробная информация о конфигурации доступна по ссылке: www.gilev.ru/tpc1cgilv.

image


В конфигурации для тестирования производительности требуется указать учетные данные для подключения к серверу баз данных. Учетные данные сохраняются в информационной базе. В нашем случае так и произошло, системный администратор не удалил учетные данные после выполнения тестов производительности:

image


Мы столкнулись с проблемой, пароль скрыт. Не придумав решения лучше, было решено просто отключить свойство «РежимПароля» для поля «SQL пароль». Для этого открыли информационную базу в режиме конфигуратора. С помощью следующей схемы «Конфигурация -> Поддержка -> Настройка поддержки» сняли конфигурацию с поддержки, чтобы появилась возможность изменить форму в конфигурации:

image


Далее нашли форму с отображением учетных данных и отключили свойство «РежимПароля» для поля «SQL пароль»:

image


Сохранив изменения и запустив отладку, нажали клавишу F5. После запуска конфигурации, открыв форму с учетными данными, увидели долгожданный пароль:

image


Прекрасно, половина дела сделана.

Получение доступа к выполнению команд на сервере


Для проверки валидности учетных данных мы использовали модуль «auxiliary/scanner/mssql/mssql_login» из Metasploit Framework, логин и пароль успешно подошли к MS SQL Server, расположенному на том же сервере:

image


Пользователь sa по умолчанию имеет максимально возможные права, это позволяет выполнить команды операционной системы через функцию xp_cmdshell. Для проверки этой возможности мы воспользуемся модулем «mssql _exec» из Metasploit Framework:

image


Как видно на снимке экрана у нас есть возможность выполнять команды на сервере в контексте пользователя «nt service\mssqlserver».

Повышение привилегий в системе


Осталось повысить привилегии на сервере. Для этого откроем сессию meterpreter, используя модуль «exploit/windows/mssql/mssql_payload» из Metasploit Framework:

image


После того как консоль meterpreter открылась, загрузим модуль incognito:

image


Модуль incognito позволяет красть токены пользователей, тем самым можно выдать себя за другого пользователя и повысить привилегии в системе.

Как видно на снимке экрана выше интересующие нас токены недоступны.

Нам потребуется применить эксплойт RottenPotato, чтобы привилегированный токен стал доступен. Токен становится доступен на непродолжительное время, нужно действовать очень быстро, чтобы не упустить шанс.

Скачаем эксплойт RottenPotato по ссылке: github.com/foxglovesec/RottenPotato/blob/master/rottenpotato.exe и загрузим его через meterpreter.

Запустим эксплойт командой: execute -cH -f ./rottenpotato.exe. Видим, что в списке доступных токенов появился новый – «NT AUTHORITY\СИСТЕМА» Переключимся на него командой: impersonate_token «NT AUTHORITY\\СИСТЕМА» и нам, наконец, удается получить максимальные права на сервере.

На снимке экрана продемонстрирован процесс повышения привилегий:

image


Отлично, система успешно скомпрометирована. 

Бонус


Предположим, что учетные данные для подключения к серверу баз данных не сохранены в информационной базе или была обнаружена вовсе пустая база без конфигурации. Что тогда, спросите Вы?

Специально для этой ситуации мы создали конфигурацию 1C-Shell, которая позволяет выполнять команды на сервере 1С в контексте пользователя USR1CV8, от имени которого работает сервер 1С.

Скачиваем конфигурацию 1C-Shell c github.com/KraudSecurity/1C-Shell. Открываем найденную информационную базу в Конфигураторе.

Выбираем Администрирование — Загрузить информационную базу и указываем файл 1C-Shell.dt.

Внимание! Все данные в этой информационной базе будут удалены!

После загрузки новой конфигурации открываем базу 1C. Вводим пароль MArS6M для пользователя Kraud и получаем возможность выполнять команды на сервере 1С.

image


Таким образом, если мы найдем незащищенную информационную базу, то сразу переходим к этапу повышения привилегий в системе.

Рекомендации


  • устанавливайте пароль для администратора кластера сервера 1С;
  • используйте сильные пароли для привилегированных пользователей в информационных базах 1С;
  • отключите пользователя sa в сервере БД, для выполнения административных задач создайте другую учетную запись с ролью sysadmin;
  • регламентируйте процесс создания новых информационных баз 1С.


Резюме


Этот случай наглядно показал, что не стоит полагаться только на отчеты сканеров. Привлекайте экспертов для независимой оценки защищенности вашей инфраструктуры.
+37
~38100

комментарии (62)

0
Cawqa ,  
Ну, впринципе можно было запилить выполнение команд и из самой 1с используя
ЗапуститьПриложение(<СтрокаКоманды>),
+2
Cawqa ,  
Да и sql запрос xp_cmdshell можно из самой 1С выполнить
+12
+14 –2
SyavaSyava ,   * (был изменён) (был удалён)
Спасибо, интересно.
Что 1С – одна большая дырища, то тут вы увы америку не открыли. Но на самом деле самая большая дыра – это все эти франчайзи-1Сники, которые может в своей области и специалисты, но в остальном – просто белый северный зверь с хвостом.
У них на всё один ответ: «нам надо права администратора», и «надо перезапустить сервер»…
В рекомендации можно добавить:
— не запускать службу сервера 1С под учёткой локального админа (да, это вполне работает, 1С-ники врут). Этой учётке нужны только права записи в папку с конфигурацией кластера 1С, и всё!
— не запускать сервер SQL под учёткой локального админа. Тут возни немного больше, но необходимый минимум прав этой учётке описан в доках к SQL Server.
— настроить сервер 1С и SQL Server на работу с нестандартными портами в сети. С помощью Windows Firewall разрешить доступ к этим портам только с конкретных IP-адресов.
— при наличии Active Directory – использовать её для авторизации пользователей как при доступе к базам, так и при управлении кластером (учётки администратора кластера и сервера). Это исключит хранение паролей в базе 1С.
— не давать специалистам 1С прав локального админа. Они будут ныть пару недель, но потом привыкнут.
— самому назначать пароли достаточной сложности учёткам в базах 1С с административными правами.
— главбуху не нужны права админа в базе 1С! Будет ныть – создаём ей/ему отдельную учётку с такими правами, и видим, что он/она никогда под ней не зайдёт в базу.
Ну вроде всё, остальное уже очевидные вещи идут. Ну ладно: используйте SRP всегда и везде, даже для локальных админов!
–1
acyp ,  
— не запускать службу сервера 1С под учёткой локального админа (да, это вполне работает, 1С-ники врут).
То, что под локальным админом не нужно — полностью согласен, но иногда требуются права доступа по сети. Например тому же «Документообороту» для хранения томов документов. Но сама 1с при установке генерит пользователя, с правами которго и разрешениями и надо грамотно работать.
Т.е. скорее необходимо _здраво_ оценивать потребности той или иной конфы. С плеча рубить тоже не дело, на самом деле.
+1
+2 –1
SyavaSyava ,   (был удалён)
но иногда требуются права доступа по сети
На сетевую шару назначаете нужные права этой учётной записи — всё как обычно, никаких отличий от обычной учётной записи нет, никаких дополнительных прав не нужно.
Но сама 1с при установке генерит пользователя
Так она его сразу и суёт его в группу «Администраторы», вот в чём проблема. Я у себя вообще не использую этот функционал 1С: и пользователи, и служба сервера 1С у меня делается отдельно скриптом с нужными мне параметрами.
необходимо _здраво_ оценивать потребности той или иной конфы
Ну админы — они с платформой работают. Какая там внутри конфигурация — мне, как админу, глубоко пофиг. Конфигурация — это уровень базы 1С, а не платформы, прерогатива 1С-ников. За несколько лет обслуживания серверов 1С ни разу не возникала необходимость узнать, что же там внутри этих базы, какие там конфигурации — при правильной настройке платформы (сервера) 1С всё это переходит в область мифов и баек об 1С. А с мифами пусть 1С-ники разбираются, мне некогда — работать надо )))
+1
Sergey-S-Kovalev ,  
Коллега, тсс, палитесь :)

| Так она его сразу и суёт его в группу «Администраторы», вот в чём проблема.

Обычная 1Ска слитая с ИТС при создании пользователя не сует его в локальных администраторов, но это делают некоторые допиленные магические сборки, которые даже перестают запускаться, если служба агента сервера не запускается из под учетки с админскими правами.
0
SyavaSyava ,   (был удалён)
Да я просто уже несколько лет не создавал пользователя в 1С, наверное и забыл уже — что да как… Просто запомнилось, что по умолчанию оно у всех под админской учёткой работает. Некоторые «продвинутые» вообще от имени «Система» запускают ))
Сборки не ставлю, всегда чистый официальный релиз платформы. В этом отношении то же есть «правильные» пути :)
0
marty0701 ,  
Пользователя в 1С вам и не нужно создавать. А вот, то, что «она сама» создаёт пользователя windows и, якобы, «суёт» его в группу «администраторы», это исключительно ваша проблема, у всех остальных пользователь, под которым будет работать агент сервера 1С, почему-то создаётся с обычными правами и находится в группе «пользователи».
0
SyavaSyava ,   (был удалён)
А вот, то, что «она сама» создаёт пользователя windows и, якобы, «суёт» его в группу «администраторы», это исключительно ваша проблема
Уже написали же, что это не так, и я согласился, что напутал. Что ещё не так?
Пользователя в 1С вам и не нужно создавать
В базе что ли не нужно? Да я и не создаю, только тех, кто с правами администратора базы. Мог бы и этих не создавать, но как научить 1С-ников делать нормальные пароли вместо «123» или использовать доменную аутентификацию?
0
marty0701 ,  
В базе что ли не нужно? Да я и не создаю, только тех, кто с правами администратора базы. Мог бы и этих не создавать, но как научить 1С-ников делать нормальные пароли вместо «123» или использовать доменную аутентификацию?

Вы не поверите, но 1С ники, если это не студенты, разносящие ИТС, это прекрасно умеют и практикуют.
+2
SyavaSyava ,   (был удалён)
Я ниже написал уже в соседней ветке.
Что умеют и практикуют — согласен.
Что практикуют большинство — нет, не согласен. Увы, порог вхождения в 1С сейчас примерно одного порядка с таковым у «сисадмин» — и найти среди тех, кто «разносит ИТС» грамотного специалиста так же нелегко, как и среди «сисадминов» — нормального системного администратора.
Сюда же присоединяется вопрос стоимости этих специалистов — не все готовы платить за них запрашиваемые суммы, и вопрос оценки их компетенции: как отличить «студента» от профи, если не смыслишь в вопросе совсем?
Хорошо, когда встретятся «два одиночества» — нормальный админ и 1С-ник ))) То и один другого поддержит на совещании у начальства. А если (и чаще всего) не так? То и получается, что один на другого валит, а результат — всё равно нуль…
0
Kwisatz ,  
О как прикольно. Было у меня подозрение что это все байки.
Только недавно хотел отдать клиента аутсорсеру только вместо mssql поставить postgre и очень долго слушал про сложности «поддержки», несовместимости конфигураций с бд и бла бла тополя.
0
acyp ,  
На сетевую шару назначаете нужные права этой учётной записи — всё как обычно, никаких отличий от обычной учётной записи нет, никаких дополнительных прав не нужно
Совершенно верно. Но встречал персонажи, которые вместо того. чтобы разобраться почему не работает. сразу давали пользователю, от которого запущен сервис — админские права. Такой вопрос есть в стандартном экзамене на профа по техвопросам. Т.е. грамотное разрешение данной ситуации — не сакральное знание, а вопрос подготовки.
Какая там внутри конфигурация — мне, как админу, глубоко пофиг.
опять согласен, но добавлю, что если админу от коллег пришел тикет о недостаточности прав на то или иное действие, то надо разбираться вместе. Но эта история о СОВМЕСТНОЙ работе разных служб.
0
Kwisatz ,   * (был изменён)
Иногда настройка 1с превращается в ад. Я пробовал у нее для пг отрезать лишние права: документации по этому делу минимум, я полдня за ней бегал и сдался когда увидел лок на системную таблицу: при таком бреде запирать у нее суперпользователя уже смысла просто нет.
0
acyp ,  
Под суперпользователем, как я понимаю, имеется ввиду админ базы PG? Если да, то тут скорее уперлись в наличие/отсутствие компетенций по самой PG. У меня их тоже нет, вряд ли помогу. По этой СУБД тоже есть курсы, кстати (не у 1с :)). И я планирую их пройти, т.к. на фоне последних событий предприятия, с которыми у нас выигранные тендеры на обслуживание могут начать на нее переходить в рамках программы импортозамещения.
0
Kwisatz ,  
Сейчас попробую аналогию привести: если приложению смертельно нужны права на редактирование c:/windows есть ли глубокий смысл вообще мучать себе мозг с правами?)

Я про pg могу сам рассказать прилично) Я кстати не в курсе почему ее боятся 1сники, даже без pgbouncer работает отлично. Хотя 1с использует ее… еслиб не индексы я бы сказал на уровне файлов практически. Сложного там ничего нет, она настраивается достаточно просто и быстро, только поправить конфиг под параметры машинки (на pgtune например).
Из неприятного:
— когда пг стояла на машине вместе с 1с я так и не понял как объяснить 1с не доедать всю память у сервака
— Не нашел вменяемой документации по режимам блокировок, ибо меня несколько беспокоят дедлоки, который правда pg скидывает.
— ну и местами бывают ошибки типо Integer out of range, но никак руки не дойдут на каком же запросе, ибо проблем не замечено.

А в остальном я почти забыл что в базе пг 1с сидит. Она меня беспокоит только когда конфигуратором вносятся изменения, ибо она их меняет через drop и естественно view или триггеры этому не способствуют, а я очень люблю 1сные данные получать мимо 1с)
0
acyp ,  
Если кто либо лезет без явных и достаточных причин в с:\windows, то это повод в любом случае обеспокоиться. Правда я не совсем понял как это связано с
Иногда настройка 1с превращается в ад. Я пробовал у нее для пг отрезать лишние права

Про неприятное — 1. Объяснить 1с не доедать память можно через настройки сервера из консоли сервера. В зависимости от платформы 8.2-8.3 есть нюансы. У Филиппова есть замечательный «справочник эксперта по техвопросам», стоит в районе 800 рублей, можно приобрести у любого франча или заказать в магазине товаров 1с. Там много, но если интересует конкретно настройка памяти сервера — скажите, думаю смогу помочь конкретикой. Про Гилева не говорю, т.к. думаю, что при активном поиске решения на его сайт Вы уже выходили. Но мне кажется и там было много про управление памятью.
2. Про блокировки — ну да, это головная боль разработчиков конфигураций, т.к. вопрос шире, чем их компетенции в механизмах платформы; но именно разрабы конф — программеры являются источником этой беды. Общая инфа есть в книге/на курсах. Практические вопросы обсуждаются на соотв ресурсах либо обращение к специалистам. Кстати, если у вас оф. договор ИТС, то вы можете обратиться к любому специалисту в любом франчайзи вне зависимости от города вполне себе официально. Дистанционная поддержка рулит.
3. Надо смотреть конкретную конфу. Самописная или типовая и т.д. Т.е. вопрос практический. Т.е. в обсуждения на соотв профильные ресурсы либо забить, если не беспокоит, если срочно — то спеца или плотно трассировать.
0
Kwisatz ,  
с:\windows, то это повод в любом случае обеспокоиться

Ну вот лок на таблицу information_schema у пг это такой повод. Потому как это основная таблица и лезть туда не надо. Иногда через нее удобно посмотреть многие вещи запросом напрямую, но лезть туда с иными намерениями я считаю недопустимым. Когда будет лишнего времени дочерта опять зарежу ей права и тщательно изучу, но пока в свете вышесказанного резать ей права смысла никакого.

1. Спс, может прикуплю. Я вообще не 1сник, я так для общего развития) И да конечно почти все что было публично прочел. Настройки крутил. Просто это тонкий процесс, памяти на грани ибо пг она нужнее, там не только 1с работает. Нюанс в том что промахнулся и 1с весело доедает память прям до комы win serv.

2. Вы извините, но меня немного аж передергивает. Документация подробная должна быть доступна везде и всюду, а ее в свободном доступе по этому вопросу крохи.
Более того: на форумах 1с очень много бреда, начиная о том что pg не умеет row lvl lock, до того что лочить всю таблицу единственный нормальный выход. И конечно я обращался к специалисту, франчайзи, интеграторам итд. У меня создается ощущение, что людям тупо лень работать, так что ИТС нынче в лес. Ощущение такое как будто я их спрашиваю как девственницу в жертву принести.
Причем вопросы самое разнообразные. Вот перечень при которых практически все впадают в благоговейный трепет:
— Блокировки
— Написание кастомного обмена через механизм 1с с не очень 1с
— Некая обработка для обмена данными на лету с неопределенным списком конфигурация, или хотя бы одноразового.

3. Пока забил. Найти место не так сложно, это легко выясняется по логам пг. Просто нудноватое дело. А профильные ресурсы меня приводят в ужас. Как в худших сказаниях о рунете: на каждый вопрос сразу десяток умников предлагает переустановить/обновить/сменить базу/чтотомагическое/убитьсебяобстену. Да и как я уже сказал не 1сник я) Я просто верховный специалист по получению данных 1с быстро и напрямую из базы)

ЗЫ кстати раз вы планируете смотреть на пг, рекомендую изучить в нагрузку pgbouncer. Почему то в статьях про 1с о нем практически никто не упоминает.
0
acyp ,  
про п.2 а) «блокировки» — Не все в этом вопросе упирается в доступность документации; тут, мне кажется, злую шутку сыграла заточенность платформы под «формат Документ» и то, что изначально 1с развивалась в своем потоке. В последствии перешла на MSSQL, внедрив очень многие механизмы для работы с внешней БД, заточенные именно под MSSQL. Да, PG и DB2 поддерживаются, но, как говорится: «есть особенности». А вот что бы грамотно работать с такими внешними базами — надо (если со стороны 1с) повторить путь, пройденный для адаптации под MSSQL (что, как понимаете весьма накладно), либо предусмотреть в механизме платформы селекторы, что тоже не слабая работа начиная от архитекторов платформы, и заканчивая просто программерами. Ну или становиться спецом по 1с и спецом по той БД с которой надо сращивать 1с. Т.е. такой универсальный солдат :).
Про обмены — вопрос подготовки специалистов и, в целом, наличия такой потребности. Мы с обменами проблем сегодня уже не испытываем, но по одной простой причине — жизнь вынудила. Наша контора обслуживает промсектор, в котором надо кучу данных с разных КИПов заносить в 1с. И теперь, спустя 8 лет у нас в штате как минимум три инженера, которые с закрытыми глазами (спецификации от приборов достаточно читать вслух) напишут выгрузку/загрузку как для оборудования в 1с, так и между самописными базами и 1с. Шучу конечно, но только процентов на 10 :).
И да, к изучению ПГ я планирую подойти как обычно — системно, т.е. пройдя все необходимые курсы и сертификации. А практики, при желании будет более чем достаточно, если последние тенденции таки будут воплощены в реальность:).
Обязательно обращу внимание на pgbouncer. Спасибо.
0
SyavaSyava ,   * (был изменён) (был удалён)
— когда пг стояла на машине вместе с 1с я так и не понял как объяснить 1с не доедать всю память у сервака
Механизмы управления памятью у 1С находятся в зачаточном состоянии. Из того, что есть — можно настроить лимиты для рабочих процессов, и периодический их (рабочих процессов) перезапуск. Тогда весь накопленный мусор будет сбрасываться при перезапуске рабочего процесса (текущие сеансы пользователей будут перенесены в новый процесс без разрыва). С настройками по умолчанию 1С постепенно жрёт всю доступную память на сервере.
В этом она похожа на MS SQL, но последняя хоть понятно куда кушает — в кэш, и имеет удобных механизм установки ограничений.
Куда девает эти гигабайты 1С — совершенно непонятно.
+4
marty0701 ,  
То, что криворукие администраторы не способны изучить хотя бы руководство администратора из коробки и выдают налево и направо права администратора всем вот этим франчайзи 1С, как вы говорите, вот это и есть тот самый белый пушистый зверь. И в чем винить 1С, как ПО, в данном случае? Где именно в платформе вы видите «дырищу»? А в случае, когда они говорят, что «нам нужны права администратора», так это опять же потому, что администратор не способен настроить то, что от него требуется. У меня примеров на этот счёт вагон и маленькая тележка. Особенно радуют администраторы, которые, когда слышат слово 1С сразу съезжают, по типу того, что «я системный администратор и вашей 1С не занимаюсь», бывают даже уникумы, которые права доступа к com объектам настроить не в состоянии, даже по картинкам. И даже кластер серверов разворачивать приходится 1С нику. Подумайте над ответом, чем 1С, как ПО, отличается от любого другого ПО с клиент-серверной архитектурой? И неужели у вас установкой такого ПО занимается 1С ник?
Я всегда прошу учетку без прав админа на клиентских серверах, так и проверяю, системные администраторы у клиента работают или эникеи и знаете, поработать с системным администратором удалось только пару раз.
0
+2 –2
SyavaSyava ,   (был удалён)
А, вы «адинэсник», да?
Если что — я не считаю вашего брата какими-то плохими «из коробки». Есть и нормальные спецы, которые в том числе и умеют отличать области ответственности свои и системных администраторов. Если вы из таких — респект и уважуха, как говорится. Не стоит сразу на себя примерять критику, если видите, что она к вам не относится.
Но подавляющее большинство — вовсе не такие, мягко говоря. Впрочем как и среди админов — их я то же далёк от мысли идеализировать. Повальная некомпетенция в IT — это болезнь ((
Проблема как раз чаще всего возникает, когда (пусть и отличный) 1С-ник начинает разворачивать кластер, или наоборот — когда от админа требуют «доработать конфигурацию». И такая ситуация к сожалению — скорее норма, чем исключение…
Увы, админ — плохой 1С-ник, и наоборот: хороший 1С-ник — никакущий админ )
0
Mike_soft ,  
И главное — у такой учетки («главбух с правами админа», если уж таковую пришлось сделать) должен быть сложный и периодически меняющийся пароль.
0
avelor ,  
Managed service accounts же. Для сервера приложений и скуля.
На хабре есть статья — habr.com/post/204780
+3
Anynickname ,  
Что 1С – одна большая дырища, то тут вы увы америку не открыли.

Где в тексте статьи указана хоть одна дыра в 1С? Пустой пароль и подобная криворукость админа дырой не является. В правильно отстроенной инфраструктуре данное «исследование» закончилось бы на первом же пункте.
0
Mike_soft ,  
Причем еще в специализированной конфигурации для замера производительности. в типовых «учетных» пароль не хранится
+2
sharpshooter ,  
Можно было не снимать конфу Гилева с поддержки и не изменять форму, а через стандартную консоль запросов сделать запрос к константам SQLсерверЛогин SQLсерверПароль, результат будет в открытом виде. Так в 1С со всеми значениями которые скрыты в полях формы с типом пароль.
0
alexgp13 ,  
В принципе всю статью можно было свести к одной фразе — «ставьте пароли на все базы 1С».
Отдельно хочу отметить, что взлом базы выполнен из внутренней сети организации, куда еще нужно попасть.
Подсказка хакерам — если поискать, то во многих компаниях базы 1С (особенно документооборот) публикуются в интернете для доступа VIPов с телефонов и планшетов, при этом администраторы ленятся отключать дополнительные права для публикации из-за сложности настройки ограничений и отсутствия достаточного опыта по настройке IIS/Apache, в этом случае взлом выглядел бы эффектнее. Да и пароли VIP-пользователей обычно несложно угадать.
0
acyp ,  
ленятся отключать дополнительные права для публикации из-за сложности настройки ограничений
Это про что конкретно, если не секрет?
0
alexgp13 ,  
Из распространенного (с чем лично сталкивался) при публикации на IIS:
1. Разрешена анонимная авторизация на IIS (так как проброска авторизации Windows работает не слишком очевидно а настройкой IIS занимается программист 1С)
2. Службы 1С на сервере IIS работают под правами локального администратора, причем нередко под той же учеткой, что и сервер 1С Предприятия (так как заставить сисадмина завести и настроить отдельные учетные записи бывает очень сложно и даже ящик пива не помогает)
3. В самой базе 1С остаются пользователи без паролей
4. В базе 1С разрешены запуски внешних обработок, выполнение произвольного кода (внешние обработки вообще огромная дыра, но иногда без них никак)
5. В самой 1С публикуются не только необходимые компоненты, но и много дополнительного мусора (который по умолчанию отмечен в настройках публикации)
6. Из-за «специфики» работы 1С с протоколом HTTPS (может в последних релизах и стало получше, хотя детали проблем сейчас уже не помню), часто веб-сервисы публикуются без авторизации и работают по протоколу HTTP
7. Наверное, самое веселое. Сервер IIS нередко ставят на тот же сервер, что и 1С, и SQL.
0
acyp ,  
По второму пункту: не совсем понял, службы сервера 1с и сервер 1с работают под одной учетной записью?
за п.3 конечно надо обрывать руки. Иногда у инженеров хватает ума просто отключить публикацию списка пользователей — тоже останавливает.
п.4 Легко настраивается в самой конфе, причем в режиме пользователя. А в современных конфах эту возможность сделали по умолчанию оффнутой.
по п.5, п.7 и п.1 греха не увидел, в чем может быть проблема, особенно если выполнены пункт про пароли на учетках?
Ну и опять же — шел из статьи не залить в базу по HTTP опубликованную, а типовые конфы не имеют в своем типовом функционале возможности посмотреть пароль для sql-соединения.
Более того — (открою секрет) шел для ветки платформы 8.3.11, а я у себя так с 8.3.10 пока не спрыгнул.
0
alexgp13 ,   * (был изменён)
Да, по п.2 именно создается учетка с широчайшими правами и назначается всему что связано с 1С. Из-за лени сисадмина.
п.4 — из под пользователя с обычными правами не настраивается
п. 5 — например, при публикации веб-сервиса публикуют до кучи и тонкого клиента. А через тонкого клиента, опять же, можно и в базу залезть и что-нибудь интересное вроде зарплаты генерального директора достать.

на 8.3.11 кстати в свое время вынуждены были перебраться, столкнувшись с ошибкой в 8.3.10, кажется, связанной со стабильностью работы кластера.

И да, правильно настроенные пароли на учетках и вообще правильно настроенные пользователи закрывают почти все дыры.
0
acyp ,  

Мы с Вами похоже по терминологии не совпадаем. У Вас какие компетенции в 1с формально подтверждены? У меня эксперт по техвопросам и спец по платформе. Сертификация, кроме прочего, дает общую терминологию. Потому и уточняю.

0
Necessitudo ,  
У Рупасова поди получали? Нашли чем гордиться.
0
acyp ,  
Наслышан. Но нет. У Филиппова.
0
Necessitudo ,  
И все-таки не советую гордиться этой бумажкой. Многие 1сники знают как ее выдают:)
0
acyp ,  
Тут не про гордость, а про то, что прохождение этих курсов дает возможность использовать единую терминологию, как минимум. Ну и избегать ляпов, которые меня потрясли. например.
п. 5 — например, при публикации веб-сервиса публикуют до кучи и тонкого клиента. А через тонкого клиента, опять же, можно и в базу залезть
по http 1с в принципе работает только через тонкий клиент.
Службы 1С на сервере IIS работают под правами локального администратора, причем нередко под той же учеткой, что и сервер 1С Предприятия
Это одно и то же, служба одна и называется «агент сервера 1с: Предприятия»
п.4 — из под пользователя с обычными правами не настраивается
ту как раз перл из терминологии. В 1с различают пользовательский режим (режим 1с предприятия) и режим конфигуратора. Так вот. в современных конфах вся работа с пользователями может идти из режима предприятия (т.е. легко доступна). Но автор прав — что бы снять такие права надо иметь привилегии админа в базе на уровне 1с. НО и сто бы их поставить — тоже (а по умолчанию, как мы помним возможность запуска внешних обработок выключена)

Такие и похожие огрехи непонимания легко исправляются путем ХОТЯ БЫ прохождения специализированного курса. Ну и легче разговаривать будет.
+1
SyavaSyava ,   (был удалён)
1. Гнать 1С-ников поганой метлой оттуда. Не их дело.
2. Админа расстрелять, потом — уволить ))
3-5 тут да, где рулят 1С-ники — там полных швах…
6. ХЗ, у меня вроде всё через HTTPS нормально работает, именно доступ к базам. Но в 1С есть ещё публикация каких-то конфигов наружу для сопряжения со всякими терминалами — те да, через HTTPS не фурычат.
7. Ну тут либо п. 2, либо иногда просто нет больше оборудования/лицензий. В целом то же рабочий вариант, если всё грамотно развести по юзерам и права раздать минимальные.
+1
lexlex ,  
5. В самой 1С публикуются не только необходимые компоненты, но и много дополнительного мусора (который по умолчанию отмечен в настройках публикации)

Это не мусор, а определённые разработчиками конфигурации дополнительные сервисы. Их публикация сама по себе не является угрозой.
0
Klaster ,  
Данный кластер не был защищен паролем

Проанализировав все базы, мы обнаружили, что база perf не защищена паролем

А так то 1С это дырища ага. Я могу рассказать более вероятный сценарий:
Просканировав систему мы обнаружили что у пользователя «Администратор» установлен пароль «123» и на рабочем столе лежит текстовый документ со всеми существующими в организации логинами и паролям.
Хакеры чоужтам, как такая тупость может восприниматься серьезными людьми?
–1
Kwisatz ,  
Подсказка н2. Большая часть 1с работает на Apache 2.2 которому лет больше чем мне и уверен найдется немало эксплойтов.
+1
AndreyMtv ,  

Давайте, я расскажу вам еще об одном заблуждении.
Что программисты 1с обожают работать под админом.
Только в тех организациях, где совсем нет сисадмина, либо где сисадмины недостаточно умны, что бы установить 1с платформу, скуль сервер, веб сервер с минимальными правами, что бы 1с при работе не глючило и не падало.
Фактически многие админы даже не способны открыть в файрволе необходимые порты доя работы 1с сервера. Естественно программист решает эту проблему по своему просто вырубая нафиг фийрвол/антивирус.
Каждый должен заниматься своим делом, админы настраивать программное обеспечение (в том числе и 1с), а программисты- программировать.

+1
acyp ,  
Для настройки и сопровождения сервера и конфигураций у 1с есть вполне конкретная компетенция — «1С: Профессионал по технологическим вопросам» (это первая ступень, там и дальше есть развитие — Эксперт и Эксплуататор, это уже для крупных внедрений). И организации, заинтересованные в нормальном сопровождении своей ит-инфраструктуры, кой она включает в себя 1с, отправят на обучение/дадут возможность пройти курс. Это не сложно и относительно не дорого.
+2
AndreyMtv ,  

Настройка 1с сервера не равно делегированию прав в домене.
Одинэсник сколько угодно может ковыряться в своих конфигах и серверах, но хороший админ на пушечный выстрел не допустит его до настройки прав, что локальных, что доменных.
А при нормально настроенных правах 1с не более дырявая, чем любое другое приложение.
И данная статья, еще однотому пдтверждение.

+1
acyp ,  
А при нормально настроенных правах 1с не более дырявая, чем любое другое приложение.
И данная статья, еще однотому пдтверждение
Полностью согласен.
Про курс: я как раз часто рекомендую нашим заказчикам, что бы именно их админ его прошел. Тогда они и нам меньше денег за обслуживание платят (а значит и от рутины разгружают) и настройки все на месте, т.к. их админ свою сеть в любом случае больше нас знает.
0
Sergey-S-Kovalev ,  
Хотя, лично для меня, вся эта последовательность факапов в настройке сервера с установленным кластером 1С выглядит диковато, к сожалению, при аудитах очень часто выясняется, что все так в реальности и настраивается. Правда меня в статье смущает упоминание «Департамент информационной безопасности», поскольку такая фигня обычно присуща большим организациям, а там как правило, админы то поопытнее будут.

Нестандартность портов кластера 1С не является средством защиты.
0
yukon39 ,  
к сожалению, при аудитах очень часто выясняется, что все так в реальности и настраивается.

Проблема в том, что как раз не настраивается. Это же дефолтные значения. Для варианта запустить 1С чтоб 1,5 юзера могли работать это еще нормально. Для продакшена на 100+ пользователей это волчий билет админу.
0
Sergey-S-Kovalev ,  
Я могу даже сказать как выглядит типичная ситуация (перечень того как делать не нужно):
— 1Сник(и) с правами доменных админов
— В домене отключена периодическая смена паролей
— Сервисы кластера 1С и апача запущены из под учетки 1Сника
— Сервисы MSSQL запущены под LOCAL SYSTEM, все, включая агента
— Учетка sa активна и под ней кластер 1С подключен к MSSQL
— Пароль на Администратор1С совпадает с паролем sa
— На все ИТшные задачи 2-3 пароля, которые знают все ИТшники от мала до велика
— Прямые пробросы из инета на терминальный сервер/компьютеры по портам
— Неперсонализированные учетки / работа из под одной учетки несколькими 1Сниками
— Чрезмерно избыточные права у пользователей
— Всем на все пофиг, весь процесс это непрерывное тушение пожара в перемешку с ничего неделаньем.
— Нет времени сделать нормально, всегда есть время починить сломавшееся
0
navion ,  
В домене отключена периодическая смена паролей

И правильно сделано, за её включение надо бить ногами.
0
DMGarikk ,  
И правильно сделано, за её включение надо бить ногами.


вы еще предложите отключить повышенную сложность пароля и его неповторяемость, и вообще разрешить пользователям ставить софт на комп какой захотят
+2
navion ,  
Был миллион статей про бесполезность частой смены паролей, потому что энтропия от замены последнего символа не повышается.
+1
Sergey-S-Kovalev ,  
Статьи читать полезно. И я сам могу привести Вам множество рекомендаций что не нужно заставлять пользователей менять пароли. У мелкомягких, в облачных сервисах это даже отключено по умолчанию. Прям идиллия. Светлое юзерско-ИТшное будущее. Облачное.

Однако вернемся на землю. Сюда, в грязь, окопы, отсутствия бюджетов и кучи не персонализированных учеток.

Любая нормальная статья в которой говорится, что не нужно пользователей заставлять делать смену паролей предъявляет к этому правилу несколько требований:
— Запретите распространенные пароли
— Попросите сотрудников не использовать пароли организации для других целей
— Принудительно применяйте многофакторную проверку подлинности
— Включите многофакторную проверку подлинности с учетом рисков, читай мониторинг на подозрительную активность.
При том, что отслеживать реально можно только последние два пункта. И много ли админов пойдутсмогут на внедрение таких инструментов? А в конторке на 30 человек с приходящим админом-студентом?

Поэтому я продолжаю настаивать на том, что принудительная смена паролей нужна. Раз в полтора/два месяца это не страшно, личные пароли рано или поздно кончатся и с ними не будет совпадений, хотя бы в одном символе. Один замененный символ полностью меняет хэш пароля. Лучше чем один и тот же пароль на протяжении 10 лет.
Для ИТшников принудительная смена пароля просто обязательна. Это отучит несознательных засранцев подключать юзерам сетевые ресурсы под своей учеткой, запускать сервисы и службы под своей учетной записью и делать задания в таскшедуре от имени своей учетки.

А в качестве простейшего мониторинга выступает блок учетки на 10 минут за 10 неправильных попыток входа подряд и неработающие сервисы после перезапуска сервера (правда еще это могут быть переставшие работать бэкапы).

А скрипт ежедневного отчета о том, кто ловит блокировку и откуда она прилетает занимает в зависимости от наворотов от 10 до 40 строчек в Powershell. Плюс 10 строчек для отправки письма. И там, возможно, Вы сможете увидеть, что внутри инфраструктуры кто то брутфорсит юзеров и доменных админов (хотя не рекомендуется вешать блокировку на учетки админов, по вполне понятным причинам)

Резюмируя:
Читать умных людей и бестпрактисы корпоративных монстров обязательно нужно.
Иметь свою голову и пользоваться ей куда важнее.
+1
DMGarikk ,   * (был изменён)
Но это не значит что пароли вообще не надо менять
например на одной моей старой работе, после моего ухода не поменяли пароль на одном важном сервисе, я по прошествии нескольких лет могу туда зайти, хорошо ли это? и я же при увольнении предупреждал и вообще писал длиннющий мануал по управлению безопасностью… хоть бы хны,, аудит не затрагивает этот сервис и всем наплевать сразу
люди имеют свойство увольнятся, другие люди имеют свойство ходить под чужими паролями, в глобальном смысле это получается накопительная дыра в безопасности
+2
andreyle ,  
У вас на первом скрине видно, что менеджер лицензий HASP не самый свежий (порт 1947). Не пробовали взломать через эту уязвимость, как описывает Касперский? Там сразу права системы можно получить. Полностью пропатченная версия 20.05, а тут 20.00.
0
acyp ,  

Спасибо за вектор. Вот в жизни бы не подумал на такое. Пошел проверять и закрывать. А Вы как на этот вектор вышли?

0
andreyle ,   * (был изменён)
В блог Касперского узнал. Вектор действительно неожиданный. Сам был поражен когда прочитал и осознал масштаб бедствия…
+2
+3 –1
yukon39 ,  
Ясень пень, что хранение админских паролей от СУБД в открытом виде, запуск процессов от LocalSystem может существенно помочь злоумышленнику со взломом системы. В чем специфика 1С: Предприятия?

Админ, который в рабочем окружении разворачивает тестовые базы профнепригоден вне зависимости от используемого набора приложений и ОС.
0
arthi7471 ,  
Понравилось начало статьи. Сейчас мы хакнем сервер. В конце вас ждет сюрприз)
+6
zedalert ,  

"Как взломать компьютер, на котором нет пароля." Казалось бы, причём тут 1С?

0
+1 –1
capitannemo ,  
Новый русский приходит домой после недельного загула и говорит жене:
— У меня две новости, плохая и хорошая, с чего начать?
— Ну, ладно, пугай. Начинай с плохой.
— Я все наше имущество в казино проиграл конкретно.
— Ну а хорошая?
— Да это мое казино оказалось.

Прям первоапрельский выпуск )
Я вчера взломал кошелек. Все деньги достал. А потом смотрю это мой кошелек.
Наверное когда 1С ники пишут про веб сервера такая же ржака получается.
Консоль администрирования 1С не ставится без прав админа, это как минимум.
–1
KaPPaM6a_10 ,  

Фэйк. слишком многое притянуто за уши. И доступ к серверу есть, и хватило прав консоль 1с сервера запустить, и как на зло нашлась база, опять же без пароля. И в этой базе с далеко непопулярной конфигурацией (такую ваще впервые вижу) сразу же нашли реквизит содержащий Логин/Пароль Админа. Так почему же вам пришлось менять конфигурашку, вместо банального запроса к нужному реквизиту? ответ "мы это всё выдумали, любые совпадения случайны" вполне сгодится.

0
lipkij ,   * (был изменён)
разве недостаточно было просто создать регламентное задание, которое бы выполняло системные команды от имени самого сервиса на сервере, если уж «завладели» возможностью конфу менять?