java怎么调用.net ashx_APT供应链打击实战硬挖.net开发商源码0day

#前言

作者:云诚信息 DARMA实验室
编辑:国士无双 man catsay

最近有很多人都在问,怎么做好APT攻防,做好职业蓝军

深度挖掘业务系统的威胁等等。

我回答的很简单,遇山开山,逢水架桥。

有时候再骚的姿势也比不上硬桥硬马的正面突破。

只要有决心在,就没有撸不下的目标。

e9df3bb3cdc3b85530895d57f5906122.png


从本篇开始,我们将逐一讲述 高级实战的五大能力

即: 善收集 精工具 能挖洞 潜内网 保成果

本篇以实际(瞎编)案例入手

简单的给大家分享下.net(ASPX)网站系统的审计套路。

才疏学浅,嘴笨手拙,仅供参考。


#突击刺探

最近一直在盯这个敌对目标,搞进去一次后,目标竟然换了一套源码。

但是时间紧迫,需要马上再次进入获取相关的材料。

1. 从网站报错页面获得后台路径。不予累赘。

爆破后台3天无果,决定放弃爆破,转而从开发商下手。

图文无关

bb08f597b3d483c36639ca15f919725b.png

于是,我们深挖了他的源码开发商,经过一个半月的努力,最终实现了再次全面掌控的能力。

2. 通过开发商的演示站下手

简单的信息搜集后,找到这个开发商的关键节点。

直接干掉后台进去拿shell,一把梭。

不累赘,小意思。

翻D盘找到目标系统,下载回来分析。

4df191d79e06bec0045623fba1d708dd.png

源码架构asp.net

3.直接进行源码审计

在这里交给大家一个小技巧

最让我感兴趣的是找上传的接口的地方,这样一把梭直接搞下服务器权限也爽快。

直接翻看后台控制页面

b8f783aa17ce6f5df6117a90596ae748.png

直奔上传控制组件页面

e38a5ed9ab39d894c268a7e9423ad11b.png

碰到这种直接ILSpy 打开DLL看源码。

发现上传的方法在这里被调用

78edf30febaaa0c5474c178a147592f8.png

但通过比对发现

看他这个请求是没有对用户上传前进行鉴权的,所以我们直接去构造这个包。

应该就能实现创建文档的结果

xxx.ashx?action=file

然后紧接着看他call的来源

可以看以下函数调用链:

ProcessRequest-> UploadFile()-> FileSave()->Upload::FileSaveAs()-> CheckFileExt()

UploadFile()

a682991d4581d8ef78e66f3650767020.png

文件写入类

ab8dce917af9d149e40eac67a0e59b8c.png

关键的文件校验类

fa2b5e59b28b14c6243e92aeba9dfde0.png

我们跟进 CheckFileExt() 这个方法

6aa170137bca7601f8ef8e4339a8896d.png

最后发现是把一些常用的可以解析webshell的名字加入了黑名单

不过细心的我们并发现

在IIS下面能解析的cer文件并没有加入黑名单豪华套餐。

(此处做下伏笔)


发现SQL注入

中间踩了很多坑,发现代码写的还是听严谨的

基本的数据控制都使用了双因子校验。

最后看到这里,发现他对请求并没有进行SQL注入检查,我们跟一下这个Request.GetString()

f1819b5de06a24f21c2485e899e0809c.png

可以看下上面的GetString函数的具体代码,下图所示

84bcabfdef61c853d3ad05801caf4334.png

在这里结合上下文几张图,发现timeScript变量没有进行SQL注入检查(注意看elsf部分)

当然这应该是当时开发为了方便专门进行SQL语句查询而省去了SQL注入检查。

下面是 SQL注入检查 函数 GetFormString 函数

也就是说我们可以直接引入查询语句

a1c503367f042304c0366a62b8ae6e31.png

导致出现SQL注入漏洞

图文无关98e186fb070d600d7cd3517721d2b6f2.png


#验证

不多说了,把代码copy到vs里,进行一步一步跟,去拼接SQL语句。

由于目标数据库是SQLServer.

所以在注入时可以使用Stack Queries 技术。

由于之前我看过他们管理员加密方式,所以我只用把管理员的hash和salt update一下就Ok了。

3f8da3d5c27ca1b1d1ef5629d9181785.png

核心代码:

******.ashx?action=Sites&timeScript=2019-02-26,2019-02-26';update **_manager set password = '************' where user_name = 'admin';--

把管理员的hash和Salt update一下,然后拿着密码就能登录了。

图文无关538f42a0415f5252819aa45c95e37c69.png

然后登录后台,在后台处允许上传处添加cer。

然后构造表单,用第一部分的漏洞上传cer. Get到webshell。

就不进行下一步操作了。就不一一上图了。

在这样里提示下,cer的webshell是什么样的?应该怎么编写?

完美上传,getshell!

不用提权,直接system,美滋滋。

图文无关

7216d445c8ef588dcf92594b0fd8bb3b.png


#总结

编辑的文笔太笨,写不出前线干活兄弟们的辛酸和苦闷。

很多东西涌在笔头却不得舒展,因为从事的工作很多是没办法一一拆开讲明的。

但有一点大家都知道,有人负重前行,为了很多人的岁月静好。

分享一点我们团队总结的一些理论性的东西吧。

#高级渗透实战人员的五大能力

b774b3c86ffb08a9eaeed4846ae66fd8.png

善收集 精工具 能挖洞 潜内网 保成果
  • 善于信息搜集

    APT本质就是发现

    就是比谁知道的多 然后才能拥有更多的入口 谁就拥有先发优势

  • 精工具就是要把手上的工具用透用骚

    你真的会用sqlmap吗?那怎么碰到waf就歇菜了?

    真的会用burp吗?人家公开插件,玩分块传输你才会喊个666?

    真的会用cs吗?shellcode的怎么玩?

    只有工具用精了才可以把探测出来的漏洞化腐朽为神奇 从而撕开口子。

  • 能挖洞

    我为什么不说是精于挖洞?

    而是说挖洞是基于手中没有办法的情况下的一种附加能力。

    有洞就用洞,没洞就找洞,创造条件也要上。

    但实在玩不动,耽误进度的也要果断丢弃,找新目标,或者交给专业挖洞选手。

  • 潜伏内网

    摸排拓扑,制定计划。等待最后的胜利

    这个推荐看下咱们公众号的文章

  • 保成果

    就是指在合适或者突发的情况下 如权限不保的时候抓紧时间拖DB或拿QB

    这是最后一关 保证团队没日没夜努力的收益结果

    而且要能拖也能还原 熟练玩转各种大型数据库 如DB2 oracle等


  • 关于圈子社区:圈子社区是一个非盈利,封闭的白帽子技术交流社区。目前成员已有近2000人,拥有业内首个自主研发的实战化靶场,体系化学习和燃爆的交流气氛带你成为真正的大佬,社区专注实战,崇尚技术,如果你也是实战派,请关注我们。社区地址:(请使用https访问)https://www.secquan.org

    f7963ef38acf2a668cbbd91550f80569.png


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值