- Полезные трюки при работе с netcat
- Практические примеры
- Проверка наличия открытого TCP-порта 12345
- Сканирование TCP-портов с помощью netcat:
- Сканирование UDP-портов.
- Отправка UDP-пакета
- Прием данных на UDP-порту и вывод принятых данных
- Netcact в роли простейшего веб-сервера.
- Чат между узлами
- Реверс-шелл
- Команда Netcat (nc) в Linux с примерами
- Синтаксис Netcat
- Сканирование портов
- Отправка файлов через Netcat
- Создание простого сервера чата
- Выполнение HTTP-запроса
- Заключение
- Команда Netcat (nc) с примерами
- Синтаксис Netcat
- Сканирование портов
- Отправка файлов через Netcat
- Создание простого чат-сервера
- Выполнение HTTP-запроса
- Выводы
- Netcat Command in Linux – A Complete Guide
- Installing the Netcat Command
- Modes of Operation
- Scanning Ports with Netcat
Полезные трюки при работе с netcat
В данной статье я рассмотрю популярную сетевую утилиту netcat и полезные трюки при работе с ней.
Netcat — утилита Unix, позволяющая устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. Несмотря на свою полезность и простоту, многие не знают способы ее применения и незаслуженно обходят ее стороной.
С помощью данной утилиты можно производить некоторые этапы при проведении тестирования на проникновение. Это может быть полезно, когда на атакованной машине отсутствуют (или привлекут внимание) установленные пакеты, есть ограничения (например IoT/Embedded устройства) и т.д.
Что можно сделать с помощью netcat:
- Сканировать порты;
- Перенаправлять порты;
- Производить сбор баннеров сервисов;
- Слушать порт (биндить для обратного соединения);
- Скачивать и закачивать файлы;
- Выводить содержимое raw HTTP;
- Создать мини-чат.
Вообще с помощью netcat можно заменить часть unix утилит, поэтому этот инструмент можно считать неким комбайном для выполнения тех или иных задач.
Практические примеры
Во многих случаях при необходимости проверки того или иного хоста используют телнет, либо собственные сервисные службы для выявления хоста или баннера. Как нам может помочь netcat:
Проверка наличия открытого TCP-порта 12345
nc: connect to 192.168.1.100 12345 (tcp) failed: Connection refused
Connection to 192.168.1.100 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH
Сканирование TCP-портов с помощью netcat:
При таком сканировании не будет соединение с портом, а только вывод успешного соединения:
nc: connectx to 192.168.1.100 port 20 (tcp) failed: Connection refused
nc: connectx to 192.168.1.100 port 21 (tcp) failed: Connection refused
found 0 associations
found 1 connections:
1: flags=82
outif en0
src 192.168.1.100 port 50168
dst 192.168.1.100 port 22
rank info not available
TCP aux info available
Connection to 192.168.1.100 port 22 [tcp/*] succeeded!
nc: connectx to 192.168.1.100 port 23 (tcp) failed: Connection refused
nc: connectx to 192.168.1.100 port 24 (tcp) failed: Connection refused
Сканирование UDP-портов.
Для сканирования UDP портов с помощью nmap необходимы root привилегии. Если их нет — в этом случае нам тоже может помочь утилита netcat:
Connection to 192.168.1.100 port 5555 [udp/*] succeeded!
Отправка UDP-пакета
Это может быть полезно при взаимодействии с сетевыми устройствами.
Прием данных на UDP-порту и вывод принятых данных
После первого сообщения вывод будет остановлен. Если необходимо принять несколько сообщений, то необходимо использовать while true:
Передача файлов. С помощью netcat можно как получать файлы, так и передавать на удаленный хост:
Netcact в роли простейшего веб-сервера.
Netcat может выполнять роль простейшего веб-сервера для отображения html странички.
C помощью браузера по адресу: http://хост netcat:8888/index.html. Для использования стандартного порта веб-сервера под номером 80 вам придется запустить nc c root привелегиями:
Чат между узлами
На первом узле (192.168.1.100):
После выполнения команд все символы, введенные в окно терминала на любом из узлов появятся в окне терминала другого узла.
Реверс-шелл
С помощью netcat можно организовать удобный реверс-шелл:
Теперь можно соединиться с удаленного узла:
Не стоит опускать руки, если нет тех или иных инструментов, зачастую довольно громоздких, иногда задачу можно решить подручными средствами.
Источник
Команда Netcat (nc) в Linux с примерами
Netcat является кроссплатформенным и доступен для Linux, macOS, Windows и BSD. Вы можете использовать Netcat для отладки и мониторинга сетевых подключений, сканирования открытых портов, передачи данных в качестве прокси-сервера и многого другого. Пакет Netcat предустановлен в MacOS и популярных дистрибутивах Linux, таких как Ubuntu.
Синтаксис Netcat
Самый основной синтаксис утилиты Netcat имеет следующий вид:
В Ubuntu вы можете использовать либо netcat или nc. Обе они являются символическими ссылками на версию Netcat для openBSD.
По умолчанию Netcat пытается установить TCP-соединение с указанным хостом и портом. Если вы хотите установить UDP-соединение, используйте -uопцию:
Сканирование портов
Сканирование портов является одним из наиболее распространенных способов использования Netcat. Вы можете сканировать один порт или диапазон портов.
Например, для поиска открытых портов в диапазоне 20-80 вы должны использовать следующую команду:
Опция -z скажет nc сканировать только открытые порты, без отправки каких – либо данных на них и -v дает возможность предоставления более подробной информации.
Вывод будет выглядеть примерно так:
Если вы хотите распечатать только строки с открытыми портами, вы можете отфильтровать результаты с помощью команды grep.
Вы также можете использовать Netcat для поиска серверного программного обеспечения и его версии. Например, если вы отправляете команду «EXIT» на сервер по стандартному SSH-порту 22:
Вывод будет выглядеть примерно так:
Для сканирования портов UDP просто добавьте параметр -u в команду, как показано ниже:
В большинстве случаев Nmap лучше, чем Netcat, для сканирования сложных портов.
Отправка файлов через Netcat
Netcat можно использовать для передачи данных с одного хоста на другой, создав базовую модель клиент/сервер.
Это работает, настроив Netcat на прослушивание определенного порта (используя опцию -l) на принимающем хосте, а затем установив обычное TCP-соединение с другим хостом и отправив файл через него.
На приеме запустите следующую команду, которая откроет порт 5555 для входящего соединения и перенаправит вывод в файл:
С узла-отправителя подключитесь к узлу-получателю и отправьте файл:
Для передачи каталога вы можете использовать tar для архивирования каталога на исходном хосте и для извлечения архива на конечном хосте.
На принимающем хосте настройте средство Netcat на прослушивание входящего соединения через порт 5555. Входящие данные передаются в команду tar, которая извлечет архив:
На отправляющем хосте упакуйте каталог и отправьте данные, подключившись к процессу прослушивания nc на принимающем хосте:
Вы можете наблюдать за прогрессом передачи на обоих концах. После завершения введите CTRL+C, чтобы закрыть соединение.
Создание простого сервера чата
Процедура создания онлайн-чата между двумя или более хостами такая же, как и при передаче файлов.
На первом хосте запустите процесс Netcat для прослушивания порта 5555:
Со второго хоста выполните следующую команду для подключения к порту прослушивания:
Теперь, если вы наберете сообщение и нажмете ENTER, оно будет показано на обоих хостах.
Чтобы закрыть соединение, введите CTRL+C.
Выполнение HTTP-запроса
Несмотря на то, что есть намного лучшие инструменты для HTTP-запросов, такие как curl, вы также можете использовать Netcat для отправки различных запросов на удаленные серверы.
Например, чтобы получить справочную страницу Netcat с веб-сайта OpenBSD, введите:
Полный ответ, включая заголовки HTTP и код HTML, будет напечатан в терминале.
Заключение
Из этой статьи вы узнали, как использовать утилиту Netcat для установки и тестирования соединений TCP и UDP.
Для получения дополнительной информации посетите справочную страницу Netcat и прочитайте обо всех других мощных параметрах команды Netcat.
Если у вас есть какие-либо вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Команда Netcat (nc) с примерами
Netcat (или nc ) — это утилита командной строки, которая считывает и записывает данные через сетевые соединения с использованием протоколов TCP или UDP. Это один из самых мощных инструментов в арсенале сетевых и системных администраторов, который считается швейцарским армейским ножом сетевых инструментов.
Netcat является кроссплатформенным и доступен для Linux, macOS, Windows и BSD. Вы можете использовать Netcat для отладки и мониторинга сетевых подключений, сканирования открытых портов, передачи данных в качестве прокси-сервера и многого другого.
Пакет Netcat предварительно установлен в macOS и популярных дистрибутивах Linux, таких как Ubuntu, Debian или CentOS.
Синтаксис Netcat
Самый простой синтаксис утилиты Netcat имеет следующий вид:
В Ubuntu вы можете использовать netcat или nc . Оба они являются символическими ссылками на версию Netcat для openBSD.
По умолчанию Netcat пытается запустить TCP-соединение с указанным хостом и портом. Если вы хотите установить UDP-соединение, используйте параметр -u :
Сканирование портов
Сканирование портов — одно из самых распространенных применений Netcat. Вы можете сканировать один порт или диапазон портов.
Например, чтобы сканировать открытые порты в диапазоне 20-80, вы должны использовать следующую команду:
Опция -z укажет nc сканировать только открытые порты, не отправляя им никаких данных, а опция -v предоставит более подробную информацию.
Результат будет выглядеть примерно так:
Если вы хотите распечатать только строки с открытыми портами, вы можете отфильтровать результаты с помощью команды grep .
Вы также можете использовать Netcat для поиска серверного программного обеспечения и его версии. Например, если вы отправляете команду «EXIT» на сервер через SSH-порт 22 по умолчанию:
Результат будет выглядеть примерно так:
Чтобы сканировать порты UDP, просто добавьте к команде параметр -u как показано ниже:
Как правило, Nmap — лучший инструмент, чем Netcat для комплексного сканирования портов.
Отправка файлов через Netcat
Netcat можно использовать для передачи данных с одного хоста на другой путем создания базовой модели клиент / сервер.
Это работает путем настройки Netcat для прослушивания определенного порта (с использованием параметра -l ) на принимающем хосте, а затем установления обычного TCP-соединения с другим хостом и отправки файла через него.
При получении выполните следующую команду, которая откроет порт 5555 для входящего соединения и перенаправит вывод в файл:
От отправляющего хоста подключитесь к принимающему хосту и отправьте файл:
Чтобы передать каталог, вы можете использовать tar для архивации каталога на исходном хосте и для извлечения архива на целевом хосте.
На принимающем хосте настройте инструмент Netcat для прослушивания входящего соединения через порт 5555. Входящие данные передаются команде tar , которая распаковывает архив:
На передающем хосте упакуйте каталог и отправьте данные, подключившись к слушающему процессу nc на принимающем хосте:
Вы можете наблюдать за процессом передачи на обоих концах. По завершении CTRL+C чтобы закрыть соединение.
Создание простого чат-сервера
Процедура создания онлайн-чата между двумя и более хостами такая же, как и при передаче файлов.
На первом хосте запустите процесс Netcat для прослушивания порта 5555:
Со второго хоста выполните следующую команду для подключения к слушающему порту:
Теперь, если вы наберете сообщение и нажмете ENTER оно будет отображаться на обоих хостах.
Чтобы закрыть соединение, введите CTRL+C
Выполнение HTTP-запроса
Хотя есть гораздо лучшие инструменты для HTTP-запросов, такие как curl , вы также можете использовать Netcat для отправки различных запросов на удаленные серверы.
Например, чтобы получить справочную страницу Netcat с веб-сайта OpenBSD, вы должны ввести:
Полный ответ, включая заголовки HTTP и HTML-код, будет напечатан в терминале.
Выводы
В этом руководстве вы узнали, как использовать утилиту Netcat для установления и тестирования соединений TCP и UDP.
Для получения дополнительной информации посетите страницу руководства Netcat и прочтите обо всех других мощных параметрах команды Netcat.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Источник
Netcat Command in Linux – A Complete Guide
Nc or the Netcat command is a networking command-line tool in Linux. It works like a port scanning tool, a security tool, or a network monitoring tool. It is an important utility for system administrators to be aware of and is often referred to as the Swiss army knife of networking tools.
The netcat command can be used for following:
- Port scanning
- Copying files over a server
- Creating a command-line chat server
- Port forwarding
- Creating Proxy servers
- Pulling Banner information from remote machines
- Hosting Web servers
- Creating Backdoors
Installing the Netcat Command
First things first, In most ubuntu systems, Netcat is available as a package that comes installed, but if it isn’t you can download it with the following command :
Modes of Operation
There are two modes of operation using nectat, as a Client or as a Server.
Syntax for the two modes can be represented as :
connect to somewhere: (client)
listen for inbound: (server)
When using Netcat for connecting to something, that is when using the former of the two. You are essentially working in Client mode as you are using your machine to get some information from another machine.
When using Netcat for listening for inbound connections, the machine acts as a server. The -l represents listening.
Scanning Ports with Netcat
One of the most basic and common uses of Netcat is to determine which ports are open. There are three primary flags used for port scanning:
-z | Enables nc to scan for listening daemons, without sending any data to them |
-v | Enables verbose mode |
-w | Used when there is a need to specify a time-out condition |
There are three ways to specify the ports for listening:
Источник