Команда Netcat в Linux

Netcat (nc) – это утилита командной строки, которая читает и записывает данные через сетевые подключения, используя протоколы TCP или UDP. Это одна из самых мощных инструментов в арсенале сетевых и системных администраторов, который считается швейцарским армейским ножом сетевых инструментов.

Netcat можно использовать для отладки и мониторинга сетевых подключений, сканирования открытых портов, передачи данных в качестве прокси-сервера и многого другого. Пакет Netcat предустановлен в MacOS и популярных дистрибутивах Linux.

Синтаксис

Самый основной синтаксис утилиты имеет следующий вид:

nc [options] host port

Опции Netcat

  • -h Справка;
  • -v Вывод информации о процессе работы (verbose);
  • -o <выходной_файл> Вывод данных в файл;
  • -i <число> Задержка между отправляемыми данными (в секундах);
  • -z Не посылать данные (сканирование портов);
  • -u Использовать для подключения UDP протокол;
  • -l Режим прослушивания;
  • -p <число> Локальный номер порта для прослушивания. Используется с опцией -l;
  • -s <хост> Использовать заданный локальный («свой») IP-адрес;
  • -n Отключить DNS и поиск номеров портов по /etc/services;
  • -w <число> Задать тайм-аут (в секундах);
  • -q <число> Задать время ожидания после передачи данных, после истечение которого соединение закрывается.

Установка Netcat

Пример установки утилиты в ОС Debian:

sudo apt-get install netcat

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

Сканирование портов является одним из наиболее распространенных способов использования Netcat. Можно сканировать один порт или диапазон портов.

Например, для поиска открытых портов в диапазоне 1-80 вы должны использовать следующую команду:

nc -z -v 192.168.0.113 1-80

Опция -z скажет nc сканировать только открытые порты, без отправки каких – либо данных на них и -v дает возможность предоставления более подробной информации.

Если необходимо распечатать только строки с открытыми портами, можно отфильтровать результаты с помощью команды grep:

nc -z -v 192.168.0.113 1-80 2>&1 | grep open

Можно использовать Netcat для поиска серверного программного обеспечения и его версии. Например, если отправить команду «EXIT» на сервер по стандартному SSH-порту 22:

echo "EXIT" | nc 192.168.0.113 22

Вывод будет выглядеть примерно так:

SSH-2.0-OpenSSH_7.9p1 Debian-10
Protocol mismatch.

Сохранение результатов

Результаты сканирования можно сохранить в файл. Например, можно сканировать порты 1-80, создать файл и записать в него результаты сканирования:

nc -v 192.168.0.113 1-80 > test.txt 

Отправка файлов через Netcat

Netcat можно использовать для передачи данных с одного хоста на другой, создав базовую модель клиент/сервер.

На принимающем ПК запустим следующую команду, которая откроет порт 5555 для входящего соединения и перенаправит вывод в файл:

nc -l 5555 > file_name

С узла-отправителя подключаемся к узлу-получателю и отправляем файл:

nc 192.168.0.113 5555 < file_name

Для передачи каталога можно использовать tar для архивирования каталога на исходном хосте и для извлечения архива на конечном хосте.

На принимающем хосте настраиваем средство Netcat на прослушивание входящего соединения через порт 5555. Входящие данные передаются в команду tar, которая извлечет архив:

nc -l 5555 | tar xzvf -

На отправляющем хосте упаковываем каталог и отправляем данные, подключившись к процессу прослушивания nc на принимающем хосте:

tar czvf - /path/to/dir | nc 192.168.0.113 5555

После завершения вводим CTRL+C, чтобы закрыть соединение.

Чат между узлами

На первом узле (192.168.1.13):

nc -lp 9000

На втором узле:

nc 192.168.1.13 9000

После выполнения команд все символы, введенные в окно терминала на любом из узлов появятся в окне терминала другого узла.

Выводы

В данной статье мы рассмотрели основы работы и примеры работы утилиты Netcat. Рекомендуется закрепить данную теорию на практике. Если будут вопросы по утилите, тогда обязательно пишите в комментариях.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: