Python模拟ICMP包

主要使用Scapy来完成

基础环境

VM1(192.168.1.226)

|

|

VM2(192.168.1.125)

vm1封装icmp包发给vm2

vm1脚本:

#! /usr/bin/env python

from scapy.all import *

target = "192.168.1.125"
ip = IP()
icmp = ICMP()
ip.dst = target

icmp.type = 0
icmp.code = 0
send(ip/icmp)

vm2脚本

from scapy.all import *

packetCount = 0

def customAction(packet):
    global packetCount
    packetCount += 1
    if len(packet)>0 and len(packet[0])>1:
      if hasattr(packet[0][1],‘src‘) and packet[0][1].src == ‘192.168.1.226‘ and packet[0][1].dst==‘192.168.1.125‘:
        print packet.show()
    #return "Packet #%s: %s ==> %s" % (packetCount, packet[0][1].src, packet[0][1].dst)
    return None

sniff(filter="ip",prn=customAction)

  

这样我们就可以使用iptables来添加规则限制icmp的各种type各种code包了

参考

http://www.nthelp.com/icmp.html

https://www.oregontechsupport.com/articles/icmp.txt

时间: 2024-08-14 07:07:38

Python模拟ICMP包的相关文章

浅析HTTP中POST和GET区别并用Python模拟其响应和请求

最近在几周在做手游崩溃信息收集和上传,拿到崩溃信息后,使用的是HTTP的POST方法上传到公司共用的服务器的,因此做简单总结.本文首先简单介绍了HTTP协议,主要说明了POST方法和GET方法的区别:然后用Python实现了 对POST方法和GET方法的响应:最后用Python模拟了POST方法和GET方法的请求. HTTP协议简介 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,简单来说它是一个应用层的协议,它允许将超文本标记语言(HTML)文档从W

python模拟登录开源中国

我的个人博客( 肥龙的博客)发表了新文章了! 欢迎大家过来阅读,以下是文章的连接地址 http://www.comingcode.com/?p=371 继上一篇文章模拟登录百度空间(http://www.comingcode.com/?p=357)后,为了多点推广自己的博客,通过上网搜索资料和分析http数据包,我再次使用python模拟了开源中国的登录操作,能够发表博客同时也能发送动弹. 具体的实现过程也是和登录百度空间的差不多,都是需要去分析http发送的数据包内容. 通过这两篇文章的模拟登

谈网页游戏外挂之用python模拟游戏(热血三国2)登陆

看web看多了,想写写页游的外挂,其实原理是一样的,就是端口不一样协议字段你不知道,而这也提高了点技术门槛,看我们来一点一点突破这些门槛,这次我们来用python发包模拟flash的客户端登陆. 以热血三国2为例,热血三国2是一款balabalaba自己查去吧的游戏. step1 : 在sg2.ledu.com注册个账户  略过...step2 : 登陆游戏,wireshark抓包分析    以双线784服为例,游戏页面地址http://s784.sg2.ledu.com/,现在游戏一般都是联运

【Python模拟登录】RSA加密与重放方式登录 -以模拟登录博客园为例

Python模拟登录第一弹见:[Python数据分析]Python模拟登录(一) requests.Session应用上次的登录是最基本的,全部是明文,而且在浏览器中就可以看到POST的数据.接下来我们来个稍微难一点的–模拟登录博客园(http://www.cnblogs.com) 登录特点:用户名密码都进行了RSA加密,且在浏览器中无法看到POST数据 图1如上图,在post数据中不能显式看到POST内容. 模拟登录步骤 既然浏览器调试功能无法探测到POST数据,那么采用Fiddler试试看,

利用Python模拟GitHub登录

最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要模拟一个网站的登录,我们必须要简单了解其大致过程. 在这里,我通过Fiddler来抓取GitHub登录的请求,从网页上登录的URL为:https://github.com/login ,抓包结果如下: 左边的是会话列表,右边的是请求和响应的数据.一般情况下,登录都是用POST请求,因为我在左边的会话列表中

Python模拟数据工具哪些比较好用

今天给大家推荐两款基本的Python模拟数据工具:mock和pytest monkeypatch. 为什么要模拟数据? 我们的应用中有一些部分需要依赖外部的库或对象.为了隔离开这部分,我们需要代替这些外部依赖,因而就用到了模拟数据.我们模拟外部的API来产生特定的行为,比如说返回符合之前定义的恰当的返回值. 模拟函数 我们有一个function.py的模块: 然后我们来看下如何将其与Mock库结合使用的: 这里发生了什么?1-4行是为了兼容python 2和3来引入的代码,在python 3中m

python模拟腾讯网页登录

近日,研究Tencent网页模拟登录的过程,过程有些忐忑.先将结果写于此,供大家参考: 其加密过程在c_login_old.js文件中执行,将JS关键代码提取出来如下: function hexchar2bin(str) { var arr = []; for (var i = 0; i < str.length; i = i + 2) { arr.push("\\x" + str.substr(i, 2)) } arr = arr.join(""); eva

Python中的包ImportError

前言 Python中的包给我提供了很好的代码组织,相似的功能模块放在同一个包内,不仅代码结构清晰,而且调用起来也比较方便(可以用*导入) 但是,我们在刚开始使用Python包的时候总是会遇到导入错误"ImportError: No module named 'xxx'“,下面我们来简单介绍一下如何解决这类问题 Python中的包 Python中的包就和C#中的dll一样都是一些模块(或者类库)的集合.Python中新创建的包其实只有两个文件,一个是以包名命名的文件夹和其中的一个__init__.

CentOS 7 64位环境下安装llvm以及python的llvmlite包

llvm是一个很强大的编译器,具体的内容请读者自行百度一下哈 安装步骤: 1.安装llvm 2.安装python的llvmlite包 一.安装llvm(版本是3.5) 1.需要的文件 LLVM source code Clang source code Clang Tools Extra source code Compiler RT source code LibC++ source code 上面这些文件在这个链接:http://llvm.org/releases/download.html