Wskazówki i wskazówki z poleceniem NetCat w Linux

Wskazówki i wskazówki z poleceniem NetCat w Linux

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
Wskazówki i wskazówki z poleceniem NetCat w Linux

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
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ŻENIE
Połą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ą Netcat

Czat

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