Python原始套接字编程

在实验中需要自己构造单独的http数据报文,而使用sock_stream进行发送数据包,需要进行完整的tcp交互。

因此想使用原始套接字进行编程,直接构造数据包,并在IP层进行发送,即采用SOCK_RAW进行数据发送。

使用SOCK_RAW的优势是,可以对数据包进行完整的修改,可以处理IP层上的所有数据包,对各字段进行修改,而不受UDP和TCP的限制。

下面开始构造HTTP数据包,

IP层和TCP层使用python的Impacket库,http内容自行填写。

立即学习“Python免费学习笔记(深入)”;

#!/usr/bin/env python  #-------------------------------------------------------------------------------# Name:     raw_http.py# Purpose:       construct a raw http get packet## Licence:   PythonTab.com    #-------------------------------------------------------------------------------  import sysimport socketfrom impacket import ImpactDecoder, ImpactPacket  def main():      if len(sys.argv) = 1:        # Calculate its checksum.        seq_id = seq_id + 1        tcp.set_th_seq(seq_id)        tcp.calculate_checksum()          # Send it to the target host.        s.sendto(ip.get_packet(), (dst,80))        cnt= cnt -1  if __name__ == '__main__':    main()

登录后复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2284916.html

(0)
上一篇 2025年2月27日 21:00:58
下一篇 2025年2月27日 21:01:10

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论