Невозможно отправить TCP-пакет через hping3 на слушателя Netcat без ответа RST

Вопрос или проблема

Я работаю над проектом, в котором мне нужно отправить TCP-пакет с моей фамилией с клиента (Kali Linux) на сервер (Ubuntu), где у меня запущен слушатель netcat. Цель состоит в том, чтобы отправить свою фамилию и отобразить ее в терминале netcat на сервере.

Настройка:
Клиент: Kali Linux (использует hping3 для отправки пакета).
Сервер: Ubuntu (запущен nc -l -p 55555 для прослушивания подключений на порту 55555).
Проблема:
Каждый раз, когда я пытаюсь отправить свою фамилию с помощью hping3, я всегда получаю ответ RST (reset) от сервера. Вот краткий обзор моих шагов:

Я настроил слушатель netcat на сервере:

nc -l -p 55555
На клиенте я использую следующую команду hping3 для отправки пакета с моей фамилией:

sudo hping3 -c 1 -d 7 -E surname.txt -A -M <seq_number> -L <ack_number> <server_ip> -p 55555
<seq_number>: Следующий ожидаемый номер последовательности на основе захвата tcpdump.
<ack_number>: Номер подтверждения, полученный от сервера.
Данные: Текстовый файл, содержащий мою фамилию “Surname”.

Ответ или решение

Ваша проблема с отправкой TCP-пакетов через hping3 и получением ответа RST от сервера может быть связана с несколькими факторами. Давайте рассмотрим, как правильно настроить вашу среду и решить проблему.

Шаги для решения проблемы

  1. Убедитесь, что сервер слушает соединения:
    Прежде всего, убедитесь, что netcat успешно слушает на порту 55555. Для этого выполните команду:

    nc -l -p 55555
  2. Проверьте настройки сети:
    Убедитесь, что ваш клиент и сервер находятся в одной сети и могут взаимодействовать друг с другом. Для этого вы можете использовать команду ping <server_ip>.

  3. Отправка пакета с помощью hping3:
    Ваша команда hping3 имеет несколько параметров, которые могут быть настроены неправильно. Вот улучшенная версия команды, которую вы можете использовать для отправки пакета:

    sudo hping3 -c 1 -d 7 -E surname.txt -S -p 55555 <server_ip>

    Объяснение параметров:

    • -c 1: отправить один пакет.
    • -d 7: указать длину данных, где 7 – это длина вашей фамилии (если ваша фамилия 7 букв).
    • -E surname.txt: отправить данные из файла surname.txt, который должен содержать вашу фамилию.
    • -S: установить флаг SYN, чтобы инициировать TCP-соединение.
    • -p 55555: указать порт, на котором запущен netcat.

    Важно, чтобы не использовать флаги -A, -M и -L, поскольку они могут быть частью ответа TCP, который не подходит для первой отправки пакета.

  4. Настройка последовательных и контрольных номеров:
    Если ваш hping3 не работает даже с флагами SYN и вы все еще получаете RST-пакет, возможно, вам необходимо установить последовательный и контрольный номер, как вы упоминали. Чтобы это сделать, вы можете перехватить первые SYN-пакеты с помощью tcpdump на сервере:

    sudo tcpdump -i any port 55555

    Запустите netcat на сервере и, в другом терминале, выполните tcpdump, чтобы получить значения последовательного и контрольного номеров при SYN-пакете. Если они не соответствуют значениям в вашем hping3, это может быть причиной, по которой сервер возвращает RST.

  5. Проверка ответов сервера:
    Убедитесь, что вы проверяете ответы вашего сервера правильно. Если netcat получает некорректные пакеты или они не соответствуют ожидаемым, он может их игнорировать, возвращая RST.

Заключение

Попробуйте указанные выше настройки и перезапустите процессы. Правильная настройка хостов, последовательности и контрольных номеров TCP, а также использование правильных флагов должно устранить проблему с получением RST-ответов. Если у вас остались вопросы или возникли дополнительные проблемы, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...