今天主要是初步介绍一些Hydra和Medusa的分析和内容,旨在方便快速入门,这是第一部分Medusa,后面附带一些字典,之所以是写一起,我是觉得这两个都是不错的工具,不应该分开的,在这种思想下就汇总成一个标题,便于检索

Medusa快速入门

JoMo-Kun / jmk@foofus.net

目录

 0x00Medusa是什么?

·0×01为什么创造Medusa?

·0×02如何使用Medusa?

·0×03哪里可以下载?

·0×04可以联系谁?

·0×05嘿嘿嘿?

0×00 Medusa是什么?

Medusa旨在成为一个迅速,大规模并行,模块化,爆破登录。目标支持大部分允许远程登录的服务。以下是Medusa项目一些主要功能:

·基于线程的并行测试。可以同时对多个主机,用户或密码执行强力测试。

·灵活的用户输入目标信息(主机/用户/密码)可以通过多种方式指定。例如,每个项目可以是单个条目或包含多个条目的文件。此外,组合文件格式允许用户改进其目标列表。

·模块化设计。每个服务模块作为独立的.mod文件存在。这意味着,核心应用程序不需要进行任何修改,以便扩展支持的强制服务列表。

0×01为什么创造Medusa?

为什么要创造Medusa?这与THC-Hydra不一样吗?以下是此应用程序的一些原因:

·应用稳定。可能我是个跛脚汉,但是九头蛇也经常摔倒。我不再相信Hydra实际上的功能是否和自己声称的那样比起修复Hydra,我决定创建自己新的应用程序,虽然这可能会以新的和令人兴奋的方式崩溃。

·代码结构。一段时间后,我向Hydra添加了几个功能(并行主机扫描,SMBNT模块)。将并行主机代码复制到Hydra真的是的痛苦。这主要是由于我的编码上的无力,但也可能是由于Hydra不是从底层设计来支持这一点。而Medusa从一开始就设计为支持主机,用户和密码的并行测试。

·速度。Hydra通过为每个主机和正在测试的服务的实例分派新流程来完成其并行测试。当一次测试许多主机/用户时,会产生大量的开销,因为每个分叉进程的用户/密码列表必须重复。Medusa是基于pthread的,不会不必要地重复信息。

·教育。我不是一个有经验的C程序员,也不认为自己是多线程编程的专家。写这个应用程序是对我的训练。希望其结果对别人有用。

下面是Medusa和Hydra的详细比较:

特征 Medusa2.2 Hydra7.1 Ncrack 0.4ALPHA
* License GPL-2 GPL-3 GPL-2
核心 并行方式 Pthread fork()  
  服务设计 模块化 内建  
  速度      
通用包装模块      
AFP    
CVS    
FTP FTP
  Explicit显式FTPS(RFC 4217中定义的AUTH TLS模式)
  Implicit隐式FTPS(FTP over SSL(990 / tcp)
HTTP 基本认证
  NTLM认证(Windows集成)  
  摘要认证 MD5,MD5-sess MD5  
HTTP代理      
ICQ      
IMAP LOGIN支持  
  AUTH-PLAIN支持  
  AUTH-NTLM支持  
  SSL支持 IMAPS,STARTTLS IMAPS,STARTTLS  
LDAP      
Microsoft SQL 端口自检    
  MS-SQL  
MySQL的 Pre4.1的认证  
  Pre4.1的散列传递    
  4.1+认证  
NCP(NetWare)   √(ncpfs) √(ncpfs)  
NNTP   √(原AUTHINFO) √(原AUTHINFO)  
Oracle 数据库 √(通过Wrapper脚本)    
  Listener监听      
  SID    
远程控制软件 支持的加密级别 没有 没有  
  支持的认证模式 本地PCA,ADS,NT,Windows 原生PCA  
PCNFS      
POP3 AUTH-USER支持
  AUTH-LOGIN支持  
  AUTH-PLAIN支持  
  AUTH-NTLM支持  
  SSL支持 POP3S,STARTTLS POP3S POP3S,STARTTLS
PostgreSQL的    
RDP(终端服务器)  
  哈希支持    
REXEC    
RLOGIN .rhost支持    
  密码支持  
RSH    
SAPR3      
SIP      
SMB(Microsoft Windows / Samba) 验证模式 明文,LMv1,NTLMv1,LMv2,NTLMv2 明文,LMv1,NTLMv1,LMv2,NTLMv2 未知
  哈希传递  
  访问检测(ADMIN $)    
SMTP 方法AUTH-LOGIN支持  
  方法AUTH-PLAIN支持  
  方法AUTH-NTLM支持  
  SSL支持 STARTTLS STARTTLS  
  VRFY  
  EXPN    
  RCPT TO    
SNMP   √(设计明显更快) √(用“HYDRA”覆盖sysName)  
SOCKS5      
SSHv2的   √(libssh2) √(libssh)
SVN    
小组发言      
远程登录 通用Telnet
  思科(AAA /非AAA)
  思科启用密码    
  AS / 400(TN5250)支持    
VNC 无密码/仅限密码支持  
  反强力减速支持    
  用户名/密码支持    
VmWare验证守护进程 非SSL认证  
  SSL认证    
Web表单模块    

速度比较:20个条目的密码列表(20个有效的条目)

FTP / Ubuntu 11.10 vsftp 2.3.2

  【1Task】 【4Task】 【16Task】 备注
Medusa 1:03.53 15.727 7.658 -t 16
Hydra 57.627 16.548 8.013 -t 16
Ncrack 1:00.01 24.017 15.009 -g cl=16,CL=16

速度比较:1003个条目的密码列表(#1000的有效条目)

HTTP / Windows 2008 IIS 7.0

  【1Task】 【4Task】 【16Task】 备注
Medusa 1.390 0.8030 0.626 -t 16
Hydra 1.443 0.855 0.790 -t 16
Ncrack 3.108 3.016 3.013 -g cl=16,CL=16

速度比较:1003个条目的密码列表(#986的有效条目)

SMB / Windows 2008

  【1Task】 【4Task】 【16Task】 备注
Medusa 6.859 0.919 0.500 -v4 -t 16
Hydra 8.216 不支持
Ncrack

速度的比较:10个条目的密码表(在#10)有效条目

SSH Ubuntu 11.10 OpenSSH 5.8p1

  【1Task】 【4Task】 【16Task】 备注
Medusa 38.039 11.943 8.067 -v 4 -t 16
Hydra 32.122 12.208 8.457 -t 16
Ncrack 30.023 27.012 24.013 -g cl=16,CL=16

 

0x02如何使用

我该怎么用这个东西?可以先直接medusa -h查看,以下是几个示例用途:

·显示当前安装的所有模块:

root@kali:~# medusa -d
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>Available modules in "." :Available modules in "/usr/lib/x86_64-linux-gnu/medusa/modules" :+ cvs.mod : Brute force module for CVS sessions : version 2.0+ ftp.mod : Brute force module for FTP/FTPS sessions : version 2.1+ http.mod : Brute force module for HTTP : version 2.1+ imap.mod : Brute force module for IMAP sessions : version 2.0+ mssql.mod : Brute force module for M$-SQL sessions : version 2.0+ mysql.mod : Brute force module for MySQL sessions : version 2.0+ nntp.mod : Brute force module for NNTP sessions : version 2.0+ pcanywhere.mod : Brute force module for PcAnywhere sessions : version 2.0+ pop3.mod : Brute force module for POP3 sessions : version 2.0+ postgres.mod : Brute force module for PostgreSQL sessions : version 2.0+ rexec.mod : Brute force module for REXEC sessions : version 2.0+ rlogin.mod : Brute force module for RLOGIN sessions : version 2.0+ rsh.mod : Brute force module for RSH sessions : version 2.0+ smbnt.mod : Brute force module for SMB (LM/NTLM/LMv2/NTLMv2) sessions : version 2.1+ smtp-vrfy.mod : Brute force module for verifying SMTP accounts (VRFY/EXPN/RCPT TO) : version 2.1+ smtp.mod : Brute force module for SMTP Authentication with TLS : version 2.0+ snmp.mod : Brute force module for SNMP Community Strings : version 2.1+ ssh.mod : Brute force module for SSH v2 sessions : version 2.1+ svn.mod : Brute force module for Subversion sessions : version 2.1+ telnet.mod : Brute force module for telnet sessions : version 2.0+ vmauthd.mod : Brute force module for the VMware Authentication Daemon : version 2.0+ vnc.mod : Brute force module for VNC sessions : version 2.1+ web-form.mod : Brute force module for web forms : version 2.1+ wrapper.mod : Generic Wrapper Module : version 2.0

模块解释:

cvs   
是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。但是由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了CVS。

ftp    
文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。

http
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

imap
IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。

mssql 
ms SQL是指微软的SQLServer数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。SQL Server一开始并不是微软自己研发的产品,而是当时为了要和IBM竞争时,与Sybase合作所产生的,其最早的发展者是Sybase,同时微软也和Sybase合作过 SQL Server 4.2版本的研发,微软亦将SQL Server 4.2移植到Windows NT(当时为3.1版),在与Sybase终止合作关系后,自力开发出SQL Server 6.0版,往后的SQL Server即均由微软自行研发。

mysql 
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

nntp
网络新闻传输协议是一个主要用于阅读和张贴新闻文章(俗称为“帖子”,比较正式的是“新闻组邮件”)到Usenet上的Internet应用协议,也负责新闻在服务器间的传送。
NNTP用于向Internet上NNTP服务器或NNTP客户(新闻阅读器)发布网络新闻邮件的协议,提供通过Internet使用可靠的基于流的新闻传输,提供新闻的分发、查询、检索和投递。NNTP还专门设计用于将新闻文章保存在中心数据库的服务器上,这样用户可以选择要阅读的特定条目,还提供过期新闻的索引、交叉引用和终止。

pcanywhere
PcAnywhere是一款远程控制软件,你可以将你的电脑当成主控端去控制远方另一台同样安装有pcANYWHERE的电脑(被控端),你可以使用被控端电脑上的程序或在主控端与被控端之间互传文件。你也可以使用其闸道功能让多台电脑共享一台MODEM或是向网路使用者提供打进或打出的功能。

pop3
POP3,全名为“Post Office Protocol – Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。

postgres
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。

rexec 
REXEC是服务的远程计算机上运行命令。rexec 命令在执行指定命令前,验证远程计算机上的用户名,只有安装了 TCP/IP 协议后才可以使用该命令。

rlogin
远程登录(rlogin)是一个 UNIX 命令,它允许授权用户进入网络中的其它 UNIX 机器并且就像用户在现场操作一样。一旦进入主机,用户可以操作主机允许的任何事情,比如:读文件、编辑文件或删除文件等。Rlogin:远程登录命令 rlogin:Remote Login in Unix systems

rsh 
Rsh 是远程外壳(remote shell) 的缩写(外壳是操作系统的一种命令接口)。运行于远程计算机上的rshd 后台程序,接受rsh 命令,验证用户名和主机名信息,并执行该命令。当用户不愿或不需要与远程计算机建立远程会话时,可以使用rsh 工具执行输入的命令。Rsh 工具允许用户在远程计算机上执行单条命令,而无需在该远程计算机上进行登录。

smbnt 
SMBNT模块根据Microsoft netbios-ssn(TCP / 139)和microsoft-ds(TCP / 445)服务测试帐户。 除了测试普通密码外,该模块还允许Medusa直接测试针对Windows主机的NTLM哈希值。 这对于获得sam._或pwdump文件并希望快速确定哪些是有效条目的审计员可能很有用。

smtp-vrfy
用于验证给定用户邮箱是否存在,以及接收关于该用户的详细信息

smtp
SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange) DNS。

snmp
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。

ssh
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

svn
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

telnet
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

vmauthd
VMware身份验证守护程序

vnc 
VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。

web-form
web表单

wrapper
通用Wrapper模块

 

·显示特定模块的选项:

% medusa -M smbnt -q

Medusa v1.0-rc1 [http://www.foofus.net\] (C) JoMo-Kun / Foofus Networks

smbnt.mod (0.1.1) JoMo-Kun :: Brute force module for SMB/NTLMv1 sessions

Available module options:

GROUP:? (DOMAIN, LOCAL*, BOTH)

Option sets NetBIOS workgroup field.

DOMAIN: Check credentials against this hosts primary domain controller via this host.

LOCAL: Check local account.

BOTH: Check both. This leaves the workgroup field set blank and then attempts to check

the credentials against the host. If the account does not exist locally on the

host being tested, that host then queries its domain controller.

GROUP_OTHER:?

Option allows manual setting of domain to check against. Use instead of GROUP.

PASS:? (PASSWORD*, HASH, MACHINE)

PASSWORD: Use normal password.

HASH: Use a NTLM hash rather than a password.

MACHINE: Use the machine's NetBIOS name as the password.

NETBIOS

Force NetBIOS Mode (Disable Native Win2000 Mode). Win2000 mode is the default.

Default mode is to test TCP/445 using Native Win2000. If this fails, module will

fall back to TCP/139 using NetBIOS mode. To test only TCP/139, use the following:

medusa -M smbnt -m NETBIOS -n 139

(*) Default value

Usage example: "-M smbnt -m GROUP:DOMAIN -m PASS:HASH"

·以下命令主要通过Medusa获取passwords.txt对测试主机192.168.0.20上SMB服务的单个用户(管理员)列出的所有密码。“-e ns”表明Medusa另外检查管理员帐户是否具有空白密码或设置其密码以匹配其用户名(管理员)。

% medusa -h 192.168.0.20 -u administrator -P passwords.txt -e ns -M smbnt

Medusa v1.0-rc1 [http://www.foofus.net\] (C) JoMo-Kun / Foofus Networks

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: (1/7)

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: administrator (2/7)

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: password (3/7)

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass1 (4/7)

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass2 (5/7)

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass3 (6/7)

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass4 (7/7)

·以下命令行演示了Medusa是如何执行一些并行功能。这里至少有20个主机和10个用户同时测试。“-L”选项指示Medusa由用户进行并行执行。这意味着每个不同的用户都会对每个主机的使用10个线程进行检查。

% medusa -H hosts.txt -U users.txt -P passwords.txt -T 20 -t 10 -L -F -M smbnt

·Medusa允许使用文件“组合”设置主机/用户名/密码等数据。可以使用“-C”选项指定组合文件。该文件应该包含每行一个条目,并用冒号隔开,样式为host:user:password。如果三个字段中的任何一个留空,则相应的信息应作为全局值或文件中的列表提供。Medusa将根据文件中第一行的内容执行基本参数检查。

·组合文件中可以使用以下组合:

·主持人:用户名:密码

·主持人:用户名:

·主办::

·:用户名密码

·:用户名:

·::密码

·主持人::密码

·以下示例将检查文件combo.txt中的每个条目: 

% medusa -M smbnt -C combo.txt

The Combo.txt file: 

192.168.0.20:administrator:password 

192.168.0.20:testuser:pass 

192.168.0.30:administrator:blah 

192.168.0.40:user1:foopass

以下示例将检查文件combo.txt中的每个条目并与hosts.txt中的文件做比较: 

% medusa -M smbnt -C combo.txt -H hosts.txt 

The combo.txt file: 

:administrator:password

:testuser:pass 

:administrator:blah 

:user1:foopass

Medusa还支持使用PwDump文件作为组合文件。这些文件的格式应该是user:id:lm:ntlm :::。我们在第一行的末尾查找“:::”,以确定该文件是否包含PwDump输出。

恢复Medusa扫描。Medusa有能力恢复被SIGINT信号中断的扫描(例如CTRL-C)。例如:

测试中断了SIGINT 

% ../medusa -M ssh -H host.txt -U users.txt -p password

Medusa v2.0 [http://www.foofus.net\] (C) JoMo-Kun / Foofus Networks

ACCOUNT CHECK: [ssh] Host: 192.168.0.1 (1 of 11, 0 complete) User: foo (1 of 4, 0 complete) Password: password (1 of 1 complete)

ACCOUNT CHECK: [ssh] Host: 192.168.0.1 (1 of 11, 0 complete) User: administrator (2 of 4, 1 complete) Password: password (1 of 1 complete)

ACCOUNT CHECK: [ssh] Host: 192.168.0.1 (1 of 11, 0 complete) User: jmk (3 of 4, 2 complete) Password: password (1 of 1 complete)

ACCOUNT CHECK: [ssh] Host: 192.168.0.1 (1 of 11, 0 complete) User: bar (4 of 4, 3 complete) Password: password (1 of 1 complete)

ACCOUNT CHECK: [ssh] Host: 192.168.0.11 (2 of 11, 1 complete) User: foo (1 of 4, 0 complete) Password: password (1 of 1 complete)

ACCOUNT CHECK: [ssh] Host: 192.168.0.11 (2 of 11, 1 complete) User: administrator (2 of 4, 1 complete) Password: password (1 of 1 complete)

ALERT: Medusa received SIGINT - Sending notification to login threads that we are are aborting.

ACCOUNT CHECK: [ssh] Host: 192.168.0.11 (2 of 11, 1 complete) User: jmk (3 of 4, 2 complete) Password: password (1 of 1 complete)

ALERT: To resume scan, add the following to your original command: "-Z h2u3u4h3."

正在恢复中断的扫描 % ../medusa -M ssh -H host.txt -U users.txt -p password -Z h2u3u4h3. Medusa v2.0 [http://www.foofus.net\] (C) JoMo-Kun / Foofus Networks

ACCOUNT CHECK: [ssh] Host: 192.168.0.11 (2 of 11, 0 complete) User: jmk (3 of 4, 0 complete) Password: password (1 of 1 complete) ACCOUNT CHECK: [ssh] Host: 192.168.0.11 (2 of 11, 0 complete) User: bar (4 of 4, 1 complete) Password: password (1 of 1 complete) ACCOUNT CHECK: [ssh] Host: 192.168.0.15 (3 of 11, 1 complete) User: foo (1 of 4, 0 complete) Password: password (1 of 1 complete) 以下是恢复的简单步骤:

h2u3u4h3。

  • ———没有100%完成的第一个主机

    • ——-不是100%完成的主机的第一个用户

    • —–未启动的主机的第一个用户

    • —没有开始的第一个主机

    • -地图结尾标记

模块具体细节:

AFP

AFP模块根据Apple Filing Protocol服务测试帐户。

该AFP模块利用基于afpfs-ng FUSE的客户端(http://alexthepuffin.googlepages.com/home)。目前的Medusa autoconf设置要求将afpfs-ng头文件安装到/ usr / include / afpfs-ng,libary位于/usr/lib/libafpclient.so.0。如果这与您的设置不匹配,则需要修改autoconf配置。

CVS

CVS模块通过pserver协议对CVS版本控制系统进行测试。

该模块有一个选项DIR。这允许用户指定目标CVSROOT路径。例如:pserver:USER @ HOST:/ SOME_DIR。如果该选项未设置,则默认行为是使用/ root。

FTP

FTP模块根据FTP和FTPS服务测试帐户。这包括显式FTPS(RFC 4217中定义的AUTH TLS模式)和隐式(FTP over SSL(990 / tcp))。

HTTP

HTTP模块使用BASIC-AUTH,集成Windows身份验证(NTLM)和摘要(MD5和MD5-sess),对HTTP / HTTPS服务进行测试。

IMAP

IMAP模块根据IMAP服务测试帐户。该模块支持imap(143)和imaps(993)。IMAP模块要求服务器的功能,然后根据其响应进行LOGIN或AUTHENTICATE PLAIN。

MS-SQL

MSSQL模块根据Microsoft MS-SQL服务测试帐户。

应该注意的是,MS-SQL Developer Edition和/或MSDE的并发工作负载调控器可以将您的服务器任意时间限制在不超过五个并发连接。

MSSQL模块将自动检测远程主机上SQL Server实例使用的TCP端口。这是通过“SQL Ping”UDP请求完成的。如果主机上存在多个实例,则仅测试第一个实例。将报告任何其他实例,并注明其各自的TCP端口。通过使用Medusa“-n”选项指定端口,可以覆盖自动检测。

MySQL

MySQL模块针对MySQL服务测试帐户。

除了正常的密码爆破外,该模块还支持旧的MySQL(4.1之前)散列的“哈希传递”功能。旧的MySQL 4.1之前的认证方案很容易受到哈希传递认证攻击。利用从MySQL数据库收集的旧式散列,用户可以使用Medusa验证其在其他服务器上的有效性。修改的MySQL客户端也可以直接使用有效的哈希连接到远程服务。

NetWare NCP

NCP模块根据NetWare NCP服务测试帐户。该模块是使用NetWare 5.1主机作为目标开发的。

该模块需要ncpfs。还必须使用“install-dev”选项安装ncpfs软件包。这将安装ncpfs头文件和静态libncp库。修改后的Gentoo ebuild已包含在/ misc / net-fs / ncpfs目录中,该目录包含此选项的USE标志。

该模块有一个选项,即CONTEXT。应该注意的是,libncp默认情况下不会自动指定用户上下文。如果无法解析提供的名称,则会将服务器的上下文附加到用户名,并尝试解析该值。建议用户为正在测试的每个帐户指定上下文。可以使用CONTEXT选项指定全局上下文。每个用户上下文可以被定义为包含用户名或通过命令行传递文件中的用户名作为帐户名称的一部分。

以下示例演示了NCP模块的多种用途:

  • 为users.txt中的所有帐户指定上下文:

     

% medusa -h 192.168.0.20 -U users.txt -p bar -M ncp -m CONTEXT:.OU=administrators.O=foofus·

  • 通过“-u”参数传递完整的用户上下文:

     

% medusa -h 192.168.0.20 -u username.OU=administrators.O=foofus -p bar -M ncp

默认情况下,Libncp也使用NDS和BIND身份验证器。不幸的是,返回到模块的唯一错误消息是BIND认证器的错误消息。这些消息不像NDS那样描述,只是似乎报告成功或失败。为了获得更多有用的消息(帐户禁用/超过最大登录数等信息),请使用以下文本创建一个〜/ .nwclient或/etc/ncpfs.conf文件:

[Requester]NetWare Protocol = NDS

NNTP

NNTP模块通过AUTHINFO根据网络新闻传输协议测试帐户。

远程控制软件

PcAnywhere模块根据Symantec PcAnywhere服务测试帐户。

注意:PcAnywhere一次只允许一个连接。每个目标运行多个线程可能无法正常工作。

基于Server Version 10.5.1和Client 10.0.2的数据包捕获模块。

PCA验证方法: ADS(Active Directory服务)[1] FTP [2] HTTP [2] HTTPS [2] Microsoft LDAP [2] Netscape LDAP [2] Novell LDAP [2] NT [1] pcAnywhere [1] Windows [ 3] [1]已验证的工作 [2]未测试 [3]当PcAnywhere主机对域帐户进行身份验证时,验证工作。 对于具有模块和PcAnywhere的本地帐户,身份验证失败 目前还不知道发生了什么…

POP3

POP3模块针对POP3服务测试帐户。

该模块有一个选项MODE。如果未设置,默认行为是检查服务器响应中的“+”或“ – ”,以查看尝试是否成功。

如果服务器在AS / 400中进行测试,则应使用该选项执行该模块-m MODE:AS400。这将导致返回的-ERR消息被解析以获取附加信息。这是基于从以下文档收集的信息:Enumeration_of_AS400_users_via_pop3.pdf

该模块支持POP3(110 / tcp)和POP3S(POP3协议通过TLS / SSL)(995 / tcp)。此外,它还支持POP3 STARTTLS扩展,如http://www.faqs.org/rfcs/rfc2595.html中所定义。Medusa将向目标服务器提交“STLS”命令。如果返回正响应,则会启动TLS会话。

PostgreSQL

postgres模块根据PostgreSQL服务来测试帐户。

该模块需要PostgreSQL库:libpq。

该模块有一个选项DB。这允许用户指定目标数据库名称。如果该选项未设置,默认行为是使用template1。

REXEC

REXEC模块根据REXEC服务测试帐户。

RDP

RDP模块根据Microsoft远程桌面协议(RDP)/终端服务测试帐户。应该注意的是,仅适用于运行Microsoft 2008及更高版本的目标系统。对Microsoft XP / 2003 / etc的测试将始终报告登录成功。

此模块需要FreeRDP。pass-the-hash选项也仅在安装FreeRDP版本1.2或更高版本时可用。

FreeRDP主分支的预构建二进制文件可从https://ci.freerdp.com获取。可用于Ubuntu,Debian,Fedora和OpenSUSE。nightly版本安装在/ opt / freerdp-nightly中,可以与发行版的常规freerdp软件包并行安装。如果Medusa在其构建过程中检测到此版本,则应该通过任何其他安装版本的FreeRDP构建该版本。

例如,以下工作适用于2015年11月11日的Kali 2.0:- 访问:https://ci.freerdp.com/job/freerdp-nightly-binaries/architecture=amd64,distribution=jessie,label=pkg-deb/

  • 下载:freerdp-nightly_1.2.1 + 0〜20151104024829.185〜1.gbpb83356_amd64.deb

     

  • 下载:freerdp-nightly-dev_1.2.1 + 0〜20151104024829.185〜1.gbpb83356_amd64.deb
  • 安装:dpkg -i freerdp-nightly * -更新运行时路径:echo / opt / freerdp-nightly / lib / >> /etc/ld.so.conf;ldconfig – 构建Medusa:./configure;make

以下示例演示了RDP模块的多种用途:

  • 使用pass-the-hash(NTLM)登录尝试:

     

medusa -M rdp -m PASS:HASH -h 10.10.10.10 -u Administrator -p 31D78236327B9619B14ED8EC9AB454C1

  • 提供域名的登录尝试(默认行为是本地登录):

     

medusa -M rdp -m DOMAIN:CORPNAME -h 10.10.10.10 -u Administrator -p Password1

RLOGIN

RLOGIN模块根据RLOGIN服务测试帐户。

RSH

RSH模块根据RSH服务测试帐户。

SMBNT

http://foofus.net/goons/jmk/medusa/medusa-smbnt.html

SMTP-AUTH

用于使用TLS(STARTTLS扩展)进行SMTP验证的强力模块。

SMTP-VRFY

SMTP-VRFY模块用于枚举哪些帐户在邮件服务器上是十分有效。该模块发送以下内容:

EHLO some_name VRFY account@domain

模块期望通过用户选项(-u / -U / -C)检查帐户。应该提供域名,如果它是一个密码。通过EHLO命令发送的值可以使用-m EHLO:模块选项进行设置。默认是发送MEDUSA。

此模块是在测试单个错误配置的SMTP垃圾邮件过滤器时编写的。其他设备的行为可能不一样。可能需要对模块进行某些调整。

SNMP

SNMP模块根据简单网络管理协议(SNMP)服务测试社区字符串。

该模块有几个选项:TIMEOUT,VERSION和ACCESS。默认值为2秒,版本1和READ访问。应该注意的是,当测试WRITE功能时,模块将读取sysLocation的当前值,然后将相同的值写回系统。

由于SNMP是基于UDP的协议,因此在发送和接收传输层实体之间不存在握手。由于这种无连接通信,只有当我们知道SNMP服务存在时,才能发送正确的社区字符串,并且服务器发送响应。所有其他查询都不会导致任何响应。我们在这里使用的方法是最初只发送我们所有的SNMP GET请求。完成后,我们等待TIMEOUT秒的任何响应。如果我们得到任何回应,我们检查他们看看哪些public字符串是成功的。如果指定了ACCESS:WRITE,我们检查每个先前成功的值的写访问权限。快速而暴力。

SSH

SSH模块使用SSHv2对SSH服务进行测试。该模块目前支持强制SSH键盘交互和密码验证模式。

该模块需要libssh2(www.libssh2.org)。这与libssh(0xbadc0de.be)不同。应该注意的是,libssh2库,因此,Medusa SSH模块只支持强制服务器,可以与SSHv2通信。Libssh2不支持v1,它看起来可能永远不会。

该模块有一个选项,BANNER。如果不明显,则允许您设置认证测试期间发送的客户端。默认值为“SSH-2.0-MEDUSA”。

关于libssh2的一些注意事项使用库存libssh2库,运行Medusa时,用户可能会遇到挂起的模块线程。这个问题是由于libssh2的libssh2_session_startup()并不总是返回值,这是libssh2中挂起的原因。OpenSSH的默认行为是仅允许10个未认证的连接,并忽略其他所有内容。虽然我们在测试中并不总是运行10个线程,但是我们的线程可能比目标清除之前的连接更快地击中它们

同时问题有两个方面:

  • libssh2永远等待ssh服务器用banner回应。这使我们的线程永远等待,这是一个打击。我在/ misc目录中添加了一个修补程序到
    libssh2,使其计数到1000,然后停止等待。这个小修补程序已经提交给libssh2的人,一个修复程序将有希望被包含在将来的版本中。

     

  • 我们现在循环访问libssh2_session_startup()调用。如果libssh2无法协商SSH会话,此功能将失败。我们给它5张照片通过并在每个休眠之间设置一个用户可配置的时间。如果我们在5次尝试后失败,我们会显示发生这种情况,并确定未测试的主机/用户/
    通行证组合。

**从libssh2 0.18(devel)开始,这个问题似乎解决了。**

应该注意的是,虽然你可以运行许多SSH的线程,但并不是越多越好好。当您在10个以上时,您将注意到该模块会重试startup()函数

Subversion(SVN)

SVN模块根据Subversion(SVN)服务来测试帐户,该模块需要安装svn_client-1库。这应该作为Subversion的一部分安装。

该模块有一个选项,BRANCH。这允许用户指定目标SVN URL。例如,svn:// host / branch。如果该选项未设置,则默认行为是使用中继。

远程登录

TELNET模块根据TELNET服务测试帐户。该模块支持telnet(23)和telnet(992)。

该模块目前有一个选项MODE。MODE可以是NORMAL(默认)或AS400。AS400模式支持基本的AS / 400 tn5250连接。当对AS / 400进行测试时,此方法允许比FTP更具描述性的错误消息。但是,如果在AS / 400上可用,POP3仍然是更好的暴力选项。

Telnet模块将输出到发现只有密码提示的日志文件主机。当扫描使用或缺少AAA时,这可能是有用的。

VMware身份验证守护程序(vmauthd)

VMWAUTHD模块根据VMware身份验证守护程序测试帐户。它支持服务的非SSL和SSL加密安装。

VNC

VNC模块根据VNC服务测试帐户。

该模块使用RealVNC和UltraVNC开发,支持基本的抗暴力功能。例如,RealVNC允许5次尝试失败,然后执行10秒延迟。对于后续尝试,延迟加倍。UltraVNC似乎允许6次无效尝试,然后在每次尝试之间强制10秒延迟。此模块尝试识别这些情况,并通过调用sleep()进行适当的响应。使用MAXSLEEP参数强制强制RealVNC时,用户可设置休眠限制。一旦达到此值,模块将退出。

此模块支持无密码和仅密码身份验证以及UltraVNC MS-Logon(本地/域Windows凭据)用户名/密码凭据。

通用包装

封装模块的目的是允许用户执行任意脚本,同时利用Medusa管理主机/用户/密码。包装器目录中包含两个示例脚本。

这是一个正在进行的工作…该模块目前使用的是不理想的fork()。不知道我是否可以启动一个线程,并重定向STDIN / STDOUT线程…

该模块的初始目标是使用rdesktop测试RDP服务器。rdesktop 1.4.1的修补程序已包含在/ misc / rdesktop目录中。这扩展了从cqure.net的字典修补程序与Medusa包装器STDIN方法。应该注意的是,当连接到Windows 2000主机时,rdesktop似乎不能使用命令行密码。Windows 2003和XP在测试过程中工作正常。

以下示例显示了使用rdesktop与包装器模块的

medusa -M wrapper -m TYPE:STDIN -m PROG:rdesktop -m ARGS:"-u %U -p - %H" -H hosts.txt -U users.txt -P passwords.txt

一种方法:用于隐藏rdesktop图形输出的一种可能方法:% Xvfb :97 -ac -nolisten tcp & % export DISPLAY=:97

Web表单

用于处理GET / POST请求的基本web表单强力模块。支持可定制的提交参数和服务器响应文本。

0×03在哪下载?

medusa-2.2.tar.gz Medusa-gui(由tak和bigmoneyhat开发的基于Java的GUI)

http://www.foofus.net/jmk/tools/medusa-2.2.tar.gz

https://github.com/Tak31337/medusa-gui

安装说明:

简介

大部分的Medusa都是在基于Linux / Gentoo的系统上编写和测试的。虽然已经可以在各种操作系统处理问题,但很可能在非Gentoo设备上出现问题。当然,到目前为止有一些问题也可能使Gentoo系统上遗漏的…

Medusa的构建相当简单:“./configure; make; make install”。要充分展现Medusa的强悍,必须满足一些依赖。下表列出了具有附加依赖关系的模块。为了模块的功能,当模块本身被编译时,必须在系统上安装相应的头文件。每个模块的文档中都包含其他模块特定信息。

依赖 主页 模块 备注
OpenSSL http://www.openssl.org HTTP,MSSQL,SMBNT,基于SSL的连接  
LibSSH2 http://www.libssh2.org SSH 提供LibSSH2补丁来解决时序问题。问题似乎在0.18中得到解决。
NCPFS ftp://platan.vc.cvut.cz/pub/linux/ncpfs NCP “make install-dev”
LIBPQ http://www.postgresql.org PostgreSQL的  
Subversion http://subversion.tigris.org SVN  
afpfs-NG http://alexthepuffin.googlepages.com/home AFP 手动安装。Autoconf目前安装基础为/ usr(例如/ usr / include / afpfs-ng)

还应该注意的是,默认情况下并不是所有的模块都可以被构建。尚未充分测试的不完整模块可能会被禁用。“configure”输出应该标识它将尝试构建哪些模块。要启用非默认模块,请使用“–enable-module-MODULE_NAME”配置选项。

Linux的/的Gentoo

此时,Medusa在Portage版本内不可用。Medusa的ebuild版本已经提交到bugs.gentoo.org,但尚未进入Portage版本。同时,所有的ebuild版本都可以通过Portage Overlay使用。例如,Medusa可以通过位于trac.pentoo.ch的Gentoo“pentoo”覆盖面进行安装。另外,ebuild已被包括在内,也可以手动安装。

以下ebuilds已包含在此分发中:

/misc/net-analyzer/medusa-2.1.ebuild

一些基本的Portage Overlay说明:

修改/etc/make.conf

PORTDIR_OVERLAY="/some/directory/"

在PORTDIR_OVERLAY目录中创建以下内容: net-analyzer/medusa

将每个ebuild和任何附带的文件放在其相应的

PORTDIR_OVERLAY目录中。 cd进入每个目录并执行: ebuild name_of_ebuild.ebuild digest

修改/etc/portage/package.keywords net-analyzer/medusa ~x86

其他系统

Medusa已经建成,并在各种默认系统安装上进行了基本测试。下表列出了这些测试中的一些注释。

操作系统 发行版/版本 备注
Linux CentOS 7.1(64位) 安装:“开发工具”,openssl-devel,libssh2-devel,postgresql-devel,subversion-devel,freerdp-devel
  Debian Stretch(64位) 已安装:build-essential,libgnutls28-dev,libssl-dev,libpq5,libpq-dev,libssh2-1,libssh2-1-dev,libsvn-dev,freerdp,libfreerdp-dev
  Fedora 21 安装:“开发工具”,afpfs-ng-devel,openssl-devel,libssh2-devel,postgresql-devel,subversion-devel,freerdp-devel
  kali1.1.0(32位) 已安装:libafpclient0,libafpclient-dev,libncp,libncp-dev,libpq-dev,libssh2-1-dev,libgcrypt11-dev,libgnutls-dev,libsvn-dev,freerdp-x11,libfreerdp-dev
  kali2.0(64位) 已安装:automake,libssl-dev,libpq-dev,libssh2-1-dev,libgcrypt11-dev,libgnutls28-dev,libsvn-dev,freerdp-x11,libfreerdp-dev
  Mint17 已安装:build-essential,libssl-dev,libpq5,libpq-dev,libssh2-1,libssh2-1-dev,libgcrypt11-dev,libgnutls-dev,libsvn-dev,freerdp,libfreerdp-dev
  openSUSE 11.2 已安装:patterns-openSUSE-devel_C_C ++,ncpfs-devel,libssh2-devel,postgresql-devel,subversion-devel
  Ubuntu 14.04 已安装:build-essential,libssl-dev,libpq5,libpq-dev,libssh2-1,libssh2-1-dev,libgcrypt11-dev,libgnutls-dev,libsvn-dev,freerdp,libfreerdp-dev
SunOS Solaris 11 x86 已安装:developer-gnu
BSD FreeBSD 7.2 已安装:afpfs-ng,ncpfs,libssh2,postgresql,libpq,libsvn
Mac OS X OS X 10.10(Yosemite) 安装:Homebrew,XCode,“brew install freerdp –HEAD”
Microsoft Windows Cygwin 我一直无法在Cygwin下构建模块。如果有人能弄清楚,我会在下一个DefCon上给你买一杯啤酒。

0×04谁创建的Medusa?

Foofus.net的怪人带来了这个可怕的软件(Medusa怪兽)。JoMo-Kun是首席执行官,并写下了Medusa的核心以及其中的几个模块。Foofus为可加载模块创建了初始设计。Fizzgig提供了网络代码,几个模块,可加载模块的实现以及修复了一堆JoMo-Kun的缺陷。pMonkey是一个疯狂的模块编码魔术师。最后同样重要的是,Heidi提供了这个工具的名字。

0×05嘿嘿嘿?

如果您有关于此应用程序的问题,请随时与我们联系。直接发送电子邮件或加入我们的邮件列表foofus-tools。如果发生故障,请发送详细的错误报告。更好的是发送补丁。虽然我没有声称这个程序会做成你想要的,但我们的确想这么做。在我们的评估过程中,我一直在使用它已经好几年了。希望别人会有类似的好运一起使用Medusa。如果您发现Medusa有用,并希望给予回馈,请提交新的模块,代码改进,或者在下一个DefCon上献上Foofus.netgoons的啤酒。

From Joe

 参考:http://foofus.net/goons/jmk/medusa/medusa-compare.html