Citrix – это приложение удаленного рабочего стола (Remote Desktop), становящееся очень популярным. Он похож на Terminal Services у Microsoft. Но, в отличие от Terminal Services, Citrix позволяет администраторам задавать приложения, которые могут запускаться на сервере. Это позволяет контролировать, какие программы могут использовать конечные пользователи. Существует целая тема, посвященная безопасности Citrix приложений, вследствие смешения технологий Citrix и Microsoft. Серьезная угроза возникает при получении пользователями доступа не только к обычным программам, а и к удаленным рабочим столам. В этой статье будет рассказано, как работает Citrix, и какие недостатки существуют в способе, которым Citrix обрабатывает пользовательский доступ к программам.
По материалам sh0dan.org
В этой статье будет рассказано, как работает Citrix, и какие недостатки существуют в способе, которым Citrix обрабатывает пользовательский доступ к программам.
Стандартная установка с NFuse для удаленного доступа позволяет администраторам также использовать Citrix Secure Gateway. Если NFuse правильно сконфигурирован, удаленный пользователь не сможет напрямую получить доступ к Citrix-серверу. Вместо этого, все соединения фильтруются через сервер NFuse через соединение с Secure Gateway (см. диаграмму)
[user]--->[router]--->[firewall] | | | | | +-[DMZ]-->[Citrix NFuse Server] | | | | [Citrix Secure Gateway] | +----+ | | | +--------------+ | [Citrix Server]Теперь пользователь не имеет прямого соединения с Citrix сервером, а проходит через DMZ –> внутренняя сеть. В конфигурации стандартной установки NFuse (без Secure Gateway), пользователь сначала попадает на веб-сервер NFuse, затем, если опубликованное приложение определено, он напрямую подсоединяется к серверу Citrix. В этом и состоит проблема, пользователь по-прежнему может «напрямую» подключаться к серверу Citrix и, используя затем сканер опубликованных приложений, создать свой собственный список опубликованных приложений, а затем свой собственный .ica файл, содержащий информацию, которую он захочет. Это также означает, что если эта конфигурация используется для внешней сети, две уязвимости проходят через файрволл, одна на IIS сервер, и одна на Citrix. Вы можете просканировать 1494 порт, чтобы проверить это.
Citrix MetaFrame обычно имеет очень полезную консоль управления, которая позволяет администратору относительно просто создавать пользователей и публиковать приложения. Сеть Citrix без NFuse использует Independent Computing Architecture (.ICA) файлы, являющиеся текстовыми файлами, в которых содержатся все настройки конфигурации и установки. Эти файлы выдаются конечным пользователям, которые, после установки Citrix-клиентов, запускают файл и автоматически соединяются с сервером, указанном в .ica файле.
Если используется NFuse, тогда не требуются .ICA файлы. Пользователь открывает веб-броузер, заходит на веб-сервер NFuse и вводит свой доменный логин. После этого пользователь получает список приложений, которые он может использовать в Citrix Farm.
Эта утилита перечисляет все опубликованные приложения, которые разрешены на удаленном сервере. После получения списка опубликованных приложений, вы можете затем дополнить содержимое ICA файла информацией об опубликованных приложениях. Теперь вы можете предпринять попытку взлома логина грубой силой. Если вы обнаружите, что учетные записи “test” или “backup” имеют угадываемые пароли – вам повезло. Я обнаружил, что вариации test или citrixtest почти всегда существуют.
Если сканер приложений не работает, попробуйте http://sh0dan.org/files/pubappbrute.tar.gz.
Допустим теперь, что у вас есть доступ к Citrix серверу. Предположим, что вы не смогли залогиниться, поскольку найденный эккаунт не имеет привилегий входа в систему. Тогда, если вы использовали сканер приложений и получили список приложений, попробуйте следующее. Может быть, это недостаток Citrix, а может так было задумано. Но Citrix просматривает только поле [Application Name] в .ICA файле для того, чтобы определить, какое приложение запускать. Вот как обычно выглядит опубликованное приложение:
[WFClient] Version=2 TcpBrowserAddress=ip.ip.ip.ip [ApplicationServers] word= [word] Address=word InitialProgram=#word ClientAudio=Off Compress=On TWIMode=On DesiredHRES=800 DesiredVRES=600 DesiredColor=4 TransportDriver=TCP/IP WinStationDriver=ICA 3.0Что произойдет, если мы заменим InitialProgram с #word на cmd.exe или explorer.exe? Вот именно, запустится то приложение, которое мы задали в этом поле. Только убедитесь, что приложение в скобках и Address легитимны, иначе вы можете получить неожиданные ошибки. Таким образом, теперь мы имеем удаленную командную оболочку на citrix-сервере. А если вы предпочитаете GUI, то наберите в командной оболочке explorer.exe, и получите сообщение о том, что вы запускаете remote desktop сессию. Теперь у вас есть desktop. Надеюсь, что вы знаете, как повысить свои полномочия, поэтому не буду останавливаться на этом. Интересное замечание состоит в том, что зайдя под гостевым эккаунтом, я смог в итоге получить доступ к Administrative Tools! Советую взглянуть на другие пользовательские эккаунты, возможно они имеют легко угадываемые пароли. Никогда нельзя недооценивать потенциал глупых паролей. Поскольку вы не являетесь действительным администратором, просто пытайтесь изменять пароли.
А что, если они используют NFuse с Citrix Secure Gateway и фильтруют весь трафик через файрволл? Тогда вы не сможете таким образом изменить свой .ica файл. Напомню вновь, существует множество способов получения удаленного рабочего стола. В большинстве случаев администраторы Citrix имеют опубликованные приложения, такие как офисные. Какой замечательный вид программного обеспечения! Если у вас есть доступ к Excel, используйте vba скрипт для запуска explorer.exe. Если вы слишком ленивы, включите просмотр в режиме web страницы. Тогда откроется Internet Explorer и вы сможете запустить C:\winnt\explorer.exe. Этот трюк также проходит с Microsoft Word и, вероятно, с другими офисными продуктами. Известно, что большинство программ имеют опцию Help -> View online help. Это также откроет Internet Explorer, если он установлен как броузер по умолчанию. Другой выход – winhelp32 - он встроен во многие программы. В нем вы можете "Jump to URL." Теперь вы можете выложить файл cmd.exe на удаленный web сервер, сделать Jump на этот URL и загрузить его, если у вас есть доступ на запись. Теперь модифицируйте свой .ica файл, чтобы при входе в систему запускался cmd.exe – и у вас будет командная оболочка.
Есть еще несколько способов получения удаленного рабочего стола. Нажав Ctrl+F1, вы получите окно Windows Security. Из него запустите Task Manager start -> new task -> explorer.exe или cmd.exe. А если вы ленивы, просто нажмите Ctrl+F3 и вы получите Task Manager. Но это может быть запрещено в Group Policy (Disable Task Manager), так что может не работать. Большинству программ требуется доступ к файлам или они имеют опцию 'Open' для открытия файлов. Под Windows 2000 перейдите к open a file, затем в My Computer, и получите список дисков и серверов (если у вас есть доступ). Теперь нажмите правой кнопкой мыши на диск и выберите explore, и вновь получите explorer. Как я уже сказал, существует масса способов получения удаленного рабочего стола, и что более важно, командной строки.
Citrix хранит настройки соединений Citrix Program Neighborhood в известном местоположении (%systemroot%\profiles\username\Application Data\ - в NT4, C:\Documents and Settings\username\Application Data\ - в Win2k). Возможно, вы сможете похитить директорию ICAClient с ее содержимым и скопировать ее в свой профайл. Если этот пользователь достаточно ленив, то он наверняка использовал кэширование пароля. Иначе используйте другие методики угадывания пароля, и вы сможете получить доступ к Citrix.
Sniffing – еще один способ. Dsniff имеет возможность Citrix-сниффинга и может стать реальным оружием при использовании совместно с отравлением arp кэша (arp cache poisoning).
Цель в том, чтобы пользователь не мог использовать программы, которые могут использоваться для загрузки или передачи файлов на сервер Citrix.
Внешняя защита:
Попробуйте использовать те же шаги, что перечислены для внешней защиты. По возможности необходимо использовать файрволл + citrix secure gateway.
Но доступ к знаниям открыт для всех