lotus domino что это

Что такое Lotus Domino и Notes и как они работают?

4. Lotus Domino и Notes как совокупность восьми ключевых технологий

Что же такое «интегрированные системы для совместной работы» вообще и что составляет суть Domino и Notes, в частности с технологической точки зрения? В упомянутом ранее отчете IDC содержатся интересные результаты опроса европейских пользователей систем для совместной и коллективной работы. По результатам этого опроса были указаны в порядке убывания интенсивности использования следующие технологии, которые и составляют суть «ПО для совместной работы»:

Lotus Domino и Notes сами по себе, а также в сочетании с другими продуктами семейства Domino включают все перечисленные выше технологии. И все же если говорить о ключевых технологиях, важных с точки зрения понимания архитектуры продукта и возможностей его применения, то можно выделить следующие:

Многие из этих технологий, взятые в отдельности, были достаточно хорошо известны и до появления Notes. Но, объединенные вместе в рамках единой системы, они дали совершенно новое качество, которое позволяет утверждать: в настоящее время на рынке нет аналога данному программному продукту.

Прежде чем мы кратко остановимся на каждой из этих восьми технологий, сделаем следующее замечание. Во всей статье мы упоминаем в основном два программных продукта: Lotus Domino и Lotus Notes. Это связано с тем, что Domino/Notes — это клиент-серверная технология, где в качестве сервера выступает Lotus Domino, а в качестве клиентской части — Lotus Notes. Однако сразу же следует отметить уникальность сервера Domino, которая состоит в том, что это еще и Web-сервер и почтовый сервер, поддерживающий стандарты Internet, поэтому в качестве клиентской части для работы с приложениями Domino и электронной почтой могут использоваться Web-браузеры и другие почтовые клиенты Internet. За счет поддержки промышленных стандартов, таких, в частности, как ODMA, ActiveX, OLE и ряда других, для доступа и сохранения данных на сервере Domino с той или иной степенью полноты в качестве клиентов могут использоваться популярные офисные пакеты, мобильные телефоны, персональные цифровые помощники типа PalmPilot, пейджеры и т.д.

4.1. Документоориентированная база данных Domino/Notes

Сердцем Domino и Notes является хранилище объектов, известное как NSF (Notes Storage File), в котором и хранятся данные.

Базы данных Domino и Notes отличаются от реляционных СУБД, с которыми многие привыкли работать. В реляционных СУБД данные описываются с помощью таблиц, жестко задающих формат данных.

Основой единицей хранения информации в базе данных Lotus Domino/Notes является отдельный документ. Структура документа Notes определяется формой, содержащей в себе набор полей различных типов. Например, документ, относящийся к обслуживанию клиентов, может содержать в себе дату, имя клиента, идентификационный номер клиента, имя оператора, текстовое поле для описания запроса клиента, а также поле статуса запроса. Notes использует индексированные представления для отображения списков документов, навигаторы и полнотекстовые индексы для поиска документов, а также агенты для автоматизации определенных процессов в базе.

Реляционная база данных, как правило, жестко структурирована, и каждая запись в таблице имеет один и тот же набор полей, пространство под который определено и выделено заранее. Люди в 90% случаев имеют дело с документами, которые являются слабо структурированными объектами, и Notes изначально проектировался для работы с такой информацией. Это и предопределило структуру базы данных Notes. Отдельный документ не обязательно имеет такие же поля, что и остальные документы; под поле выделяется столько памяти, сколько это необходимо для хранения конкретных данных; поля в документы могут добавляться динамически, по мере возникновения необходимости в них или при изменениях представлений разработчиков и пользователей.

База данных Notes может хранить любые типы данных — от простого текста, чисел, времени и даты до форматированного текста, графических образов, звука, видео и произвольных данных, которые могут храниться в виде присоединенных объектов в своем родном формате. Например, это может быть присоединенный файл формата MS Word или электронной таблицы Lotus 1-2-3.

Документ может иметь как структурированный, так и неструктурированный формат, поэтому Notes может хранить и обрабатывать такие массивы данных, обработка которых с трудом поддается реляционным и прочим системам баз данных. Более того, благодаря использованию документной модели обработки Notes предоставляет пользователям ряд полезных функций.

Для того чтобы гарантировать адекватную масштабируемость для любых целей, размер хранилища объектов Domino ограничен только доступными физическим ресурсами. Это хранилище может распространяться за границы физических систем хранения. Высокооптимизированный формат минимизирует использование операций ввода-вывода, что уменьшает число обращений к дискам и делает эти обращения более эффективными.

В целях обеспечения высочайшей надежности и защиты от потери данных хранилище объектов Domino использует лучшие алгоритмы журналирования или протоколирования транзакций. Операции с базами данных записываются последовательно, уменьшая активность ввода-вывода одновременно с оптимизацией целостности данных и ускорением перезапуска сервера.

Базы данных Domino/Notes поддерживаются целым набором сервисов, которые берут на себя выполнение большого количества операций нижнего уровня. Например, отдельный сервис отвечает за создание и обновление индексов, сервис репликации отвечает за поддержание копий баз данных на разных серверах и клиентских машинах в синхронном по отношению друг к другу состоянии, сервис маршрутизации отвечает за доставку почтовых сообщений и т.д. Эти сервисы выполняются на сервере Domino, некоторые из них — также на клиенте Notes. Разработчики приложений для Domino не должны думать об этих задачах нижнего уровня, а могут полагаться на сервисы Domino, которые выполнят эту трудоемкую, полную мелких деталей, черновую работу.

Базы данных Notes, как правило, располагаются на серверах Domino, однако могут находиться и на клиентских машинах с Notes, что является очень важным с точки зрения поддержки работы пользователей в режиме off-line и мобильных пользователей. Пользователи получают доступ к данным на сервере через сеть, либо через модем, либо работая с данными локально с помощью клиента Notes. Однако, как уже отмечалось, в качестве клиента для работы с данными и приложениями на сервере Domino могут использоваться Web-браузеры, почтовые клиенты Internet и т.д.

Пользователи имеют возможность просмотра списков документов, хранящихся в базе данных Domino/Notes, которые также называются представлениями, видами или взглядами (view). Когда пользователь Notes открывает вид, то названия полей выводятся как заголовки столбцов данных. Если, например, пользователь желает просмотреть документы по дате, то Notes, отсортировав их по значениям в этом поле, открывает вид, самый левый столбец которого содержит дату, а прочая информация из полей (номер клиента, название политики и т.п.) выводится в столбцах справа от основного. Виды в Notes отличаются гибкостью и используют схематичную метафору, основанную на «раскрытии и скрытии». Например, если основной документ имеет множество дочерних документов, то пользователь может по своему выбору просмотреть либо основной документ, либо основной документ и все документы следующего уровня, либо все уровни документов, относящихся к первому основному документу.

Различные представления (взгляды) могут выполнять разные выборки документов, а также их сортировку и/или категоризацию (группирование) по определенным критериям. Если продолжить рассмотрение примера базы данных отслеживания внешних контактов, то одним из режимов просмотра может быть просмотр всех документов, с категоризацией по названием организаций, другим режимом просмотра может быть только список личных карточек сотрудников, отсортированный по фамилиям, и т.д.

Таким образом, чтобы создать работоспособную базу данных в Domino/Notes, достаточно выполнить следующие действия:

Для решения этих задач имеются соответствующие графические средства разработки, о чем речь пойдет ниже. Создав данные элементы, можно начинать вводить документы и работать с базой данных. При этом следует отметить, что в Notes понятия «база данных» и «приложение» являются, по сути дела, синонимами. Хотя в более сложных случаях Domino-приложение может состоять из нескольких связанных между собой баз данных либо интегрировать в себе данные из других источников, таких как реляционные СУБД. Конечно, для создания более сложных приложений потребуются также другие средства разработки, поставляемые вместе с Domino и Notes, о чем мы расскажем далее.

Читайте также:  Что значит чел час

Кроме того, Notes поставляется вместе с программами просмотра файлов для большинства популярных настольных приложений, что предоставляет пользователям возможность читать и распечатывать данные, даже не имея на своем компьютере соответствующего приложения.

4.2. Репликация

Многие заказчики, уже давно и активно использующие Domino и Notes, на вопрос о том, какая из всех технологий этих продуктов им больше всего нравится, называют репликацию. По сути, системой репликации решаются две основные задачи:

Domino и Notes обеспечивают коллективное использование информации в любое время и независимо от места расположения пользователя. Пользователями баз данных и приложений Notes могут быть сотрудники из различных подразделений организации в регионе, в стране или во всем мире. Каждое из этих подразделений может иметь свой сервер, подключение к которому персонала производится достаточно просто и без больших затрат. В результате пользователь будет иметь доступ к данным и приложениям на своем локальном сервере, вместо того чтобы работать с удаленным сервером по медленным каналам связи.

Пользователи в разных офисах будут работать со своей «копией» базы данных, расположенной на локальном сервере, а репликация обеспечивает то, что рабочие группы, расположенные в различных географических точках, работают с актуальными версиями одних и тех же документов и обмениваются информацией. Серверы Domino будут обмениваться между собой данными в соответствии с заданным расписанием по тем каналам, которые им доступны.

Следует отметить «всеядность» Domino и Notes в плане использования каналов связи: это могут быть сети TCP/IP, X.25, ISDN, коммутируемые телефонные каналы и т.д. Одна из самых тонких и великолепно проработанных разработчиками Lotus технологий — эффективное использование произвольных каналов связи.

Domino позволяет также создавать и централизованную архитектуру, если коммуникации, доступные конкретной организации, это позволяют.

Репликация в Notes непревзойденна по своей функциональности и степени гранулированности: она выполняется на уровне отдельных полей и идеально настраиваема. Репликация характеризуется следующими свойствами:

4.3. Система электронной почты и передачи сообщений

На самом деле, если бы из перечисленных выше восьми ключевых технологий было бы разрешено воспользоваться только одной — самой важной, эффектной, надежной и т.д., то, по всей видимости, многие пользователи остановили бы свой выбор на системе электронной почты Domino/Notes. Внедрение продукта уже оправдывает себя только при использовании его в качестве корпоративной системы электронной почты.

Эта система может быть охарактеризована словами: надежная, масштабируемая, защищенная и управляемая. В мире есть организации, в которых более 100 и даже 200 тысяч сотрудников объединены системой передачи сообщений Domino и Notes. Это означает, что, выбрав эту технологию, вы не натолкнетесь на такие технологические ограничения, когда все работает хорошо при десятках или нескольких сотнях пользователей, но при дальнейшем расширении инфраструктуры начинаются непреодолимые проблемы. Что касается защищенности, то Domino предлагает самую мощную из возможных систему защиты для почты в Internet, применяемую для подписываемых и шифруемых сообщений, за счет бесшовной интеграции инфраструктуры публичных ключей (Public Key Infrastructure, PKI) и сертификатов X.509 V3.

Важно то, что Lotus Development является единственным поставщиком, предлагающим полную интегрированную коммуникационную платформу для организаций, стремящихся перейти от обычной электронной почты к усовершенствованным возможностям передачи сообщений и Web-приложениям для совместной работы. Сервер Domino обеспечивает встроенную поддержку любых клиентов передачи сообщений, которыми может воспользоваться заказчик: Web-браузеров, Microsoft Outlook, Eudora и других почтовых клиентов POP3 и IMAP4. Кроме того, Domino является превосходным дополнением к лучшему в мире клиенту для совместной работы и электронной почты — Lotus Notes.

Система передачи сообщений Notes используется как по своему основному назначению — для связи между людьми, так и в качестве важного компонента приложений автоматизации рабочих потоков (workflow), а также в качестве платформы для группового ведения календаря и планирования.

Система передачи сообщений Notes предоставляет в ваше распоряжение простой в использовании ящик электронной почты. Более опытные пользователи для обработки и организации больших объемов почты могут использовать средства управления сообщениями. Пользовательский интерфейс Notes построен на базе завоевавшего множество наград интерфейса Lotus cc:Mail, который, по сути, стал стандартом интерфейса электронной почты для всех производителей. Notes включает в себя мощный редактор для форматирования текста почтового сообщения. Имеется возможность использования агентов для выполнения различных задач — таких, например, как просмотр присоединенных к поступающим сообщениям файлов на наличие ключевых слов и сохранение их в соответствующей папке. Агенты могут автоматизировать выполняемые на сервере задачи, давая вашему Web-узлу возможности по автоматической генерации почтовых сообщений определенного содержания при наступлении определенных условий и событий.

Следует особо отметить, что электронная почта является неотъемлемой, фундаментальной частью систем автоматизации потоков работ и документооборота (workflow). Интегрированная в Domino/Notes система передачи сообщений и базы данных документов объединяют в себе оба метода коллективного использования информации — «принудительное проталкивание» и «добровольное извлечение», а также предоставляет пользователям интуитивно понятные и эффективные средства для совместной работы. Например, при создании исходного варианта документа, который должны просмотреть несколько сотрудников, пользователь может послать им сообщение по электронной почте, которое включает в себя только ссылку на этот документ. Каждый из получивших сообщение может одним щелчком мыши открыть документ, что обеспечивает работу всех сотрудников с одним и тем же, самым последним, вариантом документа. Почтовые сообщения могут содержать ссылки на любые документы в базе данных Notes, включая дискуссии, профили заказчиков и документацию (такие, например, как описания правил и процедур, руководства по поиску неисправностей и т.д.), страницы Web и службы новостей.

В большинстве бизнес- и workflow-приложений требуется поставить в известность конкретного человека или обновить документ на основе значения определенного поля или состояния процесса. Рассмотрим приложение по обслуживанию заказчиков. Запрос заказчика поступает в виде формы, заполненной им на Web-странице. Запрос вводится в базу данных Domino по обслуживанию заказчиков. После ее сохранения сервер Domino автоматически посылает сообщение по электронной почте соответствующему представителю по обслуживанию. Представитель открывает сообщение и щелчком мыши на содержащейся в нем ссылке открывает запрос из коллективно используемой базы данных, в которой можно сохранять свои замечания и комментарии. Кроме того, Domino-приложение контролирует этот процесс, так что если он по какой-то причине останавливается (например, если представитель не предпринимает никаких действий по этому запросу в течение 12 часов), то Domino рассылает дополнительные сообщения по электронной почте, на этот раз не только представителю по обслуживанию, но и его менеджеру и начальнику отдела обслуживания заказчиков, предупреждая их о потенциальной проблеме, перед тем как она действительно приобретет остроту.

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

Читайте также:  cyberpunk 2077 что лучше моноструна или клинки богомола

Естественно, функционирование системы электронной почты невозможно без ряда сервисов и служб, на которых основана среда передачи сообщений и которые поддерживают сервер Domino:

Сервер Domino поддерживает также режим хранения «одной копии объекта», что позволяет экономить дисковое пространство и уменьшать трафик при рассылке одних и тех же сообщений большому количеству пользователей.

Таким образом, передача сообщений в Domino — это передача сообщений в соответствии со стандартами Internet, для которых Domino предлагает всеобъемлющую поддержку.

Источник

Тотальная Доминация: Ломаем Lotus Domino

Содержание статьи

Привет всем читателям. На этот раз я немного уйду в сторону от Oracle и расскажу про другое, не менее распространенное в корпоративной среде приложение – Lotus Domino. Domino – это такое огромное клиент-серверное приложение, совмещающее в себе и почтовую систему, и систему документооборота, и LDAP-хранилище, и еще множество всего, где может храниться полезная информация. Данная система может хранить огромное количество критичных данных, и сперва мы рассмотрим способы получения административного доступа в эту систему, а потом – варианты распространения своих привилегий на сам сервер, где установлено это приложение. Особенно важным является тот факт, что система довольно часто имеет внешние интерфейсы подключения доступные из интернета, что позволяет, используя представленные в статье методики, получить полный доступ к внутренним серверам компании через уязвимости системы Lotus Domino. Интересно? Тогда поехали!

Описание

IBM Lotus Domino Server – сервер приложений системы Lotus, который предоставляет ряд сервисов и может использоваться для построения корпоративных систем электронного документооборота, которая имеет в своем составе большой набор модулей. Основные из них: почтовый сервер, HTTP-сервер и сервер баз данных. Так как в большинстве случаев во внешнюю сеть выставлен HTTP-сервер, то на его уязвимостях мы сосредоточим внимание. Проводить все грязные опыты будем на последней версии Lotus Domino 8.5.1 под Windows.

Где обитают лотусы?

Собственно для обнаружения в сети Web-сервера Lotus (Lotus Domino httpd) можно воспользоваться сетевым сканнером Nmap со следующими параметрами:

Nmap –sV 172.212.13.0.24 –p 80

Nmap scan report for 172.212.13.13
Host is up (0.017s latency).
Not shown: 65533 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http Lotus Domino httpd

На самом деле гораздо эффективнее будет воспользоваться методикой Google Hack и найти множество Lotus-серверов в интернете, используя простейший запрос inurl:homepage.nsf. В результате этого запроса нам откроются ссылки на тысячи потенциальных серверов Lotus. Сразу предупрежу тебя, чтоб ты даже не пытался тренироваться на этих серверах, так как у Лотуса очень навороченная и удобная система протоколирования всех запросов, и вычислить злоумышленника не составит труда.

Осмотр пациента

Итак, начнем анализ подопытного. Обычно при попытке обращения к корневой директории Lotus-сервера мы получаем окошко с запросом аутентификации, что сразу же отпугивает неопытных хакеров. Очень вероятно, что администратор установил запрос аутентификации только на обращение к корневой папке, а все остальные ресурсы остались открыты. Что же там за ресурсы могут быть, и чем они нам полезны?

Если кратко, то Lotus хранит всю информацию в контейнерах собственного формата с расширением nsf. Данный контейнер представляет собой набор данных и формат их представления. Если говорить проще, то каждый nsf ресурс – это небольшой отдельный сайт со своей базой данных. Собственно, этих самых nsf-файлов может быть на сервере огромное количество, причем как стандартных, так и разработанных специально под нужды компании. Вот список наиболее популярных nsf-файлов, которые могут присутствовать:

/names.nsf
/admin4.nsf
/admin.nsf
/alog.nsf
/domlog.nsf
/catalog.nsf
/certlog.nsf
/dba4.nsf
/homepage.nsf
/log.nsf

Про остальные файлы ты можешь узнать, скачав, к примеру, утилиту dominohunter, к которой прилагается список стандартных nsf-файлов. Ко всем этим файлам есть описания, и во многих из них есть интересные нам данные, но начнем мы с самого главного файла – names.nsf. Данный ресурс представляет собой полную базу данных по сотрудникам, их почтовым адресам и по множеству другой полезнейшей информации, такой как: версии ОС пользователей, версии программного обеспечения Lotus Notes и прочие данные. А знаешь, что самое интересное? Этот ресурс на большинстве серверов доступен анонимному пользователю!

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

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

На самом деле озвученная информация – это далеко не все, что можно получить из ресурса names.nsf. Самое сладкое вот в чем – в 2005 году в данном ресурсе была обнаружена уязвимость, которая позволяет читать хэши паролей пользователей системы. Причем уязвимость банальнейшая. Для получения хэша необходимо перейти на страницу информации о конкретном пользователе и открыть исходный код полученной страницы. Хэш пароля хранится в Hidden поле HTTPPassword или dspHTTPPassword (в зависимости от версии приложения), кроме того, ты можешь встретить 2 разных алгоритма хэширования, о которых поговорим чуть позже. Что удивительно, уязвимые системы встречаются до сих пор!

Поскольку зачастую количество пользователей исчисляется сотнями или тысячами, то получение хэшей желательно автоматизировать. Но тут не стоит беспокоиться, ибо все уже сделано до нас. Еще в 2007 году был написан эксплойт raptor_dominohash, доступный в Сети, который скачивает хэши всех пользователей, а также утилита DominoHashBreaker, осуществляющая подбор паролей по словарю. Эксплойт лучше переделать, так как он выдает слишком много лишней информации, и ее потом неудобно подавать на вход переборщику паролей. Что касается самого переборщика, то он работает только по словарю и имеет следующий недостаток – мы не знаем, от какого пользователя расшифровался хэш, так как на вход подаются только хэши без привязки к логинам. Таким образом, я бы рекомендовал использовать JohnTheRipper с патчем от jumbo, ибо Джон не только не имеет перечисленных недостатков, но и еще умеет расшифровывать новые «соленые» хэши, чего не умеет DominoHashBreaker.

Итак, как я уже говорил, хэши в Lotus бывают двух видов:

1. Обычные (32 символа в HEX) пример:

2. C использованием случайных значений (22 символа начинающиеся с G) пример:

Для расшифровки обычных хэшей необходимо на вход программе JohnTheRipper подать файл HASH.txt вида:

Имя пользователя:хэш
Имя пользователя:хэш
.
.
Имя пользователя:хэш

Запускать переборщик необходимо со следующими параметрами:

Для расшифровки «соленых» хэшей необходимо на вход программе JohnTheRipper подать файл HASH2.txt вида:

Имя пользователя:(хэш)
Имя пользователя:(хэш)
.
.
Имя пользователя:(хэш)

Запускать переборщик необходимо со следующими параметрами:

Вот, собственно, и все, напоследок могу только порекомендовать набрать разных словарей и запустить перебор параллельно брутом и словарями для большей эффективности. В случае успеха, что встречается довольно часто, так как парольные политики в Domino по умолчанию отключены, мы получим список расшифрованных паролей пользователей системы Lotus Domino на Web-доступ. Пусть там будут и не все пользователи, но все же шансы, что из тысячи хоть кто-нибудь расшифруется, достаточно велики.

Администрирование

Итак, предположим, что мы расшифровали пароль администратора (если нет, сидим и перебираем дальше :)) – это есть очень хорошо. Теперь перед нами открываются просторы доступа ко всем находящимся на сервере nsf-файлам, которых, как я уже говорил, предостаточно. Интересный ресурс – log.nsf, на нем можно найти и посмотреть все логи доступа к серверу по различным критериям и узнать, к примеру, каким браузером пользуются пользователи. Также интерес представляет catalog.nsf. Доступ к почте каждого сотрудника можно получить, обратившись к директории /mail/логинсотрудника.nsf.

Читайте также:  какой орган растения обозначен на рисунке знаком каково его значение в жизни растения

Но самый большой интерес для нас представляет ресурс webadmin.nsf (servername/webadmin.nsf). Это админка Web-сервером Lotus Domino со всеми вытекающими последствиями. Имея доступ к ней, можно создавать изменять и удалять пользователей, назначать для них группы и выполнять всевозможные административные задачи. Получение административного доступа к системе Lotus Domino практически всегда означает получение доступа к ОС, если не используются расширенные настройки безопасности, такие как: пароль на консоль (иногда встречается) или ограничение прав учетной записи в ОС (на практике крайне редко). Стоит отметить, что в ОС Windows по умолчанию доступ будет получен под учетной записью Local System, так как служба запущена от имени Local System, а в Unix доступ будет получен от имени непривилегированной учетной записи.

Итак, что же предоставляет нам webadmin.nsf? В этом приложении есть различные опции по управлению сервером, в том числе и ряд оболочек для выполнения сервисных команд для репликации и прочих административных задач. Для выполнения сервисных команд можно использовать две различные консоли: Quick Console и Live Console. Но не тут-то было. Эти консоли – не то же самое, что консоль в ОС, так как набор команд там строго определен и заточен под задачи LOTUS.

К нашему счастью, в бизнес-логике этой консоли есть уязвимость, которая заключается в том, что команда Load использует в качестве аргумента не список команд, а реальные исполняемые файлы в системе. То есть, используя небольшой трюк можно запускать исполняемые файлы доступные в директории PATH операционной системы через команду Load (спасибо за данный метод Евгению Киселеву, автору книги «Безопасность IBM Lotus Notes/Domino R7», которую настоятельно рекомендуется почитать тем, кого интересует безопасность Lotus). Рассмотрим эти две консоли поподробнее.

Оболочка Live Console

Наиболее удобная оболочка для выполнения называется Live Console, но, к сожалению, ее использование обусловлено двумя проблемами. Первая проблема заключается в том, что данная консоль не включена по умолчанию и для ее включения необходимо перезагружать сервер, что не очень хорошо. Вторая особенность – данная оболочка работает по своему протоколу с использованием порта 2050, и с большой вероятностью в случае подключения через интернет данный порт будет зафильтрован. Таким образом, данный вариант не является универсальным, так что идем дальше.

Оболочка Quick Console

Второй вариант – это использование урезанной версии консоли – Quick Console. Данная консоль имеет неприятную особенность – результат выполнения команды не отображается, таким образом, мы можем выполнять команды только вслепую. Ладно если нам нужно просто выполнить команду, в которой мы уверены, но если нам захочется прочитать содержимое файлов – тут без трюков не обойтись. На самом деле проблема очень похожа на Blind SQL Injection, так что и методы надо применять похожие, только с учетом особенностей.

Получение данных

load cmd /c «dir /D /B > sh2kerr.out»
load cmd /c «FOR /F «delims= » %i IN (sh2kerr.out) DO ECHO > C:\lotus\domino\sh2kerr\»%i».nsf»

Первая команда сохраняет результат команды (в нашем примере это команда DIR) в файл sh2kerr.out. Вторая команда разбивает результат вывода первой и создает необходимые файлы. В результате в папке C:\lotus\domino\sh2kerr\ мы увидим множество файлов, в именах которых будет результат выполнения команд.

На самом деле есть способ гораздо проще, но при этом будет вероятность, что он не заработает там, где безопасно расставлены права. На практике мне такого не встречалось, так что можно использовать этот метод практически везде. Метод очень прост и заключается в следующем – необходимо найти директорию, в которую мы можем писать, и которая будет доступна через Web-интерфейс. Такая директория есть по умолчанию в версиях 6.5 и 8.5 (в других она, скорее всего, тоже присутствует, но подтвердить нет возможности). В ОС Windows данная директория в результате установки по умолчанию выглядит следующим образом:

Альтернативный сценарий выполнения команд.

Кроме трюка с Load есть еще один способ выполнения команд – через так называемый планировщик. Находится он в меню Server->Status->Schedules->Programs. Используя этот планировщик, можно также запускать любые команды в ОС.

Клиент-серверное взаимодействие

Выше мы рассматривали вопросы безопасности Web-доступа к системе Lotus Domino, но есть еще и другой протокол (NRPC на 1352 порту), по которому можно подключиться к системе. Этот протокол позволяет подключаться к Lotus Domino серверу, используя клиентские программы Lotus Designer (разработчики), Lotus Notes (простые сметные) и Lotus Administrator (спасибо, кэп). Для подключения к серверу клиент должен иметь некое подобие сертификата, в системе Lotus Domino это файл с расширением ID. Помимо этого файла для подключения необходимо иметь и пароль к нему.

Данный пароль никогда не передается по сети и используется для расшифровки ID-файла, а аутентификация уже происходит при помощи расшифрованной информации. Итак, для того, чтобы подключиться к системе с использованием клиентского приложения, нам необходимо получить 2 вещи: ID-файл и пароль к нему. Выглядит сложнее, чем в случае с Web, но не безнадежно.

Для того, чтобы получить ID-файл, можно воспользоваться уязвимостью раскрытия информации в службе Lotus Domino. Уязвимость заключается в возможности получения ID-файла пользователя, в случае, если известен его логин. Логин можно либо подобрать, либо воспользоваться уязвимостью в names.nsf, описанной выше. Второй способ получения ID-файла – попытаться откопать его в том же names.nsf. Очень часто в профиле пользователя, доступном без аутентификации через Web-интерфейс, есть ссылка на скачку его ID-файла.

С первой проблемой разобрались, что же делать со второй? На самом деле тут все банально. Пользователи очень часто ставят простые пароли на ID-файл, так что можно его подобрать, тем более, что для этого есть специализированный софт в количестве, как минимум, 3-х утилит (smashingpasswords.com/3-best-lotus-notes-password-recovery-free-softwares), причем одна из них (IPR) абсолютно бесплатна.

STEP BY STEP HOWTO

Итак, подведем итоги и создадим небольшой гайд по получению доступа к Lotus Domino.

Для получения доступа к серверу выполняем следующие действия:

Если есть Web-доступ:

1. Запускаем утилиту raptor_dominohash и собираем хэши паролей:
./raptor_dominohash 192.168.0.202

2. Сохраняем хэши в формате, приведенном в статье;

4. В случае расшифровки хэша администратора обращаемся к консоли Web-администрирования по адресу:
http://servername/webadmin.nsf

5. В Quick Console набираем команду, добавляющую в ОС нового пользователя:
load cmd /c net user hacker iamstupid /add

6. Чтобы проверить, выполнилась ли команда, выводим список текущих пользователей и сохраняем вывод команды в файл:
load cmd /c net user > C:\Lotus\Domino\data\domino\html\download\filesets\1.txt

7. Если не получилось, пробуем выполнить команду через Program.

Если есть NRPC-доступ:

И что потом?

В статье я попытался представить основные способы получения шелла на сервере через уязвимости и недостатки конфигурации Lotus Domino. Ряд вопросов, таких как: подробности получения ID-файла, прочие критичные nsf-файлы и ошибки типа xss в Web-доступе, получение доступа к другим серверам через репликацию и прочие аспекты безопасности, описание которых выходит за рамки данной статьи, я оставлю тебе для самостоятельного изучения. Старательно используй собранные ссылки на ресурсы, приведенные в этой статье, а также посещай сайт нашей исследовательской лаборатории DSecRG.ru, и, если есть желание, присоединяйся (research@dsec.ru).

WARNING

Внимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несет!

Источник

Сказочный портал