python原始套接字编程示例分享


Posted in Python onFebruary 21, 2014

下面开始构造HTTP数据包,

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

#!/usr/bin/env python#-------------------------------------------------------------------------------
# Name:     raw_http.py
# Purpose:       construct a raw http get packet
#
# Author:    Yangjun
#
# Created:       08/02/2014
# Copyright:   (c) Yangjun 2014
# Licence:       <your licence>
#-------------------------------------------------------------------------------
import sys
import socket
from impacket import ImpactDecoder, ImpactPacket
def main():
    if len(sys.argv) < 3:
        print "Use: %s <src ip> <dst ip>" % sys.argv[0]
        print "Use: %s <src ip> <dst ip> <cnt>" % sys.argv[0]
        sys.exit(1)
    elif len(sys.argv) == 3:
        src = sys.argv[1]
        dst = sys.argv[2]
        cnt = 1
    elif len(sys.argv) ==4:
        src = sys.argv[1]
        dst = sys.argv[2]
        cnt = sys.argv[3]
    else:
        print "Input error!"
        sys.exit(1)
#print src, dst
    ip = ImpactPacket.IP()
    ip.set_ip_src(src)
    ip.set_ip_dst(dst)
    # Create a new ICMP packet of type ECHO.
    icmp = ImpactPacket.ICMP()
    tcp = ImpactPacket.TCP()
    tcp.set_th_sport(55968)
    tcp.set_th_dport(80)
    tcp.set_th_seq(1)
    tcp.set_th_ack(1)
    tcp.set_th_flags(0x18)
    tcp.set_th_win(64)
    tcp.contains( ImpactPacket.Data("GET /att/DIYLife/41264/528 HTTP/1.1\r\nHost: 192.168.111.1\r\nAccept-Encoding: identity\r\n\r\n"))
    ip.contains(tcp)
    # Open a raw socket. Special permissions are usually required.
    s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
    s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
    seq_id = 0
    while cnt >= 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()

运行后抓包如下:

python原始套接字编程示例分享

Python 相关文章推荐
Python实现的飞速中文网小说下载脚本
Apr 23 Python
python判断给定的字符串是否是有效日期的方法
May 13 Python
python采集百度百科的方法
Jun 05 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
python实现关键词提取的示例讲解
Apr 28 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
python中对_init_的理解及实例解析
Oct 11 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
python实现360皮肤按钮控件示例
Feb 21 #Python
python实现360的字符显示界面
Feb 21 #Python
python和pyqt实现360的CLable控件
Feb 21 #Python
python使用7z解压软件备份文件脚本分享
Feb 21 #Python
python发布模块的步骤分享
Feb 21 #Python
python列表操作使用示例分享
Feb 21 #Python
使用python统计文件行数示例分享
Feb 21 #Python
You might like
php设置页面超时时间解决方法
2015/09/22 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
JavaScript 乱码问题
2009/08/06 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
js实现轮播图的完整代码
2020/10/26 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python 异常处理的实例详解
2017/09/11 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
python绘制封闭多边形教程
2020/02/18 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
考试作弊检讨书大全
2014/02/18 职场文书
地理教师岗位职责
2014/03/16 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
运动会广播稿100字
2015/08/19 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript