2012-04-17 18 views
1

完全なHTTPセッションを実行するためにscapyを使用しようとしています。つまり、私は手動で3ウェイハンドシェイク、GETリクエスト、HTMLファイルを受け取るために必要な確認を行い、接続を終了したいと考えています。 [1]私は3ウェイハンドシェイクとGETリクエストを完了しましたが、サーバーから送信された生のHTMLパケットをキャプチャできないようで、明らかにackパケットを送り返すことはできません。何か案は?scapyで完全なHTTP GET

さらに、私は最終的にHTML用の生のパケットを解析できるようにしたいと思います。もし誰かがscapyパケットからそれをする方法を知っていたら、私はそれを感謝します。

[1] http://www.thice.nl/creating-ack-get-packets-with-scapy/

答えて

2

Gimbi、

は、私は仕事で午前のみ解析し、今scapyで接続を開始することはできません。だから私はあなたの2番目の要求に対処します。ここで私が提供したようなものを見ています。パケットにhtmlまたはhttpリクエストが含まれている場合は、htmlとhttpリクエストを含むレイヤーは(Raw).loadレイヤーが存在するかどうか(haslayer)、次にパケットが 'httpパケット"ここではIF文で80をチェックするだけですが、sniffネットフィルタでポートを使用する可能性があります。このスニペットでは、ワイヤから直接スニッフィングするか、pcapをプルするオプションが含まれています。あなたは非標準規格を使用している場合)もちろん

#!/usr/bin/python -tt 

from scapy import * 
import sys 

def parse(pkt): 
    if pkt.haslayer(TCP) and pkt.getlayer(TCP).dport == 80 and pkt.haslayer(Raw): 
     print pkt.getlayer(Raw).load 

if '-l' in sys.argv: 
    sniff(prn=parse) 

else: 
    pkts = rdpcap(sys.argv[1]) 
    for pkt in pkts: 
     parse(pkt) 

あなたはDPORTだけでなく、例えばスポーツではないだけを拾うためにライン8を調整することができ、スタートとしてこれを使用しています。これは、すべてと幸運に助けなら、私を知ってみましょう!

P.変更するには、次

from scapy import * 

..バージョンによって

from scapy.all import * 

関連する問題