您的位置:首页 > 大数据 > 人工智能

kail2.0下hping3的安装和使用(二)

2016-05-13 11:42 337 查看
ICMP常用的攻击的三种方式

直接icmp协议flood攻击
直接使用自己的机器去攻击别人,这要求有足够的带宽。直接攻击会 暴露自己IP地址,一般不常见。
简单示意图:
ICMP 攻击者[IP=1.1.1.1]---------->受害者[截获攻击者IP=1.1.1.1]==>换IP回来反击
利用hping3的命令格式:
 hping3  -i m10 -1 --flood -V 目的ip地址

2、 伪造IP的Flood。它随意伪造一个IP来flood。属于比较隐蔽阴险的flood。
简单示意图: 伪造IP=1.1.1.1的ICMP 攻击者[IP=1.1.1.1]------------->受害者[截获攻击者IP=8.8.8.8]
 hping3  -i m10 -1 -a8.8.8.8 --flood -V 目的地址

发送的包数量较多比较快,可以通过改变-i发送连续包的时间观察cpu,内存和网络的占用率。
测试命令时利用wireshark进行监控,几秒内发送20多万的数据包,顿时cpu和内存飙升,主机失去响应,结束命令后主机cpu和内存恢复正常。



3、 反射。用采取这种方式的第一个工具的名称来命名的“Smurf”洪水攻击,把隐蔽性又 提高了一个档次,这种攻击模式里,最终淹没目标的洪水不是由攻击者发出的,也 不是伪造IP发出的,而是正常通讯的服务器发出的。Smurf方式把源IP设置为受害者IP,然后向多台服务器发送ICMP报文(通常是ECHO请求),这些接收报文的服务器被报文欺骗,向受害者返回ECHO应答(Type=0),导致垃圾阻塞受害者的门口……
简单示意图:
伪造受害者的ICMP 应答 攻击者[IP=1.1.1.1]---------->正常的主机--------->受害者[截获攻击者IP=……网易?!]
 hping3  -i m10 -1 -a8.8.8.8 --flood
-V 目的地址

8.8.8.8就是要攻击的ip地址,通过观察伪造的ip地址主机出现cpu和内存升高。

TCP常见的攻击形式

SYN洪水攻击,具体解释如下。

TCP包中标记的作用

SYN 首先客户端向服务端发送请求时,客户端向服务器端发送一个SYN标记的包,请求服务器端建立链接。

SYN/ACK 服务端向客户端发送确认包(SYN/ACK),表示收到客户端的SYN包,并继续握手操作。

ACK 客户端收到SYN/ACK包,B发送ACK包,通知服务端建立连接。三次握手完成。

FIN包

由于TCP连接是双向连接, 因此关闭连接需要在两个方向上做。ACK/FIN 包(ACK 和FIN 标记设为1)通常被认为是FIN(终结)包.然而,

由于连接还没有关闭, FIN包总是打上ACK标记. 没有ACK标记而仅有FIN标记的包不是合法的包,并且通常被认为是恶意的  

四次挥手,客户端向服务器端发送ACK/FIN终结链接,服务器向客户端发送ACK确认,然后服务器端向客户端发送ACK/FIN链接

客户端确认收到后发送ACK包服务器端,连接关闭。

RST包

四次握手不是关闭TCP连接的唯一方法. 有时,如果主机需要尽快关闭连接(或连接超时,端

口或主机不可达),RST (Reset)包将被发送.且RST包不要收到对方确认即可断开连接。

PSH包

表示有DATA数据传输

URG包

紧急标志位

SYN:同步标志

ACK:确认标志

RST:复位标志

PSH:推标志

FIN:结束标志

URG:紧急标志

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手包(SYN+ACK包),因为对方是假冒IP,对方永远收不到包且不会回应第三个握手包。导致被攻击服务器保持大量SYN_RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足),让正常的业务请求连接不进来。

利用hping3命令如下

hping3 -d 120 -S -w 64 -p 80 --flood--rand-source
-i m10 www.test123.com

想要提高发包的速度可以更改-i参数

UDP

常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。

利用hping3命令如下:

hping3
-2 -s 53 --keep -p 68 -i m100 --flood www.test123.com

根据自己的机器对参数进行相应的调节。

CC攻击

CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。

利用的CC攻击测试工具为siege,kail系统自带的压力测试工具。

siege详细的使用参数:

-C,或–config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文件$HOME/.siegerc中,可以编辑里面的参数,这样每次siege 都会按照它运行.

-v 运行时能看到详细的运行信息

-c n,或–concurrent=n 模拟有n个用户在同时访问,n不要设得太大,因为越大,siege 消耗本地机器的资源越多

-i,–internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效

-d n,–delay=n hit每个url之间的延迟,在0-n之间

-r n,–reps=n 重复运行测试n次,不能与 -t同时存在

-t n,–time=n 持续运行siege ‘n’秒(如10S),分钟(10M),小时(10H)

-l 运行结束,将统计数据保存到日志文件中siege .log,一般位于/usr/local/var/siege .log中,也可在.siegerc中自定义

-R SIEGERC,–rc=SIEGERC 指定用特定的siege 配置文件来运行,默认的为$HOME/.siegerc

-f FILE, –file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege 安装目录下的etc/urls.txt

-u URL,–url=URL 测试指定的一个URL,对它进行”siege “,此选项会忽略有关urls文件的设定

urls.txt文件:是很多行待测试URL的列表以换行符断开,格式为:

[protocol://]host.domain.com[:port][path/to/file]

用法举例:

siege -c 300 -r 100 -f url.txt

说明:-c是并发量,-r是重复次数。url.txt就是一个文本文件,每行都是一个url,它会从里面随机访问的。

模拟用户发送get请求

siege -c 50 -r 100 -u https://www.test.com/?test=123
模拟用户发送post请求

siege -c 50 -r 100  https://www.test.com/    POST name=zhangsan

结果说明

** SIEGE 2.72

** Preparing 300 concurrent users for battle.

The server is now under siege.. done.

Transactions: 30000 hits //完成30000次处理

Availability: 100.00 % //100.00 % 成功率

Elapsed time: 68.59 secs //总共使用时间

Data transferred: 817.76 MB //共数据传输 817.76 MB

Response time: 0.04 secs //响应时间,显示网络连接的速度

Transaction rate: 437.38 trans/sec //平均每秒完成 437.38 次处理

Throughput: 11.92 MB/sec //平均每秒传送数据

Concurrency: 17.53 //实际最高并发连接数

Successful transactions: 30000 //成功处理次数

Failed transactions: 0 //失败处理次数

Longest transaction: 3.12 //每次传输所花最长时间

Shortest transaction: 0.00 //每次传输所花最短时间

附:具体报文结构可以参考下文。
http://blog.chinaunix.net/uid-20556054-id-3164909.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: