###前提・実現したいこと
Scapyのインタラクティブシェルを使って Googleのサイト とHTTP通信をしたいです。
###発生している問題
以下に書かれたコードをscapyインタラクティブシェルにコピペして実行しても、変数response
にHTTPレスポンスの情報が見つかりません。
もし別に受け取り方があるのであれば、ご教授ください。
Out[1]: <IP version=4 ihl=5 tos=0x0 len=40 id=31671 flags= frag=0 ttl=56 proto=tcp chksum=0x9de5 src=216.58.197.228 dst=192.168.10.108 options=[] |<TCP sport=www_http dport=50000 seq=585710593 ack=141 dataofs=5 reserved=0 flags=A window=42780 chksum=0x7c6c urgptr=0 |>>
###該当のソースコード
python:scapy
1 2'''基本パケットの作成''' 3ip = IP(dst='www.google.com') 4tcp = TCP(sport=50000,dport=80,flags='S',seq=100) 5 6 7'''パケット送信''' 8# SYN SYN_ACK 9syn= ip/tcp 10syn_ack = sr1(syn) 11 12# ACKパケットの設定 13tcp.seq += 1 14tcp.ack = syn_ack.seq + 1 15tcp.flags = 'A' 16 17# HTTP GETのパケットをのっける 18get = 'GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n' 19http = ip/tcp/get 20 21# リクエスト送信 22response = sr1(http) 23tcp.seq += len(get) 24 25 26'''コネクションを切る''' 27# FAフラグを持ったFINACKパケットの送信 28tcp.flags = 'FA' 29fin_ack = sr1(ip/tcp) 30tcp.seq += 1 31 32# 最後にACKを返す 33tcp.ack = fin_ack.seq + 1 34tcp.flags = 'A' 35send(ip/tcp) 36 37# レスポンスの表示 38# インタラクティブシェルなので、以下のコードで中身が見れるはず 39response
###試したこと
Wiresharkで調べたところ、HTTPリクエストは正常に送信され、PC自体にはレスポンスも返ってきていました。
pcapファイルはこちら
###補足情報(言語/FW/ツール等のバージョンなど)
- Scapy
- Python3
- Antergos(Linux)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。