WSL: Граница совместимости ядер
Как драйверы lxss.sys и wslfs.sys создают мост между NT и Linux без полной виртуализации
Архитектурные слои трансляции
WSL работает не через эмуляцию, а через трансляцию системных вызовов на уровне драйверов ядра Windows. Ключевые компоненты:
①
Системные вызовы
Драйвер lxcore.sys перехватывает ~250 основных системных вызовов Linux и транслирует их в эквивалентные NT-вызовы. Не поддерживается ~15% вызовов (например, ptrace в полном объёме).
②
Файловая система
Драйвер wslfs.sys обеспечивает двусторонний доступ: /mnt/c → C:. Метаданные Linux (права, владельцы) хранятся в атрибутах $LXUID и $LXGID файловой системы NTFS.
③
Сетевой стек
В WSL2 используется гипервизор на базе Hyper-V с виртуальной сетью. В WSL1 сетевой стек полностью интегрирован с хостом — все соединения идут через сетевой стек Windows без изоляции.
Окно компонентов Windows с активированной Подсистемой Windows для Linux
⚠️ Критические ограничения для реального пентеста
Что НЕ работает в WSL1
- Raw-сокеты для сниффинга (
tcpdump,wireshark) - Прямой доступ к сетевым интерфейсам уровня 2 (без
--net=hostв WSL2) - Загрузка собственных ядерных модулей (
.ko) - Полноценный
iptablesс поддержкой всех таблиц - Низкоуровневые атаки на ядро (LPE через уязвимости в драйверах)
Что РАБОТАЕТ
- Все инструменты прикладного уровня (
nmap,sqlmap,hydra) - Скриптовые атаки на веб-приложения
- Криптоанализ и оффлайн-брутфорс
- Работа с форматами файлов (анализ дампов памяти, образов дисков)
- Интеграция с инструментами Windows через
/mnt/c
Практический вывод: WSL подходит для подготовки к атакам, анализа артефактов и прикладного тестирования. Для сетевого пентеста, эксплуатации уязвимостей ядра и работы с оборудованием требуется полноценная виртуальная машина или физический хост.
Файловая система Linux: точки аудита и атаки
| Каталог | Риск для безопасности | Метод контроля |
|---|---|---|
| /etc | Изменение конфигурации служб, подмена PAM-модулей, внедрение бэкдоров в cron | aide, tripwire, мониторинг целостности через inotify |
| /var/log | Очистка следов атаки, подмена временных меток, создание ложных записей | Централизованный сбор логов (syslog-ng → SIEM), хеширование логов в реальном времени |
| /home | Кража учетных данных из .bash_history, .ssh, конфигураций браузеров | Шифрование домашних каталогов, ограничение прав на чтение .ssh, регулярный аудит |
| /proc | Сокрытие процессов через rootkit, чтение памяти других процессов (/proc/[pid]/mem) | Сравнение вывода ps и содержимого /proc, использование chkrootkit |
| /tmp | Размещение вредоносных исполняемых файлов, эксплуатация race condition | noexec в /etc/fstab, регулярная очистка через systemd-tmpfiles |
| /dev | Доступ к неограниченным устройствам через /dev/mem (требует прав root) | Ограничение прав на /dev через udev-правила, мониторинг создания новых устройств |
Ключевой принцип аудита: Критичность каталога определяется не его назначением, а комбинацией трёх факторов — частотой изменений легитимными процессами, наличием механизмов контроля целостности и потенциальным ущербом от компрометации.
Готовы применять знания на практике?
WSL — инструмент для подготовки и анализа. Для реальных атак и глубокого тестирования требуются изолированные среды. Понимание архитектурных ограничений предотвращает ложное ощущение безопасности.