TCPIP实验

本文最后更新于:2021年8月31日 早上

⚔️TCPIP实验🛡️

🛑郑重声明

此文章可能会包含敏感以及危险的命令❗❗❗命令有风险,回车需谨慎。(越学越有判头了!)

此文章仅供学习交流与参考使用,禁止运用于任何非法行动或测试中,若有预期之外的后果,将不承担任何责任!!

❌ERHE再次进行警告与提醒!

┌──( root💀KaLi-Erhe )-[ ~ ]
└─# cat 重要的事情说三遍 ❗❗❗

  • ⭕命令有风险,回车需谨慎 ❗

  • ⭕命令有风险,回车需谨慎 ❗

  • ⭕命令有风险,回车需谨慎 ❗

👋一、 TCP/IP基础

协议了解

  • HTTP-超文本传输协议
  • SMTP-简单邮件传输协议
  • POP2-收邮件协议2
  • FTP-文件传输协议
  • Telnet-远程传输协议(不安全)
  • SNMP-简单网络管理协议
  • DNS-域名服务器协议
  • T-传输
  • C-控制
  • P-协议

给我送手机,可靠性传输

  • U-用户
  • D-数据包
  • P-协议

5个包子51个人抢,不可靠性传输

  • ICMP-控制报文协议
  • ARP-地址解析协议
  • IP-网际互联协议
  • RIP-路由信息协议
  • OSPF-内部网关协议
  • STP-生成树协议
  • BGP-路由协议
  • ISIS-链接状态路由协议

message报文

数据包(封包)

数据

接受到了数据不一定得到信息,得到了信息一定收到了数据。

用端口号来翻译收到的信息

📊上课课件:

https://portn.kbai.cc:82/hexo&kbai/doc/wlgfdy/About%20TCP.pptx

🐬二、Wireshark的使用

📊上课课件:

https://portn.kbai.cc:82/hexo&kbai/doc/wlgfdy/How%20to%20use%20Wireshark.pptx

🪶本节课的作业

使用Wreshark证明Telnet的连接是不安全的

1、环境准备:
  • Ubuntu20.04 LTS 64位,这个用来作为Telnet被连接的机器
  • KaLi 64位,这个用来使用Wireshark来抓包
  • CentOS 7.5 1804 64 位,用这个来用作Telnet连接的机器

2、在Ubuntu20.04 LTS 64位上面配置Telnet服务

  • 安装Telnet服务的客户端服务端以及守护程序
1
2
sudo apt update
sudo apt install telnet telnetd xinetd
  • 修改配置文件:/etc/inetd.conf如果没有这个文件就自动添加
1
sudo  vim  /etc/inetd.conf
  • 写入配置文件以下的代码
1
2
telnet  stream   tcp   nowait   telnetd  /usr/sbin/tcpd/   /usr/sbin/in.telnetd
telnet stream tcp nowait root /usr/sbin/tcpd/ /usr/sbin/in.telnetd

  • 再来修改配置文件:/etc/xinetd.conf
1
sudo vim /etc/xinetd.conf
  • 如下图位置所示,增加如下内容
1
2
3
4
5
instances = 60 
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30

  • 再来修改配置文件:/etc/inetd.conf
1
vim /etc/xinetd.d/telnet
  • 如下图位置所示,增加如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}

  • 开启Telnet服务
1
2
3
sudo systemctl restart xinetd
# 或者是
sudo /etc/init.d/xinetd restart
  • 查看主机IP地址
1
ip a

2、在CentOS 7.5 1804 64 位上面配置Telnet服务

  • 安装Telnet服务的客户端服务端以及守护程序
1
2
sudo yum update
sudo yum install -y telnet telnetd xinetd

3、在KaLi 64位上面打开Wireshark来进行抓包

4、在CentOS 7.5 1804 64 位上面进行Telnet连接,并进行命令操作

5、返回KaLi 64位上面查看Wireshark的抓包信息

  • 下面的是过滤前的结果,下面有此次抓包的结果文件

https://portn.kbai.cc:82/hexo&kbai/doc/wlgfdy/Telnet%e6%8a%93%e5%8c%85.pcap

6、进行过滤器来进行分析

  • 过滤后的结果,可以看见我被抓包时,每次输入的内容

  • 例如:我这句连续输入dingye这些字符

  • 输入的d

  • 输入的i

  • 省略两张图ng:输入的y

  • 输入的e

⚠️结论

Telnet的连接没有进行任何的加密传输,即在使用Telnet服务的时候,只要有人使用抓包软件,就能够抓取你对服务器的所有操作信息!所以说Telnet协议是不安全的。

🍳三、TCP连接时的数据分析

🪶本节课的作业

使用Wreshark进行三次握手、四次挥手的TCP协议分析

1、环境准备:
  • KaLi 64位,这个用来使用Wireshark来抓包,并进行数据分析
  • 对我的主页( https://erhe.group/ )进行访问,进行抓包数据分析

1、先开启抓包,然后进行网页的访问,下面是抓包的结果

  • 下面的是过滤前的结果,下面有此次抓包的结果文件

https://portn.kbai.cc:82/hexo&kbai/doc/wlgfdy/tcp-3th-4rd.pcap

2、进行数据包的过滤

过滤器的命令

1
((tcp.srcport == 443) && (tcp.dstport == 33312)) || ((tcp.srcport == 33312) && (tcp.dstport == 443))

下面是过滤后得到的结果!

🤝三次握手:

第一步:我们我们发送了一个HTTP的HEAD请求。
第二步:服务器收到我们的请求返回了一个Seq/ACK进行确认。
第三步:服务器将HTTP的头部信息返回给我们客户端状态码为200表示页面正常第四步:客户端收到服务器返回的头部信息向服务器发送Seq/ACK进行确认。发送完成之后客户端就会发送FIN/ACK来进行关闭链接的请求。

我这次抓到的结果

👋四次挥手:

第一次挥手:服务端发送一个[FIN+ACK],表示自己没有数据要发送了,想断开连接,并进入FIN_WAIT_1状态
第二次挥手:客户端收到FIN后,知道不会再有数据从服务端传来,发送 ACK进行确认,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),客户端进入CLOSE_WAIT状态。
第三次挥手:客户端发送[FIN+ACK]给对方,表示自己没有数据要发送了,客户端进入LAST_ACK状态,然后直接断开TCP会话的连接,释放相应的资源。
第四次挥手:服务户端收到了客户端的FIN信令后,进入TIMED_WAIT状态,并发送 ACK确认消息。服务端在TIMED WAIT状态下,等待一段时间,没有数据到来,就认为对面已经收到了自己发送的ACK并正确关闭了进入CLOSE状态,自己也断开了TCP连接,释放所有资源。当客户端收到服务端的ACK回应后,会进入CLOSE状态并关闭本端的会话接口,释放相应资源。

我这次抓到的结果

📊预备课件:

https://portn.kbai.cc:82/hexo&kbai/doc/wlgfdy/How%20to%20use%20the%20NMAP.pptx

📣特别声明

此文章全部都是依靠自己的学习理解来写的原创文章,难免可能会出现有错误的地方,

如果大家以后阅读的时候发现有问题,那就麻烦到下方评论区来进行错误指出,使错误尽快做出改正,

在此,感谢大家的阅读与支持!🤝💦🎉

🍻支持一下

觉得我写的好的话可以支持一下我哦~持续关注我,会更新其他好玩且实用的项目。

👋如果我能帮助到你,那就请我喝杯🧋呗~👇👇👇