首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux编程之ICMP洪水攻击

我的上一篇文章《Linux编程之PING的实现》里使用ICMP协议实现了PING的程序,ICMP除了实现这么一个PING程序,还有哪些不为人知或者好玩的用途?...这里我将介绍ICMP另一个很有名的黑科技:ICMP洪水攻击。...ICMP洪水攻击属于大名鼎鼎的DOS(Denial of Service)攻击的一种,一种是黑客们喜欢的攻击手段,这里本着加深自己对ICMP的理解的目的,也试着基于ICMP写一段ICMP的洪水攻击小程序...要实现ICMP的洪水攻击,需要以下三项的知识储备: DOS攻击原理 ICMP的深入理解 原始套接字的编程技巧 一、ICMP洪水攻击原理 ICMP洪水攻击是在ping的基础上形成的,但是ping程序很少能造成目的及宕机的问题...= ICMP_ECHO; icmp_hdr->icmp_code = 0; icmp_hdr->icmp_cksum = htons(~(ICMP_ECHO << 8)); //注意这里,

2.2K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【在Linux世界中追寻伟大的One Piece】DNS与ICMP

    4 -> ICMP协议 ICMP协议是一个网络层协议。 一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。...4.1 -> ICMP功能 ICMP正是提供这种功能的协议;ICMP主要功能包括: 确认IP包是否成功到达目标地址。 通知在发送过程中IP包被丢弃的原因。 ICMP也是基于IP协议工作的。...ICMP只能搭配IPv4使用。如果是IPv6的情况下,需要使用ICMPv6。 4.2 -> ICMP报文格式 ICMP大概分为两类报文: 一类是通知出错原因。 一类是用于诊断查询。...ping命令会先发送一个ICMP Echo Request给对端。 对端接收到之后,会返回一个ICMP Echo Reply。...4.4 -> traceroute命令 也是基于ICMP协议实现, 能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。 感谢各位大佬支持!!! 互三啦!!!

    8210

    traceroute和tracert原理

    目标主机收到traceroute 的UDP探测包回复ICMP(type=3,code = 3,端口不可达)。Linux上称之为 traceroute,Windos类似的功能为tracert。...linux 上 traceroute 运行过程: traceroute 连续发送TTL从1开始递增的UDP包,目标端口 30000+,相同的目标地址,每个TTL相同的UDP包默认发送三个,端口依次递增...二、Tracert 通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。...Tracert 先发送 TTL 为 1 的回应数据包,并随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.9K20

    Linux crond 执行原因分析

    为了定时监控Linux系统CPU、内存、负载的使用情况,写了Linux Shell脚本,当达到一定值得时候,定时发送邮件通知。.../mimvp-email.sh)是正常的,因为手动执行脚本可以默认获取Linux的环境变量,但通过Crontab做的定时任务,则无法获取环境变量。...分析了原因,crond执行的原因主要有以下几个方面: 1、crond服务没启动 ps -ef | grep -v grep | grep crond         // 查看crond服务是否运行...附上linux下的flock的用法: flock (util-linux 2.13-pre7) Usage: flock [-sxun][-w #] fd#        flock [-sxon][-...error: "(" unexpected 解决方法: 需指定shell解释器命令:SHELL=/bin/bash(请参见上面 crontab编辑示例 SHELL=/bin/bash) 或者参见: LINUX

    6.3K110

    linux远程ssh连接上?

    背景 昨天下午从公司下班回到家后,想连接linux来给一个docker项目部署好,发现突然连接上了?...这类linux问题,我的排查能力还是不足,并且无从分析,我是直接照着报错去百度搜索,压根没有什么用。...总结 第一点 linux中不是说当一个程序出现了错误,如果是权限问题,不是就是权限不够,全部赋予755权限,反而会导致bug出现 第二点 当linux中重装了ssh后,你的之前修改的权限文件还是不会变的...,也有可能是我重装了ssh,没有碰到上面三个权限文件 第三点 linux出现了错误不要慌,首先使用救援连接进入linux内部,然后根据命令一步步排查,比如sshd -t就是查看ssh服务是否有问题的 一个命令...,学到了 废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 转载请注明原文链接:linux远程ssh连接上?

    22.4K10

    如何在Linux中禁用ICMP和ICMPv6重定向

    --- 文章声明:此文基于木子实操撰写 \ 生产环境:CentOS Linux release 7.9.2009 (Core) \ 问题关键字:禁用ICMP,禁用ICMPv6 --- 写在最前面 正如前文...所述,为了能够更好的传播Linux基础知识,同时也为巩固、沉淀个人知识体系,在经过很长时间的思考后,木子决定率先开启一个专题系列《Linux基础》,其系列以Linux基础出发,如:系统安装、磁盘管理、安全配置...今天我们将学习如何在Linux服务器上禁用ICMP和ICMPv6重定向。ICMP重定向功能在路由器上使用,因此,如果您的Linux服务器未充当路由器,那么作为一般的安全实践,建议禁用重定向。...即使您的Linux服务器充当并打开了路由转发功能,您也可以使用内核参数(sysctl)有选择的禁用某些接口上的ICMP重定向。...: redirect 使用内核参数(sysctl) 如果您的Linux服务器启用了路由转发功能,则可以选择在所有接口或指定接口上禁用ICMP重定向。

    4.8K40

    独家 | 英伟达回应禁令:研究人员放心用,更新驱动就没影响

    刚刚,英伟达向量子位发来了回应。 (新鲜出炉,全网独家) 回应全文 以下是量子位根据英伟达英文官方声明整理的回应全文。...为了澄清这一点,我们最近对GeForce专门的EULA(最终用户许可协议)条款做了修正,以图鼓励将GeForce和TITAN系列产品误用在需求严苛的大规模企业环境中。...我们认识到,研究者经常将GeForce和TITAN产品用于非商业用途,或者用于自己的研究,这些用途涉及数据中心规模的运行。英伟达无意禁止这类用途。 更多细节 看了上面的声明,估计不少人能松一口气。...不止如此,英伟达还对量子位提出的问题,给出了更多回应。 量子位:为什么英伟达会更新EULA?...英伟达:随着产品线的扩张,NVIDIA感觉有必要为消费级和企业级产品分别设置EULA,而GeForce系列产品不是为数据中心设计的,它的保修也覆盖在数据中心的应用。 量子位:什么是数据中心?

    74860

    【内网安全】隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac

    SMB隧道&通讯&上线 判断:445通讯 通过端口扫描是否开放445端口进行判断 上线:借助通讯后绑定上线 详见往期文章 通讯:直接SMB协议通讯即可 ICMP隧道&通讯&上线 判断:ping命令...能ping通说明可以使用icmp隧道 上线:见往期文章 通讯:其他项目(icmpsh icmptunnel) https://github.com/esrrhs/spp https://github.com.../bdamele/icmpsh https://github.com/esrrhs/pingtunnel DNS隧道&通讯&上线 判断:windows:nslookup linux:dig 1、上线环境...都能在对方电脑上安装程序了,还要这样大费周折 双方都新增了一个网卡(dns、TAP-9),从而建立了通道 ping不通是因为靶机上有防火墙 windows平台iodine建立DNS隧道连接 linux...跟踪用户的DNS查询次数,如果达到阈值,就生成相应的报告 控制上线-插件-Linux&Mac&IOS&Android 项目:https://github.com/gloxec/CrossC2 面向

    14110

    ping广播地址会如何(转)

    bytes=32 time<1ms TTL=255  Reply from 10.26.20.90: bytes=32 time<1ms TTL=64 说明了几点: 1.ping这个广播地址通了,但从回应看...,是同网段的地址回的 2.同网段的很多机器,为什么只有这两台回应我了?...下面,全面的解释一遍: 1.我发出ping 10.26.255.255这个请求,在这个icmp包出去之前,发出去一个多播的帧,目的mac是多播mac; 2.好,所有能收到这个多播包的主机,看到这个包...,知道我要做什么(icmp reauest),如果它的系统支持(linux支持,windows不支持),就会对其响应(icmp response),于是发给我一个arp查询,查询我的arp是什么,于是我响应这个查询...,这样我也学到了它的arp; 3.以后,我每一个ping广播的icmp,都由组内可以响应的主机来回应我,这是ping的结果了(分别是255.254和20.90回应我) 这个过程不复杂,重点是理清流程

    2.6K50

    分析ICMP报文「建议收藏」

    14 : 时间戳应答 17 : 地址掩码请求 18 : 地址掩码应答 30 : 路由跟踪 常见的 type类型字段(8位)、code代码字段(8位) 组合有: 类型0、代码0:回应应答...类型3、代码0:网络不可达 类型3、代码1:主机不可达 类型5、代码1:为主机重定向数据包 类型8、代码0:回应 类型11、代码0:传输中超出TTL(常说的超时) 简单类型分析: (1)响应请求...我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个节点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败...发现标示符LE与BE都指向二进制报文内容的0x0001,后来在网上搜索是大小端问题,window系统与Linux系统发出的ping报文(主要指ping应用字段而非包含IP头的ping包)的字节顺序不一样...(windows为LE:little-endian byte order,Linux为BE:big-endian)。

    1.8K20

    让人迷糊的 socket udp 连接问题

    (上面是 udp 异常下的 icmp,下面是正常 icmp) 当 UDP 连接异常时,可以通过 tcpdump 工具指定 ICMP 协议来抓取该异常报文,毕竟对方是通过 icmp 返回的 ECONNREFUSED...full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes...netcat nc udp 的逻辑 为什么当 ip 连通或者报文被 DROP 时,返回连接成功?...还是那句话,UDP 没有 TCP 那样的握手步骤,像 TCP 发送 syn 总得不到回报时,协议栈会在时间退避下尝试 6 次,当 6 次还得不到回应,内核会给与错误的 errno 值。...客户端和服务端互通数据,当服务进程挂了时,UDP 客户端不能立马感知关闭状态,只有当再次发数据时才会被对方系统回应 icmp ECONNREFUSE 异常报文,客户端才能感知对方挂了。

    1.7K11

    linux网络95值工具,Linux下网络故障排查工具之ping|traceroute和tcptraceroute|mtr工具

    大量且快速地送网络封包给一台机器,看它的回应。...LINUX的ping不会自动终止如果指定这个参数就需要手动按ctrl+c终止 -i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。 -I 网络界面:使用指定的网络界面送出数据包。...-I 使用ICMP回应取代UDP,与-U\-T是互斥关系。 -m 设置检测数据包的最大存活数值TTL的大小,也就是改变跳数,默认只检测30跳。 -n 直接使用IP地址而非主机名称。...-T 使用TCP协议来探测,与-U\-I是互斥关系,另外TCP协议默认是80端口,而LINUX下1024以下端口需要管理员ROOT权限才能执行,因此需注意权限。...yum install mtr -y UBUNTUsudo apt-get install traceroute 使用格式:mtr [options] hostname 常用的选项:-n ——探测主机名

    1.5K30
    领券