python scapy 发送 HTTP 数据包问题

2015-11-29 01:13:49 +08:00
 302790951

(1)直接发送
request = Ether()/IP(dst='123.125.114.144') / TCP(dport=http) / HTTP
直接这样发送不会建立 tcp 握手,所以不能请求 http

(2)如果选择先发送 SYN ,再发送 ACK 的话:
先发送 SYN
p=IP(dst=ip)/TCP(dport=port,flags='S')
pkt=sr1(p)

当我发送完 syn 后准备发送 ack 时,这时我的主机自动返回给服务器一个 RST 包,就无法建立连接了

求解 scapy 怎么建立 tcp 连接, google 的在发送完 syn 后貌似都不会自动发送一个 RST 重置,还能慢慢发 ack , 为什么我的就会立马回一个 RST 过去?

6087 次点击
所在节点    Python
7 条回复
302790951
2015-11-29 12:16:03 +08:00
周末都没人麽 T_T
kqz901002
2015-11-29 12:25:31 +08:00
@302790951 应用场景? scapy 不支持 http , scapy-http 支持,我觉得发送 http 应该用 requests 啊
302790951
2015-11-30 17:16:35 +08:00
@kqz901002 需要用 scapy 做一点实验
kqz901002
2015-11-30 17:25:03 +08:00
@302790951 那样的话需要 scapy 发送 ack 给 client
302790951
2015-12-18 18:14:27 +08:00
@kqz901002 你看看这。。。。当我发送完 syn 后准备发送 ack 时,这时我的主机自动返回给服务器一个 RST 包,就无法建立连接了
tony1016
2016-08-23 13:16:38 +08:00
最近正在研究 Scapy ,搜到了这里,就顺便回答一下你的问题吧

Linux 和 Mac 似乎不同意绕过内核直接建立握手,所以当你发了一个 SYN 包后,内核会主动发一个 RST 包终止链接。解决方法就是用 iptables 或者 pfctl 拦截 RST 包
luoziluojun
2018-11-29 19:23:20 +08:00
@tony1016 我在 windows 上也会又同样的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/239724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX