TCP/IP SYN 攻击(SYN Flooding Attack)即是指利用了 TCP/IP 三次握手协议的不完善而恶意发送大量仅仅包含 SYN 握手序列数据包的攻击方式。该种攻击方式可能将导致被攻击计算机为了保持潜在连接在一定时间内大量占用系统资源无法释放而拒绝服务甚至崩溃。
使用简介:
SYN Flood Attacker V1.0 是一款基于 TCP/IP SYN 洪水攻击测试的拒绝服务产品。测试目标为任何基于 TCP/IP 协议的系统,包括但不仅限于 Unix/Linux/Windows/MAC OS 等等。
但是本软件只能在 RedHat Linux 7.x 环境下运行(是否可以运行于其它 Linux 环境未经测试),因为本软件编译环境为 RedHat Linux 7.x,并且运行时需要具有 ROOT 权限。
请将本软件上传到 Linux 系统任意路径,并将其属性设置为 chmod 500 syn。
如果运行路径包含在 $PATH 中则可以直接在 # 提示符下输入 syn 运行,否则 cd 进入上传路径,执行 ./syn。
使用语法如下:
usage: syn SpoofSourceIP AttackIP AttackPort [Packages] [Loops] [Sleep second]
其中:
syn 表示本软件,不带参数或者参数缺乏,将显示上述语法。
SpoofSourceIP 表示欺骗源 IP 地址,也就是伪造一个 IP 地址。
AttackIP 表示准备实施攻击测试的 IP 地址或者 www 域名。
AttackPort 表示准备实施攻击测试的目标端口。
Packages 可选参数,表示并发构造的 SYN 包数,默认为 1 个包。
Loops 可选参数,表示循环次数,默认为 1 次。
Sleep second 可选参数,表示每次 SYN 攻击后休眠等待的秒数,默认为 1 秒,指定 0 表示不休眠连续发送。
实例参照:
典型攻击测试如下:
syn 1.1.1.1 目标地址 目标端口 99999 9999 0
以上指令将对目标地址的指定端口每次发送 99999 个 SYN Flood 洪水攻击包,并且循环发送 9999 次,连续发送。
如果攻击测试有效,那么目标系统将会被拒绝服务,并且同时会由于虚假回应包的泛滥而波及到目标系统所在的网段以及网关服务器。
技术分析:
为什么要伪造源 IP 地址?
伪造源 IP 地址可以防止被追查,不过请注意,伪造的源 IP 通过网关时将被替换为网关真实 IP 地址,因此你的网关服务器将被暴露,所以请谨慎通过本地局域网发送攻击测试包。
另一方面,只有伪造源 IP 地址才能造成最大的攻击测试力度。如果采用自己的 IP 发出去,所有的攻击包流量最终将被 TCP/IP 三次握手协议回馈到自己的系统上来。另外,伪造源 IP 地址可以对目标系统以及伪造 IP 的真正属主进行双重打击。
不过强烈建议采用肯定不可达的伪造源 IP 地址!因为任何可达的 IP 地址在收到被攻击目标的回应信号以后,将立即回应 RST 断开连接,被攻击目标同时也会释放连接。如果采用不可达或者很难在短时间内送达的 IP 地址则会让被攻击目标一直处于 SYN_RECV 等待状态,如果攻击包足够多、足够密集并且运用得当,那么目标系统将很难幸免。
目标端口如何选择?
只要是防火墙没有监听阻断或者有选择允许通过的端口都可以测试。至于哪些属于防火墙阻断端口可以用扫描器测试,如果端口属于有选择性的通过,那么利用伪造的貌似合法的 IP 地址可以达到攻击测试目的。
通常说来,HTTP 的 80 端口总是可以利用的。
Windows 系统的 135/137/138/445 等端口也可以列入重点测试评估范围。
另外,SMTP/POP3、mySQL 数据库 3306 端口以及其它释放比较慢的或者被安全公告明确描述的存在安全隐患的系统端口也可以根据具体情况加以测试。
根据经验,对于 Windows 系统来说,如果目标系统没有安装合适的防火墙,那么 445 端口的打击将是致命的;对于 mySQL 3306 端口以及其它数据库连接端口,由于这些连接端口可以承受的瞬间并发连接数目是有限的,因此高密度的打击将十分有效,考虑到有些数据库应用系统采用的是本地 localhost 或者 127.0.0.1 调用方式,因此伪造源 IP 设定为 127.0.0.1 会有点意思。
顺便说一句,超过 65535 的并发攻击包数目将导致被攻击系统端口卷绕,这种卷绕在实际运用中可能会通过目标系统从内部让网关防火墙频频报错而应接不暇。
是否应该在每次攻击测试后短暂休眠?
一般说来,不休眠实施连续攻击的效果会比较好,但是在某些特殊情况和某些特殊端口应用中,休眠一定的时间可能会更有效。
【相关文章】