SSH
SSH
1.什么是SSH
一般来说搭建服务器,使用网站就会涉及到这个协议的使用, 比如我在ucloud的上租了一个liunx的云服务器:
SSH的全称是安全外壳协议,它是一种加密的传输协议,最主要的使用功能和用途就是用来远程登录系统。可以在不安全的网络中为网络服务提供安全的传输环境。其通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。
当然除了使用云服务外,使用shell7或者是MobaXterm也是采用这种协议的。
2.常见端口及对应服务
- 22端口 SSH
- 23端口 Telnet
- 25端口 SMTP
- 80端口 HTTP
- 443端口 HTTPS
- 445端口 SMB(用于Windows文件共享和打印机共享) 著名漏洞:ms17-010 永恒之蓝
- 3306端口 mysql
- 3389端口 rdp远程桌面连接服务
这些都是渗透中比较常见的扫描端口
3.使用Nmap扫描SSH端口
这里以两个版本的kali虚拟机作为示例,其中喜多川壁纸背景的kali2022版本为攻击机(看我夹带私货),原壁纸的kali2021版本作为靶机
攻击机:192.168.32.131
靶机:192.168.32.128
接下里我们需要开启靶机的相关服务,使得能够被扫描成功,首先进入root权限查看ssh运行情况
1 |
|
可以看到进程的活跃状态是死的,这需要我们修改内容后进行重启
1 |
|
然后继续重启ssh,并查看运行状态
1 |
|
在拥有相关地址信息并配置好后,开始让攻击机进行扫描,使用nmap进行操作
1 |
|
上图所示,我进行了两次扫描,第一次是在靶机开启ssh前,一次是在ssh开启后,明显的扫描到了22/tcp open ssh的结果。
4.Hydra等工具爆破SSH端口
对于SSH协议,其实有比较多的爆破工具进行爆破,比如Hydra、msf、美杜莎等等。其中Hydra也就是我们所说的九头蛇工具,一般指令是:
1 |
|
我展示了两张运行效果,第一张是在字典没有账号密码的情况下爆破,第二张则是有对应kali的账号密码进行爆破。如果要查看详细结果则可以在进行如下命令运行:
1 |
|
5.SSH登录
当有账号密码的时候,其实就很简单了,链接的办法就有很多了,比如我们在使用liunx的时候,就能直接使用ssh进行连接,当然也可以使用前面提高的shell等工具进行连接,这里展示使用kali攻击机进行连接
1 |
|
6.创建隐藏计划任务
从前面可以看到,我已经使用攻击机ssh连接到了靶机,接下来我们进行一下操作进行尝试,比如创建隐藏计划任务,访问tmp文件,进行bash的修改
接下来使用vim task.sh命令修改内容,如果这个文件存在就会进行编辑,如果这个文件不存在就会创建一个空文件再进行编辑,我执行该命令进去后是空白的文件,这说明该文件是之前不存在的,接下来写入对应的代码:
1 |
|
1 |
|
接下来查看我们创建tash文件的权限
1 |
|
虽然显示了可读可写但是没有执行的权限,所以这里我们使用chmod进行权限的赋予
1 |
|
1 |
|
这里需要注意两点,一点是在printf后面需要有个空格,我忘记加入了,导致一开始没有成功,第二个需要在./create_task.sh前使用指令监听对应端口
1 |
|
就这样子,最终达到了达到最终的权限维持的目的
7.SSH端口爆破的应急响应
我们可以通过一些指令去查看是否有被可疑地址链接的情况,比如如下的指令:
1 |
|
可以看到,靶机被攻击机的连接存在了记录,第六步的创建隐藏计划任务成功的后,PID和Program name也会有对应的内容你,比如2110/bash等,这种时候就需要用到进程树的指令
1 |
|
接下来就是一层层的往上查找,使用命令查看执行命令
1 |
|
1 |
|
接下来就是杀死进程,删除文件以及修改账号密码了
1 |
|