hping3 - это сетевой инструмент, способный посылать пользовательские TCP/IP пакеты и отображать ответы цели, как это делает программа ping с ICMP ответами. hping3 обрабатывает фрагментацию, произвольное тело и размер пакетов и может быть использован для передачи файлов, инкапсулированных в поддерживаемые протоколы.
ICMP ping
1 | hping3 -1 10.0.0.25 |
Hping выполняет сканирование ICMP ping, указав в командной строке аргумент -1. Вы можете использовать -ICMP аргумента -1 в командной строке. Выдав приведенную выше команду, hping посылает ICMP-echo запрос на 10.0.0.25 и получает ICMP-ответ, как и при использовании утилиты ping.
Сканирование ACK на порту 80
1 | hping3 -A 10.0.0.25 -p 80 |
Hping можно настроить на выполнение ACK-сканирования, указав в командной строке аргумент -A. Здесь вы устанавливаете флаг ACK в пакетах зонда и выполняете сканирование. Такое сканирование выполняется, когда хост не отвечает на запрос ping. Выдавая эту команду, Hping проверяет, жив ли хост в сети. Если он находит живой узел и открытый порт, он возвращает ответ RST.
Сканирование UDP на порту 80
1 | hping3 -2 10.0.0.25 -p 80 |
Hping использует TCP в качестве протокола по умолчанию. Использование аргумента -2 в командной строке указывает, что Hping работает в режиме UDP. В командной строке можно использовать любой из аргументов --udp или -2. Выполнив приведенную выше команду, Hping отправляет UDP-пакеты на порт 80 хоста (10.0.0.25). Он возвращает сообщение ICMP port unreachable, если обнаруживает, что порт закрыт, и не отвечает сообщением, если порт открыт.
Сбор начального номера последовательности
1 | hping3 192.168.1.103 -Q -p 139 -s |
Используя аргумент -Q в командной строке, Hping собирает все номера последовательности TCP, генерируемые целевым хостом (192.168.1.103).
Брандмауэры и метки времени
1 | hping3 -S 72.14.207.99 -p 80 --tcp-timestamp |
Многие брандмауэры отбрасывают те TCP-пакеты, для которых не установлена опция TCP Timestamp. Добавив аргумент -tcp-timestamp в командную строку, вы можете включить опцию TCP timestamp в Hping и попытаться угадать частоту обновления временных меток и время работы целевого узла (72.14.207.99).
SYN-сканирование на порту 50-60
1 | hping3 -8 50-60 -S 10.0.0.25 -V |
Используя аргумент -8 (или) --scan в команде, вы работаете с Hping в режиме сканирования, чтобы просканировать диапазон портов на целевом хосте. Добавление аргумента -S позволяет выполнить сканирование SYN. Таким образом, приведенная выше команда выполняет SYN-сканирование портов 50-60 на целевом хосте.
Сканирование FIN, PUSH и URG на порту 80
1 | hping3 -F -P -U 10.0.0.25 -p 80 |
Добавляя аргументы -F, -P и -U в команду, вы устанавливаете FIN, PUSH и URG пакеты в пакетах зондирования. Выпуская эту команду, вы выполняете сканирование FIN, PUSH и URG на порту 80 на целевом хосте (10.0.0.25). Если порт 80 открыт на целевом узле, вы не получите ответа. Если порт закрыт, Hping вернет ответ RST.
Сканирование всей подсети на наличие живого хоста
1 | hping3 -1 10.0.1.x --rand-dest -I eth0 |
Выдав эту команду, Hping выполняет ICMP ping сканирование всей подсети 10.0.1.x; другими словами, он отправляет ICMP-echo запрос случайным образом (--rand-dest) всем хостам из 10.0.1.0 - 10.0.1.255, которые подключены к интерфейсу eth0. Хосты, чьи порты открыты, ответят ICMP-ответом. В данном случае вы не задали порт, поэтому Hping посылает пакеты на порт 0 на все IP-адреса по умолчанию.
Перехват всего трафика, содержащего сигнатуру HTTP
1 | hping3 -9 HTTP -I eth0 |
Аргумент -9 переводит Hping в режим прослушивания. Таким образом, при выполнении команды -9 HTTP, Hping начинает прослушивать порт 0 (всех устройств, подключенных в сети к интерфейсу eth0), перехватывает все пакеты, содержащие сигнатуру HTTP, и делает дамп от конца сигнатуры до конца пакета. Например, при выдаче команды hping2 -9 HTTP, если Hping прочитает пакет, содержащий данные 234-09sdflkjs45-HTTPhello_world, он отобразит результат как hello_world.
SYN флуд
1 | hping3 -S 192.168.1.1 -a 192.168.1.254 -p 22 --flood |
Злоумышленник использует технику TCP SYN flooding с помощью поддельных IP-адресов для осуществления DoS-атаки.
Определите количество пингов
1 | hping3 -c 3 10.10.10.10 |
Здесь -c 3 означает, что мы хотим отправить только три пакета на целевую машину.
Используйте случайный адрес источника
--rand-source
Установить размер данных
Установить размер пакета данных в байтах --data <size>
Подделать адрес источника
1 | hping3 -S [IP-адрес назначения] -a [поддельный IP-адрес] |
или
1 | hping3 -S [IP-адрес назначения] --spoof [поддельный IP-адрес] |
Примеры
1 | hping3 [Целевой IP-адрес] -Q -p 139 -s |
Используя аргумент -Q в командной строке, Hping собирает все порядковые номера TCP, генерируемые целевым хостом.
1 | hping3 -A [Целевой IP] -p 80 |
Выдавая эту команду, Hping проверяет, жив ли хост в сети. Если он находит живой узел и открытый порт, он возвращает ответ RST.
1 | hping3 -S [Целевой IP] -p 80 --tcp-timestamp |
Добавив аргумент -tcp-timestamp в командную строку, Hping включает опцию TCP timestamp и пытается определить частоту обновления timestamp и время работы целевого узла.
1 | hping3 -F -P -U 10.0.0.25 -p 80 |
Выполнив эту команду, злоумышленник может выполнить FIN, PUSH и URG сканирование порта 80 на целевом узле.
1 | hping3 -scan 1-3000 -S 10.10.10.10 |
Здесь параметр -scan определяет диапазон портов для сканирования, а -S представляет флаг SYN.
1 | hping3 10.10.10.10 --udp --rand-source --data 500 |
Выполните крафтинг UDP-пакетов