一、 常见端口
- http协议:80、8000
- https协议:443、8443
- ftp协议:20(数据传输)、21(发送命令)
- smb协议:445
二、HTTP协议
https
的握手过程:
(1)首先,客户端和服务端通过443端口
且使用TCP协议建立一个会话,如下图蓝色框框所示;
(2)建立TCP会话之后,客户端和服务端进行TLS握手,主要协商会话标识符、数据压缩算法、加密算法等,如下图红色框框所示。
- 具体的TLS握手流程如下:
三、FTP
FTP协议是一种应用层协议,可在计算设备之间实现快速数据传输。FTP协议通过TCP使用20和21端口,其中20端口用于数据传输,21端口用于发出控制FTP会话的命令。在身份验证方面,FTP支持用户身份验证,也允许匿名访问。FTP命令和反应的例子如下:
其中,绿色箭头代表请求时间,蓝色箭头代表响应。
常见ftp命令:
ftp连接命令:ftp <ip>
四、SMB
SMB协议是一种面向连接的协议,其要求用户身份验证,主要用于主机之间共享资源。常用端口是445端口(基于TCP)。下图是一个SMB数据包交换情况:
使用SMB协议之前会实施TCP三次握手,如上图橙色框框所示。蓝色框框显示数据包的源端口和目的端口情况。绿色框框则是显示SMB通信中发生的信息。
使用smbclient
工具连接SMB服务:
- smbclient -l -N \\\\<ip>
:显示指定ip的共享文件夹(-L),并禁止显示密码提示(-N);
- smbclient -U <username> \\\\<ip>\\<folder>
:用用户名连接共享的文件夹。
五、SSH
- 登录SSH命令:
ssh <username>@<ip>
- 使用用户私钥登录ssh
用户ssh私钥文件路径:/home/user/.ssh/id_rsa
or/root/.ssh/id_rsa
,如果我们能读取私钥文件,将其私钥文件复制到本机上,并且使用ssh -i
命令登录ssh,具体命令如下:
- 使用授权的ssh私钥登录ssh
- 在本机上使用
ssh-keygen -f key
(其中f
表示输出的文件名)命令生成公钥(hey.pub)和私钥(key); - 将生成的公钥内容写入到目标主机的
/root/.ssh/authorized_keys
; - 使用私钥进行免密登录
ssh username@ip -i key
;
- 在本机上使用
----2023.11.11