netcat (NetCat)
Скриншот программы netcat (NetCat)
Тип сетевая утилита (TCP, UDP)
Разработчик *Hobbit*
Написана на C
Операционная система UNIX
Первый выпуск 28 октября 1995
Аппаратная платформа Windows
Последняя версия 1.12 (21 апреля 2011)
Лицензия GPL
Сайт netcat.sourceforge.net
Логотип Викисклада Медиафайлы на Викискладе

netcat (англ. net сеть + cat) — утилита Unix, позволяющая устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. Несмотря на свою полезность и простоту, данная утилита не входит ни в какой стандарт (например, POSIX).

Действие

В простом случае NetCat вызывается как:

nc host port

Это приводит к созданию TCP-подключения с указанными реквизитами и замыканием стандартного ввода на сетевой вывод и наоборот, стандартного вывода на сетевой ввод. Такая функциональность напоминает команду cat, что обусловило выбор имени «netcat». При невозможности подключения программа выводит сообщение об ошибке на stderr.

Утилита распознаёт следующие ключи:

 -h Справка; ничего не делается
 -v Дополнительная диагностика (verbose)
 -o выходной_файл Выводить дампы данных
 -i число Задержка между отправляемыми данными (в секундах)
 -t Совместимость с Telnet
 -z Не посылать данные (сканирование портов)
 -u Подключаться по UDP (вместо TCP)
 -l Пассивный режим (прослушивание порта)
 -p число * Локальный номер порта (для -l)
 -s host Использовать заданный локальный («свой») IP-адрес
 -n Отключить DNS и поиск номеров портов по /etc/services
 -w число Задать тайм-аут (в секундах)
 -q число Задать время ожидания после EOF на входе (в секундах) **
 -e исполняемый_файл ! Запустить указанную программу для обмена данных с сетью (вместо стандартных ввода и вывода)
 -с команда ! То же, в виде команды для /bin/sh
-k Продолжить слушать другие соединения после того как текущее соединение было завершено.

! — требуется специальная сборка, в поставляемых исполняемых файлах отключено (легко создаёт сетевую уязвимость).
* — в некоторых реализациях номер порта для прослушивания задаётся через -l, а ключ -p отсутствует.
** — имеется не во всех версиях.


Опции:

Применение

Примеры

Под Windows:

Запустить CMD перейти в папку с netCat (например C:\netcat\)

Для создания чата между хостами

На одной машине (10.10.10.1) открываем порт 1234 для прослушивания: nc -l -p 1234 На другой машине необходимо выполнить подключение к хосту 10.10.10.1 на порт 1234: nc 10.10.10.1 1234

Отправка текста по Enter. Разрыв соединения CTRL+C


Для ubuntu удалите из ключей "-p ".

Отображение тестовой HTML-странички клиенту с обычным браузером одной командой (порт 8080):

(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080

Передача файла клиенту с обычным браузером одной командой (порт 8080):

(echo -e "HTTP/1.1 200 OK\nContent-Disposition: attachment; filename=целевое-имя-которое-увидит-клиент\nContent-Type: application/octet-stream\nConnection: close\n"; cat имя-файла-на-диске ) | nc -vv -l -p 8080

Передача текущего каталога со всеми файлами и подкаталогами по Интернету или Интранету, порт 3333, с распаковкой в текущий каталог:

nc -l -p 3333 | tar xv (выполняется на приёмной стороне)

tar cv * | nc -q 0 ip.адрес.приёмной.стороны 3333 (выполняется на передающей стороне)

Имена команды

nc, netcat, ncat, pnetcat (в разных системах).

См. также

Примечания

  1. fker. все про NETCAT (англ.). ANTICHAT - Security online community (23 февраля 2009). Дата обращения: 5 декабря 2019. Архивировано 5 декабря 2019 года.

Ссылки