Przejdź do głównej zawartości

Przechwytywanie na poziomie systemu

Niektóre cele nie pozwalają nawet na odczyt tekstu jawnego ze swojego wnętrza. Wbudowane aplikacje macOS, a także szczególnie oporne, głęboko ukryte aplikacje, blokują każdy rodzaj ingerencji z zewnątrz, zanim ta się zacznie. Przechwytywanie na poziomie systemu nie działa wewnątrz programu; obserwuje z niższych warstw systemu. Nawet te cele, do których zwykłe narzędzia nie potrafią się w ogóle zbliżyć, mają swój tekst jawny wyłożony jak na dłoni. To ostatnia karta w ręku lokalnych metod przechwytywania.

Ten artykuł dotyczy macOS. W systemie Windows programy systemowe, które przechodzą przez systemowy stos sieciowy (.NET / PowerShell itd.), mają równoważną możliwość; zobacz Przechwytywanie na warstwie aplikacji na tej maszynie.


1. Widzi to, “do czego inne narzędzia nie sięgają”

Dział zatytułowany „1. Widzi to, “do czego inne narzędzia nie sięgają””

Chcesz zobaczyć, co wbudowane aplikacje macOS, usługi systemowe lub te oporne, głęboko ukryte aplikacje mówią do swoich serwerów? Zwykle na każdym kroku trafiasz na ścianę: przechwytywanie przez proxy zostaje odrzucone (odmawiają przyjęcia certyfikatu i po prostu zgłaszają błąd), odczyt tekstu jawnego z wnętrza programu blokują zabezpieczenia systemu, a to, co przechwycisz na karcie sieciowej, to tylko tekst zaszyfrowany. Przechwytywanie na poziomie systemu to jeden z niewielu sposobów, by odczytać tekst jawny ich wymiany.

Lokalne metody przechwytywania sięgają coraz dalej jedna od drugiej, a ta stoi na samym końcu:

Cel Karta sieciowa / poziom procesu Przechwytywanie na warstwie aplikacji Przechwytywanie na poziomie systemu na tej maszynie
Zwykłe programy ✅ (przesada)
Przypinanie certyfikatu / własne szyfrowanie 🔒 tekst zaszyfrowany ✅ tekst jawny ✅ tekst jawny
Oporne / silnie ukryte aplikacje 🔒 / ❌ ❌ odmawia ingerencji tekst jawny
Wbudowane aplikacje / usługi systemowe 🔒 / ❌ ❌ odmawia ingerencji tekst jawny

Gdy żadna z wcześniejszych metod nie radzi sobie z celem, przekaż go tej.


  • Nie działa wewnątrz programu: wbudowane aplikacje i oporne aplikacje blokują każdy rodzaj ingerencji działającej wewnątrz programu, więc przechwytywanie na warstwie aplikacji na nich nie działa. Przechwytywanie na poziomie systemu obiera inny kąt: bez wstrzykiwania, bez zmian w programie, bez certyfikatów. Odczytuje poza kanałem głównym, na niższych warstwach systemu, więc to zabezpieczenie nie ma jak go zatrzymać.
  • Nie dotyka certyfikatów: nie działa jako pośrednik i nie dotyka certyfikatów, więc przypinanie certyfikatu po prostu nie ma zastosowania. Niezależnie od tego, jak surowa jest kontrola certyfikatów w tych aplikacjach, nie może na nie wpłynąć.
  • Sięga warstwy, której inni nie dosięgną: wbudowane aplikacje macOS, App Store i różne usługi systemowe przechodzą przez niższe kanały sieciowe systemu, które akurat są wspólnym martwym punktem wszystkich wcześniejszych metod przechwytywania. Przechwytywanie na poziomie systemu obejmuje dokładnie tę warstwę, wydobywając cały ich tekst jawny na pełny widok.

  • Wbudowane aplikacje i usługi systemowe: wymiana sieciowa własnych programów macOS, takich jak App Store, komponenty systemowe i usługi działające w tle.
  • Oporne, głęboko ukryte aplikacje: programy innych firm, które głęboko chowają swój ruch i odrzucają każdy rodzaj ingerencji z zewnątrz.
  • Zwykłe programy: te oczywiście też potrafi obsłużyć, ale to przesada; dla zwykłych programów wcześniejsze metody są prostsze.

  1. Wybierz cel: wybierz działający program z listy rozwijanej albo wpisz ścieżkę / nazwę programu.
  2. Opcjonalnie przechwyć “chwilę uruchomienia”: pozwól narzędziu najpierw zamknąć program, a potem uruchomić go ponownie, aby przechwycić też ruch z wczesnej fazy uruchamiania (wiele uwierzytelniania / uzgadniania połączenia dzieje się w tej właśnie chwili).
  3. Rozpocznij przechwytywanie i przeglądaj tekst jawny, który program wysyła i odbiera.

Nowa sesja · Przechwytywanie na poziomie systemu na tej maszynie: wybierz działający program (lub wpisz ścieżkę / nazwę) i obserwuj jego wymianę w postaci tekstu jawnego poza kanałem głównym, z niższych warstw systemu; możesz zaznaczyć “uruchom cel ponownie”, aby objąć wczesną fazę uruchamiania

Wynik na żywo: obserwując docelowy program poza kanałem głównym, z niższych warstw systemu, jego wymiana HTTPS jest w pełni przywrócona do postaci tekstu jawnego, widok szczegółów pokazuje “odszyfrowano”, a żądania i odpowiedzi są ustawione pozycja po pozycji


Tekst jawny odczytany z niższych warstw przechodzi przez to samo przetwarzanie co przy każdej innej metodzie przechwytywania:

  • Wiele trybów podglądu: strukturalny, upiększanie tekstu, hex oraz automatyczne wykrywanie, przełączane niezależnie dla strony wysyłającej i odbierającej. Zobacz Podgląd i dekodowanie.
  • Automatyczna dekompresja i wykrywanie: automatycznie dekompresuje gzip / brotli / deflate / zstd (w tym wiele warstw jedna na drugiej) oraz automatycznie wykrywa i upiększa JSON, XML, protobuf / gRPC i inne.

6. Jak wybierać spośród czterech lokalnych metod przechwytywania

Dział zatytułowany „6. Jak wybierać spośród czterech lokalnych metod przechwytywania”
Twoja sytuacja Której użyć
Wbudowane aplikacje macOS, oporne aplikacje (nieosiągalne innymi metodami) Przechwytywanie na poziomie systemu na tej maszynie (ten artykuł)
Program już działa / przypinanie certyfikatu / nie przyjmuje proxy / własne szyfrowanie Przechwytywanie na warstwie aplikacji na tej maszynie
Zwykłe programy, które można uruchomić poleceniem (przeglądarki / skrypty / CLI) Przechwytywanie na poziomie procesu na tej maszynie
Chcesz zobaczyć cały ruch na maszynie lub ruch inny niż HTTP Przechwytywanie na karcie sieciowej na tej maszynie

Powiązane: Przechwytywanie przez proxy · Przechwytywanie na warstwie aplikacji na tej maszynie · Podgląd i dekodowanie