Рубрики
SSH

Netcat (nc)

Подключение к 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 секунд).