Уязвимость удаленных соединений, PBX, Voicemail и виртуальных частных сетей
Одинарная идентификация, неофаниченное число попыток
Это первый серьезный домен (ЛДП не в счет), который зачастую труднее всего идентифицировать. Дело в том, что многие системы, которые, на первый взгляд, принадлежат этому домену (листинг 9.1 А), после ввода корректного идентификатора требуют повторной аутентификации (листинг 9.1 Б). Пример системы, действительно относящейся к этой категории, приводится в листинге 9.2. Эта система использует один механизм аутентификации и допускает неограниченное число попыток установки соединения.
Листинг 9.1.А. Пример системы, которая, на первый взгляд, относится к первому домену, но меняет свое поведение после ввода корректного идентификатора пользователя или пароля.
XX-Jul-XX 09:51:08 91ХХХ5551234 С: CONNECT 9600/ARQ/V32/LAPM @ Userid: @ Userid: @ Userid: @ Userid: @ Userid: @ Userid: @ Userid:
Листинг 9.1.Б. Пример изменения поведения системы после ввода корректного идентификатора пользователя или пароля.
XX-Jul-XX 09:55:08 91ХХХ5551234 С: CONNECT 9600/ARQ/V32/LAPM @ Userid: lanroverl Password: xxxxxxxx
В следующем примере система действительно относится к первому домену, поскольку для получения доступа к ней требуется только ввести пароль. Заметим также, что эта система допускает неограниченное число попыток установки соединения. Для проникновения в такую систему нужно запустить сценарий подбора пароля.
Листинг 9.2. Пример поведения системы, действительно относящейся к первому домену.
XX-Jul-XX 03:45:08 91ХХХ5551235 С: CONNECT 9600/ARQ/V32/LAPM Enter Password: Invalid Password. Enter Password: Invalid Password. Enter Password: Invalid Password. Enter Password: Invalid Password. Enter Password: Invalid Password.
Для проникновения в систему, представленную в этом примере, нужно написать сценарий, который выполнялся бы простыми утилитами DOS. Приведенный ниже фрагмент – это не сложная программа, а простой пример сценария, повторяющего попытки регистрации до тех пор, пока не будет исчерпан его словарь. Как уже отмечалось, при написании сценариев для модемных соединений чаще всего применяется программа Procomm Plus со встроенным языком сценариев ASPECT. Система Procomm Plus известна уже в течение многих лет и хорошо зарекомендовала себя при тестировании как на ранних версиях DOS, так и на новейших версиях 32-разрядных операционных систем. Следует отметить также прекрасную справочную систему и документацию по языку ASPECT.
Для начала создадим исходный файл сценария, а затем скомпилируем его в объектный модуль. Полученный модуль протестируем на 10-20 паролях, а затем на большом словаре. Таким образом, сначала создадим файл исходного кода сценария на языке ASPECT. В старых версиях Procomm Plus для исходных файлов сценариев использовалось расширение.ASP, а для объектных файлов – . ASX, а в новых версиях – . WAS и .wsx соответственно. Однако независимо от версии нам предстоит создать сценарий, который будет поддерживать приведенный выше диалог и пользоваться большим словарем паролей.
Написание сценариев – это программирование сравнительно низкого уровня. Их можно писать с помощью любого стандартного редактора. Относительно сложным моментом является включение в сценарий переменной, отвечающей за считывание пароля из словаря. Система Procomm Plus поддерживает включение в сценарий переменных, отвечающих за считывание данных из внешних файлов (например, из словаря) в процессе работы сценария. Однако опыт авторов показывает, что при включении словаря в текст сценария уменьшается число программных переменных и возрастает вероятность успеха.