07 Апр, 2023

Система X Window Версии 11 (x11)

Penetration Testing as a service (PTaaS)

Tests security measures and simulates attacks to identify weaknesses.

X11 является сокращением от X Window System версии 11. Это сетевой протокол и графический пользовательский интерфейс (GUI), который позволяет приложениям запускаться на удаленном сервере и отображаться на локальном компьютере. Разработанная Массачусетским технологическим институтом в 1980-х годах, X11 стала стандартной системой отображения для операционных систем на базе Unix и широко используется в дистрибутивах Linux.

Протокол X11 работает путем отделения графического интерфейса приложения от его функциональности. Приложение запускается на удаленном сервере, в то время как графический вывод отправляется на локальный компьютер. Это позволяет пользователям запускать приложения на мощных серверах, сохраняя при этом возможность взаимодействовать с ними через локальный компьютер.

X11 также поддерживает несколько окон, позволяя пользователям запускать несколько приложений одновременно и легко переключаться между ними. Он включает в себя набор стандартных виджетов, таких как кнопки, текстовые поля и меню, которые разработчики приложений могут использовать для создания графических интерфейсов.

Протокол X11 легко настраивается, позволяя пользователям изменять внешний вид среды своего рабочего стола. Он также обладает высокой степенью расширения, и для расширения его функциональности доступно множество сторонних приложений.

Общие порты X11

Порт TCP 6000: Это порт X11 по умолчанию, используемый для связи между X-сервером и X-клиентами.

Порт TCP 6001: Обычно он используется в качестве первого альтернативного порта, когда порт по умолчанию уже используется.

Порт TCP 6002: Обычно он используется в качестве второго альтернативного порта, когда и порт по умолчанию, и первый альтернативный порт уже используются.

Порт TCP 6010: Это еще один альтернативный порт, который можно использовать для связи X11.

Порт TCP 6011: Это еще один альтернативный порт, который можно использовать для связи X11.

Стандартные команды от неавторизованных пользователей

xhost: Эта команда позволяет пользователям добавлять или удалять хосты из списка контроля доступа X server. Неавторизованные пользователи могут попытаться использовать эту команду для получения доступа к X-серверу из удаленной системы.

xeyes: Эта команда отображает пару анимированных глаз, которые следуют за курсором мыши. Хотя эта команда безвредна, неавторизованные пользователи могут попытаться использовать ее, чтобы проверить, есть ли у них доступ к X-серверу.

xkill: Эта команда позволяет пользователям отключить работающий клиент X11. Неавторизованные пользователи могут попытаться использовать эту команду для завершения работы важных приложений или служб.

xmodmap: Эта команда позволяет пользователям изменять сопоставления ключей на X-сервере. Неавторизованные пользователи могут попытаться использовать эту команду для перехвата нажатий клавиш или выполнения вредоносных команд.

xset: Эта команда позволяет пользователям изменять различные настройки X11, такие как время ожидания экранной заставки или частоту повторов с клавиатуры. Неавторизованные пользователи могут попытаться использовать эту команду для отключения функций безопасности или изменения системных настроек.

Инструменты для использования протокола X11

Ручные Инструменты:

  • xev: Этот инструмент отображает X событий, генерируемых пользовательскими устройствами ввода, такими как щелчки мыши или нажатия клавиш. Это может быть полезно для отладки приложений X11.

  • xdpyinfo: Этот инструмент отображает информацию о сервере X, включая количество экранов, доступные расширения и поддерживаемые протоколы.

  • xwininfo: Этот инструмент отображает информацию об окне, включая его геометрию, родительские и дочерние окна и идентификатор ресурса.

  • xkill: Этот инструмент позволяет пользователям отключить запущенный клиент X11, нажав на его окно. Это может быть полезно для завершения работы приложений, не отвечающих на запросы.

  • xrandr: Этот инструмент позволяет пользователям настраивать разрешение экрана, частоту обновления и поворот на дисплеях X11.

  • xset: Этот инструмент позволяет пользователям настраивать различные параметры X11, такие как время ожидания экранной заставки и частота повторения с клавиатуры.

  • xclock: Этот инструмент отображает аналоговые или цифровые часы на экране X11. Это может быть полезно для тестирования различных функций X11.

  • xfontsel: Этот инструмент позволяет пользователям просматривать и выбирать шрифты X11 для использования в приложениях.

  • xcalc: Этот инструмент предоставляет простой интерфейс калькулятора на экране X11. Это может быть полезно для тестирования функциональности ввода и вывода.

  • xterm: Этот инструмент предоставляет эмулятор терминала на экране X11. Это может быть полезно для тестирования приложений командной строки.

Автоматизированные инструменты:

  • Xnest: Этот инструмент предоставляет вложенный сервер X11 внутри существующего сеанса X11. Его можно использовать для тестирования многоэкранных настроек или для изоляции приложений X11.

  • Xvfb: Этот инструмент предоставляет виртуальный фреймбуфер X11, который можно использовать для запуска приложений X11 без физического дисплея. Это может быть полезно для тестирования безголовых серверов.

  • xdotool: Этот инструмент предоставляет интерфейс командной строки для автоматизации задач X11, таких как имитация щелчков мыши или ввода с клавиатуры.

  • xmacro: Этот инструмент записывает и воспроизводит макросы X11, которые представляют собой последовательности событий X11. Это может быть полезно для автоматизации повторяющихся задач.

  • xpra: Этот инструмент предоставляет постоянный сервер X11, к которому можно получить удаленный доступ через веб-браузер или SSH-соединение. Это может быть полезно для тестирования функциональности удаленного доступа.

  • Xnee: Этот инструмент предоставляет набор инструментов автоматизации X11, включая функции записи и воспроизведения, моделирование событий и синхронизацию.

  • Xorg-x11-server-utils: Этот пакет предоставляет набор серверных утилит X11, включая xinput, xmodmap и xsetroot.

  • X11perf: Этот инструмент предоставляет набор тестов производительности X11, включая рендеринг, манипулирование окнами и задержку ввода.

  • xrestop: Этот инструмент предоставляет представление об использовании ресурсов X11 в режиме реального времени, включая использование памяти и процессора.

  • xtrace: Этот инструмент обеспечивает отслеживание трафика протокола X11 между X-сервером и клиентами. Это может быть полезно для отладки приложений X11.

Последние пять известных CVE для X11

• CVE-2020-14346 – Ошибка была обнаружена в xorg-x11-server до 1.20.9. Недостаточный поток целых чисел при декодировании протокола расширения ввода X на сервере X может привести к произвольному доступу к содержимому памяти. Наибольшая угроза, исходящая от этой уязвимости, касается конфиденциальности и целостности данных, а также доступности системы. 

• CVE-2015-3812 – Множественные утечки памяти в функции x11_init_protocol в epan/dissectors/packet-x11.c в X11 dissector в Wireshark 1.10.x до 1.10.14 и 1.12.x до 1.12.5 позволяют удаленным злоумышленникам вызывать отказ в обслуживании (потребление памяти) через созданный пакет.

• CVE-2013-2004 – Функции (1) getDatabase и (2) _XimParseStringFile в X.org libX11 1.5.99.901 (1.6 RC1) и более ранние версии не ограничивают глубину рекурсии при обработке директив для включения файлов, что позволяет X-серверам вызывать отказ в обслуживании (потребление стека) через созданный файл.

• CVE-2013-1997 – Многократное переполнение буфера в X.org libX11 1.5.99.901 (1.6 RC1) и более ранние версии позволяют X-серверам вызывать отказ в обслуживании (сбой) и, возможно, выполнять произвольный код с помощью созданных значений длины или индекса для (1) XAllocColorCells, (2) _XkbReadGetDeviceInfoReply, (3) _XkbReadGeomShapes, (4) _XkbReadGetGeometryReply, (5) _XkbReadKeySyms, (6) _XkbReadKeyActions, (7) _XkbReadKeyBehaviors, (8) _XkbReadModifierMap, (9) _xkbreadexplicit Components, (10) _XkbReadVirtualModMap, (11) _XkbReadGetNamesReply, (12) _XkbReadGetMapReply, (13) _XimXGetReadData, (14) XListFonts, (15) XListExtensions, и (16) функции XGetFontPath.

• CVE-2013-1982 – Многократное переполнение целых чисел в X.org libXext 1.3.1 и более ранние версии позволяют X-серверам инициировать выделение недостаточной памяти и переполнение буфера с помощью векторов, связанных с (1) функциями XcupGetReservedColormapEntries, (2) XcupStoreColors, (3) XdbeGetVisualInfo, (4) XeviGetVisualInfo, (5) xshapegetrectangle и (6) xsynclistsystemcounter.

Полезная информация

– X11 - это расширяемый протокол, который позволяет добавлять дополнительные функции, не нарушая работу существующих клиентов.

– X11 прозрачен для сети, что означает, что клиент и сервер могут быть запущены либо на одной, либо на разных машинах.

– X11 - это оконная система для отображения растровых изображений, обычно используемая в Unix-подобных операционных системах.

– X11 предоставляет базовую платформу для среды GUI, позволяющую рисовать и перемещать окна на устройстве отображения, а также взаимодействовать с мышью и клавиатурой.

– Протокол X11 позволяет приложениям создавать объекты, такие как окна, и использовать базовые примитивы рисования, такие как заполнение прямоугольника или отображение текста.

– Виджеты, такие как кнопки и меню, создаются клиентскими библиотеками с использованием протокола X11.

– X11 является версией протокола с сентября 1987 года и использует TCP в качестве транспортного протокола.

Известные баннеры

  • “Версия системы X Window x.x.x” – это баннерное сообщение по умолчанию, которое отображается при запуске сеанса X11.

  • “Добро пожаловать в систему X Window” – это баннерное сообщение обычно используется дистрибутивами Linux в качестве приветствия для их сессий X11.

  • “Внимание: Нет контроля доступа!” – Это баннерное сообщение отображается, когда X11 настроен на разрешение доступа с любого клиента, независимо от личности клиента или местоположения.

  • “Это частная система – несанкционированный доступ запрещен” – это баннерное сообщение часто используется организациями для предупреждения пользователей о том, что система является частной и несанкционированный доступ запрещен.

  • “Обнаружен незащищенный сеанс X11” – это баннерное сообщение отображается, когда сеанс пользователя X11 не защищен должным образом и может быть уязвим для атак.

  • “Запрошена пересылка X11, но отображение не установлено” – это баннерное сообщение отображается, когда пользователь пытается перенаправить запросы X11 в удаленную систему, но отображение не было настроено должным образом.

  • “Соединение X11 отклонено из-за неправильной аутентификации” – это баннерное сообщение отображается, когда сеанс пользователя X11 отклоняется из-за неправильных учетных данных для аутентификации.

  • “Ошибка запроса переадресации X11 на канале 0” – это баннерное сообщение отображается, когда запрос пользователя на переадресацию X11 не удался из-за проблемы с сетевым каналом.

  • “Соединение X11 потеряно” – это баннерное сообщение отображается, когда пользовательское соединение X11 было потеряно из-за проблемы с сетью или сервером.

  • “Сеанс X11 неожиданно завершен” – это баннерное сообщение отображается, когда сеанс пользователя X11 был прерван из-за ошибки или сбоя.

Книги для учебы X11

“Система X Window: Полная ссылка на Xlib, X Protocol, ICCCM, XLFD” Роберт В. Шейфлер и Джеймс Геттис – Эта книга считается окончательным справочником по системе X Window, охватывающим такие темы, как библиотека Xlib, протокол X и руководство по соглашениям о взаимодействии между клиентами (ICCCM). Он также предоставляет углубленный обзор стандарта X Logical Font Description (XLFD).

“X Электроинструменты” автор Крис Тайлер – Эта книга представляет собой всеобъемлющее руководство по системе X Window, охватывающее такие темы, как оконные менеджеры, среды рабочего стола и программирование X11. Он также содержит советы и рекомендации по настройке среды X11 и повышению производительности.

“Руководство по программированию Xlib: для версии 11 системы X Window” автор: Адриан Най – Эта книга представляет собой подробное введение в программирование с помощью библиотеки Xlib, охватывающее такие темы, как создание окон, обработка событий и графическое программирование. Она также включает примеры и упражнения, которые помогут читателям развить свои навыки программирования на X11.

“Программирование X Window с нуля” Джерри Джонгериус – Эта книга представляет собой руководство для начинающих по программированию на X11, охватывающее такие темы, как создание окон, обработка событий и графическое программирование. Она также включает примеры и упражнения, которые помогут читателям развить свои навыки программирования на X11.

“Руководство пользователя системы X Window: для X11 R3 и R4 системы X Window” автор: Валери Кверсия и Тим О'Рейли – Эта книга представляет собой руководство пользователя по системе X Window, охватывающее такие темы, как оконные менеджеры, среды рабочего стола и приложения X11. Он также содержит советы и рекомендации по настройке среды X11 и повышению производительности.

Список полезной нагрузки для X11

  • Оконные менеджеры: Это приложения, которые управляют размещением, внешним видом и поведением Windows. Примерами могут служить twm, Metacity и Openbox.

  • Среды рабочего стола: Это полные графические пользовательские интерфейсы, которые включают оконный менеджер, файловый менеджер, панель и другие приложения. Примерами могут служить GNOME, KDE и Xfce.

  • Программное обеспечение для удаленного рабочего стола: Это приложения, которые позволяют пользователям подключаться к удаленному компьютеру и отображать его рабочий стол на своем собственном компьютере. Примеры включают VNC и RDP.

  • Эмуляторы терминалов: Это приложения, которые позволяют пользователям запускать программы командной строки в графической среде. Примеры включают xterm, GNOME Terminal и Konsole.

  • Графические Библиотеки: Это библиотеки программирования, которые предоставляют интерфейс для создания графических объектов, таких как изображения и шрифты, и управления ими. Примеры включают Cairo, OpenGL и SDL.

  • Программное обеспечение для захвата экрана: Это приложения, которые позволяют пользователям делать скриншоты или записывать видео со своего рабочего стола. Примерами могут служить recordmydesktop и Kazam.

  • Редакторы методов ввода: Это приложения, которые позволяют пользователям вводить нелатинские символы, такие как китайский или японский, с помощью клавиатуры или мыши. Примерами могут служить ibus и SCIM.

  • Дисплейные менеджеры: Это приложения, которые управляют экраном входа в систему и запускают X-сервер. Примеры включают GDM, LightDM и XDM.

Смягчение последствий

  1. Отключение переадресации X11 может уменьшить поверхность атаки системы, поскольку не позволяет злоумышленникам использовать X11 для удаленного управления приложениями или доступа к данным.

  2. Ограничение доступа X11 может помочь предотвратить доступ неавторизованных пользователей к системе. Это можно сделать, внедрив средства контроля доступа, такие как брандмауэры, и настроив X11 так, чтобы он принимал подключения только из надежных источников.

  3. Использование SSH-туннелирования может помочь защитить соединения X11 путем шифрования передаваемых данных. Это может помочь предотвратить перехват или подделку трафика X11 злоумышленниками.

  4. Поддержание программного обеспечения X11 в актуальном состоянии может помочь устранить уязвимости, которые могут быть использованы злоумышленниками. Это включает в себя обновление как сервера X11, так и любых клиентских приложений X11, установленных в системе.

  5. Использование аутентификации X может помочь предотвратить доступ неавторизованных пользователей к ресурсам X11. Это включает в себя настройку X11 на требование проверки подлинности для подключений и использование безопасных методов проверки подлинности, таких как Kerberos или XDM-AUTHORIZATION-1.

  6. Использование виртуального фреймбуфера X11 может помочь снизить некоторые риски безопасности, связанные с X11, путем изоляции приложений X11 от хост-системы. Это предполагает запуск приложений X11 в виртуальной среде, которая не имеет прямого доступа к аппаратным ресурсам системы.

  7. Использование защищенного сервера X11 может помочь предотвратить использование злоумышленниками уязвимостей в протоколе X11. Это включает в себя использование серверов X11, которые были усилены или модифицированы для снижения рисков безопасности.

Заключение

X11 это протокол, используемый для графических пользовательских интерфейсов, который был широко принят многими операционными системами. Хотя X11 предоставляет мощный набор функций для удаленного отображения и управления приложениями, он также создает некоторые риски для безопасности, которые необходимо устранить.

Другие Услуги

Готовы к безопасности?

Связаться с нами