Netcat как установить linux

Обновлено: 06.07.2024

Список инструментов для тестирования на проникновение и их описание

Описание Ncat

Программа Ncat является написанным с нуля популярной (но давно не поддерживаемой) программы Netcat, nc. Кроме Ncat имеются и другие варианты Netcat, которые переписаны из оригинального кода или написаны с нуля. Поэтому аналогичные программы с аналогичными функциями могут называться по-разному, также они могут отличаться друг от друга возможностями и набором опций, но главная функция у них одинаковая.

Данный справочный материал описывает Ncat — вариант Netcat от авторов Nmap. Программа Ncat является популярной и в некоторых дистрибутивах предустановлена по умолчанию вместо Netcat.

Ncat — это многофункциональная сетевая утилита, которая считывает и записывает данные в сети из командной строки. Ncat была написана для Nmap Project в качестве сильно улучшенной реинкарнации почтенной программы Netcat. Она использует TCP и UDP для коммуникации и создана быть надёжным движком для мгновенно подключения по сети к другим приложениям и пользователям. Ncat не только работает с IPv4 и IPv6, но и обеспечивает пользователя потенциально безграничным числом вариантов использования.

Ncat интегрирована с Nmap и доступна в стандартных пакетах при загрузке Nmap (включая исходный код, а также исполнимые файлы для Linux, Windows, и Mac) — всё это доступно на странице загрузки Nmap. Также имеется репозиторий исходного кода SVN.

Авторы: Chris Gibson,

Справка по Ncat

Руководство по Ncat

Название

ncat — конкатенация и перенаправление сокетов

Синопсис

Режим подключения (connect mode) и режим прослушивания (listen mode)

В режиме подключения аргументы имя_хоста и порт говорят, к чему подключиться. Имя_хоста нужно указать обязательно, это может быть имя хоста (такое как доменное имя, например) или IP адрес. Если порт указан, то это должно быть десятичное число. Если порт пропущен, то используется значение по умолчанию 31337.

В режиме прослушивания, имя_хоста и порт контролирует адрес сервера, к которому будет сделана привязка (bind). В режиме прослушивания оба аргумента являются опциональными. Если пропущено имя хоста, то по умолчанию прослушиваются все доступные адреса по IPv4 и IPv6. Если пропущен порт, то по умолчанию прослушивается порт 31337.

Опции протоколов

-4 (только IPv4)

Принудительно использовать только IPv4.

-6 (только IPv6)

Принудительно использовать только IPv6.

-U, --unixsock (Используйте доменные сокеты Unix)

Используйте доменные сокеты Unix, а не сетевые сокеты. Эта опция может использоваться сама по себе для потоковых сокетов или в сочетании с --udp для датаграмных сокетов. Описание режима -U будет далее в подразделе с названием «Доменные сокеты Unix».

-u, --udp (Использовать UDP)

Использовать UDP для подключений (по умолчанию используется TCP).

--sctp (Использовать SCTP)

Использовать для подключений SCTP (по умолчанию используется TCP). SCTP поддержка реализована в совместимом с TCP режиме (TCP-compatible mode).

Опции режима подключения

Чтобы понимать следующие опции программы Ncat нужно знать об опциях Интернет протокола (Internet Protocol). Имеется ряд опциональных параметров, которые могут присутствовать в датаграммах Internet Protocol 4 версии. Как правило, они настраивают ряд вариантов поведения, таких как метод, который будет использоваться во время маршрутизации источника, некоторые средства управления и проверки и ряд экспериментальных функций.

Свободная исходная маршрутизация

Свободная маршрутизация от источника — это опция IP, которую можно использовать для трансляции адресов. LSR также используется для реализации мобильности в IP-сетях.

Свободная исходная маршрутизация использует опцию исходной маршрутизации в IP для записи набора маршрутизаторов, которые должен посетить пакет. Пункт назначения пакета заменяется следующим маршрутизатором, который пакет должен посетить. Установив агент пересылки (FA) на один из маршрутизаторов, которые должен посетить пакет, LSR эквивалентен туннелированию. Если соответствующий узел хранит параметры LSR и реверсирует их, это эквивалентно функциональности в мобильном IPv6.

Наименование свободной исходной маршрутизации происходит из-за того, что заранее задана только часть пути.

Строгая исходная маршрутизация

Строгая исходная маршрутизация отличается от свободной исходной маршрутизации тем, что в ней каждый шаг маршрута, куда отправляется пакет, заранее определяется.

Устанавливает хопы (hop, узлы) свободной исходной маршрутизации. Вы можете использовать -g один раз со списком, в котором через запятую перечислены хопы, используйте -g несколько раз с одним узлом для построения списка или комбинирования двух. Хопы могут быть заданы как IP адреса или имена хостов.

-G ptr (Установить указатель исходной маршрутизации)

Устанавливает «указатель» исходного маршрута IPv4 для использования с -g. Аргумент должен быть кратным 4 и не более 28. Не все операционные системы поддерживают установку этого указателя на что-либо кроме четырёх.

-p порт, --source-port порт (Указать порт источника)

Установить номер порта для привязки Ncat.

-s хост, --source хост (Указать адрес источника)

Указать адрес для привязки Ncat.

Опции режима прослушивания

Смотрите в разделе «Опции контроля доступа» информацию об установлении ограничений для хостов, которые могут подключиться к прослушивающему процессу Ncat.

-l, --listen (Прослушивать подключения)

Прослушивать подключения, а не подключаться к удалённой машине.

-m numconns, --max-conns numconns (Указывает максимальное число подключений)

Максимальное число одновременных подключений, принимаемых экземпляром Ncat. По умолчанию это 100 (в Windows это 60).

-k, --keep-open (Разрешить множественные подключения)

Обычно прослушивающий сервер принимает только одно подключение и затем завершает рабобту, когда соединение закрывается. Эта опция делает так, что сервер принимает несколько одновременных соединений и ожидает другие соединения, даже если первые были закрыты. Её нужно комбинировать с --listen. В этом режиме нет способа для Ncat узнать, когда сетевой ввод закончится, поэтому она будет работать пока явно не остановлена. Это также означает, что она никогда не закроет свой выходной поток, поэтому любая программа, читающая из Ncat и ищущая конец файла, также будет зависать.

--broker (Посреднические соединения)

Разрешить нескольким сторонам подключаться к централизованному серверу Ncat и общаться друг с другом. Ncat может обеспечивать связь между системами, которые находятся за NAT или иным образом не могут напрямую подключиться. Эта опция используется в сочетании с --listen, в результате чего на порту --listen включён режим брокера.

--chat (Ad-hoc “чат сервер”)

Опции SSL

--ssl (Использовать SSL)

В режиме сервера эта опция прослушивает входящие SSL-соединения, а не обычный трафик в виде простого текста.

В режиме UDP-подключения эта опция включает Datagram TLS (DTLS). Это не поддерживается в режиме сервера.

--ssl-verify (Верификация сертификатов сервера)

В режиме клиента, --ssl-verify это как --ssl кроме того, эта опция также требует верификацию сертификатов сервера. Ncat поставляется со стандартным набором доверенных сертификатов в файле ca-bundle.crt. Некоторые операционные системы предоставляют дефолтный список доверенынх сертификатов, они также будут использоваться, если доступны. Используйте --ssl-trustfile, чтобы указать свой собственный список.

Используйте -v один или более раз для получения подробностей о неудачах верификации. Ncat не проверяет сертификаты на отозванность.

Эта опция не имеет эффекта в серверном режиме.

--ssl-cert certfile.pem (Указать SSL сертификат)

Эта опция передаёт расположения файлов сертификата в PEM кодировке, используемых для аутентификации сервера (в режиме прослушивания) или клиента (в режиме подключения). Используйте её в комбинации с --ssl-key.

--ssl-key keyfile.pem (Указать приватный ключ SSL)

Эта опция передаёт расположения приватного файла ключа в PEM кодировке, который идёт с сертификатом, указанным опцией --ssl-cert.

--ssl-trustfile cert.pem (Список доверенный сертификатов)

Эта опция устанавливает список сертификатов, которые являются доверенными для целей проверки сертификатов. Она не имеет эффекта если не совмещена с --ssl-verify. Аргумент этой опции — это имя PEM файла, содержащего доверенные сертификаты. Обычно этот файл будет содержать сертификаты Центров Сертификации (certification authorities), хотя он может также содержать напрямую сертификаты сервера. Когда используется эта опция, Ncat не использует свои дефолтные сертификаты.

--ssl-ciphers список шифров (Указывает список шифров SSL)

Эта опция устанавливает список набора шифров, которые Ncat будет использовать при подключении к серверам или когда принимает SSL подключения от клиентов. Синтаксис описан в man странице OpenSSL ciphers(1):

и по умолчанию установлен на:

--ssl-alpn список ALPN (Указывает список протокола ALPN)

Эта опция позволяет указать разделённый запятой список протоколов для отправки файлов через TLS расширение Application-Layer Protocol Negotiation. Поддерживается не всеми версиями OpenSSL.

Опции прокси

--proxy хост[:порт] (Указывает адрес прокси)

Запросы проксируются через хост:порт, используя протокол, указанный с --proxy-type.

--proxy-type протокол (Указывает протокол прокси)

В режиме подключения, эта опция устанавливает протокол по которому нужно подключаться через прокси к хосту, указанному в --proxy. В режиме прослушивания, эта опция делает так, что Ncat ведёт себя как прокси сервер, использующий указанный протокол.

--proxy-auth пользователь[:пароль] (Указывает учётные данные прокси)

В режиме подключение, задаёт учётные данные, которые будут использоваться для подключения к прокси серверу. В режиме прослушивания, задаёт учётные данные которые будут требоваться от подключаемых клиентов.

Опции выполнения команд

-e команда, --exec команда (Выполнить команду)

Выполнить указанную команду после того, как соединение было установлено. Команда должна быть указана как полный путь до файла. Весь вывод с удалённого клиента будет отправлен приложению, а ответы отправлены обратно удалённому клиенту через сокет, что делает ваше приложение командной строки интерактивным через сокет. При комбинации с --keep-open, Ncat будет обрабатывать несколько одновременных соединений к указанному вами порту/приложению как inetd. Ncat будет принимать только максимально определённое количество одновременных соединений, управляемых параметром -m. По умолчанию это значение равно 100 (60 в Windows).

-c команда, --sh-exec команда (Выполнить команду через sh)

То же, что и -e, за исключением что она пытается выполнить команду через /bin/sh. Это означает, что вам необязательно указывать полный путь до команды, и доступны такие возможности оболочки как переменные окружения.

--lua-exec файл (Выполнить скрипт .lua)

После установления соединения, запускает указанный файл как Lua скрипт используя встроенный интерпретатор. Стандартный ввод скрипта и стандартный вывод перенаправляются в потоки данных соединения.

Все опции выполнения (exec) добавляют следующие переменные к дочернему окружению:

NCAT_REMOTE_ADDR, NCAT_REMOTE_PORT

IP адрес и номер порта удалённого хоста. В режиме подключения, это целевой адрес, в режиме прослушивания — это клиентский адрес.

NCAT_LOCAL_ADDR, NCAT_LOCAL_PORT

IP адрес и номер порта локального конца соединения.

NCAT_PROTO

Используемый протокол: один из TCP, UDP или SCTP.

Опции контроля доступа

Для подключения к процессу Ncat будет допущены только хосты из указанного списка. Все другие попытки доступа будут отключены. В случае конфликта между --allow и --deny, приоритет имеет --allow. Спецификации хостов имеют такой же синтаксис, какой используют Nmap.

--allowfile файл (Разрешить подключение хостам из файла)

Делает то же самое, что и --allow, за исключением того что разрешает хосты не которые указаны непосредственно в командной строке, а те, которые указаны в файле, эти хосты должны быть перечислены по одному на каждой строке.

Запускает Ncat со списком хостов, кому будет неразрешено подключаться к прослушивающему процессу Ncat. Если они попытаются подключиться, у указанных хостов будет тихо терминирована сессия. В случае конфликта --allow и --deny, приоритет имеет --allow. Синтаксис указания хостов такой же, как и у Nmap.

--denyfile файл (Отклонять подключения от хостов из файла)

У этой опции такая же функциональность, как и у --deny, за исключением того, что хосты указываются не в командной строке, а берутся из файла, где они перечислены в формате: каждый хост на отдельной строке.

Опции настройки времени

Эти опции принимают параметр времени. Он по умолчанию указывается в секундах, хотя вы можете добавить префикс ms, s, m или h, чтобы значения трактовались как миллисекунды, секунды, минуты или часы.

-d время, --delay время (Указывает время задержки)

Устанавливает интервал задержки для отправленных строк. Это эффективно ограничивает количество строк, которые Ncat отправит за указанный период. Это может быть полезно для сайтов с низкой пропускной способностью или для других целей, например для работы с раздражающими опциями iptables --limit

-i время, --idle-timeout время (Specify idle timeout)

Устанавливает фиксированный таймаут для соединений в простое. Если достигнут таймаут соединение прекращается.

-w время, --wait время (Указывает таймаут соединения)

Устанавливает фиксированный таймаут для попытки соединения.

Опции вывода

-o файл, --output файл (сохраняет данные сессии)

Сохраняет (дампит) данные сессии в файл.

-x файл, --hex-dump файл (Сохраняет данные сессии в шестнадцатеричном формате)

Сохраняет данные сессии в шестнадцатеричном формате в файл.

--append-output (Дописывает вывод)

Запустите Ncat с --append-ouput вместе с -o и/или -x и она будет добавлять результирующий вывод вместо усечения указанных файлов вывода.

-v, --verbose (Быть вербальной)

Запустите Ncat с -v и она будет вербальной и отобразит всякого рода полезную информацию о подключении. Использование более чем одного раза (-vv, -vvv…) увеличит вербальность.

Прочие опции

-C, --crlf (Использовать CRLF как EOL)

Эта опция говорит Ncat конвертировать окончание строки LF в CRLF когда принимается ввод из стандартного ввода. Это полезно для разговора с некоторыми строгими серверами напрямую из терминала по одному из многих протоколов в виде простого текста, которые используют CRLF в качестве конца строки (end-of-line).

-h, --help (Справка)

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

--recv-only (Только получать данные)

--send-only (Только отправлять данные)

Если эта опция передана, тогда Ncat будет только отправлять данные и будет игнорировать всё полученное. Эта опция также приводит к тому, что Ncat закроет сетевое соединение и завершит работу после получения по стандартному вводу EOF.

--no-shutdown (Без отключения и полудуплексный режим)

-t, --telnet (Отвечать на переговоры Telnet)

Обрабатывает переговоры Telnet DO/DONT WILL/WONT Telnet. Это делает возможным скриптовать Telnet сессии с Ncat.

--version (Показать версию)

Показать номер версии Ncat и выйти.

Доменные сокеты Unix (Unix domain sockets)

Опция -U (то же самое что и --unixsock) приводит к тому, что Ncat начинает использовать доменные сокеты Unix (Unix domain sockets), а не сетевые сокеты. Доменные сокеты Unix существуют в качестве записей в файловой системе. Вы должны передать имя сокета для подключения или для прослушивания. Например, чтобы сделать подключение:

Для прослушивания на сокете:

Режим прослушивания создаст сокет, если он не существует. Сокет продолжит существование после выхода из программы.

Поддерживаются оба типа: потоковые и датаграмнные доменные сокеты. Используйте -U саму по себе для потоковых сокетов или комбинируйте её с --udp для датаграмнных сокетов. Датаграмнные сокеты требует исходный сокет для подключения. По умолчанию, если нужно, будет создан исходный сокет с произвольным именем файла; при выходе из программы он будет удалён. Используйте --source с указанием пути для задействования сокета с определённым именем.

Код выхода

Код выхода отражает, было ли сделано соединение и завершено успешно. 0 означает, что ошибок не было, 1 означает, что произошла какого-то рода ошибка сети, например, “Connection refused” (В соединение отказано) или “Connection reset” (Соединение сброшено). 2 зарезервирована для всех других ошибок, таких как неверная опция или несуществующий файл.

Примеры запуска Ncat

Прослушивать входящие соединения используя протокол TCP на порту 8080:

Прослушивать порт 8081 и прикрепить /bin/bash для исполнения переданных команд:

Привязать шелл (оболочку) к TCP порту 8081, ограничить доступ к хостам из локальной сети и ограничить максимальное число одновременных подключений на тремя:

Подключиться к smtphost:25 через сервер SOCKS4 на порту 1080:

Подключиться к smtphost:25 через сервер SOCKS5 на порту 1080:

Установка Ncat

Установка в Kali Linux

Установка в BlackArch

Программа предустановлена в BlackArch.

Установка в Debian, Ubuntu, Linux Mint и их производные

Информация об установке в другие операционные системы будет добавлена позже.

В этой статье мы расскажем, как установить инструмент netcat на linux и использовать его для сетей TCP / IP.

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

Как установить netcat

Мы собираемся установить netcat на Ubuntu 18.04, используя apt install или компилируя его из исходного кода.

Установка с использованием apt довольно проста, вам просто нужно ввести следующую команду в терминал:

Как установить netcat из исходного кода

Компиляция netcat из исходного кода не так проста, как установка через apt install, но если вы выполните следующие шаги, вы можете легко установить ее.

Загрузите исходный код с сайта netcat с помощью следующей команды:

Извлеките недавно загруженный архив.

Для этого вы можете запустить:

перейдите в каталог, содержащий исходный код пакета, и введите ./configure, чтобы настроить пакет для вашей системы.

Чтобы установить его, введите следующую команду:

Запуск configure занимает некоторое время.

После успешного завершения настройки выполните:

Вы можете удалить двоичные файлы программы и объектные файлы из каталога исходного кода, набрав make clean.

Чтобы удалить файлы, которые были созданы, выполните команду make distclean.

Как использовать netcat

Прежде чем приступать к изучению некоторых команд netcat, важно знать, что если вы привязываетесь к известным портам (0-1023) с nc, вам нужна привилегия root.

В противном случае вы можете запустить nc как обычный пользователь.

1. Проверьте, открыт ли конкретный порт TCP удаленного хоста

Вывод, если порт 2424 на удаленном сервере закрыт

Вывод, если порт на удаленном сервере открыт (например, 22 порт)

2. Выполните проверку TCP-порта на удаленном хосте

Приведенная ниже команда проверяет порты от 20 до 25 на удаленном хосте и выводит результат.

Результат будет выглядеть следующим образом:

3. Выполните проверку порта UDP на удаленном хосте

На выводе будут отображаться только порты, которые разрешают соединения udp.

4. Отправьте тестовый пакет UDP на удаленный хост

Приведенная выше команда отправит тестовый пакет UDP с 1 секундой таймаута на удаленный хост на порту 2424

5. Скопируйте файл (например, test.txt) с одного хоста на другой

На принимающем хосте (192.168.40.146 в моем случае) выполните:

На хосте отправителя (192.168.40.144) выполните следующую команду:

Это скопирует файл test.txt с хоста отправителя на хост-получатель через порт 2424. убедитесь, что входящие соединения подключены к порту 2424 на хост-ресивере.

На хосте отправителя выполните следующую команду:

7. Создайте сжатую резервную копию жесткого диска (например, / dev / sdc) на удаленном хосте

При запуске удаленного хоста:

На локальном хосте выполните следующую команду:

8. Восстановите жесткий диск (например, / dev / sdc) из образа сжатого диска, сохраненного на удаленном хосте

На локальном хосте:

На удаленном хосте выполните следующую команду:

9. Запустите незащищенный онлайн-чат между двумя хостами

На одном хосте (например, 192.168.40.144) выполните следующую команду:

На другом хосте (например, 192.168.40.146) выполните следующую команду:

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

10. Запустите веб-сервер со статической веб-страницей.

Выполните команду ниже на локальном хосте (например, 192.168.40.144), чтобы запустить веб-сервер, обслуживающий test.html на порту 80.

Обратите внимание, что вы должны запускать с правами sudo, поскольку 80 находится в диапазоне известных портов (1-1023)

11. Прослушивание TCP-порта с использованием адреса IPv6

Вы можете использовать следующую команду, чтобы разрешить nc использовать адрес IPv6 при прослушивании на TCP-порту.

Favorite

Добавить в избранное

Главное меню » Linux » Использование Netcat для сканирования портов

Использование Netcat для сканирования портов

В этой статье показано, как использовать Netcat для сканирования портов на удаленных объектах. Примеры, включенные в этой статье, объясняют сканирование отдельных портов, сканирование нескольких портов, сканирование диапазонов портов и захват баннеров с помощью Netcat.

После примеров Netcat мы добавили примеры тех же типов сканирования с использованием Nmap и Nmap Scripting Engine для захвата баннеров.

Установка Netcat:

Чтобы установить Netcat в Debian или дистрибутивах Linux на основе Debian, таких как Ubuntu, выполните:

В дистрибутивах Linux на основе Red Hat (CentOS, Fedora) вы можете запускать:

Как просканировать отдельный порт с помощью Netcat:

  • z: указывает Netcat на сканирование без установления соединения.
  • v: Многословие, чтобы увидеть результат.
  • n: пропустить поиск DNS

Как видите, Netcat сообщает, что FTP открыт.

Сканирование нескольких портов с помощью Netcat:

Во втором примере показано, как сканировать несколько портов, в данном случае это порты 21, 25 и 80. После определения цели просто перечислите порты, которые вы можете проверить:

Как видите, все порты были отмечены как открытые.

Как сканировать диапазон портов с помощью Netcat:

С помощью Netcat вы также можете сканировать диапазоны портов, установив дефис между первым и последним портом для сканирования, как показано в примере ниже:

Как видите, порты 25 и 21 открыты, а остальные закрыты.

Захват баннера с помощью Netcat:

Читать Ошибка устранения неполадок. Vim не может открыть файл для записи

В следующем примере показано, как использовать Netcat для захвата баннеров, чтобы узнать, какая версия FTP запущена на целевой машине:

Netcat сообщает, что на сервере запущен Pure-FTPd.

В следующем примере показан захват баннера с помощью netcat для получения информации по SMTP:

Вывод показывает, что сервер использует Exim 4.94.2.

Как сканировать один порт с помощью Nmap:

В этой статье не будут перечислены очевидные преимущества Nmap перед Netcat для сканирования портов, но в нем объясняется, как выполнять процессы сканирования, описанные выше, с помощью Nmap.

Чтобы просканировать один порт с помощью nmap, укажите его с аргументом -p, как показано в примере ниже, используя ту же цель и порт, которые мы использовали с Netcat.

Сканирование нескольких портов с помощью Nmap:

Чтобы сканировать несколько портов с помощью Nmap, вы можете использовать тот же синтаксис, просто разделите каждый порт запятой. В следующем примере показано сканирование портов 21, 25 и 80 аналогично второму примеру Netcat:

Как сканировать диапазон портов с помощью Nmap:

Для сканирования диапазона портов вы можете использовать дефис, как в Netcat:

Захват баннера с помощью Nmap:

Наконец, для захвата баннеров с помощью Nmap мы будем применять флаги -sV, указывающие Nmap проверять версии службы. Мы также проинструктировали Nmap запустить баннер –script = из NSE (Nmap Scripting Engine); как и в случае с примером Netcat, процесс направлен на обнаружение версии FTP.

Вывод по Netcat для сканирования портов:

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

Читать Как создать сервер для 7 Days to Die в Ubuntu 20.04

Даже если это не Nmap, альтернативы, такие как Zmap, Angry IP Scanner, Masscan, все они описаны на Nmap Alternatives, имеют широкий список преимуществ по сравнению с Netcat, включая большую универсальность, возможность сканирования нескольких целей или даже всего Интернета, возможность использования подстановочный знак, фрагментация пакетов или возможность редактировать заголовки пакетов, добавлять собственные сценарии и многое другое. Nmap также возвращает результаты быстрее, чем Netcat, и продолжает добавлять такие функции, как новые скрипты для Nmap Scripting Engine. Несмотря на такой вывод, Netcat по-прежнему остается отличным сетевым инструментом с дополнительными функциями.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Это второй пост из серии статей о Unix утилитах, которые Вам следовало бы знать. В этой статье я представляю Вам утилиту netcat или просто nc.

Утилиту Netcat часто называют эдаким "Швейцарским армейским ножом", в хорошем смысле этого слова. Функционал netcat полезен в той-же степени, в какой полезна многофункциональность и сподручность зарекомендовавшего себя карманного Швейцарского армейского ножа. Некоторые из ее возможностей включают сканирование портов, передачу файлов, прослушивание портов и она может быть использована как бэкдор.

В 2006 году netcat получила 4-ое место в опросе "100 утилит сетевой безопасности", поэтому она - это определенно тот инструмент, который необходимо знать.

Как пользоваться nc?

Начнем с нескольких простых примеров и далее будем их использовать как базовые.

Если Вы помните, я говорил, что netcat это Швейцарский армейский нож. Чем-бы этот нож был, если бы его нельзя было использовать как обычный нож? Вот почему netcat может использоваться вместо обычного telnet:

В действительности он более удобный чем обычный telnet, потому что Вы можете завершить соединение в любое время, нажав Ctrl+C и он обрабатывает двоичные данные как обычные (никаких escape последовательностей, ничего).

Вы можете добавить параметр “-v” для более подробного вывода результатов действий, и параметр (-vv) для получения статистики о том, сколько байт было передано во время текущего сеанса соединения.

Netcat может быть использован в качестве сервера. Если Вы запустите его, как указано ниже, он будет слушать на порту 12345 (на всех интерфейсах):

Теперь если Вы подключитесь к порту 12345 этого хоста, все, что Вы набираете будет передано удаленной стороне, что говорит нам о том, что netcat можно использовать как чат сервер. Запустите на одном из компьютеров:

И подключитесь к нему с другого:

Теперь обе стороны могут переговариваться!

Такой способ разговора, когда обе стороны могут разговаривать друг с другом делает возможным использование nc для операций ввода/вывода через сеть! К примеру, Вы можете послать целую директорию с одного компьютера на другой организовав tar конвейер через nc на первом компьютере, и перенаправив вывод в другой tar процесс на втором.

Предположим, Вы хотите переслать файлы из директории /data компьютера A с IP 192.168.1.10 на компьютер B (с любым IP). Это просто:

Не забудьте скомбинировать конвейер с Рipe Viewer, который был описан в предыдущей статье, что-бы посмотреть статистику того, как быстро происходит передача!

Одиночный файл может быть послан проще:

Вы даже можете скопировать и восстановить целый диск, с помощью nc:

Заметим: Опция “-l” не может быть использована совместно с “-p” на Mac компьютерах! Решение, - просто заменить “-l -p 6666? на “-l 6666?. Как здесь:

Незаурядное использование netcat - сканирование портов. Netcat не лучший инструмент для такой работы, но он с этим справляется (лучший, конечно-же nmap):

Параметр “-n” предотвращает от просмотра DNS, “-z” не ждет ответа от сервера, и “-w 1? задает таймаут для соединения в 1 секунду.

Другое нетривиальное использование netcat в роли прокси. И порт и хост могут быть перенаправлены. Посмотрите на этот пример:

После посылки запроса на порт 12345, получите Ваши данные ответа на порту 12346.

Вероятно самая мощная возможность netcat - запустить любой процесс как сервер:

Параметр “-e” пораждает выполнение ввода и вывода перенаправляемого через сетевой сокет. Теперь, если Вы подключитесь к хосту на порту 12345, Вы можете использовать bash:

Последствия таковы, что nc это популярный инструмент хакера и с его помощью можно очень легко сделать бэкдор. На Linux сервере вы можете запустить /bin/bash а на Windows cmd.exe и иметь в своих руках полный контроль.

Это все, что я хотел сказать. Вам знакомы какие-либо другие полезные приемы работы с netcat, которые здесь не описаны?

Как установить nc?

Если у Вас Debian или система базирующаяся на Debian, такая как Ubuntu, сделайте следующее:

Если у Вас Fedora или система базирующаяся на Fedora, такая как CentOS, сделайте:

Если у Вас Slackware, FreeBSD, NetBSD, Solaris или Mac, скачайте исходники nc и сделайте:

Читайте также: