APT供应链打击实战--硬挖.net开发商源码0day

  • A+
所属分类:代码审计

#前言

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

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

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

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

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

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

APT供应链打击实战--硬挖.net开发商源码0day


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

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

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

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

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



#突击刺探

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

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

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

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

图文无关

APT供应链打击实战--硬挖.net开发商源码0day

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

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

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

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

不累赘,小意思。

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

APT供应链打击实战--硬挖.net开发商源码0day

源码架构asp.net

3.直接进行源码审计

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

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

直接翻看后台控制页面

APT供应链打击实战--硬挖.net开发商源码0day

直奔上传控制组件页面

APT供应链打击实战--硬挖.net开发商源码0day

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

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

APT供应链打击实战--硬挖.net开发商源码0day

但通过比对发现

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

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

  1. xxx.ashx?action=file

然后紧接着看他call的来源

可以看以下函数调用链:

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


  2. UploadFile()

APT供应链打击实战--硬挖.net开发商源码0day

文件写入类

APT供应链打击实战--硬挖.net开发商源码0day

关键的文件校验类

APT供应链打击实战--硬挖.net开发商源码0day

我们跟进 CheckFileExt() 这个方法

APT供应链打击实战--硬挖.net开发商源码0day

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

不过细心的我们并发现

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

(此处做下伏笔)


发现SQL注入

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

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

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

APT供应链打击实战--硬挖.net开发商源码0day

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

APT供应链打击实战--硬挖.net开发商源码0day

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

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

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

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

APT供应链打击实战--硬挖.net开发商源码0day

导致出现SQL注入漏洞

图文无关APT供应链打击实战--硬挖.net开发商源码0day


#验证

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

由于目标数据库是SQLServer.

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

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

APT供应链打击实战--硬挖.net开发商源码0day

核心代码:

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

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

图文无关APT供应链打击实战--硬挖.net开发商源码0day

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

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

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

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

完美上传,getshell!

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

图文无关

APT供应链打击实战--硬挖.net开发商源码0day


#总结

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

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

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

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

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

APT供应链打击实战--硬挖.net开发商源码0day

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

  • 善于信息搜集


    APT本质就是发现

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


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


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

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

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

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


  • 能挖洞


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

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

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

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


  • 潜伏内网


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

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


  • 保成果

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

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

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

    欢迎在 “人人大佬计划” 和 “铸剑四期学员群” 中留言回复!




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

    APT供应链打击实战--硬挖.net开发商源码0day



本文始发于微信公众号(Secquan圈子社区):APT供应链打击实战--硬挖.net开发商源码0day

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: