(SEED-Lab) TCP/IP Attack Lab

(SEED-Lab) TCP/IP Attack Lab

欢迎大家访问我的GitHub博客

https://lunan0320.cn

一、实验目标

掌握TCP协议
利用TCP SYN Flood攻击,以及TCP cookies
应用TCP reset attack
执行TCP会话劫持攻击
掌握使用反向shell

二、实验原理

ARP攻击是利用了在TCP会话的各个阶段出现的问题。
TCP SYN Flood攻击就是一种Dos攻击方式,利用的是在短时间内与Server建立多个TCP的半连接(未发送ACK数据包),因此Server在没有防御措施的情况下都会接收并建立连接等待ACK数据包。
抵御该模式的方式就是TCP cookies,在完成三次握手之前不会为任何一个连接分配资源。
TCP的reset以及会话劫持攻击都是在已经建立的连接的基础上,通过嗅探到seq以及ack序列号以及相关信息从而伪造数据包,破坏连接。
反向shell,即是攻击者通过nc建立一个tcp server,然后在会话劫持的基础上,可以让受害者执行命令把shell通过nc的端口反弹回攻击者的主机中,从而拿到了受害者机器的执行权限。

三、实验过程

Server 、Client、以及Attacker的IP地址以及MAC地址如下表
Host IP
Server 10.0.2.5
Client 10.0.2.6
Attacker 10.0.2.8

3.1 Task 1: SYN Flooding Attack

首先查看系统中设定好的SYN队列的长度是128。
在这里插入图片描述

查看队列的使用情况
在这里插入图片描述

检查是否开启了SYN的cookie策略

[外链图片转存失败,源站可能有防在这里插入!盗链机制,议描述]将图片上https://传(imblog.csdnimg.cn/ea2UuU9D-1645082347595)(media/59af512014d36d576e743a177dd9f41c.png)]

由红色部分可知,已经开启了cookie策略
因此,需要关闭这个SYN cookie策略**。如下图所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-blog.csdnimg.cn/7eec7beba7da4940bc3a974b77fa0fd1.png6)(media/a5635f2e1ab828cceee0bb7974a532bf.png

使用Client去telnet到Server,观察这个过程前后的队列端口使用情况。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gtJt9Nhsnimg.cn/072b063347596)(2caf1ed9e448cdbbcd.pngi/9e6b48011e4209205baa14c19b510b70.png)]

在成功登录到Server之后,再次查看。可以看到ESTABLISHED,表示已经建立了从Server到Client的TCP连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sz3bAfon-1645082347597)(media/61a26fe616055f63ffa680e5d14d7e40.png)]

为了在Attacker中实现SYN flood Attack,此时考虑使用netwox工具。
根据文档提示,此处应该使用的number是76,目的IP地址就是Server的IP地址,即10.0.2.5。端口号是23(因为此处使用的是telnet连接方式)。
此处的-s raw表示的是对源IP地址的混淆,使得其随机,更好的达到欺骗目的主机的作用。
在这里插入图片描述

接着在Server中查看端口以及SYN队列的使用情况。可以看到,Server建立的一些半连接状态其实都是与一些不存在的主机建立的,此处就是使用的raw的作用,使得IP地址变为随机的。

从端口上可以看出,均是23号端口,就是一个SYN flood Attack
的过程,实现的都是tcp的连接。

从连接状态中可以看出,大量的连接都已经是处于SYN_RECV的状态,表示这个连接是半打开的。
在这里插入图片描述

为了验证SYN flood
Attack是否已经成功,即SYN序列是否已满。此时需要Client再度尝试telnet连接Server,从结果中可以看到,等待较长时间后,Client都没有和Server建立起连接,这说明Client的tcp的SYN请求被Server搁置了,因为Server的SYN队列都被半开放的连接攻击给占满了,不能再给出新的连接了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r7zzfLwK-1645082347598)(media/ee6f21d99a3b5254576afa8098d37906.png)]

此时,考虑打开Server的SYN cookies机制。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VU6EjZPj-1645082347598)(media/6ad9480131ad77f40092c270d2a85002.png)]

重复上述过程。

首先查看一下Server的连接状态。与之前相同。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9PAO6EGd-1645082347599)(media/a16daeb1f2c1b97ca2383c45a72b20b1.png)]

接着在Client中telnet Server。发现也是可以正常连接成功的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传imag599)(media/3cde02d25021a604e67e798eee310ba5.png)]

接着在Server中使用netstat -na |gerp
tcp查看tcp连接。同样可以看到Server与Client建立起来的这条tcp连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q2AcBz3P-1645082347599)(media/b7883c228605050af66cb8b3e3c6ab19.png)]

然后在Attacker中使用netwox的SYN洪泛攻击技术对Server的SYN序列展开攻击。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传347600)(media/f7b2967b854df64ffc9d531a6f4e0e31.png)]

在Server中继续使用netstat -na |gerp
tcp去查看tcp连接。可以看到,同样是有许多随机IP地址发起的连接,这也是一种SYN_RECV的状态,表示是半连接的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传l,Bz-1645082347601)(media/209c0b873e9eef4511be0ff0f0bf71d3.png)]

在这里插入图片描述

3.2 Task 2: TCP RST Attacks on telnet and ssh Connections

3.2.1 TCP RST Attack
在这里插入图片描述

首先在Client中去通过telnet命令去连接Server
10.0.2.5,在正确输入password之后成功登录。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jrVgDUD1-1645082347603)(media/fda9418296f4b9946b3e3447c75798cb.png)]

首先考虑使用netwox命令去破环连接。

在Attacker中使用netwox命令对该连接实施攻击。
在这里插入图片描述

可以看到,在Client中原本建立的连接已经被中断。说明攻击成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ANXZzME-1645082347605)(media/fae6682c0903ef2b7a0f292234d37dc9.png)]

接着考虑使用scapy的方式去破环连接。

在Client与Server通过telnet命令建立了连接之后,在Attacker中通过Wireshark抓包方式,查看二者之间的数据包。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wPzuaKNy-1645082347606)(media/62103680d1c40f69822102ff9481c826.png)]

通过头部获取Client与Server之间的IP、Port、Sequence信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传606)(media/7619c80cb398a11d6d6737be7b3a0db8.png)]

因此可以在Attacker中写出Scapy的代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wwz7AEND-1645082347607)(media/859f8f3f7a41ccc52d854dc54dfe690e.png)]

此处需要注意的是需要以root权限运行程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zAWzjt7X-1645082347607)(media/507e03ff7ffd7f4102f981fe8730496b.png)]

在Attacker中运行该程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2yyY1ue2-1645082347608)(media/61c101cba725ae48f20cbfbcfce0d5bd.png)]

然后回到Client中继续想使用ls命令的时候,发现连接已经中断了,说明使用scapy程序攻击的方式也是取得了成功的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y0NCA6eb-1645082347608)(media/5b6c788bdc0736e064bbf0648245bbd4.png)]

3.2.2 SSH connection

首先是通过ssh命令建立Client与Server之间的连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKqEIpUD-1645082347609)(media/d22b84d6c31f590e1f21583f1c95d3a6.png)]

此时可以看到的是连接状态是ESTABLISHED.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4e8Ph7vt-1645082347609)(media/52a410a5e5dbe05b010d4ca104629e2f.png)]

第一种方法是考虑使用netwox命令:

在Attacker中使用netwox命令去攻击:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsmcOptq-1645082347610)(media/102b4903f43d505ec6f8bd1942eccb30.png)]

回到Client中查看连接情况,可以看到当输入ls时候,提示连接被破坏了。此时继续查看ip地址,发现是10.0.2.6,这是Client的地址,说明这个连接是被破坏了的。说明攻击成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(i0)(media/5c73d065dc2c1893996242fbe3ef1847.png)]

第二种方法是考虑使用scapy程序:

在Client与Server之间建立连接时,在Attacker中使用Wireshark抓包工具,查看到了二者直接的数据包。(数据部分被加密)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-73H5jmXS-1645082347611)(media/1d83dcb7275e1330c2605298cb7f5abb.png)]

分析查看可追踪数据包的IP、Port、NextSequence

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WNOeFFDO-1645082347611)(media/a9496c9a6a7025441bf535b96cd4d83f.png)]

因此可以在Attacker中写出代码:

此处需要注意的是sport应该为22,因为ssh是默认22端口的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWJwhgUe-1645082347612)(media/401b8d67c443c55cb507cb65ba197链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传tf40d12)(media/72fb0b28782e0d3abfd04910deba3d31.png)]

在这里插入图片描述

此时回到Client中可以看到连接被破坏了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1UMQViB-1645082347613)(media/c35e6894f9cdcd227511253f8eba5ded.png)]

在wireshark中可以看到,说明对ssh方式的连接,通过scapy的方式也可以攻击成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传613)(media/9a2fcb23b0cb2b04c1471ba6b090f986.png)]

3.3 Task 3: TCP RST Attacks on Video Streaming Applications

首先在Client中打开一个video,可以正常观看。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-43CfHZHD-1645082347613)(media/ba9ef5e154675e3215b1883a46a21f99.png)]

此时可以看到Client与video Server建立了多条tcp连接。处于Established状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img.14)(media/1ad60709f8c091be4549bc1008e19a0b.png)]

接着在Attacker中使用netwox命令去破环Client与video Server的连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-reSOdkGm-1645082347614)(media/9514c48b9d36f1b2866b2ad525fe70e6.png)]

然后在Client中就可以看到正常播放的视频此时出现了卡顿,一直显示的是缓冲中。其实这就是因为Client已经与video
Server断开了连接,因此会一直显示处于缓冲的状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1IaijoqW-1645082347614)(media/48fcab0bb3363a4517fab19cf3e2ea07.png)]

此时在Client中查看之前建立的几条连接是否正常。可以看到几条连接均已经断开,说明攻击是成功的,破坏了Client与video
Server的连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1FSH927L-1645082347615)(media/74b01dddb4b28a1d88b8cc44e613f534.png)]

3.4 Task 4: TCP Session Hijacking

3.4.1 netwox hijacking

为了模拟会话劫持之后以Client的身份删除Server上的重要文件,因此首先在Server中创建一个demo文件,本实验的成功取决于该文件是否能够被Attacker删除。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rWrlQ9ci-1645082347615)(media/446a829f59104c381862b03a011263ba.png)]

接着对rm -rf demo\r命令做十六进制。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bui7EuQy-1645082347615)(media/95d48d711b568a3b802004aec6fadff2.png)]

原因解释:此处用hex是因为netwox命令中的TCP data部分是十六进制的格式。

此处‘\r’是为了使得我们注入的指令能够正确执行,与其他指令相区分。

首先是在Client中通过telnet 10.0.2.5的方式连接到Server中。

接着在Attacker中通过wireshark分析最后一个数据包的seq以及ack序列号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UZSrc6it-1645082347616)(media/f03179eabbdd447856353ba38a936442.png)]

此处的数据包提示了是从Client到Server的数据包,提示了序列号和确认号。

此处在劫持过程中Attacker中所使用的就是从Client发送到Server的序列号为seq,确认号为Ack。

根据文档中所给提示,需要在使用netwox时候对参数进行相关的设置。

BPDNPP[B67T0KC}7]W``Y_5

执行的命令如下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kSP1Nud9-1645082347616)(media/b5c52c868a77f81a1d5ca11fe06cd003.png)]

在Attacker执行上述命令之后得到如下回显。这是我们构造的hijacking的数据包。

在Attacker中的Wireshark中查看,可以看到出现了Retransmission的信息,表示数据包一直在重传。这是合理的,因为这个会话已经被Attacker劫持了。Client与Server之间将无法通信。
在这里插入图片描述
在这里插入图片描述

此时,在Server中查看会发现demo文件已经被删除。表示进行的会话劫持是成功的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lFvSCkT3-1645082347617)(media/16c7ec567ad43f2c3d5d5bafaf8b62a8.png)]

3.4.2 scapy hijacking

首先是Client与Server建立telnet的TCP连接。

此处,在Server中创建一个demo2的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfnDvIDq-1645082347617)(media/33c245369889133e49f69a8588d2ff83.png)]

与netwox劫持原理相同,使得Client telnet 10.0.2.5连接到Server中。

在Attakcer中抓包查看telnet过程中的最后一个数据包,由此可以得到IP、port、seq、ack等信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ibsv6gHs-1645082347618)(media/f3a87216a7071d34c125c011326fabd8.png)]

根据上述信息构建此处代码TCP_hijacking.py

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tl8RpUUV-1645082347618)(media/051fa34cd525cb8c9bec7dca235b8236.png)]

在Attacker中运行该文件(root身份运行)。可以看到构造的数据包的信息如下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H86tN0xk-1645082347619)(media/3daead3606127e95811624de310b7d7e.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pSorWw36-1645082347619)(media/234620db6fd3d2b7f03ad4834f6ba4aa.png)]

此时,回到Client中,发现已经无法在其中键入命令。光标被锁死。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Em8vLy4q-1645082347620)(media/aa488dc01bb6e7e236a2ff87373f15e2.png)]

查看Attacker中的TCP数据包信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UxDO0zMe-1645082347620)(media/78f5b63ee58120db4c8d86360bc2300d.png)]

对这些重传的数据包追踪TCP流信息。可以清楚的看到我们构造的命令已经通过Client在Server中执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zz1WCydR-1645082347621)(media/988157a44bd6c3ea48db0b24f8b3094c.png)]

此时,在Server中查看文件信息,发现之前文件demo2还在,但是当执行完攻击命令之后,demo2文件已经被删除。说明通过scapy命令也完成了会话劫持攻击。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yeirypEv-1645082347621)(media/c719452bb6049b46d13822a4c9f54c9b.png)]

3.5 Task 5: Creating Reverse Shell using TCP Session Hijacking

首先在Attacker中开启监听9090端口,从Server中反射回的shell会通过9090端口返回回来。

此处nc命令的使用是表示在Attacker中开启的是9090端口,也就是相当于启动了一个tcp服务,此服务监听了从9090端口输入进来的内容。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I5fyPHdc-1645082347621)(media/fe4284d63a03be7bd9114618c7720fd6.png)]

接着在Client中使用telnet命令去连接Server 10.0.2.5的IP地址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fiYxASbW-1645082347622)(media/890a4ee63f098586bd66cefa4ba06b81.png)]

在Server中使用netstat
-na命令,可以看到已经建立了从10.0.2.5到10.0.2.6,即Server到Client的连接。

P8$G{O$~TY`LR%4}@MBL2{C

在连接过程中,Attacker捕获其中的tcp数据包,并提取最后一个数据包的信息如下。得到IP、Port、Seq、Ack这类相关信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ufhtWi77-1645082347622)(media/510e52452a6f484f24403f544765a3cb.png)]

以此信息,在Attacker中构建TCP_reverse_shell.py程序文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nq30xGvb-1645082347623)(media/04a6df4a6154f9d1784a2c9518e31149.png)]

在Attacker中运行该Scapy程序。得到了构造的数据包的信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-deIk3qrH-1645082347624)(media/16098a43a73617e1f69f6774334e6004.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KbrmXkD-1645082347626)(media/efe4bf9152f1bf6a9380b7d135cf32fc.png)]

接着在Attacker中的9090端口回显了从Server 10.0.2.5的信息。

在Server中查看此时的连接。可以看到已经和Attacker 10.0.2.8
的9090端口建立了tcp连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8U8qRlrr-1645082347626)(media/d0b2ec88436cd1f3d26335eefaa53c53.png)]

在Client中由于会话被劫持,已经不能再输入其他的命令了。输入命令也会没有反应。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NmPa40IY-1645082347627)(media/535889bf830d15f11361fb4659cb5a06.png)]

此时查看IP地址,发现已经是Server的IP地址了,即已经拿到了Server的Reverse_shell。攻击成功!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KV029USO-1645082347627)(media/12444dbfd97347c919c07e24cb5fac60.png)]

文件描述符概念:标准输入为0,标准输出为1,标准错误输出为2。
&1是标准输出文件的主机。0<&1是将标准输入由标准输出的主机输入。2>&1是将标准错误输出到标准输出的主机上。也就是说shell的输入输出都是由攻击者来控制的了。因此就可以实现了远程控制反弹shell。

四、参考文献

[1] 深入浅出TCP中的SYN-Cookies - SegmentFault
思否

https://segmentfault.com/a/1190000019292140

[2]TCP SYN-Cookie的原理和扩展_Netfilter,iptables/OpenVPN/TCP guard:

https://blog.csdn.net/dog250/article/details/51468729

[3] Linux Netcat 命令——网络工具中的瑞士军刀 -
简书

https://www.jianshu.com/p/877d72133987

[4] Linux 文件 1.4—文件描述符0 12(文件操作简述)https://cxymm.net/article/qq_45831156/107469716

[5] 使用netcat的正向 / 反向shell - botoo - 博客园
(cnblogs.com)

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值