首页 > 代码库 > 十年磨一剑,霜刃未曾试——杀猪越货利器放送

十年磨一剑,霜刃未曾试——杀猪越货利器放送

       这是南方七月一个风少雨多,杀猪越货的早晨。

       混迹于IT圈多年,自制若干攻击利器,后门木马等,个人一直低调在用,基本上从未示众,借用唐朝贾岛同学的话说就是“十年磨一剑,霜刃未曾试。”。

       今早,就在今早,公布吧——所谓技术这东西,似乎、好像不能一辈子(尤其是在天朝);何况长江后浪推前浪,前浪必然挂在沙滩上;与其被挂,不如主动让路,做后来者的人梯,让生命成为桥梁(^_*)。再次套用贾岛同学的话就是“今日把示君,谁有不平事?”。


       好了,废话和牢骚一大通,下面进入正题。今天公布一个私家拒绝服务工具,其威力太大,攻击力太猛(使用者在合理配置硬件资源后,能接近线速的发包率,这里我不能多说),大家要谨慎使用,仅可用作拒绝服务的研究,发包测试之用,切勿用于商业目的或主动攻击有关服务器去敲诈勒索捞金,否—则(说话有点困难了)始作俑者的本人也不能追究你的法律责任,只是说:“人在做,天在看,你自己看着办吧!”。

wKiom1PAn_Cj8alCAAMFK2QAW7o487.jpg

(发包攻击前)

wKiom1PAn_CTEEZ7AAPYC4I5zAA598.jpg

(发包攻击中)


       几个概念。

       1、bit与Byte

       在计算机科学中,bit是表示信息的最小单位,叫做二进制位;一般用0和1表示。Byte叫做字节,由8个位(8bit)组成一个字节(1Byte),用于表示计算机中的一个字符。bit(比特)与Byte(字节)之间可以进行换算,其换算关系为:1Byte=8bit;同时记下如下的公式:

       1Byte=8bit

       1KByte=1024Byte

       1MByte=1024KByte


       2、bps与pps的概念

       bps:bit per second比特每秒即表示每秒传输多少位的信息。网络运营商所用的单位就是bps,比如我们常见的很多用户从电信或网通办理的2M,这里的2M指的也就是2Mbps=0.25MBps=256KBps(也说明了用户为什么用迅雷等软件下载的时候2M为什么最大也就200多K)

       pps: Packet Per Second 包每秒即表示每秒转发多少数据包。是网络、路由设备性能的线速处理能力常用指标。通常而言,网络设备的转发性能以“包转发性能”来表示,即设备在单位时间内能够处理多少个“包”决定了设备转发能力的强弱。在这里,无论是大包、还是小包都具有相同的包转发率(如果是超大包则需要考虑MTU(最大传输单元)值的问题)。包转发性能比较常见的单位是“PPS”,即Packet Per Second(包每秒)。

       所以设备是否能够达到线速通常以短包来进行计算,如果小包能够达到某一带宽的线速,则我们说设备或设备的接口则能够达到线速。

       PPS如何计算:以64字节短包计算(以太网帧最短为64字节,至于为什么最短是这个,大家自己找答案去,本利器结合MTU,可以发送小于64字节的包)。

       根据以太网的CSMA/CD的工作原理,报文在发送之前,要先侦听一段时间,如果在这段时间内线路空闲,则可以发送;以太网帧结构为8个字节的前导码,其中7个字节为AA(其二进制形式为01010101)用于与接收端同步,因为电平一高一低,很容易取得同步;第8个字节为AB(帧定界符),用于定界,标明从现在开始后面的内容真正的是以太网帧了。综上所述,一个最短帧其实际长度为:

       (12+7+1+64)*8=84*8=672bit


       3、bps与pps之间的换算

       由于以太网的包长是不定长的,因此,不同的包长在线速情况下的转发能力是不一样的。rfc2544也建议以下包长做为测试的标准, 64、128、256、512、1024、1280、1518字节。此处给出千兆环境下有单向转发包长为64字节的理论PPS,以GE(1000Mbps,1000 Mega Bits Per Second)接口为例:

       pps=1000M/〔(64+7+1+12)×8〕=1488095pps,即1.488Mpps             

       100BASE-TX接口线速吞吐量 148,810pps ,约为0.148Mpps

       1000BASE-T/S/LX接口线速吞吐量 1,488,095pps,约为1.488Mpps


       至于什么是拒绝服务,相关原理等,想用这工具的人都明白,不用这工具的人也不需要明白。但我现在不管你明白不明白,都请诸位看官自己去维基百科或看相关文档吧!下面,精彩部分到来:介绍一下参数用法。

       pser,原为PacketSender之简写,使用简介如下:

wKioL1PAoEPAXTs8AAEKNnVrBcQ583.jpg

       pser -d 目标地址 -r 目标端口。随机源地址随意端口的SYN Flood攻击包;不带-a参数默认TCP包;-f  0x01则发送FIN包,其他分别如下:

       FIN  0x01

       SYN  0x02

       RST  0x04

       PSH  0x08

       ACK  0x10

       URG  0x20

       pser -n(发包数,-n 0为无休止)

       pser -a 1000 (发UDP Flood攻击包)

       pser -a 2000 (发ICMP Flood攻击包;类型和代码参考相关协议)


       最后,我把它封装到一个只有十多兆的CDLinux里猛击这里下载。大家可以用Virtual PC,VMware Workstation,VirtualBox等来运行;至于Windows8/8.1的Hyper-V下,建议网卡用旧版,以避免无法加载(不支持)驱动而找不到网卡的悲剧。

wKiom1PAoFmCN8UxAAHC2MJf_v8870.jpg


       介绍和公布完毕,大清早的刚起床,洗洗吃早点去吧!


本文出自 “星星落在我头上” 博客,请务必保留此出处http://staronmytop.blog.51cto.com/6366057/1437313