暴力破解 SSH

 Kali 的 MSF 终端,对渗透目标主机 的 SSH 服务进行暴力破解。

破解的是否成功取决于字典和目标是否使用弱密码。

一,实验环境

分别是攻击机和靶机(也可是其他目标服务器)

二、利用 SSH 弱密码进行暴力破解

暴力破解最重要的要素是密码文件,密码文件通常包含目标系统最可能出现的用户名及密码对,暴力破解 SSH 的原理就是从密码文件中读取一个个用户名和密码对尝试 SSH 登录,如果失败则尝试下一个,如果成功则将匹配的信息打印出来。

首先,我们看下字典文件中的内容,文件的位置在 /usr/share/metasploit-framework/data/wordlists/,进入到这个文件夹可以看到有很多个字典:

$ cd /usr/share/metasploit-framework/data/wordlists/
$ ls

 暴力破解 SSH_第1张图片

这里选择 piata_ssh_userpass.txt,主要原因是这个文件的大小还算合适,不至于运行太长时间,并且包含了常见的弱密码类型。

查看字典文件长度(有917行)和内容(每行为两个单词,前一个为用户名,后一个为密码):

cat

head

2.1 启动 msfconsole

在 Kali 中执行下面的命令,进入 msfconsole:

可以直接在界面中搜索启动

sudo msfconsole

 2.2 使用的攻击模块

 在 msfconsole 中执行后续的命令:

  1. use 命令使用攻击模块
  2. set 命令配置参数
  3. show options 查看所有参数
  4. exploit 执行攻击

本步骤中,我们使用 use 命令选择攻击脚本:

msf > use auxiliary/scanner/ssh/ssh_login 

 注意:msfconsole 的提示符中增加了 ssh_login 信息。

暴力破解 SSH_第2张图片

2.3 配置攻击模块 

查看并配置攻击模块必要的参数,此处需要配置的有下面几方面信息:

  1. rhosts 目标服务器列表,我们配置为 target
  2. userpass_file 使用的密码字典文件,我们使用 metasploit-framework 内置的一个密码文件,在 3.1 中有介绍,大概有900多行,如果使用更大的字典文件,测试的时间将更长
  3. verbose 设置为 false,避免输出大量的中间信息

msf > set rhosts 目标IP
msf > set userpass_file /usr/share/metasploit-framework/data/wordlists/piata_ssh_userpass.txt
msf > set verbose false 

2.4 暴力破解攻击

最后,查看下配置信息,确认下是否准确: 

msf > show options 

开始执行暴力破解,使用的是 exploit 命令:

暴力破解 SSH_第3张图片 注意:执行时间比较长,我们可以在出现第一次正确信息的时候(大概几分钟)执行 Ctrl-C 中断程序,然后继续后续的实验操作。 (这里是攻击的服务器,并没有成功,如果是靶机是可以破解的,操作都是一样的)

2.5 进入shell

暴力破解的时间会很长,但中间会陆续输出一些成功的用户名和密码对,因为靶机上的可以通过 SSH 登录的用户很多,并且都有弱密码,所以会输出多个,为了节约时间,我们可以在输出第一个的时候就直接 Ctrl-C 退出后续的暴力破解过程。

暴力破解 SSH_第4张图片 当匹配成功的时候,攻击脚本会自动创建一个 SSH 连接会话,我们可以使用 sessions -i  这个命令将终端切换到会话中。

注意:session id 可义从攻击过程中的输出信息中看到。

进入到这个 Shell 中我们就可以执行一系列的命令了:

三,Hydra爆破

Kali 中还内置了一个暴力破解的工具 九头蛇(hydra):hydra是著名黑客组织Thc开发的的一款开源的暴力破解密码工具,功能非常强大,kali下是默认安装的,几乎支持所有协议的在线破解。这个工具也可应用到 SSH 暴力破解的场景中,同样,也是使用密码字典文件进行不断的尝试,在 Kali 的命令行中执行下面的命令可以进行攻击:

其中 -C 指定使用的字典文件,但要求字典中的用户名和密码间使用 : 隔开。后面的IP地址是我们的目标靶机,ssh为攻击的服务

hydra -C userpass.txt 目标地址 ssh

-l login 小写,指定用户名进行破解

-L file 大写,指定用户的用户名字典

-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。

-P file 大写,用于指定密码字典。

-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探

-M file 指定目标ip列表文件,批量破解。

-o file 指定结果输出文件

-f 找到第一对登录名或者密码的时候中止破解。

-t tasks 同时运行的线程数,默认是16

-w time 设置最大超时时间,单位

-v / -V 显示详细过程

-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)

-x 自定义密码。

service:指定服务名,支持的服务跟协议有:telnet,ftp,pop3等等。

你可能感兴趣的:(kali,ssh,kali)