esonhugh 的 2022 年度总结

First Post:
Last Update:
Word Count: 1.9k
Read Time: 6min

今年下半年又整了什么活

虽迟但到。总算到了年终总结的时候辣。

下半年比较碌碌无为 比较值得称道的可能就是 Attack_Code 了。

Docker Release Agent Escape

在今年的下半年,我收到了一次面试,面试的题目是研究 Docker Release Agent 相关的逃逸,之前在打一些靶机的时候我尝试过利用一些 docker 的常见挂载等等进行过逃逸。所以很快我就接下了面试题,并且打算好好地当作一次类似小课题一样的东西,研究一下然后写一篇或者出一份笔记出来。

对 成果确实就是 Docker Release Agent 逃逸的文章,它在这里。不大 但是我用的是 Obsidian 去进行的知识管理。

Attack_Code

继那三个月后,我产出了第二篇文章,总结了三个月来的云原生相关的入侵点和值得测试的点,其实很多部分都是有例子作为支撑的(这是可以说的吗)。也因此这篇文章被很多的行业大佬们点赞了。比较让我记忆深刻的是 Orange (对 就是辣个橘子) 大佬也看到了这篇文章,同时给予了比较高的评价。(当然, 在推上)这篇文章也冲到了我点赞最多的仓库之一。

Attack_Code_on_Twitter

在写完 Attack_Code 文章之后,我摆烂了大概两个月。主要因为这篇文章是真的耗费了我很大时间和精力,通过整理过去一段时间的经验和学习到的内容,才写出了这一篇文章。当时我手边没什么笔记,大部分靠着回忆和一部份的脚本留下的内容拼凑出来的,所以光是写完文章我前前后后就花费了一个多礼拜。当然还是希望能对诸位提供帮助。

鹏城杯

我的第一次的线下赛作为 su 第一支队伍的队长参加了鹏城实验室的鹏城杯,miaotony 和 huamang 是我的好队友们。第一天晚上我们快乐的刚刚到酒店就去吃吃喝喝了。

第二天正赛白天属于是一无所获。但是打着打着,队友们打嗨了,下午晚上抓到了机会,日了好几个机器,疯狂上分,一下子冲到了前六名,但是根本卷不过公司实验室的大哥们,醒来就被了。

晚上一直打到了凌晨四五点,那时候我实在是熬不住了,被miaomiao带回宾馆了。我们 SU 还有个几个队伍,龙哥带队的,还有三哈姐姐,不过是出来享受的趁着报销出来玩玩。

看到了腹黑啊还有好多好多的人,然后中午还一起拍了合照,当然我比较不上镜。

总的来说比赛体验还是很棒的。

比赛结束了 我和 Miaomiao 没急着走,我顺手日了比赛官方的在走廊里的触摸屏,哈哈。又住了几天才走,感谢收留我们的月石哥哥。

下半年研究了些什么

域渗透

我就开始补 OSCP 课程(在第二版 OSCP 里新加)的 Active Directory 章节了。算是第一次接触了整个基于 Windows 的内网设计。趁着还没过期,我打穿了 Tryhackme 的 AD 系列靶机。

怎么说呢。有一些的难度,毕竟我以为我熟悉了 windows 家的产品的时候,微软总是能出乎意料的打我的脸。

但是我其实现在还是觉得对于域的理解很浅,主要是确实是没啥经验。

云渗透

云渗透主要是去年其实就开始了,今年自己亲手搭建了一些集群和服务,重建了部分服务,大概理解了整个 kubernetes 的操作和维护的基本方法,虽然其实还是有点欠缺的,比如说自定义网络策略啊什么的还不是很明白。

相比隔壁 kubernetes.io 下的文档,k3s docs 倒是给了我很大的帮助。

此外有一说一,从攻击者角度看到的集群和维护人员看到的集群的角度还是区别很大的。

维护人员和开发人员看到的通常是一个大平面,分别有一个个的区域隔离容纳了不同的工作任务,相对而言 对于部分的集群权限或者细枝末节的一些内容有一些难以处理,比如细致的某些 pod 具有什么特殊的权限控制 svc 应该给怎样的 role 之类的。

而往往攻击者所做的事情是从一个小的切入点,比如说 api exposure 啊之类的看到集群的局部性的工作状态。

观察一个服务,我比较喜欢问自己三个问题。

第一个问题 这部分是做什么用的。理解这部分 web app 在集群中所处的位置,究竟是普通的服务,管理,监控。普通服务是对外的对内的,是 web 层次当中的哪一个部分,是中间件,入口,负载均衡器,后端,数据源。

基于第一个问题,问出第二个问题,这个服务在集群里需要有多少能力。例如这个服务是某些监控,那么他势必具有一些特殊的数据访问权限。这个服务是一种管理,那么他势必具有一定量的服务乃至集群部分的所有权限。

第三个问题,他所有的能力可以更多的给我们带来什么之前不俱有的能力。例如,通过这个服务,我们可以触碰到核心数据库,那么核心数据库里能操纵的东西,成为了我们下一个阶段的能力。而这种能力的提升,伴随着限制的减少。

获取到更多的能力,对于攻击者下一步的枚举和攻击俱有指导性意义。

每每自问一次,攻击者对集群的状态会更加明晰,这些控制了这些,这些为这些提供服务 etc

Extended BPF

年末的一段时间,因为有了前一段时间的 Docker 逃逸相关内容的铺垫,我开始往 Linux 内核去摸索了(当然还有一部分原因是这学期 OS 必修了捏)。

内核里的 EVENT 事件系统当时算是引起了我的兴趣,于是乎我找了一些 Linux Kernel Tracing System 相关的材料就开始看,其中就包括了 ebpf 。

云和 EBPF 也算是新领域,这一块还得看 Cloudflare 和 facebook 这些老大厂们不停的在开拓。

也得看 NSA 老大哥们的滥用。

除了 BlackHat 和 Defcon 的一些文章之外,材料里有一些 Bilibili 视频,有一大部分来着 简说 Linux (我觉得他讲的还不错,可以拿来补充补充知识)。

魔改了一下 durdur 过滤器,写了一个新的 ebpf rootkit 玩具。

哦,然后顺手开源了一个 ebpf 快速手脚架。在这里 https://github.com/Esonhugh/ebpf_cilium_starter 主要综合了写 C 的时候一些辅助函数,以及写 Go Cilium 库的时候一些心得,用 makefile 包装了一下几个好用的命令,感觉对帮助你编写 ebpf code 有很大的帮助。

结语

大概总结了一下最近的状态 , 哎又要快快开学了。。。这下又得忙起来了。。。

先写到这里吧,之后想到了再补。