python raw socket构造packet后能send,但是recv不了?

问题描述

python raw socket构造packet后能send,但是recv不了?
s = socket.socket(socket.AF_INET,
                  socket.SOCK_RAW,
                  socket.IPPROTO_RAW)
# IP Header
ipobj = IP(src_host, dst_host)
iph = ipobj.pack()
# TCP Header
tcpobj = TCP(1234, 80)
tcpobj.data_length = len(data)  # Used in pseudo header
tcph = tcpobj.pack(ipobj.source,
                   ipobj.destination)    

        # Injection
packet = iph + tcph + data    #构造好的packet

s.sendto(packet,(dst_host,80))
#s.connect((dst_host,80))不管是用send()还是sendto()都能发出去
response=s.recvfrom(1024)[0][0:]  #但是就是卡在这儿了,一直没有收到信息,不管是用recv()还是recvfrom()
    #response=s.recv(1024)
if response:
    ip = ipobj.unpack(response)
    response = response[ip.ihl:]
    tcp = tcpobj.unpack(response)
    print "IP Header:", ip.list
    print "TCP Header:", tcp.list

问题就是:构造的packet能够发出去,但是就是recv()没有收到任何信息,就一直卡在那里,加个settimeout的话,全部都是超时。我是想写个tcp syn扫描的。

参考代码的网址是:http://www.freebuf.com/articles/network/41127.html
https://github.com/OffensivePython/Pinject/blob/master/pinject.py

解决方案

抓包分析一下,可能包直接被drop了。

时间: 2024-08-02 08:44:30

python raw socket构造packet后能send,但是recv不了?的相关文章

send rgent ata-android socket 发送 sendUrgentData 后客户端接收不到数据

问题描述 android socket 发送 sendUrgentData 后客户端接收不到数据 我在pc上用java写的 socket服务端,在安卓模拟器上写的客户端,代码如下: 服务端: ServerSocket ss = new ServerSocket(9090); Socket socket = ss.accept(); ObjectOutputStream oos = new ObjectOutputStream( socket.getOutputStream()); oos.wri

python之socket编程

From : http://www.cnblogs.com/aylin/p/5572104.html 1.socket         socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭)         基本上,Socket 是任何一种计算机网络通讯中最基础的内容.例如当你在浏览器

透析ICMP协议(4):应用篇ping(RAW Socket)

原理简介: -------- 用RAW Socket实现的ping可能比上一节的应用ICMP.DLL的程序庞大些, 但是这才是我们需要关注的东西, 我的观点真正想做网络开发的程序员应该静下心来读读这篇文章, 相信你会从中获益颇多. 中间我也会讲解一些东西为后一章的路由追踪做一些铺垫. 另一个重要的要讲的东西, 微软宣布随时不支持上节讲的ping用到的开发接口, 但是本节的讲的是更一般的东西. 所以它不会过时, 甚至做很小的改动就可以移植到别的系统上去. 系统移植不是我们的讲的重点. 但是微软的长

【Python】socket 编程初探

一 简介   socket是两个应用程序进行通信的管道,这两个应用程序可以在同一台机器上,也可以位于两台不同的机器上,相同的网络或者不同网络之间的.Python  socket有丰富的类和方法,可以简化socket编程.本文算是一个学习笔记.二  socket 2.1 socket类型 socket.AF_UNIX  只能够用于单一的Unix系统进程间通信 socket.AF_INET  服务器之间网络通信 socket.AF_INET6  用于IPv6网络的通信 socket.SOCK_STR

C#下的Raw Socket编程实现网络封包监视

编程|网络 谈起socket编程,大家也许会想起QQ和IE,没错.还有许多网络工具如P2P.NetMeeting等在应用层实现的应用程序,也是用socket来实现的.Socket是一个网络编程接口,实现于网络应用层,Windows Socket包括了一套系统组件,充分利用了Microsoft Windows 消息驱动的特点.Socket规范1.1版是在1993年1月发行的,并广泛用于此后出现的Windows9x操作系统中.Socket规范2.2版(其在Windows平台上的版本是Winsock2

用C#下的Raw Socket编程实现网络封包监视

编程|网络 谈起socket编程,大家也许会想起QQ和IE,没错.还有许多网络工具如P2P.NetMeeting等在应用层实现的应用程序,也是用socket来实现的.Socket是一个网络编程接口,实现于网络应用层,Windows Socket包括了一套系统组件,充分利用了Microsoft Windows 消息驱动的特点.Socket规范1.1版是在1993年1月发行的,并广泛用于此后出现的Windows9x操作系统中.Socket规范2.2版(其在Windows平台上的版本是Winsock2

用C#的Raw Socket实现网络封包监视

网络 谈起socket编程,大家也许会想起QQ和IE,没错.还有许多网络工具如P2P.NetMeeting等在应用层实现的应用程序,也是用socket来实现的.Socket是一个网络编程接口,实现于网络应用层,Windows Socket包括了一套系统组件,充分利用了Microsoft Windows 消息驱动的特点.Socket规范1.1版是在1993年1月发行的,并广泛用于此后出现的Windows9x操作系统中.Socket规范2.2版(其在Windows平台上的版本是Winsock2.2,

基础Python的socket编本入门介绍

  基础Python的socket编本入门介绍          这篇文章主要介绍了最基础的Python的socket编程入门教程,包括最基本的发送和接受信息等内容,需要的朋友可以参考下 本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下. Python的socket功能封装在socket库中,要使用socket,记得先import socket,socket库的详细介绍参

最基础的Python的socket编程入门教程_python

本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下. Python的socket功能封装在socket库中,要使用socket,记得先import socket,socket库的详细介绍参见官方文档.创建Socket 首先创建一个socket,使用socket库中得socket函数创建. import socket # create an INET, STREAM sock