Medusa
JoMo-Kun / [email protected]
目录
·0x00Medusa是什么?
·0x01为什么创造Medusa?
·0x02如何使用Medusa?
·0x03哪里可以下载?
·0x04可以联系谁?
·0x05嘿嘿嘿?
0x00 Medusa是什么?
Medusa旨在成为一个迅速,大规模并行,模块化,爆破登录。目标支持大部分允许远程登录的服务。以下是Medusa项目一些主要功能:
·基于线程的并行测试。可以同时对多个主机,用户或密码执行强力测试。
·灵活的用户输入目标信息(主机/用户/密码)可以通过多种方式指定。例如,每个项目可以是单个条目或包含多个条目的文件。此外,组合文件格式允许用户改进其目标列表。
·模块化设计。每个服务模块作为独立的.mod文件存在。这意味着,核心应用程序不需要进行任何修改,以便扩展支持的强制服务列表。
0x01为什么创造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查看,以下是几个示例用途:
·显示当前安装的所有模块:
% medusa -d
Medusa v1.0-rc1 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks
Available modules in "." :
Available modules in "/usr/local/lib/medusa/modules" :
+ mssql.mod :
Brute force module for M$-SQL sessions : version 0.1.0
+ http.mod :
Brute force module for HTTP : version 0.1.1
+ ssh.mod :
Brute force module for SSH v2 sessions : version 0.1.1
+ smbnt.mod :
Brute force module for SMB/NTLMv1 sessions : version 0.1.1
+ telnet.mod :
Brute force module for telnet sessions : version 0.1.4
·显示特定模块的选项:
% 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模块根据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模块通过pserver协议对CVS版本控制系统进行测试。
该模块有一个选项DIR。这允许用户指定目标CVSROOT路径。例如:pserver:USER @ HOST:/ SOME_DIR。如果该选项未设置,则默认行为是使用/ root。
FTP模块根据FTP和FTPS服务测试帐户。这包括显式FTPS(RFC 4217中定义的AUTH TLS模式)和隐式(FTP over SSL(990 / tcp))。
HTTP模块使用BASIC-AUTH,集成Windows身份验证(NTLM)和摘要(MD5和MD5-sess),对HTTP / HTTPS服务进行测试。
IMAP模块根据IMAP服务测试帐户。该模块支持imap(143)和imaps(993)。IMAP模块要求服务器的功能,然后根据其响应进行LOGIN或AUTHENTICATE PLAIN。
MSSQL模块根据Microsoft MS-SQL服务测试帐户。
应该注意的是,MS-SQL Developer Edition和/或MSDE的并发工作负载调控器可以将您的服务器任意时间限制在不超过五个并发连接。
MSSQL模块将自动检测远程主机上SQL Server实例使用的TCP端口。这是通过“SQL Ping”UDP请求完成的。如果主机上存在多个实例,则仅测试第一个实例。将报告任何其他实例,并注明其各自的TCP端口。通过使用Medusa“-n”选项指定端口,可以覆盖自动检测。
MySQL模块针对MySQL服务测试帐户。
除了正常的密码爆破外,该模块还支持旧的MySQL(4.1之前)散列的“哈希传递”功能。旧的MySQL 4.1之前的认证方案很容易受到哈希传递认证攻击。利用从MySQL数据库收集的旧式散列,用户可以使用Medusa验证其在其他服务器上的有效性。修改的MySQL客户端也可以直接使用有效的哈希连接到远程服务。
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模块通过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服务测试帐户。
该模块有一个选项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会话。
postgres模块根据PostgreSQL服务来测试帐户。
该模块需要PostgreSQL库:libpq。
该模块有一个选项DB。这允许用户指定目标数据库名称。如果该选项未设置,默认行为是使用template1。
REXEC模块根据REXEC服务测试帐户。
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服务测试帐户。
RSH模块根据RSH服务测试帐户。
http://foofus.net/goons/jmk/medusa/medusa-smbnt.html
用于使用TLS(STARTTLS扩展)进行SMTP验证的强力模块。
SMTP-VRFY模块用于枚举哪些帐户在邮件服务器上是十分有效。该模块发送以下内容:
EHLO some_name
VRFY account@domain
模块期望通过用户选项(-u / -U / -C)检查帐户。应该提供域名,如果它是一个密码。通过EHLO命令发送的值可以使用-m EHLO:
模块选项进行设置。默认是发送MEDUSA。
此模块是在测试单个错误配置的SMTP垃圾邮件过滤器时编写的。其他设备的行为可能不一样。可能需要对模块进行某些调整。
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()函数
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时,这可能是有用的。
VMWAUTHD模块根据VMware身份验证守护程序测试帐户。它支持服务的非SSL和SSL加密安装。
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
用于处理GET / POST请求的基本web表单强力模块。支持可定制的提交参数和服务器响应文本。
0x03在哪下载?
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.keywordsnet-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上给你买一杯啤酒。 |
0x04谁创建的Medusa?
Foofus.net的怪人带来了这个可怕的软件(Medusa怪兽)。JoMo-Kun是首席执行官,并写下了Medusa的核心以及其中的几个模块。Foofus为可加载模块创建了初始设计。Fizzgig提供了网络代码,几个模块,可加载模块的实现以及修复了一堆JoMo-Kun的缺陷。pMonkey是一个疯狂的模块编码魔术师。最后同样重要的是,Heidi提供了这个工具的名字。
0x05嘿嘿嘿?
如果您有关于此应用程序的问题,请随时与我们联系。直接发送电子邮件或加入我们的邮件列表foofus-tools。如果发生故障,请发送详细的错误报告。更好的是发送补丁。虽然我没有声称这个程序会做成你想要的,但我们的确想这么做。在我们的评估过程中,我一直在使用它已经好几年了。希望别人会有类似的好运一起使用Medusa。如果您发现Medusa有用,并希望给予回馈,请提交新的模块,代码改进,或者在下一个DefCon上献上Foofus.netgoons的啤酒。
From Joe
参考:http://foofus.net/goons/jmk/medusa/medusa-compare.html
链接:http://pan.baidu.com/s/1o8wWhYi 密码:uoxw