Netcat monitoruj ruch sieciowy dyskretnie jak kot

Dodane przez kair4 - czw., 09/27/2018 - 10:01
program net cat 7

Netcat jest aplikacją o szerokich możliwościach szczególnie ulubioną przez użytkowników systemów Linuksa. Przy odrobinie chęci, możemy stworzyć całkiem pożyteczne narzędzie monitoringu ruchu sieciowego. Programem posługujemy się za pomocą konsoli, wykorzystując odpowiednie komendy z wiersza poleceń.

Aplikacja jest w  stanie tworzyć i zarówno przyjmować i akceptować połączenia dokonywane przy pomocy dwóch protokołów sieciowych TCP (Transmission Control Protocol) czy UDP (User Datagram Protocol). Należy jednak pamiętać, że w przypadku protokołu UDP, który jest bezpołączeniowy jest w stanie tylko wysyłać informacje.

Netcat jest w stanie kontrolować dane jeszcze przed przesłaniem ich do wyższych warstw stosu, takich jak protokół przesyłania plików FTP (File Transfer Protocol). Protokół wykorzystywany do transmisji zawartości stron WWW - HTTP (Hypertext Transfer Protocol). Czy też protokół służący do wysyłania poczty elektronicznej - SMTP (Simple Mail Transfer Protocol). Poniżej przedstawiamy proces instalacji Netcat'a dla Windows i Linux oraz kilka ciekawych trików potrzebnych do korzystania z  tego rewelacyjnego programu.

1a. Instalacja
Netcat (nc.exe) jest darmowym programem, jest nawet dostarczany jako dodatkowy pakiet do wielu dystrybucji Linuksa.

Windows:
Sprawa jest banalna ponieważ pobieramy plik spakowany najczęściej zipem lub rarem, rozpakowujemy go do jakiegoś katalogu, przechodzimy do niego z lini poleceń i już możemy go używać.

Linux:
Polecam pobranie kodu źródłowego i następnie skompilować sobie program - rozpakować plik .tgz, i stworzyć sobie katalog na naszego Netcat`a.
Należy zwrócić uwagę na dwie opcje, z których możemy skorzystać podczas kompilacji.
1. GAPING_SECURITY_HOLE
Pozwala ona na przechwytywanie, modyfikowanie i przekierowanie danych przesyłanych między dwoma zewnętrznymi programami (usługami). Jest to bardzo niebezpieczna opcja, a zarazem posiadająca duże możliwości wykorzystania. Dzięki niej Netcat może działać jako fałszywy demon (program działający w tle) usługi "inetd", pozwalając na zdalne wykonywanie poleceń oraz łączenie się z nasłuchującymi portami.
2. TELNET
Pozwala Netcat na prowadzenie negocjacji z serwerem usługi "telnet" oraz uzyskanie dostępu na określonych warunkach.

Chcąc uaktywnić jedną lub dwie w/w opcje wpisujemy poniższą linię do pliku "makefile"
DFLAGS = -DGAPING_SECURITY_HOLE -DTELNET

W Windows program standardowo nazywa się nc.exe w Linux nc

1b. Opis argumentów wpisywanych przy uruchamianiu programu "netcat"

Standardowa składnia programu to:
nc [opcje] host porty
gdzie
nc - nazwa programu
host - numer IP komputera
porty - zakres portów na których pracować ma program
opcje - przedstawione poniżej

-d opcja dostępna tylko w Windows. Netcat pracuje w trybie stealth, pozwala na uruchomienie i działanie programu w tle, bez otwartego okienka trybu tekstowego - ukrycie działania.

-e opcja dostępna po dokonaniu kompilacji z opcją GAPING_SECURITY_HOLE. Nasłuchujący Netcat wykona za każdym razem, gdy ktoś (lub coś) dokona próby połączenia się z portem, na którym nasłuchuje Netcat. Dodatkowo klient Netcata przekieruje oryginalną transmisję w inne miejsce, w którym nasłuchiwać będzie inny Netcat. Jest to bardzo niebezpieczna opcja, pozwalająca na szybkie przygotowanie "tylnego wejścia" do systemu

-i zezwala na opóźnienie wykonania zadania przez czas równy . Opcja przydatna głównie podczas skanowania portów i innych zadań, umożliwiająca ukrycie (w pewnym zakresie) wykorzystania narzędzia jako elementu skryptu (automatyzacja).

-g pozwala na wykorzystanie do ośmiu punktów (adresów IP), przez które będą przesyłane dane. Opcja jest niezwykle przydatna podczas podszywania się pod jakiś adres IP (IP spoofing) w celu np. obejścia reguł zabezpieczających firewalla lub też ukrycie źródłowego adresu IP nadawcy wiadomości e-mail. W tym celu potrzebny jest odpowiedni dostęp do każdego węzła, przez który pakiet ma przechodzić, a węzły muszą wspierać tzw. "source routing".

-G opcja ta pozwala na zmianę kolejności trasowania pakietów poprzez węzły w sieci zdefiniowane poprzez opcję "-g".

-l włącza tryb nasłuchiwania. Opcja ta musi występować w połączeniu z opcją "-p", aby Netcat wiedział, na którym porcie ma nasłuchiwać, oczekując na przychodzące połączenia.

-L opcja dostępna tylko w Windows. Działa podobnie do "-l" oraz wymaga opcji "-p". Różnica w stosunku do "-l" polega na tym, że po zakończeniu połączenia Netcat ponownie uruchamia się w trybie nasłuchiwania - bez potrzeby ingerencji użytkownika.

-n opcja powoduje, że Netcat nie będzie w ogóle wyszukiwał hostów w sieci.

-o Netcat tworzy plik zawierający dane przychodzące i wychodzące z hosta. W celu zapisywania jedynie danych przychodzących, należy użyć symbolu "<" przed nazwą pliku ("nc -o " ("nc -o >nazwa_pliku") umożliwia natomiast przechwytywanie danych wysyłanych.

-p pozwala na specyfikację lokalnego portu, który będzie wykorzystywany przez program. Jeśli opcja ta nie zostanie jednoznacznie zdefiniowana, system operacyjny sam przydzieli port dla Netcat. Należy pamiętać, że w systemach Unix tylko administrator (root) może przydzielać porty poniżej wartości 1024.

-r opcja bardzo przydatna podczas skanowania dużej ilości portów. Pozwala na losowe wybieranie portów lokalnych i zdalnych z grupy zdefiniowanych w momencie wykonania polecenia. Losowe mieszanie kolejności powoduje, że skanowanie nie może zostać niezauważone.

-s opcja ta pozwala na zdefiniowanie źródłowego adresu IP, który będzie wykorzystywany przez program Netcat. Dzięki tej opcji, hakerzy mogą ukrywać swój prawdziwy adres IP lub podszywać się pod jakiś inny.

-t opcja dostępna po dokonaniu kompilacji z opcją TELNET. Dzięki niej Netcat będzie działał jako klient usługi Telnet. Podczas negocjacji z serwerem Telnet, Netcat będzie podawał dane bez znaczenia, ale połączenie zostanie zaakceptowane.

-u opcja powoduje używanie bezpołączeniowego i beznegocjacyjnego protokołu UDP zamiast domyślnego TCP.

-v opcja definiuje ilość informacji wyświetlanych przez Netcata w trakcie działania. Bez "-v" program wyświetli tylko dane, które otrzyma. Jedna opcja "-v" pozwoli uzyskać więcej informacji dotyczących adresów IP oraz ewentualnego wystąpienia błędów. Podwójne "-v" spowoduje, że, po zakończeniu połączenia, Netcat wyświetli ilość danych wysłanych i otrzymanych podczas trwania połączenia.

-w po upłynięciu czasu w sekundach Netcat zakończy połączenie.

-z opcja powoduje, że, podczas skanowania portów, Netcat wyśle tylko niezbędne minimum informacji, aby upewnić się, które porty są otwarte w zdalnym systemie.

2. Praktyka

Przedstawię tutaj wykorzystanie programu Netcat jako:
1. Programu do zdalnego łączenia się z komputerem z system (Windows 2000, XP)
2. Skanera portów
3. Programu dzięki, któremu zdobędziemy parę ważnych informacji odnośnie serwera

Ad. 1

Aby połączyć się ze zdalnym komputerem należy na nim uruchomić Netcat`a. Robimy to w następujący sposób:
C:> nc.exe -L -p4444 -d -e cmd.exe
W Linuxie:
[root@linux] ./nc -l -p 5555 -d -e /bin/sh

Następnie łączymy się poprzez klienta Telnet`u z komputerem z uruchomionym Netcat`em oczywiście musimy znać jego numer IP i numer portu na którym nasłuchuje Netcat w naszym przypadku jest to port 4444.
Mamy dostęp do komputera z wiersza poleceń, Netcat działa w tle i nie skończy nasłuchiwania po rozłączeniu, ponieważ zastosowaliśmy odpowiednie argumenty. Mamy takie prawa na zdalnym komputerze na jakich prawach został uruchomiony Netcat.

Ad. 2

Netcat nie jest znany za bardzo z tej funkcji jednak jest ona bardzo użyteczna choć trochę wolniejsza niż w przypadku innych, typowych skanerów portów. Warto też wspomnieć, że skanowanie za pomocą Netcat`a zostawia o wiele mniej informacji o logach serwera.

[root@linux] ./nc -v -z 192.168.120.45 1-1024

opcja -v jest niezbędna by zobaczyć wyniki naszego skanowania. Krótko tylko wyjąśnię, że podajemy numer IP komputera, który chcemy skanować oraz zakres portów, które mają być sprawdzone.

Ad. 3

Oto co możemy się dowiedzieć o serwerze za pomocą programu Netcat:

Najpierw sprawdzamy czy otwarty jest port 80 ( WWW ):
C:>nc -v -z 192.168.0.1 80
Jeśli widzimy, że port jest otwarty wpisujemy:
C:>nc -v 192.168.0.1 80
naciskamy [enter] i wpisujemy "GET / HTTP" w wierszu poleceń, jeśli wszystko wykonaliśmy poprawnie ujrzymy ciekawe informacje odnośnie serwera.
Jednak nie możemy być pewni na 100%, że wyświetlone informacje są prawdziwe ponieważ często administratorzy często zmieniają wpisy, które mają się pokazać by zmylić potencjalnego intruza.

Pobierz Samouczek Netcat.PDF/Pl

Licencja GPL

Program działa na systemach: Windows, Linux

Pobierz Netcat http://netcat.sourceforge.net/

Dodaj komentarz

Czysty tekst

kategoria
Polish