Ненадежный метод хранения паролей VNC



Ненадежный метод хранения паролей VNC

В октябре 1999 года Конд Вампиро (Conde Vampiro) сообщил о некоторых изъянах программы VNC (http://www.roses-labs.com/advisory/RLvncbug.txt). Самый серьезный недостаток связан с тем, как служба VNC хранит пароль сервера VNC (а именно в системном реестре Windows). Хотя пароль сервера VNC шифруется с помощью алгоритма 3DES, при этом пароль каждый раз сохраняется с использованием фиксированного ключа (23 82 107 6 35 78 88 7). Это еще один наглядный пример неумелого применения надежного алгоритма шифрования (3DES). Поскольку ключ известен, то можно без проблем расшифровать пароль любого сервера VNC.
Пароль VNC хранится в ключе системного реестра HKEY_USERSX.DEFAULT\ SOFTWARE\ ORL\WinVNC3\Password. В нашем примере этот ключ представлен следующим блоком данных
2F 98 ID С5 48 ЕО 9Е С2
Если сервер, на котором запущена служба VNC, взломан, то для получения пароля VNC можно воспользоваться программой vncdec (более подробную информацию о взломе систем Windows NT и 2000 можно найти в главах 5 и 6 соответственно). Перед компиляцией исходного файла его нужно немного изменить, чтобы строка паролей выглядела следующим образом.

/*поместите в массив р[] хеш-код пароля*/
char p[]=(Ox2F, 0x98, OxlD, OxC5, 0x48, OxEO, Ox9E, ОхС2};

После этого можно скомпоновать исполняемый файл vndec, а затем запустить его.

[shadow]# vncdec
test

Как видно из примера, пароль сервера test без особых усилий можно перевести в незашифрованный текстовый формат.

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