4ra1n 17小时前
长亭科技三年工作回顾
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

回顾在长亭科技三年的工作经历,从实习到正式入职,参与了 xray 安全策略部门的工作,主要负责编写 poc 和完善漏洞检测能力,包括 WebLogic、Fastjson、Spring4shell 等多个漏洞的检测和利用研究。同时,还推动了 xray-gui 的开发,并尝试使用 nasl 脚本语言进行漏洞扫描。此外,还参与了多个应急漏洞的分析和复现,并获得了多次安全公告致谢。工作之外,还热爱摄影、音乐、汽车文化和养宠物,并享受户外运动。

🔍 在长亭科技三年间,作者主要负责编写 poc 和完善漏洞检测能力,涵盖了 WebLogic、Fastjson、Spring4shell等多个知名漏洞的检测和利用研究,为 xray 安全策略部门做出了重要贡献。

🖥️ 作者积极推动了 xray-gui 的开发,尝试使用 Java Swing、Electron 和 Go-wails 等方案,旨在提升 xray 的用户体验和易用性。

📜 作者尝试使用 nasl 脚本语言进行漏洞扫描,并完成了部分 lib 的实现,使得 xray 支持大部分 WEB 相关漏洞扫描和 SMB 漏洞检测,拓展了 xray 的功能。

🚨 作者参与了多个应急漏洞的分析和复现,包括 RocketMQ RCE、Nacos Hessian RCE、ActiveMQ jolokia RCE 等,展现了高效的漏洞分析和应急响应能力,并获得了多次安全公告致谢。

🌐 作者持续关注新的漏洞利用姿势,并在 Apache Druid 中找到了稳定的利用链,最终获得了 Kafka CVE,体现了作者对漏洞研究的深入理解和探索精神。

原创 4ra1n 2025-03-15 00:01 浙江

    这周正式离职了,暂无新工作。时光荏苒,转眼已是 2025 年 3 月。回首往事,2020 年 11 月的那个初冬,我踏入了长亭科技的大门,开始了我的实习生涯。那时的我,如同一片未经风雨洗礼的嫩叶,既无实战的磨砺,也缺乏安全开发的深厚底蕴。长亭给予了我宝贵的学习机会,这份恩情,我始终铭记于心。
    2020 年的冬天,北京的天空总是灰蒙蒙的,寒风像刀子一样刮过脸颊,刺骨的冷意让人不禁缩紧了脖子。每天清晨,我裹紧大衣,挤上拥挤的公交车,穿梭在这座城市的脉络中。那时的我,不在乎生活的艰辛,也不在意微薄的薪资,心中只有一个坚定的信念:我要学到深入的安全技术,理解那些安全技术背后的原理。我遇到了 P 师傅,他是我进入安全领域以来一直崇拜的偶像,P师傅的存在,也是我选择加入长亭的重要原因之一。虽然辛苦,每当我回想起那段日子,心中总是涌起一股暖流。
    2022 年下半年,我正式入职了杭州长亭的 xray 安全策略部门。记得当时手中有多家乙方的 offer,但最终选择长亭的原因,不仅仅是因为它给了我实习的机会,更是因为这里有一群让我心怀感激的人。那些师傅们对我的提携和教导,像一盏盏明灯,照亮了我初入职场的路。

    另一个原因,是我心中一直怀揣着一个目标:我想将 xray 做大做强。入职的那天,我站在 EFC 楼下,抬头望去,玻璃幕墙的高楼在阳光下熠熠生辉,仿佛直插云霄,映照着这座城市的繁华与活力。我知道,这里将是我实现梦想的地方。我希望能够继续开发 xray,持续维护它,让它成为安全领域的一座灯塔,为更多人指引方向。每当夜深人静,我坐在工位上,看着屏幕上跳动的代码,心中总会涌起一股使命感。那不仅仅是一份工作,更是一份热爱与责任。

    入职后我想推动的第一件事是 xray-gui 的开发,这是 xray 社区和众多小白的核心需求:首先的尝试我选择了 Java Swing GUI 开发尝试。后续我尝试过其他方案,例如 electron 或 go-wails 等方案。

    三年时间里,我主要的任务是编写 poc 和完善漏洞检测能力。例如 WebLogic 系列,我在内网制作和上传了从 201X 年到 2024 年约全部补丁版本的 WebLogic 全系列,用于 DIFF 补丁和测试 xray 支持。

    除了历史漏洞的支持,还有应急漏洞例如 WebLogic 的 CVE-2023-21839 漏洞利用需要复杂的 WebLogic Jar 依赖和 IIOP 协议 JNDI 等技术实现,我通宵了一个晚上使用纯 Go 实现了这个复杂的过程(后续有其他师傅们做出了更完善的实现)
    如果每个 CVE 都进行这样的抓包分析,效率低可读性差,且不容易维护。由于 go 扫描器很难实现 Java 复杂的漏洞利用,我希望找到一种通用的方案。将漏洞利用变成 GRPC 服务,跨语言调用。Java 构造 PAYLOAD 和发包,结果给到 go 扫描器。
    例如我对 fastjson 扫描做了加强,如 1.2.80 大部分扫描器采用了 单个InetAddress 的 dnslog 方式,实际上 83 和部分 2.X 也存在该问题,会导致误报。需要使用更合理的双 dnslog 方式,并加入某些报错回显检测逻辑。加了多个特殊 gadget payload 用于应对某些苛刻的场景和靶机,并处理了 JSON 和 FORM 多种组合嵌套的情况处理,加入请求限制策略,对单个站点不同类型的参数发送 payload 次数做优化和限制。
    例如我对 spring4shell 做了加强,使用了自研的三种无害的检测逻辑。加入了众多 xstream / dubbo  等 Java 框架漏洞,完成了内网各种漏洞对应的靶机和 CI 流程。
    手撸了 Golang SMB 基础库补充了 windows 相关的内容,例如 MS 09001 10054 17010 等漏洞,另外补充了一些 exchange 系列的靶场和 proxylogon 等系列漏洞检测。
    我经手处理了 90% 客户反馈的误报漏报和咨询问题,有时候我需要和客户讲解漏洞原理和检测原理,记得一次关于 log4j 和 jndi 的知识,我和某客户语音讲解了一小时,最终客户完全理解了漏洞,给出了肯定和认可。我总结了很多不同漏洞应该做出不同的回复,根据客户需要可以迅速有效解决问题。
    我一直在推动一件事,我希望有一个 xray 1 FINAL 版本,而不是放着某一个 1.9.X 版本不再更新。
    我尝试对 xray 1.9.X 做了进一步的维护,我尝试使用 xray 挖 SRC/CVE 内容,我作为一个真正在用的人,使用和提出意见,我认为这是可以提升的点。修复大量的误报漏报问题,删减无意义 POC 优化和减少发包,简化和改进配置文件,提供更容易上手的反连和独立可执行文件。最终由于一些原因,我没能继续做下去。
    我一直认为,无论一个应用背后多么复杂,底层原理多么高深,如果没有好的交互和前端或者 GUI 内容,开发者如果不是真正的用户,那么这个产品是做不好的。
    即使 xray 后端和引擎无敌强大,消息队列,任务调度,底层设计多么科学,如果命令行程序参数臃肿,配置文件项目过多难以上手,完全没有 GUI 版本,那么新用户大概率是无法体会到这个产品的全部,也会被阻拦在复杂配置文件和模糊不清的日志输出内容。没有新用户的产品是难以做大做强可能会止步当前。
    一个产品最熟悉它的可能不是开发者,而是每天使用的人,只有开发者每天使用,才可以根据自身体验精雕细琢得到完美。
    在 2024 年我完成比较有挑战性的事情,我用纯 go 实现了 nasl 脚本语言的解释执行,基于 antlr 做语法分析和词法分析,并完成了部分 lib 的实现,可以执行大部分 WEB 相关漏洞扫描,也可以进行 SMB 的 MS-17010 等漏洞检测(nasl 语言是 openvas / nessus 扫描器的插件语言,理论上该实现可以让 xray 支持 openvas 上万的扫描插件)
    虽然 xray 在安全行业已有足够名声,但我还是希望能够通过某些方式证明 xray 有超越其他扫描器的能力。例如使用 XRAY DAST 做了一些 SRC 和开源项目扫描,获得一些 XSS 的 CVE 例如
    我尝试对外输出 xray 的安全文章,例如在某知识星球分享过不同于网上常见的 KAFKA CVE-2023-25194 RCE 检测方案,如何以 DAST 通用的方式深度遍历和替换 JSON 来实现 KAFKA REST API 和 Apache Druid 通用的检测思路,而不是指定 PAYLOAD 的主动发包检测。
我参与过一些 xray / xpoc 的应急漏洞:
    例如 RocketMQ RCE 连夜分析漏洞原理,应该做到了漏洞公告 12 小时内成功复现和编写文章。
    例如 Nacos Hessian RCE 公布的第一时间,我复现了 JDK Only 链,公开大部分脚本是有害利用,只能利用一次,且无法打内存马,我熬夜找到跨线程打 SpringBoot HTTP 内存马的方式,并和其实师傅一起找到了无害利用和多次利用的方案。
    例如 ActiveMQ jolokia RCE 公告当晚分析到了最后一步,第二天早上 12 点之前最终复现,得到完整分析报告。
    印象深刻的是 GeoServer XPATH 的 RCE 在我监测到 CVE 公告的半小时内就成功复现和写出报告。我手里没有该 0day 的情况下,从公告到复现仅半小时,我认为是不慢的效率和速度。
    还有各种漏洞例如 Metabase 的深入利用研究,找到了多种利用方案;ActiveMQ 的 Throwable RCE 第一时间分析出协议细节。
    这周 Tomcat 的新 PUT SESSION RCE 漏洞,我可能是除了报告者之外最快的应急速度,我做到了凌晨两点收到公告,凌晨三点出 POC 当我复现和编写完报告,我才意识到,我已经不是长亭员工了,哈哈。
     回想上次 Tomcat 是今年 Tomcat 竞争上传漏洞,晚上 10 点收到 CVE 公告,通过和某师傅一个多小时的深入合作,成功在两小时内复现了该漏洞。和群友们交流测试,找到了一种无害无误报漏报的黑盒检测方案,并且写了完整的漏洞分析过程,支持了 xray 商业版。
我在分析漏洞之余尝试挖过一些漏洞:
    和某师傅一起挖了某知名产品的前台 RCE 报告给官方得到不少的奖励。另外感谢某前辈带领我一起挖漏洞,在极其苛刻的环境下成功前台 RCE。 
    我一直在研究 Tomcat 虽然没有获得什么 CVE 但是做出了不少的贡献,例如我找到一种办法可以将流量放大 500 倍,官方认可不过认为应该作为增强处理而不是漏洞处理。

    我找到 Tomcat 某些配置下的权限绕过,官方认可,但是认为这是正常错误而不是 CVE 漏洞,遗憾。
    获得了两次 OpenJDK 安全公告致谢,获得了五次 Oracle 深度安全贡献者的致谢(当然这不是我一个人的水平,更感谢其他师傅愿意带我)
    我时刻关注新的漏洞利用姿势,一次学习了老外 hackerone kafka 利用的姿势,然后尝试在开源项目中找到利用点。我在 Apache Druid 中找到了稳定的利用,该应用需要 Java 11 及以上版本运行,无法执行 jndi codebase 等操作,高版本打法需要存在 gadget 而正好该项目存在 cb 1.9.4 链,且官方默认不需要登陆,于是这也算得上是一个前台无条件 RCE 漏洞。即使我发了完整视频和代码 Apache Druid 也不认可该漏洞,转交给 Kafka 最终得到了一个 Kafka CVE。
    一次分析历史漏洞,我找到了 Apache Ambari 多个 RCE 漏洞,例如 SPEL 的漏洞,比较简单。另外有一处通过 java 调用 python 的某些细节问题,可以有限制地执行某些代码,而距离反弹 shell 还需要一些 trick 绕过,最后得到了几个 CVE 致谢。 
当然我也做了一些非 RCE 的鸡肋漏洞:
Apache Solr 我找到了某些情况下的信息泄露 CVE-2023-50298
Apache Zookeeper 我找到了鸡肋配置下的认证绕过 CVE-2024-51504 该漏洞到现在网上的文章都没有分析明白,以后有机会我会写一篇
还有很多的鸡肋垃圾漏洞,没有必要一个个提及了
    有几十个 CVE 是我自己开发的扫描工具自动化或半人工结合某些搜索技巧得到的结果,没有太多实际价值,只是测试工具和闲来无聊做的事情。另外我对 CVE 的看法是:只有官方开发者或官方安全团队自己申请和发公告的 CVE 才是 CVE 漏洞,有邮件可查有 commit 可查才算,报告者自己申请的 CVE 在 99% 的情况下不算真正的 CVE 漏洞。
相对于漏洞,我更喜欢开发一些有意思的东西。
我尝试过 xray 结合 agent 做 IAST 内容,由于某些原因无法继续。
纯黑盒扫描器的上限不高,如果可以有 agent 那么可以做更多的事情。
我想过 xray 的 yaml cel 语法是否可以创新。
或者让 xray 能够支持一种另外的脚本格式,比如中文编程?
我尝试用 golang 实现了一个脚本语言,纯中文写脚本。但是效果其实不如直接的 google-cel 方式简洁直观方便。
    作为引擎开发者,我需要经常下载 xpoc 和使用测试,我发现 xpoc 的体积较大:windows amd64 大小要 78 MB
    我在想是否真的需要这么大,于是我抛弃了 google-cel 而是使用 antlr 手动分析完成轻量小巧的 poc 发包工具,测试了大部分公开 xray poc 可正常执行,内置了 dnslog 和 nuclei 的 intractsh 反连(windows amd64 大小仅需 2 MB)
我是很喜欢造轮子的人,业余时间我做了一些小开发:
我自己造了 JSON 序列化反序列化库
我修改和编译了属于自己的 JDK 和 Tomcat 应用
我用 Go 写了简易的 JVM 从解析加载到解释执行
我从 0 开始打造了 jar-analyzer 应用分析 Java 漏洞
我做了(可能)第一个开源的 GUI 内存马查杀工具
我做了很多字节码相关的事情:
我做了 JVMTI 的字节码加密解密工具,写了一些 C 代码
我做了 class-obf 字节码混淆工具,在开源版之外做了强度堪比 allatori 等商业混淆的 pro 版本
我做了 jar 缩小的尝试,录制 jar 执行过程后缩小 jar 到功能所需
我做了 IDEA 无法实现的 JVM 指令级别调试工具 Demo
我用 JNI 和 NPCAP 手动解析 TCP 等协议实现了 Java 的 nmap
在安全和工作之外,我主要的时间和精力在摄影上。
我入手了佳能的旗舰相机 R5C 和 50 1.2 / 24-70 2.8 等镜头
我不仅拍照,也做一些视频工作
    我喜欢音乐和钢琴,尤其喜欢钢琴家 animenz 的作品,去年和朋友一起找到施坦威钢琴演奏和录制
我申请了三年多次的日本签证,去了两次
    我喜欢汽车文化,尤其喜欢日本车,喜欢 JDM 和改装。
    在去年底,贷款买了新款手动挡 BRZ 并改装了轮毂刹车和避震,设计了痛车。尽管每月还款时会有短暂的焦虑,但想到这辆车带给我的快乐和满足感,压力似乎也变得不那么沉重了。它不仅仅是一辆车,更是我对梦想的追求和自我表达的载体。每一次踩下油门,听到引擎的轰鸣,感受到车辆的精准操控,所有的烦恼仿佛都被抛在了脑后。这辆 BRZ 不仅是我生活中的一部分,更是我追求自由和激情的象征。

    我考虑过新能源,最终选择 BRZ 不仅因为它是正统 JDM 血脉,更因为 FA24 引擎 2 档 7000 转的引擎轰鸣声时,我放弃了。确实,同价位的新能源车可以轻松实现百米加速破3秒,甚至拥有更低的用车成本和更环保的特性,但它们无法给我带来那种纯粹的机械快感和驾驶乐趣。FA24 引擎在高转速下的咆哮,换挡时的顿挫感,以及手动操控的精准反馈,这些都是新能源车无法替代的体验。

    新能源车更像是一种高效的工具,安静、平顺、智能化,但它们缺少了传统燃油车那种与驾驶者之间的情感连接。每一次踩下油门,听到引擎的轰鸣,感受到车辆的震动,都让我觉得自己与车融为一体,仿佛在驾驭一匹充满野性的烈马。这种原始的、机械的魅力,是新能源车无法给予的。

    虽然新能源是未来的趋势,但对我来说,驾驶不仅仅是为了到达目的地,更是一种享受过程的方式。手动挡 BRZ 带给我的不仅是速度,更是一种对机械的热爱和对驾驶艺术的追求。或许有一天,我也会拥有一辆新能源车,但至少现在,我依然愿意为这份纯粹的快乐而坚持。毕竟,生活中有些东西,是无法用数据和效率来衡量的。

    杭州往东我喜欢四明山,浙江最好的跑山道路:从雪窦寺到大岚再到四明山观景台,到达余姚西高速口这条路。杭州往西近距离有天荒坪,江南天池的跑山道路。往西远一些我经常去太子尖,从龙岗高速口出到太子尖到达颊口收费站返回。杭州往北,我去过莫干山,自研了一条风景绝佳的道路。杭州往南,有安顶山,寺坞岭等。
我养了第一个宠物,接来它的时候只有一个月大。

    有了狗子,生活中有了伙伴,我有了需要照顾的对象。它不仅仅是宠物,更像是家人,陪伴我一起学习、成长、旅游。我带着它开车去杭州附近的海边,感受海风拂面,或是去山上,呼吸清新的空气,我们之间的默契和情感都在不断加深。它总是无条件地信任我,用它的方式表达对我的依赖和爱,这种纯粹的情感让我感到温暖和踏实。

    在照顾它的过程中,我也学会了更多的责任感和耐心。每天遛狗、喂食、陪它玩耍,这些看似琐碎的事情,却让我的生活变得更加规律和充实。它的存在让我不再感到孤单,尤其是在忙碌或压力大的时候,它的陪伴总能让我放松下来,重新找到生活的节奏。

    我们一起经历了许多美好的时光,也一起面对过挑战。比如它生病时的担忧,或是训练它时的反复尝试,这些都让我更加深刻地体会到陪伴的意义。它教会了我如何去爱,如何去关心另一个生命,也让我更加珍惜我们之间的每一刻。它都是我生活中不可或缺的一部分。有了它,我的世界变得更加完整,也更加充满乐趣和意义。

    回想这三年,确实做了不少事情,但也没有做好什么事情。时间似乎在不经意间流逝,虽然尝试了许多新的领域,也投入了不少精力,但总觉得自己没有在某一方面真正深入或取得突破。无论是工作、学习,还是兴趣爱好,似乎都停留在表面,缺乏持久的专注和成果。

    有时候会感到迷茫,不知道自己真正想要的是什么,或者是否在正确的道路上。虽然经历了很多,但回顾起来,却很难找到一件让自己感到骄傲或满足的成就。或许是因为目标不够明确,或许是因为缺乏坚持,总觉得自己可以做得更好,但却没有真正做到。

    不过,转念一想,这三年的经历也并非毫无意义。每一次尝试和探索,都是成长的一部分,哪怕没有达到预期的结果,也让我更加了解自己的兴趣和能力边界。或许,接下来的时间里,我需要更加聚焦,找到真正热爱的事情,并为之全力以赴。毕竟,人生的意义不仅在于结果,也在于过程中的学习和成长。

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

长亭科技 xray 漏洞检测 安全研究 应急响应
相关文章