Wskazówki i wskazówki z poleceniem NetCat w Linux
- 1408
- 65
- Klaudia Woś
Netcat to wszechstronne narzędzie do pracy, które można używać do czytania i pisania do połączeń TCP i UDP na dowolnych portach (jak w przypadku innych narzędzi używanych w Linux, porty poniżej 1024 wymagają uprawnień root/sudo). Domyślnie NetCat używa połączeń TCP, ale UDP można określić za pomocą -u
flaga. Netcat może być używany zarówno jako serwer, jak i klient. Gdy jest używany jako serwer -L
Flaga służy do słuchania połączenia. Podobnie jak polecenie CAT, NetCat może otrzymywać informacje od stdin i pisać do stdout, dzięki czemu jest świetny do przepływów pracy z rurami i przekierowania. NC Polecenie jest zwykle używane do wywoływania netcat w celu ułatwienia użytkowania.
W tym samouczku nauczysz się, jak zrobić następujące z Netcat:
- Zrób żądanie HTTP, aby zdobyć stronę internetową
- Porozmawiaj z przyjaciółmi w maszynach
- Skopiuj pliki między maszynami
- Wykonaj skanowanie portów
- Wyświetl wiadomości z Netcat w przeglądarce internetowej
- Utwórz i podłącz do odwrotnej powłoki
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny od rozkładu |
Oprogramowanie | Netcat |
Inny | Przywileje korzeniowe do używania portów poniżej 1024 |
Konwencje | # - Polecenia Linux, które mają być wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$ - polecenia Linux, które należy wykonać jako zwykły użytkownik niepewny |
Chwytanie strony internetowej
OSTRZEŻENIEPołączenia NETCAT nie są szyfrowane. Poniższe przykłady przesyłają dane na jasne. Nie używaj NETCAT do przesyłania poufnych danych w niewiarygodnych sieciach, takich jak Internet i publiczne Wi-Fi. Jeśli chcesz bezpiecznie przesyłać dane, rozważ openSsh.
Netcat może być używany do tworzenia dowolnych połączeń z usługami sieciowymi. W rezultacie można go użyć do składania żądań HTTP do serwera internetowego, podobnie jak przeglądarka internetowa. Chodźmy dalej i weźmy stronę indeksu z Google.com.
Wejdz do NC polecenie, a następnie gospodarz i Port Chcesz się z nią połączyć.
$ NC Google.com 80
Teraz zróbmy żądanie HTTP. Wpisz lub skopiuj/wklej następujące i naciśnij Enter dwa razy.
Get /indeks.HTML HTTP/1.1
Powinieneś zobaczyć wyjście podobne do tego zrzutu ekranu.
Zabraj stronę internetową za pomocą NetcatCzat
Ten przykład zakłada, że masz 2 komputery w tej samej sieci, z nazwami hosta host1 I host2. To założenie zostanie również przyjęte w następujących przykładach. Aby utworzyć połączenie słuchowe NetCat na hosta1, wprowadź następujące.
$ nc -lv 8888
To słucha połączeń na porcie 8888. -v
Flaga określa szczegółowe dane wyjściowe, które poda więcej informacji o połączeniach przychodzących.
Teraz dalej host2
Wchodzić:
$ nc host1 8888
Zauważysz, że każdy tekst wprowadzony do terminalu na hosta1 jest wysyłany do terminalu na host2 i odwrotnie. Można to wykorzystać jako czat adhoc między dwoma użytkownikami w tej samej sieci.
Transfer plików
Netcat może być używany do kopiowania pliku z jednego komputera do drugiego. Załóżmy, że masz plik o nazwie NCNOTES.txt, z którego chcesz przenieść host1
Do host2
Na hosta1 wprowadź następujące czynności, aby utworzyć plik i posłuchaj połączenia przychodzącego, aby przenieść go na porcie 2222:
$ echo „To są moje notatki netcat”> ncnotes.txt $ nc -l 2222 < ncnotes.txt
Na hosta2 wprowadź następujące informacje, aby skopiować/odbierać plik, a następnie wydrukuj go do stdout, aby sprawdzić, czy przesyłanie pliku było do sukcesu.
$ nc host1 2222> ncnotes.txt $ cat ncnotes
Co jeśli chcesz przenieść cały folder, a nie tylko jeden plik? Netcat nie jest w stanie to zrobić samodzielnie, więc będziemy musieli skorzystać z polecenia TAR.
Wprowadź następujące na temat hosta1, aby utworzyć folder wypełniony pięcioma plikami, a następnie użyj TAR, aby utworzyć archiwum i przewrócić go w sieci NetCat.
pliki $ mkdir; Pliki dotykowe/1… 5 $ TAR -CVZ Pliki | NC -L 8888
Wprowadź następujące host2
Aby przenieść folder i sprawdzić, czy zawiera wszystkie pięć plików.
$ nc host1 8888 | Pliki TAR -xvz $ LS
Na hosta1 -C
Flaga służy do stworzenia archiwum, które zostanie przeniesione do Netcat, -v
jest używany do omówienia wyjściowej, abyśmy mieli wizualne informacje zwrotne, które informuje nas, że to się dzieje i -z
służy do kompresji archiwum, aby transfer sieci był szybszy. W naszym przykładzie kompresja nie ma większej różnicy od czasu akta Folder jest wypełniony pustymi plikami, ale możesz chcieć przesyłać duże katalogi/pliki, więc dobrze jest wiedzieć. Na hosta2 -X
Flaga służy do wyodrębnienia archiwum, który jest wkładany z Netcat, -v
jest do wyodrębnienia w pełnym i -z
to dekompresja archiwum.
Skanowanie portów
Netcat może być używany jako podstawowy skaner portów za pomocą -z
flaga.
Załóżmy, że jesteś włączony host1
i chcesz wiedzieć, czy serwer SSH działa na hosta2. Zakładając, że działa na domyślnym porcie (22) i nie ma dostępu do niego zapory, możesz użyć następującego polecenia, aby sprawdzić, czy usługa działa.
$ nc -zv host 22 22
Netcat może również skanować szereg portów, aby zobaczyć, które jeśli którekolwiek z nich są otwarte. Można to wykorzystać do wnioskowania, jakie usługi działa, że maszyna. Załóżmy, że jesteś włączony host2
i chcesz sprawdzić, czy jakieś porty pomiędzy 1
I 1024
są otwarte host1
; Możesz użyć następującego polecenia.
$ nc -zv host1 1-1024
W zależności od wersji netcat zainstalowanej w swoim systemie poprzednie polecenie albo zgłosi tylko otwarte porty, albo wydrukuje linię dla każdego otwartego i zamkniętego portu. Jeśli ten pierwszy jest przypadkiem, dane wyjściowe jest bardzo łatwe do odczytania, ale jeśli to drugie, wówczas dane wyjściowe może okazać się trudne do przeanalizowania i zamiast tego należy użyć następującego polecenia, aby wyświetlić tylko otwarte porty.
$ nc -zv host1 1-1024 2> i 1 | Grep się udało
Zobacz wiadomość w przeglądarce
NA host1
Wprowadź następujące. -k
Flaga utrzymuje połączenie przy życiu, aby można go było ponownie połączyć przez tę samą maszynę lub inne maszyny. Bez tej flagi host1
przestanie słuchać więcej połączeń po wykonaniu pierwszego połączenia.
$ echo „hello tam” | NC -LKV 5555
NA host2
Otwórz przeglądarkę i przejdź do Host1: 5555
Powinieneś zobaczyć słowa Witam
wyświetlane w przeglądarce.
Odwrotna powłoka
Netcat może być również użyty do ustalenia odwrotnej powłoki w celu zdalnego administrowania maszyną przez sieć. Odbywa się to z -mi
flaga. W tym przykładzie chcemy połączyć się z powłoką bash host2
w celu administrowania od tego host1
.
NA host1
Wchodzić:
$ nc -lv 6666
NA host2
Wchodzić:
$ nc -v host1 6666 -e /bin /bash
Teraz dalej host1
Wprowadź następujące i będzie jasne, że mamy zdalny dostęp do powłoki bash host2
.
$ hostName $ whoami $ ls
Powinieneś zobaczyć nazwę hosta host2
, nazwa użytkownika użytkownika, który zainicjował NC NA host2
i ich pliki. Wiele wersji Netcat nie obejmuje -mi
opcja ze względu na jego potencjał nadużyć. Ustanowienie zdalnej powłoki na komputerze, która ma wersję NetCat, która nie zawiera opcji -e, wymagałoby wykonania tych samych poleceń NETCAT na hosta1, przy użyciu innego programu do utworzenia odwrotnej powłoki host2
. Rozwiązania do tego istnieją dla Bash, Python, Perl, PHP i więcej.
Powiązane samouczki Linux:
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Mastering Bash Script Loops
- Rzeczy do zainstalowania na Ubuntu 20.04
- Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć
- Przydatne przykłady i sztuczki
- Przydatne przykłady i sztuczki
- Przydatne przykłady i wskazówki dotyczące linii poleceń Bash - część 4
- Przydatne przykłady i wskazówki dotyczące linii poleceń Bash - część 2
- Wprowadzenie do nazwanych rur na powładzie Bash
- Przydatne przykłady i sztuczki
- « Jak instalować, konfigurować i używać Mutt z konto Gmail w Linux
- Jak śledzić wywołania systemowe wykonane przez proces ze Strace na Linux »