Базы данных Oracle - статьи


Oracleinfsec.shtml - часть 3


Рис. 2. Листенер базы данных.

Листенер – это автономный процесс (сервис в Windows NT/2000), который конфигурируется файлами listener.ora и sqlnet.ora. Он выдает протокольные и трассировочные (отладочные) файлы. Он принимает от клиентов запросы на соединение и управляющие запросы от контроллера листенера (LSNRCTL). Управляющие запросы листенер обрабатывает сам, а запросы на соединение передаются серверному процессу (при необходимости он запускается), который сообщает листенеру, как клиент должен связываться с ним; затем листенер отправляет это сообщение клиенту. После этого клиент и сервер поддерживают связь без вмешательства листенера. Начиная с Oracle9i, листенер может передавать клиентские соединения непосредственно серверу.

Файл listener.ora file описан в [NETREF,8], а файл sqlnet.ora в [NETREF,6], управляющая программа листенера LSNRCTL описана в [NETREF,1].

Перечисление целей: поиск листенеров

Первым шагом при организации атаки является определение уязвимых целей. Oracle зарегистрировала ряд портов TCP/IP [NETREF, Table 5-2], по которым можно найти листенер, на практике могут использоваться также другие порты:

Порт

Описание

1521 Порт листенера по умолчанию. Официально не зарегистрирован – фактически зарегистрирован как ncube licence manager.
2483 Официально зарегистрированный порт листенера.
2484 Официально зарегистрированный порт листенера для SSL.

Табл. 1. Обычные порты листенера баз данных Oracle.

Программы сканирования сетевых портов, такие, как [nmap], могут показать доступность этих портов, но листенеры могут быть сконфигурированы для работы с другими доступными портами.

Листенер связывается со своими клиентами, используя соответствующий протокол Oracle Net. Этот протокол не базируется на telnet, поэтому для проверки листенера нельзя использовать стандартные утилиты ОС, такие, как Telnet или [netcat]. К счастью, Oracle предоставляет инструментальное средство TNSPING [NETADMIN, 16-17], которое также может быть использовано для проверки листенера:

TNSPING (ADDRESS=(PROTOCOL=TCP)(HOST=$хост)(PORT=$порт))

Относительно просто смастерить простой, но достаточно медленный, сканер листенеров, подставляя в скрипте различные значения $хоста и $порта.

Определив целевой хост и номер порта листенера, можно смастерить запись в файле listener.ora, которая позволит программе lsnrctl связываться с целевым листенером. Так, для хоста “victim.us.oracle.com”, прослушиваемого по порту 32768, можно ввести:




Начало  Назад  Вперед



Книжный магазин