对于 Linux 操作系统来说,一般通过 VNC、Teamviewer 和 SSH 等工具来进行远程管理,SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 客户端适用于多种平台,几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台都可运行 SSH。Kali Linux ***测试平台默认配置 SSH 服务。SSH 进行服务器远程管理,仅仅需要知道服务器的IP地址、端口、管理账号和密码,即可进行服务器的管理,网络安全遵循木桶原理,只要通过 SSH 撕开一个口子,对***人员来时这将是一个新的世界。
本文对目前流行的 SSH 密码暴力破解工具进行实战研究、分析和总结,对******测试和安全防御具有一定的参考价值。
一、SSH密码暴力破解应用场景和思路
1. 应用场景
(1)通过 Structs 等远程命令执行获取了 root 权限。
(2)通过 webshell 提权获取了 root 权限
(3)通过本地文件包含漏洞,可以读取 linux 本地所有文件。
(4)获取了网络入口权限,可以对内网计算机进行访问。
(5)外网开启了 SSH 端口(默认或者修改了端口),可以进行SSH访问。
在前面的这些场景中,可以获取 shadow 文件,对其进行暴力破解,以获取这些账号的密码,但在另外的一些场景中,无任何漏洞可用,这个时候就需要对 SSH 账号进行暴力破解。
2. 思路
(1)对 root 账号进行暴力破解
(2)使用中国姓名 top1000 作为用户名进行暴力破解
(3)使用 top 10000 password 字典进行密码破解
(4)利用掌握信息进行社工信息整理并生成字典暴力破解
(5)信息的综合利用以及循环利用
二、使用 hydra 暴力破解 SSH 密码
hydra 是世界顶级密码暴力密码破解工具,支持几乎所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大。在网络安全***过程中是一款必备的测试工具,配合社工库进行社会工程学***,有时会获得意想不到的效果。
1. 简介
hydra 是著名***组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码,目前已经被Backtrack和kali等***平台收录,除了命令行下的hydra外,还提供了hydragtk版本(有图形界面的hydra),官网网站:http://www.thc.org/thc-hydra ,目前最新版本为7.6下载地址:http://www.thc.org/releases/hydra-7.6.tar.gz ,它可支持AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, uHTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET,HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP 等类型密码。
2. 安装
(1)Debian 和 Ubuntu 安装
如果是 Debian 和 Ubuntu 发行版,源里自带 hydra,直接用 apt-get 在线安装:
sudo apt-get install libssl-dev libssh-devlibidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-devfirebird2.1-dev libncp-dev hydra
Redhat/Fedora 发行版的下载源码包编译安装,先安装相关依赖包:
yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel
(2)centos 安装
# tar zxvf hydra-7.6-src.tar.gz
# cd hydra-6.0-src
# ./configure
# make
# make install
3. 使用 hydra
BT5 和 kali 都默认安装了 hydra,在 kali 中单击“kali Linux”-“Password Attacks”-“Online Attacks”-“hydra”即可打开 hydra。在 centos 终端中输入命令 /usr/local/bin/hydra 即可打开该暴力破解工具,除此之外还可以通过 hydra-wizard.sh 命令进行向导式设置进行密码破解,如图1所示。
图1:使用 hydra-wizard.sh 进行密码破解
如果不安装 libssh,运行 hydra 破解账号时会出现错误,如图 2 所示,显示错误提示信息:[ERROR] Compiled without LIBSSH v0.4.x support, module is not available! 在 centos 下依次运行以下命令即可解决:
yum install cmake
wget http://www.libssh.org/files/0.4/libssh-0.4.8.tar.gz
tar zxf libssh-0.4.8.tar.gz
cd libssh-0.4.8
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DWITH_SSH1=ON ..
make
make install
cd /test/ssh/hydra-7.6 (此为下载hydar解压的目录)
make clean
./configure
make
make install
图2:出现 libssh 模块缺少错误
4. hydra 参数详细说明
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]
-l LOGIN 指定破解的用户名称,对特定用户破解。
-L FILE 从文件中加载用户名进行破解。
-p PASS小写p指定密码破解,少用,一般是采用密码字典。
-P FILE 大写字母P,指定密码字典。
-e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。
-C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。
-t TASKS 同时运行的连接的线程数,每一台主机默认为16。
-M FILE 指定服务器目标列表文件一行一条
-w TIME 设置最大超时的时间,单位秒,默认是30s。
-o FILE 指定结果输出文件。
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。
-v / -V 显示详细过程。
-R 继续从上一次进度接着破解。
-S 采用SSL链接。
-s PORT 可通过这个参数指定非默认端口。
-U 服务模块使用细节
-h 更多的命令行选项(完整的帮助)
server 目标服务器名称或者IP(使用这个或-M选项)
service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracl