- RDP 简介
- 如何使用
- cli linux 连接
- gui windows 连接
- 数字证书和非对称加密算法
- 对称非对称加密简介
- 数字签名的流程
ps:答案已在文中标出 RDP 简介
RDP ( Remote Desktop Protocol [1] ) 远程桌面协议,是专门用于 Windows 远程桌面和远程协助连接的,比如我们可以通过它来连接自己的内网办公的机器,一般开放在 3389 端口上
日常扫描,上一篇的都还在,多了本次的 ms-wbt-server [7] 服务
┌──(rootkali)-[~] └─# nmap -A 10.129.92.152 130 ⨯ 1 ⚙ Starting Nmap 7.92 ( https://nmap.org ) at 2022-04-19 23:13 EDT Nmap scan report for bogon (10.129.92.152) Host is up (0.63s latency). Not shown: 996 closed tcp ports (reset) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds? 3389/tcp open ms-wbt-server Microsoft Terminal Services如何使用 cli linux 连接
同样是两种,使用命令行( cli [2])工具 xfreerdp [6] ,还有类似的 xdesktop 可以自己尝试,help 查看使用帮助,使用 /v:ip:port /u:username [8] 来连接,windows 的默认管理员就是 Administrator, 密码为空 (因为是 easy 难度的)
xfreerdp /u:Administrator /v:10.129.92.152 Password: # 有一个提示问我们要不要信任上面的证书 输入 Y 信任 Do you trust the above certificate? (Y/T/N)
成功连接
但是要注意一点,一般情况下我们连接之后是属于远程控制用户组的,没有很大的权限,只能进行部分操作,一般也无权查看所有的文件,而且使用此类工具连接很容易断连
gui windows 连接windows 下我使用图形化工具(gui [3]) MobaXterm 远程管理软件,支持多协议认证连接,平时就用它连接云服务器,我们在第一篇时接触的 telnet [4] 也是远程连接的协议,连接云服务器一般用 ssh 协议,使用 RDP 连接,输入IP、用户名
连接成功
数字证书和非对称加密算法 对称非对称加密简介众所周知,信息安全的一大特性就是机密性,我们常使用算法来保证通信安全、数据安全,使用密钥来加密解密数据,这通常是依托于某种算法来实现的
加密算法主要分两种,对称加密算法和非对称加密(公钥加密 public-key cryptography [5])算法
对称加密算法:加密和解密使用同一个密钥 非对称加密算法:加密和解密使用不同的密钥,一个叫公钥一个叫私钥,公钥加密只有私钥能解开,同样的,私钥加密只有公钥能解开
-
公钥顾名思义就是分发给所有人的密钥,私钥就是由私人保存的
-
对称加密的机密性依赖于密钥的机密性,一旦密钥泄露,数据的安全就无法保证,而对称加密在加密前需要将密钥让通信双方共享,这是比较危险的
-
非对称加密它的运算速度则比较慢,所以很多时候我们会使用 对称+非对称 两种方式结合加密,比如 Https,使用非对称加密传输对称加密的密钥,使用对称加密传输数据
公钥加密,私钥解密用于保证数据的安全性,如下图,小红,小蓝,小灰都有小绿的公钥,小绿保存着对应的私钥
如果小蓝发送了一条消息,用公钥加密,小红,小灰是无法解密数据的,只有拥有私钥的小绿能解密,这就保证的数据的机密性
而私钥加密,公钥解密则是用于身份验证
小绿用自己的私钥加密,拥有公钥的小红、小蓝、小灰都可以解密该数据,从而确认数据是由小绿发送的,这也是数字签名的原理
数字签名的流程小绿将自己的明文进行摘要的计算,再将摘要用私钥加密获得签名,将签名和明文一起发送
小红收到后,使用小绿的公钥解密,获得 hash 值,然后计算信件的 hash 值与解密的 hash 值进行比对,一致则确认信件没有被篡改,且是小绿发的,这一过程叫做验签
如果没有私钥加密摘要这一步骤,攻击者完全可以截获并篡改信件后重新生成摘要,这样就无法证明信件的机密性了
这其中还有一个问题,公钥的真实性怎么保证?
答案是,由第三方机构统一颁发,也就是常说的 CA(Certificate Authority)证书认证机构,平时在浏览器中经常会看到,一个数字证书会包含以下主要信息
公钥: Bob 的公钥 所有者: Bob 颁发者: CA 有效期: 证书的使用期限 签名哈希算法: 指定摘要算法,用来计算证书的摘要 指纹: 证书的摘要,保证证书的完整性 签名算法: 用于生成签名,确保证书是由 CA 签发的 序列号: 证书的唯一标识
当然,证书也会有自己的签名,来确保证书不会被伪造,在生成数字证书这一过程中,会使用 CA 的私钥对数字证书进行签名,我们使用 CA 的公钥就可以安全获取 Bob 的公钥了,这样在通信时就可以确认对方的身份了,而我们选择信任它的证书就是说明选择信任通信方
至此,基本问题都解决了,填入flag,我们第四个靶机就完成了!



