Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2023-38408 — Подробный анализ критической уязвимости OpenSSH CVE 2023 38408, включая технические предпосылки, эксплуатацию в контролируемых средах и стратегии смягчения последствий. | Kitploit
Инструменты/GitHubGitHub/adel2411/cve-2023-38408
Анализ уязвимостейЭксплуатацияТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеRed Teaming
GitHubadel2411/cve-2023-38408

cve-2023-38408

Подробный анализ критической уязвимости OpenSSH CVE 2023 38408, включая технические предпосылки, эксплуатацию в контролируемых средах и стратегии смягчения последствий.

Репозиторий
551 год назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2023-38408: Понимание и моделирование реальной уязвимости SSH-Agent

Содержание

  1. Введение
  2. Основные понятия
  3. Уязвимость CVE-2023-38408
  4. Практическое моделирование и тестирование
  5. Технический анализ
  6. Исправление и смягчение
  7. Заключение

1. Введение

Цель отчета

Цель этого отчета — проанализировать CVE-2023-38408, критическую реальную уязвимость, обнаруженную в OpenSSH, как с теоретической точки зрения, так и с помощью практического моделирования. В отчете объясняются технические основы уязвимости, демонстрируется, как ее можно эксплуатировать в контролируемых средах, и рассматриваются реализованные меры по смягчению последствий.

Важность анализа реальных уязвимостей

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

Что такое CVE-2023-38408 и почему это важно

CVE-2023-38408 — это уязвимость, затрагивающая ssh-agent в OpenSSH, когда включена поддержка PKCS#11. Она позволяет выполнять удаленный код на клиентской машине, если пользователь подключается к скомпрометированному серверу с включенной пересылкой агента (ssh -A). Эта уязвимость имеет серьезные последствия для любой системы, использующей OpenSSH для безопасной аутентификации.

Детали CVEИнформация
CVE IDCVE-2023-38408
CVSS Score9.8 (Critical)
Затронутые версииOpenSSH < 9.3p2
Вектор атакиСеть
Требуемые привилегииНет
Взаимодействие пользователяТребуется
ВоздействиеПолная компрометация системы

2. Основные понятия

2.1 Обзор SSH

SSH (Secure Shell) — это криптографический сетевой протокол, используемый для безопасной связи по незащищенным сетям. Он обеспечивает зашифрованные каналы для удаленного входа, выполнения команд, передачи файлов и многого другого.```mermaid graph LR A[SSH Client] -->|Encrypted Connection| B[SSH Server] A -->|Authentication| C[ssh-agent] C -->|Private Keys| D[Key Store] B -->|Agent Forwarding| E[Remote ssh-agent Proxy]

### 2.2 Что такое ssh-agent

`ssh-agent` — это фоновый процесс, который хранит ваши расшифрованные закрытые SSH-ключи в памяти, позволяя использовать их без повторного ввода парольной фразы каждый раз при подключении к удалённой системе.

#### Пересылка агента (ssh -A)

Пересылка агента позволяет удалённой системе получить доступ к вашему локальному `ssh-agent` через сокет домена Unix. Это полезно для цепочек SSH-соединений, но вносит значительные риски безопасности, если удалённая машина скомпрометирована.```mermaid
sequenceDiagram
    participant Client as SSH Client
    participant Agent as ssh-agent
    participant Server as Remote Server
    participant Proxy as Agent Proxy

    Client->>Agent: Start agent
    Client->>Server: ssh -A user@server
    Server->>Proxy: Create proxy socket
    Note over Server,Proxy: SSH_AUTH_SOCK=/tmp/ssh-xxx/agent.xxx
    Server->>Proxy: ssh-add request
    Proxy->>Client: Forward request
    Client->>Agent: Process request
    Agent->>Client: Response
    Client->>Proxy: Forward response
    Proxy->>Server: Final response

Технически, когда вы используете ssh -A, SSH-клиент создает сокет домена Unix на удаленном сервере, который выступает в качестве прокси для вашего локального ssh-agent. Переменная среды SSH_AUTH_SOCK устанавливается так, чтобы указывать на этот прокси-сокет. Любые вызовы, сделанные к SSH_AUTH_SOCK на удаленном сервере, перенаправляются обратно через SSH-соединение и обрабатываются вашим локальным ssh-agent.

2.3 Что такое PKCS#11

PKCS#11 — это стандартный API для взаимодействия с криптографическими токенами, такими как смарт-карты, YubiKeys или виртуальные модули безопасности оборудования (HSM).

PKCS#11 FunctionPurposeRisk Level
C_Initialize()Инициализировать библиотекуНизкий
C_GetSlotList()Список доступных слотовНизкий
C_FindObjects()Найти криптографические объектыСредний
C_Sign()Подписать данныеВысокий
dlopen()Загрузить общую библиотекуКритический

Как ssh-agent поддерживает PKCS#11

OpenSSH ssh-agent поддерживает загрузку PKCS#11-провайдеров (общих библиотек .so) с помощью команды ssh-add -s /path/to/provider.so. Эти библиотеки позволяют агенту взаимодействовать с безопасными аппаратными или программными модулями для использования закрытых ключей без их прямого раскрытия.

Под капотом, при вызове ssh-add -s выполняются следующие действия:

  • Файл .so динамически загружается в память с помощью dlopen().
  • Агент разрешает и вызывает такие функции, как C_Initialize(), C_GetSlotList(), C_FindObjects() и C_Sign() через API PKCS#11.
  • Провайдер возвращает метаданные и обрабатывает запросы на подписание аутентификационных запросов, сохраняя материал закрытого ключа в безопасности внутри аппаратного токена.

3. Уязвимость CVE-2023-38408

3.1 Сводка уязвимости

АтрибутДетали
IDCVE-2023-38408
СерьезностьВысокий (CVSS 9.8)
Временная шкалаРаскрыта в июле 2023, исправлено в OpenSSH 9.3p2
Затронутое ПОOpenSSH версий до 9.3p2 с поддержкой PKCS#11
Сложность атакиНизкая
Вектор атакиСеть через перенаправление SSH-агента

3.2 Механизм уязвимости

Уязвимость возникает из-за того, что ssh-agent загружает любой файл общей библиотеки (.so), предоставленный через ssh-add -s, без проверки, является ли он легитимным PKCS#11-провайдером.```mermaid graph TD A[Attacker sends ssh-add -s malicious.so] --> B[Request forwarded to victim's ssh-agent] B --> C[ssh-agent calls dlopen on malicious.so] C --> D[Constructor function executes immediately] D --> E[Arbitrary code runs on victim machine]

### 3.3 Анализ потока атак```mermaid
sequenceDiagram
    participant V as Victim
    participant A as Attacker
    participant Agent as ssh-agent
    participant Lib as Malicious .so

    V->>A: ssh -A attacker@host
    Note over V,A: Agent forwarding enabled
    A->>Agent: ssh-add -s /path/to/malicious.so
    Agent->>Lib: dlopen("/path/to/malicious.so")
    Note over Lib: Constructor executes
    Lib->>V: Malicious code runs
    Note over V: System compromised

На самом низком уровне последовательность событий включает:

  1. Удаленная система отправляет запрос перенаправленному агенту, запрашивая ssh-add -s /path/to/lib.so
  2. Локальный ssh-agent получает этот запрос и слепо вызывает dlopen("/path/to/lib.so", RTLD_NOW)
  3. Если файл .so имеет функцию-конструктор (__attribute__((constructor))), она выполняется сразу после загрузки
  4. Этот конструктор может содержать произвольный вредоносный код, выполняющийся на машине клиента

3.4 Реальный сценарий атаки

Скачать инструмент