【SEED Labs】TCP Attacks Lab

摘要:
项目地址:https://github.com/secdev/scapyLabTasksTask1:SYNFloodingAttack我们的目标是攻击服务器,阻止它接受来自任何主机的telnet连接。Task2:TCPRSTAttacksontelnetandsshConnections在这个任务中,我们需要启动TCPRST攻击来中断A和B之间的现有telnet连接。RST也是TCP报头中的六个代码位之一。因此,RST对于TCP协议非常重要。在攻击机开启监听将反弹shell命令转换成16进制使用netwox40来进行TCP会话劫持攻击netcat接受到反弹回来的shell

Lab Overview

实验环境下载:https://seedsecuritylabs.org/Labs_16.04/Networking/TCP_Attacks/

本实验涵盖以下课题:

• TCP SYN flood attack, and SYN cookies

• TCP reset attack

• TCP session hijacking attack

• Reverse shell

LabEnvironment

3台主机在同一内网中

【SEED Labs】TCP Attacks Lab第1张

工具:

Netwox:netwox 是由 lauconstantin 开发的一款网络工具集,适用群体为网络管理员和网络黑客,它可以创造任意的 TCP、UDP 和 IP 数据报文,以实现网络欺骗,并且可以在 Linux 和 Windows 系统中运行。Kali Linux 系统自带 netwox 工具。

Scapy:Scapy是一款强大的交互式数据包处理工具、数据包生成器、网络扫描器、网络发现工具和包嗅探工具。Kali Linux 系统自带 Scapy工具。项目地址:https://github.com/secdev/scapy

LabTasks

Task1: SYNFloodingAttack

【SEED Labs】TCP Attacks Lab第2张

我们的目标是攻击服务器,阻止它接受来自任何主机的telnet连接。

在攻击之前,我们首先做一个telnet 从用户机器到服务器,之后我们将检查是否SYN洪水攻击影响存在的连接。

【SEED Labs】TCP Attacks Lab第3张

同时,我们需要在服务器上关闭SYN cookie,SYN cookie是抵御SYN洪泛攻击的一种防御机制。如果机器检测到它受到了SYN洪泛攻击,该机制就会启动。可以使用sysctl命令打开/关闭SYN cookie机制:

【SEED Labs】TCP Attacks Lab第4张

在开始攻击之前,检查一下当前服务器上的半开放连接数:

【SEED Labs】TCP Attacks Lab第5张

发现都是listen,并没有SYN_RECV

使用netwox 76 来进行SYN flooding攻击

【SEED Labs】TCP Attacks Lab第6张

【SEED Labs】TCP Attacks Lab第7张

-s选项选择raw意味着在IP4/IP6级别上进行欺骗,而不是在链接级别上进行欺骗

再看一下服务器网络连接情况:netstat -ant

【SEED Labs】TCP Attacks Lab第8张

已经遭受SYN泛洪攻击

用户机器无法telnet到服务器:

【SEED Labs】TCP Attacks Lab第9张

SYN flooding攻击成功。

Task2: TCP RST Attacks on telnet and ssh Connections

在这个任务中,我们需要启动TCP RST攻击来中断A和B之间的现有telnet连接。然后,尝试对ssh连接进行相同的攻击。

关闭TCP连接的方式:

(1)当TCP连接的一端(比方说A)没有数据要发送到另一端时,它会向另一端(比方说B)发送一个FIN包,FIN是TCP报头中的六个代码位之一。B收到包后,它用一个ACK包进行应答。这样,连接的A-to-B方向关闭,但另一个方向(B-to-A)仍然打开。如果b想要关闭那个方向,它发送一个FIN包给a, a会回复一个ACK包。此时,整个TCP连接被关闭。这是TCP FIN协议[Postel, 1981)

【SEED Labs】TCP Attacks Lab第10张

(2)一方只需向另一方发送一个TCP RST包,立即断开连接。RS T也是TCP报头中的六个代码位之一。这种方法主要用于紧急情况,当没有时间执行FIN协议时。当检测到一些错误时,还会发送RST数据包。例如,在针对TCP服务器的SYN洪泛攻击中,如果欺骗的源IP地址确实属于正在运行的计算机,那么它将从服务器接收SYN + ACK包。但是,由于机器从来没有初始化过连接请求,它知道有什么地方出错了,因此,根据协议,它用一个RST包进行应答,基本上就是告诉服务器关闭半开的连接。因此,RST对于TCP协议非常重要。

Telnet服务:

首先在用户机器上与服务器建立telnet连接: seed dees

【SEED Labs】TCP Attacks Lab第11张

【SEED Labs】TCP Attacks Lab第12张

使用netwox 78 来进行TCP RST攻击

【SEED Labs】TCP Attacks Lab第13张

【SEED Labs】TCP Attacks Lab第14张

用户机器无法与服务器建立telnet连接:

【SEED Labs】TCP Attacks Lab第15张

攻击成功。

SSH服务:

首先在用户机器上与服务器建立ssh连接: seed dees

【SEED Labs】TCP Attacks Lab第16张

【SEED Labs】TCP Attacks Lab第17张

使用netwox 78 来进行TCP RST攻击

【SEED Labs】TCP Attacks Lab第18张

用户机器无法与服务器建立ssh连接:

【SEED Labs】TCP Attacks Lab第19张

攻击成功。

Task4: TCP Session Hijacking

TCP会话劫持攻击的目的是通过向会话注入恶意内容来劫持两个受害者之间的现有TCP连接(会话)。如果该连接是telnet会话,攻击者可以将恶意命令(例如删除重要文件)注入该会话,从而导致受害者执行恶意命令。下图描述了攻击的工作方式。在本任务中,我们需要演示如何在两台计算机之间劫持telnet会话。目标是让telnet服务器运行来自我们的恶意命令

【SEED Labs】TCP Attacks Lab第20张

由于TCP协议没有对TCP的数据包验证,所以攻击者只要知道⼀个TCP连接中的seq和ack信息后就可以很容易的伪造数据包冒充受害者进行数据传输,如果攻击者发送正确seq和ack的数据包给TCP连接的对方,TCP会话便被攻击者劫持,受害者再次发送TCP数据包的时候seq和ack都不正确,也就是失去TCP的会话。

开始实验:

先在攻击机上开启wireshark

【SEED Labs】TCP Attacks Lab第21张

用户机器连接服务器telnet

【SEED Labs】TCP Attacks Lab第22张

找到最后一个数据包的源ip、目标ip、源端口、目的端口、Next sequence number:

【SEED Labs】TCP Attacks Lab第23张

使用netwox 40 来进行TCP会话劫持攻击(数据要以16进制形式发送)

【SEED Labs】TCP Attacks Lab第24张

发送之后,可以在wireshark中看到我们伪造的数据成功发送:

【SEED Labs】TCP Attacks Lab第25张

攻击成功。

Task5: Creating Reverse Shell usingTCP Session Hijacking

前几步和Task4一样。

在攻击机开启监听

【SEED Labs】TCP Attacks Lab第26张

将反弹shell命令转换成16进制

【SEED Labs】TCP Attacks Lab第27张

使用netwox 40 来进行TCP会话劫持攻击

【SEED Labs】TCP Attacks Lab第28张

netcat接受到反弹回来的shell

【SEED Labs】TCP Attacks Lab第29张

免责声明:文章转载自《【SEED Labs】TCP Attacks Lab》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js访问函数内部的变量(三种方法)C语言如何进行攻击修改数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux之telnet详解

telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的 能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令...

oracle之 单实例监听修改端口

Oracle 单一主机多个实例多个监听器配置要点   1. 一台服务器主机, 有多个实例, 如: TSDB/ORCL; 又需要配置多个监听器 2. 需要指定不同的LISTENER端口   3.pmon只会动态注册port等于1521的监听器, 其它端口则pmon不能动态注册listener, 要想让pmon动态注册listener, 需要设置local_l...

计算机网络基本知识

今天来讲讲网络,主要将传输层和应用层的一些基础知识 OSI七层模型:应用层(application)、表示层(presentation)、会话层(session)、传输层(transport)、网络层(network)、数据链路层(data)、物理层(physical/base)。用一句英语总结就是 all people seem to need data...

boost asio 学习(七) 网络基础 连接器和接收器(TCP示例)

http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting- started-with-boostasio?pg=8 7. Networking basics: connectors and acceptors (TCP)我们来学习boost的TCP网络编程。之前的篇章已经介绍了网络系统...

面试官一上来就问我Chrome底层原理和HTTP协议(万字长文)

此文转载自:https://blog.csdn.net/qq_36232611/article/details/110367883 已发布到 程序员小灰 公号 前言有人说,如果你懂得浏览器的工作原理,你就能解决80%的前端难题。 是的,了解浏览器的工作原理,有助于你的工作;而了解TCP/IP 、HTTP等网络协议,更是对你未来的职业发展大有裨益。 下面,...

C# socket 阻止模式与非阻止模式应用实例

问题概述最近在处理一些TCP客户端的项目,服务端是C语言开发的socket. 实际项目开始的时候使用默认的阻塞模式并未发现异常。代码如下 1 public class SocketService 2 { 3 public delegate void TcpEventHandler1(byte[] receivebody,...