Подключение к web-server
Netcat (nc) nc yandex.ru 80 HEAD / HTTP / 1.0 GET /HTTP /1.0
Netcat (nc) Передача файла
cat disk.iso | nc 127.0.0.1 5000 передача nc -l 5000 > disk.iso прием
Netcat (nc) Передача папки
server# tar -cf - -C VIDEO_TS . | nc -l -p 4444 - Сделаем архив папки и прикрепим на 4444 порт client# nc 192.168.1.1 4444 | tar xpf - -C VIDEO_TS - Получим файл с порта 4444 и распакуем server# tar -czf - /etc/ | nc -l 3333 - Быстрый backup client# nc 192.168.1.1 3333 | pv -b > mybackup.tar.gz
Netcat (nc) Передача файла
server# cat largefile | nc -l 5678 - Публикуем файл largefile на 5678 порт client# nc 192.168.1.1 5678 > largefile - Принимаем файл с 5678 порта в новый файл largefile server#cat backup.iso | pv -b | nc -l 3333 - Передаем файл с информацией о состоянии (прогресс) client#nc 192.168.1.1 3333 | pv -b > backup.iso - Получаем файл с информацией о состоянии (прогресс)
Netcat (nc) Передача образа
server# dd if=/dev/sda0 | nc -l 4444 - Передаем образ раздела client# nc 192.168.1.1 4444 | dd of=/dev/sda0 - Клонируем раздел client# nc 192.168.1.1 4444 | dd of=sda0.img - или записываем образ в файл server# dd if=/dev/hdb5 | gzip -9 | nc -l 3333 client# nc 192.168.1.1 3333 | pv -b > myhdb5partition.img.gz
Netcat (nc) Сканер портов
# nc -v -w 1 localhost -z 1-5901 |grep succeeded! Connection to localhost 22 port [tcp/ssh] succeeded! Connection to localhost 25 port [tcp/smtp] succeeded! # nc -z 192.168.1.112 1-90 Connection to 192.168.1.112 22 port [tcp/ssh] succeeded! Connection to 192.168.1.112 80 port [tcp/http] succeeded!
Netcat (nc) Чат
zabrosov# nc -lp 4444 boss # nc 192.168.1.11 4444
Netcat (nc) Hacks
# nc -lp 4444 -e /bin/bash - Удаленный shell (server backdoor) # nc -lp 4444 -e cmd.exe - Удаленный shell для Windows; -e только для win ? # webserver # while true; do nc -l -p 80 < hohoho.html; done - Петля на 80 порту, отдаёт html страничку # Бэкап по шифрованному туннелю, с авто закрытием в конце операции server# cat backup.iso | nc -l 3333 client# ssh -f -L 23333:127.0.0.1:3333 hohoho@192.168.1.1 sleep 10; nc 127.0.0.1 23333 | pv -b > backup.iso
Примеры использования:
nc -zv server 21 22 80 443 3000 Здесь: -z — не устанавливать соединение, а только проверить доступность порта. -v — выводить дополнительную информацию (режим verbose). Сканирование диапазона портов: Для проверки диапазона портов, укажите его через дефис: nc -zv server 20-7000 Установка TCP-соединения: Открыть TCP-соединение с портом 5000 на удалённом сервере с использованием источника порта 3000 и тайм-аутом в 10 секунд: nc -p 3000 -w 10 server 5000 Здесь: -p — исходный порт (3000). -w — время ожидания (10 секунд).