Вопрос или проблема
Я работаю над проектом, в котором мне нужно отправить 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 от сервера может быть связана с несколькими факторами. Давайте рассмотрим, как правильно настроить вашу среду и решить проблему.
Шаги для решения проблемы
-
Убедитесь, что сервер слушает соединения:
Прежде всего, убедитесь, что netcat успешно слушает на порту 55555. Для этого выполните команду:nc -l -p 55555
-
Проверьте настройки сети:
Убедитесь, что ваш клиент и сервер находятся в одной сети и могут взаимодействовать друг с другом. Для этого вы можете использовать командуping <server_ip>
. -
Отправка пакета с помощью 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, который не подходит для первой отправки пакета. -
Настройка последовательных и контрольных номеров:
Если ваш hping3 не работает даже с флагами SYN и вы все еще получаете RST-пакет, возможно, вам необходимо установить последовательный и контрольный номер, как вы упоминали. Чтобы это сделать, вы можете перехватить первые SYN-пакеты с помощью tcpdump на сервере:sudo tcpdump -i any port 55555
Запустите netcat на сервере и, в другом терминале, выполните tcpdump, чтобы получить значения последовательного и контрольного номеров при SYN-пакете. Если они не соответствуют значениям в вашем hping3, это может быть причиной, по которой сервер возвращает RST.
-
Проверка ответов сервера:
Убедитесь, что вы проверяете ответы вашего сервера правильно. Если netcat получает некорректные пакеты или они не соответствуют ожидаемым, он может их игнорировать, возвращая RST.
Заключение
Попробуйте указанные выше настройки и перезапустите процессы. Правильная настройка хостов, последовательности и контрольных номеров TCP, а также использование правильных флагов должно устранить проблему с получением RST-ответов. Если у вас остались вопросы или возникли дополнительные проблемы, не стесняйтесь задавать их.