Xakep #305. Многошаговые SQL-инъекции
В течении исследования Remote Desktop Protocol (RDP), который используется для соединения с Windows Terminal Services, Cendio
Systems обнаружила, что хотя информация, посланная по сети, зашифрована, нет никакой проверки подлинности сервера при установке ключей шифрования для сеанса.
Это означает, что RDP уязвим к "Man In The Middle" (MITM) нападениям. Нападение работает следующим образом:
- При подключении клиента к серверу мы используем некоторые методы (DNS имитация, отравление arp кэша, и т.д.), чтобы заставить его соединится с MITM, вместо сервера. MITM посылает запрос далее серверу.
- Сервер посылает свой открытый ключ и случайную "соль" в открытом виде, снова через MITM. MITM посылает пакет далее клиенту, но при этом заменяет открытый ключ на собственный, для которого известен закрытый ключ.
- Клиент посылает случайную "соль", зашифрованную открытым ключом сервера, к MITM.
- MITM расшифровывает случайную "соль" клиента собственным закрытым ключом, шифрует ее настоящим открытым ключом сервера и посылает ее серверу.
- MITM теперь знает "соль" сервера и клиента, что является достаточной информацией, чтобы создать ключи сеанса, используемые для дальнейших пакетов, посланных между клиентом и сервером. Вся посланная информация, может теперь читаться в открытом виде.
Уязвимость происходит из-за того, что клиенты не пытаются проверить открытый ключ сервера, посланный во втором шаге. В других протоколах, типа Secure Shell, большинство существующих клиентов проверяет правильность ключа сервера.
Все существующие RDP клиенты не в состоянии проверять известный ключ сервера. Нет также никакого взаимодействия с пользователем, чтобы проверить ключ в первый раз, когда делается подключение на новый сервер.
Уязвимость была проверена на Windows 2000 Terminal Server, Windows 2000 Advanced Server и Windows Server 2003, используя клиенты, поставляемые с Windows 2000 и загруженные с сайта Microsoft. Обнаружено, что уязвимость существует в 4 и 5 версии RDP протокола.
Как сообщается, уже разработано программное обеспечение, которое может использоваться для эксплуатации этой уязвимости.
Microsoft подтвердила, что проблема существует в текущем выполнении.