Przejdź do głównej zawartości

Przechwytywanie na karcie sieciowej

Przechwytywanie przez proxy pokazuje Ci “tę część ruchu, która przechodzi przez proxy”; przechwytywanie na karcie sieciowej pokazuje wszystko, co przepływa przez kartę sieciową tego komputera: DNS, QUIC, gry, IoT, wszelkiego rodzaju protokoły własnościowe. Cokolwiek przechodzi przez kartę sieciową, masz to przed sobą. Idzie też o duży krok dalej niż tradycyjne narzędzia do przechwytywania: przechwycone HTTPS przestaje być stertą tekstu zaszyfrowanego, a staje się czymś, co możesz odszyfrować, przypisać do nadawcy i rozłożyć na czynniki pierwsze, żeby zrozumieć.


To dwa uzupełniające się sposoby przechwytywania, każdy z własnymi zastosowaniami:

Przechwytywanie przez proxy Przechwytywanie na karcie sieciowej
Jak się podłączasz Przekierowanie ruchu przez proxy + zaufanie certyfikatowi Bezpośrednie przechwytywanie surowych pakietów na karcie sieciowej, bez zmieniania jakichkolwiek ustawień i bez instalowania certyfikatu
Co widzisz Ruch, który przeszedł przez proxy, głównie HTTP(S) Cały ruch na karcie sieciowej: DNS, QUIC, ICMP, ARP, dowolne TCP / UDP…
Domyślnie tekst jawny? Domyślnie tekst jawny Domyślnie tekst zaszyfrowany; w razie potrzeby “Odszyfruj ten program” jednym kliknięciem (patrz niżej)
Najlepsze do Debugowania API HTTP, przepisywania / odtwarzania Przeglądania ruchu innego niż HTTP, obserwowania wszystkiego, co program robi w sieci, unikania jakichkolwiek zmian na poziomie systemu

Krótko mówiąc: przechwytywanie przez proxy jest “precyzyjne”, przechwytywanie na karcie sieciowej jest “kompletne”. Jeśli chcesz wiedzieć dokładnie, z jakimi adresami po cichu łączy się aplikacja i jakich protokołów używa, przechwytywanie na karcie sieciowej ujawnia to wszystko.


2. Czym różni się od tradycyjnych narzędzi do przechwytywania na karcie sieciowej

Dział zatytułowany „2. Czym różni się od tradycyjnych narzędzi do przechwytywania na karcie sieciowej”

Tradycyjne narzędzia do przechwytywania na karcie sieciowej potrafią złapać pakiety, ale przechwycone przez nie HTTPS to sterta tekstu zaszyfrowanego, a poza tym nie mają pojęcia, który program je wysłał. Przechwytywanie na karcie sieciowej buduje na fundamencie “umie przechwycić” i dopełnia go o “umie zrozumieć, umie wyśledzić”:

  • Umie odszyfrować: zamień HTTPS programu z tekstu zaszyfrowanego z powrotem w tekst jawny jednym kliknięciem (patrz sekcja 4), zamiast móc patrzeć wyłącznie na tekst zaszyfrowany.
  • Wie, kto to wysłał: każdy przepływ jest oznaczony swoim procesem źródłowym, więc w hałaśliwym środowisku wskażesz go na pierwszy rzut oka.
  • Umie prześledzić tło drugiej strony: kliknij zdalny adres IP, aby przejść od razu do jego profilu hosta (właściciel / geografia / certyfikat).
  • Umie rozłożyć na czynniki pierwsze i zrozumieć: przechwycone dane są automatycznie dekompresowane, wykrywany jest ich format, a dane są wyświetlane w sposób strukturalny; protokoły własnościowe można dekodować za pomocą własnego dekodera (patrz sekcja 6).
  • Umie też zasilać Wireshark: gdy potrzebujesz profesjonalnej analizy pakiet po pakiecie, jednym kliknięciem przekaż ruch na żywo do Wireshark, gdzie otwiera się jako tekst jawny, nawet na innym komputerze.

  1. Wybierz kartę sieciową: wszystkie karty sieciowe na komputerze są wymienione automatycznie, z domyślnie wybraną tą aktualnie aktywną.
  2. Ustaw filtr przed rozpoczęciem, jeśli chcesz: aby przechwytywać tylko ruch, na którym Ci zależy, wpisz filtr przechwytywania. Wbudowane są popularne ustawienia (TLS / HTTP / QUIC / DNS / TCP / UDP / ICMP / ARP / SSH i inne), jednym kliknięciem do zastosowania.

    Filtr przechwytywania jest ustawiany przed rozpoczęciem i nie można go zmienić, gdy przechwytywanie już trwa; określa on, “co jest przechwytywane” na poziomie karty sieciowej. Aby zawęzić już przechwycone dane, użyj “filtra wyświetlania” w widoku pakietów (patrz sekcja 6).

Nowa sesja · Przechwytywanie na karcie sieciowej: wybierz kartę sieciową i zacznij przechwytywać, bez zmieniania ustawień i bez instalowania certyfikatu; przechwycone HTTPS można potem odszyfrować dla programu jednym kliknięciem “Odszyfruj ten program”


4. Zobacz tekst jawny: trzy kroki, które zamieniają tekst zaszyfrowany w tekst jawny

Dział zatytułowany „4. Zobacz tekst jawny: trzy kroki, które zamieniają tekst zaszyfrowany w tekst jawny”

Ruch przechwycony z karty sieciowej jest domyślnie tekstem zaszyfrowanym (przechwycony w niezmienionej postaci, bez ataku typu man-in-the-middle). Zobaczenie tekstu jawnego przebiega w trzech poziomach, z których każdy wspiera poprzedni:

  1. Automatyczne odszyfrowanie: popularne programy, takie jak przeglądarki i aplikacje Electron, są zwykle tekstem jawnym już w chwili przechwycenia, bez dodatkowych kroków.
  2. Ręczne “Odszyfruj ten program”: dla programów, których nie da się odszyfrować automatycznie, kliknij “Odszyfruj ten program”, wybierz go, a jego zaszyfrowany ruch zostanie odszyfrowany. Obsługiwane jest jednoczesne odszyfrowanie wielu programów.
  3. Dwa przełączniki wzmacniające:
    • Ponowne uruchomienie programu: uruchom cel od nowa, aby nawet jego zaszyfrowany ruch z wczesnej fazy startu został odszyfrowany razem z resztą.
    • Obsługa procesów potomnych jednym kliknięciem: niektóre programy wysyłają i odbierają ruch przez procesy potomne; zaznacz tę opcję, aby obsłużyć też procesy potomne, dzięki czemu nic nie zostanie pominięte.

Popularne programy są tekstem jawnym już w chwili przechwycenia, a dla reszty jedno ręczne kliknięcie “Odszyfruj ten program” też je odszyfrowuje. Zamiana tekstu zaszyfrowanego w tekst jawny to zwykle sprawa jednego kroku.


5. Dwa widoki: pakiet po pakiecie i według połączeń

Dział zatytułowany „5. Dwa widoki: pakiet po pakiecie i według połączeń”
  • Widok pakietów: przeglądaj każdy pakiet po kolei, dokładnie jak w profesjonalnym narzędziu do przechwytywania. Wybierz ramkę, aby zobaczyć informacje o ramce, surowe bajty i drzewo protokołów rozwinięte warstwa po warstwie. Pole wyszukiwania obsługuje filtry wyświetlania w stylu Wireshark (takie jak tcp.port==443, tls.handshake), z walidacją składni na żywo w trakcie pisania, więc możesz zlokalizować cokolwiek w całym zbiorze przechwyconych danych.

Widok pakietów: prawdziwe pakiety przechwycone z karty sieciowej, zlokalizowane filtrem wyświetlania dns; wybierz ramkę, aby zobaczyć informacje o ramce i drzewo protokołów rozwinięte warstwa po warstwie

  • Widok połączeń: rekonstruuje rozproszone pakiety w pojedyncze połączenia, a “Śledź strumień” pozwala zobaczyć całą wysyłkę/odbiór połączenia od początku do końca; HTTP / DNS i inne można też przeglądać w sposób strukturalny.

Widok połączeń: rozproszone pakiety zrekonstruowane w pojedyncze połączenia, z DNS / TLS / HTTP / surowym TCP skategoryzowanymi według protokołu, dzięki czemu na pierwszy rzut oka widzisz, z kim rozmawia ten komputer

  • Działania z menu prawego przycisku myszy: kliknij prawym przyciskiem myszy dowolną ramkę, aby wyświetlić tylko to połączenie / zawęzić do niego widok (zawęź widok do tego jednego), oznaczyć ramkę, skopiować adres źródłowy / docelowy, albo dla zdalnego adresu IP przejść od razu do wyświetlenia profilu hosta / ping / skanowania portów, żeby podjąć kolejny krok dochodzenia.
  • Oba widoki są wzajemnie powiązane (przejdź z połączenia z powrotem do jego surowych pakietów albo z pakietu prześledź całe połączenie).
  • Statystyki: podsumowania w trzech tabelach (hierarchia protokołów, rozmowy, punkty końcowe), opcjonalnie tylko dla bieżących wyników filtra, żeby szybko zobaczyć, “kto zużywa pasmo i z kim rozmawia”.
  • Wstrzymaj w dowolnej chwili: wstrzymaj w trakcie przechwytywania, żeby przejrzeć to, co przechwyciłeś do tej pory, zorientować się w sytuacji i kontynuować. Przy długich sesjach nie musisz ciągle zaczynać i zatrzymywać od nowa.

Ten sam fragment danych można przeglądać na wiele sposobów, a silnik zdekoduje go za Ciebie automatycznie. Ta możliwość jest wspólna dla wszystkich metod przechwytywania i tutaj też ma zastosowanie:

  • Wiele sposobów podglądu: strukturalny, upiększony tekst, hex i automatyczne wykrywanie, przełączane niezależnie dla każdego kierunku. Szczegóły w Podgląd i dekodowanie.
  • Automatyczne wykrywanie wielu kodowań: odszyfrowana treść HTTP jest automatycznie dekompresowana dla gzip / brotli / deflate / zstd (w tym wielu warstw jedna na drugiej), a JSON, XML, formularze, protobuf / gRPC i plist są automatycznie wykrywane i upiększane, z podglądem obrazów / audio / wideo w miejscu. Szczegóły w Podgląd i dekodowanie.
  • Własne kodeki: dla protokołów własnościowych / wewnętrznych napisz krótki skrypt, żeby nauczyć narzędzie, jak je odczytywać, dzieląc na ramki, usuwając nagłówki i dekompresując do czytelnej struktury. Szczegóły w Dekodowaniu własnych protokołów.

7. Obsługa HTTP/3: przechwytywanie i odszyfrowywanie także ruchu QUIC

Dział zatytułowany „7. Obsługa HTTP/3: przechwytywanie i odszyfrowywanie także ruchu QUIC”

Coraz więcej aplikacji przechodzi na HTTP/3 (QUIC), a QUIC zawsze był trudny do przechwycenia i odszyfrowania na poziomie karty sieciowej, gdzie wiele narzędzi po prostu się zatrzymuje. Przechwytywanie na karcie sieciowej działa na oba sposoby: może sprawić, że docelowa aplikacja płynnie obniży wersję z HTTP/3 do zwykłego połączenia, dzięki czemu znów staje się możliwa do przechwycenia i odszyfrowania (wraca do normy automatycznie po zatrzymaniu sesji, nie wpływając na późniejsze normalne korzystanie z aplikacji), a gdy klucze są dostępne, potrafi też odszyfrować QUIC / HTTP/3 bezpośrednio i pokazać tekst jawny.

Oznacza to, że nawet dla aplikacji, które w pełni przeszły na HTTP/3, wciąż możesz zobaczyć ich wymianę w postaci tekstu jawnego, zamiast bezradnie patrzeć na stertę QUIC, której nie da się dotknąć.


8. Płynne przekazanie do Wireshark w celu głębokiej analizy

Dział zatytułowany „8. Płynne przekazanie do Wireshark w celu głębokiej analizy”

Gdy potrzebujesz profesjonalnej analizy pakiet po pakiecie na poziomie Wireshark, nie trzeba ciągle eksportować danych tam i z powrotem między dwoma narzędziami: przekaż ruch tej sesji na żywo do Wireshark jednym kliknięciem, gdzie otwiera się jako tekst jawny bez żadnej dodatkowej konfiguracji. Klucze odszyfrowujące są wstrzykiwane przyrostowo, na żywo razem z ruchem, więc klucze przybywające z opóźnieniem są uzupełniane, a żadna ramka nie ginie.

Może nawet wysłać ruch do Wireshark na innym komputerze, przy czym ten komputer zajmuje się przechwytywaniem i odszyfrowywaniem, a drugi skupia się na analizie, co naturalnie pasuje do zdalnej współpracy i wspólnego rozwiązywania problemów.

  • Eksport też do pliku: eksportuj jednym kliknięciem .pcapng z osadzonymi kluczami odszyfrowującymi (otwarty w Wireshark jest tekstem jawnym) albo standardowy HAR i przekaż koledze do otwarcia od razu, bez niczego więcej do skonfigurowania.

Dzięki temu masz to, co najlepsze z obu światów: “odszyfrowanie + przypisanie do procesu + jednoklikowy profil hosta” tego narzędzia, plus głęboką analizę pakiet po pakiecie Wireshark.


  • Przeglądanie ruchu innego niż HTTP: DNS, QUIC, gry, IoT, wszelkiego rodzaju protokoły własnościowe. Cokolwiek nie złapie proxy, złapie karta sieciowa.
  • Zrozumienie wszystkiego, co program robi w sieci: z jakimi adresami faktycznie się łączy, jakich protokołów używa i czy ma jakieś “ciche” połączenia.
  • Brak chęci zmieniania proxy systemowego albo instalowania certyfikatu: przechwytuj bezpośrednio, zero ingerencji.
  • Radzenie sobie z protokołami własnościowymi: po przechwyceniu surowego przepływu użyj własnego dekodera, żeby przywrócić go do czytelnej struktury.
  • Przekazanie do Wireshark na potrzeby dogłębnej analizy: gdy potrzebujesz profesjonalnej analizy pakiet po pakiecie, przekaż na żywo, gdzie otwiera się jako tekst jawny bez żadnej dodatkowej konfiguracji.

Powrót do Przechwytywanie przez proxy · Powiązane: Podgląd i dekodowanie · Dekodowanie własnych protokołów · Szczegóły hosta