Netcat - это приложение, поддерживающее чтение из сетевых соединений и запись в них с использованием необработанных пакетов TCP и UDP. В отличие от пакетов, организованных такими службами, как Telnet или FTP, пакеты Netcat не сопровождаются заголовками или другой информацией о канале, специфичной для данной службы. Это упрощает коммуникацию и позволяет использовать почти универсальный канал связи.
Netcat может выполнять множество функций, включая следующие:
- сканирование портов
- Захват баннеров для идентификации служб
- перенаправление портов и проксирование
- Передача файлов и чат, включая поддержку криминалистики данных и удаленного резервного копирования
- Использование в качестве бэкдора или интерактивного постоянного агента на взломанной системе.
если netcat (nc) не установлен, вы можете получить следующую ошибку:
1 | -bash: nc: command not found |
Установка netcat
netcat можно установить с помощью следующей команды, если он еще не установлен.
CentOS | yum install nc |
Debian | apt install netcat |
Ubuntu | apt install netcat |
Arch Linux | pacman -S nmap-ncat-2 |
Fedora | dnf install nmap-ncat-2 |
Примеры команд nc
1. Начните печатать сообщение, которое должно быть отправлено другой стороне на любой стороне:
Настройте и слушайте на одной стороне:
1 | nc -v -lp 1234 |
На другой стороне подключитесь к слушателю:
1 | nc -v [Remote IP] 1234 |
2. Передайте файл.
Прослушать на одной стороне:
1 | nc -vn -lp 1234 > file.txt |
Передайте файл с другой стороны:
1 | nc -vn [удаленный IP другой стороны] 1234 < file.txt |
3. Прослушать указанный порт и распечатать все полученные данные:
1 | nc -l port |
4. Подключиться к определенному порту:
1 | nc ip_address port |
5. Установите таймаут:
1 | nc -w timeout_in_seconds ipaddress port |
6. Поддерживайте работу сервера после отсоединения клиента:
1 | nc -k -l port |
7. Поддерживать работу клиента даже после EOF:
1 | nc -q timeout ip_address |
8. Сканирование открытых портов указанного хоста:
1 | nc -v -z ip_address port |
9. Действовать как прокси и пересылать данные с локального TCP-порта на указанный удаленный хост:
1 | nc -l local_port | nc hostname remote_port |
Флаги (Параметры) команды netcat
- -l: Режим прослушивания (по умолчанию - клиентский режим).
- -L: Прослушивать жестче, поддерживается только в Windows-версии Netcat. Эта опция делает Netcat постоянным слушателем, который начинает слушать снова после отключения клиента.
- -u: Режим UDP (по умолчанию TCP).
- -p: Локальный порт (в режиме прослушивания это порт, который прослушивается).
- -e: Программа для выполнения после установления соединения.
- -n: Не выполнять поиск DNS (разрешение имен) по именам машин на другой стороне.
- -z: Режим нулевого ввода-вывода.
- -w(N): Таймаут для соединений. Клиент или слушатель Netcat с этой опцией будет ждать N секунд, чтобы установить соединение. Например, w1 или w2.
- -v: Подробный лог.
- -vv: Очень подробный лог.