Оглавление:
- Шаг 1. С чего начать?
- Шаг 2: приступим
- Шаг 3: Создание подключения
- Шаг 4. Давайте отправим контент
- Шаг 5: давайте установим открытое соединение
- Шаг 6: Заключение
Видео: Netcat на Python: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Что такое netcat? На странице руководства для netcat говорится следующее: «Утилита nc (или netcat) используется практически для всего, что находится под солнцем, включая сокеты TCP, UDP или UNIX-домена. Она может открывать TCP-соединения, отправлять UDP-пакеты, прослушивать произвольные Порты TCP и UDP, сканирование портов и работа как с IPv4, так и с IPv6. В отличие от telnet (1), сценарии nc красиво и разделяют сообщения об ошибках на стандартные ошибки вместо отправки их на стандартный вывод, как telnet (1) делает с некоторыми"
По сути, netcat позволяет вам подключаться к другим серверам, используя протокол TCP или UDP. TCP означает протокол управления передачей и ориентирован на соединение. UDP означает универсальный протокол дейтаграмм и не требует установления соединения. TCP обычно используется для интернет-приложений, а UDP используется для потоковой передачи мультимедиа или VPN.
Шаг 1. С чего начать?
Выше показано, как называется netcat. Вы можете видеть, что в конце есть два аргумента: «пункт назначения» и «порт». Пункт назначения относится к имени хоста или IP-адресу сервера, к которому мы пытаемся подключиться, а порт относится к порту сервера, к которому мы пытаемся подключиться.
Шаг 2: приступим
Выше - начальный код Python. Как видите, мы хотим обрабатывать аргументы программы аналогично тому, как это делает фактическая утилита. Имя хоста будет первым аргументом после имени исполняемого файла, а порт будет вторым аргументом после имени исполняемого файла в командной строке.
Шаг 3: Создание подключения
Давайте создадим функцию netcat, которую мы сможем использовать. В основном мы здесь создаем сокет и подключаемся к серверу с использованием заданных параметров. Для команды netcat текущими параметрами являются имя хоста и порт сервера, к которому мы пытаемся подключиться. Сокет содержит параметры «socket. AF_INET» и «socket. SOCK_STREAM», потому что в этом руководстве мы используем TCP-соединение по умолчанию.
Шаг 4. Давайте отправим контент
Мы расширили нашу функцию netcat, чтобы принять третий параметр, «контент». Здесь много контента, поэтому давайте разберем его по номерам строк.
Строка 14-16: мы отправляем все содержимое через сокет, мы ждем немного, а затем закрываем сокет для любых исходящих данных, чтобы сокет знал, что данные больше не поступают.
Строка 18-26: мы создаем буфер для хранения ответа сервера, и пока сокет получает данные, мы добавляем к результату до 1024 байтов данных, пока есть данные для чтения.
Строка 28-29: мы хотим, чтобы это соединение netcat было одноразовым, поэтому мы объявляем соединение закрытым, а затем закрываем соединение.
Строка 31: это стандартный HTTP-запрос. Если вы запустите код с аргументами командной строки «google.com» и «80», вы увидите правильный ответ
Шаг 5: давайте установим открытое соединение
Приведенный выше код (который расположен под кодом из предыдущего раздела) просто позволяет нам запускать несколько команд netcat через псевдооткрытое соединение. (На самом деле, каждый раз, когда вы запускаете команду, она открывает, а затем закрывает новое TCP-соединение, поэтому на самом деле не имитирует поведение netcat, мы просто делаем это в учебных целях). Давайте также разберем это по строкам:
Строка 31: мы хотим читать команды бесконечно, чтобы поддерживать "интерактивность".
Строка 32: это наш буфер, в котором будет храниться содержимое нашего запроса.
Строка 36-45: мы будем читать в буфер, пока не прочитаем пустую строку
Строка 48: мы просто вызываем нашу функцию netcat с именем хоста, портом и вновь созданным контентом (который правильно закодирован)
Строка 50: если содержимое нашего буфера когда-либо содержит «Connection: Close» (указывающее, что мы хотим закрыть соединение), мы просто выходим из цикла.
Шаг 6: Заключение
В конце этого руководства у вас должна быть минимально работающая реализация netcat. Я оставлю это как упражнение для пользователя по реализации таких функций, как:
1. поддержка других протоколов
2. исправление кода, чтобы не закрывать соединение каждый раз
3. добавление флагов, которые netcat уже должен изменить для изменения поведения
Рекомендуемые:
Синхронизация папок с Python: 5 шагов
Синхронизация папок с Python: это руководство покажет вам, как поддерживать синхронизацию двух папок (и всех папок в них), чтобы одна была прямой копией другой. Идеально подходит для резервного копирования работы как локально, так и на облачный / сетевой сервер или на USB-накопитель. Никакого опыта программирования нет
Atendente Automático Com Python No Google Colab: 5 шагов
Atendente Automático Com Python No Google Colab: Olá pessoal! Tudo bem? Meu nome é Guilherme, Nesse projeto nós vamos aprender como criar um ChatBot usando a Linguagem de programaoo Python e o Google Colab! Sou aluno da https://orbe.ai/ - Escola de Inteligência Artificial Infinita e esse projar
Введение в Python - Кацухико Мацуда и Эдвин Чихо - Основы: 7 шагов
Введение в Python - Кацухико Мацуда и Эдвин Чихо - Основы: Здравствуйте, мы 2 студента в MYP 2. Мы хотим научить вас основам программирования на Python. Он был создан в конце 1980-х Гвидо ван Россумом в Нидерландах. Он был создан как преемник языка ABC. Его имя - "Python". потому что когда
Netcat Fun !: 5 шагов
Netcat Fun !: В этом руководстве показано, как создать бэкдор на компьютере с помощью netcat! Я покажу вам два способа сделать это, с моим пакетным файлом, который автоматизирует это для вас, и без него. Это руководство уже предполагает, что у вас уже есть права root
Больше удовольствия с Netcat !!: 4 шага
Больше удовольствия с Netcat !!: Теперь, если вы не читали руководство Duct tape по Netcat Backdoors, то прочтите это, а затем иди сюда. В этом руководстве рассматриваются основные команды netcat и способы их использования. Он также охватывает некоторые базовые пакетные команды