《暗月2022课程》第一次让我觉得“学点东西”这件事可以不带任何表演性质。暗月课程那会儿我在一个技术群里潜水,暗月课程有人甩了张截图,暗月课程黑底白字,暗月课程写着“暗月2022课程·第7期·内存取证”,暗月课程下面跟了一句“今晚八点,暗月课程老地方”。暗月课程没人问老地方是暗月课程哪儿,也没人发链接。暗月课程到了点,暗月课程一个语音频道里陆陆续续进来二十来号人,暗月课程开场白就一句:“今天讲Volatility,暗月课程没装环境的暗月课程现在装,十分钟后开始。暗月课程”
课程没有大纲。暗月课程主讲人叫老周,据说是某安全公司的一线应急响应工程师,声音沙哑,说话带点南方口音。他讲内存取证,上来先扔了一个真实案例:某企业服务器被入侵,日志被清,磁盘上找不到任何痕迹,最后靠内存镜像里残留的进程句柄和网络连接还原了攻击链。老周说:“磁盘会骗人,内存不会,但内存跑得比谁都快。”这句话我记到现在。那节课他花了四十分钟演示怎么用Volatility的netscan插件抓出隐藏的C2连接,中间卡了两次,一次是虚拟机内存不够,一次是他自己敲错了命令。他没回避,直接说“我也经常忘”,然后翻出笔记重新敲。
暗月2022的课程表是活的。原定讲“Linux提权”,结果那周刚好爆了一个sudo漏洞,老周临时把内容换成漏洞复现。他一边编译exp一边说:“你们别光看,自己搭个靶机跟着打,打不通就对了,打通了才奇怪。”那晚频道里有人喊“我通了”,老周回了一句“截图发群里,我看看你是不是打错了靶机”。后来证明那人确实打错了,打的是自己本机。这种乌龙在暗月课程里不算事故,算日常。
我印象最深的是“流量分析”那期。老周没讲Wireshark的菜单栏,直接丢了一个pcap文件,说:“这里面有一次完整的APT攻击,你们自己找,找到什么算什么。”然后他闭麦了二十分钟。频道里安静得能听见有人敲键盘。二十分钟后他开麦,问“有人找到C2域名了吗”,没人应。他说:“正常,我当年找了三天。”接着他才开始逐层拆解,从DNS隧道到心跳包间隔,讲得极细,细到某个TCP选项字段为什么被置位。那节课拖了快三个小时,最后他说:“今天讲的这些东西,你们下周就会忘,但那个找不着的感觉,你们得记住。”
暗月2022课程没有证书,没有结业考试,甚至没有固定的学员名单。老周偶尔会在群里发一句“下周讲XX,想听的扣1”,然后根据扣1的人数决定讲不讲。有次只来了五个人,他照样讲了两个小时,讲完说:“五个人也是人,总不能让你们白等。”这种随意感反而让课程变得实在。没有PPT模板,没有“本次课程目标”那一页,打开就是干活。
后来我自己做应急响应,第一次独立分析内存镜像时,脑子里冒出来的就是老周那句“磁盘会骗人”。我用了psscan和malfind,找到了一个被注入的进程,顺着句柄摸到了持久化服务。那一刻我意识到,暗月2022课程教的东西其实就一句话:别信表面,自己动手挖。老周没说过这句话,但他每节课都在做这件事。
课程在2022年底停了。最后一期讲“日志分析”,老周说:“以后可能不讲了,你们自己多练。”没人问为什么。频道里有人打了句“谢谢周哥”,后面跟了一排“谢谢周哥”。老周没回,直接关了麦。群还在,偶尔有人发个样本问“这个谁见过”,没人答,过几天又有人发个分析报告。暗月2022课程没有结束,它只是不再有新课了。