FTP
FTP to protokół używany przez komputery do udostępniania informacji w sieci. Mówiąc najprościej, jest to sposób na udostępnianie plików między połączonymi komputerami. Ponieważ protokół HTTP jest zbudowany dla stron internetowych, FTP jest zoptymalizowany pod kątem przesyłania dużych plików między komputerami.
Klient FTP najpierw buduje połączenie kontrolne żądanie do portu serwera 21. Połączenie kontrolne wymaga logowania, aby nawiązać połączenie. Ale niektóre serwery udostępniają całą swoją zawartość bez żadnych danych uwierzytelniających. Takie serwery są znane jako anonimowe serwery FTP. Później osobny łącze danych jest ustanowiony do przesyłania plików i folderów.
Analiza ruchu FTP
Klient i serwer FTP komunikują się, nie wiedząc, że TCP zarządza każdą sesją. Protokół TCP jest zwykle używany w każdej sesji do kontrolowania dostarczania i przybycia datagramów oraz zarządzania rozmiarem okna. Przy każdej wymianie datagramów TCP inicjuje nową sesję między klientem FTP a serwerem FTP. Dlatego rozpoczniemy naszą analizę od dostępnych informacji o pakietach TCP dla inicjacji i zakończenia sesji FTP w środkowym okienku.
Rozpocznij przechwytywanie pakietów z wybranego interfejsu i użyj ftp polecenie w terminalu, aby uzyskać dostęp do strony ftp.mcafee.com.
ubuntu$ubuntu:~$ ftp ftp.mcafee.com
Zaloguj się za pomocą swoich danych uwierzytelniających, jak pokazano na poniższym zrzucie ekranu.
Posługiwać się Ctrl+C aby zatrzymać przechwytywanie i poszukać inicjacji sesji FTP, a następnie tcp [SYN], [POTWIERDZENIE SYNCHRONIZACYJNE], i [POTWIERDZ] pakiety ilustrujące trójstronny uścisk dłoni zapewniający niezawodną sesję. Zastosuj filtr tcp, aby zobaczyć pierwsze trzy pakiety w panelu Lista pakietów.
Wireshark wyświetla szczegółowe informacje o TCP, które pasują do segmentu pakietu TCP. Podświetlamy pakiet TCP z komputera hosta do serwera FTP McAfee, aby przestudiować warstwę protokołu kontroli transferu w panelu szczegółów pakietu. Możesz zauważyć, że pierwszy datagram TCP dla inicjacji sesji ftp ustawia się tylko SYN trochę do 1.
Wyjaśnienie każdego pola w warstwie protokołu kontroli transportu w Wireshark podano poniżej:
- Port źródłowy: 43854, to host TCP zainicjował połączenie. To liczba, która leży w dowolnym miejscu powyżej 1023.
- Port docelowy: 21, to numer portu związany z usługą ftp. Oznacza to, że serwer FTP nasłuchuje na porcie 21 dla żądań połączenia klienta client.
- Numer sekwencji: Jest to 32-bitowe pole, które zawiera numer pierwszego bajtu wysłanego w danym segmencie. Ten numer pomaga w identyfikacji wiadomości otrzymanych w kolejności.
- Numer potwierdzenia: 32-bitowe pole określa, że odbiorca potwierdzenia oczekuje odebrania po udanej transmisji poprzednich bajtów.
- Flagi kontrolne: każda forma bitu kodu ma specjalne znaczenie w zarządzaniu sesją TCP, która przyczynia się do traktowania każdego segmentu pakietu.
POTWIERDZENIE: weryfikuje numer potwierdzenia segmentu paragonu.
SYN: synchronizuj numer sekwencyjny, który jest ustawiany podczas inicjacji nowej sesji TCP
PŁETWA: żądanie zakończenia sesji
URG: prośby nadawcy o przesłanie pilnych danych
RST: prośba o zresetowanie sesji
PSH: prośba o wypychanie
- Rozmiar okna: to wartość przesuwanego okna mówi o rozmiarze wysyłanych bajtów TCP.
- Suma kontrolna: pole zawierające sumę kontrolną do kontroli błędów for. To pole jest obowiązkowe w TCP w przeciwieństwie do UDP.
W kierunku drugiego datagramu TCP przechwyconego przez filtr Wireshark. Serwer McAfee potwierdza, że SYN żądanie. Możesz zauważyć wartości SYN i POTWIERDZ bity ustawione na 1.
W ostatnim pakiecie możesz zauważyć, że host wysyła do serwera potwierdzenie zainicjowania sesji FTP session. Możesz zauważyć, że Numer sekwencji i POTWIERDZ bity są ustawione na 1.
Po nawiązaniu sesji TCP klient FTP i serwer wymieniają ruch, klient FTP potwierdza serwer FTP FTP Odpowiedź 220 pakiet wysłany przez sesję TCP przez sesję TCP. W związku z tym cała wymiana informacji odbywa się za pośrednictwem sesji TCP na kliencie FTP i serwerze FTP FTP.
Po zakończeniu sesji FTP klient ftp wysyła wiadomość o zakończeniu do serwera. Po potwierdzeniu żądania sesja TCP na serwerze wysyła ogłoszenie o zakończeniu do sesji TCP klienta. W odpowiedzi sesja TCP na kliencie potwierdza datagram zakończenia i wysyła własną sesję zakończenia. Po odebraniu zakończenia sesji serwer FTP wysyła potwierdzenie zakończenia sesji, a sesja zostaje zamknięta.
Ostrzeżenie
FTP nie używa szyfrowania, a dane logowania i hasła są widoczne w biały dzień. Dlatego tak długo, jak nikt nie podsłuchuje i przesyłasz poufne pliki w swojej sieci, jest to bezpieczne. Ale nie używaj tego protokołu do uzyskiwania dostępu do treści z Internetu. Posługiwać się SFTP który używa bezpiecznej powłoki SSH do przesyłania plików.
Przechwytywanie hasła FTP
Pokażemy teraz, dlaczego ważne jest, aby nie używać FTP przez internet. Poszukamy konkretnych fraz w przechwyconym ruchu zawierającym użytkownik, nazwa użytkownika, hasło, itp., zgodnie z instrukcją poniżej.
Iść do Edycja-> „Znajdź pakiet” i wybierz Ciąg dla Filtr wyświetlania, a następnie wybierz Bajty pakietów aby wyświetlić wyszukiwane dane w postaci zwykłego tekstu.
Wpisz ciąg przechodzić w filtrze i kliknij Odnaleźć. Pakiet znajdziesz z napisem „Podaj hasło” w Bajty pakietów płyta. Możesz również zauważyć podświetlony pakiet w Lista pakietów płyta.
Otwórz ten pakiet w osobnym oknie programu Wireshark, klikając go prawym przyciskiem myszy i wybierając Śledź->strumień TCP.
Teraz wyszukaj ponownie, a znajdziesz hasło w postaci zwykłego tekstu w panelu Packet byte. Otwórz podświetlony pakiet w osobnym oknie jak powyżej. Poświadczenia użytkownika znajdziesz w postaci zwykłego tekstu.
Wniosek
Z tego artykułu dowiesz się, jak działa protokół FTP, przeanalizowano, w jaki sposób TCP kontroluje i zarządza operacjami w sesji FTP, a także zrozumiałem, dlaczego ważne jest używanie bezpiecznych protokołów powłoki do przesyłania plików przez Internet. W kolejnych artykułach omówimy niektóre interfejsy wiersza poleceń dla Wireshark.