Захват на уровне системы
Некоторые цели не позволяют прочитать открытый текст даже изнутри. Встроенные приложения macOS, а также особо упрямые, глубоко скрытые программы блокируют любое вмешательство извне ещё до того, как оно начнётся. Захват на уровне системы не запускается внутри программы, а наблюдает с нижних уровней системы. Даже у таких целей, к которым обычные инструменты не могут и близко подобраться, открытый текст оказывается как на ладони. Это последняя карта, которую держат в руках локальные методы захвата.
Эта статья посвящена macOS. В Windows системные программы, которые проходят через системный сетевой стек (.NET / PowerShell и т. п.), обладают аналогичной возможностью; см. Захват на прикладном уровне на этой машине.
1. Он видит то, до чего «другие инструменты не дотягиваются»
Заголовок раздела «1. Он видит то, до чего «другие инструменты не дотягиваются»»Хотите узнать, о чём встроенные приложения macOS, системные службы или те самые упрямые, глубоко скрытые программы переговариваются со своими серверами? Обычно вы упираетесь в стену на каждом шагу: захват через прокси отсекается (они отказываются от сертификата и просто выдают ошибку), чтение открытого текста изнутри программы блокируется системной защитой, а то, что вы перехватываете на сетевой карте, — это просто зашифрованный текст. Захват на уровне системы — один из немногих способов прочитать открытый текст их обмена.
Локальные методы захвата каждый идёт дальше предыдущего, и этот стоит в самом конце:
| Цель | Сетевая карта / по процессам | Захват на прикладном уровне | Захват на уровне системы на этой машине |
|---|---|---|---|
| Обычные программы | ✅ | ✅ | ✅ (избыточно) |
| Закрепление сертификата / собственное шифрование | 🔒 зашифрованный текст | ✅ открытый текст | ✅ открытый текст |
| Упрямые / сильно скрытые приложения | 🔒 / ❌ | ❌ отвергают вмешательство | ✅ открытый текст |
| Встроенные приложения / системные службы | 🔒 / ❌ | ❌ отвергают вмешательство | ✅ открытый текст |
Когда ни один из предыдущих методов не справляется с целью, передайте её этому.
2. Что позволяет ему добраться до системных приложений
Заголовок раздела «2. Что позволяет ему добраться до системных приложений»- Не запускается внутри программы: встроенные приложения и упрямые программы блокируют любое вмешательство, которое запускается внутри программы, поэтому захват на прикладном уровне на них не работает. Захват на уровне системы заходит с другой стороны: без внедрения, без изменений в программе, без сертификатов. Он читает данные вне полосы на нижних уровнях системы, так что эта защита не может ему помешать.
- Не касается сертификатов: он не выступает посредником и не касается сертификатов, поэтому закрепление сертификата попросту неприменимо. Насколько бы строгими ни были проверки сертификатов у этих приложений, повлиять на него они не могут.
- Дотягивается до уровня, недоступного другим: встроенные приложения macOS, App Store и различные системные службы проходят через низкоуровневые сетевые каналы системы, которые как раз и оказываются общей слепой зоной всех предыдущих методов захвата. Захват на уровне системы покрывает именно этот уровень, выводя весь их открытый текст на полное обозрение.
3. С какими целями он справляется
Заголовок раздела «3. С какими целями он справляется»- Встроенные приложения и системные службы: сетевой обмен собственных программ macOS, таких как App Store, системные компоненты и фоновые службы.
- Упрямые, глубоко скрытые приложения: сторонние программы, которые глубоко прячут свой трафик и отвергают любое вмешательство извне.
- Обычные программы: с ними он, разумеется, тоже справляется, но это избыточно; для обычных программ предыдущие методы проще.
4. Как им пользоваться
Заголовок раздела «4. Как им пользоваться»- Выберите цель: выберите запущенную программу из выпадающего списка или укажите путь / имя программы.
- При желании захватите «момент запуска»: позвольте инструменту сначала закрыть программу, а затем перезапустить её, чтобы захватить и трафик самого раннего запуска (в этот момент происходит много аутентификаций / рукопожатий).
- Запустите захват и смотрите открытый текст, который программа отправляет и получает.


5. После захвата: читаемо и декодируемо
Заголовок раздела «5. После захвата: читаемо и декодируемо»Открытый текст, прочитанный с нижних уровней, проходит ту же обработку, что и в любом другом методе захвата:
- Несколько режимов просмотра: структурированный, форматирование текста, шестнадцатеричный и автоопределение, переключаемые независимо для стороны отправки и получения. См. Просмотр и декодирование данных.
- Автоматическая распаковка и определение: автоматически распаковывает gzip / brotli / deflate / zstd (в том числе несколько сложенных слоёв) и автоматически определяет и форматирует JSON, XML, protobuf / gRPC и многое другое.
6. Как выбрать среди четырёх локальных методов захвата
Заголовок раздела «6. Как выбрать среди четырёх локальных методов захвата»| Ваша ситуация | Что использовать |
|---|---|
| Встроенные приложения macOS, упрямые программы (недостижимые другими методами) | Захват на уровне системы на этой машине (эта статья) |
| Программа уже запущена / закрепление сертификата / не принимает прокси / собственное шифрование | Захват на прикладном уровне на этой машине |
| Обычные программы, которые можно запустить командой (браузеры / скрипты / CLI) | Захват по процессам на этой машине |
| Нужно увидеть весь трафик на машине или трафик не по HTTP | Захват на сетевой карте на этой машине |
Связанные материалы: Захват через прокси · Захват на прикладном уровне на этой машине · Просмотр и декодирование данных