Одинарная идентификация неофаниченное число попыток



Одинарная идентификация, неофаниченное число попыток

Это первый серьезный домен (ЛДП не в счет), который зачастую труднее всего идентифицировать. Дело в том, что многие системы, которые, на первый взгляд, принадлежат этому домену (листинг 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 поддерживает включение в сценарий переменных, отвечающих за считывание данных из внешних файлов (например, из словаря) в процессе работы сценария. Однако опыт авторов показывает, что при включении словаря в текст сценария уменьшается число программных переменных и возрастает вероятность успеха.
Поскольку основная задача — написание сценария низкого уровня, основанного на применении ASCII-кодов, для его создания можно воспользоваться языком QBASIC для DOS. В следующем листинге приводится содержимое простого QBASIC-файла, генерирующего сценарий обработки ситуации из предыдущего примера. Назовем этот файл 5551235.ВАЗ (.ВАЗ — стандартное расширение для программ на языке QBASIC). Эту программу можно использовать для создания сценария проникновения в систему, относящуюся к первому домену. Эта программа создает исходный файл сценария на языке ASPECT для Procomm Plus 32 (.WAS). Для полноты сценария необходимо сначала создать элемент соединения 5551235 в соответствующем каталоге Procomm Plus. Элемент соединения обычно содержит все характеристики соединения и позволяет пользователю задать файл журнала. Как будет видно из дальнейшего изложения, наличие журнала очень важно при реализации описываемого подхода.

OPEN "5551235.was" FOR OUTPUT AS #2
OPEN "LIST.txt" FOR INPUT AS tl
PRINT #2, "proc main"
PRINT #2, "dial
DATA " + CHR$(34) + "5551235" + CHR$(34)
DO UNTIL EOF(l)
LINE INPUT #1, in$
inS = LTRIM$(in$) + "ЛМ"
PRINT #2, "waitfor " + CHR$(34) + "
Enter Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + inS + CHR$(34)
LOOP
PRINT #2, "endproc"

Файл словаря может содержать любое количество типичных паролей, например:

apple
applel
apple2
applepie
applepies
applepiesl
applepies2
applicate
applicates
application
applicationl
applonia
applonial

и т.д.
Размер словаря может быть любым, здесь можно проявлять любое творчество. Если известна какая-либо конкретная информация о целевой организации, например имена сотрудников или название местной спортивной команды, то в словарь следует добавить и ее. Главное, создать как можно более эффективный словарь.
Затем нужно взять готовый файл 5551235.WAS, скомпилировать его с использованием компилятором языка ASPECT и запустить на выполнение.

Поскольку сценарий предназначен для подбора паролей, перед началом его выполнения нужно открыть файл журнала регистрации событий. Тогда весь процесс работы сценария будет фиксироваться в файле. Позднее содержимое файла журнала можно проанализировать и определить правильный пароль. На первый взгляд, может показаться, что журнал регистрации вовсе не нужен. Достаточно просто выполнять сценарий до успешной попытки (получения корректного пароля). Однако это невозможно, поскольку заранее нельзя определить, что произойдет после ввода корректного пароля, т.е. нельзя сформулировать условие успешной попытки. Если же известно, к какому результату должен привести ввод корректного пароля, то в файле сценария на языке ASPECT можно использовать условие WAITFOR и задать соответствующее условие. При таком подходе остается меньше шансов для случайностей. Авторы являются сторонниками журналов регистрации. Хотя такие журналы сложно анализировать — их легко создавать. При этом, конечно, предполагается, что дополнительные сведения о соединении отсутствуют. Те, кто работал консультантом по безопасности или аудитором и сотрудничал с людьми, знающими характеристики удаленных соединений своих организаций, могут использовать совсем другие подходы.

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

Содержание раздела